/* Sardar Fateh Singh Academy. Dark cinematic luxury. */

:root {
	--obsidian: #050505;
	--charcoal: #0d0d0d;
	--panel: #161616;
	--text: #ffffff;
	--text-2: #a1a1a1;
	--muted: #8a8a8a;
	--champagne: #c9a96e;
	--hair: rgba(255, 255, 255, 0.1);
	--display: "Cormorant Garamond", Cormorant, Georgia, "Times New Roman", serif;
	--body: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
	--gutter: 20px;
	--gx: 20px;
	--header-h: 78px;
}
@media (min-width: 768px) { :root { --gutter: 40px; --gx: 40px; --header-h: 88px; } }
@media (min-width: 1000px) { :root { --gx: clamp(32px, 5.5vw, 96px); } }
@media (min-width: 1100px) { :root { --gutter: 64px; --header-h: 112px; } }

html { scroll-padding-top: 72px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
	margin: 0; background: var(--obsidian); color: var(--text);
	font-family: var(--body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
	overflow-x: clip;
}
html.menu-open { overflow: hidden; }
.wp-site-blocks { padding: 0; }
.sfs-main { margin: 0; padding: 0; }
.sfs-main--page { padding: calc(var(--header-h) + 64px) var(--gutter) 96px; }

a:focus-visible, button:focus-visible { outline: 1px solid var(--champagne); outline-offset: 4px; }
.sfs-skip {
	position: absolute; left: -9999px; top: 0; z-index: 200;
	background: #fff; color: #050505; padding: 12px 16px; font: 500 14px var(--body);
}
.sfs-skip:focus { left: 16px; top: 16px; }

/* ---------- Header ---------- */
.site-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	height: var(--header-h); box-sizing: border-box; border-bottom: 1px solid transparent;
	transition: background-color 0.6s var(--ease), border-color 0.6s var(--ease), height 0.6s var(--ease);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header.is-scrolled { height: 72px; background: rgba(5, 5, 5, 0.94); border-bottom-color: var(--hair); }
.menu-open .site-header, .menu-open .site-header.is-scrolled { background: transparent; border-bottom-color: transparent; }
.site-header__inner {
	height: 100%; display: flex; align-items: center; justify-content: space-between;
	width: calc(100% - 2 * var(--gx)); margin-inline: auto;
}

.wordmark { display: block; line-height: 0; }
.logo { display: block; width: auto; height: 54px; transition: height 0.6s var(--ease); }
.is-scrolled .logo { height: 44px; }

.primary-nav { display: none; }
.site-header__mobile { display: flex; align-items: center; gap: 22px; }
.apply-link {
	color: #fff; text-decoration: none; padding: 8px 0;
	font: 500 11px/1 var(--body); letter-spacing: 0.2em; text-transform: uppercase;
	border-bottom: 1px solid rgba(201, 169, 110, 0.7);
}
.menu-toggle {
	display: flex; align-items: center; gap: 12px; height: 44px; margin-right: -4px; padding: 0 4px;
	background: none; border: 0; cursor: pointer; color: #fff;
	font: 500 11px/1 var(--body); letter-spacing: 0.2em; text-transform: uppercase;
}
.menu-toggle__t--close, .menu-open .menu-toggle__t--open { display: none; }
.menu-open .menu-toggle__t--close { display: inline; }
.menu-toggle__bars { display: flex; flex-direction: column; gap: 6px; }
.menu-toggle__bars i {
	display: block; width: 22px; height: 1px; background: #fff; transition: transform 0.5s var(--ease);
}
.menu-open .menu-toggle__bars i:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
.menu-open .menu-toggle__bars i:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }

/* Full-screen editorial menu: a curtain that opens downward. Sibling of the header. */
.mobile-menu {
	position: fixed; inset: 0; z-index: 90; box-sizing: border-box; overflow-y: auto;
	background: var(--obsidian);
	clip-path: inset(0 0 100% 0); visibility: hidden;
	transition: clip-path 0.9s var(--ease), visibility 0s linear 0.9s;
}
.menu-open .mobile-menu { clip-path: inset(0); visibility: visible; transition: clip-path 0.9s var(--ease); }
.mobile-menu::before {
	content: ""; position: absolute; inset: 0 var(--gx); pointer-events: none;
	border-left: 1px solid rgba(255, 255, 255, 0.05); border-right: 1px solid rgba(255, 255, 255, 0.05);
}
.mobile-menu__inner {
	position: relative; min-height: 100%; box-sizing: border-box; display: flex; flex-direction: column;
	padding: calc(var(--header-h) + 28px) var(--gx) 32px; gap: 36px;
}
.admin-bar .mobile-menu__inner { padding-top: calc(var(--header-h) + 28px + 32px); }
.mm-label { margin: 0; font: 500 10px/1 var(--body); letter-spacing: 0.3em; text-transform: uppercase; color: var(--muted); }
.mobile-menu ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hair); }
.mobile-menu li { border-bottom: 1px solid var(--hair); }
.mobile-menu li a {
	display: flex; align-items: baseline; gap: 22px; padding: 20px 0; color: #fff; text-decoration: none;
	font: 400 clamp(34px, 9.6vw, 48px) / 1.1 var(--display); letter-spacing: -0.01em;
}
.mobile-menu li a i { font: 500 10px/1 var(--body); letter-spacing: 0.2em; color: var(--muted); font-style: normal; min-width: 22px; }
.mobile-menu li a.is-active i { color: var(--champagne); }
.mm-foot { margin-top: auto; }
.mm-apply {
	display: flex; align-items: center; justify-content: space-between; height: 62px; padding: 0 22px; box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.3); color: #fff; text-decoration: none;
	font: 500 12px/1 var(--body); letter-spacing: 0.2em; text-transform: uppercase;
}
.mm-micro { margin: 18px 0 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
.mobile-menu li, .mm-label, .mm-foot { opacity: 0; transform: translateY(22px); }
.menu-open .mobile-menu li, .menu-open .mm-label, .menu-open .mm-foot {
	opacity: 1; transform: none; transition: opacity 0.8s var(--ease), transform 0.9s var(--ease);
}
.menu-open .mm-label { transition-delay: 0.25s; }
.menu-open .mobile-menu li:nth-child(1) { transition-delay: 0.3s; }
.menu-open .mobile-menu li:nth-child(2) { transition-delay: 0.37s; }
.menu-open .mobile-menu li:nth-child(3) { transition-delay: 0.44s; }
.menu-open .mobile-menu li:nth-child(4) { transition-delay: 0.51s; }
.menu-open .mobile-menu li:nth-child(5) { transition-delay: 0.58s; }
.menu-open .mm-foot { transition-delay: 0.7s; }

@media (min-width: 1100px) {
	.logo { height: 84px; }
	.is-scrolled .logo { height: 56px; }
	.site-header__mobile, .mobile-menu { display: none; }
	.primary-nav { display: flex; align-items: center; gap: 44px; }
	.primary-nav ul { display: flex; gap: 40px; list-style: none; margin: 0; padding: 0; }
	.primary-nav ul a {
		display: inline-flex; align-items: baseline; gap: 9px; padding: 10px 0;
		color: rgba(255, 255, 255, 0.78); text-decoration: none;
		font: 500 11px/1 var(--body); letter-spacing: 0.22em; text-transform: uppercase;
		transition: color 0.4s var(--ease);
	}
	.primary-nav ul a i { font-style: normal; font-size: 9px; letter-spacing: 0.1em; color: var(--muted); transition: color 0.4s var(--ease); }
	.primary-nav ul a:hover, .primary-nav ul a.is-active { color: #fff; }
	.primary-nav ul a:hover i, .primary-nav ul a.is-active i { color: var(--champagne); }
	.apply {
		display: inline-flex; align-items: center; gap: 16px; padding: 10px 0 10px 40px; margin-left: 4px;
		border-left: 1px solid var(--hair); color: #fff; text-decoration: none;
		font: 500 11px/1 var(--body); letter-spacing: 0.24em; text-transform: uppercase;
	}
	.apply b { display: block; width: 34px; height: 1px; background: var(--champagne); transition: width 0.6s var(--ease); }
	.apply:hover b, .apply:focus-visible b { width: 64px; }
}
@media (min-width: 1100px) and (max-width: 1279px) {
	.primary-nav { gap: 30px; }
	.primary-nav ul { gap: 26px; }
	.apply { padding-left: 28px; }
}

/* ---------- Hero: mobile composition (below 1000px) ---------- */
.hero {
	--m-photo: clamp(360px, 54vh, 640px); --m-photo: clamp(360px, 54svh, 640px);
	position: relative; background: var(--obsidian); overflow: hidden; isolation: isolate;
	min-height: 100vh; min-height: 100svh;
}
.hero__grid, .hero__frame, .hero__cap, .hero__scroll { display: none; }
.hero__figure { position: absolute; z-index: 1; top: 0; left: 0; right: 0; height: var(--m-photo); margin: 0; }
.hero__media { position: absolute; inset: 0; overflow: hidden; animation: sfs-clip 2s var(--ease) 0.05s both; }
.hero__par {
	position: absolute; left: 0; right: 0; top: -6%; height: 112%;
	transform: translate3d(0, calc(var(--py, 0) * 1px), 0); will-change: transform;
}
.hero__par img {
	display: block; width: 100%; height: 100%; object-fit: cover; object-position: 52% 14%;
	filter: grayscale(0.15) brightness(0.8) contrast(1.1) saturate(0.85);
	animation: sfs-img 2.8s var(--ease) both;
}
.hero__media::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(180deg, rgba(5, 5, 5, 0.8) 0%, rgba(5, 5, 5, 0) 30%),
		linear-gradient(0deg, #050505 0%, rgba(5, 5, 5, 0.92) 12%, rgba(5, 5, 5, 0) 64%);
}

.hero__inner {
	position: relative; z-index: 2; box-sizing: border-box; display: flex; flex-direction: column;
	min-height: 100vh; min-height: 100svh;
	padding: calc(var(--m-photo) - 150px) var(--gx) 28px;
}
.eyebrow {
	display: flex; align-items: center; gap: 16px; margin: 0 0 22px;
	font: 500 10.5px/1 var(--body); letter-spacing: 0.26em; text-transform: uppercase; color: var(--champagne);
	animation: sfs-rise 1s var(--ease) 0.1s both;
}
.eyebrow__rule { display: block; width: 40px; height: 1px; background: var(--champagne); transform-origin: left; animation: sfs-rule 1.4s var(--ease) 0.2s both; }

.hero__title { margin: 0; font-weight: 400; }
.hl { display: block; overflow: hidden; padding: 0.08em 0.12em 0.14em 0; margin: -0.08em 0 -0.14em; }
.hl__in { display: block; animation: sfs-line 1.5s var(--ease) both; }
.hl--1 { font: 300 clamp(19px, 5.4vw, 26px) / 1.3 var(--display); color: var(--text-2); letter-spacing: 0.01em; margin-bottom: 4px; }
.hl--1 .hl__in { animation-delay: 0.4s; }
.hl--2, .hl--3 { font: 400 clamp(44px, 12.2vw, 92px) / 0.98 var(--display); letter-spacing: -0.025em; color: #fff; }
.hl--2 .hl__in { animation-delay: 0.55s; }
.hl--3 { padding-left: 7vw; }
.hl--3 .hl__in { animation-delay: 0.7s; }
.hl--3 em { font-style: italic; font-weight: 400; }

.hero__lower { margin-top: 24px; }
.hero__body {
	margin: 0 0 24px; max-width: 30rem; font-size: 15.5px; line-height: 1.65; color: var(--text-2);
	animation: sfs-rise 1.1s var(--ease) 1s both;
}
.hero__act { animation: sfs-rise 1.1s var(--ease) 1.15s both; }
.cta {
	display: inline-flex; align-items: center; gap: 22px; height: 58px; padding: 0 26px; box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.34); color: #fff; text-decoration: none;
	font: 500 14px/1 var(--body); letter-spacing: 0.04em;
	transition: background-color 0.5s var(--ease), color 0.5s var(--ease), border-color 0.5s var(--ease);
}
.cta__line { display: block; width: 34px; height: 1px; background: currentColor; position: relative; transition: width 0.6s var(--ease); }
.cta__line::after {
	content: ""; position: absolute; right: 0; top: -3px; width: 6px; height: 6px;
	border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); transform-origin: 100% 0; top: 0;
}
.cta:hover, .cta:focus-visible { background: #fff; color: var(--obsidian); border-color: #fff; }
.cta:hover .cta__line, .cta:focus-visible .cta__line { width: 54px; }
.hero__micro { margin: 16px 0 0; max-width: 30ch; font-size: 12.5px; line-height: 1.55; color: var(--muted); }

.hero__meta {
	list-style: none; margin: auto 0 0; padding: 14px 0 0; border-top: 1px solid var(--hair);
	display: flex; justify-content: space-between; gap: 8px;
	font: 500 9.5px/1 var(--body); letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-2);
	animation: sfs-rise 1.1s var(--ease) 1.35s both;
}
.hero__meta b { font-weight: 500; color: #fff; margin-right: 0.35em; }
.hero__inner .hero__lower { margin-bottom: 36px; }

/* ---------- Hero: desktop composition (1000px and up) ---------- */
@media (min-width: 1000px) {
	.hero { min-height: max(100vh, 780px); min-height: max(100svh, 780px); }
	.hero__grid {
		display: block; position: absolute; z-index: 0; top: 0; bottom: 0; left: var(--gx); right: var(--gx); pointer-events: none;
		background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
		background-size: calc(100% / 6) 100%; border-right: 1px solid rgba(255, 255, 255, 0.05);
		animation: sfs-fade 2.4s var(--ease) both;
	}
	.hero__figure { left: auto; height: auto; top: 14%; bottom: 19%; right: calc(var(--gx) + 3.5vw); width: min(34vw, 600px); }
	.hero__frame {
		display: block; position: absolute; inset: 26px -26px -26px 26px; border: 1px solid rgba(255, 255, 255, 0.16);
		animation: sfs-fade 2.4s var(--ease) 1s both;
	}
	.hero__media { animation-name: sfs-clip-up; }
	.hero__media::after {
		background:
			linear-gradient(0deg, rgba(5, 5, 5, 0.7) 0%, rgba(5, 5, 5, 0) 40%),
			linear-gradient(90deg, rgba(5, 5, 5, 0.55) 0%, rgba(5, 5, 5, 0) 40%);
	}
	.hero__cap {
		display: flex; align-items: center; gap: 16px; position: absolute; top: 0; left: calc(100% + 56px);
		writing-mode: vertical-rl; font: 500 9.5px/1 var(--body); letter-spacing: 0.3em; text-transform: uppercase; color: var(--muted);
		animation: sfs-fade 2s var(--ease) 1.4s both;
	}
	.hero__cap span:first-child { color: #fff; }
	.hero__cap::before { content: ""; display: block; width: 1px; height: 48px; background: rgba(255, 255, 255, 0.28); order: 3; }

	.hero__inner { padding: calc(var(--header-h) + 7vh) var(--gx) 150px; min-height: max(100vh, 780px); min-height: max(100svh, 780px); display: block; }
	.eyebrow { font-size: 11px; margin-bottom: 34px; }
	.hl--1 { font-size: clamp(26px, 2.5vw, 42px); margin-bottom: 14px; }
	.hl--2, .hl--3 { font-size: clamp(64px, 8.6vw, 164px); }
	.hl--3 { padding-left: 9vw; }
	.hero__lower { display: grid; grid-template-columns: minmax(0, 22rem) auto; gap: 36px; align-items: end; margin: 48px 0 0; }
	.hero__body { margin: 0; font-size: 17px; }
	.hero__micro { margin-top: 18px; }
	.hero__meta {
		position: absolute; left: var(--gx); right: var(--gx); bottom: max(36px, 5vh); margin: 0;
		justify-content: flex-start; gap: 72px; font-size: 10.5px; letter-spacing: 0.2em; max-width: 620px;
	}
	.hero__inner .hero__lower { margin-bottom: 0; }
	.hero__scroll { display: block; position: absolute; right: var(--gx); bottom: max(36px, 5vh); width: 1px; height: 72px; background: rgba(255, 255, 255, 0.22); overflow: hidden; }
	.hero__scroll::after { content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 28px; background: var(--champagne); animation: sfs-scroll 3.2s var(--ease) 2s infinite; }
}

@keyframes sfs-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes sfs-line { from { transform: translateY(112%); } to { transform: none; } }
@keyframes sfs-img { from { transform: scale(1.18); } to { transform: none; } }
@keyframes sfs-clip { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes sfs-clip-up { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes sfs-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sfs-rule { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes sfs-scroll { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(260%); } }

/* ---------- Footer ---------- */
.site-footer { background: var(--obsidian); border-top: 1px solid var(--hair); padding: 72px 0 36px; }
.site-footer__inner { width: calc(100% - 2 * var(--gx)); margin-inline: auto; }
.site-footer__grid { display: grid; grid-template-columns: 1fr; gap: 48px; }
.footer-mark {
	margin: 0 0 28px; font: 500 12px/1.4 var(--body); letter-spacing: 0.22em; text-transform: uppercase; color: #fff;
}
.footer-statement {
	margin: 0 0 20px; font: 500 clamp(32px, 4vw, 52px) / 1.1 var(--display); letter-spacing: -0.01em; color: #fff;
}
.footer-sub { margin: 0; max-width: 34ch; font-size: 16px; line-height: 1.6; color: var(--text-2); }
.footer-h {
	margin: 0 0 24px; font: 500 11px/1 var(--body); letter-spacing: 0.22em; text-transform: uppercase; color: var(--champagne);
}
.footer-list, .footer-legal { list-style: none; margin: 0; padding: 0; }
.footer-list li { margin: 0 0 14px; font-size: 15px; line-height: 1.5; color: var(--text-2); }
.footer-list a, .footer-legal a { color: var(--text-2); text-decoration: none; transition: color 0.3s var(--ease); }
.footer-list a:hover, .footer-legal a:hover { color: #fff; }
.footer-list .placeholder { color: var(--muted); }
.site-footer__bottom {
	margin-top: 72px; padding-top: 28px; border-top: 1px solid var(--hair);
	display: flex; flex-direction: column; gap: 16px; font-size: 13px; color: var(--muted);
}
.site-footer__bottom p { margin: 0; }
.footer-legal { display: flex; gap: 28px; }
.footer-legal a { color: var(--muted); }

@media (min-width: 768px) {
	.site-footer { padding: 96px 0 40px; }
	.site-footer__bottom { flex-direction: row; justify-content: space-between; align-items: center; margin-top: 88px; }
}
@media (min-width: 900px) {
	.site-footer__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 3fr); gap: 64px; }
}

/* Scroll reveal (only when JS is present; content is visible without it). */
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.js .reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.js .reveal { opacity: 1 !important; transform: none !important; }
}

/* =====================================================================
   Sections 2-15
   ===================================================================== */
.sec { position: relative; padding: 96px 0; }
.sec--ink { background: var(--obsidian); }
.sec--char { background: var(--charcoal); }
.wrap { width: calc(100% - 2 * var(--gx)); max-width: 1480px; margin-inline: auto; position: relative; }
.sec .eyebrow { animation: none; margin-bottom: 28px; }
.sec .eyebrow__rule { animation: none; }
.eyebrow--c { justify-content: center; }

.h2 { margin: 0 0 40px; font: 400 clamp(38px, 10.2vw, 56px) / 1.04 var(--display); letter-spacing: -0.02em; color: #fff; text-wrap: balance; }
.h2--xl { font-size: clamp(40px, 10.6vw, 60px); }
.h2 .dim { display: block; color: var(--text-2); }
.h2 span { display: block; }
.lead { margin: 0 0 28px; font: 400 20px / 1.55 var(--body); color: #fff; max-width: 38em; }
.prose p, .prose-line { margin: 0 0 22px; font-size: 16.5px; line-height: 1.75; color: var(--text-2); max-width: 36em; }
.prose p:last-child { margin-bottom: 0; }
.prose--wide p { max-width: 40em; }
.micro { margin: 28px 0 0; font-size: 13px; line-height: 1.6; color: var(--muted); letter-spacing: 0.01em; }
.micro--c { text-align: center; }
.micro--lg { font-size: 15px; max-width: 24em; margin: 0 0 24px; color: var(--text-2); }
.sub { margin: 48px 0 20px; font: 500 11px / 1.4 var(--body); letter-spacing: 0.24em; text-transform: uppercase; color: #fff; }
.sub--rule { padding-top: 28px; border-top: 1px solid var(--hair); margin-top: 72px; }

.rule { display: block; width: 48px; height: 1px; background: var(--champagne); transform-origin: left; }
.rule--56 { width: 56px; margin-bottom: 36px; }
.rule--full { width: 100%; background: var(--champagne); opacity: .55; }
.rule--c { margin: 48px auto 24px; }
.js .rule.reveal { opacity: 1; transform: scaleX(0); transition: transform 1.6s var(--ease); }
.js .rule.reveal.is-in { transform: none; }
.js .rule--full.reveal { transition-duration: 2.2s; }

/* stagger */
.js .reveal { transition-delay: var(--d, 0s); }

/* text link */
.tlink { display: inline-flex; align-items: center; gap: 20px; margin-top: 36px; padding-bottom: 10px; border-bottom: 1px solid rgba(201, 169, 110, 0.5); color: #fff; text-decoration: none; font: 500 14px / 1 var(--body); letter-spacing: 0.04em; transition: border-color .5s var(--ease); }
.tlink:hover, .tlink:focus-visible { border-bottom-color: var(--champagne); }
.tlink:hover .cta__line, .tlink:focus-visible .cta__line { width: 54px; }
.cta--solid { background: var(--champagne); border-color: var(--champagne); color: var(--obsidian); }
.cta--solid:hover, .cta--solid:focus-visible { background: #fff; border-color: #fff; color: var(--obsidian); }

/* quote */
.quote { margin: 44px 0 0; padding: 4px 0 4px 24px; border-left: 1px solid var(--champagne); }
.quote p { margin: 0 0 22px; font: italic 400 clamp(23px, 6vw, 30px) / 1.4 var(--display); color: #fff; max-width: 30em; }
.quote footer { display: flex; flex-direction: column; gap: 6px; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.quote footer b { font: 500 12px var(--body); letter-spacing: 0.18em; color: #fff; }
.sig { margin: 28px 0 0; font: italic 400 24px var(--display); color: var(--text-2); }

/* generic split */
.split { display: block; }
.split__side { margin-bottom: 8px; }
.split__main { margin-top: 24px; }

/* 2 shift */
.s-shift { padding-block: 112px; }
.s-shift__col { max-width: 44rem; }
.s-shift .h2 { font-size: clamp(40px, 10.6vw, 72px); }
.s-shift__ask { margin-top: 64px; }
.s-shift__ask .rule { margin-bottom: 36px; }
.ask__pre { margin: 0 0 14px; font-size: 16px; color: var(--text-2); }
.ask__q { margin: 0; font: italic 400 clamp(38px, 10vw, 56px) / 1.08 var(--display); color: #fff; letter-spacing: -0.015em; }

/* 3 equation */
.h2--stair span { display: inline; }
.h2--stair { font-size: clamp(34px, 9.4vw, 56px); margin-bottom: 56px; }
.h2--stair span { display: block; }
.h2--stair span:nth-child(2) { padding-left: 1ch; }
.h2--stair span:nth-child(3) { padding-left: 2ch; }
.h2--stair span:nth-child(4) { padding-left: 3ch; }
.eq { list-style: none; margin: 0; padding: 0; }
.eq li { padding: 28px 0; border-bottom: 1px solid var(--hair); }
.eq i, .stack__n, .stages i, .proof i, .phase__n { font: 500 11px / 1 var(--body); letter-spacing: .2em; color: var(--champagne); font-style: normal; display: block; }
.eq h3 { margin: 18px 0 6px; font: 400 36px / 1.1 var(--display); color: #fff; }
.eq p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 22em; }
.eq__close { margin: 64px 0 0; font: 400 clamp(21px, 5.4vw, 26px) / 1.5 var(--body); color: #fff; max-width: 32em; }

/* 4 stack */
.stack { list-style: none; margin: 40px 0 0; padding: 0; border-left: 1px solid var(--hair); }
.stack__row { position: relative; padding: 30px 0 30px 28px; border-bottom: 1px solid var(--hair); }
.stack__row:first-child { border-top: 1px solid var(--hair); }
.stack__row::before { content: ""; position: absolute; left: -5px; top: 36px; width: 9px; height: 9px; border-radius: 50%; background: var(--obsidian); border: 1px solid var(--champagne); }
.stack__row--core::before { background: var(--champagne); }
.stack__row h3 { margin: 14px 0 10px; font: 400 40px / 1.05 var(--display); color: #fff; }
.stack__row p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 28em; }
.stack__close { margin: 56px 0 0; font: 400 20px / 1.6 var(--body); color: #fff; max-width: 36em; }

/* 5 possible */
.pull { margin: 8px 0 36px; font: 400 clamp(26px, 6.6vw, 32px) / 1.35 var(--display); color: #fff; max-width: 24em; }
.between { display: flex; align-items: center; gap: 24px; margin: 72px 0 0; font: italic 400 22px / 1.3 var(--display); color: var(--text-2); text-align: center; flex-direction: column; }
.between .rule { width: 48px; transform-origin: center; }

/* 6 operator */
.s-op { padding: 0 0 96px; }
.s-op__photo { position: relative; height: 72vw; max-height: 480px; overflow: hidden; margin-bottom: 56px; }
.s-op__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; transform: scale(1.06); transform-origin: 50% 0; filter: grayscale(.15) brightness(.8) contrast(1.1) saturate(.85); }
.s-op__photo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(to top, var(--charcoal), transparent); }
.s-op__body { width: calc(100% - 2 * var(--gx)); margin-inline: auto; }
.nums { list-style: none; margin: 40px 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--hair); border-left: 1px solid var(--hair); }
.nums li { padding: 22px 16px 24px; border-right: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.nums b { display: block; font: 400 clamp(46px, 13vw, 64px) / 1 var(--display); color: #fff; letter-spacing: -0.02em; font-variant-numeric: lining-nums tabular-nums; }
.nums b em { font-style: normal; color: var(--champagne); font-size: .7em; margin-left: 2px; vertical-align: .12em; }
.nums li > span { display: block; margin-top: 12px; font-size: 13px; line-height: 1.45; color: var(--text-2); }

/* 7 proof */
.proofs { list-style: none; margin: 72px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.proof { display: grid; gap: 28px; padding: 44px 0; border-bottom: 1px solid var(--hair); }
.proof h3 { margin: 16px 0 12px; font: 400 clamp(30px, 8vw, 38px) / 1.08 var(--display); color: #fff; }
.proof p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 26em; }
.frame { aspect-ratio: 16 / 10; background: var(--panel); border: 1px solid var(--hair); display: flex; align-items: center; justify-content: center; padding: 16px; text-align: center; }
.frame span { font: 500 10px / 1.6 var(--body); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.s-proof__foot { margin-top: 72px; }
.s-proof__foot .prose-line { max-width: 40em; }
.centre-it { margin: 64px auto 0; max-width: 20em; text-align: center; font: italic 400 clamp(26px, 6.6vw, 36px) / 1.3 var(--display); color: #fff; }

/* 8 programme */
.s-prog { padding-bottom: 0; }
.s-prog__lead { margin-top: 24px; }
.phases { margin-top: 64px; }
.phase { border-top: 1px solid var(--hair); padding: 48px 0; }
.phase--1 { background: #0d0d0d; } .phase--2 { background: #121212; } .phase--3 { background: #161616; }
.phase__in { position: relative; display: grid; gap: 14px; padding-left: 28px; border-left: 1px solid rgba(201,169,110,.45); }
.phase__in::before { content: ""; position: absolute; left: -5px; top: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--champagne); }
.phase h3 { margin: 4px 0 0; font: 400 clamp(36px, 9.4vw, 44px) / 1.05 var(--display); color: #fff; }
.phase p { margin: 0; font-size: 16px; line-height: 1.7; color: var(--text-2); max-width: 32em; }
.phase p b { display: block; margin-bottom: 6px; font-weight: 500; color: #fff; }
.s-prog__foot { padding-top: 72px; padding-bottom: 96px; }
.s-prog__foot .rule--full { margin-bottom: 44px; }
.dossier { margin: 0; font: 400 clamp(22px, 5.6vw, 28px) / 1.5 var(--display); color: #fff; max-width: 30em; }

/* 9 room */
.room__quote { margin: 56px 0 64px; max-width: 62rem; }
.room__big { margin: 0 0 32px; font: italic 400 clamp(44px, 11.6vw, 72px) / 1.04 var(--display); letter-spacing: -0.02em; color: #fff; }
.room__sub { margin: 0; font: 400 clamp(19px, 5vw, 22px) / 1.55 var(--display); color: var(--text-2); max-width: 32em; }
.rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hair); }
.rows li { padding: 26px 0; border-bottom: 1px solid var(--hair); }
.rows b { display: block; margin-bottom: 8px; font: 400 28px / 1.1 var(--display); color: #fff; }
.rows p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 28em; }
.closing { margin: 72px 0 0; font: 400 clamp(28px, 7.6vw, 40px) / 1.25 var(--display); color: #fff; max-width: 22em; letter-spacing: -0.01em; }

/* 10 standard */
.std__lead { margin-top: 8px; }
.fit { margin-top: 48px; display: grid; gap: 0; border-top: 1px solid var(--hair); }
.fit__col { padding: 32px 0; border-bottom: 1px solid var(--hair); }
.fit__col h3 { margin: 0 0 22px; font: 400 clamp(28px, 7vw, 34px) / 1.1 var(--display); }
.fit__col--yes h3, .fit__col--yes li { color: #fff; }
.fit__col--no h3, .fit__col--no li { color: var(--text-2); }
.fit__col ul { list-style: none; margin: 0; padding: 0; }
.fit__col li { padding: 12px 0 12px 22px; position: relative; font-size: 16.5px; line-height: 1.6; max-width: 26em; }
.fit__col li::before { content: ""; position: absolute; left: 0; top: 1.15em; width: 10px; height: 1px; background: currentColor; opacity: .55; }
.bigstat { display: grid; gap: 14px; align-items: end; margin-bottom: 36px; }
.bigstat__n { margin: 0; font: 300 clamp(96px, 30vw, 140px) / .9 var(--display); color: #fff; letter-spacing: -0.04em; font-variant-numeric: lining-nums; }
.bigstat .lead { margin: 0; font-size: 19px; }
.chain { list-style: none; margin: 24px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.chain li { padding: 18px 0; border-bottom: 1px solid var(--hair); font: 400 clamp(26px, 7vw, 36px) / 1.1 var(--display); color: #fff; }
.chain li:first-child { color: var(--text-2); }

/* 11 selection */
.stages { list-style: none; margin: 32px 0 0; padding: 0; border-left: 1px solid var(--hair); }
.stages li { position: relative; padding: 26px 0 26px 28px; border-bottom: 1px solid var(--hair); }
.stages li:first-child { border-top: 1px solid var(--hair); }
.stages li::before { content: ""; position: absolute; left: -5px; top: 31px; width: 9px; height: 9px; border-radius: 50%; background: var(--obsidian); border: 1px solid var(--champagne); }
.stages li:last-child::before { background: var(--champagne); }
.stages h3 { margin: 12px 0 8px; font: 400 clamp(28px, 7.4vw, 34px) / 1.1 var(--display); color: #fff; }
.stages p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--text-2); max-width: 26em; }
.sel__look { margin-top: 72px; grid-column: 1 / -1; }
.inline { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; font: 400 clamp(22px, 6vw, 28px) / 1.2 var(--display); color: #fff; }
.inline li { padding: 10px 22px 10px 0; margin-right: 22px; position: relative; }
.inline li::after { content: ""; position: absolute; right: 0; top: 50%; width: 1px; height: 1em; transform: translateY(-50%); background: rgba(255,255,255,.22); }
.inline li:last-child::after { display: none; }
.statement { margin: 72px 0 24px; font: italic 400 clamp(26px, 6.8vw, 36px) / 1.32 var(--display); color: #fff; max-width: 26em; }
.sel__cta { margin-top: 44px; }
.sel__cta .micro { margin-top: 20px; }

/* 12 founding */
.s-first { padding-block: 128px; background: radial-gradient(ellipse 60% 50% at 50% 42%, rgba(201,169,110,.035), transparent 70%), var(--obsidian); }
.first { width: calc(100% - 2 * var(--gx)); max-width: 44rem; margin-inline: auto; text-align: center; }
.first .eyebrow { margin-bottom: 28px; }
.first .h2 { margin-bottom: 44px; }
.first .prose p { margin-inline: auto; max-width: 30em; text-align: left; }
.first .prose p:first-child, .first .prose p:nth-child(2) { color: #fff; }

/* 13 beyond */
.s-beyond .quote p { font-size: clamp(24px, 6.2vw, 32px); }

/* 14 faq */
.faq { border-top: 1px solid var(--hair); }
.faq details { border-bottom: 1px solid var(--hair); }
.faq summary { list-style: none; cursor: pointer; position: relative; padding: 24px 44px 24px 0; font: 400 clamp(19px, 5vw, 22px) / 1.35 var(--body); color: #fff; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: 4px; top: 50%; width: 14px; height: 1px; background: var(--champagne); transition: transform .5s var(--ease); }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0); }
.faq summary:hover { color: var(--champagne); }
.faq details > p { margin: 0 0 28px; padding-right: 44px; font-size: 17px; line-height: 1.7; color: var(--text-2); max-width: 36em; }

/* 15 apply */
.s-apply { padding-top: 112px; padding-bottom: 112px; }
.apply__edge { display: block; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--champagne); opacity: .6; transform-origin: left; }
.js .apply__edge.reveal { opacity: .6; transform: scaleX(0); transition: transform 2.4s var(--ease); }
.js .apply__edge.reveal.is-in { transform: none; }
.apply__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 40px; margin-top: 44px; }
.apply__cta .tlink { margin-top: 0; }
.s-apply .micro { margin-top: 28px; }
.finale { margin: 96px 0 0; font: 400 clamp(36px, 9.6vw, 60px) / 1.08 var(--display); letter-spacing: -0.02em; color: #fff; max-width: 16em; text-wrap: balance; }

/* ---- tablet and up ---- */
@media (min-width: 768px) {
	.sec { padding: 128px 0; }
	.s-op { padding: 0 0 128px; }
	.h2 { font-size: clamp(48px, 7vw, 72px); }
	.h2--xl { font-size: clamp(52px, 7.8vw, 84px); }
	.s-shift .h2 { font-size: clamp(52px, 8vw, 88px); }
	.h2--stair { font-size: clamp(52px, 8vw, 84px); }
	.prose p, .prose-line { font-size: 17px; }
	.eq { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 48px; }
	.proof { grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
	.nums { grid-template-columns: repeat(4, 1fr); }
	.nums li { padding: 24px 18px; }
	.nums b { font-size: clamp(40px, 6.4vw, 56px); }
	.fit { grid-template-columns: 1fr 1fr; }
	.fit__col + .fit__col { padding-left: 40px; border-left: 1px solid var(--hair); }
	.bigstat { grid-template-columns: auto 1fr; gap: 56px; }
	.bigstat .lead { max-width: 26em; padding-bottom: 14px; }
	.between { flex-direction: row; justify-content: center; }
	.between .rule { width: 72px; }
	.finale { margin-top: 128px; }
	.s-first { padding-block: 168px; }
}

/* ---- desktop ---- */
@media (min-width: 1000px) {
	.sec { padding: 176px 0; }
	.s-shift { padding-block: 200px; }
	.s-shift__col { margin-left: calc((100% / 12) * 2); max-width: 64rem; }
	.s-shift .h2 { font-size: clamp(56px, 5.6vw, 84px); }
	.split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
	.split__side { grid-column: 1 / span 5; margin-bottom: 0; }
	.split__main { grid-column: 7 / span 6; margin-top: 0; }
	.split--even .split__side { grid-column: 1 / span 6; }
	.split--even .split__main { grid-column: 7 / span 6; padding-top: 12px; }
	.split--late .split__side { grid-column: 1 / span 4; }
	.split--late .split__main { grid-column: 6 / span 7; }
	.split > .stack__close, .split > .between, .split > .sel__look, .split > .sel__end { grid-column: 1 / -1; }
	.s-stack .split__side, .s-sel .split__side, .s-faq .split__side { position: sticky; top: 128px; align-self: start; }
	.s-stack .split__main { margin-top: 12px; }
	.stack { margin-top: 0; }
	.stack__row { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 24px; padding: 40px 0 40px 40px; }
	.stack__row::before { top: 46px; }
	.stack__n { grid-row: 1 / span 2; padding-top: 14px; }
	.stack__row h3 { margin: 0 0 12px; font-size: 52px; }
	.stack__close { margin-top: 96px; font-size: 24px; max-width: 34em; margin-left: calc((100% / 12) * 6); }
	.eq { grid-template-columns: repeat(4, 1fr); gap: 0 32px; margin-top: 0; }
	.eq li { border-bottom: 0; padding-top: 40px; }
	.rule--full.reveal { margin-top: 8px; }
	.eq__close { margin-top: 96px; font-size: 26px; margin-left: calc((100% / 12) * 3); }
	.h2--stair { margin-bottom: 72px; }
	.h2--stair span { display: block; line-height: 1; }
	.h2--stair span:nth-child(2) { padding-left: 1.2ch; }
	.h2--stair span:nth-child(3) { padding-left: 2.4ch; }
	.h2--stair span:nth-child(4) { padding-left: 3.6ch; }
	.pull { font-size: 32px; }
	.between { margin-top: 112px; font-size: 26px; }
	/* operator */
	.s-op { display: grid; grid-template-columns: 5fr 7fr; padding: 0; min-height: 880px; }
	.s-op__photo { height: auto; max-height: none; margin: 0; min-height: 100%; }
	.s-op__photo::after { inset: 0 0 0 auto; width: 30%; height: auto; background: linear-gradient(to left, var(--charcoal), transparent); }
	.s-op__body { width: auto; margin: 0; padding: 160px var(--gx) 160px clamp(56px, 6vw, 112px); max-width: 52rem; }
	.nums b { font-size: clamp(48px, 5vw, 80px); }
	.nums li > span { font-size: 14px; }
	.nums li { padding: 28px 20px 30px; }
	.nums { margin: 48px 0; }
	/* proof */
	.s-proof__head { margin-bottom: 8px; }
	.proofs { margin-top: 96px; }
	.proof { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; padding: 56px 0; }
	.proof .frame { aspect-ratio: 2 / 1; }
	.s-proof__foot .prose-line { margin-left: calc((100% / 12) * 5); font-size: 18px; }
	.centre-it { margin-top: 112px; font-size: 44px; max-width: 18em; }
	/* programme */
	.s-prog__lead { margin-left: calc((100% / 12) * 2); max-width: 52rem; margin-top: 40px; }
	.phases { margin-top: 96px; }
	.phase { padding: 72px 0; }
	.phase__in { grid-template-columns: 120px minmax(0, 5fr) minmax(0, 6fr); align-items: start; gap: 0 48px; padding-left: 56px; }
	.phase__n { font-size: 13px; padding-top: 18px; }
	.phase h3 { font-size: 52px; margin: 0; }
	.phase p { font-size: 17px; }
	.s-prog__foot { padding-top: 112px; padding-bottom: 176px; }
	.dossier { font-size: 32px; }
	/* room */
	.room__quote { margin: 72px 0 96px; }
	.room__big { font-size: clamp(72px, 7.6vw, 112px); }
	.room__sub { font-size: 28px; }
	.rows li { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; align-items: baseline; }
	.rows b { margin: 0; font-size: 30px; }
	.sub { margin-top: 40px; }
	.closing { margin-top: 128px; font-size: 44px; }
	/* standard */
	.fit { margin-top: 72px; }
	.fit__col { padding: 48px 0; }
	.fit__col + .fit__col { padding-left: 64px; }
	.bigstat { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; margin-bottom: 56px; }
	.bigstat__n { font-size: clamp(140px, 13vw, 200px); }
	.bigstat .lead { font-size: 21px; padding-bottom: 28px; }
	.s-std .prose--wide { margin-left: calc((100% - 24px) * 5 / 12 + 24px); }
	.chain { margin-top: 48px; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
	.chain li { border-bottom: 0; padding: 28px 16px 28px 0; font-size: clamp(22px, 2.3vw, 36px); }
	.chain li + li { padding-left: 20px; border-left: 1px solid var(--hair); }
	/* selection */
	.stages { margin-top: 12px; }
	.stages li { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 24px; padding: 32px 0 32px 40px; }
	.stages li::before { top: 40px; }
	.stages i { grid-row: 1 / span 2; padding-top: 12px; }
	.stages h3 { margin: 0 0 8px; font-size: 38px; }
	.sel__look { margin-top: 128px; }
	.inline { font-size: 34px; }
	.sel__end { margin-top: 24px; }
	.statement { font-size: 44px; margin-top: 96px; max-width: 24em; }
	.sel__end .prose-line { font-size: 18px; max-width: 34em; }
	/* beyond */
	.s-beyond .h2--xl { margin-bottom: 72px; }
	/* faq */
	.faq summary { padding: 30px 56px 30px 0; }
	.faq summary::before, .faq summary::after { width: 16px; }
	/* apply */
	.s-apply { padding-top: 176px; padding-bottom: 176px; }
	.finale { font-size: clamp(56px, 6vw, 84px); max-width: 15em; margin-top: 160px; }
	.quote { margin-top: 56px; }
}
@media (min-width: 1400px) {
	.quote p { font-size: 34px; }
}

/* =====================================================================
   v0.5 multi-page system
   ===================================================================== */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sec .hl, .phead .hl, .fhead .hl { font: inherit; color: inherit; padding-left: 0; }
.hl .dim { color: var(--text-2); }
.hl em { font-style: italic; }
.br-m { display: none; }

/* page head */
.phead { background: var(--obsidian); padding: calc(var(--header-h) + 40px) 0 72px; border-bottom: 1px solid var(--hair); }
.phead__meta { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 64px; font: 500 10px / 1.3 var(--body); letter-spacing: .24em; text-transform: uppercase; color: var(--muted); animation: sfs-rise 1s var(--ease) .1s both; }
.phead__meta b { font-weight: 500; color: var(--champagne); margin-right: 14px; }
.phead__meta span:last-child { display: none; }
.phead__title { margin: 0; font: 400 clamp(44px, 12.4vw, 76px) / .98 var(--display); letter-spacing: -.03em; color: #fff; }
.phead__title .hl { display: block; overflow: hidden; margin: -.06em 0 -.12em; padding: .06em .1em .14em 0; }
.phead--m .phead__title { font-size: clamp(38px, 10vw, 72px); }
.phead__sub { margin: 56px 0 0; max-width: 34em; animation: sfs-rise 1.1s var(--ease) 1s both; }
.apply__title { margin: 0; font: 400 clamp(36px, 9.6vw, 56px) / 1.04 var(--display); letter-spacing: -.025em; color: #fff; max-width: 15em; text-wrap: balance; }
.apply__title .hl { display: block; overflow: hidden; padding-bottom: .12em; }
.phead--apply { padding-bottom: 88px; }

/* shared editorial pieces */
.mv__big { margin: 0 0 40px; font: 400 clamp(28px, 7.4vw, 40px) / 1.22 var(--display); letter-spacing: -.015em; color: #fff; }
.mv__ask { margin-top: 80px; }
.mv__q { margin: 20px 0 0; font: italic 400 clamp(46px, 13.4vw, 84px) / 1 var(--display); letter-spacing: -.025em; color: #fff; }
.split--label .split__side { margin-bottom: 20px; }
.split--label .eyebrow { margin-bottom: 0; }
.nextband { padding: 72px 0; }
.nextband__in { display: flex; justify-content: flex-start; }
.lead--sm { font-size: 19px; color: var(--text-2); margin-bottom: 32px; }
.closing--sm { margin-top: 0; font-size: clamp(26px, 6.8vw, 36px); }
.centre-it--l { text-align: left; margin: 56px 0 0; max-width: 18em; }
.h2--hero { font-size: clamp(42px, 11.6vw, 64px); }
.h2--hero span { display: block; }

/* home: shift / standard */
.h-shift { padding-block: 120px; }
.h-shift__foot { margin-top: 56px; max-width: 30rem; }
.h-shift__foot p { margin: 0 0 32px; font-size: 17px; line-height: 1.7; color: var(--text-2); }

/* home: capability five */
.h-cap__head { margin-bottom: 56px; }
.h-cap__line { margin: 0; max-width: 28em; font: 400 clamp(22px, 5.6vw, 30px) / 1.4 var(--display); color: #fff; }
.five { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hair); }
.five li { display: flex; align-items: baseline; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--hair); }
.five i { font: 500 11px/1 var(--body); font-style: normal; letter-spacing: .2em; color: var(--champagne); }
.five b { font: 400 clamp(40px, 11.6vw, 56px) / 1 var(--display); letter-spacing: -.02em; color: #fff; }
.five__core b { font-style: italic; }
.h-cap__foot { margin-top: 56px; }

/* home: operator */
.h-op { padding: 0 0 96px; }
.h-op__photo { position: relative; height: 80vw; max-height: 520px; overflow: hidden; margin-bottom: 48px; }
.h-op__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 14%; filter: grayscale(.15) brightness(.8) contrast(1.1) saturate(.85); }
.h-op__photo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 35%; background: linear-gradient(to top, var(--obsidian), transparent); }
.h-op__body { width: calc(100% - 2 * var(--gx)); margin-inline: auto; }
.nums--lg { margin: 48px 0 0; }

/* home: programme statement */
.h-prog { padding-block: 120px; }
.h-prog__stmt { margin: 0; font: 400 clamp(44px, 12.6vw, 84px) / 1 var(--display); letter-spacing: -.03em; color: #fff; }
.h-prog__stmt span { display: block; padding-bottom: .04em; }
.h-prog__stmt em { font-style: italic; }
.h-prog__foot { margin-top: 64px; max-width: 30rem; }
.h-prog__foot p { margin: 0 0 32px; font-size: 17px; line-height: 1.7; color: var(--text-2); }

/* windows: architectural placeholders */
.wins { display: grid; gap: 14px; margin: 56px 0 48px; }
.win { position: relative; background: var(--panel); border: 1px solid var(--hair); display: flex; align-items: flex-end; justify-content: flex-start; padding: 18px; box-sizing: border-box; aspect-ratio: 16 / 10; }
.win::before, .win::after { content: ""; position: absolute; width: 16px; height: 16px; border: 0 solid rgba(201,169,110,.55); }
.win::before { top: 10px; left: 10px; border-top-width: 1px; border-left-width: 1px; }
.win::after { right: 10px; bottom: 10px; border-bottom-width: 1px; border-right-width: 1px; }
.win span { font: 500 10px / 1.6 var(--body); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.wins .win { aspect-ratio: 16 / 9; }

/* home: founding + final CTA */
.h-first { padding-block: 120px; }
.h-final { padding: 120px 0; }
.h-final__t { margin: 0 0 56px; font: 400 clamp(36px, 9.6vw, 60px) / 1.08 var(--display); letter-spacing: -.02em; color: #fff; max-width: 16em; text-wrap: balance; }
.h-final__t em { color: var(--text-2); }
.h-final__act .micro { margin-top: 24px; }

/* academy */
.path { list-style: none; margin: 40px 0 56px; padding: 0; border-top: 1px solid var(--hair); }
.path li { padding: 18px 0; border-bottom: 1px solid var(--hair); font: 400 clamp(38px, 11vw, 56px) / 1 var(--display); letter-spacing: -.02em; color: #fff; }
.path .path__i { color: var(--text-2); }
.defs { margin: 0 0 56px; }
.defs > div { padding: 22px 0; border-bottom: 1px solid var(--hair); }
.defs dt { margin: 0 0 6px; font: 400 32px / 1.1 var(--display); color: #fff; }
.defs dd { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 24em; }
.poss .between { margin-top: 96px; }

/* programme */
.facts { margin: 0 0 40px; border-top: 1px solid var(--hair); }
.facts > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 16px; align-items: baseline; padding: 22px 0; border-bottom: 1px solid var(--hair); }
.facts dt { font: 500 10.5px/1 var(--body); letter-spacing: .22em; text-transform: uppercase; color: var(--champagne); }
.facts dd { margin: 0; font: 400 clamp(26px, 6.8vw, 34px) / 1.15 var(--display); color: #fff; }
.caps { list-style: none; margin: 56px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.caps li { position: relative; padding: 28px 0; border-bottom: 1px solid var(--hair); }
.caps i { display: block; font: 500 11px/1 var(--body); font-style: normal; letter-spacing: .2em; color: var(--champagne); }
.caps h3 { margin: 14px 0 10px; font: 400 clamp(38px, 10vw, 44px) / 1.05 var(--display); color: #fff; }
.caps p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 26em; }
.caps__core h3 { font-style: italic; }
.venture { margin-top: 96px; }
.phs .phases { margin-top: 48px; }
.loop { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--hair); }
.loop li { position: relative; padding: 24px 12px 26px 0; border-bottom: 1px solid var(--hair); font: 400 clamp(26px, 7vw, 34px) / 1.1 var(--display); color: #fff; }
.loop i { display: block; margin-bottom: 14px; font: 500 10.5px/1 var(--body); font-style: normal; letter-spacing: .2em; color: var(--champagne); }
.dos .dossier { margin-top: 0; }

/* fateh paji */
.fhead { background: var(--obsidian); }
.fhead__photo { position: relative; height: 92vw; max-height: 560px; overflow: hidden; }
.fhead__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; filter: grayscale(.15) brightness(.82) contrast(1.1) saturate(.85); }
.fhead__photo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(to top, var(--obsidian), transparent); }
.fhead__body { width: calc(100% - 2 * var(--gx)); margin: 0 auto; padding: 24px 0 88px; position: relative; }
.fhead__body .phead__meta { margin-bottom: 40px; }
.fhead__title { margin: 0; font: 400 clamp(40px, 11.4vw, 64px) / 1 var(--display); letter-spacing: -.03em; color: #fff; }
.fhead__title .hl { display: block; overflow: hidden; margin: -.06em 0 -.12em; padding: .06em .1em .14em 0; }
.story__big { margin: 8px 0 28px; font: 400 clamp(26px, 6.8vw, 34px) / 1.25 var(--display); color: var(--text-2); }
.lines { list-style: none; margin: 0 0 48px; padding: 0; border-top: 1px solid var(--hair); }
.lines li { padding: 18px 0; border-bottom: 1px solid var(--hair); font: 400 clamp(34px, 9.6vw, 48px) / 1.05 var(--display); letter-spacing: -.015em; color: #fff; }
.bigquote { margin: 40px 0 0; max-width: 60rem; }
.bigquote p { margin: 0 0 32px; font: italic 400 clamp(28px, 7.4vw, 44px) / 1.28 var(--display); letter-spacing: -.01em; color: #fff; }
.bigquote footer { display: flex; flex-direction: column; gap: 6px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.bigquote footer b { font: 500 12px var(--body); letter-spacing: .18em; color: #fff; }

/* work */
.archive .wrap { display: grid; gap: 72px; }
.wk { display: grid; gap: 24px; }
.wk__txt i { display: block; font: 500 11px/1 var(--body); font-style: normal; letter-spacing: .2em; color: var(--champagne); }
.wk__txt h3 { margin: 16px 0 12px; font: 400 clamp(32px, 8.4vw, 44px) / 1.08 var(--display); color: #fff; }
.wk__txt p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 26em; }
.win--wk { aspect-ratio: 16 / 10; }
.principle .centre-it { color: #fff; }

/* standard */
.fitsec .fit { margin-top: 0; }
.commit .inline { margin: 0 0 40px; }
.commit .bigstat, .small .bigstat { margin-top: 8px; }
.idx { list-style: none; margin: 72px 0 0; padding: 0; border-top: 1px solid var(--hair); }
.idx li { padding: 28px 0; border-bottom: 1px solid var(--hair); }
.idx i { display: block; font: 300 44px / 1 var(--display); font-style: normal; color: var(--champagne); margin-bottom: 14px; }
.idx h3 { margin: 0 0 8px; font: 400 clamp(30px, 8vw, 36px) / 1.1 var(--display); color: #fff; }
.idx p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--text-2); max-width: 28em; }
.selsec .sel__look { margin-top: 88px; grid-column: auto; }
.selsec .statement { margin-top: 72px; }

/* apply */
.appbox { border: 1px solid var(--hair); background: var(--panel); padding: 36px 28px; min-height: 280px; display: flex; flex-direction: column; justify-content: space-between; position: relative; }
.appbox::before, .appbox::after { content: ""; position: absolute; width: 16px; height: 16px; border: 0 solid rgba(201,169,110,.55); }
.appbox::before { top: 10px; left: 10px; border-top-width: 1px; border-left-width: 1px; }
.appbox::after { right: 10px; bottom: 10px; border-bottom-width: 1px; border-right-width: 1px; }
.appbox__k { margin: 0; font: 500 10.5px/1 var(--body); letter-spacing: .24em; text-transform: uppercase; color: var(--champagne); }
.appbox__ph { margin: 40px 0; font: 400 24px / 1.3 var(--display); color: var(--muted); }
.appbox .micro { margin: 0; }
.apfaq .split__main { margin-top: 32px; }

/* footer (institutional) */
.site-footer { padding: 72px 0 32px; }
.footer-logo { display: inline-block; line-height: 0; margin-bottom: 24px; }
.footer-logo img { height: 64px; width: auto; display: block; }
.footer-list--cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.footer-list--cols li { margin: 0; }
.footer-list--cols a { display: block; padding: 11px 0; border-bottom: 1px solid var(--hair); font-size: 15px; color: var(--text-2); }
.footer-list--cols a:hover { color: #fff; }
.site-footer__bottom { margin-top: 56px; flex-direction: column; align-items: flex-start; gap: 6px; }

/* ---- tablet ---- */
@media (min-width: 768px) {
	.phead { padding: calc(var(--header-h) + 56px) 0 96px; }
	.phead__meta span:last-child { display: inline; }
	.phead__title { font-size: clamp(60px, 10.4vw, 120px); }
	.phead--m .phead__title { font-size: clamp(48px, 8.4vw, 96px); }
	.apply__title { font-size: clamp(44px, 7vw, 76px); }
	.mv__q { font-size: clamp(64px, 11vw, 120px); }
	.h-shift, .h-prog, .h-first, .h-final { padding-block: 160px; }
	.h2--hero { font-size: clamp(56px, 9vw, 96px); }
	.wins { grid-template-columns: repeat(3, 1fr); align-items: end; margin: 72px 0 56px; }
	.win--tall { aspect-ratio: 3 / 4 !important; }
	.win--short { aspect-ratio: 1 / 1 !important; }
	.five b { font-size: clamp(48px, 9vw, 72px); }
	.path { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 0; margin-top: 56px; }
	.path li { border-bottom: 0; border-top: 1px solid var(--hair); padding: 22px 12px 0 0; font-size: clamp(18px, 2.6vw, 34px); position: relative; }
	.path li::before { content: ""; position: absolute; left: 0; top: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--obsidian); border: 1px solid var(--champagne); }
	.path li:last-child::before { background: var(--champagne); }
	.defs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 32px; }
	.defs > div { border-bottom: 0; border-top: 1px solid var(--hair); padding-top: 24px; }
	.caps { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 0; }
	.caps li { border-bottom: 0; border-top: 1px solid var(--hair); padding: 24px 20px 0 0; }
	.caps li + li { padding-left: 20px; border-left: 1px solid var(--hair); }
	.caps li:first-child { padding-left: 0; }
	.caps h3 { font-size: clamp(26px, 3.1vw, 44px); }
	.caps p { font-size: 15px; }
	.loop { grid-template-columns: repeat(4, 1fr); }
	.facts > div { grid-template-columns: 11rem 1fr; }
	.fhead__photo { height: 78vw; }
	.archive .wrap { gap: 112px; }
	.nextband { padding: 96px 0; }
	.idx li { display: grid; grid-template-columns: 120px minmax(0, 1fr); column-gap: 32px; align-items: baseline; padding: 36px 0; }
	.idx i { margin: 0; font-size: 56px; grid-row: 1 / span 2; }
	.idx h3 { font-size: 40px; }
	.footer-list--cols { grid-template-columns: repeat(2, 1fr); }
}

/* ---- desktop ---- */
@media (min-width: 1000px) {
	.phead { padding: calc(var(--header-h) + 72px) 0 120px; }
	.phead__meta { margin-bottom: 120px; }
	.phead__title { font-size: clamp(88px, 10.2vw, 168px); }
	.phead--m .phead__title { font-size: clamp(72px, 7.8vw, 128px); }
	.phead__sub { margin-left: calc((100% - 24px) * 5 / 12 + 24px); margin-top: 72px; }
	.apply__title { font-size: clamp(60px, 6.2vw, 100px); }
	.phead--apply { padding-bottom: 120px; }
	.split--label .split__side { grid-column: 1 / span 3; }
	.split--label .split__main { grid-column: 4 / span 8; }
	.mv__big { font-size: clamp(36px, 3.6vw, 56px); margin-bottom: 56px; }
	.mv__ask { margin-top: 128px; }
	.mv__q { font-size: clamp(100px, 11vw, 180px); }
	.mv__ask .ask__pre { max-width: 34em; }
	.h-shift, .h-prog, .h-first, .h-final { padding-block: 224px; }
	.h-shift .h2--hero { font-size: clamp(76px, 8.4vw, 136px); }
	.h-std .h2--hero { font-size: clamp(64px, 6.8vw, 112px); }
	.h-shift__foot { display: grid; grid-template-columns: minmax(0, 5fr) auto; column-gap: 64px; align-items: end; max-width: none; margin-top: 96px; }
	.h-shift__foot p { margin: 0; max-width: 24em; }
	.h-cap__head { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; align-items: end; margin-bottom: 120px; }
	.h-cap__head .eyebrow { grid-column: 1 / span 4; margin: 0; }
	.h-cap__line { grid-column: 7 / span 6; }
	.five { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 0; }
	.five li { display: block; border-bottom: 0; border-top: 1px solid var(--hair); padding: 28px 16px 0 0; }
	.five li + li { padding-left: 24px; border-left: 1px solid var(--hair); }
	.five i { display: block; margin-bottom: 120px; }
	.five b { display: block; font-size: clamp(34px, 3.8vw, 62px); }
	.h-cap__foot { margin-top: 120px; }
	.h-op { display: grid; grid-template-columns: 6fr 6fr; padding: 0; min-height: 800px; }
	.h-op__photo { height: auto; max-height: none; margin: 0; }
	.h-op__photo::after { inset: 0 0 0 auto; width: 35%; height: auto; background: linear-gradient(to left, var(--obsidian), transparent); }
	.h-op__body { width: auto; margin: 0; padding: 160px var(--gx) 160px clamp(48px, 6vw, 112px); max-width: 50rem; align-self: center; }
	.h-prog__stmt { font-size: clamp(88px, 11vw, 188px); }
	.h-prog__foot { display: grid; grid-template-columns: minmax(0, 5fr) auto; column-gap: 64px; align-items: end; max-width: none; margin-top: 120px; }
	.h-prog__foot p { margin: 0; max-width: 26em; }
	.h-work__head { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; }
	.h-work__head .eyebrow { grid-column: 1 / -1; }
	.h-work__head .h2 { grid-column: 1 / span 7; }
	.h-work__head .lead { grid-column: 9 / span 4; align-self: end; margin-bottom: 40px; }
	.wins { gap: 24px; margin: 96px 0 72px; }
	.h-final__t { font-size: clamp(56px, 6vw, 96px); margin-bottom: 80px; }
	.h-final__act { display: flex; align-items: center; gap: 40px; flex-wrap: wrap; }
	.h-final__act .micro { margin: 0; }
	.nextband { padding: 128px 0; }
	.nextband .cta { height: 72px; padding: 0 40px; font-size: 15px; }
	.path li { font-size: clamp(22px, 2.6vw, 44px); }
	.defs { margin-bottom: 96px; }
	.facts > div { grid-template-columns: 14rem 1fr; padding: 28px 0; }
	.caps { margin-top: 96px; }
	.caps li { padding-top: 32px; min-height: 280px; }
	.caps i { margin-bottom: 72px; }
	.caps h3 { margin: 0 0 14px; }
	.fhead { display: grid; grid-template-columns: 6fr 6fr; min-height: 100vh; min-height: 100svh; }
	.fhead__photo { height: auto; max-height: none; min-height: 100%; }
	.fhead__photo::after { inset: 0 0 0 auto; width: 30%; height: auto; background: linear-gradient(to left, var(--obsidian), transparent); }
	.fhead__body { width: auto; margin: 0; padding: calc(var(--header-h) + 48px) var(--gx) 72px clamp(48px, 5vw, 96px); display: flex; flex-direction: column; }
	.fhead__body .phead__meta { margin-bottom: auto; padding-bottom: 56px; }
	.fhead__title { font-size: clamp(56px, 5.6vw, 96px); }
	.nums--lg { margin-top: 64px; }
	.story__big { font-size: 34px; }
	.lines { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }
	.lines li { font-size: clamp(34px, 3.2vw, 52px); }
	.bigquote p { font-size: clamp(36px, 3.8vw, 60px); }
	.archive .wrap { gap: 160px; }
	.wk { grid-template-columns: repeat(12, 1fr); column-gap: 24px; align-items: end; }
	.wk .wk__txt { grid-column: 1 / span 4; padding-bottom: 8px; }
	.wk .win { grid-column: 5 / span 8; aspect-ratio: 16 / 9; }
	.wk--flip .win { grid-column: 1 / span 8; grid-row: 1; }
	.wk--flip .wk__txt { grid-column: 9 / span 4; grid-row: 1; }
	.idx { margin-top: 112px; }
	.idx li { grid-template-columns: 200px minmax(0, 5fr) minmax(0, 6fr); align-items: baseline; padding: 40px 0; }
	.idx i { grid-row: auto; font-size: 72px; }
	.idx h3 { font-size: 48px; }
	.idx p { font-size: 17px; }
	.selsec .sel__look { margin-top: 160px; }
	.selsec .statement { margin-top: 128px; }
	.selsec .prose-line { margin-top: 32px; }
	.appbox { padding: 56px 48px; min-height: 420px; }
	.apfaq .split__main { margin-top: 0; }
	.site-footer { padding: 112px 0 40px; }
	.site-footer__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); }
	.footer-logo img { height: 84px; }
	.footer-list--cols { grid-template-columns: repeat(2, 1fr); }
	.site-footer__bottom { flex-direction: row; justify-content: space-between; align-items: center; margin-top: 96px; }
}

/* v0.5.1 */
.fhead__photo::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 180px; z-index: 1; background: linear-gradient(to bottom, rgba(5,5,5,.85), rgba(5,5,5,0)); pointer-events: none; }
@media (min-width: 1000px) {
	.phead__title { font-size: clamp(80px, 8.4vw, 136px); }
	.phead--m .phead__title { font-size: clamp(68px, 7.4vw, 120px); }
}
