/*
  ChainGPT Labs-inspired art direction for Chandra Sharma & Co. and GrowthEdge.
  Original adaptation: laboratory-white surfaces, signal orange, experimental type,
  an editorial/brutalist grid, and scroll-linked accounting visuals. No copied art.
*/


:root {
  --lab-bg: #fcf7ed;
  --lab-bg-soft: #f0e7d8;
  --lab-surface: #fffdf8;
  --lab-surface-2: #e9ddcb;
  --lab-ink: #211a17;
  --lab-ink-2: #3c332e;
  --lab-muted: #6b5e55;
  --lab-line: #dccdbb;
  --lab-line-strong: #332923;
  --lab-accent: #c52f1b;
  --lab-accent-2: #ffba2f;
  --lab-accent-soft: #ffe0d0;
  --lab-shadow: 0 24px 60px rgba(29, 27, 22, .10);
  --lab-dark-bg: #211a17; --lab-dark-ink: #fff8ed; --lab-on-accent: #ffffff;
  --lab-grad: linear-gradient(135deg, #bd2b18, #c9351e);
  --bg: var(--lab-bg);
  --bg-soft: var(--lab-bg-soft);
  --bg-tint: #e9e4d9;
  --surface: var(--lab-surface);
  --surface-2: var(--lab-surface-2);
  --ink: var(--lab-ink);
  --ink-2: var(--lab-ink-2);
  --muted: var(--lab-muted);
  --line: var(--lab-line);
  --line-strong: var(--lab-line-strong);
  --brand: var(--lab-accent);
  --brand-soft: var(--lab-accent-soft);
  --accent: var(--lab-accent);
  --accent-soft: var(--lab-accent-soft);
  --gold: var(--lab-accent-2);
  --gold-soft: var(--lab-accent-soft);
  --on-brand: #ffffff;
  --grad: var(--lab-grad);
  --grad-text: var(--lab-grad);
  --glow: rgba(197, 47, 27, .25);
  --font-head: "Syne", "Arial Black", system-ui, sans-serif;
  --font-display: "Syne", "Arial Black", system-ui, sans-serif;
  --font-body: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
  --font-mono: "DM Mono", ui-monospace, monospace;
  --r-sm: 2px; --r: 3px; --r-lg: 5px; --r-xl: 7px;
  --shadow-sm: 0 2px 0 rgba(25, 25, 22, .05);
  --shadow: var(--lab-shadow);
  --shadow-lg: 0 30px 80px rgba(29, 27, 22, .18);
  --container: 1320px;
  --gutter: clamp(18px, 4.2vw, 58px);
  --header-h: 78px;
  color-scheme: light;
}

/* Theme tokens are declared once below; all palettes share the same semantic contract. */

/* Canonical palette registry: keep in sync with THEME_OPTIONS in tools/build.py. */
html[data-theme="light"] {
  --lab-bg:#fcf7ed; --lab-bg-soft:#f0e7d8; --lab-surface:#fffdf8; --lab-surface-2:#e9ddcb;
  --lab-ink:#211a17; --lab-ink-2:#3c332e; --lab-muted:#6b5e55; --lab-line:#dccdbb; --lab-line-strong:#332923;
  --lab-accent:#c52f1b; --lab-accent-2:#ffba2f; --lab-accent-soft:#ffe0d0; --lab-grad:linear-gradient(135deg,#bd2b18,#c9351e);
  --lab-on-accent:#fffaf2; --lab-on-accent-2:#211a17; --on-brand:#fffaf2; --lab-dark-bg:#211a17; --lab-dark-ink:#fff8ed;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(197,47,27,.25); --night:var(--lab-dark-bg); --night-2:#33231e; color-scheme:light;
}
html[data-theme="nord"] {
  --lab-bg:#edf2f3; --lab-bg-soft:#dfe8eb; --lab-surface:#fbfdfd; --lab-surface-2:#d3e1e5;
  --lab-ink:#24343b; --lab-ink-2:#354952; --lab-muted:#586f78; --lab-line:#c6d6dc; --lab-line-strong:#4b6671;
  --lab-accent:#2d6f84; --lab-accent-2:#a7c7cf; --lab-accent-soft:#d5eaf0; --lab-grad:linear-gradient(135deg,#24576b,#2d6f84);
  --lab-on-accent:#fff; --lab-on-accent-2:#24343b; --on-brand:#fff; --lab-dark-bg:#1d2c32; --lab-dark-ink:#f1f8fa;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(45,111,132,.24); --night:var(--lab-dark-bg); --night-2:#29414a; color-scheme:light;
}
html[data-theme="tokyo-night"] {
  --lab-bg:#171725; --lab-bg-soft:#202033; --lab-surface:#242439; --lab-surface-2:#30304b;
  --lab-ink:#f0edff; --lab-ink-2:#d8d5ef; --lab-muted:#aaa8c9; --lab-line:#3a3a57; --lab-line-strong:#77789e;
  --lab-accent:#c6a1ff; --lab-accent-2:#84a4ff; --lab-accent-soft:#383052; --lab-grad:linear-gradient(135deg,#b18aff,#84a4ff);
  --lab-on-accent:#171725; --lab-on-accent-2:#171725; --on-brand:#171725; --lab-dark-bg:#10101c; --lab-dark-ink:#f4f0ff;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(166,137,255,.25); --night:var(--lab-dark-bg); --night-2:#1c1c31; color-scheme:dark;
}
html[data-theme="frostbyte"] {
  --lab-bg:#edf8fc; --lab-bg-soft:#d9f0f8; --lab-surface:#fbfeff; --lab-surface-2:#cfe8f1;
  --lab-ink:#123344; --lab-ink-2:#244b5e; --lab-muted:#547588; --lab-line:#bfdde9; --lab-line-strong:#3b7189;
  --lab-accent:#006f98; --lab-accent-2:#55d4e8; --lab-accent-soft:#cceef7; --lab-grad:linear-gradient(135deg,#075f83,#087ba7);
  --lab-on-accent:#fff; --lab-on-accent-2:#123344; --on-brand:#fff; --lab-dark-bg:#102934; --lab-dark-ink:#f2fbff;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(0,111,152,.22); --night:var(--lab-dark-bg); --night-2:#1a3c4c; color-scheme:light;
}
html[data-theme="night"] {
  --lab-bg:#141618; --lab-bg-soft:#1b1e21; --lab-surface:#24272a; --lab-surface-2:#303438;
  --lab-ink:#f4f0e9; --lab-ink-2:#e0dbd3; --lab-muted:#b0a79b; --lab-line:#3b3b39; --lab-line-strong:#84796c;
  --lab-accent:#f0b36f; --lab-accent-2:#e17c37; --lab-accent-soft:#3b2a1c; --lab-grad:linear-gradient(135deg,#f0b36f,#f6c38e);
  --lab-on-accent:#17120b; --lab-on-accent-2:#17120b; --on-brand:#17120b; --lab-dark-bg:#101214; --lab-dark-ink:#fff3e2;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(240,179,111,.20); --night:var(--lab-dark-bg); --night-2:#211b15; color-scheme:dark;
}
html[data-theme="dark"] {
  --lab-bg:#111216; --lab-bg-soft:#1a1b22; --lab-surface:#22232b; --lab-surface-2:#2c2d37;
  --lab-ink:#f6f4f6; --lab-ink-2:#e2dfe5; --lab-muted:#aaa7b1; --lab-line:#393741; --lab-line-strong:#7a7481;
  --lab-accent:#ff795d; --lab-accent-2:#b58aff; --lab-accent-soft:#43251f; --lab-grad:linear-gradient(135deg,#ff795d,#ffab69);
  --lab-on-accent:#17110f; --lab-on-accent-2:#17110f; --on-brand:#17110f; --lab-dark-bg:#0b0c10; --lab-dark-ink:#f8f4f5;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(255,121,93,.20); --night:var(--lab-dark-bg); --night-2:#1b1720; color-scheme:dark;
}

html[data-theme="system"] {
  /* Follow Lab White unless the operating system requests dark mode. */
  --lab-on-accent:#fffaf2; --lab-on-accent-2:#211a17; --on-brand:#fffaf2;
  --lab-dark-bg:#211a17; --lab-dark-ink:#fff8ed; --bg-tint:var(--lab-bg-soft);
  --glow:rgba(197,47,27,.25); --night:var(--lab-dark-bg); --night-2:#33231e;
  --grad-text:var(--lab-grad); color-scheme:light;
}

@media (prefers-color-scheme:dark) {
  html[data-theme="system"] {
    --lab-bg:#151619; --lab-bg-soft:#202226; --lab-surface:#26282c; --lab-surface-2:#33363a;
    --lab-ink:#f5f4ef; --lab-ink-2:#dcdcd5; --lab-muted:#a5a7a4; --lab-line:#3a3c41; --lab-line-strong:#7a7d80;
    --lab-accent:#ff7955; --lab-accent-2:#ffac86; --lab-accent-soft:#422a23; --lab-grad:linear-gradient(135deg,#ff7955,#ffac86);
    --lab-on-accent:#171612; --lab-on-accent-2:#171612; --on-brand:#171612; --lab-dark-bg:#0c0d10; --lab-dark-ink:#f5f4ef;
    --bg-tint:var(--lab-bg-soft); --glow:rgba(255,121,85,.20); --night:var(--lab-dark-bg); --night-2:#1c1f24; color-scheme:dark;
  }
}
html[data-theme="retro-wp"] {
  --lab-bg:#fff1d5; --lab-bg-soft:#f2dfb8; --lab-surface:#fff9ed; --lab-surface-2:#ead4aa;
  --lab-ink:#302019; --lab-ink-2:#4a3429; --lab-muted:#705949; --lab-line:#d8c29d; --lab-line-strong:#70543b;
  --lab-accent:#b42f20; --lab-accent-2:#ffc13b; --lab-accent-soft:#f7dcb6; --lab-grad:linear-gradient(135deg,#962619,#b42f20);
  --lab-on-accent:#fff9ee; --lab-on-accent-2:#302019; --on-brand:#fff9ee; --lab-dark-bg:#302019; --lab-dark-ink:#fff3d7;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(180,47,32,.22); --night:var(--lab-dark-bg); --night-2:#462a20; color-scheme:light;
}
html[data-theme="hipster"] {
  --lab-bg:#f5f0e4; --lab-bg-soft:#e6decb; --lab-surface:#fffbf1; --lab-surface-2:#ded3bd;
  --lab-ink:#24392d; --lab-ink-2:#3e5145; --lab-muted:#637064; --lab-line:#cec4ae; --lab-line-strong:#526b57;
  --lab-accent:#315d43; --lab-accent-2:#d47a4b; --lab-accent-soft:#dfe8d7; --lab-grad:linear-gradient(135deg,#234530,#315d43);
  --lab-on-accent:#fffaf0; --lab-on-accent-2:#17251c; --on-brand:#fffaf0; --lab-dark-bg:#1f342a; --lab-dark-ink:#f8f1e3;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(49,93,67,.22); --night:var(--lab-dark-bg); --night-2:#2c4635; color-scheme:light;
}
html[data-theme="extinct"] {
  --lab-bg:#101d20; --lab-bg-soft:#172a2d; --lab-surface:#1b3034; --lab-surface-2:#243c40;
  --lab-ink:#edfaf1; --lab-ink-2:#d4e8dd; --lab-muted:#a6c1b6; --lab-line:#2e494c; --lab-line-strong:#71958a;
  --lab-accent:#ffc247; --lab-accent-2:#ff774b; --lab-accent-soft:#3c2e17; --lab-grad:linear-gradient(135deg,#ffc247,#ffe09a);
  --lab-on-accent:#101d20; --lab-on-accent-2:#101d20; --on-brand:#101d20; --lab-dark-bg:#091719; --lab-dark-ink:#effff5;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(255,194,71,.21); --night:var(--lab-dark-bg); --night-2:#112629; color-scheme:dark;
}
html[data-theme="vintwood"] {
  --lab-bg:#f8efdf; --lab-bg-soft:#ead8bd; --lab-surface:#fff9ed; --lab-surface-2:#dfc9a8;
  --lab-ink:#36241b; --lab-ink-2:#4c372b; --lab-muted:#735d4c; --lab-line:#d3bda0; --lab-line-strong:#7d5941;
  --lab-accent:#784022; --lab-accent-2:#d2a143; --lab-accent-soft:#efdec3; --lab-grad:linear-gradient(135deg,#5f2f19,#784022);
  --lab-on-accent:#fff8ed; --lab-on-accent-2:#2b1b15; --on-brand:#fff8ed; --lab-dark-bg:#2b1b15; --lab-dark-ink:#fff4e6;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(120,64,34,.22); --night:var(--lab-dark-bg); --night-2:#422b1d; color-scheme:light;
}
html[data-theme="ronneby"] {
  --lab-bg:#f3f4ff; --lab-bg-soft:#e3e7fa; --lab-surface:#fcfcff; --lab-surface-2:#d7def5;
  --lab-ink:#1b2449; --lab-ink-2:#333e65; --lab-muted:#5d688d; --lab-line:#c9d0ef; --lab-line-strong:#4a5894;
  --lab-accent:#3348a8; --lab-accent-2:#00a4c7; --lab-accent-soft:#dce2fa; --lab-grad:linear-gradient(135deg,#253681,#3348a8);
  --lab-on-accent:#fff; --lab-on-accent-2:#161c38; --on-brand:#fff; --lab-dark-bg:#161c38; --lab-dark-ink:#f8f9ff;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(51,72,168,.22); --night:var(--lab-dark-bg); --night-2:#242d55; color-scheme:light;
}
html[data-theme="wild-book"] {
  --lab-bg:#f6ecd8; --lab-bg-soft:#ebdbc0; --lab-surface:#fff8eb; --lab-surface-2:#e3cfad;
  --lab-ink:#302026; --lab-ink-2:#4c3940; --lab-muted:#75616a; --lab-line:#d8c1b0; --lab-line-strong:#80505a;
  --lab-accent:#762f42; --lab-accent-2:#486344; --lab-accent-soft:#f0d9d7; --lab-grad:linear-gradient(135deg,#5d2432,#762f42);
  --lab-on-accent:#fff9ef; --lab-on-accent-2:#fff9ef; --on-brand:#fff9ef; --lab-dark-bg:#201923; --lab-dark-ink:#fbf0df;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(118,47,66,.22); --night:var(--lab-dark-bg); --night-2:#32212d; color-scheme:light;
}
html[data-theme="retro-portfolio"] {
  --lab-bg:#fff4d4; --lab-bg-soft:#f4e2b5; --lab-surface:#fffaec; --lab-surface-2:#ead5a4;
  --lab-ink:#27232a; --lab-ink-2:#413c44; --lab-muted:#6b6370; --lab-line:#d9c69f; --lab-line-strong:#625060;
  --lab-accent:#b62925; --lab-accent-2:#2f58a4; --lab-accent-soft:#f6d6c7; --lab-grad:linear-gradient(135deg,#96201e,#b62925);
  --lab-on-accent:#fff9ed; --lab-on-accent-2:#fff9ed; --on-brand:#fff9ed; --lab-dark-bg:#191e39; --lab-dark-ink:#fff4d8;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(182,41,37,.22); --night:var(--lab-dark-bg); --night-2:#292d50; color-scheme:light;
}
html[data-theme="vintage-retrolie"] {
  --lab-bg:#f5f0dc; --lab-bg-soft:#e7dfc2; --lab-surface:#fffbec; --lab-surface-2:#dcd1ad;
  --lab-ink:#2e3020; --lab-ink-2:#464a32; --lab-muted:#66694f; --lab-line:#d2c8a7; --lab-line-strong:#646c42;
  --lab-accent:#59622a; --lab-accent-2:#c58a28; --lab-accent-soft:#e7e7c6; --lab-grad:linear-gradient(135deg,#3c4719,#59622a);
  --lab-on-accent:#fffcec; --lab-on-accent-2:#262615; --on-brand:#fffcec; --lab-dark-bg:#262615; --lab-dark-ink:#fff6d4;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(89,98,42,.22); --night:var(--lab-dark-bg); --night-2:#35361d; color-scheme:light;
}
html[data-theme="borderland"] {
  --lab-bg:#f7edf1; --lab-bg-soft:#eedee5; --lab-surface:#fff9fb; --lab-surface-2:#e5cfda;
  --lab-ink:#38212d; --lab-ink-2:#523544; --lab-muted:#765e6b; --lab-line:#dbc4cf; --lab-line-strong:#815269;
  --lab-accent:#752b4d; --lab-accent-2:#cd7084; --lab-accent-soft:#f2d8df; --lab-grad:linear-gradient(135deg,#5d203b,#752b4d);
  --lab-on-accent:#fff7fa; --lab-on-accent-2:#2b1520; --on-brand:#fff7fa; --lab-dark-bg:#21171f; --lab-dark-ink:#fff0f3;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(117,43,77,.22); --night:var(--lab-dark-bg); --night-2:#3a2133; color-scheme:light;
}
html[data-theme="mh-magazine"] {
  --lab-bg:#f4f7f7; --lab-bg-soft:#e2ebed; --lab-surface:#fcffff; --lab-surface-2:#d6e3e7;
  --lab-ink:#202c33; --lab-ink-2:#34444c; --lab-muted:#5c6d75; --lab-line:#c5d4d9; --lab-line-strong:#596c74;
  --lab-accent:#b62532; --lab-accent-2:#0b7f9b; --lab-accent-soft:#f5d9db; --lab-grad:linear-gradient(135deg,#8f1a24,#b62532);
  --lab-on-accent:#fff; --lab-on-accent-2:#ffffff; --on-brand:#fff; --lab-dark-bg:#1a2027; --lab-dark-ink:#f2f7fb;
  --bg-tint:var(--lab-bg-soft); --glow:rgba(182,37,50,.22); --night:var(--lab-dark-bg); --night-2:#293a43; color-scheme:light;
}


/* Theme contract: map legacy component aliases to the selected palette. */
body.cs, body.ge { --brand:var(--lab-accent); --brand-soft:var(--lab-accent-soft); --accent:var(--lab-accent); --accent-soft:var(--lab-accent-soft); --gold:var(--lab-accent-2); --gold-soft:var(--lab-accent-soft); --grad:var(--lab-grad); --grad-text:var(--lab-grad); }
/* Dark-band rules in site.css were authored with a fixed teal accent; keep their
   dark surface treatment but let every active palette own the accent colours. */
body.cs .hero, body.ge .hero,
body.cs .pagehead, body.ge .pagehead,
body.cs .section.dark, body.ge .section.dark,
body.cs .cta-band, body.ge .cta-band,
body.cs .topbar, body.ge .topbar {
  --brand:var(--lab-accent); --brand-soft:var(--lab-accent-soft);
  --accent:var(--lab-accent); --accent-soft:var(--lab-accent-soft);
  --gold:var(--lab-accent-2); --gold-soft:var(--lab-accent-soft);
  --grad:var(--lab-grad); --grad-text:var(--lab-grad);
}
body { background:var(--lab-bg); color:var(--lab-ink-2); font-family:var(--font-body); font-size:16px; line-height:1.58; }
html { scroll-padding-top:calc(var(--header-h) + 16px); }
::selection { background:var(--lab-accent); color:var(--on-brand); }
:focus-visible { outline:3px solid var(--lab-accent); outline-offset:4px; border-radius:2px; }
.container { max-width:calc(var(--container) + var(--gutter) * 2); }
p, .lead, .prose { color:var(--lab-muted); }
h1,h2,h3,h4 { color:var(--lab-ink); font-family:var(--font-head); letter-spacing:-.055em; }
h1 em,h2 em,h3 em,.accent-serif { color:var(--lab-accent); background:none; -webkit-text-fill-color:currentColor; font-family:var(--font-display); font-style:normal; font-weight:700; letter-spacing:-.065em; }
.kicker,.tag,.lab-overline,.lab-step-no,.lab-index-chip,.lab-scene-label,.lab-readout small,.theme-overline,.theme-panel-foot { font-family:var(--font-mono); letter-spacing:.04em; text-transform:uppercase; }
.kicker { color:var(--lab-accent); font-size:11px; font-weight:500; letter-spacing:.1em; }
.kicker::before { width:8px;height:8px;border-radius:0;background:var(--lab-accent);box-shadow:none; }
.kicker.plain::before { display:none; }
.display { font-family:var(--font-head); font-size:clamp(3.6rem,7.2vw,7.4rem); letter-spacing:-.085em; line-height:.89; font-weight:800; }
.h1 { font-size:clamp(3rem,6.2vw,6.3rem); font-weight:800; line-height:.92; letter-spacing:-.08em; }
.h2 { font-size:clamp(2.3rem,4.4vw,5.2rem); font-weight:750; line-height:.98; letter-spacing:-.075em; }
.h3 { font-size:clamp(1.25rem,2.1vw,1.8rem); font-weight:700; line-height:1.08; letter-spacing:-.055em; }
.lead { font-size:clamp(1rem,1.22vw,1.17rem); line-height:1.6; max-width:58ch; }
.note { color:var(--lab-muted); }

/* Header: simple lab rail, no pill-heavy startup nav. */
.topbar { position:relative; z-index:20; color:var(--lab-ink-2); background:var(--lab-bg); border-bottom:1px solid var(--lab-line); }
.topbar .tb-l { color:var(--lab-muted); }
.topbar .tb-l b { color:var(--lab-ink); }
.topbar .tb-r a { color:var(--lab-ink-2); }
.topbar .tb-r a:hover { color:var(--lab-accent); }
.topbar .pill { color:var(--lab-on-accent); background:var(--lab-accent); border-color:var(--lab-accent); }
.topbar .container { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:31px; font-family:var(--font-mono); font-size:10px; letter-spacing:.025em; }
.topbar .tb-l b { color:var(--lab-ink); }
.topbar .tb-r { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.topbar a { color:var(--lab-ink-2); text-decoration:none; }
.topbar a:hover { color:var(--lab-accent); }
.topbar svg { display:none; }
.topbar .pill { background:var(--lab-accent); color:var(--lab-on-accent); border-radius:0; padding:2px 7px; }
.site-header { position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--lab-bg) 94%,transparent); color:var(--lab-ink); border-bottom:1px solid var(--lab-line-strong); backdrop-filter:blur(14px); transition:background .2s,border-color .2s; }
.site-header.scrolled { box-shadow:0 8px 18px rgba(20,20,18,.06); }
.site-header .nav { min-height:72px; gap:clamp(12px,2vw,30px); }
.brand { color:var(--lab-ink); text-decoration:none; gap:10px; flex:none; }
.brand > svg { width:36px;height:36px; border-radius:2px; }
.brand span { color:var(--lab-ink); font-family:var(--font-head); font-size:15px; font-weight:750; letter-spacing:-.04em; line-height:1.1; }
.brand small { margin-top:4px; color:var(--lab-muted); font-family:var(--font-mono); font-size:9px; font-weight:400; text-transform:uppercase; letter-spacing:.06em; }
.nav-links { gap:clamp(12px,1.7vw,26px); }
.nav-link { color:var(--lab-ink-2); font-family:var(--font-mono); font-size:11px; font-weight:400; letter-spacing:.01em; padding:10px 0; border-radius:0; }
.nav-link:hover,.nav-link.is-current,.nav-link[aria-current="page"] { color:var(--lab-accent); }
.nav-link::after { height:2px; background:var(--lab-accent); bottom:4px; }
.nav-cta { gap:9px; }
.sister-pill { border:1px solid var(--lab-line-strong); background:transparent; color:var(--lab-ink); border-radius:2px; padding:7px 9px; font-family:var(--font-mono); font-size:10px; text-decoration:none; }
.sister-pill svg { width:22px;height:22px; }
.sister-pill:hover { background:var(--lab-surface-2); border-color:var(--lab-accent); }
.menu-btn { border:1px solid var(--lab-line-strong); border-radius:2px; background:transparent; width:42px;height:42px; }
.menu-btn span { background:var(--lab-ink); }
.mobile-menu { background:var(--lab-bg); border-bottom:1px solid var(--lab-line-strong); }
.mm-label { color:var(--lab-accent); font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.mm { border-radius:0; border-bottom:1px solid var(--lab-line); color:var(--lab-ink); }

/* Theme picker as a small design control panel. */
.theme-toggle { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:35px; padding:6px 10px; border:1px solid var(--lab-line-strong); border-radius:2px; background:transparent; color:var(--lab-ink); cursor:pointer; font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
.theme-toggle:hover,.theme-toggle[aria-expanded="true"] { background:var(--lab-ink); color:var(--lab-bg); }
.theme-toggle-glyph { font-size:17px; line-height:1; }
.theme-panel { position:fixed; top:calc(32px + 72px + 10px); right:clamp(12px,3vw,42px); z-index:100; width:min(390px,calc(100vw - 24px)); max-height:calc(100vh - 126px); max-height:calc(100dvh - 126px); overflow-y:auto; overscroll-behavior:contain; padding:20px; color:var(--lab-ink); background:var(--lab-surface); border:1.5px solid var(--lab-line-strong); box-shadow:12px 12px 0 color-mix(in srgb,var(--lab-accent) 20%,transparent); }
.theme-panel[hidden] { display:none!important; }
.theme-panel-top { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; border-bottom:1px solid var(--lab-line); padding-bottom:13px; }
.theme-overline { display:block; color:var(--lab-accent); font-size:9px; margin-bottom:6px; }
.theme-panel h2 { font-size:26px; letter-spacing:-.06em; line-height:1; }
.theme-close { border:1px solid var(--lab-line-strong); background:transparent; color:var(--lab-ink); width:30px;height:30px; font-size:22px; line-height:1; cursor:pointer; }
.theme-panel-note { font-size:12px; color:var(--lab-muted); margin:13px 0 12px; }
.theme-options { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.theme-option { display:grid; grid-template-columns:26px minmax(0,1fr) 14px; align-items:center; gap:9px; text-align:left; padding:10px 8px; min-width:0; color:var(--lab-ink); background:transparent; border:1px solid var(--lab-line); border-radius:1px; cursor:pointer; }
.theme-option:hover,.theme-option[aria-pressed="true"] { border-color:var(--lab-accent); background:var(--lab-bg-soft); }
.theme-swatch { width:20px;height:24px; border:1px solid var(--lab-line-strong); background:var(--swatch); display:block; }
.theme-option-copy { min-width:0; display:grid; gap:2px; }
.theme-option b { font-family:var(--font-head); font-size:12px; line-height:1.1; letter-spacing:-.02em; }
.theme-option small { font-size:9px; color:var(--lab-muted); line-height:1.2; }
.theme-check { color:var(--lab-accent); font-size:14px; opacity:0; }
.theme-option[aria-pressed="true"] .theme-check { opacity:1; }
.theme-panel-foot { border-top:1px solid var(--lab-line); padding-top:12px; margin-top:12px; color:var(--lab-muted); font-size:9px; line-height:1.5; }

/* Buttons become sharp-edged action labels. */
.btn { min-height:45px; padding:12px 17px; border-radius:2px; gap:12px; font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.015em; box-shadow:none; }
.btn .arr { transition:transform .2s; }
.btn:hover .arr { transform:translateX(4px); }
.btn.primary { color:var(--lab-on-accent); background:var(--lab-accent); border:1px solid var(--lab-accent); }
.btn.primary:hover { background:var(--lab-accent-2); border-color:var(--lab-accent-2); color:var(--lab-on-accent-2); box-shadow:4px 4px 0 var(--lab-ink); }
.btn.ghost { color:var(--lab-ink); background:transparent; border:1px solid var(--lab-line-strong); }
.hero.lab-hero .btn.ghost { color:var(--lab-ink); background:var(--lab-surface); border-color:var(--lab-line-strong); }
.hero.lab-hero .btn.ghost:hover { color:var(--lab-accent); background:var(--lab-surface); border-color:var(--lab-accent); }
.btn.ghost:hover { color:var(--lab-accent); border-color:var(--lab-accent); background:transparent; }
.btn.light { color:var(--lab-ink); background:var(--lab-bg); border:1px solid var(--lab-bg); }
.btn.sm { min-height:36px; padding:8px 11px; }
.link-arrow { color:var(--lab-ink); font-family:var(--font-mono); font-size:11px; font-weight:500; text-decoration:none; border-bottom:1px solid var(--lab-accent); padding-bottom:4px; width:max-content; max-width:100%; }
.link-arrow:hover { color:var(--lab-accent); }

/* Hero: reference-specific asymmetric lab composition, not a generic dark gradient. */
.hero.lab-hero { position:relative; z-index:1; overflow:hidden; padding:clamp(42px,5.2vw,74px) 0 clamp(46px,5vw,68px); min-height:610px; color:var(--lab-ink); background:var(--lab-bg); border-bottom:1px solid var(--lab-line-strong); }
.hero.lab-hero::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.62; background-image:linear-gradient(to right, color-mix(in srgb,var(--lab-line) 68%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--lab-line) 68%,transparent) 1px,transparent 1px); background-size:clamp(48px,7vw,96px) clamp(48px,7vw,96px); mask-image:linear-gradient(90deg,#000 0%,#000 50%,transparent 100%); }
.hero.lab-hero::after { content:""; position:absolute; left:52%; top:18%; width:clamp(100px,16vw,240px); aspect-ratio:1; border:1px solid var(--lab-accent); border-radius:50%; opacity:.22; pointer-events:none; }
.hero.lab-hero .ambient { display:none!important; }
.hero.lab-hero .hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr); align-items:center; gap:clamp(28px,4vw,64px); }
.hero.lab-hero .hero-grid > div:first-child { position:relative; z-index:4; padding-block:10px; }
.hero.lab-hero .kicker { color:var(--lab-accent); margin-bottom:22px; }
.hero.lab-hero .display,.hero.lab-hero .h1 { max-width:760px; font-family:var(--font-head); font-size:clamp(3.8rem,7vw,7.2rem); font-weight:800; line-height:.86; letter-spacing:-.09em; }
.hero.lab-hero h1 em { display:inline-block; color:var(--lab-accent); font-style:normal; font-weight:800; background:none; }
.hero.lab-hero .lead { margin-top:25px; max-width:52ch; font-size:clamp(1rem,1.35vw,1.16rem); color:var(--lab-ink-2); line-height:1.55; }
.hero.lab-hero .btn-row { margin-top:27px; gap:10px; }
.hero.lab-hero .trust { display:flex; flex-wrap:wrap; gap:8px 18px; padding-top:19px; margin-top:24px; border-top:1px solid var(--lab-line); }
.hero.lab-hero .trust span { display:inline-flex; align-items:center; gap:6px; color:var(--lab-muted); font-family:var(--font-mono); font-size:10px; line-height:1.4; }
.hero.lab-hero .trust svg { color:var(--lab-accent); width:15px;height:15px; }
.lab-hero-visual { position:relative; isolation:isolate; min-width:0; min-height:clamp(450px,49vw,640px); perspective:1000px; transform-style:preserve-3d; }
.lab-visual-backdrop { position:absolute; inset:0; display:grid; place-items:center; z-index:0; pointer-events:none; }
.lab-visual-backdrop img { width:136%; max-width:none; height:auto; object-fit:contain; filter:saturate(.94); animation:lab-float 8.5s ease-in-out infinite; transform:translate3d(var(--parallax-x,0),var(--parallax-y,0),0); }
.lab-hero-visual::before { content:""; position:absolute; z-index:1; top:12%;left:13%; width:76%;height:72%; border:1px solid var(--lab-line-strong); border-radius:50%; transform:rotate(-23deg); opacity:.22; pointer-events:none; }
.lab-hero-visual::after { content:""; position:absolute; z-index:1; top:7%;left:25%; width:52%;height:81%; border:1px dashed var(--lab-accent); border-radius:50%; transform:rotate(35deg); opacity:.42; pointer-events:none; }
.lab-index-chip { position:absolute; z-index:5; top:4%; right:2%; display:flex; align-items:center; gap:9px; padding:9px 10px; color:var(--lab-ink); background:var(--lab-surface); border:1px solid var(--lab-line-strong); box-shadow:4px 4px 0 var(--lab-accent); font-size:9px; }
.lab-index-chip b { color:var(--lab-accent); font-weight:500; padding-left:7px; border-left:1px solid var(--lab-line); }
.pulse-dot { display:inline-block; width:7px;height:7px; background:var(--lab-accent); box-shadow:0 0 0 3px var(--lab-accent-soft); border-radius:50%; flex:none; }
.lab-hero .sheet { position:absolute; z-index:4; right:0; bottom:1%; width:min(75%,430px); padding:0; overflow:hidden; background:var(--lab-surface); color:var(--lab-ink); border:1.5px solid var(--lab-line-strong); border-radius:2px; box-shadow:10px 10px 0 color-mix(in srgb,var(--lab-accent) 26%,transparent); transform:rotateY(-5deg) rotateZ(-1.1deg); }
.lab-hero .sheet-top { min-height:38px; padding:10px 13px; background:var(--lab-ink); color:var(--lab-bg); border-bottom:3px solid var(--lab-accent); }
.lab-hero .sheet-top .t { color:var(--lab-bg); font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; }
.lab-hero .sheet-top .t i { width:8px;height:8px; background:var(--lab-accent); border-radius:0; }
.lab-hero .sheet-top .u { color:color-mix(in srgb,var(--lab-bg) 70%,transparent); font-family:var(--font-mono); font-size:9px; }
.lab-hero .sheet table { border-spacing:0; font-size:11px; }
.lab-hero .sheet td { color:var(--lab-ink-2); padding:5px 12px; border-bottom:1px solid var(--lab-line); }
.lab-hero .sheet td:last-child { color:var(--lab-ink); font-family:var(--font-mono); font-size:10px; }
.lab-hero .sheet tr.sub td { color:var(--lab-ink); font-weight:700; background:var(--lab-bg-soft); }
.lab-hero .sheet tr.total td { background:var(--lab-accent); color:var(--lab-on-accent); font-weight:800; }
.lab-hero .sheet tr.pre td { color:var(--lab-accent); background:var(--lab-accent-soft); }
.lab-hero .sheet-foot { padding:9px 12px; font-size:9px; line-height:1.35; color:var(--lab-muted); }
.lab-hero .sheet-foot svg { color:var(--lab-accent); }
.lab-hero .sheet-bar { height:4px; background:var(--lab-accent); }
.lab-hero .quad { position:absolute; z-index:4; right:1%; bottom:5%; width:min(80%,490px); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.lab-hero .quad .q { min-height:126px; padding:15px; display:flex; flex-direction:column; justify-content:space-between; gap:12px; border:1px solid var(--lab-line-strong); border-radius:2px; background:var(--lab-surface); color:var(--lab-ink); box-shadow:4px 4px 0 rgba(25,25,22,.08); }
.lab-hero .quad .q b { color:var(--lab-ink); font-family:var(--font-head); font-size:clamp(1rem,1.4vw,1.3rem); }
.lab-hero .quad .q span { color:var(--lab-muted); font-size:12px; }
.lab-hero .quad .q .ic { width:31px;height:31px; color:var(--lab-accent); background:var(--lab-accent-soft); border-radius:0; }
.lab-hero .quad .q.feature { background:var(--lab-accent); border-color:var(--lab-ink); box-shadow:4px 4px 0 var(--lab-ink); }
.lab-hero .quad .q.feature b,.lab-hero .quad .q.feature span { color:var(--lab-on-accent); }
.lab-hero .quad .q.feature .ic { background:color-mix(in srgb,var(--lab-on-accent) 14%,transparent); color:var(--lab-on-accent); }
.lab-hero .quad .center-mark { display:none; }
.lab-hero-ge .lab-index-chip { box-shadow:4px 4px 0 var(--lab-accent); }
@keyframes lab-float { 0%,100%{ transform:translate3d(var(--parallax-x,0),calc(var(--parallax-y,0) - 5px),0) rotate(-.2deg);} 50%{transform:translate3d(var(--parallax-x,0),calc(var(--parallax-y,0) + 8px),0) rotate(.7deg);} }

/* Moving sector ticker: high-contrast and deliberately typographic. */
.marquee { position:relative; overflow:hidden; padding:17px 0; background:var(--lab-dark-bg); color:var(--lab-dark-ink); border-bottom:1px solid var(--lab-dark-bg); }
.marquee::before { content:"SECTORS /"; position:relative; z-index:2; display:inline-block; margin-left:var(--gutter); margin-right:18px; padding-right:16px; border-right:1px solid color-mix(in srgb,var(--lab-bg) 28%,transparent); color:var(--lab-accent); font-family:var(--font-mono); font-size:10px; white-space:nowrap; }
.marquee-track { display:inline-flex; width:max-content; vertical-align:middle; animation:lab-marquee 40s linear infinite; }
.marquee-track > div { display:flex; align-items:center; }
.marquee-track span { padding:0 22px; color:var(--lab-dark-ink); text-transform:uppercase; font-family:var(--font-head); font-weight:700; font-size:clamp(12px,1.3vw,16px); letter-spacing:-.03em; white-space:nowrap; }
.marquee-track span::after { content:"✳"; display:inline-block; margin-left:40px; color:var(--lab-accent); font-size:12px; }
@keyframes lab-marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.marquee:hover .marquee-track { animation-play-state:paused; }

/* Scroll-linked lab story: sticky object, active step rail, and controlled motion. */
.lab-story { position:relative; padding:clamp(62px,9vw,132px) 0 clamp(70px,9vw,130px); overflow:clip; color:var(--lab-ink); background:var(--lab-bg); border-bottom:1px solid var(--lab-line-strong); }
.lab-story::before { content:""; position:absolute; top:0;right:0; width:32%;height:100%; pointer-events:none; background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--lab-accent) 6%,transparent),transparent); }
.lab-story-head { position:relative; z-index:1; display:grid; grid-template-columns:1fr minmax(300px, .78fr); align-items:end; gap:22px 8%; margin-bottom:clamp(36px,6vw,78px); }
.lab-overline { grid-column:1 / -1; display:flex; justify-content:space-between; gap:20px; padding-bottom:12px; margin-bottom:4px; border-bottom:1px solid var(--lab-line-strong); font-size:10px; color:var(--lab-accent); }
.lab-story-head h2 { max-width:820px; font-size:clamp(3rem,6.7vw,7rem); font-weight:800; line-height:.88; letter-spacing:-.09em; }
.lab-story-head h2 em { color:var(--lab-accent); }
.lab-story-head p { max-width:42ch; color:var(--lab-muted); font-size:clamp(14px,1.2vw,17px); }
.lab-story-grid { position:relative; display:grid; grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr); gap:clamp(32px,7vw,112px); align-items:start; }
.lab-steps { display:grid; gap:0; }
.lab-step { position:relative; padding:25px 22px 30px 24px; border-top:1px solid var(--lab-line); transition:background .28s,border-color .28s,transform .28s; }
.lab-step:last-child { border-bottom:1px solid var(--lab-line); }
.lab-step::before { content:""; position:absolute; top:0;left:0;bottom:0; width:0; background:var(--lab-accent); transition:width .25s; }
.lab-step.is-active { background:var(--lab-surface); border-color:var(--lab-line-strong); box-shadow:5px 5px 0 color-mix(in srgb,var(--lab-accent) 22%,transparent); transform:translateX(5px); }
.lab-step.is-active::before { width:4px; }
.lab-step-no { display:block; margin-bottom:14px; font-size:10px; color:var(--lab-accent); }
.lab-step h3 { font-size:clamp(1.55rem,2.4vw,2.35rem); line-height:.98; letter-spacing:-.065em; max-width:16ch; }
.lab-step p { margin-top:12px; max-width:48ch; color:var(--lab-muted); font-size:14px; }
.lab-step-line { position:absolute; right:17px; top:25px; width:21px;height:21px; border:1px solid var(--lab-line-strong); border-radius:50%; }
.lab-step-line::after { content:""; position:absolute; left:5px;top:5px;width:9px;height:9px; background:var(--lab-accent); transform:scale(0); transition:transform .25s; }
.lab-step.is-active .lab-step-line { border-color:var(--lab-accent); }
.lab-step.is-active .lab-step-line::after { transform:scale(1); }
.lab-story-sticky { position:sticky; top:calc(var(--header-h) + 26px); padding-top:7px; }
.lab-story-art { position:relative; min-height:clamp(400px,47vw,620px); display:grid; place-items:center; overflow:hidden; isolation:isolate; background:var(--lab-bg-soft); border:1.5px solid var(--lab-line-strong); box-shadow:9px 9px 0 var(--lab-accent); transition:background .3s; }
.lab-story-art::before { content:""; position:absolute; inset:8%; border:1px solid var(--lab-line); border-radius:50%; transform:rotate(-20deg) scaleX(1.12); }
.lab-story-art::after { content:""; position:absolute; top:8%;left:11%;width:78%;height:78%;border:1px dashed var(--lab-accent);border-radius:50%; transform:rotate(29deg); opacity:.48; transition:transform .5s,opacity .5s; }
.lab-story-art img { position:relative; z-index:1; width:126%; max-width:none; height:auto; object-fit:contain; transform:scale(1.02); transition:transform .65s cubic-bezier(.2,.7,.1,1),filter .5s; }
.lab-story-art[data-state="1"] img { transform:translateY(-5px) scale(1.16) rotate(1.2deg); }
.lab-story-art[data-state="2"] img { transform:translateY(4px) scale(1.08) rotate(-1.2deg); }
.lab-story-art[data-state="3"] img { transform:translateY(-9px) scale(1.17) rotate(1.8deg); }
.lab-story-art[data-state="1"]::after { transform:rotate(68deg); }
.lab-story-art[data-state="2"]::after { transform:rotate(-35deg) scaleX(.88); }
.lab-story-art[data-state="3"]::after { transform:rotate(90deg) scaleX(1.15); }
.lab-scene-label { position:absolute; left:14px;top:14px;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 11px;background:var(--lab-surface);border:1px solid var(--lab-line-strong);font-size:9px; }
.lab-scene-label b { color:var(--lab-accent);font-weight:500;padding-left:9px;border-left:1px solid var(--lab-line); }
.lab-readout { position:absolute; z-index:3; right:14px;bottom:14px; display:grid; gap:5px; width:min(230px,54%); padding:14px 15px; border:1px solid var(--lab-line-strong); background:var(--lab-surface); box-shadow:4px 4px 0 var(--lab-accent); }
.lab-readout small { font-size:9px; color:var(--lab-muted); }
.lab-readout strong { font-family:var(--font-head); color:var(--lab-ink); font-size:clamp(17px,2vw,25px); line-height:1; letter-spacing:-.06em; }
.readout-track { height:4px;background:var(--lab-line); margin-top:5px;overflow:hidden; }
.readout-track i { display:block; width:25%;height:100%;background:var(--lab-accent);transition:width .45s; }
.lab-story-art[data-state="1"] .readout-track i { width:50%; }
.lab-story-art[data-state="2"] .readout-track i { width:75%; }
.lab-story-art[data-state="3"] .readout-track i { width:100%; }
.lab-sticky-note { margin-top:20px; color:var(--lab-muted); font-size:11px; font-family:var(--font-mono); }

