/* ============================================================
 * DAMAROS — Journey. Immersive scroll-scrubbed traversal.
 * Dark-locked, mineral. Light is never decoration here.
 * Type: Archivo (display) · Hanken Grotesk (body/labels).
 * ============================================================ */

:root{
  --jet:#06080b;     /* geological black            */
  --jet2:#0c1118;    /* lifted black (depth wash)   */
  --cold:#E8ECF0;    /* cold white                  */
  --steel:#A9C0D6;   /* signal / structure          */
  --deep:#2F5F8C;    /* deep blue / boundary        */
  --amber:#D9A23E;   /* restrained amber / REVIEW   */
  --ok:#5BB98C;      /* resolution / readiness — green */
  --luna:#8C7CF0;    /* governance / provenance / AI-origin — ultraviolet */
  --breach:#F2566E;  /* rare red — breach only      */
  --dim:#7C8A99;     /* residue / unresolved        */
  --ease:cubic-bezier(.16,1,.3,1);
  --fh:'Archivo', system-ui, sans-serif;
  --fb:'Hanken Grotesk', system-ui, sans-serif;
  --fm:var(--fb);
  --fh-w-strong:750;
  --fg:var(--cold);
  --fg-3:var(--dim);
  --accent:var(--steel);
  --accent-2:var(--steel);
  --bg:var(--jet);
  --bd-soft:rgba(169,192,214,.12);
  --t:220ms;
  --page-gutter:clamp(1.2rem,4vw,2.4rem);
}
@media (min-width:821px){
  :root{ --page-gutter:clamp(2rem,5.2vw,3.6rem); }
}

