/* =====================================================================
   NEXUS HESTIA — UNIFIED SITE · COMPONENTS
   Ported and adapted, with provenance:
   - archive ticks, data-lake pipeline, BIM graph explorer, gallery inspector, card tilt, typewriter
       origin: NHThtmlCheck-main.zip:styles.css, app.js (Foundation)  · adapted 2026-09-19
   - Hearth canvas background, memo carousel idea, section-cut slider idea
       origin: NHTInteractive-main.zip:hearth.js, app.js (A Tuesday)  · adapted 2026-09-19
   - Two Architectures toggle, Sovereign Stack accordion, connector rail, ledger, adapter, RL meter, query chips
       origin: nht-architecture-narrative.html (Sep 18)               · adapted 2026-09-19
   All colours are tokens. Nothing here contains a hex literal.
   ===================================================================== */

/* ---------- hero: memo + archive ticks ---------- */
.hero-lower{display:grid;gap:22px;grid-template-columns:1fr;margin-top:clamp(20px,4vw,56px)}
@media(min-width:1000px){.hero-lower{grid-template-columns:.9fr 1.1fr;align-items:stretch}}
.memo{background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:22px 22px 18px;box-shadow:var(--shadow-pop)}
.memo-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.memo-time{font-family:var(--ff-display);font-size:38px;color:var(--c-text-heading);letter-spacing:.04em;line-height:1}
.memo-time small{font-family:var(--ff-mono);font-size:11px;color:var(--c-hearth-text);letter-spacing:.16em;margin-left:8px}
.memo-tag{font-family:var(--ff-mono);font-size:10px;color:var(--c-text-muted);letter-spacing:.12em;text-transform:uppercase}
.memo h2{font-family:var(--ff-body);text-transform:none;font-size:21px;font-weight:700;letter-spacing:0;margin:0 0 14px;max-width:none;color:var(--c-text-body)}
.memo ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.memo li{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--c-border-soft);border-radius:10px;background:var(--c-bg);font-size:14px;color:var(--c-text-heading);
  opacity:0;transform:translateX(10px);animation:memoIn .6s var(--ease) forwards}
.memo li:nth-child(1){animation-delay:.3s}.memo li:nth-child(2){animation-delay:.55s}.memo li:nth-child(3){animation-delay:.8s}.memo li:nth-child(4){animation-delay:1.05s}.memo li:nth-child(5){animation-delay:1.3s}
@keyframes memoIn{to{opacity:1;transform:none}}
.memo li .n{font-family:var(--ff-mono);font-size:11px;color:var(--c-text-muted);padding-top:2px}
.memo li .solved{display:block;font-family:var(--ff-mono);font-size:10.5px;color:var(--c-magenta-text);margin-top:3px;letter-spacing:.03em}
.memo-foot{margin:14px 0 0;font-size:13px;color:var(--c-text-muted)}

.tl{background:var(--c-panel);border:1px solid var(--c-border);border-top:2px solid var(--c-magenta);border-radius:var(--r-lg);padding:24px 22px;display:flex;flex-direction:column;justify-content:center}
.tl h2{font-size:clamp(22px,2.4vw,32px);letter-spacing:.04em;text-align:center;margin:0 0 16px;max-width:none}
.tl__scale{display:flex;justify-content:space-between;gap:8px;margin-bottom:12px;font-family:var(--ff-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-text-muted)}
.tl__scale .mid{color:var(--c-magenta-text)}
.tl__ticks{display:flex;align-items:flex-end;gap:3px;height:64px}
.tick{flex:1;background:var(--c-border-bright);border-radius:1px;transform-origin:bottom;cursor:pointer;min-width:2px;
  transition:background .1s ease,transform .15s var(--ease-spring),box-shadow .15s ease}
.tick.warm{background:var(--c-hearth)}
.tick.lit{background:var(--c-magenta);box-shadow:0 0 10px var(--c-magenta)}
.tick.hovered,.tick:focus-visible{background:var(--c-acid);transform:scaleY(1.3) scaleX(1.7);box-shadow:0 0 14px var(--c-acid);z-index:2;outline-offset:2px}
.tl__card{margin-top:16px;padding:14px 18px;background:var(--c-void);border:1px solid var(--c-border);border-left:3px solid var(--c-magenta);border-radius:var(--r-sm);font-family:var(--ff-mono)}
.tl__card-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.tl__year{font-size:13px;font-weight:700;color:var(--c-text-heading);letter-spacing:.1em;text-transform:uppercase}
.tl__badge{font-size:9.5px;padding:2px 8px;border:1px solid var(--c-magenta);color:var(--c-magenta-text);text-transform:uppercase;border-radius:4px;letter-spacing:.08em}
.tl__project{font-family:var(--ff-body);font-size:14px;color:var(--c-text-body);margin-top:6px;min-height:2.9em}
.tl__project strong{color:var(--c-text-heading)}

/* ---------- cards (Foundation card-tilt) ---------- */
.card-tilt{background:var(--c-panel);border:1px solid var(--c-border);border-top:2px solid var(--accent,var(--c-magenta));border-radius:var(--r-md);padding:26px;position:relative;
  transition:transform .15s ease-out,background var(--dur) ease,border-color var(--dur) ease,box-shadow var(--dur) ease;transform-style:preserve-3d;will-change:transform}
.card-tilt:hover{background:var(--c-panel-hover);border-color:var(--c-border-bright)}
.card-tilt__tag{display:inline-block;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text,var(--c-magenta-text));margin-bottom:14px}
.card-tilt h3{margin:0 0 10px}
.card-tilt p{margin:0;font-size:15px;color:var(--c-text-body)}
.grid-3{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:820px){.grid-3{grid-template-columns:repeat(3,1fr)}}
.grid-2{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:820px){.grid-2{grid-template-columns:1fr 1fr}}
.a-magenta{--accent:var(--c-magenta);--accent-text:var(--c-magenta-text)}
.a-hearth{--accent:var(--c-hearth);--accent-text:var(--c-hearth-text)}
.a-cyan{--accent:var(--c-cyan);--accent-text:var(--c-cyan-text)}
.a-violet{--accent:var(--c-violet);--accent-text:var(--c-text-body)}