/* Inner page hero: typography and structural grid are the focal point. */
.pagehead { position:relative; isolation:isolate; overflow:hidden; padding:clamp(38px,5vw,70px) 0 clamp(54px,7vw,96px); background:var(--lab-bg); color:var(--lab-ink); border-bottom:1px solid var(--lab-line-strong); }
.pagehead .ambient { display:none!important; }
.pagehead::after { content:""; position:absolute; z-index:-1; top:10%;right:-1%; width:clamp(260px,36vw,520px); aspect-ratio:1; opacity:.2; background:url('../img/audit-lab-3d.webp') center/contain no-repeat; pointer-events:none; transform:rotate(-5deg); }
body.ge .pagehead::after { background-image:url('../img/audit-lab-3d.webp'); }
.pagehead .container { position:relative; z-index:1; }
.crumbs { margin-bottom:clamp(30px,4.8vw,66px); color:var(--lab-muted); font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.03em; }
.crumbs a { color:var(--lab-ink-2); text-decoration:none; }
.crumbs a:hover { color:var(--lab-accent); }
.crumbs svg { width:12px;height:12px;color:var(--lab-accent); }
.pagehead-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.57fr); align-items:end; gap:clamp(24px,5vw,72px); }
.pagehead .kicker { margin-bottom:19px; }
.pagehead .h1 { font-size:clamp(3.2rem,6.8vw,7.1rem); max-width:900px; }
.pagehead .h1 em { color:var(--lab-accent); }
.pagehead .lead { margin-top:22px; max-width:58ch; color:var(--lab-muted); }
.pagehead .aside { display:grid; gap:0; align-self:end; padding:17px 20px; background:color-mix(in srgb,var(--lab-surface) 84%,transparent); border:1px solid var(--lab-line-strong); box-shadow:6px 6px 0 color-mix(in srgb,var(--lab-accent) 24%,transparent); }
.pagehead .aside .stat-mini { display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding:11px 0; border-bottom:1px solid var(--lab-line); }
.pagehead .aside .stat-mini:last-child { border-bottom:0; }
.pagehead .aside .stat-mini span { color:var(--lab-muted); font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.03em; }
.pagehead .aside .stat-mini b { color:var(--lab-ink); font-family:var(--font-head); font-size:clamp(14px,1.6vw,19px); letter-spacing:-.04em; text-align:right; }
.pagehead .aside .big { color:var(--lab-accent); font-family:var(--font-head); font-size:clamp(2rem,4.3vw,4.5rem); line-height:.95; letter-spacing:-.08em; }
.pagehead .aside .big small { color:var(--lab-ink); font-family:var(--font-mono); font-size:10px; letter-spacing:0; }
.pagehead > .container > .h1 { max-width:900px; }
.pagehead > .container > .lead { margin-top:24px; max-width:58ch; }