*{ box-sizing:border-box; }
html{ background:var(--jet); -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{ margin:0; background:var(--jet); color:var(--cold); font-family:var(--fb);
  overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a{ color:inherit; text-decoration:none; }
::selection{ background:rgba(169,192,214,.28); color:#fff; }
:where(a,button):focus-visible{ outline:2px solid rgba(169,192,214,.85); outline-offset:4px; border-radius:4px; }

.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip{ position:fixed; top:-120px; left:1rem; z-index:60; background:var(--jet2); color:var(--cold);
  padding:.7rem 1rem; border:1px solid rgba(169,192,214,.3); border-radius:8px; transition:top .1s var(--ease); }
.skip:focus{ top:1rem; }

/* ---------------- opening beat: drum logo + topology, then hero copy ---------------- */
html.intro-hold, html.intro-hold body{ overflow:hidden; }
body.intro-hold .j-top,
body.intro-hold .deck-nav,
body.intro-hold .deck-progress,
body.intro-hold .deck-hint,
body.intro-hold .deck-swipe,
body.intro-hold .deck-legal{ opacity:0; pointer-events:none; transition:opacity .3s var(--ease); }
body:not(.intro-hold) .j-top,
body:not(.intro-hold) .deck-nav,
body:not(.intro-hold) .deck-progress,
body:not(.intro-hold) .deck-hint,
body:not(.intro-hold) .deck-swipe{ pointer-events:none; }
body.intro-hold .brand-motif img{
  --mo:.34; --flare:.72; --glow:.62;
  filter:brightness(1.22) drop-shadow(0 0 32px rgba(169,192,214,.48));
  transition:opacity .4s var(--ease), filter .4s var(--ease);
}
@media (prefers-reduced-motion: reduce){
  body.intro-hold .brand-motif img{ --mo:.28; --flare:.58; --glow:.5; filter:none; }
}
/* closing beat: monogram + topology only, then headline + CTA (mirrors intro-hold) */
body.end-hold[data-station="9"] .brand-motif img{
  --mo:.34; --flare:.72; --glow:.62;
  filter:brightness(1.22) drop-shadow(0 0 32px rgba(169,192,214,.48));
  transition:opacity .4s var(--ease), filter .4s var(--ease);
}

/* aberration overlay — fixed refraction layer above scenes, below captions/chrome */
#fxo{ position:fixed; inset:0; z-index:2; pointer-events:none; }

/* ---------------- chrome: brand · progress · HUD · veil ---------------- */
.j-top.dmx-nav{ pointer-events:none; }
.j-top.dmx-nav .dmx-nav-start,
.j-top.dmx-nav .dmx-nav-links,
.j-top.dmx-nav a{ pointer-events:auto; }
.j-top .dmx-nav-cta{ position:relative; z-index:21; transform-origin:50% 50%; }
/* hide header CTA during the closing approach — only the center CTA on the end cap is visible */
body.cta-nav-hidden .j-top .dmx-nav-cta{
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .22s var(--ease), visibility .22s var(--ease);
}

.j-progress{ position:fixed; top:0; left:0; right:0; height:2px; z-index:24; transform-origin:left; transform:scaleX(0);
  background:linear-gradient(90deg, var(--deep), var(--steel)); }

/* vertical chapter index — the four axes you move through */
.hud{ position:fixed; left:var(--page-gutter); top:50%; transform:translateY(-50%); z-index:20;
  display:flex; flex-direction:column; gap:1.05rem; pointer-events:none; }
.hud-item{ display:flex; align-items:center; gap:.7rem; font-family:var(--fb); font-size:.6rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--dim); opacity:.5; transition:opacity .2s var(--ease), color .2s var(--ease); }
.hud-item .m{ width:7px; height:7px; border:1px solid var(--dim); transform:rotate(45deg);
  transition:background .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease); }
.hud-item .x{ font-variant-numeric:tabular-nums; color:var(--dim); }
.hud-item.active{ opacity:1; color:var(--cold); }
.hud-item.active .m{ background:var(--steel); border-color:var(--steel); box-shadow:0 0 10px rgba(169,192,214,.6); }
.hud-item.active .x{ color:var(--steel); }

/* darkness between chambers — the camera moving through black */
.veil{ position:fixed; inset:0; z-index:5; background:radial-gradient(ellipse at 50% 46%, #080b10, #04060a 75%);
  opacity:0; pointer-events:none; }

/* ---------------- scenes ---------------- */
.scene{ position:relative; height:calc(var(--len,2) * 100vh); }
.pin{ position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; }
canvas.cv{ position:absolute; inset:0; width:100%; height:100%; display:block; z-index:1; }

/* captions — the copy IS the product. Centered + dominant; the topology is the world behind it. */
.cap{ position:absolute; z-index:3; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(52rem,calc(100vw - 2 * var(--page-gutter))); max-width:min(52rem,calc(100vw - 2 * var(--page-gutter))); text-align:center; }
.cap-ax{ display:inline-flex; align-items:center; gap:.55rem; justify-content:center; font-family:var(--fb);
  font-size:.66rem; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--steel); }
.cap-ax .x{ font-variant-numeric:tabular-nums; color:var(--dim); }
.cap-title{ margin:.45rem 0 0; font-family:var(--fh); font-weight:700; font-size:clamp(2.6rem,7vw,6rem);
  line-height:.9; letter-spacing:-.045em; color:var(--cold); text-wrap:balance; max-width:100%; }
.cap-title em{ font-style:normal; color:var(--steel); }
/* the high-conviction declaration — the manifesto line, centerpiece of each panel */
.cap-lead{ margin:.55rem auto 0; max-width:52ch; font-family:var(--fh); font-weight:600;
  font-size:clamp(1.25rem,1.9vw,1.7rem); line-height:1.18; letter-spacing:-.02em; color:var(--cold); text-wrap:balance; }
.cap-lead em{ font-style:normal; color:var(--steel); }
/* verdict kicker — the hard two-word beat between the declaration and the field-note cards */
.cap-kicker{ display:block; margin:0 0 .9rem; font-family:var(--fb); font-size:.62rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--steel); }
/* supporting paragraph — the bridge between the declaration and the field-note cards (what's broken → what's now possible) */
.cap-support{ margin:.7rem auto 0; max-width:56ch; font-family:var(--fb); font-weight:400;
  font-size:clamp(.96rem,1.1vw,1.06rem); line-height:1.5; color:rgba(232,236,240,.82); text-wrap:pretty; }