/* ---------- problem ---------- */
.stat-panel{display:grid;gap:22px;grid-template-columns:1fr;background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:clamp(22px,3vw,36px);margin:30px 0}
@media(min-width:820px){.stat-panel{grid-template-columns:auto 1fr;align-items:center;gap:44px}}
.stat-big{font-family:var(--ff-display);font-size:clamp(76px,12vw,150px);line-height:.85;color:var(--c-text-heading)}
.stat-big span{color:var(--c-magenta)}
.stat-big small{display:block;font-family:var(--ff-mono);font-size:12px;letter-spacing:.16em;color:var(--c-hearth-text);margin-top:12px;text-transform:uppercase}
.stat-copy p{margin:0 0 10px}
.stat-copy strong{color:var(--c-text-heading)}
.stat-copy .cite{font-family:var(--ff-mono);font-size:11px;color:var(--c-text-muted);line-height:1.6}
.stat-copy .cite a{color:var(--c-text-body)}
.silo .ext{font-family:var(--ff-mono);font-size:11px;color:var(--accent-text);letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:12px}
.quotes{display:grid;gap:20px;margin:40px 0;grid-template-columns:1fr}
@media(min-width:820px){.quotes{grid-template-columns:1fr 1fr}}
.quote{font-family:var(--ff-display);font-size:clamp(26px,3.2vw,40px);line-height:1.04;color:var(--c-text-heading);border-left:3px solid var(--c-magenta);padding:4px 0 4px 20px;margin:0;text-transform:uppercase;letter-spacing:.02em}
.quote:nth-child(2){border-left-color:var(--c-hearth)}
.cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cat{font-family:var(--ff-mono);font-size:11.5px;color:var(--c-text-body);border:1px solid var(--c-border);background:var(--c-panel);padding:9px 13px;border-radius:999px;display:flex;gap:8px;align-items:center}
.cat i{font-style:normal;color:var(--c-magenta-text)}

/* ---------- paradigm (Two Architectures) ---------- */
.seg{display:inline-flex;gap:4px;padding:4px;margin:0 0 26px;background:var(--c-panel);border:1px solid var(--c-border);border-radius:999px;max-width:100%;flex-wrap:wrap}
.seg button{appearance:none;border:0;background:transparent;color:var(--c-text-muted);font-family:var(--ff-mono);font-size:12px;letter-spacing:.05em;padding:10px 18px;border-radius:999px;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease);white-space:nowrap}
.seg button[aria-selected="true"]{background:var(--c-text-heading);color:var(--c-bg)}
.seg button:not([aria-selected="true"]):hover{color:var(--c-text-heading)}
.paradigm-figures{display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:860px){.paradigm-figures{grid-template-columns:1fr 1fr}}
.pfig{margin:0;padding:22px 22px 20px;background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-lg);transition:opacity .35s var(--ease),transform .35s var(--ease),filter .35s var(--ease)}
.pfig[data-fig="sovereign"]{border-color:var(--c-magenta-line)}
.pfig figcaption{margin-top:14px;font-size:14px;color:var(--c-text-body)}
.pfig .verdict{display:block;margin-top:8px;font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.03em}
.pfig[data-fig="centralized"] .verdict{color:var(--c-hearth-text)}
.pfig[data-fig="sovereign"] .verdict{color:var(--c-magenta-text)}
.paradigm-figures.mode-centralized .pfig[data-fig="sovereign"],
.paradigm-figures.mode-sovereign .pfig[data-fig="centralized"]{opacity:.4;filter:grayscale(.4);transform:scale(.985)}
@media(min-width:860px){.paradigm-figures.mode-centralized .pfig,.paradigm-figures.mode-sovereign .pfig{opacity:1;filter:none;transform:none}}
.fig-boundary{stroke:var(--c-text-faint);stroke-dasharray:4 4;fill:none}
.fig-boundary.breached{stroke:var(--c-hearth)}
.fig-boundary.sealed{stroke:var(--c-magenta);stroke-dasharray:0}
.fig-arrow{stroke:currentColor;fill:none;stroke-width:1.6}
.fig-label{font-family:var(--ff-mono);font-size:9.5px;fill:var(--c-text-muted)}
.fig-label.warn{fill:var(--c-hearth-text)}
.fig-label.safe{fill:var(--c-magenta-text)}
.fig-node-fill{fill:var(--c-panel-raised);stroke:var(--c-border);stroke-width:1.2}
.fig-node-fill.hi{stroke:var(--c-magenta)}
.fig-node-fill.warnbox{stroke:var(--c-hearth)}
.fig-title{font-family:var(--ff-mono);font-size:11px;fill:var(--c-text-heading);font-weight:700}
.fig-band-warn{fill:var(--c-hearth-soft)}
.fig-band-safe{fill:var(--c-magenta-soft)}
.fig-stroke-warn{stroke:var(--c-hearth)}
.fig-stroke-safe{stroke:var(--c-magenta)}
.fig-stroke-mute{stroke:var(--c-text-faint)}
.fig-fill-warn{fill:var(--c-hearth)}
.fig-fill-safe{fill:var(--c-magenta)}
.fig-fill-mute{fill:var(--c-text-faint)}

/* ---------- memory: six beats, phases ---------- */
.six{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:56px}
@media(min-width:700px){.six{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.six{grid-template-columns:repeat(3,1fr)}}
.beat{background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-md);padding:24px;transition:border-color .3s var(--ease)}
.beat:hover{border-color:var(--c-magenta-line)}
.beat .bn{font-family:var(--ff-mono);font-size:11px;color:var(--c-magenta-text);letter-spacing:.12em}
.beat h3{font-family:var(--ff-body);text-transform:none;font-weight:700;font-size:18px;letter-spacing:0;margin:8px 0;line-height:1.25}
.beat p{margin:0;font-size:14.5px}
.beat .ask{margin-top:12px;font-family:var(--ff-mono);font-size:12px;color:var(--c-text-heading);background:var(--c-bg);border:1px solid var(--c-border-soft);border-radius:8px;padding:10px 12px;line-height:1.5}
.phases{display:grid;gap:16px;grid-template-columns:1fr;margin:0 0 56px}
@media(min-width:820px){.phases{grid-template-columns:1fr auto 1fr;align-items:stretch}}
.phase{border:1px solid var(--c-border);border-radius:var(--r-md);padding:24px;background:var(--c-panel)}
.phase.two{border-color:var(--c-magenta-line)}
.phase .pn{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-hearth-text)}
.phase.two .pn{color:var(--c-magenta-text)}
.phase h3{font-size:32px;margin:6px 0 8px}
.phase p{margin:0;font-size:15px}
.phase-arrow{display:none;align-items:center;font-family:var(--ff-display);font-size:44px;color:var(--c-text-faint)}
@media(min-width:820px){.phase-arrow{display:flex}}