/* Sections: fewer rounded cards, stronger grids, visible boundaries. */
.section { position:relative; padding:clamp(58px,8vw,112px) 0; background:var(--lab-bg); color:var(--lab-ink-2); }
.section.alt { background:var(--lab-bg-soft); }
.section.tint { background:color-mix(in srgb,var(--lab-accent) 7%,var(--lab-bg)); }
.section.tight { padding-block:clamp(38px,5vw,68px); }
.section.dark { background:var(--lab-dark-bg); color:var(--lab-dark-ink); --ink:var(--lab-dark-ink); --ink-2:color-mix(in srgb,var(--lab-dark-ink) 86%,transparent); --muted:color-mix(in srgb,var(--lab-dark-ink) 68%,transparent); --line:color-mix(in srgb,var(--lab-dark-ink) 22%,transparent); --line-strong:color-mix(in srgb,var(--lab-dark-ink) 58%,transparent); --surface:color-mix(in srgb,var(--lab-dark-bg) 84%,var(--lab-accent)); --surface-2:color-mix(in srgb,var(--lab-dark-bg) 75%,var(--lab-accent)); --brand:var(--lab-accent); --accent:var(--lab-accent); --accent-soft:var(--lab-accent-soft); --grad:var(--lab-grad); color-scheme:dark; }
.section.dark .kicker { color:var(--lab-accent); }
.section.dark .card,.section.dark .numgrid>div { color:var(--lab-dark-ink); background:color-mix(in srgb,var(--lab-dark-bg) 86%,var(--lab-accent)); border-color:color-mix(in srgb,var(--lab-dark-ink) 28%,transparent); }
.section.dark .card p,.section.dark .numgrid>div { color:color-mix(in srgb,var(--lab-dark-ink) 78%,transparent); }
.section.dark .card h3,.section.dark .card .h3 { color:var(--lab-dark-ink); }
.sec-head { max-width:900px; gap:13px; margin-bottom:clamp(27px,4vw,52px); }
.sec-head .h2 { max-width:17ch; }
.sec-head.row { grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:22px 48px; }
.split { gap:clamp(28px,6vw,88px); }
.stats { gap:0; border-top:1px solid var(--lab-line-strong); border-bottom:1px solid var(--lab-line-strong); }
.stat { padding:18px 16px; border-right:1px solid var(--lab-line); }
.stat:last-child { border-right:0; }
.stat .big { color:var(--lab-ink); font-family:var(--font-head); font-size:clamp(2rem,3vw,3.5rem); letter-spacing:-.09em; }
.stat .lbl { color:var(--lab-muted); font-family:var(--font-mono); font-size:10px; line-height:1.4; }

