/* ============================================================
   TRU Hotels & Resorts — "Above the Weather"
   Hand-authored static stylesheet. No framework, no build.
   ============================================================ */

/* ---------- Design tokens ---------- */
:root {
  /* Clouds & neutrals */
  --cloud-white:#FBFCFD;  --cloud-100:#F2F6F9;  --cloud-200:#E6ECF1;  --cloud-300:#D3DBE2;
  /* Sky scale */
  --sky-200:#C7DDEC;  --sky-300:#9CC2DD;  --sky-500:#4E84B4;  --sky-700:#2C5074;
  --sky-800:#1A364E;  --sky-900:#112334;
  /* Ink */
  --ink-900:#14202E;  --ink-600:#41505F;  --ink-450:#4F5C6A;  --ink-400:#6E7B89;
  /* Accents */
  --brass:#B89766;  --brass-deep:#8A6B3C;
  --jewel-teal:#1C8C84;  --jewel-teal-deep:#0C6E6A;
  /* Dark-ground helpers */
  --cloud-on-dark:#EAF1F7;  --scrim-twilight:#0B1622;  --dawn-blush:#E8CBD2;

  /* Type */
  --font-display:'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body:'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono:'Spline Sans Mono', ui-monospace, 'SF Mono', 'Roboto Mono', monospace;

  /* Fluid type scale */
  --t-hero:clamp(2.9rem, 6.2vw + 1rem, 6.4rem);
  --t-h2:clamp(2rem, 3.6vw + 1rem, 3.9rem);
  --t-h3:clamp(1.35rem, 1.1rem + 1.1vw, 2rem);
  --t-stat:clamp(3.25rem, 9vw, 9rem);
  --t-lede:clamp(1.15rem, 0.6vw + 1rem, 1.5rem);
  --t-body:clamp(1rem, 0.35vw + 0.95rem, 1.1875rem);
  --t-mono:0.75rem;

  /* Spacing */
  --pad-section:clamp(5rem, 12vh, 11rem);
  --gutter:clamp(1.25rem, 5vw, 5rem);
  --maxw:1320px;
  --measure:62ch;

  /* Motion */
  --ease-settle:cubic-bezier(.22,.61,.36,1);
  --ease-ui:cubic-bezier(.4,0,.2,1);
  --ease-draft:cubic-bezier(.16,1,.3,1);
  --d-micro:.26s;  --d-reveal:.82s;  --d-draw:1.1s;  --d-clip:.9s;

  /* Theme (re-tinted by Altitude scroll on dark bands) */
  --nav-fg:var(--ink-900);
  --nav-bg:rgba(251,252,253,0);
  --nav-border:transparent;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body {
  font-family:var(--font-body);
  font-size:var(--t-body);
  font-weight:400;
  line-height:1.62;
  color:var(--ink-900);
  background:var(--cloud-white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,picture,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; background:none; border:none; }
:focus-visible { outline:2px solid var(--brass-deep); outline-offset:3px; border-radius:2px; }
.over-dark :focus-visible, .band-dark :focus-visible { outline-color:var(--sky-200); }
::selection { background:var(--sky-200); color:var(--ink-900); }

h1,h2,h3 { font-family:var(--font-display); font-weight:400; line-height:1.05; letter-spacing:-.012em; color:var(--ink-900); font-optical-sizing:auto; }

/* Display cut: the Fraunces files ship the full opsz 9–144 axis — use it at display sizes */
.hero h1, .section-head h2, .g8 h2, .section-h2, .horizon__line { font-variation-settings:'opsz' 144; letter-spacing:-.024em; }
h1 em, h2 em, .horizon__line em { font-style:italic; font-weight:inherit; letter-spacing:0; padding-inline:.01em .04em; }

/* ---------- Utilities ---------- */
.wrap { width:min(100% - 2*var(--gutter), var(--maxw)); margin-inline:auto; }
.wrap-wide { width:min(100% - 2*var(--gutter), 1500px); margin-inline:auto; }
.eyebrow {
  font-family:var(--font-mono); font-weight:500; font-size:var(--t-mono);
  letter-spacing:.22em; text-transform:uppercase; color:var(--brass-deep);
}
.over-dark .eyebrow, .band-dark .eyebrow { color:var(--brass); }
.lede { font-size:var(--t-lede); font-weight:300; line-height:1.5; color:var(--ink-600); max-width:46ch; }
.measure { max-width:var(--measure); }
.section-h2 { font-size:var(--t-h2); margin-top:.6rem; text-wrap:balance; }
.nav__links, .footer__links { list-style:none; margin:0; padding:0; }
.skip-link {
  position:fixed; left:1rem; top:-100%; z-index:200; background:var(--ink-900); color:var(--cloud-on-dark);
  padding:.75rem 1.25rem; border-radius:8px; transition:top var(--d-micro) var(--ease-ui);
}
.skip-link:focus { top:1rem; }

/* Hairline that draws across on reveal */
.rule { display:block; height:1px; background:var(--brass); transform-origin:left center; }
.js .rule { transform:scaleX(0); }
.rule.is-visible { transform:scaleX(1); transition:transform var(--d-draw) var(--ease-draft); }

/* Generic reveal (hidden only when JS is active, so a failed script never hides content) */
.js .reveal { opacity:0; transform:translateY(18px); }
.reveal.is-visible { opacity:1; transform:none; transition:opacity var(--d-reveal) var(--ease-settle), transform var(--d-reveal) var(--ease-settle); }
.reveal.d1.is-visible{ transition-delay:.08s; }
.reveal.d2.is-visible{ transition-delay:.16s; }
.reveal.d3.is-visible{ transition-delay:.24s; }
.reveal.d4.is-visible{ transition-delay:.32s; }

/* Brass diamond (echoes the AAA Five Diamond), drawn in CSS — no glyph fallback issues */
.mark-star { display:inline-block; width:.45em; height:.45em; background:currentColor;
  clip-path:polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }

/* ---------- Buttons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:.6em; min-height:46px;
  padding:.7rem 1.5rem; border-radius:999px;
  font-family:var(--font-body); font-weight:500; font-size:.95rem; letter-spacing:.01em;
  transition:background var(--d-micro) var(--ease-ui), color var(--d-micro) var(--ease-ui),
             border-color var(--d-micro) var(--ease-ui), transform var(--d-micro) var(--ease-ui);
}
.btn:active { transform:translateY(1px); }
.btn--primary { background:var(--sky-700); color:var(--cloud-white); }
.btn--primary:hover { background:var(--sky-900); }
.btn--teal { background:var(--jewel-teal-deep); color:var(--cloud-white); }
.btn--teal:hover { background:#085451; }
.btn--glass {
  background:rgba(251,252,253,.14); color:var(--cloud-white);
  border:1px solid rgba(251,252,253,.5);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
.btn--glass:hover { background:rgba(251,252,253,.26); }
.btn--ghost { border:1px solid currentColor; }

/* Text link with drawing brass underline */
.tlink { position:relative; color:var(--sky-700); font-weight:500; padding-bottom:2px; }
.over-dark .tlink, .band-dark .tlink { color:var(--cloud-on-dark); }
.tlink::after {
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1.5px; background:var(--brass);
  transform:scaleX(0); transform-origin:left center; transition:transform var(--d-micro) var(--ease-ui);
}
.tlink:hover::after, .tlink:focus-visible::after { transform:scaleX(1); }

/* ============================================================
   NAV
   ============================================================ */
.nav {
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:.85rem var(--gutter);
  color:var(--nav-fg); background:var(--nav-bg);
  border-bottom:1px solid var(--nav-border);
  transition:background .4s var(--ease-ui), color .4s var(--ease-ui), border-color .4s var(--ease-ui), padding .4s var(--ease-ui);
}
.nav__menu { display:flex; align-items:center; }
.nav.scrolled { background:rgba(251,252,253,.72); -webkit-backdrop-filter:blur(16px) saturate(120%); backdrop-filter:blur(16px) saturate(120%); border-color:var(--cloud-300); padding-block:.7rem; }
.nav.over-dark { --nav-fg:var(--cloud-on-dark); }
.nav.over-dark.scrolled { background:rgba(15,26,40,.55); -webkit-backdrop-filter:blur(16px) saturate(120%); backdrop-filter:blur(16px) saturate(120%); border-color:rgba(199,221,236,.18); }

.brand { display:inline-flex; align-items:baseline; gap:.55rem; color:inherit; }
.brand__mark { font-family:var(--font-display); font-weight:400; font-size:1.5rem; letter-spacing:.34em; padding-left:.34em; line-height:1; }
.brand__sub { font-family:var(--font-mono); font-weight:500; font-size:.625rem; letter-spacing:.24em; text-transform:uppercase; color:#6F5527; white-space:nowrap; }
.nav.over-dark .brand__sub, .footer .brand__sub { color:var(--brass); }

.nav__links { display:flex; align-items:center; gap:clamp(1rem,2vw,2.1rem); }
.nav__links a { position:relative; font-weight:500; font-size:.92rem; padding:.35rem 0; color:inherit; opacity:.82; transition:opacity var(--d-micro) var(--ease-ui); }
.nav__links a:hover { opacity:1; }
.nav__links a::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--sky-500); transform:scaleX(0); transform-origin:center; transition:transform var(--d-micro) var(--ease-ui); }
.nav.over-dark .nav__links a::after { background:var(--sky-200); }
.nav__links a[aria-current="true"] { opacity:1; }
.nav__links a[aria-current="true"]::after { transform:scaleX(1); }
.nav__cta { margin-left:.5rem; }
.nav__cta.btn--ghost { padding:.5rem 1.15rem; min-height:0; font-size:.86rem; }
.nav__cta[aria-current="true"] { border-color:var(--brass); }

.nav__toggle { display:none; width:44px; height:44px; align-items:center; justify-content:center; }
.nav__toggle span { position:relative; display:block; width:22px; height:1.5px; background:currentColor; transition:background var(--d-micro) var(--ease-ui); }
.nav__toggle span::before, .nav__toggle span::after { content:""; position:absolute; left:0; width:22px; height:1.5px; background:currentColor; transition:transform var(--d-micro) var(--ease-ui); }
.nav__toggle span::before { top:-7px; }
.nav__toggle span::after { top:7px; }
body.menu-open .nav__toggle span { background:transparent; }
body.menu-open .nav__toggle span::before { transform:translateY(7px) rotate(45deg); }
body.menu-open .nav__toggle span::after { transform:translateY(-7px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero { position:relative; min-height:88vh; min-height:88svh; display:flex; align-items:flex-end; overflow:hidden; isolation:isolate;
  background:linear-gradient(to bottom, var(--sky-200) 0%, #DCEAF4 22%, var(--cloud-white) 60%); }
.hero__sky { position:absolute; inset:0; z-index:-3; overflow:hidden; }

/* Painterly cumulus: stacked lobes, sky-shaded underbellies, a whisper of brass lining */
.hero__cloud { position:absolute; filter:blur(12px); }
.hero__cloud--1 { width:64vw; height:26vh; top:5%; left:-10%; opacity:.9; animation:drift1 64s linear infinite;
  background:
    radial-gradient(42% 58% at 28% 56%, rgba(251,252,253,.96), rgba(251,252,253,0) 70%),
    radial-gradient(34% 48% at 52% 40%, rgba(251,252,253,.92), rgba(251,252,253,0) 72%),
    radial-gradient(26% 42% at 70% 54%, rgba(251,252,253,.88), rgba(251,252,253,0) 70%),
    radial-gradient(52% 34% at 46% 78%, rgba(156,194,221,.32), rgba(156,194,221,0) 74%),
    radial-gradient(42% 26% at 40% 88%, rgba(184,151,102,.11), rgba(184,151,102,0) 78%),
    radial-gradient(62% 62% at 48% 52%, rgba(251,252,253,.5), rgba(251,252,253,0) 82%); }
.hero__cloud--2 { width:50vw; height:20vh; top:1%; right:-8%; opacity:.75; animation:drift2 86s linear infinite;
  background:
    radial-gradient(38% 54% at 36% 52%, rgba(251,252,253,.95), rgba(251,252,253,0) 70%),
    radial-gradient(30% 44% at 62% 42%, rgba(251,252,253,.9), rgba(251,252,253,0) 72%),
    radial-gradient(46% 32% at 50% 80%, rgba(156,194,221,.28), rgba(156,194,221,0) 74%),
    radial-gradient(36% 24% at 56% 90%, rgba(184,151,102,.09), rgba(184,151,102,0) 78%),
    radial-gradient(58% 58% at 50% 50%, rgba(251,252,253,.45), rgba(251,252,253,0) 82%); }
.hero__cloud--3 { width:42vw; height:15vh; top:8%; left:52%; opacity:.6; animation:drift1 104s linear infinite reverse;
  background:
    radial-gradient(40% 56% at 40% 50%, rgba(251,252,253,.92), rgba(251,252,253,0) 70%),
    radial-gradient(28% 44% at 64% 46%, rgba(251,252,253,.85), rgba(251,252,253,0) 72%),
    radial-gradient(48% 30% at 50% 82%, rgba(156,194,221,.26), rgba(156,194,221,0) 74%),
    radial-gradient(56% 56% at 50% 52%, rgba(251,252,253,.4), rgba(251,252,253,0) 82%); }
.hero__cloud--strata { width:130vw; height:12vh; top:12%; left:-15%; opacity:.5; filter:blur(16px); animation:drift2 120s linear infinite;
  background:linear-gradient(to bottom, rgba(251,252,253,0), rgba(251,252,253,.85) 45%, rgba(156,194,221,.25) 70%, rgba(251,252,253,0)); }
@keyframes drift1 { from{ transform:translateX(-4%);} to{ transform:translateX(6%);} }
@keyframes drift2 { from{ transform:translateX(4%);} to{ transform:translateX(-6%);} }

.hero__plate { position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:min(100%, var(--maxw)); height:86%; z-index:-2;
  -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 18%, #000 100%);
          mask-image:linear-gradient(to bottom, transparent 0, #000 18%, #000 100%); }
.hero__plate img { width:100%; height:100%; object-fit:cover; object-position:center 78%; transform:scale(1.01); }
.hero.kb .hero__plate img { animation:kenburns 24s var(--ease-ui) infinite alternate; }
.hero.is-off .hero__plate img, .hero.is-off .hero__cloud { animation-play-state:paused; }
@keyframes kenburns { from{ transform:scale(1.01) translateY(0);} to{ transform:scale(1.05) translateY(-1.2%);} }
.hero__scrim { position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to top, rgba(11,22,34,.82) 0%, rgba(11,22,34,.5) 40%, rgba(11,22,34,.3) 70%, rgba(11,22,34,.16) 100%); }

/* Arrival: one-time break through the cloud deck (gated on .js; skipped on reduced motion & repeat visits) */
.hero__veil { position:absolute; inset:0; z-index:5; pointer-events:none; opacity:0; visibility:hidden; }
.js .hero__veil { opacity:1; visibility:visible; animation:veil-gone 0s linear 6s forwards; }
.hero__veil::before, .hero__veil::after { content:""; position:absolute; inset:-12%; }
.hero__veil::before { background:
    radial-gradient(58% 50% at 30% 55%, rgba(251,252,253,.98), rgba(251,252,253,0) 70%),
    radial-gradient(50% 45% at 76% 38%, rgba(251,252,253,.95), rgba(251,252,253,0) 72%),
    radial-gradient(45% 42% at 54% 78%, rgba(234,241,247,.9), rgba(234,241,247,0) 74%); }
.hero__veil::after { background:
    radial-gradient(54% 46% at 60% 62%, rgba(251,252,253,.96), rgba(251,252,253,0) 70%),
    radial-gradient(42% 40% at 18% 38%, rgba(199,221,236,.5), rgba(199,221,236,0) 76%),
    radial-gradient(46% 36% at 82% 74%, rgba(184,151,102,.08), rgba(184,151,102,0) 78%); }
.hero.ready .hero__veil { animation:veil-gone 0s linear 2.4s forwards; }
.hero.ready .hero__veil::before { animation:veilpart-a 2.2s var(--ease-settle) forwards; }
.hero.ready .hero__veil::after { animation:veilpart-b 2.3s var(--ease-settle) forwards; }
@keyframes veilpart-a { from{ transform:none; opacity:1; } 55%{ opacity:.38; } to{ transform:translate3d(-14%,-6%,0) scale(1.18); opacity:0; } }
@keyframes veilpart-b { from{ transform:none; opacity:.9; } 55%{ opacity:.34; } to{ transform:translate3d(12%,-8%,0) scale(1.22); opacity:0; } }
@keyframes veil-gone { to{ opacity:0; visibility:hidden; } }
.hero.no-veil .hero__veil { display:none; }

.hero__content { width:min(100% - 2*var(--gutter), var(--maxw)); margin-inline:auto; padding-bottom:clamp(3.5rem,9vh,7rem); color:var(--cloud-white); }
.hero__inner { position:relative; max-width:min(100%, 46rem); }
/* Dusk pool behind the text block (geometry pixel-verified for WCAG-AA at 390–2560px) */
.hero__inner::before { content:""; position:absolute; left:-85%; right:-49%; top:-38%; bottom:-28%; z-index:-1; pointer-events:none;
  background:radial-gradient(closest-side, rgba(11,22,34,.52) 0%, rgba(11,22,34,.52) 53%, rgba(11,22,34,.3) 73%, rgba(11,22,34,0) 100%); }
/* Solid label tab guarantees the 12px eyebrow ≥4.5:1 over any sky/cloud pixel */
.hero .eyebrow { display:inline-block; padding:.5em 1em .45em; border-radius:3px; color:#F3E9D7;
  background:rgba(11,22,34,.68); }
.hero__rule { margin:1.1rem 0 1.4rem; width:64px; }
.hero h1 { color:var(--cloud-white); font-size:var(--t-hero); font-weight:340; text-wrap:balance; text-shadow:0 1px 30px rgba(11,22,34,.35); }
.hero h1 .ln { display:block; }
.hero__deck { margin-top:1.4rem; color:#E7EEF4; font-weight:300; font-size:var(--t-lede); max-width:34ch; }
.hero__actions { margin-top:2.1rem; display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; }
.hero__actions .tlink { color:var(--cloud-white); }
.hero__scroll { position:absolute; left:50%; bottom:1.5rem; transform:translateX(-50%); z-index:1; display:flex; flex-direction:column; align-items:center; gap:.6rem; color:rgba(251,252,253,.8); }
.hero__scroll .ln { width:1px; height:46px; background:currentColor; transform-origin:top; animation:breathe 3.4s var(--ease-ui) infinite; }
.hero__scroll span { font-family:var(--font-mono); font-size:.6rem; letter-spacing:.24em; text-transform:uppercase; }
@keyframes breathe { 0%,100%{ transform:scaleY(.4); opacity:.5;} 50%{ transform:scaleY(1); opacity:1;} }

/* Hero load-in: line-by-line (hidden only with JS active) */
.js .hero h1 .ln, .js .hero .eyebrow, .js .hero__deck, .js .hero__actions { opacity:0; transform:translateY(16px); }
.hero.ready .eyebrow { animation:rise .9s var(--ease-settle) .15s forwards; }
.hero.ready h1 .ln:nth-child(1){ animation:rise .9s var(--ease-settle) .42s forwards; }
.hero.ready h1 .ln:nth-child(2){ animation:rise .9s var(--ease-settle) .56s forwards; }
.hero.ready h1 .ln:nth-child(3){ animation:rise .9s var(--ease-settle) .70s forwards; }
.hero.ready .hero__deck { animation:rise .9s var(--ease-settle) .9s forwards; }
.hero.ready .hero__actions { animation:rise .9s var(--ease-settle) 1.05s forwards; }
.js .hero__rule { transform:scaleX(0); transform-origin:left; }
.hero.ready .hero__rule { animation:draw 1s var(--ease-draft) .3s forwards; }
@keyframes rise { to{ opacity:1; transform:none; } }
@keyframes draw { to{ transform:scaleX(1); } }

/* ============================================================
   SECTION SHELL
   ============================================================ */
section { position:relative; }
.section { padding-block:var(--pad-section); padding-inline:var(--gutter); }
.section--porcelain { background:var(--cloud-100); }
.section-head { max-width:var(--maxw); margin-inline:auto; }
.section-head h2 { font-size:var(--t-h2); margin-top:.6rem; text-wrap:balance; }
.section-head--center { text-align:center; }
.section-head--center h2 { margin-inline:auto; }
.section-head .lede { margin-top:1.2rem; }
[id] { scroll-margin-top:84px; }

/* ---------- Framed cinematic plate ---------- */
.plate { position:relative; border:1px solid var(--cloud-300); border-radius:6px; overflow:hidden;
  background:var(--cloud-200) var(--lqip) center/cover no-repeat;
  box-shadow:0 24px 60px -32px rgba(28,60,92,.45); }
.plate img { width:100%; height:100%; object-fit:cover; transition:opacity .7s var(--ease-ui); }
.js .plate img { opacity:0; }
.plate img.loaded { opacity:1; }
.plate--ar { aspect-ratio:1320/500; }
/* Museum mat: a fine passe-partout hairline floated inside every plate */
.plate::before, .pf__plate::before { content:""; position:absolute; inset:.7rem; z-index:2; pointer-events:none;
  border:1px solid rgba(251,252,253,.35); border-radius:2px; mix-blend-mode:screen; }
.pf__plate::before { inset:.85rem; }
/* Make <picture> fill its framed plate so percentage-height <img> resolves and clip-path applies */
.hero__plate picture, .plate picture, .pf__plate picture { position:absolute; inset:0; display:block; width:100%; height:100%; }

/* ============================================================
   LEGACY
   ============================================================ */
.legacy { background:var(--cloud-white); }
.legacy__grid { max-width:var(--maxw); margin-inline:auto; display:grid; grid-template-columns:1.55fr .9fr; gap:clamp(2rem,6vw,6rem); align-items:start; }
.legacy__lead { margin-top:1.4rem; font-family:var(--font-display); font-size:var(--t-h3); font-weight:400; line-height:1.32; color:var(--ink-900); border-left:2px solid var(--brass); padding-left:1.4rem; }
.legacy__body { margin-top:1.6rem; display:grid; gap:1.1rem; color:var(--ink-600); max-width:var(--measure); }
.legacy__body .mark-star { width:.5em; height:.5em; margin-left:.4em; color:var(--brass); }
.legacy__rail { position:sticky; top:96px; }
.legacy__rail dl { display:grid; gap:1.6rem; margin:0; }
.rail-fact { display:grid; gap:.3rem; padding-bottom:1.4rem; border-bottom:1px solid var(--cloud-300); }
.rail-fact dt { font-family:var(--font-mono); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-450); }
.rail-fact dd { font-size:1rem; color:var(--ink-900); }

.stats { max-width:var(--maxw); margin:clamp(3rem,7vh,5.5rem) auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,4vw,3rem); }
.stat { display:grid; gap:.5rem; }
.stat__num { font-family:var(--font-display); font-weight:280; font-size:var(--t-stat); line-height:.92; color:var(--ink-900); font-variant-numeric:tabular-nums; letter-spacing:-.01em; font-variation-settings:'opsz' 144; }
.stat__num .unit { font-size:.42em; color:var(--brass-deep); font-weight:420; font-variation-settings:'opsz' 40; }
.stat__rule { height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; }
.stat.is-visible .stat__rule { transform:scaleX(1); transition:transform var(--d-draw) var(--ease-draft) .2s; }
.stat__label { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-450); }
.legacy__plate { max-width:var(--maxw); margin:clamp(3.5rem,8vh,6rem) auto 0; }
.legacy__plate figcaption { display:flex; align-items:center; margin-top:.9rem; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-450); }
.legacy__plate figcaption::before { content:""; width:2.2rem; height:1px; background:var(--brass); margin-right:1rem; }

/* ============================================================
   APPROACH
   ============================================================ */
.approach__grid { max-width:var(--maxw); margin:clamp(2.5rem,6vh,4rem) auto 0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--cloud-300); }
.service { position:relative; padding:clamp(1.8rem,3vw,2.6rem) clamp(1.2rem,2.4vw,2rem); border-bottom:1px solid var(--cloud-300); border-right:1px solid var(--cloud-300); transition:background var(--d-reveal) var(--ease-ui); }
.service:nth-child(3n){ border-right:none; }
.service:hover { background:var(--sky-200); background:color-mix(in srgb, var(--sky-200) 34%, transparent); }
.service__idx { font-family:var(--font-mono); font-weight:500; font-size:.8rem; letter-spacing:.1em; color:var(--brass-deep); }
.service__icon { margin:1.4rem 0 1.2rem; width:38px; height:38px; color:var(--brass-deep); }
.service__icon svg { width:100%; height:100%; stroke:currentColor; stroke-width:1.4; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.service h3 { font-size:var(--t-h3); }
.service p { margin-top:.8rem; color:var(--ink-600); font-size:1rem; }
.service__rule { margin-top:1.4rem; width:46px; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform var(--d-draw) var(--ease-draft); }
.service:hover .service__rule, .service.is-visible .service__rule { transform:scaleX(1); }

/* ============================================================
   PORTFOLIO (honest plates)
   ============================================================ */
.portfolio { background:var(--cloud-white); overflow:hidden; }
.pf-list { max-width:1500px; margin:clamp(2.5rem,6vh,4.5rem) auto 0; display:grid; gap:clamp(4rem,10vh,9rem); }
.pf-list--follow { margin-top:clamp(4rem,10vh,9rem); }
.pf { display:grid; grid-template-columns:1fr; gap:clamp(1.4rem,3vw,2.4rem); align-items:center; }
@media (min-width:880px){
  .pf { grid-template-columns:1.5fr 1fr; }
  .pf--right .pf__media { order:2; }
  .pf--right .pf__caption { order:1; }
}
.pf__media { position:relative; }
.pf__plate { position:relative; border:1px solid var(--cloud-300); border-radius:6px; overflow:hidden; aspect-ratio:1320/500;
  background:var(--cloud-200) var(--lqip) center/cover no-repeat; box-shadow:0 30px 70px -36px rgba(28,60,92,.5); }
.pf__plate img { width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform 9s var(--ease-ui); }
.pf.is-visible .pf__plate img { transform:scale(1); }
.pf__plate::after { content:""; position:absolute; inset:0; background:linear-gradient(105deg, rgba(11,22,34,.36) 0%, rgba(11,22,34,0) 46%); pointer-events:none; }
/* two-beat reveal: hairline draws, then image clips open from center slit */
.pf__hair { position:absolute; left:0; top:50%; height:2px; width:100%; background:var(--brass); transform:scaleX(0); transform-origin:left; z-index:3; }
.pf.is-visible .pf__hair { animation:hairdraw 1.5s var(--ease-draft) forwards; }
@keyframes hairdraw { 0%{ transform:scaleX(0);} 55%{ transform:scaleX(1);} 100%{ transform:scaleX(1); opacity:0; } }
.js .pf__clip { clip-path:inset(49% 0 49% 0); }
.pf.is-visible .pf__clip { animation:clipopen var(--d-clip) var(--ease-settle) .5s forwards; }
@keyframes clipopen { to{ clip-path:inset(0 0 0 0); } }
.pf__folio { position:absolute; top:1rem; left:1rem; z-index:4; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; color:var(--cloud-white); mix-blend-mode:screen; }

.pf__caption { max-width:42ch; }
.pf__loc { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-deep); }
.pf__caption h3 { font-size:clamp(1.7rem,1.2rem+1.6vw,2.5rem); margin-top:.7rem; }
.pf__caption p { margin-top:.9rem; color:var(--ink-600); }
.pf__tag { display:inline-flex; align-items:center; gap:.5rem; margin-top:1.3rem; padding:.4rem .9rem; border:1px solid var(--brass); border-radius:999px; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--brass-deep); }
.pf__tag::before { content:""; width:.45em; height:.45em; flex:none; background:var(--brass);
  clip-path:polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }

/* Lotus interlude — full-bleed jewel teal */
.lotus { position:relative; width:100vw; margin-inline:calc(50% - 50vw); height:min(86vh,640px); height:min(86svh,640px); display:flex; align-items:center; justify-content:center; overflow:hidden; isolation:isolate; }
.lotus picture { position:absolute; inset:0; z-index:-2; }
.lotus img { width:100%; height:100%; object-fit:cover; }
.lotus::after { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 50% 60%, rgba(12,110,106,.18), rgba(11,22,34,.62)); }