/* ---------- sovereign data lake (Foundation pipeline, rebuilt as a reflowing grid) ---------- */
.dl{position:relative;background:var(--c-panel);border:1px solid var(--c-border);border-top:3px solid var(--c-magenta);border-radius:var(--r-lg);padding:clamp(18px,3vw,34px)}
.dl__head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.dl__head h3{margin:0;font-size:28px}
.dl__row{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:820px){.dl__row--src{grid-template-columns:repeat(3,1fr)}.dl__row--prod{grid-template-columns:repeat(3,1fr)}}
.dl-node{appearance:none;text-align:center;cursor:pointer;font:inherit;color:inherit;background:var(--c-panel-raised);border:1.5px solid var(--c-border);border-radius:var(--r-sm);padding:18px 16px;
  transition:transform var(--dur-fast) var(--ease-spring),border-color var(--dur-fast) ease,background var(--dur-fast) ease}
.dl-node:hover,.dl-node[aria-pressed="true"]{border-color:var(--node-accent,var(--c-magenta));transform:translateY(-2px)}
.dl-node b{display:block;font-family:var(--ff-display);font-weight:400;font-size:22px;letter-spacing:.04em;color:var(--c-text-heading);text-transform:uppercase}
.dl-node small{display:block;margin-top:4px;font-family:var(--ff-mono);font-size:10px;letter-spacing:.1em;color:var(--c-text-muted);text-transform:uppercase}
.dl-node[data-node="revit"]{--node-accent:var(--c-cyan)}
.dl-node[data-node="imagery"]{--node-accent:var(--c-hearth)}
.dl-node[data-node="drawings"]{--node-accent:var(--c-magenta)}
.dl__pipe{display:grid;grid-template-columns:1fr;justify-items:center;gap:12px;height:38px;position:relative}
.dl__pipe i{display:block;width:2px;height:100%;background:repeating-linear-gradient(to bottom,var(--pipe,var(--c-magenta)) 0 6px,transparent 6px 12px);background-size:2px 12px;animation:flowDown 1s linear infinite}
.dl__pipe i:nth-child(2){--pipe:var(--c-hearth)}.dl__pipe i:nth-child(3){--pipe:var(--c-cyan)}
.dl__pipe i:nth-child(n+2){display:none}
@media(min-width:820px){.dl__pipe:not(.dl__pipe--one){grid-template-columns:repeat(3,1fr)}.dl__pipe:not(.dl__pipe--one) i:nth-child(n+2){display:block}}
@keyframes flowDown{from{background-position:0 -12px}to{background-position:0 0}}
.dl__perim{border:1.5px dashed var(--c-hearth-line);border-radius:var(--r-sm);padding:12px 14px;text-align:center;font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-hearth-text);background:var(--c-hearth-soft);cursor:pointer;width:100%;font-weight:700}
.dl__perim[aria-pressed="true"],.dl__perim:hover{border-style:solid;border-color:var(--c-hearth)}
.dl__lake{width:100%;padding:24px 20px;border-color:var(--c-magenta-line);background:var(--c-panel-raised)}
.dl__lake b{font-size:clamp(24px,3.4vw,36px)}
.dl__lake span{display:block;margin-top:6px;font-size:14px;color:var(--c-text-body);text-transform:none;font-family:var(--ff-body)}
.dl-node.is-on{border-color:var(--node-accent,var(--c-magenta));box-shadow:0 0 26px -10px var(--node-accent,var(--c-magenta))}
.dl__perim.is-on{border-style:solid;border-color:var(--c-hearth)}
.dl__stage{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit;z-index:5}
.funnel-card{position:absolute;left:0;top:0;pointer-events:none;border-radius:3px;box-shadow:0 6px 18px rgba(0,0,0,.35);will-change:transform,opacity}
.funnel-card--cad{width:96px;height:64px;background:var(--c-code-bg);border:1px solid var(--c-cyan);padding:6px;font-family:var(--ff-mono);font-size:8px;color:var(--c-cyan-text);box-shadow:0 0 10px var(--c-cyan-soft)}
.funnel-card--cad::before{content:"REVIT_BIM";display:block;font-weight:700;border-bottom:1px solid var(--c-cyan-soft);padding-bottom:2px;margin-bottom:4px}
.funnel-card--photo{width:104px;height:68px;background-size:cover;background-position:center;border:1.5px solid var(--c-hearth)}
.funnel-card--pdf{width:80px;height:105px;background:var(--c-text-heading);border:1px solid var(--c-border-bright);padding:6px;font-family:var(--ff-mono);font-size:7px;color:var(--c-bg)}
.funnel-card--pdf-stamp{display:inline-block;font-size:6px;font-weight:700;color:var(--c-crimson);border:1px solid var(--c-crimson);padding:1px 3px;margin-top:4px;text-transform:uppercase}
.dl__info{margin-top:22px;padding:16px 18px;background:var(--c-void);border:1px solid var(--c-border);border-left:3px solid var(--c-magenta);border-radius:var(--r-sm);min-height:92px;transition:opacity .2s ease}
.dl__info h4{font-family:var(--ff-display);font-weight:400;font-size:22px;letter-spacing:.04em;text-transform:uppercase;color:var(--c-magenta-text);margin:0 0 6px}
.dl__info p{margin:0;font-size:14.5px;color:var(--c-text-heading)}
.ticker{margin-top:14px;border:1px solid var(--c-border);border-radius:10px;padding:12px 14px;font-family:var(--ff-mono);font-size:12px;color:var(--c-text-heading);background:var(--c-bg);display:flex;gap:10px;align-items:center;min-height:46px}
.ticker i{width:7px;height:7px;border-radius:50%;background:var(--c-magenta);flex:none;animation:pulse 1.6s infinite}

/* ---------- stack accordion (architecture narrative, ported) ---------- */
.stack-wrap{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:0 14px}
@media(min-width:640px){.stack-wrap{grid-template-columns:46px minmax(0,1fr);gap:0 20px}}
.connector-col{position:relative}
.connector-col svg{position:sticky;top:8px}
.layers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.layer{position:relative}
.layer-btn{width:100%;text-align:left;appearance:none;cursor:pointer;background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-md);padding:16px 18px;display:flex;align-items:center;gap:14px;
  transition:border-color .25s var(--ease),background .25s var(--ease),transform .18s var(--ease)}
