:root {
  --paper: #fdfcf9;
  --ink: #202b3d;
  --muted: #68707c;
  --gold: #b79355;
  --gold-light: #f0d7a5;
  --green: #203b30;
  --night: #060e0b;
  --white: #fffdf7;
  --line-light: rgba(var(--white-rgb),.18);
  --glass: rgba(var(--night-rgb),.54);
  --night-rgb: 6,14,11;
  --paper-rgb: 253,252,249;
  --ink-rgb: 32,43,61;
  --gold-rgb: 183,147,85;
  --gold-light-rgb: 240,215,165;
  --white-rgb: 255,253,247;
  --chart-1: var(--green);
  --chart-2: var(--gold);
  --chart-3: var(--gold-light);
  --chart-4: var(--muted);
  --chart-5: var(--white);
  --serif: 'Newsreader', Georgia, serif;
  --sans: 'Manrope', system-ui, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
  --content: 1180px;
  --gutter: clamp(1.2rem,4vw,3.5rem);
}

:root[data-theme="alpine"] {
  --paper: #f4f2e9; --paper-rgb: 244,242,233;
  --ink: #25342d; --ink-rgb: 37,52,45;
  --muted: #667169; --gold: #a89058; --gold-rgb: 168,144,88; --gold-light: #e5d29b; --gold-light-rgb: 229,210,155;
  --green: #4a624f; --night: #0b130e; --night-rgb: 11,19,14;
  --white: #fffdf5; --white-rgb: 255,253,245; --glass: rgba(11,19,14,.56);
}
:root[data-theme="mineral"] {
  --paper: #f4f0e9; --paper-rgb: 244,240,233;
  --ink: #293239; --ink-rgb: 41,50,57;
  --muted: #687078; --gold: #b36f4f; --gold-rgb: 179,111,79; --gold-light: #e7bd9d; --gold-light-rgb: 231,189,157;
  --green: #394f50; --night: #091215; --night-rgb: 9,18,21;
  --white: #fffaf4; --white-rgb: 255,250,244; --glass: rgba(9,18,21,.57);
}
:root[data-theme="plum"] {
  --paper: #faf5ef; --paper-rgb: 250,245,239;
  --ink: #362b36; --ink-rgb: 54,43,54;
  --muted: #746a72; --gold: #b8895a; --gold-rgb: 184,137,90; --gold-light: #edc995; --gold-light-rgb: 237,201,149;
  --green: #543c4b; --night: #150d14; --night-rgb: 21,13,20;
  --white: #fff9f3; --white-rgb: 255,249,243; --glass: rgba(21,13,20,.57);
}
:root[data-theme="ivory"] {
  --paper: #f7f4ed; --paper-rgb: 247,244,237;
  --ink: #171a19; --ink-rgb: 23,26,25;
  --muted: #686b67; --gold: #8a7651; --gold-rgb: 138,118,81; --gold-light: #ded1b2; --gold-light-rgb: 222,209,178;
  --green: #29352f; --night: #111513; --night-rgb: 17,21,19;
  --white: #fcfaf5; --white-rgb: 252,250,245; --glass: rgba(17,21,19,.56);
}
:root[data-theme="mono"] {
  --paper: #f4f4f1; --paper-rgb: 244,244,241;
  --ink: #171717; --ink-rgb: 23,23,23;
  --muted: #6b6b68; --gold: #8c8c84; --gold-rgb: 140,140,132; --gold-light: #deded6; --gold-light-rgb: 222,222,214;
  --green: #30302e; --night: #101010; --night-rgb: 16,16,16;
  --white: #fafafa; --white-rgb: 250,250,250; --glass: rgba(16,16,16,.58);
}
:root[data-theme="adriatic"] {
  --paper: #eef6f8; --paper-rgb: 238,246,248;
  --ink: #102d3b; --ink-rgb: 16,45,59;
  --muted: #607680; --gold: #28a6c7; --gold-rgb: 40,166,199; --gold-light: #9de8f2; --gold-light-rgb: 157,232,242;
  --green: #14536d; --night: #051821; --night-rgb: 5,24,33;
  --white: #f5fdff; --white-rgb: 245,253,255; --glass: rgba(5,24,33,.57);
}
:root[data-theme="terracotta"] {
  --paper: #fbf0e7; --paper-rgb: 251,240,231;
  --ink: #3a2119; --ink-rgb: 58,33,25;
  --muted: #7c675f; --gold: #d66b45; --gold-rgb: 214,107,69; --gold-light: #f2b38e; --gold-light-rgb: 242,179,142;
  --green: #713d2e; --night: #1c0d09; --night-rgb: 28,13,9;
  --white: #fff8f2; --white-rgb: 255,248,242; --glass: rgba(28,13,9,.57);
}
:root[data-theme="violet"] {
  --paper: #f4f0fa; --paper-rgb: 244,240,250;
  --ink: #2e2542; --ink-rgb: 46,37,66;
  --muted: #756d84; --gold: #9a74e8; --gold-rgb: 154,116,232; --gold-light: #dac7ff; --gold-light-rgb: 218,199,255;
  --green: #503879; --night: #100a1d; --night-rgb: 16,10,29;
  --white: #fcf9ff; --white-rgb: 252,249,255; --glass: rgba(16,10,29,.58);
}
:root[data-theme="citrus"] {
  --paper: #f6f6e9; --paper-rgb: 246,246,233;
  --ink: #252a14; --ink-rgb: 37,42,20;
  --muted: #6d705e; --gold: #b3c93b; --gold-rgb: 179,201,59; --gold-light: #e5f18e; --gold-light-rgb: 229,241,142;
  --green: #485523; --night: #111608; --night-rgb: 17,22,8;
  --white: #fcfff4; --white-rgb: 252,255,244; --glass: rgba(17,22,8,.58);
}
:root[data-theme="crimson"] {
  --paper: #faeff1; --paper-rgb: 250,239,241;
  --ink: #3c2028; --ink-rgb: 60,32,40;
  --muted: #806971; --gold: #d65372; --gold-rgb: 214,83,114; --gold-light: #f3adbd; --gold-light-rgb: 243,173,189;
  --green: #71283d; --night: #1a0910; --night-rgb: 26,9,16;
  --white: #fff8fa; --white-rgb: 255,248,250; --glass: rgba(26,9,16,.58);
}
:root[data-theme="arctic"] {
  --paper: #f1f6f8; --paper-rgb: 241,246,248;
  --ink: #1c303b; --ink-rgb: 28,48,59;
  --muted: #687b84; --gold: #5f91a6; --gold-rgb: 95,145,166; --gold-light: #c5e5ef; --gold-light-rgb: 197,229,239;
  --green: #345d6b; --night: #07151b; --night-rgb: 7,21,27;
  --white: #f8fdff; --white-rgb: 248,253,255; --glass: rgba(7,21,27,.58);
}

:root[data-font="modern"] { --serif: 'Sora', system-ui, sans-serif; --sans: 'Inter', system-ui, sans-serif; }
:root[data-font="classic"] { --serif: 'Cormorant Garamond', Georgia, serif; --sans: 'Manrope', system-ui, sans-serif; }
:root[data-font="architect"] { --serif: 'Syne', system-ui, sans-serif; --sans: 'Inter', system-ui, sans-serif; }
:root[data-font="humanist"] { --serif: 'Fraunces', Georgia, serif; --sans: 'Manrope', system-ui, sans-serif; }
:root[data-font="modern"] h1,:root[data-font="modern"] h2,:root[data-font="modern"] h3 { font-weight: 600; letter-spacing: -.045em; }
:root[data-font="classic"] h1,:root[data-font="classic"] h2,:root[data-font="classic"] h3 { font-weight: 600; letter-spacing: -.025em; }
:root[data-font="architect"] h1,:root[data-font="architect"] h2,:root[data-font="architect"] h3 { font-weight: 600; letter-spacing: -.05em; }
:root[data-font="humanist"] h1,:root[data-font="humanist"] h2,:root[data-font="humanist"] h3 { font-weight: 600; letter-spacing: -.035em; }

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; background: var(--night); }
body { min-width: 320px; color: var(--white); background: var(--night); font: 400 1.04rem/1.68 var(--sans); letter-spacing: -.006em; -webkit-font-smoothing: antialiased; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.02; letter-spacing: -.035em; overflow-wrap: anywhere; text-wrap: balance; }
h1 { font-size: clamp(3.1rem,5.9vw,5.8rem); }
h2 { font-size: clamp(2.35rem,3.9vw,3.75rem); }
h3 { font-size: clamp(1.75rem,2.55vw,2.55rem); }
.eyebrow { margin-bottom: 1rem; color: var(--gold-light); font: 500 .73rem/1.4 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.sub { max-width: 64ch; color: rgba(var(--white-rgb),.88); font-size: 1.08rem; }

/* Film */
.film-loader { position: fixed; z-index: 1000; inset: 0; display: grid; grid-template-columns: minmax(0,24rem) 3rem; grid-template-rows: auto auto auto; place-content: center; gap: .9rem 1rem; padding: clamp(2rem,6vw,4.5rem); color: var(--ink); background: radial-gradient(circle at 50% 42%,rgba(var(--gold-light-rgb),.2),transparent 32%),var(--paper); transition: opacity .55s ease,visibility .55s ease; }
.film-loader::before { content: ''; position: absolute; inset: clamp(1rem,3vw,2rem); pointer-events: none; border: 1px solid rgba(var(--gold-rgb),.42); }
.film-loader::after { content: ''; position: absolute; top: clamp(1rem,3vw,2rem); left: 50%; width: min(8rem,26vw); height: 1px; background: var(--gold); transform: translateX(-50%); }
.film-loader.is-hidden { visibility: hidden; opacity: 0; pointer-events: none; }
.film-loader img { grid-column: 1 / -1; width: min(54vw,220px); height: auto; margin: 0 auto .9rem; filter: drop-shadow(0 9px 24px rgba(var(--ink-rgb),.08)); }
.film-loader p { grid-column: 1 / -1; margin: 0 0 .45rem; color: var(--muted); font: 500 .68rem/1.5 var(--mono); letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.film-loader-track { align-self: center; overflow: hidden; width: min(68vw,24rem); height: 3px; background: rgba(var(--ink-rgb),.12); }
.film-loader-track i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg,var(--gold),var(--gold-light)); box-shadow: 0 0 12px rgba(var(--gold-rgb),.28); transform: scaleX(0); transform-origin: left; transition: transform .18s linear; }
.film-loader > span { min-width: 3rem; color: var(--muted); font: 500 .68rem var(--mono); letter-spacing: .08em; }
body.film-preloading { overflow: hidden; }
.film-stage { position: fixed; inset: 0; z-index: 0; overflow: hidden; background: var(--night); }
.film-stage img, .film-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
#filmPoster, #filmCanvas { filter: blur(.25px) contrast(1.04) saturate(1.05) brightness(1.01); transform: scale(1.004); }
#filmCanvas { opacity: 0; transition: opacity .45s ease; }
#filmCanvas.ready { opacity: 1; }
.film-vignette { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 88% 82% at 50% 48%,transparent 58%,rgba(var(--night-rgb),.11) 100%),linear-gradient(135deg,rgba(var(--white-rgb),.025),transparent 46%,rgba(var(--night-rgb),.035)); backdrop-filter: blur(.2px); }
.film-grain { position: absolute; inset: -8px; pointer-events: none; background: url('assets/img/grain.png') repeat; background-size: 128px; opacity: .22; mix-blend-mode: soft-light; animation: grainShift .9s steps(3) infinite; }
@keyframes grainShift { 33% { transform: translate(-4px,3px); } 66% { transform: translate(3px,-4px); } }