.bento { gap:0; border-top:1px solid var(--lab-line-strong); border-left:1px solid var(--lab-line-strong); }
.card,.checklist-card,.fee,.numgrid>div,.cl-list li label,.tabs .tabpanel,.sister-card { border-radius:2px!important; box-shadow:none; }
.bento > .card { min-width:0; padding:clamp(20px,2.7vw,35px); border:0; border-right:1px solid var(--lab-line-strong); border-bottom:1px solid var(--lab-line-strong); background:var(--lab-surface); color:var(--lab-ink); position:relative; overflow:hidden; transition:background .24s,transform .24s; }
.bento > .card::after { content:"↗"; position:absolute; right:16px;top:13px;color:var(--lab-accent);font-family:var(--font-mono);font-size:17px;opacity:.8; }
.bento > .card:hover { background:color-mix(in srgb,var(--lab-accent) 5%,var(--lab-surface)); transform:translateY(-3px); }
.card h3 { color:var(--lab-ink); font-size:clamp(1.25rem,2vw,1.85rem); letter-spacing:-.06em; }
.card p { color:var(--lab-muted); font-size:14px; }
.card .tag { display:block; margin-bottom:16px; color:var(--lab-accent); font-size:10px; }
.card.feature { background:var(--lab-accent); color:var(--lab-on-accent); border-color:var(--lab-ink); }
.card.feature h3,.card.feature p,.card.feature .link-arrow,.card.feature .tag { color:var(--lab-on-accent); }
.card.feature .deco { opacity:.17; }
.card.feature .ticks li::before { color:var(--lab-on-accent); }
.card.feature .link-arrow { border-color:var(--lab-on-accent); }
.card:not(.feature) .ic-badge { width:38px;height:38px; border-radius:0; color:var(--lab-accent); background:var(--lab-accent-soft); border:1px solid color-mix(in srgb,var(--lab-accent) 35%,transparent); }
.card:not(.feature) .ic-badge svg { width:18px;height:18px; }
.grid-3 { gap:0; border-top:1px solid var(--lab-line-strong); border-left:1px solid var(--lab-line-strong); }
.grid-3 > * { padding:clamp(19px,2.5vw,32px); border-right:1px solid var(--lab-line-strong); border-bottom:1px solid var(--lab-line-strong); background:var(--lab-surface); }
.grid-3 .card { border-radius:0; box-shadow:none; }
.ledger { border-top:1.5px solid var(--lab-line-strong); }
.ledger-row { padding:clamp(20px,3.2vw,38px) 0; border-bottom:1px solid var(--lab-line-strong); gap:clamp(22px,4vw,56px); }
.ledger-row h3 { font-family:var(--font-head); font-size:clamp(1.5rem,2.9vw,2.7rem); letter-spacing:-.07em; }
.ledger-row .ic { width:36px;height:36px;border-radius:0;background:var(--lab-accent-soft);color:var(--lab-accent); }
.ledger-row .body { color:var(--lab-muted); }
.ledger-row .body p { max-width:62ch; }
.ledger-row .body .link-arrow { margin-top:16px; }
.chips { gap:8px; }
.chip { padding:6px 9px; border-radius:0; border:1px solid var(--lab-line-strong); background:transparent; font-family:var(--font-mono); font-size:10px; }
.chip .dot { width:6px;height:6px;border-radius:0;background:var(--lab-accent); }
.quote { font-family:var(--font-head); font-size:clamp(1.7rem,3.5vw,3.5rem); font-style:normal; font-weight:700; line-height:.98; letter-spacing:-.07em; }
.quote::before { color:var(--lab-accent); font-family:var(--font-head); }