.layer-btn:hover{border-color:var(--c-border-bright)}
.layer[data-open="true"] .layer-btn{background:var(--c-panel-raised);border-color:var(--layer-accent,var(--c-magenta-line))}
.layer-index{font-family:var(--ff-mono);font-size:11px;color:var(--layer-on,var(--c-on-accent));background:var(--layer-accent,var(--c-magenta));width:26px;height:26px;min-width:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}
.layer-heading{flex:1;min-width:0}
.layer-heading .tag{display:block;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--layer-accent-text,var(--c-magenta-text));margin-bottom:2px}
.layer-heading h3{margin:0;font-family:var(--ff-body);text-transform:none;font-weight:700;color:var(--c-text-heading);font-size:16.5px;letter-spacing:0}
.layer-chevron{font-family:var(--ff-mono);font-size:14px;color:var(--c-text-muted);transition:transform .3s var(--ease);flex:none}
.layer[data-open="true"] .layer-chevron{transform:rotate(180deg);color:var(--c-text-heading)}
.layer-panel{overflow:hidden;max-height:0;opacity:0;transition:max-height .38s var(--ease),opacity .3s var(--ease)}
.layer[data-open="true"] .layer-panel{opacity:1}
.layer-panel-inner{padding:4px 18px 22px 58px;border-left:1px solid var(--c-border);margin-left:13px}
@media(min-width:640px){.layer-panel-inner{padding-left:70px;margin-left:17px}}
.layer-panel-inner p{margin:0 0 14px;font-size:14.5px;max-width:62ch}
.demo{background:var(--c-bg);border:1px solid var(--c-border-soft);border-radius:var(--r-sm);padding:14px 14px 16px;margin-top:4px}
.demo-label{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-text-muted);margin:0 0 10px}
.ledger{display:flex;flex-direction:column-reverse;gap:6px;margin-bottom:10px;min-height:36px}
.ledger-row{display:flex;align-items:center;gap:8px;font-family:var(--ff-mono);font-size:11.5px;background:var(--c-panel);border:1px solid var(--c-border);border-radius:6px;padding:7px 10px;color:var(--c-text-muted)}
.ledger-row .lock{color:var(--c-text-muted)}
.ledger-row.fresh{border-color:var(--c-magenta-line);color:var(--c-text-heading);animation:appendIn .5s var(--ease)}
@keyframes appendIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ledger-row .lock.new{color:var(--c-magenta-text)}
.adapter-flow{display:flex;align-items:center;justify-content:space-between;gap:6px}
.adapter-flow .col{display:flex;flex-direction:column;gap:6px}
.chip{font-family:var(--ff-mono);font-size:10.5px;padding:6px 8px;border-radius:6px;background:var(--c-panel);border:1px solid var(--c-border);color:var(--c-text-muted);white-space:normal;overflow-wrap:anywhere}
@media(max-width:560px){.layer-panel-inner{padding-left:14px;margin-left:6px}.adapter-flow{flex-wrap:wrap;justify-content:center}}
.adapter-core{display:flex;flex-direction:column;align-items:center;gap:4px;font-family:var(--ff-mono);font-size:10px;color:var(--c-magenta-text);border:1px dashed var(--c-magenta-line);border-radius:10px;padding:10px 12px}
.adapter-core .lockline{font-size:9px;color:var(--c-text-muted)}
.adapter-arrow{color:var(--c-text-muted);font-size:14px}
.rl-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rl-meter{flex:1;min-width:140px;height:8px;background:var(--c-panel);border:1px solid var(--c-border);border-radius:99px;overflow:hidden}
.rl-meter-fill{height:100%;width:22%;background:var(--grad-cta);transition:width .6s var(--ease)}
.rl-score{font-family:var(--ff-mono);font-size:11px;color:var(--c-text-muted);min-width:15ch}
.btn-sim{font-family:var(--ff-mono);font-size:11px;letter-spacing:.03em;padding:9px 13px;border-radius:8px;background:var(--c-panel);border:1px solid var(--c-border);color:var(--c-text-heading);cursor:pointer;transition:border-color .2s}
.btn-sim:hover{border-color:var(--layer-accent,var(--c-magenta))}
.btn-sim:disabled{opacity:.6;cursor:default}
.query-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.query-chip{font-family:var(--ff-mono);font-size:11px;padding:8px 11px;border-radius:8px;background:var(--c-panel);border:1px solid var(--c-border);color:var(--c-text-body);cursor:pointer;text-align:left;transition:border-color .2s,color .2s}
.query-chip:hover,.query-chip[aria-pressed="true"]{border-color:var(--c-magenta-line);color:var(--c-text-heading)}
.result-card{margin-top:2px;border:1px solid var(--c-magenta-line);background:var(--c-panel);border-radius:8px;padding:10px 12px;font-size:12.5px;color:var(--c-text-body);display:none}
.result-card.show{display:block;animation:appendIn .4s var(--ease)}
.result-card .rc-src{display:block;font-family:var(--ff-mono);font-size:10px;color:var(--c-magenta-text);margin-top:6px}
.pillars{display:grid;grid-template-columns:1fr;gap:12px;margin-top:24px}
@media(min-width:640px){.pillars{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.pillars{grid-template-columns:repeat(4,1fr)}}
.pillar{background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-md);padding:16px}
.pillar .pillar-num{font-family:var(--ff-mono);font-size:11px;color:var(--layer-accent-text,var(--c-magenta-text))}
.pillar h4{margin:8px 0 6px;font-family:var(--ff-body);font-weight:700;color:var(--c-text-heading);font-size:14px}
.pillar p{margin:0;font-size:12.5px;color:var(--c-text-muted)}
.stack-shot{margin-top:14px}