/* Light sticky header */
.nav { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; gap: 2rem; min-height: 72px; padding: .55rem var(--gutter); color: var(--ink); background: rgba(var(--paper-rgb),.94); border-bottom: 1px solid rgba(var(--ink-rgb),.14); backdrop-filter: blur(14px); }
.nav-brand { display: flex; align-items: center; gap: .72rem; flex: 0 0 auto; text-decoration: none; }
.nav-brand span { display: flex; align-items: center; }
.nav-icon img { height: 48px; width: auto; }
.nav-wordmark img { height: 38px; width: auto; }
.nav-links { display: flex; gap: 1.6rem; margin-left: auto; }
.nav-links a { position: relative; color: var(--muted); font-size: .82rem; font-weight: 500; text-decoration: none; transition: color .25s ease; }
.nav-links a::after { content: ''; position: absolute; right: 0; bottom: -.55rem; left: 0; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.nav-links a:hover, .nav-links a.active { color: var(--gold); }
.nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); }
.nav-toggle { display: none; width: 2.75rem; height: 2.75rem; place-items: center; color: var(--ink); background: transparent; border: 1px solid rgba(var(--ink-rgb),.2); cursor: pointer; }
.nav-toggle i,.nav-toggle i::before,.nav-toggle i::after { display: block; width: 1rem; height: 1px; background: currentColor; transition: transform .25s ease,opacity .2s ease; }
.nav-toggle i { position: relative; }
.nav-toggle i::before,.nav-toggle i::after { content: ''; position: absolute; left: 0; }
.nav-toggle i::before { top: -.32rem; }
.nav-toggle i::after { top: .32rem; }
.nav-toggle[aria-expanded="true"] i { background: transparent; }
.nav-toggle[aria-expanded="true"] i::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] i::after { top: 0; transform: rotate(-45deg); }
.lang-switch { display: flex; align-items: center; padding-left: .8rem; border-left: 1px solid rgba(var(--ink-rgb),.16); }
.lang-switch button { min-width: 2rem; padding: .35rem .3rem; color: var(--muted); background: transparent; border: 0; cursor: pointer; font: 500 .61rem var(--mono); letter-spacing: .08em; }
.lang-switch button:hover { color: var(--gold); }
.lang-switch button[aria-pressed="true"] { color: var(--paper); background: var(--green); }
.nav-cta { position: relative; overflow: hidden; padding: .65rem .9rem; border: 1px solid var(--ink); font: 500 .66rem var(--mono); letter-spacing: .1em; text-decoration: none; text-transform: uppercase; animation: ctaBreathe 3.2s ease-in-out infinite; }
.nav-cta::before { content: ''; position: absolute; top: -40%; bottom: -40%; left: -45%; width: 34%; pointer-events: none; background: linear-gradient(90deg,transparent,rgba(var(--gold-rgb),.4),transparent); transform: skewX(-18deg); animation: ctaGlint 3.2s ease-in-out infinite; }
.nav-cta:hover { color: var(--paper); background: var(--ink); animation-play-state: paused; }
.nav-cta:hover::before, .nav-cta:focus-visible::before { animation-play-state: paused; opacity: 0; }
@keyframes ctaBreathe { 0%,66%,100% { border-color: var(--ink); background: transparent; box-shadow: none; transform: translateY(0); } 74% { border-color: var(--gold); background: rgba(var(--gold-rgb),.08); box-shadow: 0 7px 18px rgba(var(--gold-rgb),.2); transform: translateY(-2px); } 83% { border-color: var(--ink); background: transparent; box-shadow: none; transform: translateY(0); } }
@keyframes ctaGlint { 0%,64% { left: -45%; opacity: 0; } 69% { opacity: 1; } 83% { left: 120%; opacity: 0; } 100% { left: 120%; opacity: 0; } }
.cta-short { display: none; }
.nav-progress { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; pointer-events: none; background: linear-gradient(90deg,var(--gold),var(--green)); transform: scaleX(0); transform-origin: left; will-change: transform; }

