@charset "utf-8";

/*-----------
reset
-----------*/
* { margin: 0; padding: 0; box-sizing: border-box; }
html { overflow-x: hidden; }  /* no scroll-behavior: Lenis owns scrolling */
li { list-style: none; }
img { height: auto; max-width: 100%; }
a { color: inherit; text-decoration: none; }

/*-----------
tokens
-----------*/
:root {
	--teal: #49b5b7;
	--ink: #172020;
	--red: #e11300;
	--sans: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴシック", Arial, "メイリオ", sans-serif;
	/* Arial Black has no Japanese cut — the JP fallbacks carry the kanji at a matching weight */
	/* hero is laid out in 1140-wide comp px; below that everything in it
	   scales together instead of overflowing the column */
	--hu: calc(min(100vw, 1140px) / 1140);
	/* frame strokes are a 4-stop vertical gradient, not flat black (Figma 18:91) */
	--frame-stroke: linear-gradient(to bottom, #000000 0%, #253535 67%, #49b5b7 84.5%, #b1d0d1 100%);
	--display: "Arial Black", "Arial Bold", "Hiragino Sans W8", "Hiragino Kaku Gothic StdN", "Noto Sans JP", sans-serif;
}

/*-----------
body
-----------*/
body {
	color: #000;
	font-family: var(--sans);
	font-size: 20px;
	line-height: 35px;
	font-weight: 400;
	/* the raw stripe tile is near-black and fights the side nav sitting on it */
	background: linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)),
		#fff url(../images/bg_tile.jpg) repeat top center;
	/* 1241, matching the tile's intrinsic width. It was 1242 with a dark pinstripe
	   sitting 1px inside the right edge, so each horizontal repeat butted that
	   against the next tile's leading stripe and read as one thick line. */
	background-size: 1241px 621px;
	overflow-x: hidden;
	position: relative;
}

.pc { display: block; }
.sp { display: none; }
.sp-br { display: none; }
@media screen and (max-width: 600px) {
	.pc { display: none; }
	.sp { display: block; }
	.sp-br { display: block; }
}

/*-----------
fade animation
-----------*/
.fadein {
	opacity: 0;
	transform: translate(0, 30px);
	transition: opacity 1.1s ease, transform 1.1s ease;
}
.fadein.scrollin { opacity: 1; transform: translate(0, 0); }
@media (prefers-reduced-motion: reduce) {
	.fadein { opacity: 1; transform: none; transition: none; }
}

/*-----------
buttons
-----------*/
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 500px;
	max-width: 100%;
	height: 65px;
	background: #000;
	border-radius: 100px;
	color: #fff;
	font-weight: 900;
	font-size: 20px;
	line-height: 1.3;
	text-align: center;
	transition: background 0.3s ease, transform 0.3s ease;
}
.btn:hover { background: var(--teal); transform: translateY(-2px); }