/* Interactive detail pages. */
.checker,.callout,.sheet,.diagram-card,.toc,.faq-item,.faq-list details,.tabs .tablist,.cta-band { border-radius:2px!important; }
.checker,.callout,.diagram-card,.checklist-card,.fee { border:1px solid var(--lab-line-strong); background:var(--lab-surface); box-shadow:5px 5px 0 color-mix(in srgb,var(--lab-accent) 18%,transparent); }
.checker h2,.checker h3,.callout h2,.callout h3 { font-family:var(--font-head); letter-spacing:-.06em; }
input,select,textarea { border-radius:1px!important; border-color:var(--lab-line-strong)!important; background:var(--lab-surface)!important; color:var(--lab-ink)!important; }
input:focus,select:focus,textarea:focus { border-color:var(--lab-accent)!important; box-shadow:0 0 0 3px var(--lab-accent-soft)!important; }
.tabs .tablist { border-radius:0; padding:4px; border:1px solid var(--lab-line-strong); background:var(--lab-bg-soft); }
.tabs [role="tab"] { border-radius:0; font-family:var(--font-mono); font-size:11px; }
.tabs [role="tab"][aria-selected="true"] { background:var(--lab-accent); color:var(--lab-on-accent); box-shadow:none; }
.tabs .tabpanel { background:var(--lab-surface); border:1px solid var(--lab-line-strong); }
.faq-search,.search-wrap { border-radius:0; border-color:var(--lab-line-strong); }
.faq-item,.faq-list details { border-top:1px solid var(--lab-line-strong); border-bottom:0; }
.faq-item:last-child,.faq-list details:last-child { border-bottom:1px solid var(--lab-line-strong); }
.faq-item summary,.faq-list summary { padding:20px 0; font-family:var(--font-head); font-size:clamp(1.1rem,1.8vw,1.5rem); letter-spacing:-.04em; }
.faq-item summary::marker,.faq-list summary::marker { color:var(--lab-accent); }
.cl-list li label { background:var(--lab-surface); border:1px solid var(--lab-line); }
.cl-list li label:hover { border-color:var(--lab-accent); }
.cl-list li label:has(input:checked) { background:var(--lab-accent-soft); border-color:var(--lab-accent); }
.cl-progress .bar { background:var(--lab-line); border-radius:0; }
.cl-progress .bar i { background:var(--lab-accent); border-radius:0; }
.fee { box-shadow:none; }
.fee .amt { font-family:var(--font-head); letter-spacing:-.08em; }
.range { border-radius:0;background:var(--lab-line); }
.range i { background:var(--lab-accent);border-radius:0; }
.numgrid { gap:0; border-top:1px solid var(--lab-line-strong);border-left:1px solid var(--lab-line-strong); }
.numgrid>div { border-radius:0; border:0; border-right:1px solid var(--lab-line-strong);border-bottom:1px solid var(--lab-line-strong); background:var(--lab-surface); font-family:var(--font-head); font-size:18px; letter-spacing:-.03em; }
.numgrid>div::before { color:var(--lab-accent); }