/* ---------- screenshot frames + inspector (Foundation gallery, ported) ---------- */
.shot{margin:0;background:var(--c-void);border:1px solid var(--c-border);border-top:2px solid var(--accent,var(--c-magenta));border-radius:var(--r-md);overflow:hidden;transition:box-shadow .3s ease,border-color .3s ease}
.shot:hover{border-color:var(--accent,var(--c-magenta))}
.shot__bar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--c-border);font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-text-muted);background:var(--c-panel)}
.shot__dot{width:7px;height:7px;border-radius:50%;background:var(--accent,var(--c-magenta));flex:none}
.shot__stage{position:relative;background:var(--c-bg);cursor:crosshair;overflow:hidden}
.shot__stage img{width:100%;height:auto;display:block;transition:transform .7s var(--ease),opacity .25s ease}
.shot__stage:hover img{transform:scale(1.02)}
.shot__stage.swap img{opacity:0}
.shot__cross-v,.shot__cross-h{position:absolute;pointer-events:none;opacity:0;transition:opacity .25s ease;z-index:3}
.shot__cross-v{top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.45),transparent)}
.shot__cross-h{left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent)}
.shot__stage:hover .shot__cross-v,.shot__stage:hover .shot__cross-h{opacity:1}
.shot__meta{position:absolute;right:14px;bottom:14px;z-index:4;pointer-events:none;background:var(--c-stage-bg);color:var(--c-stage-text);border:1px solid var(--c-border-bright);border-left:3px solid var(--accent,var(--c-magenta));border-radius:3px;
  padding:10px 14px;font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease);max-width:70%}
.shot__meta b{display:block;color:var(--c-magenta-text);margin-bottom:3px;font-size:10px}
.shot__stage:hover .shot__meta,.shot__stage:focus-within .shot__meta{opacity:1;transform:none}
@media(hover:none){.shot__meta{opacity:1;transform:none;font-size:8.5px;right:8px;bottom:8px}}
.shot figcaption{padding:14px 18px;border-top:1px solid var(--c-border);font-size:13.5px;line-height:1.5;color:var(--c-text-body)}
.viewer__tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.viewer__tab{appearance:none;cursor:pointer;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:9px 13px;border-radius:999px;border:1px solid var(--c-border);background:var(--c-panel);color:var(--c-text-body);transition:border-color .2s,color .2s,background .2s}
.viewer__tab:hover{border-color:var(--c-border-bright);color:var(--c-text-heading)}
.viewer__tab[aria-pressed="true"]{border-color:var(--c-magenta);color:var(--c-text-heading);background:var(--c-panel-raised)}

/* ---------- proof: tabs and panels ---------- */
.ptabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.ptab{appearance:none;cursor:pointer;background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-md);padding:14px 18px;text-align:left;min-width:0;transition:border-color .25s,background .25s;flex:1 1 220px}
.ptab .pt-n{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.16em;color:var(--c-text-muted);text-transform:uppercase;display:block}
.ptab .pt-t{font-family:var(--ff-body);font-weight:700;color:var(--c-text-body);font-size:15.5px;display:block;margin-top:4px}
.ptab:hover{border-color:var(--c-border-bright)}
.ptab[aria-selected="true"]{border-color:var(--c-magenta);background:var(--c-panel-raised)}
.ptab[aria-selected="true"] .pt-n{color:var(--c-magenta-text)}
.ptab[aria-selected="true"] .pt-t{color:var(--c-text-heading)}
.ppanel{background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:clamp(20px,3vw,34px);display:none}
.ppanel.show{display:block;animation:appendIn .45s var(--ease)}
.ppanel .ph{font-size:clamp(28px,4vw,46px);line-height:1;margin:0 0 12px;max-width:24ch}
.pgrid{display:grid;gap:28px;grid-template-columns:1fr}
@media(min-width:1000px){.pgrid{grid-template-columns:.72fr 1.28fr;align-items:start}}
.bullets{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.bullets li{font-size:14.5px;padding-left:18px;position:relative}
.bullets li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--c-magenta)}
.status-chip{display:inline-block;font-family:var(--ff-mono);font-size:11px;letter-spacing:.08em;padding:6px 12px;border-radius:999px;border:1px solid var(--c-hearth-line);color:var(--c-hearth-text);background:var(--c-hearth-soft);margin:6px 0 16px}

/* BIM graph explorer (Foundation, ported) */
.gex__nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.gnode{appearance:none;cursor:pointer;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:9px 13px;border:1px solid var(--c-border);background:var(--c-bg);color:var(--c-text-body);border-radius:var(--r-sm);transition:border-color .2s,color .2s,transform .2s var(--ease-spring)}
.gnode:hover{transform:translateY(-2px);border-color:var(--c-cyan);color:var(--c-cyan-text)}
.gnode[aria-pressed="true"]{border-color:var(--c-cyan);color:var(--c-cyan-text);background:var(--c-panel-raised)}
.gex__info{margin-bottom:14px;border:1px solid var(--c-border);border-left:3px solid var(--c-cyan);border-radius:var(--r-sm);background:var(--c-bg);padding:14px 16px}
.gex__info h4{font-family:var(--ff-display);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:22px;color:var(--c-cyan-text);margin:0 0 6px}
.gex__rel{font-family:var(--ff-mono);font-size:11.5px;color:var(--c-hearth-text);margin:0 0 10px;letter-spacing:.04em}
.gex__code{font-family:var(--ff-data);font-size:11px;padding:10px 12px;background:var(--c-code-bg);border:1px solid var(--c-border);border-radius:6px;color:var(--c-text-body);overflow-wrap:anywhere}

.athena{display:grid;gap:12px;margin-top:18px}
.acard{border:1px solid var(--c-border);border-radius:12px;background:var(--c-bg);padding:14px 16px;display:grid;grid-template-columns:auto 1fr;gap:12px}
.acard .dot{width:8px;height:8px;border-radius:50%;background:var(--c-hearth);margin-top:7px;box-shadow:0 0 12px var(--c-hearth)}
.acard.m .dot{background:var(--c-magenta);box-shadow:0 0 12px var(--c-magenta)}
.acard b{color:var(--c-text-heading);font-size:14px;display:block}
.acard p{margin:3px 0 0;font-size:13px;color:var(--c-text-body)}
.acard .when{font-family:var(--ff-mono);font-size:10.5px;color:var(--c-text-muted);margin-top:6px;display:block}