/* Developer theme preview */
.theme-lab { display: none; position: fixed; right: 1rem; bottom: 1rem; z-index: 120; color: var(--white); font-family: var(--sans); }
.dev-mode .theme-lab { display: block; }
.theme-lab > summary { position: relative; z-index: 2; display: grid; width: 3.35rem; height: 3.35rem; margin-left: auto; place-content: center; color: var(--white); background: rgba(var(--night-rgb),.9); border: 1px solid rgba(var(--white-rgb),.25); border-radius: 50%; box-shadow: 0 10px 28px rgba(0,0,0,.28); cursor: pointer; list-style: none; text-align: center; backdrop-filter: blur(12px); transition: border-color .25s ease,transform .25s ease,background .25s ease; }
.theme-lab > summary::-webkit-details-marker { display: none; }
.theme-lab > summary span,.theme-lab > summary strong { display: block; }
.theme-lab > summary span { color: var(--gold-light); font: 500 .48rem/1 var(--mono); letter-spacing: .13em; }
.theme-lab > summary strong { margin-top: .18rem; font: 600 .84rem/1 var(--mono); letter-spacing: .08em; }
.theme-lab > summary:hover,.theme-lab[open] > summary { border-color: var(--gold-light); background: var(--green); transform: translateY(-2px); }
.theme-panel { position: absolute; right: 0; bottom: 4.05rem; display: block; width: min(21rem,calc(100vw - 2rem)); max-height: min(42rem,calc(100vh - 6rem)); overflow-y: auto; padding: 1rem; background: rgba(var(--night-rgb),.94); border: 1px solid rgba(var(--white-rgb),.18); box-shadow: 0 20px 55px rgba(0,0,0,.38); opacity: 0; visibility: hidden; transform: translateY(8px) scale(.98); transform-origin: bottom right; backdrop-filter: blur(18px); transition: opacity .22s ease,visibility .22s ease,transform .22s ease; }
.theme-lab[open] .theme-panel,.theme-lab:hover .theme-panel,.theme-lab:focus-within .theme-panel { opacity: 1; visibility: visible; transform: none; }
.theme-panel-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .75rem; padding-bottom: .7rem; border-bottom: 1px solid rgba(var(--white-rgb),.15); }
.theme-panel-head span { font: 600 1.05rem var(--serif); }
.theme-panel-head small { color: var(--gold-light); font: 500 .55rem var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.theme-section > p { margin: .75rem 0 .35rem; color: rgba(var(--white-rgb),.58); font: 500 .54rem var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.theme-options { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; }
.theme-options button { display: grid; grid-template-columns: 2.35rem 1fr; gap: .55rem; align-items: center; width: 100%; min-width: 0; padding: .55rem; color: var(--white); background: transparent; border: 1px solid transparent; cursor: pointer; text-align: left; transition: background .2s ease,border-color .2s ease; }
.theme-options button:hover { background: rgba(var(--white-rgb),.07); }
.theme-options button[aria-pressed="true"] { background: rgba(var(--white-rgb),.08); border-color: var(--gold-light); }
.theme-options button > i { display: flex; height: 2rem; overflow: hidden; border: 1px solid rgba(var(--white-rgb),.22); border-radius: 1rem; }
.theme-options button b { flex: 1; }
.theme-options button span,.theme-options button strong,.theme-options button small { display: block; }
.theme-options button strong { font-size: .74rem; font-weight: 600; }
.theme-options button small { margin-top: .1rem; color: rgba(var(--white-rgb),.6); font-size: .58rem; }
.theme-options button[data-theme="botanical"] i b:nth-child(1) { background: #060e0b; } .theme-options button[data-theme="botanical"] i b:nth-child(2) { background: #b79355; } .theme-options button[data-theme="botanical"] i b:nth-child(3) { background: #fdfcf9; }
.theme-options button[data-theme="alpine"] i b:nth-child(1) { background: #0b130e; } .theme-options button[data-theme="alpine"] i b:nth-child(2) { background: #4a624f; } .theme-options button[data-theme="alpine"] i b:nth-child(3) { background: #e5d29b; }
.theme-options button[data-theme="mineral"] i b:nth-child(1) { background: #091215; } .theme-options button[data-theme="mineral"] i b:nth-child(2) { background: #b36f4f; } .theme-options button[data-theme="mineral"] i b:nth-child(3) { background: #f4f0e9; }
.theme-options button[data-theme="plum"] i b:nth-child(1) { background: #150d14; } .theme-options button[data-theme="plum"] i b:nth-child(2) { background: #543c4b; } .theme-options button[data-theme="plum"] i b:nth-child(3) { background: #edc995; }
.theme-options button[data-theme="ivory"] i b:nth-child(1) { background: #111513; } .theme-options button[data-theme="ivory"] i b:nth-child(2) { background: #8a7651; } .theme-options button[data-theme="ivory"] i b:nth-child(3) { background: #f7f4ed; }
.theme-options button[data-theme="mono"] i b:nth-child(1) { background: #101010; } .theme-options button[data-theme="mono"] i b:nth-child(2) { background: #8c8c84; } .theme-options button[data-theme="mono"] i b:nth-child(3) { background: #f4f4f1; }
.theme-options button[data-theme="adriatic"] i b:nth-child(1) { background: #051821; } .theme-options button[data-theme="adriatic"] i b:nth-child(2) { background: #28a6c7; } .theme-options button[data-theme="adriatic"] i b:nth-child(3) { background: #eef6f8; }
.theme-options button[data-theme="terracotta"] i b:nth-child(1) { background: #1c0d09; } .theme-options button[data-theme="terracotta"] i b:nth-child(2) { background: #d66b45; } .theme-options button[data-theme="terracotta"] i b:nth-child(3) { background: #fbf0e7; }
.theme-options button[data-theme="violet"] i b:nth-child(1) { background: #100a1d; } .theme-options button[data-theme="violet"] i b:nth-child(2) { background: #9a74e8; } .theme-options button[data-theme="violet"] i b:nth-child(3) { background: #f4f0fa; }
.theme-options button[data-theme="citrus"] i b:nth-child(1) { background: #111608; } .theme-options button[data-theme="citrus"] i b:nth-child(2) { background: #b3c93b; } .theme-options button[data-theme="citrus"] i b:nth-child(3) { background: #f6f6e9; }
.theme-options button[data-theme="crimson"] i b:nth-child(1) { background: #1a0910; } .theme-options button[data-theme="crimson"] i b:nth-child(2) { background: #d65372; } .theme-options button[data-theme="crimson"] i b:nth-child(3) { background: #faeff1; }
.theme-options button[data-theme="arctic"] i b:nth-child(1) { background: #07151b; } .theme-options button[data-theme="arctic"] i b:nth-child(2) { background: #5f91a6; } .theme-options button[data-theme="arctic"] i b:nth-child(3) { background: #f1f6f8; }
.font-section { margin-top: .7rem; padding-top: .15rem; border-top: 1px solid rgba(var(--white-rgb),.12); }
.font-options { display: grid; grid-template-columns: repeat(3,1fr); gap: .35rem; }
.font-options button { display: grid; gap: .25rem; min-width: 0; padding: .65rem .45rem; color: var(--white); background: transparent; border: 1px solid rgba(var(--white-rgb),.12); cursor: pointer; text-align: center; }
.font-options button:hover,.font-options button[aria-pressed="true"] { background: rgba(var(--white-rgb),.08); border-color: var(--gold-light); }
.font-options button > strong { color: var(--gold-light); font-size: 1.35rem; line-height: 1; }
.font-options button[data-font="editorial"] > strong { font-family: 'Newsreader',serif; }
.font-options button[data-font="modern"] > strong { font-family: 'Sora',sans-serif; }
.font-options button[data-font="classic"] > strong { font-family: 'Cormorant Garamond',serif; }
.font-options button[data-font="architect"] > strong { font-family: 'Syne',sans-serif; }
.font-options button[data-font="humanist"] > strong { font-family: 'Fraunces',serif; }
.font-options button span,.font-options button small { display: block; }
.font-options button span { font-size: .66rem; font-weight: 600; }
.font-options button small { margin-top: .12rem; color: rgba(var(--white-rgb),.52); font-size: .48rem; font-weight: 400; }
.theme-note { margin-top: .75rem; color: rgba(var(--white-rgb),.52); font: 500 .54rem/1.45 var(--mono); text-align: center; }
.back-to-top { position: fixed; right: 1rem; bottom: 1rem; z-index: 119; display: grid; width: 3.35rem; height: 3.35rem; place-content: center; color: var(--white); background: rgba(var(--night-rgb),.9); border: 1px solid rgba(var(--white-rgb),.25); border-radius: 50%; box-shadow: 0 10px 28px rgba(0,0,0,.28); opacity: 0; visibility: hidden; text-align: center; text-decoration: none; pointer-events: none; transform: translateY(10px); backdrop-filter: blur(12px); transition: opacity .25s ease,visibility .25s ease,transform .25s ease,border-color .25s ease,background .25s ease; }
.back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.back-to-top span { color: var(--gold-light); font: 500 1rem/1 var(--mono); }
.back-to-top small { margin-top: .16rem; font: 600 .48rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.back-to-top:hover { border-color: var(--gold-light); background: var(--green); transform: translateY(-2px); }
.dev-mode .back-to-top { right: 5rem; }

/* Shared section geometry */
section, footer { position: relative; z-index: 2; }
section[id] { scroll-margin-top: 5.5rem; }
.section { padding: clamp(5rem,10vh,8rem) var(--gutter); }
.section > * { width: min(100%, var(--content)); margin-left: 0; margin-right: 0; }
.chapter { min-height: 150vh; }
.chapter > *, .section > * { position: relative; z-index: 1; }
.rm-still { display: none; width: 100%; margin-bottom: 1rem; border-radius: 12px; }

/* Tight, content-aware shadows */
.hero::before, #opportunity::before, #campus::before, .phase::before, #financials::before, #why::before, #calculator::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hero::before { background: radial-gradient(ellipse 60% 54% at 25% 47%,rgba(var(--night-rgb),.95),rgba(var(--night-rgb),.77) 44%,rgba(var(--night-rgb),.25) 72%,transparent 100%); }
#opportunity::before { background: radial-gradient(ellipse 66% 52% at 28% 27%,rgba(var(--night-rgb),.94),rgba(var(--night-rgb),.74) 46%,rgba(var(--night-rgb),.22) 74%,transparent 100%); }
#campus::before { background: radial-gradient(ellipse 68% 62% at 32% 36%,rgba(var(--night-rgb),.9),rgba(var(--night-rgb),.62) 48%,rgba(var(--night-rgb),.18) 75%,transparent 100%); }
.phase::before { background: radial-gradient(ellipse 68% 48% at 29% 23%,rgba(var(--night-rgb),.95),rgba(var(--night-rgb),.76) 47%,rgba(var(--night-rgb),.22) 75%,transparent 100%); }
#financials::before, #why::before { background: radial-gradient(ellipse 70% 66% at 31% 44%,rgba(var(--night-rgb),.91),rgba(var(--night-rgb),.64) 47%,rgba(var(--night-rgb),.18) 75%,transparent 100%); }
#calculator::before { background: radial-gradient(ellipse 64% 60% at 28% 42%,rgba(var(--night-rgb),.91),rgba(var(--night-rgb),.64) 47%,rgba(var(--night-rgb),.18) 75%,transparent 100%); }

/* Readability */
.hero h1, .hero-sub, #opportunity h2, #campus h2, #campus h3, .phase h3, .phase-points li, #financials h2, #why h2, #calculator h2 { text-shadow: 0 2px 4px rgba(0,0,0,.94), 0 7px 26px rgba(0,0,0,.7); }
.glass, .expand, .capital-budget, .resort-case, .chart-wrap, .calc { color: var(--white); background: var(--glass); border: 1px solid var(--line-light); box-shadow: 0 16px 42px rgba(0,0,0,.14); backdrop-filter: blur(7px); }

/* Section labels */
.road-node { height: 3.8rem; margin-bottom: 1.7rem; }
.road-node::before { content: ''; position: absolute; top: 1.45rem; left: 0; width: 44px; height: 1px; background: linear-gradient(90deg,var(--gold-light),rgba(var(--gold-light-rgb),.18)); transform-origin: left; transition: transform .75s cubic-bezier(.2,.7,.2,1); }
.road-node::after { content: attr(data-node); position: absolute; top: .2rem; left: 3.6rem; padding: .38rem .75rem .48rem; color: var(--gold-light); background: rgba(var(--night-rgb),.72); border: 1px solid rgba(var(--gold-light-rgb),.38); font: 600 clamp(1.4rem,2vw,1.9rem)/1 var(--serif); letter-spacing: -.01em; text-transform: none; text-shadow: 0 2px 14px rgba(0,0,0,.8); backdrop-filter: blur(7px); transition: letter-spacing .8s cubic-bezier(.2,.7,.2,1),border-color .8s ease,background .8s ease; }
.road-node.rv::after { letter-spacing: .12em; border-color: transparent; background: rgba(var(--night-rgb),.3); }
.road-node.rv.in::after { letter-spacing: -.01em; border-color: rgba(var(--gold-light-rgb),.38); background: rgba(var(--night-rgb),.72); }

/* Hero */
.hero { display: flex; align-items: flex-start; min-height: 150vh; padding: clamp(4rem,9vh,7rem) var(--gutter); }
.hero-copy { position: relative; z-index: 1; width: min(920px,74vw); }
.hero h1 { max-width: 19ch; color: var(--white); font-size: clamp(3rem,4.8vw,4.6rem); }
.hero h1 em { color: var(--gold-light); font-style: italic; }
.hero-sub { max-width: 58ch; margin: 1.2rem 0 1.5rem; color: rgba(var(--white-rgb),.92); font-size: clamp(1rem,1.3vw,1.18rem); font-weight: 500; }
.hero-counter { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .15rem 1.5rem; width: min(100%,660px); padding: 1.1rem 0 .9rem; border-top: 1px solid rgba(var(--white-rgb),.32); }
.counter-label { grid-column: 1; color: var(--gold-light); font: 500 .68rem var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.counter-value { grid-column: 1; color: var(--white); font: 500 clamp(2.8rem,5vw,4.8rem)/1 var(--mono); letter-spacing: -.07em; }
.counter-status { grid-column: 2; grid-row: 1 / span 2; align-self: center; display: grid; gap: .28rem; min-width: 13rem; padding-left: 1.1rem; border-left: 1px solid rgba(var(--gold-light-rgb),.45); }
.counter-status strong { color: var(--gold-light); font: 600 .69rem var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.counter-status strong i { display: inline-grid; width: 1.2rem; height: 1.2rem; margin-right: .3rem; place-items: center; color: var(--night); background: var(--gold-light); border-radius: 50%; font-style: normal; }
.counter-status small { color: rgba(var(--white-rgb),.74); font-size: .69rem; font-weight: 600; }
.funding-line { grid-column: 1 / -1; position: relative; height: 3px; margin-top: .75rem; overflow: hidden; background: rgba(var(--white-rgb),.14); }
.funding-line i { position: absolute; inset: 0; background: linear-gradient(90deg,var(--gold),var(--gold-light)); transform-origin: left; animation: fundingComplete 1.4s .2s cubic-bezier(.2,.7,.2,1) both; }
@keyframes fundingComplete { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.3rem; }
.scroll-cue { position: fixed; z-index: 80; top: 50%; right: max(1rem,var(--gutter)); display: grid; justify-items: center; gap: .7rem; min-width: 44px; padding: .25rem; color: rgba(var(--white-rgb),.9); background: transparent; text-shadow: 0 2px 10px rgba(0,0,0,.9); pointer-events: none; user-select: none; transform: translateY(-50%); transition: opacity .35s ease,transform .35s ease; }
.scroll-cue.is-hidden { opacity: 0; pointer-events: none; transform: translateY(calc(-50% - 10px)); }
.scroll-cue span { font: 500 .58rem var(--mono); letter-spacing: .14em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }
.scroll-cue i { position: relative; display: block; width: 1px; height: 52px; overflow: visible; background: rgba(var(--white-rgb),.3); }
.scroll-cue i::before { content: ''; position: absolute; right: -3px; bottom: 0; width: 7px; height: 7px; border-right: 1px solid var(--gold-light); border-bottom: 1px solid var(--gold-light); transform: rotate(45deg); }
.scroll-cue i::after { content: ''; position: absolute; top: 0; left: 0; width: 1px; height: 18px; background: var(--gold-light); box-shadow: 0 0 10px rgba(var(--gold-light-rgb),.7); animation: scrollCue 1.8s cubic-bezier(.4,0,.2,1) infinite; }
@keyframes scrollCue { 0% { top: 0; opacity: 0; transform: scaleY(.45); } 25% { opacity: 1; } 75% { opacity: 1; } 100% { top: calc(100% - 18px); opacity: 0; transform: scaleY(.8); } }
.btn-primary, .btn-ghost { display: inline-flex; align-items: center; min-height: 48px; padding: .85rem 1.25rem; font-size: .9rem; font-weight: 600; text-decoration: none; }
.btn-primary { color: var(--paper); background: var(--green); border: 1px solid var(--green); }
.btn-ghost { color: var(--white); background: rgba(var(--night-rgb),.55); border: 1px solid rgba(var(--gold-light-rgb),.72); }

/* Opportunity */
#opportunity { padding-top: clamp(4rem,8vh,6rem); }
#opportunity .split { display: block; }
#opportunity .split-copy { width: min(100%,950px); padding: clamp(1.4rem,3vw,2.35rem); background: linear-gradient(90deg,rgba(var(--night-rgb),.72),rgba(var(--night-rgb),.48) 68%,rgba(var(--night-rgb),.1) 92%,transparent); }
#opportunity h2 { max-width: 22ch; color: var(--white); font-size: clamp(2.4rem,3.9vw,3.8rem); }
.stat-ledger { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(2rem,5vw,5rem); margin: 2.2rem 0; list-style: none; }
.stat-ledger li { display: grid; grid-template-columns: minmax(8rem,auto) 1fr; align-items: center; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(var(--white-rgb),.18); }
.stat-ledger strong { color: var(--gold-light); font: 500 clamp(1.3rem,2vw,1.75rem) var(--mono); letter-spacing: -.03em; }
.stat-ledger span { color: rgba(var(--white-rgb),.92); font-size: 1rem; font-weight: 500; line-height: 1.45; }

/* Expandable detail */
.expand { width: min(100%,800px); }
.expand summary { position: relative; cursor: pointer; list-style: none; color: var(--white); font-weight: 600; }
.expand summary { padding: 1rem 1.15rem; }
.expand summary::-webkit-details-marker { display: none; }
.expand summary::after { content: '+'; position: absolute; right: 0; color: var(--gold-light); font: 500 1rem var(--mono); }
.expand summary::after { right: 1.15rem; }
.expand[open] summary::after { content: '−'; }
.expand > :not(summary) { padding: 0 1.15rem 1.15rem; color: rgba(var(--white-rgb),.9); font-weight: 500; }

/* Vision */
#campus { padding-top: clamp(5rem,10vh,8rem); background: transparent; }
.vision-head { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 1rem clamp(2rem,6vw,6rem); width: min(100%,1000px); padding: clamp(1.4rem,3vw,2.35rem); background: linear-gradient(90deg,rgba(var(--night-rgb),.74),rgba(var(--night-rgb),.48) 70%,transparent); }
.vision-head .eyebrow { grid-column: 1/-1; }
.vision-head h2 { color: var(--white); }
.vision-head h2 em { color: var(--gold-light); font-style: italic; }
.vision-head > p:last-child { max-width: 52ch; color: rgba(var(--white-rgb),.9); font-size: 1.04rem; font-weight: 500; }
.vision-stage { display: grid; grid-template-columns: 1fr 140px 1fr; align-items: stretch; gap: clamp(1rem,2.5vw,2rem); width: min(100%,1080px); margin-top: 2.5rem; }
.vision-stage > * { min-width: 0; }
.vision-business { display: flex; min-width: 0; flex-direction: column; padding: clamp(1.5rem,3vw,2.5rem); background: linear-gradient(135deg,rgba(var(--night-rgb),.64),rgba(var(--night-rgb),.38)); border-top: 1px solid rgba(var(--gold-light-rgb),.6); border-bottom: 1px solid rgba(var(--white-rgb),.15); backdrop-filter: blur(7px); }
.business-topline { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 2.2rem; }
.business-topline span { color: var(--gold-light); font: 500 1.25rem var(--mono); }
.business-topline small { color: rgba(var(--white-rgb),.7); font: 500 .64rem var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.vision-business h3 { margin-bottom: .8rem; color: var(--white); }
.business-role { max-width: 48ch; color: rgba(var(--white-rgb),.92); font-size: 1.02rem; font-weight: 500; }
.business-offer { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem 1rem; margin: 1.5rem 0; list-style: none; }
.business-offer li { position: relative; padding-left: .9rem; color: rgba(var(--white-rgb),.84); font-size: .82rem; font-weight: 500; }
.business-offer li::before { content: ''; position: absolute; top: .7em; left: 0; width: 4px; height: 4px; background: var(--gold-light); transform: rotate(45deg); }
.business-proof { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: auto; }
.business-proof div { padding-top: .75rem; border-top: 1px solid rgba(var(--white-rgb),.2); }
.business-proof dt { color: var(--gold-light); font: 500 clamp(1.15rem,1.8vw,1.45rem) var(--mono); }
.business-proof dd { color: rgba(var(--white-rgb),.68); font-size: .72rem; }
.vision-business-resort { margin-top: 3.5rem; }
.vision-bridge { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; min-height: 360px; text-align: center; }
.vision-bridge i { display: block; width: 1px; height: 54px; background: linear-gradient(var(--gold-light),rgba(var(--gold-light-rgb),.12)); }
.vision-bridge span { color: var(--gold-light); font: 500 .62rem var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.vision-bridge strong { color: var(--white); font: 600 1.15rem/1.05 var(--serif); }
.vision-loop { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(2rem,5vw,5rem); width: min(100%,1000px); margin-top: 3rem; padding: clamp(1.4rem,3vw,2.35rem); background: linear-gradient(90deg,rgba(var(--night-rgb),.7),rgba(var(--night-rgb),.42) 72%,transparent); }
.vision-loop h3 { color: var(--white); }
.vision-loop ol { display: grid; grid-template-columns: repeat(4,1fr); list-style: none; }
.vision-loop li { min-height: 180px; padding: 1rem; border-left: 1px solid rgba(var(--white-rgb),.18); }
.vision-loop li span { color: var(--gold-light); font: 500 .62rem var(--mono); }
.vision-loop li strong { display: block; margin: 2.5rem 0 .45rem; color: var(--white); font: 600 1.3rem var(--serif); }
.vision-loop li p { color: rgba(var(--white-rgb),.78); font-size: .77rem; font-weight: 500; line-height: 1.55; }

/* Five-year plan */
#plan { padding-top: clamp(5rem,10vh,8rem); }
#plan > .road-node { margin-left: 0; }
.phase { position: relative; min-height: 115vh; margin-top: clamp(3rem,7vh,6rem); padding: clamp(3rem,7vw,6rem) clamp(0rem,2vw,2rem); }
.phase:first-of-type { margin-top: 1rem; }
.phase-head, .phase-insight, .phase .split { width: min(100%,1000px); margin-left: 0; }
.phase-head { margin-bottom: 1.5rem; }
.phase-year { display: inline-flex; margin-bottom: 1.1rem; padding: .55rem .85rem; color: var(--white); background: var(--green); border: 1px solid rgba(var(--gold-light-rgb),.55); font: 500 .74rem var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.phase-head h3 { max-width: 22ch; color: var(--white); font-size: clamp(2.4rem,4vw,3.9rem); }
.phase-insight { display: grid; grid-template-columns: minmax(9rem,.35fr) 1fr; gap: 1rem 2rem; align-items: center; margin-bottom: 1.6rem; padding: .9rem 1.15rem; border-left: 3px solid var(--gold-light); background: linear-gradient(90deg,rgba(var(--night-rgb),.72),rgba(var(--night-rgb),.36) 72%,transparent); backdrop-filter: blur(5px); }
.phase-insight span { color: var(--gold-light); font: 500 .7rem var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.phase-insight p { max-width: 70ch; color: var(--white); font-size: clamp(.96rem,1.25vw,1.08rem); font-weight: 600; line-height: 1.48; text-shadow: 0 2px 12px rgba(0,0,0,.86); }
.phase .split-copy { width: 100%; }
.phase-must { margin-bottom: .65rem; color: var(--gold-light); font: 500 .7rem var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.phase-plan { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,5rem); }
.phase-plan > div { padding-top: .85rem; border-top: 2px solid var(--gold-light); }
.product-line-visual { position: relative; grid-column: 1 / -1; overflow: hidden; margin: 0; border: 1px solid rgba(var(--gold-light-rgb),.45); background: var(--night); box-shadow: 0 18px 42px rgba(0,0,0,.34); }
.product-line-visual img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.product-line-visual figcaption { display: flex; align-items: end; justify-content: space-between; gap: .75rem 1.5rem; padding: clamp(.85rem,2vw,1.2rem) clamp(1rem,2.5vw,1.5rem); color: var(--white); background: rgba(var(--night-rgb),.94); }
.product-line-visual figcaption strong { font: 500 clamp(1rem,1.8vw,1.35rem) var(--serif); }
.product-line-visual figcaption span { max-width: 34rem; color: rgba(var(--white-rgb),.84); font: 500 .66rem/1.45 var(--mono); letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.phase-plan h4 { margin-bottom: .65rem; color: var(--gold-light); font: 500 .74rem var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.phase-points { list-style: none; }
.phase-points li { position: relative; padding: .72rem 0 .72rem 1.35rem; color: rgba(var(--white-rgb),.94); border-bottom: 1px solid rgba(var(--white-rgb),.16); font-size: clamp(.94rem,1.1vw,1.04rem); font-weight: 500; line-height: 1.52; }
.phase-points li::before { content: ''; position: absolute; top: 1.25rem; left: .1rem; width: 6px; height: 6px; background: var(--gold-light); transform: rotate(45deg); box-shadow: 0 0 12px rgba(var(--gold-light-rgb),.45); }
.targets { display: grid; grid-template-columns: repeat(4,1fr); gap: clamp(.8rem,2vw,1.6rem); padding-top: .6rem; border-top: 1px solid rgba(var(--white-rgb),.28); }
.targets div { padding-top: .65rem; border-top: 2px solid var(--gold-light); }
.targets dt { color: var(--white); font: 500 clamp(1.2rem,1.8vw,1.6rem) var(--mono); text-shadow: 0 2px 12px rgba(0,0,0,.8); }
.targets dd { margin-top: .25rem; color: rgba(var(--white-rgb),.86); font-size: .82rem; font-weight: 500; }
.phase-details { width: min(100%,1000px); margin-top: 1.25rem; }
.phase-details summary { position: relative; width: fit-content; min-width: 10rem; padding: .72rem 2.8rem .72rem 1rem; color: var(--white); background: rgba(var(--night-rgb),.64); border: 1px solid rgba(var(--gold-light-rgb),.55); cursor: pointer; list-style: none; font: 500 .7rem var(--mono); letter-spacing: .11em; text-transform: uppercase; backdrop-filter: blur(6px); }
.phase-details summary::-webkit-details-marker { display: none; }
.phase-details summary::after { content: '+'; position: absolute; top: 50%; right: 1rem; color: var(--gold-light); font-size: 1rem; transform: translateY(-52%); }
.phase-details[open] summary::after { content: '−'; }
.phase-details .less-label { display: none; }
.phase-details[open] .more-label { display: none; }
.phase-details[open] .less-label { display: inline; }
.phase-details .phase-plan { margin-top: 1.25rem; padding: clamp(1rem,2vw,1.5rem); background: linear-gradient(90deg,rgba(var(--night-rgb),.68),rgba(var(--night-rgb),.4) 74%,transparent); animation: detailReveal .38s ease both; }
@keyframes detailReveal { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* Shared disclosure layer: the decision stays visible, mechanics stay optional. */
.section-details { width: min(100%,1060px); margin-top: 1.5rem; }
.section-details > summary { position: relative; width: fit-content; min-width: 12rem; padding: .78rem 3rem .78rem 1.05rem; color: var(--white); background: rgba(var(--night-rgb),.66); border: 1px solid rgba(var(--gold-light-rgb),.55); cursor: pointer; list-style: none; font: 500 .7rem var(--mono); letter-spacing: .1em; text-transform: uppercase; backdrop-filter: blur(6px); }
.section-details > summary::-webkit-details-marker { display: none; }
.section-details > summary::after { content: '+'; position: absolute; top: 50%; right: 1rem; color: var(--gold-light); font-size: 1rem; transform: translateY(-52%); }
.section-details[open] > summary::after { content: '−'; }
.section-details-body { padding-top: 1rem; animation: detailReveal .38s ease both; }
.vision-details { width: min(100%,1000px); }
.vision-details .vision-loop { margin-top: 0; }
.investment-detail-content > .capital-system { margin-top: 0; }
.investment-detail-content > .investment-path { margin-top: 2rem; }
.investment-safeguards { width: min(100%,1060px); margin-top: 2rem; padding: clamp(1.2rem,2.5vw,1.8rem); background: linear-gradient(90deg,rgba(var(--night-rgb),.62),rgba(var(--night-rgb),.28) 76%,transparent); border-top: 1px solid rgba(var(--gold-light-rgb),.45); }
.investment-safeguards h3 { margin-bottom: 1rem; color: var(--white); font-size: clamp(1.4rem,2vw,1.85rem); }

/* Give closed read-more controls the same restrained pull as the header CTA. */
.expand:not([open]) > summary,
.phase-details:not([open]) > summary,
.section-details:not([open]) > summary,
.calc-breakdown:not([open]) > summary,
.calc-drivers:not([open]) > summary { overflow: hidden; isolation: isolate; animation: disclosureBreathe 3.35s ease-in-out infinite; }
.expand:not([open]) > summary::before,
.phase-details:not([open]) > summary::before,
.section-details:not([open]) > summary::before,
.calc-breakdown:not([open]) > summary::before,
.calc-drivers:not([open]) > summary::before { content: ''; position: absolute; top: -55%; bottom: -55%; left: -42%; z-index: 0; width: 28%; pointer-events: none; background: linear-gradient(90deg,transparent,rgba(var(--gold-light-rgb),.2),transparent); transform: skewX(-18deg); animation: disclosureGlint 3.35s ease-in-out infinite; }
.phase-details > summary > span { position: relative; z-index: 1; }
.expand > summary::after,
.phase-details > summary::after,
.section-details > summary::after,
.calc-breakdown > summary::after,
.calc-drivers > summary::after { z-index: 1; }
.expand:not([open]) > summary:hover,
.phase-details:not([open]) > summary:hover,
.section-details:not([open]) > summary:hover,
.calc-breakdown:not([open]) > summary:hover,
.calc-drivers:not([open]) > summary:hover { border-color: var(--gold-light); background-color: rgba(var(--gold-light-rgb),.1); animation-play-state: paused; }
.expand:not([open]) > summary:hover::before,
.phase-details:not([open]) > summary:hover::before,
.section-details:not([open]) > summary:hover::before,
.calc-breakdown:not([open]) > summary:hover::before,
.calc-drivers:not([open]) > summary:hover::before { opacity: 0; animation-play-state: paused; }
@keyframes disclosureBreathe { 0%,66%,100% { box-shadow: none; transform: translateY(0); } 74% { box-shadow: 0 8px 20px rgba(var(--gold-light-rgb),.16); transform: translateY(-2px); } 83% { box-shadow: none; transform: translateY(0); } }
@keyframes disclosureGlint { 0%,64% { left: -42%; opacity: 0; } 69% { opacity: 1; } 83% { left: 120%; opacity: 0; } 100% { left: 120%; opacity: 0; } }

/* Financials */
#financials, #why, #calculator { background: transparent; }
.center-head { width: min(100%,800px); margin-bottom: 2.5rem; text-align: left; }
.center-head h2 { color: var(--white); margin-bottom: 1rem; }
.chart-wrap { width: min(100%,900px); padding: clamp(1rem,2.5vw,2rem); }
.rev-chart svg { display: block; width: 100%; height: auto; font-family: var(--mono); }
.rev-chart text { fill: var(--white) !important; }
.rev-chart line { stroke: rgba(var(--white-rgb),.18) !important; }
.chart-legend { display: flex; flex-wrap: wrap; gap: .75rem 1.3rem; justify-content: flex-start; margin-top: 1rem; color: rgba(var(--white-rgb),.82); font: 400 .68rem var(--mono); }
.chart-legend span { display: flex; align-items: center; gap: .4rem; }
.chart-legend i { width: 9px; height: 9px; }
.progression { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.4rem; width: min(100%,900px); margin-top: 2rem; }
.progression div { padding-top: .75rem; border-top: 1px solid var(--gold-light); }
.progression span { display: block; margin-bottom: .3rem; color: rgba(var(--white-rgb),.82); font: 500 .68rem var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.progression strong { color: var(--white); font: 500 clamp(1.3rem,2vw,1.75rem) var(--mono); }
.resort-case { width: min(100%,800px); margin-top: 2rem; padding: 1.35rem 1.5rem; }
.resort-case h4 { margin-bottom: .5rem; color: var(--white); font: 600 1.5rem var(--serif); }
.resort-case p { color: rgba(var(--white-rgb),.9); font-weight: 500; }
.resort-case strong { color: var(--gold-light); }
.expand-center { width: min(100%,800px); margin-top: 1.2rem; }
.financial-details > .resort-case { width: auto; margin: 0; padding-top: .35rem; background: none; border: 0; box-shadow: none; backdrop-filter: none; }
.financial-details > .gate-cols { padding-top: .25rem; border-top: 1px solid rgba(var(--white-rgb),.16); }
.gate-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.gate-cols h5 { margin-bottom: .5rem; color: var(--gold-light); font: 500 .68rem var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.gate-cols ul { list-style: none; }
.gate-cols li { position: relative; padding: .25rem 0 .25rem 1rem; color: rgba(var(--white-rgb),.9); font-size: .84rem; }
.gate-cols li::before { content: '◆'; position: absolute; left: 0; top: .6rem; color: var(--gold-light); font-size: .42rem; }

/* Why invest */
#why { padding-bottom: clamp(6rem,12vh,10rem); }
.investment-intro { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: clamp(2rem,6vw,6rem); width: min(100%,1060px); padding: clamp(1.4rem,3vw,2.35rem); background: linear-gradient(90deg,rgba(var(--night-rgb),.76),rgba(var(--night-rgb),.44) 72%,transparent); }
.investment-intro h2 { max-width: 17ch; color: var(--white); }
.investment-intro h2 em { color: var(--gold-light); font-style: italic; }
.investment-intro > p { max-width: 48ch; color: rgba(var(--white-rgb),.92); font-size: 1.04rem; font-weight: 500; }
.investment-proof { display: grid; grid-template-columns: repeat(4,1fr); width: min(100%,1060px); margin-top: 2rem; border-block: 1px solid rgba(var(--white-rgb),.24); background: linear-gradient(90deg,rgba(var(--night-rgb),.52),rgba(var(--night-rgb),.18),transparent); backdrop-filter: blur(5px); }
.investment-proof div { padding: 1.2rem 1.2rem 1.15rem 0; }
.investment-proof dt { color: var(--gold-light); font: 500 clamp(1.35rem,2vw,1.8rem) var(--mono); letter-spacing: -.04em; }
.investment-proof dd { max-width: 19ch; margin-top: .25rem; color: rgba(var(--white-rgb),.78); font-size: .76rem; font-weight: 500; line-height: 1.45; }
.investment-thesis { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(2rem,6vw,6rem); width: min(100%,1060px); margin-top: 3rem; }
.thesis-point { display: grid; grid-template-columns: 2.2rem 1fr; gap: 1rem; padding: 1.5rem 0; border-top: 1px solid rgba(var(--gold-light-rgb),.5); }
.thesis-point > span { padding-top: .2rem; color: var(--gold-light); font: 500 .7rem var(--mono); }
.thesis-point h3 { margin-bottom: .45rem; color: var(--white); font-size: clamp(1.55rem,2.2vw,2.1rem); }
.thesis-point p { max-width: 46ch; color: rgba(var(--white-rgb),.86); font-size: .9rem; font-weight: 500; }
.capital-system { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; gap: clamp(1.5rem,4vw,3.5rem); width: min(100%,1060px); margin-top: 3rem; }
.capital-budget, .capital-rules { padding: clamp(1.4rem,3vw,2.2rem); }
.capital-budget { background: linear-gradient(135deg,rgba(var(--night-rgb),.7),rgba(var(--night-rgb),.4)); }
.capital-budget h3, .capital-rules h3 { margin-bottom: .7rem; color: var(--white); font-size: clamp(1.6rem,2.4vw,2.25rem); }
.capital-copy { margin-bottom: 1.3rem; color: rgba(var(--white-rgb),.82); font-size: .88rem; font-weight: 500; }
.capital-rules { border-block: 1px solid rgba(var(--gold-light-rgb),.42); background: linear-gradient(90deg,rgba(var(--night-rgb),.54),rgba(var(--night-rgb),.18),transparent); }
.capital-rules ol { margin-top: 1.25rem; list-style: none; }
.capital-rules li { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; padding: .85rem 0; border-top: 1px solid rgba(var(--white-rgb),.16); }
.capital-rules li > span { color: var(--gold-light); font: 500 .64rem var(--mono); }
.capital-rules strong { display: block; margin-bottom: .2rem; color: var(--white); font-size: .9rem; }
.capital-rules li p { color: rgba(var(--white-rgb),.76); font-size: .78rem; font-weight: 500; line-height: 1.5; }
.budget-row { margin-bottom: .75rem; }
.b-label { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .35rem; color: rgba(var(--white-rgb),.9); font: 500 .7rem var(--mono); }
.b-track { height: 5px; background: rgba(var(--white-rgb),.15); }
.b-fill { width: 0; height: 100%; background: linear-gradient(90deg,var(--green),var(--gold-light)); transition: width 1.1s ease; }
.investment-path { display: grid; grid-template-columns: repeat(3,1fr); width: min(100%,1060px); margin-top: 3rem; border-block: 1px solid rgba(var(--white-rgb),.25); background: linear-gradient(90deg,rgba(var(--night-rgb),.58),rgba(var(--night-rgb),.2),transparent); }
.investment-path > div { min-height: 170px; padding: 1.4rem; border-left: 1px solid rgba(var(--white-rgb),.18); }
.investment-path > div:first-child { border-left: 0; }
.investment-path span { display: block; color: var(--gold-light); font: 500 .66rem var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.investment-path strong { display: block; margin: 1rem 0 .5rem; color: var(--white); font: 500 clamp(1.55rem,2.4vw,2.1rem) var(--mono); }
.investment-path p { max-width: 28ch; color: rgba(var(--white-rgb),.78); font-size: .78rem; font-weight: 500; }
.investment-controls { width: min(100%,1060px); margin-top: 1.25rem; }
.control-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2.5rem; }
.control-grid p { padding-top: .8rem; color: rgba(var(--white-rgb),.84); border-top: 1px solid rgba(var(--white-rgb),.16); font-size: .82rem; }
.control-grid strong { color: var(--gold-light); }

/* Calculator */
#calculator { display: flex; min-height: calc(100svh - 72px); align-items: center; justify-content: center; }
#calculator::before { background: radial-gradient(ellipse 72% 72% at 50% 48%,rgba(var(--night-rgb),.93),rgba(var(--night-rgb),.67) 52%,rgba(var(--night-rgb),.15) 80%,transparent); }
.calc-shell { width: min(100%,1020px) !important; margin-inline: auto !important; padding: clamp(1.4rem,3.5vw,2.8rem); color: var(--white); background: rgba(var(--night-rgb),.64); border: 1px solid rgba(var(--white-rgb),.2); box-shadow: 0 20px 55px rgba(0,0,0,.18); backdrop-filter: blur(8px); overflow-anchor: none; }
.calc-head { scroll-margin-top: 5.5rem; text-align: center; }
.calc-head h2 { margin-inline: auto; font-size: clamp(2.25rem,4.2vw,3.9rem); }
.calc-head .sub { margin: .75rem auto 0; }
.calc-control { width: min(100%,680px); margin: clamp(1.6rem,3vw,2.4rem) auto 0; text-align: center; }
.calc-control > label { color: var(--gold-light); font: 500 .7rem var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.calc-amount { display: block; margin: .45rem auto .8rem; color: var(--white); font: 500 clamp(2.6rem,6vw,5rem)/1 var(--mono); letter-spacing: -.07em; }
.calc-control input[type=range] { width: 100%; height: 44px; margin: .35rem 0 0; appearance: none; border-radius: 999px; background: linear-gradient(90deg,var(--gold-light) var(--range-progress,4%),rgba(var(--white-rgb),.2) var(--range-progress,4%)) center / 100% 3px no-repeat; cursor: ew-resize; touch-action: pan-y; }
.calc-control input[type=range]::-webkit-slider-thumb { width: 22px; height: 22px; appearance: none; border: 4px solid var(--night); border-radius: 50%; background: var(--gold-light); box-shadow: 0 0 0 1px rgba(var(--gold-light-rgb),.55); }
.calc-control input[type=range]::-moz-range-thumb { width: 15px; height: 15px; border: 4px solid var(--night); border-radius: 50%; background: var(--gold-light); }
.range-scale { display: flex; justify-content: space-between; color: rgba(var(--white-rgb),.6); font: 500 .62rem var(--mono); }
.range-presets { position: relative; display: flex; justify-content: space-between; gap: .35rem; margin-top: .9rem; }
.range-presets button { position: relative; flex: 1 1 0; padding: .52rem .15rem; color: rgba(var(--white-rgb),.66); background: rgba(var(--white-rgb),.045); border: 1px solid rgba(var(--white-rgb),.14); cursor: pointer; font: 500 .6rem var(--mono); }
.range-presets button::before { content: ''; position: absolute; top: -.72rem; left: 50%; width: 5px; height: 5px; background: var(--gold-light); border-radius: 50%; transform: translateX(-50%); }
.range-presets button:hover, .range-presets button.active { color: var(--night); background: var(--gold-light); border-color: var(--gold-light); }
.manual-amount { display: flex; align-items: center; justify-content: center; gap: .7rem; margin-top: .9rem; color: rgba(var(--white-rgb),.68); font-size: .68rem; }
.manual-field { display: inline-flex; align-items: center; gap: .25rem; padding: .35rem .55rem; color: var(--gold-light); border-bottom: 1px solid rgba(var(--gold-light-rgb),.55); font-family: var(--mono); }
.manual-field input { width: 8.5rem; color: var(--white); background: transparent; border: 0; outline: 0; font: 500 .78rem var(--mono); }
.scenario-switch { display: grid; grid-template-columns: repeat(3,1fr); width: min(100%,680px); margin: 1.8rem auto 0; border-block: 1px solid rgba(var(--white-rgb),.18); }
.scenario-switch button { display: grid; grid-template-columns: auto 1fr; gap: .08rem .55rem; align-items: center; padding: .8rem 1rem; color: rgba(var(--white-rgb),.66); background: transparent; border: 0; border-left: 1px solid rgba(var(--white-rgb),.14); cursor: pointer; text-align: left; }
.scenario-switch button:first-child { border-left: 0; }
.scenario-switch i { grid-row: span 2; width: 8px; height: 8px; background: transparent; border: 1px solid var(--gold-light); border-radius: 50%; }
.scenario-switch span { font: 500 .68rem var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.scenario-switch small { color: rgba(var(--white-rgb),.48); font-size: .62rem; }
.scenario-switch button:hover, .scenario-switch button[aria-pressed="true"] { color: var(--white); background: rgba(var(--gold-light-rgb),.08); }
.scenario-switch button[aria-pressed="true"] i { background: var(--gold-light); box-shadow: 0 0 0 4px rgba(var(--gold-light-rgb),.1); }
.resort-toggle { display: flex; align-items: center; justify-content: center; gap: .65rem; width: fit-content; margin: .85rem auto 0; color: rgba(var(--white-rgb),.72); cursor: pointer; }
.resort-toggle input { width: 1rem; height: 1rem; accent-color: var(--gold); }
.resort-toggle span { display: grid; text-align: left; }
.resort-toggle strong { color: var(--white); font: 500 .66rem var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.resort-toggle small { color: rgba(var(--white-rgb),.48); font-size: .6rem; }
.calc-results { display: grid; grid-template-columns: repeat(3,1fr); margin-top: clamp(1.6rem,3vw,2.3rem); border-block: 1px solid rgba(var(--white-rgb),.2); }
.calc-results article { min-width: 0; padding: clamp(1rem,2.5vw,1.6rem); text-align: center; border-left: 1px solid rgba(var(--white-rgb),.16); }
.calc-results article:first-child { border-left: 0; }
.calc-results span { display: block; min-height: 2.8em; color: rgba(var(--white-rgb),.72); font: 500 .67rem/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.calc-results strong { display: block; margin: .45rem 0 .25rem; color: var(--white); font: 500 clamp(1.45rem,3vw,2.35rem) var(--mono); letter-spacing: -.06em; }
.calc-results small { display: block; color: rgba(var(--white-rgb),.64); font-size: .7rem; }
.calc-results .calc-total { background: rgba(var(--gold-light-rgb),.07); }
.calc-results .calc-total strong, .calc-results .calc-exit strong { color: var(--gold-light); }
.projection-chart { display: grid; grid-template-columns: repeat(10,1fr); align-items: end; gap: clamp(.3rem,1vw,.75rem); height: 150px; margin: .5rem auto .75rem; padding-top: 1rem; border-bottom: 1px solid rgba(var(--white-rgb),.25); }
.projection-year { display: grid; grid-template-rows: 1fr auto; align-items: end; gap: .45rem; height: 100%; color: rgba(var(--white-rgb),.55); font: 500 .59rem var(--mono); text-align: center; }
.projection-bar { position: relative; width: 100%; height: var(--bar-height); min-height: 8px; background: linear-gradient(180deg,var(--gold-light),rgba(var(--gold-rgb),.32)); transform-origin: bottom; animation: projectionGrow .65s cubic-bezier(.2,.7,.2,1) both; }
.projection-bar::after { content: attr(data-value); position: absolute; bottom: calc(100% + .35rem); left: 50%; z-index: 2; padding: .25rem .4rem; color: var(--white); background: var(--night); border: 1px solid rgba(var(--gold-light-rgb),.4); opacity: 0; pointer-events: none; white-space: nowrap; transform: translate(-50%,4px); transition: opacity .2s ease,transform .2s ease; }
.projection-year:hover .projection-bar::after, .projection-year:focus-within .projection-bar::after { opacity: 1; transform: translate(-50%,0); }
@keyframes projectionGrow { from { transform: scaleY(.08); opacity: .2; } }
.calc-breakdown { width: 100%; margin-top: 1rem; border-top: 1px solid rgba(var(--white-rgb),.15); }
.calc-breakdown summary { position: relative; padding: .95rem 2rem .95rem 0; color: var(--white); cursor: pointer; list-style: none; font: 500 .7rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.calc-breakdown summary::-webkit-details-marker { display: none; }
.calc-breakdown summary::after { content: '+'; position: absolute; right: 0; color: var(--gold-light); font-size: 1rem; }
.calc-breakdown[open] summary::after { content: '−'; }
.projection-table-wrap { overflow-x: auto; }
.projection-table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.projection-table th, .projection-table td { padding: .65rem .35rem; border-top: 1px solid rgba(var(--white-rgb),.12); text-align: right; }
.projection-table th:first-child, .projection-table td:first-child { text-align: left; }
.projection-table th { color: rgba(var(--white-rgb),.58); font: 500 .62rem var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.projection-table td { color: rgba(var(--white-rgb),.9); font-family: var(--mono); }
.calc-assumptions { display: flex; align-items: baseline; justify-content: center; gap: .75rem; margin-top: 1.1rem; text-align: center; }
.calc-assumptions span { color: var(--gold-light); font: 500 .62rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.calc-assumptions p { color: rgba(var(--white-rgb),.72); font-size: .72rem; }
.calc-drivers { margin-top: 1rem; border-top: 1px solid rgba(var(--white-rgb),.15); }
.calc-drivers summary { position: relative; padding: .95rem 2rem .95rem 0; color: var(--white); cursor: pointer; list-style: none; font: 500 .7rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.calc-drivers summary::-webkit-details-marker { display: none; }
.calc-drivers summary::after { content: '+'; position: absolute; right: 0; color: var(--gold-light); font-size: 1rem; }
.calc-drivers[open] summary::after { content: '−'; }
.growth-mix { margin: 0 0 1rem; padding: .85rem 1rem; color: rgba(var(--white-rgb),.82); background: rgba(var(--gold-light-rgb),.07); border-left: 2px solid var(--gold-light); font: 500 .68rem/1.65 var(--mono); }
.driver-grid { display: grid; grid-template-columns: repeat(4,1fr); border-block: 1px solid rgba(var(--white-rgb),.14); }
.driver-grid article { padding: 1rem; border-left: 1px solid rgba(var(--white-rgb),.12); }
.driver-grid article:first-child { border-left: 0; }
.driver-grid strong, .driver-grid span, .driver-grid small { display: block; }
.driver-grid strong { color: var(--gold-light); font: 500 1.25rem var(--mono); }
.driver-grid span { margin: .35rem 0; color: var(--white); font-size: .76rem; font-weight: 600; line-height: 1.4; }
.driver-grid small { color: rgba(var(--white-rgb),.56); font-size: .62rem; line-height: 1.45; }
.calc-contact { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 1.25rem; padding: 1.2rem 0; border-block: 1px solid rgba(var(--gold-light-rgb),.35); }
.calc-contact .eyebrow { margin-bottom: .25rem; font-size: .6rem; }
.calc-contact h3 { color: var(--white); font-size: clamp(1.45rem,2.2vw,2rem); }
.calc-contact div > p:last-child { margin-top: .25rem; color: rgba(var(--white-rgb),.66); font-size: .76rem; }
.calc-contact-btn { flex: 0 0 auto; min-width: 10.5rem; padding: .85rem 1.15rem; color: var(--night); background: var(--gold-light); border: 1px solid var(--gold-light); text-align: center; text-decoration: none; font: 600 .68rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.calc-contact-btn:hover { color: var(--white); background: transparent; }
.disclaimer { max-width: 78ch; margin: 1rem auto 0; padding-top: .8rem; color: rgba(var(--white-rgb),.55); border-top: 1px solid rgba(var(--white-rgb),.12); font-size: .67rem !important; text-align: center; }

/* Let every palette tint the readability layers without hiding the film. */
.hero::before { background: radial-gradient(ellipse 60% 54% at 25% 47%,rgba(var(--night-rgb),.95),rgba(var(--night-rgb),.77) 44%,rgba(var(--night-rgb),.25) 72%,transparent 100%); }
#opportunity::before { background: radial-gradient(ellipse 66% 52% at 28% 27%,rgba(var(--night-rgb),.94),rgba(var(--night-rgb),.74) 46%,rgba(var(--night-rgb),.22) 74%,transparent 100%); }
#campus::before { background: radial-gradient(ellipse 68% 62% at 32% 36%,rgba(var(--night-rgb),.9),rgba(var(--night-rgb),.62) 48%,rgba(var(--night-rgb),.18) 75%,transparent 100%); }
.phase::before { background: radial-gradient(ellipse 68% 48% at 29% 23%,rgba(var(--night-rgb),.95),rgba(var(--night-rgb),.76) 47%,rgba(var(--night-rgb),.22) 75%,transparent 100%); }
#financials::before,#why::before { background: radial-gradient(ellipse 70% 66% at 31% 44%,rgba(var(--night-rgb),.91),rgba(var(--night-rgb),.64) 47%,rgba(var(--night-rgb),.18) 75%,transparent 100%); }
#calculator::before { background: radial-gradient(ellipse 72% 72% at 50% 48%,rgba(var(--night-rgb),.93),rgba(var(--night-rgb),.67) 52%,rgba(var(--night-rgb),.15) 80%,transparent); }
.road-node::after,.road-node.rv.in::after { background: rgba(var(--night-rgb),.72); }
.road-node.rv::after { background: rgba(var(--night-rgb),.3); }
#opportunity .split-copy { background: linear-gradient(90deg,rgba(var(--night-rgb),.72),rgba(var(--night-rgb),.48) 68%,rgba(var(--night-rgb),.1) 92%,transparent); }
.vision-head { background: linear-gradient(90deg,rgba(var(--night-rgb),.74),rgba(var(--night-rgb),.48) 70%,transparent); }
.vision-loop { background: linear-gradient(90deg,rgba(var(--night-rgb),.7),rgba(var(--night-rgb),.42) 72%,transparent); }
.phase-insight { background: linear-gradient(90deg,rgba(var(--night-rgb),.72),rgba(var(--night-rgb),.36) 72%,transparent); }
.calc-shell { background: rgba(var(--night-rgb),.64); }

/* Light footer */
.foot { padding: 2.3rem var(--gutter); color: var(--ink); background: var(--paper); border-top: 1px solid rgba(var(--ink-rgb),.14); text-align: left; }
.foot img { height: 82px; width: auto; margin-bottom: .7rem; }
.foot p { color: var(--muted); font: 500 .66rem var(--mono); letter-spacing: .07em; }

/* Motion and focus */
.rv { transition: opacity .7s ease, transform .7s ease; }
.js .rv { opacity: 0; transform: translateY(18px); }
.js .rv.in { opacity: 1; transform: none; }
.road-node.rv { transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1), filter .8s ease; }
.js .road-node.rv { opacity: 0; filter: blur(5px); transform: translateX(-28px); }
.js .road-node.rv.in { opacity: 1; filter: blur(0); transform: none; }
.js .road-node.rv::before { transform: scaleX(0); }
.js .road-node.rv.in::before { transform: scaleX(1); }
.read-item { transition: opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1), background-color .25s ease, border-color .25s ease; }
.js .read-sequence > .read-item { opacity: 0; transform: translateY(12px); }
.js .read-sequence.read-in > .read-item { opacity: 1; transform: none; transition-delay: calc(var(--read-index) * 70ms); }
.stat-ledger li:hover, .phase-points li:hover, .thesis-point:hover, .capital-rules li:hover { border-color: rgba(var(--gold-light-rgb),.58); background: linear-gradient(90deg,rgba(var(--gold-light-rgb),.08),transparent 72%); }
a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 3px; }

@media (max-width: 900px) {
  .nav { gap: 1rem; }
  .nav-toggle { display: grid; }
  .nav-links { position: absolute; top: 100%; right: 0; left: 0; display: grid; gap: 0; margin: 0; padding: .55rem var(--gutter) .85rem; background: rgba(var(--paper-rgb),.98); border-bottom: 1px solid rgba(var(--ink-rgb),.16); box-shadow: 0 18px 34px rgba(var(--ink-rgb),.12); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity .2s ease,visibility .2s ease,transform .2s ease; }
  .nav.menu-open .nav-links { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .nav-links a { display: flex; min-height: 3rem; align-items: center; border-top: 1px solid rgba(var(--ink-rgb),.1); font-size: .78rem; font-family: var(--mono); letter-spacing: .06em; text-transform: uppercase; }
  .nav-links a:first-child { border-top: 0; }
  .nav-links a::after { bottom: 0; }
  .lang-switch { margin-left: auto; }
  .hero-copy { width: min(100%,760px); }
  .vision-head, .vision-loop, .investment-intro, .capital-system { grid-template-columns: 1fr; }
  .vision-stage { grid-template-columns: 1fr; }
  .vision-business-resort { margin-top: 0; }
  .vision-bridge { min-height: auto; flex-direction: row; justify-content: flex-start; padding: .35rem 0; text-align: left; }
  .vision-bridge i { width: 48px; height: 1px; background: linear-gradient(90deg,var(--gold-light),rgba(var(--gold-light-rgb),.12)); }
  .vision-bridge strong { max-width: 10rem; }
  .vision-loop ol { grid-template-columns: 1fr 1fr; }
  .phase-plan { gap: 2rem; }
  .chapter { min-height: 135vh; }
  .phase { min-height: 115vh; }
}

@media (max-width: 700px) {
  body { font-size: 1rem; }
  h1 { font-size: clamp(2.8rem,12.5vw,4rem); }
  h2 { font-size: clamp(2.15rem,9.5vw,3rem); }
  .nav { min-height: 64px; gap: 1rem; }
  .nav-brand { min-width: 2.75rem; min-height: 2.75rem; gap: .5rem; }
  .nav-icon img { height: 40px; }
  .nav-wordmark img { height: 29px; }
  .lang-switch button { min-width: 2.25rem; min-height: 2.5rem; }
  .nav-cta { display: inline-flex; min-height: 2.75rem; margin-left: 0; align-items: center; font-size: .56rem; }
  .back-to-top { right: .75rem; bottom: .75rem; width: 3rem; height: 3rem; }
  .dev-mode .back-to-top { right: 4.35rem; }
  .hero { min-height: 140vh; }
  .hero-copy { width: 100%; }
  .scroll-cue { right: max(.35rem,env(safe-area-inset-right)); gap: .45rem; padding: .25rem; }
  .scroll-cue span { font-size: .48rem; letter-spacing: .1em; }
  .scroll-cue i { height: 38px; }
  .hero::before, #opportunity::before, #campus::before, .phase::before, #financials::before, #why::before, #calculator::before { background: radial-gradient(ellipse 112% 74% at 38% 30%,rgba(var(--night-rgb),.94),rgba(var(--night-rgb),.68) 54%,rgba(var(--night-rgb),.2) 82%,transparent); }
  #opportunity .split-copy, .vision-head, .vision-loop { padding-inline: 0; background: transparent; }
  .stat-ledger { grid-template-columns: 1fr; }
  .stat-ledger li { grid-template-columns: minmax(7rem,auto) 1fr; }
  .expand, .capital-budget, .resort-case, .chart-wrap, .calc { background: rgba(var(--night-rgb),.68); }
  .vision-business { padding: 1.25rem; background: rgba(var(--night-rgb),.68); }
  .business-offer { grid-template-columns: 1fr; }
  .vision-loop ol { grid-template-columns: 1fr; }
  .vision-loop li { min-height: 0; padding: 1rem 0; border-left: 0; border-top: 1px solid rgba(var(--white-rgb),.18); }
  .vision-loop li strong { margin: .75rem 0 .35rem; }
  .phase { min-height: 105vh; padding-inline: 0; }
  .phase-insight { grid-template-columns: 1fr; padding: .9rem 1rem; }
  .phase-plan { grid-template-columns: 1fr; gap: 1.5rem; }
  .product-line-visual figcaption { align-items: start; flex-direction: column; }
  .product-line-visual figcaption span { max-width: 27rem; font-size: .58rem; text-align: left; }
  .phase-details summary { width: 100%; min-height: 3rem; }
  .phase-details .phase-plan { padding: 1rem; background: rgba(var(--night-rgb),.72); }
  .targets { grid-template-columns: 1fr 1fr; }
  .investment-intro { padding-inline: 0; background: transparent; }
  .investment-proof { grid-template-columns: 1fr 1fr; }
  .investment-thesis, .investment-path, .control-grid { grid-template-columns: 1fr; }
  .investment-proof div { padding-right: .6rem; }
  .investment-path > div { min-height: 0; padding: 1.2rem 0; border-left: 0; border-top: 1px solid rgba(var(--white-rgb),.18); }
  .investment-path > div:first-child { border-top: 0; }
  .capital-budget, .capital-rules { padding: 1.25rem; }
  .progression { grid-template-columns: 1fr; }
  .gate-cols { grid-template-columns: 1fr; }
  #calculator { align-items: flex-start; padding: 1.25rem .75rem 5rem; }
  .calc-shell { padding: 1.25rem; }
  .calc-head { scroll-margin-top: 5rem; }
  .calc-results { grid-template-columns: 1fr; }
  .calc-results article { padding: 1rem 0; border-left: 0; border-top: 1px solid rgba(var(--white-rgb),.14); }
  .calc-results article:first-child { border-top: 0; }
  .calc-results span { min-height: 0; }
  .projection-chart { width: 100%; min-width: 0; gap: .2rem; height: 125px; }
  .calc-assumptions { display: block; }
  .calc-assumptions p { margin-top: .35rem; }
  .range-presets { display: grid; grid-template-columns: repeat(6,1fr); }
  .range-presets button { min-height: 2.75rem; grid-column: span 2; }
  .range-presets button:nth-last-child(-n+2) { grid-column: span 3; }
  .range-presets button::before { display: none; }
  .manual-amount { align-items: stretch; flex-direction: column; gap: .35rem; }
  .manual-field { justify-content: center; }
  .scenario-switch button { min-height: 3rem; grid-template-columns: auto 1fr; padding: .75rem .45rem; }
  .scenario-switch small { display: none; }
  .resort-toggle { min-height: 3rem; padding: .35rem .5rem; }
  .resort-toggle input { width: 1.15rem; height: 1.15rem; }
  .driver-grid { grid-template-columns: 1fr 1fr; }
  .driver-grid article:nth-child(odd) { border-left: 0; }
  .driver-grid article:nth-child(n+3) { border-top: 1px solid rgba(var(--white-rgb),.12); }
  .calc-contact { align-items: stretch; flex-direction: column; }
  .calc-contact-btn { width: 100%; }
}

@media (max-width: 520px) {
  .nav-wordmark { display: none !important; }
  .nav { gap: .4rem; }
  .lang-switch { padding-left: .45rem; }
  .lang-switch button { min-width: 2.1rem; }
  .nav-cta { padding-inline: .75rem; }
  .cta-full { display: none; }
  .cta-short { display: inline; }
  .hero-counter { grid-template-columns: 1fr; }
  .counter-status { grid-column: 1; grid-row: auto; max-width: none; margin-top: .55rem; padding: .55rem 0 0; border-top: 1px solid rgba(var(--gold-light-rgb),.32); border-left: 0; }
}

@media (max-width: 360px) {
  .scenario-switch { grid-template-columns: 1fr; }
  .scenario-switch button { border-top: 1px solid rgba(var(--white-rgb),.14); border-left: 0; }
  .scenario-switch button:first-child { border-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .film-loader { display: none; }
  .film-stage { position: absolute; height: 100vh; }
  #filmCanvas { display: none; }
  .film-grain { animation: none; }
  .chapter, .phase { min-height: auto; }
  .rm-still { display: block; }
  .hero .rm-still { display: none; }
  .rv, .js .rv { opacity: 1; transform: none; transition: none; }
  .js .road-node.rv { filter: none; }
  .read-item, .js .read-sequence > .read-item { opacity: 1; transform: none; transition: none; }
  .road-node::before, .js .road-node.rv::before { transform: scaleX(1); transition: none; }
  .nav-links a::after { transition: none; }
  .nav-cta, .nav-cta::before { animation: none; }
  .scroll-cue i::after { animation: none; transform: translateY(16px); }
  .expand > summary, .expand > summary::before,
  .phase-details > summary, .phase-details > summary::before,
  .section-details > summary, .section-details > summary::before,
  .calc-breakdown > summary, .calc-breakdown > summary::before,
  .calc-drivers > summary, .calc-drivers > summary::before { animation: none; }
  .phase-details .phase-plan { animation: none; }
  .projection-bar { animation: none; }
  .funding-line i { animation: none; }
  .b-fill { transition: none; }
}