/* Closing call to action and footer become one confident dark block. */
.cta-band { position:relative; overflow:hidden; padding:clamp(30px,5vw,60px); background:var(--lab-accent); border:1px solid var(--lab-ink); color:var(--lab-on-accent); box-shadow:8px 8px 0 var(--lab-ink); }
.cta-band h2,.cta-band p { color:var(--lab-on-accent); }
.cta-band h2 { font-family:var(--font-head); font-size:clamp(2rem,4vw,4rem); line-height:.95; letter-spacing:-.08em; }
.cta-band em { color:var(--lab-on-accent); }
.cta-band .glow,.cta-band .lines { display:none; }
.cta-band .btn.primary { background:var(--lab-ink);color:var(--lab-bg);border-color:var(--lab-ink); }
.site-footer { position:relative; overflow:hidden; background:var(--lab-dark-bg); color:var(--lab-dark-ink); padding:clamp(48px,7vw,90px) 0 20px; border-top:6px solid var(--lab-accent); }
.site-footer .brand span,.site-footer .brand { color:var(--lab-dark-ink); }
.site-footer .brand small,.site-footer p,.site-footer .addr,.site-footer .foot-base { color:color-mix(in srgb,var(--lab-dark-ink) 68%,transparent); }
.site-footer .foot-grid { gap:clamp(24px,4vw,64px); }
.site-footer h4 { color:var(--lab-accent); font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.site-footer a { color:var(--lab-dark-ink); text-decoration:none; }
.site-footer a:hover { color:var(--lab-accent); }
.site-footer .foot-word { margin-top:clamp(50px,8vw,100px); color:transparent; -webkit-text-stroke:1px color-mix(in srgb,var(--lab-dark-ink) 46%,transparent); font-family:var(--font-head); font-size:clamp(3rem,10vw,10rem); line-height:.8; letter-spacing:-.095em; white-space:normal; }
.site-footer .foot-base { border-top:1px solid color-mix(in srgb,var(--lab-dark-ink) 20%,transparent); margin-top:27px; padding-top:15px; font-family:var(--font-mono); font-size:9px; }
.toast { border-radius:2px; border-left:4px solid var(--lab-accent); font-family:var(--font-mono); }
.progress { height:3px; background:var(--lab-accent); }

/* Typography transitions: small flicker into focus, not perpetual animation. */
.js .split-words .w > span { will-change:transform,opacity,filter; }
.js .split-words.in .w > span { animation:lab-type-in .58s both; animation-delay:calc(var(--wi,0) * 24ms); }
@keyframes lab-type-in { 0% { opacity:0; filter:blur(5px); transform:translateY(.22em) skewY(2deg); } 55% { opacity:.65; filter:blur(1px); } 72% { opacity:.92; } 100% { opacity:1; filter:none; transform:translateY(0) skewY(0); } }
.js [data-reveal] { transition:opacity .7s cubic-bezier(.2,.7,.1,1),transform .7s cubic-bezier(.2,.7,.1,1),filter .7s; }
.js [data-reveal]:not(.in) { filter:blur(3px); }
.js [data-reveal="scale"]:not(.in) { transform:translateY(20px) scale(.985); }
.js [data-reveal="fade"]:not(.in) { transform:translateX(-14px); }

/* Responsive composition. */
@media (max-width:1080px) {
  .site-header .nav { gap:14px; }
  .brand span { font-size:14px; }
  .nav-links { gap:12px; }
  .nav-link { font-size:10px; }
  .sister-pill { display:none; }
  .hero.lab-hero .hero-grid { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:22px; }
  .hero.lab-hero .display,.hero.lab-hero .h1 { font-size:clamp(3.5rem,6.5vw,5.9rem); }
  .lab-hero-visual { min-height:500px; }
  .lab-hero .sheet { width:min(81%,410px); }
}
@media (max-width:900px) {
  .topbar .tb-r a:nth-child(n+2) { display:none; }
  .hero.lab-hero .hero-grid { grid-template-columns:minmax(0,1fr); }
  .hero.lab-hero .hero-grid > div:first-child { max-width:840px; }
  .hero.lab-hero { padding-top:clamp(45px,7vw,80px); }
  .hero.lab-hero .display,.hero.lab-hero .h1 { font-size:clamp(3.8rem,9.8vw,7rem); }
  .lab-hero-visual { width:min(100%,760px); margin-inline:auto; min-height:clamp(450px,78vw,650px); }
  .lab-hero .sheet { width:min(70%,430px); }
  .lab-story-head { grid-template-columns:minmax(0,1fr); gap:18px; }
  .lab-story-head p { max-width:60ch; }
  .lab-story-grid { grid-template-columns:minmax(0,1fr); }
  .lab-story-sticky { position:relative; top:auto; order:-1; }
  .lab-story-art { min-height:clamp(360px,70vw,560px); }
  .pagehead-grid { grid-template-columns:minmax(0,1fr); }
  .pagehead .aside { max-width:570px; }
  .pagehead::after { top:15%;right:-12%;width:50vw;opacity:.12; }
}
@media (max-width:760px) {
  .topbar .container { min-height:27px; font-size:9px; }
  .topbar .tb-l { max-width:100%; }
  .site-header .nav { min-height:62px; }
  .site-header .nav > nav { display:none; }
  .brand > svg { width:32px;height:32px; }
  .brand small { font-size:8px; }
  .nav-cta .btn { display:none; }
  .theme-toggle { width:38px;min-height:38px;padding:4px; }
  .theme-toggle-label { display:none; }
  .theme-panel { top:calc(27px + 62px + 7px);right:12px;max-height:calc(100vh - 108px);max-height:calc(100dvh - 108px);padding:15px; }
  .hero.lab-hero .trust { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .marquee { padding:13px 0; }
  .marquee::before { display:block;width:max-content;margin-bottom:8px; }
  .marquee-track { display:flex; }
  .sec-head.row { grid-template-columns:minmax(0,1fr); }
  .stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat { border-bottom:1px solid var(--lab-line); }
  .stat:nth-child(2n) { border-right:0; }
  .lab-overline { font-size:9px; }
  .lab-step { padding:23px 18px 27px 20px; }
  .pagehead .h1 { font-size:clamp(3rem,11vw,5rem); }
  .section { padding-block:clamp(48px,9vw,74px); }
  .site-footer .foot-word { letter-spacing:-.08em; }
}
@media (max-width:480px) {
  :root { --gutter:18px; }
  .brand span { font-size:12px; }
  .brand small { max-width:190px; white-space:normal; }
  .topbar .tb-l { font-size:8px; }
  .hero.lab-hero .display,.hero.lab-hero .h1 { font-size:clamp(3.3rem,14vw,5.1rem); }
  .hero.lab-hero .lead { font-size:15px; }
  .hero.lab-hero .btn-row { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .hero.lab-hero .btn-row .btn { justify-content:center; padding-inline:10px; font-size:10px; }
  .lab-hero-visual { min-height:405px; margin-top:4px; }
  .lab-visual-backdrop img { width:155%; }
  .lab-hero .sheet { width:84%; right:0; bottom:0; transform:rotateZ(-.5deg); }
  .lab-hero .sheet td { padding:4px 8px; font-size:10px; }
  .lab-hero .sheet-foot { font-size:8px; }
  .lab-index-chip { top:0;right:0;max-width:90%;font-size:8px; }
  .lab-hero .quad { width:94%;right:0;bottom:1%;gap:5px; }
  .lab-hero .quad .q { min-height:115px;padding:11px; }
  .lab-hero .quad .q span { font-size:10px; }
  .lab-story-head h2 { font-size:clamp(2.9rem,13vw,4.1rem); }
  .lab-story-art { min-height:340px; }
  .lab-scene-label { left:8px;top:8px;padding:8px;font-size:8px;gap:6px; }
  .lab-readout { right:8px;bottom:8px;width:58%;padding:10px; }
  .lab-sticky-note { font-size:9px; }
  .theme-options { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .theme-option { grid-template-columns:20px minmax(0,1fr) 10px; gap:6px; padding:8px 6px; }
  .pagehead .aside { padding:12px 14px; }
  .pagehead .aside .stat-mini { gap:12px; }
  .pagehead .aside .stat-mini span { font-size:9px; }
  .grid-3 { grid-template-columns:minmax(0,1fr); }
  .site-footer .foot-base { gap:9px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important; }
  .lab-visual-backdrop img { animation:none!important; }
  .js .split-words .w > span { animation:none!important; opacity:1!important;filter:none!important;transform:none!important; }
}
@media print {
  .theme-toggle,.theme-panel,.lab-visual-backdrop,.lab-hero-visual::before,.lab-hero-visual::after,.lab-story-sticky,.marquee { display:none!important; }
  .hero.lab-hero,.pagehead,.section.dark,.site-footer { background:#fff!important;color:#000!important; }
  .hero.lab-hero .display,.hero.lab-hero .h1,.pagehead .h1,.site-footer h4,.site-footer a { color:#000!important; }
  .lab-story-grid { grid-template-columns:1fr; }
}

/* Final composition refinements: keep long emphasis phrases readable and maintain contrast. */
.pagehead .crumbs [aria-current="page"] { color:var(--lab-muted); }
.split-words .w:has(> span > em) { display:inline; overflow:visible; }
.split-words .w:has(> span > em) > span { display:inline; }
.split-words .w:has(> span > em) em { display:inline; white-space:normal; }
body.ge .hero.lab-hero .h1 { font-size:clamp(3.2rem,5.2vw,5.8rem); }
.hero.lab-hero .btn.ghost { color:var(--lab-ink); border-color:var(--lab-line-strong); }
.page-wipe { position:fixed; inset:0; z-index:150; background:var(--lab-accent); transform:scaleY(0); transform-origin:bottom; pointer-events:none; }
html.is-leaving .page-wipe { animation:lab-page-out .32s cubic-bezier(.7,0,.2,1) forwards; }
@keyframes lab-page-out { from{transform:scaleY(0);transform-origin:bottom} to{transform:scaleY(1);transform-origin:bottom} }
@media (prefers-reduced-motion:reduce) { .page-wipe { display:none!important; } }

/* ==========================================================================
   Fix pass: theme, contrast and alignment corrections.
   Only repairs legacy colours that were never mapped to the theme tokens.
   Layout, copy, data and the overall design are unchanged.
   ========================================================================== */

/* 1. Components that still had hard-coded white surfaces (unreadable in the dark themes). */
.tablist .pill,
.search input,
.acc details,
.seg .opt,
.check input,
.checker,
.verdict .badge,
.meter .bar,
.flow-node .dot,
.flow-detail,
.filter-bar button,
.ind,
.person,
.htl-item .tx,
.sister-card { background:var(--lab-surface); }
.acc details[open] summary .pm::before,
.acc details[open] summary .pm::after { background:var(--on-brand); }
.filter-bar button { color:var(--lab-ink-2); border-color:var(--lab-line-strong); }
.filter-bar button[aria-pressed="true"] { background:var(--lab-ink); color:var(--lab-bg); border-color:var(--lab-ink); }
.filter-bar button .n { color:inherit; opacity:.7; }
.seg .opt, .person, .ind, .htl-item .tx, .sister-card, .flow-detail, .acc details { border-color:var(--lab-line-strong); }
.seg input:checked + .opt, .seg .opt:has(input:checked) { background:var(--lab-accent-soft); border-color:var(--lab-accent); }

/* 2. Accent surfaces: dark text on the signal colour, as the primary buttons already do. */
.btn.light,
.cta-band .btn.light { background:var(--lab-ink); color:var(--lab-bg); border-color:var(--lab-ink); box-shadow:none; }
.btn.primary, .btn.sm.primary { color:var(--on-brand); }
.step.on::before,
.flow-node[aria-selected="true"] .dot,
.verdict[data-state="yes"] .badge,
.acc details[open] summary .pm { color:var(--on-brand); }
.verdict[data-state="yes"] .badge, .flow-node[aria-selected="true"] .dot, .acc details[open] summary .pm, .step.on::before { background:var(--lab-accent); }
.person .media.portrait { border-radius:2px; background:var(--lab-accent)!important; }
.mono-portrait span { color:var(--on-brand); }

/* 3. Page-head ghost buttons were white on the light page head. */
.pagehead .btn.ghost,
.section .btn.ghost,
.hero .btn.ghost { background:transparent; border-color:var(--lab-line-strong); color:var(--lab-ink); }
.pagehead .btn.ghost:hover,
.section .btn.ghost:hover,
.hero .btn.ghost:hover { background:var(--lab-ink); color:var(--lab-bg); }
.section.dark .btn.ghost { background:color-mix(in srgb,var(--lab-dark-ink) 4%,transparent); border-color:color-mix(in srgb,var(--lab-dark-ink) 40%,transparent); color:var(--lab-dark-ink); }
.cta-band .btn.ghost { background:transparent; border-color:var(--lab-on-accent); color:var(--lab-on-accent); }
.cta-band .btn.ghost { border-color:var(--lab-on-accent); color:var(--lab-on-accent); background:transparent; }
.cta-band .btn.ghost:hover { background:var(--lab-dark-bg); color:var(--lab-dark-ink); }

/* 4. Feature cards use the selected palette’s contrast foreground. */
body.ge .card.feature,
.card.feature { background:var(--lab-accent); color:var(--lab-on-accent); border-color:var(--lab-ink); }
.card.feature::after { display:none; }
.card.feature h3,
.card.feature .big { color:var(--lab-on-accent); font-weight:700; }
.card.feature p,
.card.feature li { color:var(--lab-on-accent)!important; }
.card.feature .tag,
body.ge .card.feature .tag { color:var(--lab-on-accent); background:color-mix(in srgb,var(--lab-on-accent) 10%,transparent); }
.card.feature .link-arrow,
body.ge .card.feature .link-arrow { color:var(--lab-on-accent); border-color:var(--lab-on-accent); }
.card.feature ul.ticks li::before { content:"✓"; display:grid; place-items:center; color:var(--lab-on-accent); font:700 10px/1 system-ui,sans-serif; background-color:color-mix(in srgb,var(--lab-on-accent) 12%,transparent); background-image:none; border:1px solid color-mix(in srgb,var(--lab-on-accent) 42%,transparent); }
.card.feature .btn.light { background:var(--lab-dark-bg); color:var(--lab-dark-ink); }

/* 5. Dark sections: tokens were reused as text colours, which turned dark in the dark themes. */
.section.dark .card,
.section.dark .numgrid>div { color:var(--lab-dark-ink); background:color-mix(in srgb,var(--lab-dark-bg) 86%,var(--lab-accent)); border-color:color-mix(in srgb,var(--lab-dark-ink) 28%,transparent); }
.section.dark .card p,
.section.dark .numgrid>div { color:color-mix(in srgb,var(--lab-dark-ink) 78%,transparent); }
.section.dark .card h3,
.section.dark .card .h3 { color:var(--lab-dark-ink); }
.section.dark .link-arrow { color:var(--lab-dark-ink); border-color:var(--lab-accent); }
.section.dark .link-arrow:hover { color:var(--lab-accent); }
.section.dark a:not(.btn):not(.link-arrow) { color:var(--lab-dark-ink); }
.section.dark .tag { color:var(--lab-accent); background:color-mix(in srgb,var(--lab-dark-ink) 8%,transparent); }
.section.dark .note, .section.dark p.note { color:color-mix(in srgb,var(--lab-dark-ink) 70%,transparent); }
.section.dark ul.ticks li::before { content:"✓"; display:grid; place-items:center; color:var(--lab-dark-ink); font:700 10px/1 system-ui,sans-serif; background-color:color-mix(in srgb,var(--lab-dark-ink) 12%,transparent); background-image:none; border:1px solid color-mix(in srgb,var(--lab-dark-ink) 30%,transparent); }
.site-footer .foot-base { border-top-color:color-mix(in srgb,var(--lab-dark-ink) 20%,transparent); }
.site-footer .foot-base span { color:color-mix(in srgb,var(--lab-dark-ink) 62%,transparent); }

/* 6. Small labels that used the light accent tone on a light surface. */
.who, .who-l, .flow-node .who, .flow-detail .who-l { color:var(--lab-accent); }
.who, .who-l.kicker { font-family:var(--font-mono); }
.flow-node .who { color:var(--lab-muted); }
.card .tag, .tag { color:var(--lab-accent); }
body.ge .tag { color:var(--lab-accent); background:var(--lab-accent-soft); }
body.ge .tag:where(.lab-sticky-note *) { color:var(--lab-accent); }

/* 7. Tokens the base theme never remapped (kept light inside the dark themes). */
::selection { color:var(--on-brand); }

/* 8. Text that scrambles must never create sideways scroll while the glyphs change width. */
[data-split], [data-split] .w { overflow-wrap:anywhere; }
html, body { overflow-x:clip; }

/* 9. Link colours that must respond to the theme rather than a fixed blue/teal. */
main a:not(.btn):not(.link-arrow):not(.dd-item):not(.mm):not(.card):not(.sister-card) { text-decoration-color:color-mix(in srgb,var(--lab-accent) 55%,transparent); }

/* 10. Secondary button inside the orange feature card used inline white-on-translucent colours. */
.card.feature .btn:not(.light):not(.primary) { --bg:transparent!important; --fg:var(--lab-on-accent)!important; border-color:var(--lab-on-accent); }
.card.feature .btn:not(.light):not(.primary):hover { --bg:var(--lab-dark-bg)!important; --fg:var(--lab-dark-ink)!important; }
.card.feature .btn-row { gap:10px; flex-wrap:wrap; }

/* 11. Sector ticker: the legacy wrapped/centred layout fought the scrolling track and stacked it in three ragged rows. */
.marquee { display:flex; align-items:center; white-space:nowrap; }
.marquee::before { flex:none; margin:0; padding:0 18px 0 var(--gutter); background:var(--lab-dark-bg); border-right:0; box-shadow:inset -1px 0 0 color-mix(in srgb,var(--lab-dark-ink) 28%,transparent); }
.marquee-track { flex:none; max-width:none; margin:0; padding:0; display:flex; width:max-content; }
.marquee-track > div { display:flex!important; flex-wrap:nowrap; justify-content:flex-start; gap:0; flex:none; }
.marquee-track > [aria-hidden="true"] { display:flex!important; }
.marquee-track span { display:inline-flex; align-items:center; gap:0; font-size:clamp(12px,1.3vw,16px); font-weight:700; color:var(--lab-dark-ink); }
.marquee-track span::after { width:auto; height:auto; border-radius:0; background:none; }
.marquee-track span:last-child::after { display:inline-block; }
@media (max-width:760px) {
  .marquee { display:block; }
  .marquee::before { display:block; width:auto; padding:0 var(--gutter); margin-bottom:8px; box-shadow:none; }
  .marquee-track { display:flex; }
}
@media (prefers-reduced-motion:reduce) {
  .marquee { display:block; }
  .marquee-track { animation:none!important; width:auto; padding:0 var(--gutter); }
  .marquee-track > div { flex-wrap:wrap; gap:6px 0; }
  .marquee-track > [aria-hidden="true"] { display:none!important; }
}

/* 12. Dark sections: preserve the section structure but colour it with each palette's companion night tone. */
.section.dark {
  --lab-ink:var(--lab-dark-ink); --lab-ink-2:color-mix(in srgb,var(--lab-dark-ink) 88%,transparent); --lab-muted:color-mix(in srgb,var(--lab-dark-ink) 70%,transparent);
  --lab-line:color-mix(in srgb,var(--lab-dark-ink) 22%,transparent); --lab-line-strong:color-mix(in srgb,var(--lab-dark-ink) 58%,transparent);
  --lab-surface:color-mix(in srgb,var(--lab-dark-bg) 84%,var(--lab-accent)); --lab-surface-2:color-mix(in srgb,var(--lab-dark-bg) 75%,var(--lab-accent));
  --lab-bg:var(--lab-dark-bg); --lab-bg-soft:color-mix(in srgb,var(--lab-dark-bg) 90%,var(--lab-accent)); --lab-accent-soft:color-mix(in srgb,var(--lab-accent) 18%,var(--lab-dark-bg));
}
.section.dark h1, .section.dark h2, .section.dark h3, .section.dark h4 { color:var(--lab-dark-ink); }
.section.dark h1 em, .section.dark h2 em, .section.dark h3 em { color:var(--lab-accent); }
.section.dark p, .section.dark .lead { color:color-mix(in srgb,var(--lab-dark-ink) 72%,transparent); }
.section.dark .card p { color:color-mix(in srgb,var(--lab-dark-ink) 78%,transparent); }
.section.dark .stat .big { color:var(--lab-dark-ink); }
.section.dark .ambient .b1 { background:radial-gradient(circle,color-mix(in srgb,var(--lab-accent) 22%,transparent),transparent 65%); }
.section.dark .ambient .b2 { background:radial-gradient(circle,color-mix(in srgb,var(--lab-accent-2) 14%,transparent),transparent 65%); }

/* 13. Mobile header controls: the theme button and menu button were different sizes. */
@media (max-width:760px) {
  .theme-toggle { width:42px; min-height:42px; height:42px; padding:0; }
  .nav-cta { align-items:center; }
}

/* 14. Small phones: the index chip sat on top of the cost sheet header and clipped its unit label. */
@media (max-width:480px) {
  .lab-hero-visual { min-height:470px; }
  .lab-hero .sheet { width:92%; }
  .lab-hero .sheet-top { gap:6px; padding:9px 10px; }
  .lab-hero .sheet-top .t { font-size:9px; letter-spacing:.06em; white-space:nowrap; }
  .lab-hero .sheet-top .u { font-size:8px; white-space:nowrap; padding:2px 6px; }
}

/* 15. The CTA band's offset shadow was cut off by the screen edge on phones. */
@media (max-width:760px) { .cta-band { box-shadow:4px 4px 0 var(--lab-ink); margin-right:4px; } }

/* 16. Long sector names (e.g. "Telecommunication") ran out of their card. */
.ind { min-width:0; }
.ind > span:not(.ic), .ind > div { min-width:0; overflow-wrap:anywhere; hyphens:auto; }
.ind b, .ind .nm { overflow-wrap:anywhere; }


/* Compact-layout corrections requested on 17 Oct 2026.
   Preserve the existing art direction; only reduce oversized gaps and guard content from clipping. */
/* The longer Industries headline previously pushed its sector summary to the bottom, leaving a large blank area above it. */
.industries-pagehead-grid { align-items: start; }
.industries-pagehead-grid .aside { align-self: start; }
.hero.lab-hero {
  min-height: 0;
  padding: clamp(28px, 3.2vw, 44px) 0 clamp(30px, 3.2vw, 44px);
}
.hero.lab-hero .display,
.hero.lab-hero .h1 {
  font-size: clamp(3.35rem, 6.4vw, 6.35rem);
  line-height: .9;
  overflow-wrap: normal;
  text-wrap: balance;
}
.lab-hero-visual {
  min-height: clamp(370px, 39vw, 520px);
}
.hero.lab-hero .kicker { margin-bottom: 16px; }
.hero.lab-hero .lead { margin-top: 18px; }
.hero.lab-hero .btn-row { margin-top: 20px; }
.hero.lab-hero .trust { margin-top: 18px; padding-top: 14px; }

.pagehead {
  padding: clamp(28px, 3.2vw, 44px) 0 clamp(34px, 4.1vw, 58px);
}
.pagehead .kicker { margin-bottom: 14px; }
.pagehead .lead { margin-top: 16px; }
.section { padding-block: clamp(38px, 4.8vw, 68px); }
.section.tight { padding-block: clamp(26px, 3.4vw, 46px); }
.lab-story {
  padding: clamp(42px, 6vw, 82px) 0 clamp(46px, 6vw, 84px);
}
.lab-story-head { margin-bottom: clamp(26px, 4vw, 52px); }
.site-footer { margin-top: clamp(30px, 3.8vw, 48px); padding-block: clamp(38px, 4.2vw, 56px) 22px; }

/* Keep the illustrative cost statement readable on narrow viewports. */
.lab-hero .sheet { max-width: 100%; }
.lab-hero .sheet table { width: 100%; table-layout: fixed; }
.lab-hero .sheet td:first-child { overflow-wrap: anywhere; }
.lab-hero .sheet td:last-child { white-space: nowrap; }

@media (max-width: 1080px) {
  .hero.lab-hero .display, .hero.lab-hero .h1 { font-size: clamp(3.2rem, 6.3vw, 5.4rem); }
  .lab-hero-visual { min-height: clamp(370px, 45vw, 490px); }
}
@media (max-width: 900px) {
  .hero.lab-hero { padding-block: clamp(28px, 4vw, 42px); }
  .hero.lab-hero .display, .hero.lab-hero .h1 { font-size: clamp(3.1rem, 8.5vw, 5.6rem); }
  .lab-hero-visual { min-height: clamp(350px, 58vw, 470px); }
  .pagehead { padding-block: 30px 40px; }
}
@media (max-width: 760px) {
  .hero.lab-hero { padding-block: 26px 30px; }
  .hero.lab-hero .display, .hero.lab-hero .h1 { font-size: clamp(3rem, 10vw, 4.6rem); }
  .lab-hero-visual { min-height: clamp(500px, 66vw, 520px); }
  .section { padding-block: clamp(34px, 7vw, 52px); }
  .lab-story { padding-block: 42px 48px; }
}
@media (max-width: 480px) {
  .hero.lab-hero .display, .hero.lab-hero .h1 { font-size: clamp(2.75rem, 12vw, 3.65rem); }
  .hero.lab-hero .trust { gap: 9px 12px; }
  .lab-hero-visual { min-height: 410px; }
  .lab-hero .sheet { width: 88%; }
  .pagehead { padding-block: 24px 32px; }
  .pagehead .h1 { font-size: clamp(2.5rem, 10vw, 3.6rem); line-height: .98; }
  .site-footer { margin-top: 28px; }
}

@media (max-width: 400px) {
  .lab-hero-visual { min-height: 450px; }
}
@media (max-width: 340px) {
  .lab-hero-visual { min-height: 480px; }
}



/* Theme audit fixes: eliminate legacy fixed-colour marks and surfaces. */
.topbar .pill { color:var(--lab-on-accent); }
.btn.primary, .btn.primary:focus-visible { color:var(--lab-on-accent); }
.btn.primary:hover { color:var(--lab-on-accent-2); }
.lab-hero .sheet tr.total td { color:var(--lab-on-accent); }
.lab-hero .quad .q.feature b, .lab-hero .quad .q.feature span,
.lab-hero .quad .q.feature .ic { color:var(--lab-on-accent); }
.lab-hero .quad .q.feature .ic { background:color-mix(in srgb,var(--lab-on-accent) 14%,transparent); }
/* The base stylesheet encoded a teal checkmark as an SVG; render a current-theme check instead. */
ul.ticks li::before {
  content:"✓"; display:grid; place-items:center; color:var(--lab-accent);
  background-color:var(--lab-accent-soft); background-image:none!important;
  border:1px solid color-mix(in srgb,var(--lab-accent) 35%,transparent);
  font:700 10px/1 system-ui,sans-serif;
}
.section.dark ul.ticks li::before {
  color:var(--lab-dark-ink); background-color:color-mix(in srgb,var(--lab-dark-ink) 12%,transparent);
  border-color:color-mix(in srgb,var(--lab-dark-ink) 30%,transparent);
}
.card.feature ul.ticks li::before {
  color:var(--lab-on-accent); background-color:color-mix(in srgb,var(--lab-on-accent) 12%,transparent);
  border-color:color-mix(in srgb,var(--lab-on-accent) 42%,transparent);
}
.abc .box { fill:var(--lab-surface); }
.abc .box.b { fill:var(--lab-dark-bg); }
.abc text { fill:var(--lab-ink-2); }
.abc text.w { fill:var(--lab-dark-ink); }
/* Selected palette also colours browser-native controls and valid system surfaces. */
html { accent-color:var(--lab-accent); }
::selection { background:var(--lab-accent); color:var(--lab-on-accent); }


/* Keep native form controls aligned with the selected palette. */
html { color-scheme: light; }
html[data-theme="tokyo-night"], html[data-theme="night"], html[data-theme="dark"], html[data-theme="extinct"] { color-scheme: dark; }
@media (prefers-color-scheme: dark) { html[data-theme="system"] { color-scheme: dark; } }

