/* GENERATED — do not edit by hand.
   Source of truth: design/rebrand-handoff/assets/tokens.css
   Regenerate: python3 design/rebrand-handoff/assets/sync_tokens.py */
/* Stark Suite — design tokens (rebrand 2026-08-15). Night is :root; Day = html[data-mode="stone"].
   Components reference tokens only. The reactor asset does NOT change between modes. */
:root{
  /* surfaces */
  --bg:#0D0909; --panel:#1A1213; --panel-side:#150E0F; --border:rgba(232,179,60,.24); --track:#2C1E1F;
  /* text */
  --t-hi:#F4EDE2; --t-mid:#C9B8A6; --t-lo:#A08D7E;
  /* chrome (L1) */
  --red:#E23636; --gold:#E8B33C; --gold-hi:#F6E3B4; --gold-lo:#B07A28; --arc:#8FDCFF;
  /* CHROME PRINCIPLE (Brian, 1 Sep 2026): GOLD PLATES, RED SEALS. Gold is the metal — frames, lines,
     active state, focus, money. Red marks a POINT, never a line or a fill: weld tick, reactor seal,
     ACT/alert. Red never means 'current'. See design/CHROME-PRINCIPLES.md. */
  --gold-text:#E8B33C;                     /* gold as TEXT — same as --gold at night; day needs a deeper value */
  --flick:linear-gradient(90deg,var(--gold),transparent);                       /* sidebar/section active flick */
  --hero-rule:linear-gradient(90deg,transparent,var(--red) 22%,var(--red) 46%,var(--gold) 48%,var(--gold) 52%,var(--red) 54%,var(--red) 78%,transparent); /* red line, gold seal — deliberate exception to gold-plates/red-seals, breaks up an otherwise gold-heavy UI once you're living in the apps day to day (Brian, 3 Sep 2026) */
  --h-plate:#26201F; --h-plate-l:#3A302E; --h-plate-d:#120E0E; --h-halo:.55;
  /* semantic (L2) */
  --gain:#7CB88A; --loss:#D98B8B; --watch:#E0A658; --alert:#E23636; --neutral:#A9B7C6;
  /* categorical (L3) — use in order */
  /* C3 was Repulsor violet #A78BFA (day #6D4FC4). Retired 15 Aug (Brian): the
     violet was the one hue with no anchor in the Mark III livery and read as a
     different design system, worst in Stone. C3 is now Slate teal. Watch it
     against C1 arc and C5 verdant wherever all three share a chart. */
  --c1:#8FDCFF; --c2:#E8B33C; --c3:#5FA8A0; --c4:#E88959; --c5:#7CB88A; --c6:#6F9BD1; --c7:#D98B8B; --c8:#A9B7C6;
  /* money hero accent = gold */
  --money:#E8B33C;
  /* type */
  --f-disp:'Orbitron',sans-serif; --f-num:'Space Grotesk',sans-serif; --f-body:'Space Grotesk',sans-serif; --f-mono:'IBM Plex Mono',monospace;
  /* shape — radius scale. --r-card is THE card radius for the whole suite (Brian, 1 Sep: 10px — apps were 6,
     dashboards 4, Portfolio 12; one value, and never a hand-picked px on a card) */
  --r-card:10px; --r-item:4px; --r-chip:3px; --r-pill:999px; --accent-top:2px;
  --card-shadow:inset 0 1px 0 rgba(232,179,60,.07);
  --wordmark:linear-gradient(180deg,#F6E3B4 0%,#E8B33C 52%,#E23636 150%);
  --glow-a:.9;
  /* component tokens — used by §7, taken from reference/20-jarvis-command-final.html */
  --f-lab:'IBM Plex Mono',monospace; --w-disp:600; --w-num:600; --w-lab:500;
  --hero-bg:#120B0C;                       /* night keeps a slightly darker hero */
  --item-active-bg:rgba(232,179,60,.08);   /* sidebar active row — gold tint (was red: red never means 'current') */
  --seclab:var(--gold-text);               /* section label — gold in BOTH rooms */
  /* own-finish build (25 Sep 2026), §3: the semantic names the finish layer
     overrides per [data-app]. Suite-wide defaults here just alias the
     existing tokens above, so nothing renders differently until an app
     declares its own finish.css. */
  --room:var(--bg); --room-wash:none;
  --light:var(--arc); --light-2:var(--arc); --light-text:var(--arc);
  --ink:var(--t-hi); --ink-2:var(--t-mid); --ink-3:var(--t-lo); --ink-dim:var(--t-lo);
  --panel-edge:var(--border); --panel-edge-hero:var(--border);
  --f-display:var(--f-disp); --sidebar-w:224px;
}
html[data-mode="stone"]{
  --bg:#D6CFC0; --panel:#FBF9F4; --panel-side:#CEC6B6; --border:#DDD7CA; --track:#E8E2D6;
  /* --t-lo darkened from the original #66615A (Brian, 15 Aug): at #66615A the
     sidebar section labels sat at 3.62:1 on --panel-side. #55504A gives 4.70:1
     there and 7.58:1 on paper. */
  --t-hi:#1E1B17; --t-mid:#46413A; --t-lo:#55504A;
  --red:#B8102A; --gold:#B8860B; --gold-hi:#C8202B; --gold-lo:#A87A0E; --arc:#0F6C8E;
  /* plain day gold is 2.10:1 on the room and 3.09 on paper — fine for a 2px line on paper, never for text.
     --gold-text #7A5A06 = 4.11:1 on the room, 3.76 on the sidebar, 6.06 on paper. This is what stops Stone
     drifting back to red for wordmarks and labels. */
  --gold-text:#7A5A06;
  /* --h-plate / --h-halo unchanged on purpose */
  /* --watch and --loss darkened (31 Aug critique): at #9A6B0A / #B25C5C they sat at
     4.45:1 / 4.36:1 on paper — just under AA for small text. #8F6309 = 5.04:1,
     #A85454 = 4.91:1; hue and relationship to --gain unchanged. */
  --gain:#2F6B4A; --loss:#A85454; --watch:#8F6309; --alert:#B8102A; --neutral:#66707C;
  --c1:#0F6C8E; --c2:#A87A0E; --c3:#256D66; --c4:#B4551F; --c5:#2F6B4A; --c6:#2E5C93; --c7:#A85454; --c8:#66707C;
  --money:#A87A0E;
  --card-shadow:0 1px 2px rgba(30,27,23,.11),0 3px 10px rgba(30,27,23,.09);
  --wordmark:linear-gradient(180deg,#7A5A06 0%,#8A6508 60%,#B8102A 140%);   /* gold-led like night; red only at the tail */
  --glow-a:.9;
  /* day: the room is a single colour — hero and body share --bg (§2) */
  --hero-bg:#D6CFC0; --item-active-bg:rgba(251,249,244,.6); --seclab:var(--gold-text);
}

/* ── Type (1 Sep, Brian): Inter retired — Space Grotesk carries body copy as well as numerals.
   Space Grotesk has no italic: no synthetic obliques anywhere; italic requests render upright.
   The voice line is upright 500 — the arc-light left rule carries the 'spoken' cue. */
html{font-synthesis:none}
.bv4-voice,.jarvis-voice,.mode-toast{font-style:normal;font-weight:500}

/* ── Reactor mark behaviour (plain core, final) ─────────────────────────────
   The light breathes; privacy seals it to black. Nothing else animates. */
.reactor .core{transform-box:fill-box;transform-origin:center;animation:arc-breathe 2.8s ease-in-out infinite}
.reactor .halo,.reactor .halo-fill{transform-box:fill-box;transform-origin:center;animation:arc-halo 2.8s ease-in-out infinite}
@keyframes arc-breathe{0%,100%{transform:scale(1);opacity:.96}50%{transform:scale(1.05);opacity:1}}
@keyframes arc-halo{0%,100%{opacity:.85}50%{opacity:1}}
/* privacy / sealed: the blue centre light turns black; halo off; housing unchanged */
.reactor.sealed .core{fill:#0A0C10;stroke:#1C2128;animation:none}
.reactor.sealed .halo,.reactor.sealed .halo-fill{opacity:0;animation:none}
.reactor.sealed .core.stone{fill:#141210;stroke:#2A2620}
@media (prefers-reduced-motion:reduce){.reactor .core,.reactor .halo,.reactor .halo-fill{animation:none}}