/* Cloud deck: the day dissolves into the G8 dusk band */
.deck { position:relative; height:clamp(110px,16vh,180px); margin-bottom:calc(-1*clamp(110px,16vh,180px)); z-index:2; pointer-events:none;
  background:
    radial-gradient(58% 88% at 24% 8%, rgba(251,252,253,.95), rgba(251,252,253,0) 72%),
    radial-gradient(46% 72% at 68% 4%, rgba(251,252,253,.9), rgba(251,252,253,0) 70%),
    linear-gradient(to bottom, var(--cloud-white), rgba(251,252,253,0)); }

/* ============================================================
   G8 INTERSTITIAL
   ============================================================ */
.g8 { position:relative; min-height:84vh; min-height:84svh; display:flex; align-items:center; overflow:hidden; isolation:isolate; background:var(--sky-900); }
.g8 picture { position:absolute; inset:0; z-index:-2; }
.g8 img { width:100%; height:100%; object-fit:cover; opacity:.55; }
.g8::after { content:""; position:absolute; inset:0; z-index:-1; background:
  linear-gradient(to bottom, rgba(184,151,102,.12), rgba(184,151,102,0) 30%),
  linear-gradient(to right, rgba(11,22,34,.92) 0%, rgba(11,22,34,.7) 45%, rgba(17,35,52,.6) 100%); }