/* ---------- Tuesday moment ---------- */
.moment{background:radial-gradient(900px 500px at 50% 0%,var(--c-hearth-soft),transparent 65%),var(--c-bg)}
.moment-grid{display:grid;gap:40px;grid-template-columns:1fr}
@media(min-width:960px){.moment-grid{grid-template-columns:.85fr 1.15fr;align-items:start}}
.moment-sticky{position:relative}
@media(min-width:960px){.moment-sticky{position:sticky;top:calc(var(--header-h) + 32px)}}
.moment-time{font-family:var(--ff-display);font-size:clamp(76px,11vw,150px);line-height:.85;color:var(--c-text-heading)}
.moment-time span{color:var(--c-magenta)}
.steps{display:flex;flex-direction:column;gap:clamp(40px,10vh,110px)}
.step{opacity:.22;transform:translateY(10px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.step.in{opacity:1;transform:none}
.no-js .step{opacity:1;transform:none}
.step-label{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;color:var(--c-hearth-text);margin:0 0 10px;text-transform:uppercase}
.mail{background:var(--c-panel);border:1px solid var(--c-border);border-radius:14px;padding:18px 20px}
.mail .mh{font-family:var(--ff-mono);font-size:11px;color:var(--c-text-muted);border-bottom:1px solid var(--c-border-soft);padding-bottom:10px;margin-bottom:12px;line-height:1.7}
.mail .mh b{color:var(--c-text-body);font-weight:400}
.mail p{margin:0;font-size:15.5px;color:var(--c-text-heading)}
.typebox{border:1px solid var(--c-magenta-line);background:var(--c-panel);border-radius:12px;padding:16px 18px;font-family:var(--ff-mono);font-size:14px;color:var(--c-text-heading);min-height:56px}
.typebox .caret{display:inline-block;width:8px;height:16px;background:var(--c-magenta);vertical-align:-3px;margin-left:2px;animation:blink 1s steps(1) infinite}
.hits{display:grid;gap:10px}
.hit{border:1px solid var(--c-border);background:var(--c-panel);border-radius:12px;padding:14px 16px}
.hit.win{border-color:var(--c-magenta);box-shadow:0 0 34px -12px var(--c-magenta)}
.hit .hl{font-family:var(--ff-mono);font-size:11px;color:var(--c-text-muted);letter-spacing:.06em}
.hit.win .hl{color:var(--c-magenta-text)}
.hit b{display:block;color:var(--c-text-heading);font-size:15px;margin:4px 0}
.hit p{margin:0;font-size:13.5px;color:var(--c-text-body)}
.payoff{font-family:var(--ff-display);font-size:clamp(36px,5.4vw,64px);line-height:.98;color:var(--c-text-heading);margin:0;text-transform:uppercase}
.payoff span{color:var(--c-magenta)}

/* section-cut comparator (A Tuesday slider idea, rebuilt as an accessible left/right slider) */
.cut{margin-top:14px}
.cut__stage{position:relative;height:clamp(230px,34vw,320px);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden;cursor:col-resize}
.cut__layer{position:absolute;inset:0;background:var(--c-bg)}
.cut__layer--top{clip-path:inset(0 var(--cut-right,40%) 0 0)}
.cut__layer svg{width:100%;height:100%}
.cut__lbl{position:absolute;top:12px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:4px;background:var(--c-bg);border:1px solid var(--c-border)}
.cut__lbl--top{left:14px;color:var(--c-hearth-text);border-color:var(--c-hearth-line)}
.cut__lbl--bot{right:14px;color:var(--c-magenta-text);border-color:var(--c-magenta-line)}
.cut__line{position:absolute;top:0;bottom:0;left:var(--cut-x,60%);width:0;border-left:2px solid var(--c-cyan);box-shadow:0 0 16px var(--c-cyan-soft);pointer-events:none}
.cut__handle{position:absolute;top:50%;left:var(--cut-x,60%);width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:var(--c-panel-raised);border:2px solid var(--c-cyan);display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-mono);font-size:14px;color:var(--c-cyan-text);cursor:col-resize;appearance:none;padding:0;touch-action:none}
.cut svg .g{stroke:var(--c-text-faint);fill:none;stroke-width:1.2}
.cut svg .s{stroke:var(--c-text-body);fill:none;stroke-width:1.6}
.cut svg .m{stroke:var(--c-magenta);fill:var(--c-magenta-soft);stroke-width:1.6}
.cut svg .t{font-family:var(--ff-mono);font-size:10px;fill:var(--c-text-muted)}
.cut__note{font-family:var(--ff-mono);font-size:10.5px;color:var(--c-text-muted);margin-top:8px}

/* ---------- sovereignty ---------- */
.guarantees{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:22px}
@media(min-width:900px){.guarantees{grid-template-columns:repeat(3,1fr)}}
.guar{border:1px solid var(--c-magenta-line);border-radius:var(--r-md);padding:26px;background:linear-gradient(180deg,var(--c-magenta-soft),transparent 60%),var(--c-panel)}
.guar .gi{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;color:var(--c-magenta-text)}
.guar h3{font-size:30px;margin:8px 0}
.guar p{margin:0;font-size:14.5px}
.deploy{border:1px solid var(--c-border);border-radius:var(--r-md);padding:22px 26px;background:var(--c-panel);margin-bottom:72px}
.deploy b{color:var(--c-text-heading);font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;display:block;margin-bottom:8px}
.deploy p{margin:0;font-size:15.5px;max-width:80ch}
.notnot{display:grid;gap:18px;grid-template-columns:1fr;margin:20px 0 48px}
@media(min-width:820px){.notnot{grid-template-columns:repeat(3,1fr)}}
.nn{border-top:2px solid var(--c-hearth);padding-top:14px}
.nn .not{font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;color:var(--c-hearth-text);text-transform:uppercase}
.nn h3{font-family:var(--ff-body);text-transform:none;font-weight:700;font-size:18px;letter-spacing:0;margin:6px 0}
.nn p{margin:0;font-size:14.5px;color:var(--c-text-muted)}
.adv{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:700px){.adv{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.adv{grid-template-columns:repeat(4,1fr)}}
.advc{border:1px solid var(--c-border);background:var(--c-panel);border-radius:var(--r-md);padding:22px;transition:border-color .3s}
.advc:hover{border-color:var(--c-hearth-line)}
.advc .an{font-family:var(--ff-display);font-size:36px;color:var(--c-hearth);line-height:1}
.advc h3{font-family:var(--ff-body);text-transform:none;font-weight:700;font-size:16.5px;letter-spacing:0;margin:10px 0 6px}
.advc p{margin:0;font-size:13.5px;color:var(--c-text-muted)}
.moat{font-family:var(--ff-display);font-size:clamp(28px,3.6vw,46px);line-height:1.05;color:var(--c-text-heading);margin:34px 0 0;max-width:30ch;text-transform:uppercase}
.moat span{color:var(--c-magenta)}

/* ---------- why now, status board ---------- */
.marketstrip{display:grid;gap:16px;grid-template-columns:1fr;margin:8px 0 12px}
@media(min-width:640px){.marketstrip{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.marketstrip{grid-template-columns:repeat(4,1fr)}}
.mstat{border:1px solid var(--c-border);background:var(--c-panel);border-radius:var(--r-md);padding:24px}
.mstat .mv{font-family:var(--ff-display);font-size:clamp(48px,6vw,76px);line-height:.9;color:var(--c-text-heading)}
.mstat .mv span{color:var(--c-magenta)}
.mstat p{margin:8px 0 0;font-size:14px;color:var(--c-text-muted)}
.mstat .msrc{display:block;margin-top:12px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-muted)}
.fn{font-family:var(--ff-mono);font-size:10.5px;color:var(--c-text-muted);margin:0 0 44px}
.drivers{display:grid;gap:10px;margin:0 0 64px;padding:0;list-style:none;max-width:78ch}
.drivers li{padding-left:22px;position:relative;font-size:15.5px}
.drivers li::before{content:"";position:absolute;left:0;top:.75em;width:10px;height:1px;background:var(--c-hearth)}
.board{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:900px){.board{grid-template-columns:repeat(3,1fr)}}
.bcol{border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-panel);padding:24px}
.bcol .bh{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:8px;margin-bottom:14px}
.bcol .bh i{width:8px;height:8px;border-radius:50%;display:block}
.bcol.now .bh{color:var(--c-magenta-text)}.bcol.now .bh i{background:var(--c-magenta);box-shadow:0 0 10px var(--c-magenta)}
.bcol.dep .bh{color:var(--c-hearth-text)}.bcol.dep .bh i{background:var(--c-hearth);box-shadow:0 0 10px var(--c-hearth)}
.bcol.nxt .bh{color:var(--c-text-muted)}.bcol.nxt .bh i{background:transparent;border:1px solid var(--c-text-muted)}
.bcol ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.bcol li b{display:block;color:var(--c-text-heading);font-size:15px}
.bcol li span{font-size:13.5px;color:var(--c-text-muted)}
.asof{font-family:var(--ff-mono);font-size:11px;color:var(--c-text-muted);margin-top:14px;letter-spacing:.08em}

/* ---------- team ---------- */
.team{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:820px){.team{grid-template-columns:repeat(3,1fr)}}
.person{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-panel);padding:clamp(22px,3vw,30px);display:flex;flex-direction:column}
.person__avatar{width:112px;height:112px;border-radius:50%;overflow:hidden;border:1px solid var(--c-border);margin-bottom:18px;background:var(--c-void);flex:none;transition:border-color var(--dur) ease,transform var(--dur) var(--ease-spring)}
.person__avatar img{width:100%;height:100%;object-fit:cover;transition:filter var(--dur) ease}
.person:hover .person__avatar{border-color:var(--c-magenta);transform:scale(1.04)}
.person .role{font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-hearth-text)}
.person h3{font-size:38px;margin:6px 0 10px}
.person p{margin:0 0 10px;font-size:14.5px}
.person .creds{font-family:var(--ff-mono);font-size:11px;color:var(--c-text-muted);line-height:1.75;letter-spacing:.04em;text-transform:uppercase;margin-top:auto;padding-top:8px}
.person--placeholder{border-style:dashed;background:transparent}
.person--placeholder .person__avatar{display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);font-size:40px;color:var(--c-text-faint);border-style:dashed;background:transparent}
.person--placeholder .soon{font-family:var(--ff-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-muted)}
body[data-show-placeholders="false"] [data-status="placeholder"]{display:none}