.cap-support em{ font-style:normal; color:var(--steel); }
/* supporting copy — quieter, narrower, beneath the declaration */
.cap-body{ margin:1.1rem auto 0; font-family:var(--fb); font-size:clamp(.96rem,1.15vw,1.06rem); line-height:1.62;
  color:rgba(232,236,240,.66); max-width:52ch; }
/* hero sentence + final sign-off read as a statement (no one-word title) */
.cap--center .cap-title{ font-size:clamp(1.9rem,4.4vw,3.4rem); line-height:1.08; letter-spacing:-.025em; }
/* closing frame — headline pins to logo center; CTA sits beneath without shifting the title */
.deck-caps .cap--end{ inset:0; left:0; top:0; width:100%; max-width:none; height:100%; transform:none; }
.deck-caps .cap--end::before{ display:none; }
.cap--center.cap--end{ display:block; text-align:center; }
.cap--center.cap--end .cap-title{ position:absolute; left:50%; top:50%; margin:0; z-index:1;
  font-size:clamp(2.1rem,5.2vw,4.2rem); line-height:1.06; letter-spacing:-.03em; max-width:min(54rem,92vw);
  transform:translate(-50%,-50%); }
.cap--center.cap--end [data-type],
.cap--center.cap--end [data-type] .rc{ white-space:nowrap; }
.cap--end [data-type] .rc.in:nth-last-child(-n+8){ color:var(--steel); }
.cap--center.cap--end .j-cta-row{ position:absolute; left:50%; top:calc(50% + clamp(1.7rem,4.8vw,2.6rem));
  transform:translateX(-50%); margin:clamp(.75rem,2vh,1.2rem) 0 0; }
.j-cta-row--end{ flex-direction:column; align-items:center; gap:clamp(.65rem,1.8vh,.85rem); }
.j-cta-docs{ display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem .65rem; }
.j-cta-row--end .j-btn--ghost{ font-size:.62rem; padding:.55rem 1rem; letter-spacing:.14em; animation:none; }
.j-cta-row--touch{ display:none; }
body[data-station="9"] .cap--end{ opacity:1; }
body[data-station="9"] .cap--end.cap--active .cap-title{ transform:translate(-50%,-50%); }
body[data-station="9"] .cap--end.cap--active .j-cta-row{ transform:translateX(-50%); }
body.end-hold .cap--end .cap-line{ opacity:0 !important; transform:translateY(14px) !important; pointer-events:none; }
body.end-hold .cap--end [data-type]{ opacity:0 !important; }
body.end-hold .cap--end [data-type] .rc{ opacity:0 !important; filter:none !important; }
.cap--end .j-btn--primary{ animation:ctaGlow 2.8s var(--ease) infinite; }
@keyframes ctaGlow{ 0%,100%{ box-shadow:0 10px 34px rgba(169,192,214,.3); }
  50%{ box-shadow:0 0 44px rgba(169,192,214,.6), 0 16px 50px rgba(169,192,214,.46); } }
.cap--center .cap-body{ max-width:46ch; }
/* hero subheading — ONE clear line beneath the label (not a stacked block); brighter + larger than body copy */
.cap--center .cap-body--one{ max-width:none; white-space:nowrap; font-weight:500;
  font-size:clamp(1.02rem,1.7vw,1.42rem); line-height:1.34; letter-spacing:.004em; color:rgba(234,238,242,.9); }
@media (max-width:760px){ .cap--center .cap-body--one{ white-space:normal; font-size:clamp(1rem,4.6vw,1.18rem); } }

/* ===== brand identity: landing wordmark, nav handoff, floating motif ===== */
/* landing logo — the official Damaros lockup as the hero centerpiece (Archivo + stone-blue superscript TM) */
.cap-logo{ margin:0; font-family:var(--fh); font-weight:750; line-height:.9; letter-spacing:-.012em; color:var(--cold); }
.cap-logo .cap-logo-mark{ display:inline-flex; align-items:baseline; gap:.04em; font-size:clamp(4.2rem,12.5vw,9.6rem); }
.cap-logo sup{ font-size:.28em; color:var(--steel); top:-1.05em; letter-spacing:0; }
.cap--hero .cap-lead{ margin-top:1.15rem; color:var(--cold); }
.cap--hero .cap-body--one{ color:rgba(234,238,242,.74); }
/* nav brand — hidden while the big landing logo owns the screen; settles into the top-left as you leave the hero */
.j-top .dmx-brand{ transition:opacity .3s var(--ease), transform .3s var(--ease); }
body[data-station="0"] .j-top .dmx-brand{ opacity:0; transform:translate(7px,5px) scale(1.14); pointer-events:none; animation:none; }
/* floating motif — the faint Damaros monogram behind the landing + closing; it GLOWS only when the cursor is near it */
.brand-motif{ position:fixed; inset:0; z-index:2; display:grid; place-items:center; pointer-events:none;
  opacity:0; transition:opacity .5s var(--ease); }