.g8__inner { width:min(100% - 2*var(--gutter), var(--maxw)); margin-inline:auto; color:var(--cloud-on-dark); }
.g8 .eyebrow { color:var(--brass); }
.g8 h2 { color:var(--cloud-on-dark); font-size:clamp(2.2rem,5vw,5rem); font-weight:340; max-width:18ch; margin-top:1rem; text-wrap:balance; line-height:1.08; }
.g8__rule { width:80px; margin-top:1.6rem; }

/* ============================================================
   ACCOLADES — night sky
   ============================================================ */
.accolades { position:relative; background:linear-gradient(to bottom, var(--sky-900) 0%, var(--sky-800) 55%, var(--sky-900) 100%); color:var(--cloud-on-dark); overflow:hidden; }
/* Aperiodic starfield: five hand-placed stars + three co-prime tiled layers, breathing imperceptibly */
.accolades::before { content:""; position:absolute; inset:0; background-image:
    radial-gradient(1px 1px at 20% 30%, rgba(234,241,247,.5), transparent),
    radial-gradient(1px 1px at 70% 20%, rgba(234,241,247,.35), transparent),
    radial-gradient(1px 1px at 45% 65%, rgba(234,241,247,.4), transparent),
    radial-gradient(1px 1px at 85% 75%, rgba(234,241,247,.3), transparent),
    radial-gradient(1px 1px at 33% 85%, rgba(234,241,247,.35), transparent),
    radial-gradient(1px 1px at 17px 29px, rgba(234,241,247,.32), transparent),
    radial-gradient(1px 1px at 131px 163px, rgba(234,241,247,.24), transparent),
    radial-gradient(1px 1px at 83px 97px, rgba(234,241,247,.18), transparent);
  background-size:auto, auto, auto, auto, auto, 231px 219px, 197px 183px, 263px 247px;
  opacity:.6; pointer-events:none; z-index:0; animation:shimmer 7s ease-in-out infinite alternate; }