/* ---------- call to action, footer ---------- */
.cta{background:radial-gradient(1000px 520px at 85% 100%,var(--c-magenta-soft),transparent 60%),radial-gradient(800px 480px at 5% 0%,var(--c-hearth-soft),transparent 55%),var(--c-bg)}
.cta h2{font-size:clamp(46px,8vw,108px);max-width:12ch;line-height:.92}
.cta h2 span{color:var(--c-magenta)}
.cta-grid{display:grid;gap:30px;grid-template-columns:1fr;align-items:end}
@media(min-width:900px){.cta-grid{grid-template-columns:1.2fr .8fr}}
.brief{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-panel);padding:28px}
.brief .bt{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;color:var(--c-magenta-text);text-transform:uppercase}
.brief h3{font-size:36px;margin:8px 0}
.brief p{margin:0;font-size:15px}
.page-footer{border-top:1px solid var(--c-border);padding:44px 0 48px;background:var(--c-void)}
.page-footer .wrap{display:grid;gap:28px;grid-template-columns:1fr;align-items:center;justify-items:center;text-align:center}
@media(min-width:900px){.page-footer .wrap{grid-template-columns:auto 1fr auto;justify-items:stretch;text-align:left}}
.page-footer .fine{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-text-muted);line-height:1.9}
.page-footer .fine a{color:var(--c-text-body)}
@media(min-width:900px){.page-footer .fine:last-child{text-align:right}}


/* ---------- additions written with the page markup ---------- */
.lede--sm{font-size:16px}
.hero .hero-pat{flex:none}
.hero__top .eyebrow{flex-wrap:wrap}
.lock-ico{display:inline-block;width:12px;height:12px;flex:none}
.viewer{min-width:0}
.gex{min-width:0}
.cut__layer{background:var(--c-bg)}
.cut svg .c{stroke:var(--c-hearth);fill:var(--c-hearth-soft);stroke-width:1.6}
.cut svg .k{fill:var(--c-hearth-text);font-family:var(--ff-mono);font-size:10px}
.cut svg .km{fill:var(--c-magenta-text);font-family:var(--ff-mono);font-size:10px}
.cut__handle:focus-visible{outline:2px solid var(--c-focus);outline-offset:3px}
.stat-copy strong.lead{color:var(--c-text-heading)}
.shot--plain .shot__stage{cursor:default}
.shot--plain .shot__stage:hover img{transform:none}
.person__avatar--ph{font-family:var(--ff-display)}
.footer-links a{margin-inline:.25em}
.theme-toggle__label{min-width:5.2ch;text-align:left}
@media(max-width:519px){.theme-toggle__label{display:none}.theme-toggle{padding:7px 10px}}
@media(max-width:640px){.lockup__sub{display:none}.lockup__mark{width:40px;height:40px}.lockup__name{font-size:22px}.lockup__img{height:34px}}
.gex__grid{display:grid;gap:18px;grid-template-columns:1fr}
.mail-note{font-family:var(--ff-mono);font-size:10.5px;color:var(--c-text-muted);margin-top:8px}
.card-tilt.rv{transition:opacity .7s var(--ease),transform .15s ease-out,background var(--dur) ease,border-color var(--dur) ease,box-shadow var(--dur) ease}
.hero-lower>*{min-width:0}
.tl__ticks{min-width:0}
.tick{min-width:0}
@media(max-width:560px){.tl__ticks{gap:1px}.tl__scale{font-size:8.5px;letter-spacing:.08em;flex-wrap:wrap}}


