/* tokens.css is the ONLY color source for the Novact site. Do not hard-code colors anywhere else.
   Exemption: the retro windows in the opening scene are a fixed illustration and keep their own colors.
   Novact tokens, v2 2026-10-28: Day values updated to the live A+ build (fix06) per Liz. Logo glows in Night only.
   Novact Concept B v3 tokens. Night is the default and the page always opens in Night.
   Day is set by <html data-atmosphere="day">. Values match specs/TYPE-COLOR.md and specs/ATMOSPHERE.md. */
@font-face{font-family:"Geist";src:url("../fonts/Geist.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("../fonts/GeistMono.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root,[data-atmosphere="night"]{
  color-scheme:dark;
  /* color: Night */
  --c-base:#0B0C0F;            /* page ground, scene clear color */
  --c-surface:#16171C;         /* fields under glass */
  --c-surface-2:#1E1F26;       /* secondary hover */
  --c-text:#F2F1EC;            /* 17.29:1 on base */
  --c-text-2:#A3A4AB;          /* 7.88:1 on base, 7.21:1 on surface */
  --c-accent:#8E96D2;          /* accent text and marks: 6.93:1 on base */
  --c-accent-fill:#8E96D2;     /* primary button fill (same in both atmospheres) */
  --c-accent-hi:#D3D7FA;       /* primary hover */
  --c-accent-press:#7C84C4;    /* primary pressed */
  --c-on-accent:#0B0C0F;       /* text on accent fills: 6.93:1 */
  --c-rule:rgba(242,241,236,.12);
  --c-rule-active:rgba(242,241,236,.30);
  --c-tick:rgba(242,241,236,.32);
  --c-btn-line:rgba(242,241,236,.32);
  --c-field:rgba(22,23,28,.86);
  --c-field-line:rgba(242,241,236,.16);
  --c-chip-line:rgba(142,150,210,.55);
  --c-scrim:11,12,15;          /* rgb triplet for text scrims, pools and the nav shade */
  --c-glass:rgba(22,23,28,.58);           /* Privacy and Visibility plate */
  --c-glass-card:rgba(30,31,38,.66);      /* Vera and Mission Control cards */
  --c-glass-line:rgba(242,241,236,.07);
  --c-cluster:rgba(11,12,15,.55);         /* scene control cluster */
  --c-cluster-line:rgba(242,241,236,.18);
  --c-cluster-knob:rgba(242,241,236,.14);
  --logo-color:#F2F1EC;
  --c-focus:#D3D7FA;
  --logo-glow:drop-shadow(0 0 10px rgba(142,150,210,.45)) drop-shadow(0 0 2px rgba(211,215,250,.35));
  --grain-opacity:.06; --watermark-opacity:.06;
  /* Live fix06 colors that the deck did not name. Values match the build. */
  --c-field-bg:#16171C;
  --c-header:rgba(11,12,15,.92);
  --c-glass-top:rgba(38,40,52,.94);
  --c-glass-bot:rgba(16,17,22,.96);
  --c-glass-label:#B9BAC1;
  --c-glass-edge:rgba(142,150,210,.20);
  --c-glass-shadow:rgba(0,0,0,.5);
  --c-glass-glow:rgba(142,150,210,.14);
  --c-inset:rgba(255,255,255,.08);
  --c-glass-shadow-full:0 0 0 1px rgba(142,150,210,.20),0 24px 70px rgba(0,0,0,.5),0 0 50px rgba(142,150,210,.14),inset 0 1px 0 rgba(255,255,255,.08);
  --c-glass-lit-shadow:0 0 0 1px rgba(142,150,210,.40),0 24px 70px rgba(0,0,0,.5),0 0 80px rgba(142,150,210,.30),inset 0 1px 0 rgba(255,255,255,.10);
  --c-glass-stroke:linear-gradient(135deg,rgba(211,215,250,.6),rgba(142,150,210,.06) 40%,rgba(142,150,210,.04) 60%,rgba(211,215,250,.35));
  --c-btn-halo:rgba(142,150,210,.35);
  --c-shade:rgba(11,12,15,.96);
  --c-shade-spread:rgba(11,12,15,.28);
  --c-mark:#C9CEF0;
  --c-scrim-bg:radial-gradient(ellipse at 30% 60%,rgba(11,12,15,.84),rgba(11,12,15,.45) 55%,rgba(11,12,15,0) 75%);
  --c-core-shade:radial-gradient(ellipse 620px 440px at var(--core-x,64%) var(--core-y,52%),rgba(11,12,15,.30) 0%,rgba(11,12,15,.30) 46%,rgba(11,12,15,0) 100%);
  --c-decision-line:rgba(242,241,236,.08);
  --c-error:#FFC4C4;
}
[data-atmosphere="day"]{
  color-scheme:light;
  /* color: Day */
  --c-base:#E9E7E2;            /* pale warm-grey ground */
  --c-surface:#F3F2EE;
  --c-surface-2:rgba(22,23,28,.06);
  --c-text:#16171C;            /* 14.48:1 on base */
  --c-text-2:#4D4F5E;          /* live A+: 6.55:1 on base, 5.67:1 on the darkest fog (#D9D8D4) */
  --c-label:#44465A;           /* live A+: mono labels and chips, 7.49:1 on base */
  --c-accent:#52599C;          /* accent text. Smallest step from live #535D9D: 4.51:1 on the darkest fog #D9D8D4 (was 4.30), 5.20:1 on base. Fill stays #535D9D. */
  --c-accent-fill:#535D9D;     /* live A+: Day primary fill, white label 6.14:1 */
  --c-accent-hi:#414B8C;       /* live A+: focus ring and strong accent, 6.51:1 on base */
  --c-focus:#414B8C;
  /* pressed: filter brightness(.9) on the fill (live A+) */
  --c-on-accent:#FFFFFF;
  --c-rule:rgba(22,23,28,.20);   /* live A+ */
  --c-rule-active:rgba(22,23,28,.34);
  --c-tick:rgba(22,23,28,.36);
  --c-btn-line:rgba(22,23,28,.32);
  --c-field:#F6F5F1;           /* live A+ */
  --c-field-line:rgba(22,23,28,.18);
  --c-chip-line:#4D4F5E;       /* live A+: chips border in text-2 */
  --c-scrim:233,231,226;
  --c-glass:rgba(250,249,246,.55);
  --c-glass-card:rgba(252,251,249,.66);
  --c-glass-line:rgba(22,23,28,.08);
  --c-cluster:rgba(246,245,241,.72);
  --c-cluster-line:rgba(22,23,28,.16);
  --c-cluster-knob:rgba(22,23,28,.08);
  --logo-color:#16171C;
  --logo-glow:none;
  --grain-opacity:.05; --watermark-opacity:.07;
  --c-field-bg:#F6F5F1;
  --c-header:rgba(233,231,226,.97);
  --c-glass-top:rgba(252,251,248,.96);
  --c-glass-bot:rgba(235,235,241,.97);
  --c-glass-label:#44465A;
  --c-glass-edge:rgba(83,93,157,.28);
  --c-glass-shadow:rgba(34,36,58,.16);
  --c-glass-glow:rgba(142,150,210,.14);
  --c-inset:#fff;
  --c-glass-shadow-full:0 0 0 1px rgba(83,93,157,.28),0 24px 70px rgba(34,36,58,.16),inset 0 1px 0 #fff;
  --c-glass-lit-shadow:0 0 0 1px rgba(83,93,157,.5),0 24px 70px rgba(34,36,58,.22),0 0 80px rgba(142,150,210,.14);
  --c-btn-halo:rgba(83,93,157,.14);
  --c-shade:rgba(233,231,226,.98);
  --c-shade-spread:rgba(233,231,226,.28);
  --c-mark:#414B8C;
  --c-scrim-bg:radial-gradient(ellipse at 30% 60%,rgba(233,231,226,.97),rgba(233,231,226,.87) 55%,rgba(233,231,226,0) 75%);
  --c-core-shade:radial-gradient(ellipse 620px 440px at var(--core-x,64%) var(--core-y,52%),rgba(233,231,226,.30) 0%,rgba(233,231,226,.30) 46%,rgba(233,231,226,0) 100%);
  --c-decision-line:rgba(242,241,236,.08);
  --c-error:#86281F;
}
:root{
  /* spacing */
  --s-4:4px; --s-8:8px; --s-12:12px; --s-16:16px; --s-24:24px; --s-32:32px;
  --s-48:48px; --s-64:64px; --s-96:96px; --s-128:128px; --s-160:160px;
  /* grid (desktop) */
  --content:1248px; --cols:12; --col:82px; --gutter:24px; --margin:96px;
  /* type: Geist (Light 300 for display, 400 for text) and Geist Mono. Picked by Liz 2026-10-27. */
  --f-sans:"Geist",system-ui,sans-serif;
  --fw-display:300; --fw-text:400; --fw-button:400;
  --f-mono:"Geist Mono",ui-monospace,monospace;
  --fs-h1:52px;  --lh-h1:1.08; --ls-h1:-0.025em;  /* 300; small hero headline, low-left (the big opening) */
  --fs-stmt:60px;--lh-stmt:1.12;--ls-stmt:-0.025em;
  --fs-h2:45px;  --lh-h2:1.12; --ls-h2:-0.025em;
  --fs-h2s:38px; --lh-h2s:1.15;--ls-h2s:-0.025em;
  --fs-h3:23px;  --lh-h3:1.33;                    /* 400 */
  --fs-card:19px;--lh-card:1.4;
  --fs-lead:16px;--lh-lead:1.5;                   /* hero body, width 420 */
  --fs-row:17px; --lh-row:1.25;
  --fs-body:16px;--lh-body:1.55;
  --fs-small:14px;--lh-small:1.45;
  --fs-nav:14px; --lh-nav:1.33;
  --fs-label:12px;--lh-label:1.4; --ls-label:.14em;
  --fs-chip:11px; --ls-chip:.08em;
  /* components */
  --nav-h:72px;
  --btn-h:48px; --btn-fs:16px; --btn-px:24px;
  --btn-s-h:40px; --btn-s-fs:14px; --btn-s-px:20px;
  --field-h:48px; --field-r:8px;
  --card-r:16px; --card-pad:32px; --plate-r:24px;
  --chip-h:24px; --chip-r:12px; --chip-px:10px;
  --focus-w:2px; --focus-offset:3px;
  --c-selection:#8E96D2; --c-selection-text:#0B0C0F;
  /* Soft extra bloom mixed from the accent. Applied in Night only. */
  --c-extra-glow:color-mix(in srgb, var(--c-accent) 20%, transparent);
  --c-approved-glow:rgba(142,150,210,.18);
  --c-decision-edge:rgba(142,150,210,.30);
  --c-decision-glow:rgba(142,150,210,.28);
  --c-hair:rgba(242,241,236,.35);
  --c-quiet:rgba(242,241,236,.6);
  --glass-blur:26px; --cluster-blur:16px;
  --cluster-h:44px; --cluster-w:177px; --cluster-w-reduced:90px; --cluster-inset-x:32px; --cluster-inset-y:32px;
  /* motion (UI) */
  --d-fast:150ms; --d-base:250ms; --d-atmosphere:400ms; --ease-out:cubic-bezier(.22,1,.36,1);
  /* layers */
  --z-scene:0; --z-scrim:1; --z-content:10; --z-nav:50; --z-cluster:60; --z-menu:80; --z-skip:100;
}
@media (max-width:1023px){
  :root{
    --margin:24px; --cols:4; --gutter:16px; --nav-h:64px;
    --fs-h1:38px; --lh-h1:1.12;
    --fs-stmt:34px; --lh-stmt:1.15; --ls-stmt:-0.01em;
    --fs-h2:28px; --lh-h2:1.15; --ls-h2:-0.01em;
    --fs-h2s:28px; --lh-h2s:1.15; --ls-h2s:-0.01em;
    --fs-h3:21px;
    --fs-lead:16px; --lh-lead:1.45; --fs-row:16px; --lh-row:1.5; --card-pad:24px; --plate-r:18px;
    --cluster-inset-x:16px; --cluster-inset-y:12px;
  }
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