@keyframes shimmer { from{ opacity:.5; } to{ opacity:.72; } }
/* Pre-dawn blush: the night warms at its lower edge before Leadership's daylight (= --dawn-blush) */
.accolades::after { content:""; position:absolute; inset:auto 0 0 0; height:18vh; pointer-events:none; z-index:0;
  background:linear-gradient(to top, rgba(232,203,210,.14), rgba(232,203,210,0)); }
.accolades > * { position:relative; z-index:1; }
.accolades .section-head h2 { color:var(--cloud-on-dark); }
.accolades__hero { position:relative; max-width:var(--maxw); margin-inline:auto; text-align:center; padding-block:clamp(1rem,4vh,3rem); }
/* Moonlight behind the lockup */
.accolades__hero::before { content:""; position:absolute; inset:-22% -30%; z-index:-1; pointer-events:none;
  background:radial-gradient(48% 60% at 50% 44%, rgba(199,221,236,.13), rgba(199,221,236,0) 70%); }
.accolades__hero .eyebrow { color:var(--brass); }
.accolades__lockup { font-family:var(--font-display); font-weight:300; font-size:clamp(3.5rem,12vw,10rem); line-height:.9; color:var(--cloud-white); font-variation-settings:'opsz' 144; }
.accolades__lockup-num { display:block; letter-spacing:.06em; padding-left:.06em; }
.accolades__lockup-word { display:block; font-size:.34em; letter-spacing:.3em; padding-left:.3em; color:var(--brass); }
.credits { max-width:760px; margin:clamp(2.5rem,6vh,4rem) auto 0; display:grid; gap:.2rem; }
.credit { display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:1.1rem; padding:1.05rem .3rem; border-bottom:1px solid rgba(199,221,236,.12); }
.credit__mark { color:var(--brass); align-self:center; }
.credit__mark .mark-star { width:.6rem; height:.6rem; }
.credit__name { font-family:var(--font-display); font-weight:400; font-size:clamp(1.15rem,1rem+.7vw,1.6rem); color:var(--cloud-on-dark); }
.credit__name span { display:block; font-family:var(--font-body); font-weight:300; font-size:.82rem; color:#9DB2C6; letter-spacing:.01em; margin-top:.15rem; }
.credit__year { font-family:var(--font-mono); font-size:.78rem; letter-spacing:.08em; color:var(--brass); white-space:nowrap; }

/* ============================================================
   LEADERSHIP
   ============================================================ */
.leadership { background:var(--cloud-white); }
.leaders { max-width:var(--maxw); margin:clamp(2.5rem,6vh,4rem) auto 0; display:grid; gap:clamp(2.5rem,6vh,4.5rem); }
.leader { display:grid; grid-template-columns:auto 1fr; gap:clamp(1.5rem,4vw,3.2rem); align-items:start; }
.leader__portrait { width:clamp(150px,20vw,220px); flex-shrink:0; }
.leader__frame { position:relative; border-radius:10px; overflow:hidden; border:1px solid var(--cloud-300); box-shadow:0 22px 50px -28px rgba(28,60,92,.55); background:var(--cloud-200); }
.leader__frame img { width:100%; height:auto; filter:grayscale(1) contrast(1.02) brightness(1.02) sepia(.16) hue-rotate(170deg) saturate(.7); transition:filter .6s var(--ease-ui), transform .6s var(--ease-settle); }
.leader__frame::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(17,35,52,.22), transparent 60%); mix-blend-mode:multiply; pointer-events:none; }
.leader:hover .leader__frame img, .leader:focus-within .leader__frame img { filter:none; transform:scale(1.03); }
.leader__body { padding-top:.4rem; }
.leader__name { font-size:var(--t-h3); }
.leader__role { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep); margin-top:.4rem; }
.leader__quote { font-family:var(--font-display); font-style:italic; font-weight:400; font-size:clamp(1.2rem,1rem+.7vw,1.6rem); line-height:1.4; color:var(--ink-900); margin:1.2rem 0; max-width:40ch; }
.leader__bio { display:grid; gap:1rem; color:var(--ink-600); max-width:var(--measure); }
/* Collapse is .js-scoped: with scripts blocked the full bios simply show and the dead toggle hides */
.leader__more { display:grid; transition:grid-template-rows .6s var(--ease-settle); }
.js .leader__more { grid-template-rows:0fr; }
.leader__more > div { overflow:hidden; }
.js .leader__more > div { visibility:hidden; transition:visibility .6s; }
.leader__more[data-open="true"] { grid-template-rows:1fr !important; }
.js .leader__more[data-open="true"] > div { visibility:visible; }
.no-js .leader__toggle { display:none; }
.leader__more-inner { display:grid; gap:1rem; padding-top:1rem; color:var(--ink-600); max-width:var(--measure); }
.leader__toggle { margin-top:1.2rem; display:inline-flex; align-items:center; gap:.55rem; color:var(--sky-700); font-weight:500; font-size:.92rem; }
.leader__toggle .chev { width:14px; height:14px; transition:transform var(--d-micro) var(--ease-ui); }
.leader__toggle[aria-expanded="true"] .chev { transform:rotate(180deg); }