body[data-station="0"] .brand-motif, body[data-station="9"] .brand-motif{ opacity:1; }
/* hero + closer (after intro/end pulse): stay legible at rest; cursor still lifts toward --flare */
body[data-station="0"]:not(.intro-hold) .brand-motif img,
body[data-station="9"]:not(.end-hold) .brand-motif img{
  --mo:.30; --flare:.66;
  filter:brightness(1.16) drop-shadow(0 0 calc(14px + 18px*var(--glow)) rgba(169,192,214, calc(.28 + .34*var(--glow))));
}
/* --glow (0..1) is set from cursor proximity in space.js; at --glow:0 there is NO halo at all (resting = faint mark only) */
.brand-motif img{ width:auto; height:min(70vh,58vw); object-fit:contain; image-rendering:auto; user-select:none;
  --mo:.085; --flare:.42; --glow:0;
  opacity:calc(var(--mo) + (var(--flare) - var(--mo))*var(--glow));
  filter:drop-shadow(0 0 calc(26px*var(--glow)) rgba(169,192,214, calc(.6*var(--glow))));
  transition:opacity .25s var(--ease), filter .25s var(--ease);
  animation:motifDrift 22s var(--ease) infinite; }
/* closer: a touch brighter at rest and a stronger peak when the cursor is near */
@keyframes motifDrift{ 0%,100%{ transform:translateY(0) scale(1); } 50%{ transform:translateY(-1.2%) scale(1.018); } }
@media (prefers-reduced-motion: reduce){ .brand-motif img{ animation:none; opacity:var(--mo); filter:none; } .j-top .dmx-brand,.brand-motif{ transition:none; } }

