/**
 * スケーリングレイアウト
 * 1440px固定デザインをビューポート幅に合わせて縮小
 */
body {
	margin: 0;
}

.scaled-section {
	--s: min(1, calc(100vw / (var(--baseW) * 1px)));
	overflow-x: clip;
}

.scaled-section .scale-wrap {
	width: min(100vw, calc(var(--baseW) * 1px));
	height: calc(var(--baseH) * var(--s) * 1px);
	margin-inline: auto;
	position: relative;
}

.scaled-section .scale-canvas {
	font-family: Helvetica, sans-serif;
	width: calc(var(--baseW) * 1px);
	transform: scale(var(--s));
	transform-origin: top left;
	will-change: transform;
	position: relative;
	display: flex;
	flex-direction: column;
}

/**
 * 背景エリア
 */
.bg-area {
	flex-grow: 1;
	position: relative;

	/* coverだとscale()のサブピクセル丸めで右端に隙間が出るため少し大きくする */
	background-size: calc(100% + 5px) auto;

	background-position: top center;
	background-repeat: no-repeat;
	display: flex;
	flex-direction: column;
}