/* ============================================================
   CONTACT + CLOSING HORIZON + FOOTER
   ============================================================ */
.contact { position:relative; background:linear-gradient(to bottom, var(--cloud-white) 0%, var(--sky-200) 64%, #CFE2EE 100%); overflow:hidden; }
.contact::before { content:""; position:absolute; right:-10%; top:8%; width:55vw; height:55vw; max-width:760px; max-height:760px; border-radius:50%; background:radial-gradient(circle, rgba(232,203,210,.5), rgba(232,203,210,0) 68%); pointer-events:none; z-index:0; }
.contact > * { position:relative; z-index:1; }
.contact__grid { max-width:var(--maxw); margin:clamp(2.5rem,6vh,4rem) auto 0; display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.offices { display:grid; gap:1.6rem; }
.office { display:grid; gap:.55rem; padding:1.6rem 0; border-top:1px solid var(--cloud-300); }
.office:first-child { border-top:none; }
.office__city { font-family:var(--font-display); font-size:1.5rem; }
.office__meta { font-family:var(--font-mono); font-size:.78rem; letter-spacing:.04em; color:var(--ink-600); line-height:1.9; }
.office__meta a { text-decoration:underline; text-decoration-color:rgba(78,132,180,.55); text-underline-offset:2px; }
.office__meta a:hover { color:var(--sky-700); text-decoration-color:currentColor; }

/* form */
.form { display:grid; gap:1.3rem; background:rgba(251,252,253,.7); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid var(--cloud-300); border-radius:14px; padding:clamp(1.5rem,3vw,2.4rem); box-shadow:0 30px 70px -40px rgba(28,60,92,.4); }
.field { position:relative; }
.field input, .field textarea { width:100%; font-family:var(--font-body); font-size:1rem; color:var(--ink-900); background:var(--cloud-100); border:1px solid var(--cloud-300); border-radius:9px; padding:1.35rem 1rem .6rem; transition:border-color var(--d-micro) var(--ease-ui), box-shadow var(--d-micro) var(--ease-ui); }
.field textarea { min-height:128px; resize:vertical; padding-top:1.6rem; }
.field label { position:absolute; left:1rem; top:1rem; font-size:1rem; color:var(--ink-450); pointer-events:none; transition:transform var(--d-micro) var(--ease-ui), font-size var(--d-micro) var(--ease-ui), color var(--d-micro) var(--ease-ui); transform-origin:left center; }
.field input:focus, .field textarea:focus { outline:none; border-color:var(--brass-deep); box-shadow:0 0 0 3px rgba(138,107,60,.28); }
.field input:focus + label, .field textarea:focus + label,
.field input:not(:placeholder-shown) + label, .field textarea:not(:placeholder-shown) + label { transform:translateY(-.7rem) scale(.74); color:var(--brass-deep); }
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label { transform:translateY(-.5rem) scale(.74); }
.form__row { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.form__note { font-size:.82rem; color:var(--ink-450); }
.form button[type=submit] { justify-self:start; }
.form__status { font-size:.9rem; min-height:1.2em; }
.form__status a { text-decoration:underline; text-underline-offset:2px; }
.form__status[data-state=ok] { color:var(--jewel-teal-deep); }
.form__status[data-state=err] { color:#9c3b2e; }

/* Dusk falls… (kept out of .band-dark so the nav inverts only once the page is truly dark) */
.dusk-strip { height:clamp(120px,22vh,240px); background:linear-gradient(to bottom, #CFE2EE, var(--sky-700)); }
/* …to a brass horizon */
.horizon { position:relative; overflow:hidden; text-align:center; color:var(--cloud-on-dark);
  padding:clamp(4rem,10vh,8rem) var(--gutter) clamp(4.5rem,12vh,9rem);
  background:linear-gradient(to bottom, var(--sky-700) 0%, var(--sky-800) 48%, var(--sky-900) 100%); }
.horizon::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.45; background-image:
    radial-gradient(1px 1px at 17px 29px, rgba(234,241,247,.3), transparent),
    radial-gradient(1px 1px at 131px 163px, rgba(234,241,247,.22), transparent),
    radial-gradient(1px 1px at 83px 97px, rgba(234,241,247,.16), transparent);
  background-size:231px 219px, 197px 183px, 263px 247px; }
.horizon__inner { position:relative; max-width:var(--maxw); margin-inline:auto; }
.horizon__line { font-family:var(--font-display); font-weight:340; font-size:clamp(1.9rem,1.2rem+2.6vw,3.4rem); line-height:1.2; color:var(--cloud-white); max-width:22ch; margin:1.2rem auto 0; text-wrap:balance; }
.horizon__rule { width:120px; margin:2rem auto 0; transform-origin:center; }

.footer { position:relative; overflow:hidden; background:var(--sky-900); color:var(--cloud-on-dark); padding-block:clamp(3rem,7vh,5rem) 2.5rem; padding-inline:var(--gutter); }
/* The maker's mark: blind-embossed TRU behind the footer's corner */
.footer__mark { position:absolute; right:-2%; bottom:-10%; width:clamp(280px,42vw,640px); height:auto; z-index:0; pointer-events:none; }
.footer__top, .footer__rule, .footer__bottom { position:relative; z-index:1; }
.footer__top { max-width:var(--maxw); margin-inline:auto; display:flex; flex-wrap:wrap; gap:2rem; justify-content:space-between; align-items:center; }
.footer .brand__mark { color:var(--cloud-on-dark); }
.footer__rule { max-width:var(--maxw); margin:2rem auto; height:1px; background:rgba(184,151,102,.5); transform-origin:left; }
.footer__links { display:flex; flex-wrap:wrap; gap:1.4rem; }
.footer__links a { font-size:.86rem; color:#9DB2C6; transition:color var(--d-micro) var(--ease-ui); }
.footer__links a:hover { color:var(--cloud-on-dark); }
.footer__bottom { max-width:var(--maxw); margin-inline:auto; display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; }
.colophon { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; color:#7E93A7; }

/* ============================================================
   MOBILE NAV
   ============================================================ */
@media (max-width:860px){
  .hero__scroll { display:none; } /* collides with the actions row on narrow screens */
  .nav__menu { position:fixed; inset:0; z-index:90; background:rgba(15,26,40,.82); -webkit-backdrop-filter:blur(20px) saturate(120%); backdrop-filter:blur(20px) saturate(120%);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.4rem; color:var(--cloud-on-dark);
    opacity:0; visibility:hidden; } /* closes instantly — a fade-out would flicker when the bar's backdrop-filter containing block returns */
  body.menu-open .nav__menu { opacity:1; visibility:visible; transition:opacity .4s var(--ease-ui); }
  body.menu-open { overflow:hidden; }
  /* An ancestor backdrop-filter turns .nav into the containing block for the
     fixed overlay, pinning it to the bar instead of the viewport — lift the
     bar's frost while the menu is open (the overlay covers everything anyway). */
  body.menu-open .nav { background:transparent !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; border-color:transparent !important; }
  .nav__links { flex-direction:column; gap:.4rem; }
  .nav__links a { color:var(--cloud-on-dark); font-family:var(--font-display); font-size:1.8rem; opacity:.92; }
  .nav__links a::after { display:none; }
  .nav__cta { margin:1.2rem 0 0; }
  .nav__toggle { display:flex; position:relative; z-index:100; }
  .nav { background:var(--nav-bg); }
  .nav.scrolled { background:rgba(251,252,253,.82); }
  /* Keep the wordmark and the close (X) visible above the open dark menu overlay */
  body.menu-open .brand { position:relative; z-index:100; color:var(--cloud-on-dark); }
  body.menu-open .brand__sub { color:var(--brass); }
  body.menu-open .nav__toggle { color:var(--cloud-on-dark); }
  body.menu-open .nav__menu :focus-visible { outline-color:var(--sky-200); }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:880px){
  .legacy__grid { grid-template-columns:1fr; }
  .legacy__rail { position:static; }
  .stats { grid-template-columns:1fr; gap:2.5rem; }
  .approach__grid { grid-template-columns:1fr; border-top:none; }
  .service { border-right:none; border-top:1px solid var(--cloud-300); border-bottom:none; }
  .credit { grid-template-columns:auto 1fr; }
  .credit__year { grid-column:2; padding-left:0; }
  .contact__grid { grid-template-columns:1fr; }
  .leader { grid-template-columns:1fr; }
  .leader__portrait { width:clamp(140px,42vw,200px); }
  .form__row { grid-template-columns:1fr; }
}
@media (max-width:520px){
  .hero__content .hero__actions { gap:1rem; }
  .footer__top, .footer__bottom { flex-direction:column; align-items:flex-start; }
}

/* ============================================================
   PRINT — nothing stays hidden or half-drawn on paper
   ============================================================ */
@media print {
  .reveal, .rule, .stat, .service, .pf, .hero h1 .ln, .hero .eyebrow, .hero__deck, .hero__actions { opacity:1 !important; transform:none !important; }
  .rule, .hero__rule, .stat__rule, .service__rule, .footer__rule { transform:none !important; }
  .pf__clip { clip-path:none !important; }
  .pf__hair, .hero__veil, .hero__scroll, .nav__toggle { display:none !important; }
  .plate img { opacity:1 !important; }
  .pf__plate img { transform:none !important; }
}

/* ============================================================
   REDUCED MOTION — full path
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .hero__plate img, .hero__cloud { animation:none !important; }
  .hero__veil { display:none !important; }
  .hero h1 .ln, .hero .eyebrow, .hero__deck, .hero__actions, .hero__rule { opacity:1 !important; transform:none !important; }
  .reveal { opacity:1 !important; transform:none !important; }
  .rule, .stat__rule, .service__rule, .pf__clip, .footer__rule { transform:none !important; clip-path:none !important; }
  .pf__hair { display:none; }
  .pf__plate img { transform:none !important; }
  .plate img { opacity:1 !important; }
  .hero__scroll .ln { animation:none !important; transform:scaleY(1); }
  .accolades::before { animation:none !important; opacity:.6; }
}
/* Hidden states above are scoped to html.js, so JS-disabled users get the full,
   static composition instantly — no .no-js overrides needed. */