/* micro-interactions — key words gain an underline trace + a small lock-in tick on hover */
.kw{ position:relative; color:var(--cold); white-space:nowrap; cursor:default; transition:color .15s var(--ease); }
.kw::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background:var(--steel); transition:right .23s var(--ease); }
.kw::before{ content:""; position:absolute; right:-1px; bottom:-3.5px; width:3px; height:3px; transform:rotate(45deg) scale(0); background:var(--steel); transition:transform .15s var(--ease) .07s; }
.kw:hover{ color:#fff; }
.kw:hover::after{ right:0; }
.kw:hover::before{ transform:rotate(45deg) scale(1); }
.kw--prov{ color:#cfc7fb; }                                   /* Luna provenance words read faintly violet */
.kw--prov::after, .kw--prov::before{ background:var(--luna); }
.kw--prov:hover{ color:#ece8ff; }
.kw-topo{ font-style:normal; color:var(--steel); }            /* Trident phrase (an em that nudges the topology) */

/* screening state chips — beneath the body; hovering one tints the topology by its state */
.chips{ display:flex; gap:.7rem; justify-content:center; margin-top:1rem; }
.chip{ font-family:var(--fb); font-size:.62rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  padding:.42rem .8rem; border-radius:999px; border:1px solid rgba(124,138,153,.34); color:var(--dim); cursor:default;
  transition:color .15s var(--ease), border-color .15s var(--ease), background .15s var(--ease), box-shadow .15s var(--ease); }
.chip--pass{ --c:var(--ok); }
.chip--review{ --c:var(--amber); }
.chip--fail{ --c:var(--breach); }
.chip:hover{ color:#fff; border-color:var(--c); background:color-mix(in srgb, var(--c) 16%, transparent);
  box-shadow:0 0 18px color-mix(in srgb, var(--c) 30%, transparent); }

/* two contrastive field-note cards — card 1 = what Damaros eliminates · card 2 = what it creates */
.cap-sub{ display:flex; gap:1rem; justify-content:center; margin:0 auto; max-width:37rem; text-align:left; }
.cap-box{ flex:1 1 0; min-width:0; padding:1rem 1.15rem; border:1px solid rgba(169,192,214,.3); border-radius:12px;
  background:linear-gradient(180deg, rgba(169,192,214,.1), rgba(169,192,214,.035)), rgba(9,12,18,.62);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  transition:border-color .15s var(--ease), background .15s var(--ease), box-shadow .15s var(--ease), transform .15s var(--ease); }
.cap-box:hover{ border-color:var(--steel); background:linear-gradient(180deg, rgba(169,192,214,.17), rgba(169,192,214,.06)), rgba(12,16,23,.72);
  box-shadow:0 12px 34px rgba(5,7,11,.5); transform:translateY(-2px); }
.cap-box-h{ display:block; font-family:var(--fb); font-weight:700; font-size:.9rem; letter-spacing:.005em; color:#f4f7fa; }
.cap-box-b{ margin:.45rem 0 0; font-family:var(--fb); font-size:.84rem; line-height:1.5; color:rgba(232,236,240,.8); }
.cap-box .kw{ white-space:normal; }

/* ===== layout archetypes — scenes alternate between centered (cards beneath) and split (cards beside) ===== */
.cap-cards{ margin-top:1.5rem; }                         /* kicker label rides directly above the field-note cards */
/* SPLIT — headline block beside the stacked cards block; kicker stays above the cards */
.cap--split{ width:min(68rem,calc(100vw - 2 * var(--page-gutter))); max-width:min(68rem,calc(100vw - 2 * var(--page-gutter))); text-align:left;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:clamp(1.6rem,4.6vw,4rem); align-items:start; }
.cap--split .cap-head{ grid-column:1; }
.cap--split .cap-cards{ grid-column:2; margin-top:0; }
.cap--split .cap-lead{ max-width:none; margin-left:0; margin-right:0; white-space:nowrap; text-wrap:nowrap;
  font-size:clamp(1.05rem,1.7vw,1.55rem); }
.cap--split .cap-sub{ flex-direction:column; gap:.85rem; max-width:none; }
.cap--split .cap-kicker{ text-align:left; }
/* MIRROR — headline on the right, cards on the left */
.cap--split.cap--mirror .cap-head{ grid-column:2; text-align:right; }
.cap--split.cap--mirror .cap-cards{ grid-column:1; }
.cap--split.cap--mirror .cap-lead{ margin-left:auto; }

/* scrubbed reveal unit */
.cap-line{ opacity:0; transform:translateY(14px); transition:opacity .35s var(--ease), transform .35s var(--ease); }
.cap--active .cap-line:not(.on){ will-change:opacity,transform; }
.cap-line.on{ opacity:1; transform:none; will-change:auto; }
/* scramble-resolve headline — each letter tumbles through random letters (same case, no symbols) and locks
   into place left to right. Letters hold a FIXED width (set inline by cap-intro.js) so nothing reflows / bounces. */
.deck-caps [data-type]{ opacity:1 !important; transform:none !important; }
.deck-caps [data-type] .rc{ display:inline-block; text-align:center; white-space:nowrap;
  opacity:0; filter:blur(2px); transition:opacity .21s ease, filter .21s ease, color .21s ease; }
.deck-caps [data-type] .rc.scram{ opacity:.5; color:var(--steel); filter:blur(2px); will-change:opacity,filter; }
.deck-caps [data-type] .rc.in{ opacity:1; color:inherit; filter:blur(0); will-change:auto; }
@media (prefers-reduced-motion: reduce){
  .deck-caps [data-type] .rc{ opacity:1; filter:none; color:inherit; transition:none; }
}

/* scroll cue (opening) */
.cue{ position:absolute; left:50%; bottom:clamp(1.6rem,5vh,2.6rem); transform:translateX(-50%); z-index:4;
  display:flex; flex-direction:column; align-items:center; gap:.5rem; color:var(--dim);
  font-family:var(--fb); font-size:.56rem; letter-spacing:.22em; text-transform:uppercase; }
.cue .bar{ width:1px; height:38px; background:linear-gradient(var(--steel), transparent); position:relative; overflow:hidden; }
.cue .bar::after{ content:''; position:absolute; left:0; top:-50%; width:100%; height:50%; background:var(--steel); animation:cue 2s var(--ease) infinite; }
@keyframes cue{ 0%{ top:-50%; } 100%{ top:100%; } }

/* ---------------- final CTA ---------------- */
.j-cta-row{ display:flex; flex-wrap:wrap; gap:1.1rem 1.4rem; justify-content:center; align-items:center; margin-top:2.2rem; }
.j-btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-family:var(--fb); font-weight:600; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
  padding:1.05rem 1.9rem; border-radius:10px; color:var(--jet); background:var(--steel);
  border:1px solid var(--steel); transition:transform .125s var(--ease), box-shadow .125s var(--ease), background .125s var(--ease); }
.j-btn:hover{ transform:translateY(-2px); box-shadow:0 14px 40px rgba(169,192,214,.28); background:#c2d5e6; }
.j-btn--ghost{ color:var(--cold); background:transparent; border-color:rgba(169,192,214,.4); }
.j-btn--ghost:hover{ background:rgba(169,192,214,.08); box-shadow:none; border-color:var(--steel); }
/* ---------------- responsive ---------------- */
@media (max-width: 820px) {
  .cap--hero .cap-logo .cap-logo-mark { font-size: clamp(2.75rem, 9.2vw, 4.2rem); }
  .hud{ display:none; }
  .cap{ left:50%; top:50%; transform:translate(-50%,-50%); width:min(34rem,90vw); max-width:min(34rem,90vw); text-align:center; }
  .deck-caps .cap--end{ inset:0; left:0; top:0; width:100%; max-width:none; height:100%; transform:none; }
  .cap-lead{ max-width:none; }
  .cap-support{ max-width:none; }
  .cap-body{ max-width:none; }
  .cap-sub{ flex-direction:column; gap:.7rem; max-width:none; }
  /* split archetypes collapse back to a single centered column on small screens */
  .cap--split, .cap--split.cap--mirror{ display:block; grid-template-columns:none; text-align:center; }
  .cap--split .cap-head, .cap--split.cap--mirror .cap-head{ text-align:center; }
  .cap--split .cap-lead, .cap--split.cap--mirror .cap-lead{ max-width:none; margin-left:auto; margin-right:auto; white-space:normal; text-wrap:balance; }
  .cap--split .cap-cards, .cap--split.cap--mirror .cap-cards{ grid-column:auto; margin-top:1.3rem; }
  .cap--split .cap-kicker, .cap--split.cap--mirror .cap-kicker{ text-align:center; }
  .cap--split .cap-sub, .cap--split.cap--mirror .cap-sub{ flex-direction:column; }
  .cap--center.cap--end .cap-title{ font-size:clamp(1.28rem,5.8vw,1.85rem); max-width:92vw; }
  .cap--center.cap--end .j-cta-row{ top:calc(50% + clamp(2.1rem,9vw,2.85rem)); margin-top:1.15rem; }
  .j-cta-row--end .j-btn--primary{ font-size:clamp(.54rem,2.5vw,.64rem); padding:.52rem .85rem; letter-spacing:.1em; border-radius:8px; }
  .j-cta-row--end .j-btn--ghost{ font-size:clamp(.5rem,2.3vw,.58rem); padding:.48rem .72rem; }
  /* touch: no cursor-proximity glow — hold a resting motif on hero + closer */
  body[data-station="0"] .brand-motif img,
  body[data-station="9"] .brand-motif img{
    --mo:.30; --flare:.64; --glow:.48;
    filter:brightness(1.18) drop-shadow(0 0 22px rgba(169,192,214,.38));
  }
}
@media (prefers-reduced-motion: reduce){
  .cap-line{ opacity:1; transform:none; transition:none; }
  .cue .bar::after{ animation:none; top:0; height:100%; opacity:.5; }
  .cap--end .j-btn--primary{ animation:none; }
  .veil{ display:none; }
}
