:root{--black:#050505;--white:#f6f3ee;--signal:#ff005f;--line:rgba(246,243,238,.18);--gutter:clamp(20px,4vw,64px);--display:"Arial Narrow","Helvetica Neue Condensed",Impact,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--black)}body{margin:0;background:var(--black);color:var(--white);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP",sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto}a{color:inherit}.gfw-skip{position:fixed;z-index:9999;top:10px;left:10px;transform:translateY(-200%);background:white;color:black;padding:8px 12px}.gfw-skip:focus{transform:none}.gfw-header{position:fixed;z-index:1000;inset:0 0 auto;height:74px;transition:.25s}.gfw-header.is-scrolled{background:rgba(5,5,5,.84);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.gfw-header__inner{height:100%;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between}.gfw-brand{text-decoration:none;font-family:var(--display);font-weight:900;letter-spacing:.08em}.gfw-nav__list{display:flex;gap:clamp(18px,3vw,44px);list-style:none;margin:0;padding:0}.gfw-nav a{text-decoration:none;font-family:var(--display);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.gfw-nav-toggle{display:none;background:none;border:0;color:inherit;font-family:var(--display);font-weight:800}.gfw-section{padding:clamp(90px,13vw,190px) var(--gutter);border-top:1px solid var(--line)}.gfw-kicker{margin:0 0 24px;color:var(--signal);font-family:var(--display);font-size:.78rem;font-weight:900;letter-spacing:.16em}.gfw-section h2{margin:0;font-size:clamp(2.8rem,6vw,7.2rem);line-height:.98;letter-spacing:-.055em}.gfw-footer{padding:50px var(--gutter);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:end;gap:30px}.gfw-footer p,.gfw-footer small{color:#999;font-size:.76rem}.gfw-content{min-height:70vh;padding:140px var(--gutter)}@media(max-width:820px){.gfw-nav-toggle{display:block;z-index:1002}.gfw-nav{position:fixed;inset:0;display:grid;place-items:center;background:var(--black);opacity:0;pointer-events:none;transition:.2s}.gfw-nav.is-open{opacity:1;pointer-events:auto}.gfw-nav__list{flex-direction:column}.gfw-nav a{font-size:clamp(2.5rem,12vw,5rem)}.gfw-footer{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}html{scroll-behavior:auto}}

/* v0.11.7 — certification-aware global footer */
.gfw-footer {
	flex-wrap: wrap;
}

.gfw-footer__brand strong {
	display: block;
	font-family: var(--display);
	font-size: clamp(1.15rem, 1.7vw, 1.8rem);
	font-weight: 900;
	letter-spacing: .07em;
}

.gfw-footer__brand p {
	margin: 6px 0 0;
	font-family: var(--display);
	letter-spacing: .12em;
}

.gfw-footer__certification {
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: 430px;
	color: var(--white);
	text-decoration: none;
}

.gfw-footer__certification-logo {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 96px;
	min-height: 60px;
	padding: 7px 9px;
	border: 1px solid rgba(246,243,238,.17);
	background: #fff;
}

.gfw-footer__certification-logo img {
	display: block;
	width: 100%;
	max-height: 62px;
	object-fit: contain;
	filter: none;
}

.gfw-footer__certification-copy {
	display: grid;
	gap: 1px;
	min-width: 0;
}

.gfw-footer__certification-copy small,
.gfw-footer__certification-copy strong,
.gfw-footer__certification-copy em {
	display: block;
	font-style: normal;
}

.gfw-footer__certification-copy small {
	font-size: .5rem;
	font-weight: 700;
	letter-spacing: .11em;
	color: rgba(246,243,238,.48);
}

.gfw-footer__certification-copy strong {
	font-family: var(--display);
	font-size: .92rem;
	font-weight: 900;
	line-height: 1.1;
	letter-spacing: .035em;
}

.gfw-footer__certification-copy em {
	font-size: .52rem;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .045em;
	color: rgba(246,243,238,.54);
}

.gfw-footer__certification:hover strong,
.gfw-footer__certification:focus-visible strong {
	color: var(--signal);
}

.gfw-footer__certification:focus-visible {
	outline: 2px solid var(--signal);
	outline-offset: 5px;
}

.gfw-footer__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: clamp(16px, 2.6vw, 38px);
}

.gfw-footer__meta a {
	font-family: var(--display);
	font-size: .64rem;
	font-weight: 900;
	letter-spacing: .13em;
	text-decoration: none;
	color: rgba(246,243,238,.62);
}

.gfw-footer__meta a:hover,
.gfw-footer__meta a:focus-visible {
	color: var(--signal);
}

@media (max-width: 1100px) {
	.gfw-footer__certification {
		order: 3;
		flex-basis: 100%;
		margin-top: 8px;
	}
}

@media (max-width: 820px) {
	.gfw-footer__certification {
		order: initial;
		margin-top: 10px;
	}

	.gfw-footer__meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 11px;
	}
}


/* v0.11.8 — simplified certification footer */
.gfw-footer__certification {
	gap: 16px;
}

.gfw-footer__certification-logo {
	width: 108px;
	min-height: 66px;
	padding: 8px 10px;
}

.gfw-footer__certification-logo img {
	max-height: 68px;
}

.gfw-footer__certification-copy {
	gap: 4px;
}

.gfw-footer__certification-copy strong {
	font-size: .82rem;
	letter-spacing: .04em;
}

.gfw-footer__certification-copy em {
	font-size: .55rem;
	letter-spacing: .055em;
	color: rgba(246,243,238,.58);
}

@media (max-width: 820px) {
	.gfw-footer__certification-logo {
		width: 96px;
		min-height: 60px;
	}
}


/* v0.12.7 — registered trademark display */
.gfw-footer__brand sup {
	position: relative;
	top: -.34em;
	margin-left: .08em;
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
	font-size: .38em;
	font-weight: 700;
	line-height: 0;
	letter-spacing: 0;
}


/* =========================================================
   v0.12.8 — opaque mobile navigation overlay
========================================================= */
@media (max-width: 820px) {
	html.gfw-nav-open,
	body.gfw-nav-open {
		overflow: hidden;
		overscroll-behavior: none;
	}

	.gfw-nav {
		position: fixed;
		z-index: 1001;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: 100vw;
		height: 100dvh;
		min-height: 100svh;
		overflow-y: auto;
		background: #050505 !important;
		background-color: #050505 !important;
		visibility: hidden;
		isolation: isolate;
		-webkit-overflow-scrolling: touch;
	}

	.gfw-nav::before {
		content: "";
		position: absolute;
		z-index: -1;
		inset: 0;
		background:
			radial-gradient(circle at 72% 72%, rgba(255, 0, 95, .15), transparent 38%),
			linear-gradient(rgba(246, 243, 238, .035) 1px, transparent 1px),
			linear-gradient(90deg, rgba(246, 243, 238, .035) 1px, transparent 1px),
			#050505;
		background-size: auto, 56px 56px, 56px 56px, auto;
	}

	.gfw-nav.is-open {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
	}

	.gfw-nav__list {
		position: relative;
		z-index: 1;
		width: min(100% - 40px, 760px);
		padding-top: calc(90px + env(safe-area-inset-top));
		padding-bottom: calc(48px + env(safe-area-inset-bottom));
	}

	.gfw-header.is-on-light .gfw-nav.is-open {
		color: var(--white);
		background: #050505 !important;
	}
}