/* ---------- message pillars, proof start note, data-gap chart ---------- */
.msg-pillars{margin-top:32px;padding:28px clamp(20px,3vw,36px);border:1px solid var(--c-border);border-left:3px solid var(--c-magenta);border-radius:var(--r-md);background:var(--c-panel)}
.msg-pillars h3{font-family:var(--ff-display);font-size:clamp(26px,3vw,34px);letter-spacing:.03em;margin:0 0 18px}
.msg-pillars ol{list-style:none;margin:0;padding:0;display:grid;gap:16px;grid-template-columns:1fr;counter-reset:mp}
@media(min-width:900px){.msg-pillars ol{grid-template-columns:repeat(2,1fr);gap:20px 36px}}
.msg-pillars li{counter-increment:mp;position:relative;padding-left:44px;color:var(--c-text-body);line-height:1.55}
.msg-pillars li::before{content:counter(mp);position:absolute;left:0;top:-4px;font-family:var(--ff-display);font-size:34px;line-height:1;color:var(--c-magenta)}
.msg-pillars li b{color:var(--c-text-heading);font-weight:700}
.start-note{margin:14px 0 0;max-width:70ch;padding:10px 14px;border-left:3px solid var(--c-hearth);background:var(--c-hearth-soft);color:var(--c-text-body);font-size:15px}
.start-note b{color:var(--c-hearth-text)}

.datagap{margin:52px 0 12px;position:relative}
.datagap h3{font-family:var(--ff-display);font-size:clamp(28px,3.6vw,44px);line-height:1.02;letter-spacing:.02em;margin:0 0 24px;max-width:26ch}
.dg-steps{list-style:none;margin:0 0 34px;padding:0;display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.dg-steps{grid-template-columns:repeat(4,1fr);gap:18px}}
.dg-step b{display:block;font-family:var(--ff-display);font-weight:400;font-size:clamp(44px,5vw,64px);line-height:.95;color:var(--c-text-heading)}
.dg-step span{display:block;margin:6px 0 10px;font-size:14px;color:var(--c-text-body);min-height:2.6em}
.dg-track{display:block;height:8px;border-radius:4px;background:var(--c-panel-hover);overflow:hidden}
.dg-track>i{display:block;height:100%;border-radius:4px}
.t-all{background:var(--c-border-bright)}
.t-mid{background:var(--dg-analysed)}
.t-use{background:var(--dg-used)}
.datagap{--dg-used:color-mix(in srgb,var(--c-text-heading) 82%,var(--c-panel));--dg-analysed:color-mix(in srgb,var(--c-text-heading) 36%,var(--c-panel));--dg-gap:var(--c-magenta)}
.dg-title{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-text-muted);margin:0 0 10px}
.dg-legend{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px;color:var(--c-text-body)}
.dg-legend li{display:flex;align-items:center;gap:8px}
.dg-legend i{width:12px;height:12px;border-radius:3px;flex:none}
.dg-used{background:var(--dg-used)}
.dg-analysed{background:var(--dg-analysed)}
.dg-gap{background:var(--dg-gap)}
.dg-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dg-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-areas:"n n" "b v";gap:4px 10px;align-items:center;padding:6px 8px;border-radius:6px;outline:none;cursor:default}
.dg-row:hover,.dg-row:focus-visible{background:var(--c-panel-hover)}
.dg-row:focus-visible{box-shadow:0 0 0 2px var(--c-focus)}
@media(min-width:760px){.dg-row{grid-template-columns:230px minmax(0,1fr) 44px;grid-template-areas:"n b v"}}
.dg-name{grid-area:n;font-size:14px;color:var(--c-text-body)}
.dg-bar{grid-area:b;display:flex;gap:2px;height:14px}
.dg-bar i{display:block;height:100%;min-width:2px}
.dg-bar i:first-child{border-radius:4px 0 0 4px}
.dg-bar i:last-child{border-radius:0 4px 4px 0}
.dg-val{grid-area:v;font-family:var(--ff-mono);font-size:12px;text-align:right;color:var(--c-text-heading)}
.dg-tip{position:absolute;z-index:5;max-width:min(360px,92%);padding:9px 12px;border-radius:6px;border:1px solid var(--c-border-bright);background:var(--c-panel-raised);color:var(--c-text-heading);font-size:12.5px;line-height:1.45;box-shadow:var(--shadow-card,0 12px 32px rgba(0,0,0,.35));pointer-events:none}
.dg-tip[hidden]{display:none}
.dg-read{margin:18px 0 12px;max-width:72ch;color:var(--c-text-body)}
.dg-table{margin:8px 0 14px;font-size:13px}
.dg-table summary{cursor:pointer;color:var(--c-text-muted);font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.dg-table table{border-collapse:collapse;width:100%;margin-top:10px}
.dg-table th,.dg-table td{padding:6px 10px;border-bottom:1px solid var(--c-border);text-align:left;color:var(--c-text-body)}
.dg-table thead th{color:var(--c-text-heading);font-weight:600}
.dg-table tbody th{font-weight:400}

/* ---------- fixes 2026-09-20 ---------- */
.hero h1 .h1-sub{display:block;margin-top:.5em;font-size:.4em;line-height:1.1;letter-spacing:.04em;color:var(--c-text-body)}
.hl-hours{font-weight:700;color:var(--c-text-heading)}
.cyan-cue{color:var(--c-cyan-text)}
