/* ============================================================================
   PORTAL SKINS — three client-portal "looks" as pure --g-* token overrides.
   Lane L1 of wave-portal-skins (see .agents/mission/wave-portal-skins/PLAN.md).
   Generated by scratchpad/gen-portal-skins.js — do not hand-edit; edit the
   generator, re-run its self-verify, and regenerate.

   LOAD ORDER: after css/themes.css and css/legacy-bridge.css. This file adds
   THREE new data-ui-theme packs and NOTHING else — no :root, no bare element
   selector, no component declaration. Every selector here contains
   [data-ui-theme="portal- so it can only ever repaint a portal skin, never the
   baseline (studio) or any staff theme. css/themes.css is not touched; the
   baseline guarantee is a shasum, not a diff.

   IDS  portal-calm · portal-bold · portal-balanced   (baseline = studio, elsewhere)
   Each pack ships the SAME three-block idiom as studio (css/themes.css ~245):
     :root[data-ui-theme=ID],[data-ui-theme=ID]                       light body
     html[data-ui-theme=ID][data-theme="dark"],[…][data-theme="dark"] explicit dark
     @media (prefers-color-scheme: dark){ …:not([data-theme="light"]) } OS preference
   The bare non-root selector in each block is REQUIRED — it feeds
   Theme.tokens()'s off-root probe so the settings-picker swatches are real.
   --g-theme-scope:"portal" is what js/theme-settings.js filters on to keep these
   three out of the staff theme list (studio has no scope, so it is unaffected).

   ---------------------------------------------------------------------------
   CONTRAST — SAME BAR AS themes.css (read its V732-A / THE PLATE RULE header).
   ---------------------------------------------------------------------------
   Body ink (--g-text) clears WCAG 4.5:1 against ALL SIX opaque grounds
   (--g-canvas, --g-solid-1..4, --g-solid-sunken) in BOTH modes, every skin.
   Every accent/status plate (-soft/-softer/-sel/-bg) obeys THE PLATE RULE: its
   base sits on the GROUNDS' side of its own ink (never the ink's own RGB at low
   alpha), so the source-over composite over any ground keeps the floor. The
   mockups' soft plates were literally "ink at low alpha" (the exact defect that
   failed 24/36 blocks in themes.css) and were REBUILT here: pale opaque tints in
   light, deep translucent shades in dark. Worst measured body-ink contrast, per
   skin/mode, is printed at the head of each pack. Verifier lives beside the
   generator; re-run it after any value change.

   DELIBERATE, PER THE PLAN:
     · portal-calm  — --g-blur-*: none (its identity: soft depth, not glass);
                      warm flat ground (--g-mesh: none), one brick accent.
     · portal-bold  — blur CAPPED at studio's range (all --g-blur-* <= 28px), NOT
                      the mockup's 44px (old-Android stutter, PLAN R7).
     · portal-balanced — closest to studio; moderate blur (22-30px).
   Type-scale (B's clamp display/metric) and a few shape-only fixes are NOT here —
   a token can't carry them; they live in css/portal-skin-shape.css (lane L2).
   ============================================================================ */

/* ============================================================================
   CALM  (id: portal-calm)
   Warm, quiet and legible. Hairlines instead of boxes, one brick accent, no glass.
   worst body-ink contrast — light 14.50:1 · dark 12.40:1
   ============================================================================ */
:root[data-ui-theme="portal-calm"],
[data-ui-theme="portal-calm"] {
  color-scheme: light;
  --g-theme-scope: "portal";
  --g-theme-name: "Calm";
  --g-theme-blurb: "Warm, quiet and legible. Hairlines instead of boxes, one brick accent, no glass.";
  /* ground */
  --g-canvas: #F4F1EB;
  --g-mesh: none;
  /* opaque grounds (used under sticky/floating bars — iOS trap B) */
  --g-solid-1: #FBF9F5;
  --g-solid-2: #FDFCFA;
  --g-solid-3: #FEFDFC;
  --g-solid-4: #FFFFFF;
  --g-solid-sunken: #ECE8E0;
  /* ink */
  --g-text: #1A1815;
  --g-text-2: #4A453D;
  --g-text-3: #6E685E;
  --g-text-4: #948D82;
  --g-text-on-accent: #FFF7F4;
  --g-placeholder: #7C766B;
  /* the needle */
  --g-accent: #A33F2E;
  --g-accent-strong: #8F3626;
  --g-accent-fill: #A6402D;
  --g-accent-press: #8A3625;
  --g-accent-soft: rgba(247, 224, 220, 0.85);
  --g-accent-softer: rgba(250, 238, 236, 0.8);
  --g-accent-glow: rgba(163, 63, 46, 0.28);
  /* status */
  --g-green: #3E6B4F;
  --g-green-bg: #DCEEE2;
  --g-text-on-green: #F2F7F3;
  --g-amber: #8A5D1E;
  --g-amber-bg: #F4E9D6;
  --g-text-on-amber: #F9F5EC;
  --g-blue: #35597F;
  --g-blue-bg: #E0E8F0;
  --g-violet: #574080;
  --g-violet-bg: #E9E4F1;
  --g-red: #A33326;
  --g-red-bg: rgba(247, 224, 220, 0.85);
  --g-text-on-red: #FBEEEB;
  --g-slate: #4A453D;
  --g-slate-bg: #EAE6DE;
  /* the glass ladder */
  --g-fill-1: #FCFAF6;
  --g-fill-2: #FFFFFF;
  --g-fill-3: #FAF8F4;
  --g-fill-4: #FFFFFF;
  --g-fill-nested: #F6F2EA;
  --g-fill-sunken: rgba(40,33,24,.05);
  --g-fill-hover: rgba(40,33,24,.04);
  --g-fill-press: rgba(40,33,24,.06);
  --g-fill-sel: rgba(247, 224, 220, 0.85);
  /* blur (constant per rung, NEVER animated) */
  --g-blur-1: none;
  --g-blur-2: none;
  --g-blur-3: none;
  --g-blur-4: none;
  --g-blur-scrim: none;
  /* sheen (complete literal gradients — iOS trap B) */
  --g-sheen-1: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-2: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-3: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-4: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  /* edge + hairline */
  --g-edge-1: inset 0 0 0 1px rgba(40,33,24,.11);
  --g-edge-2: inset 0 0 0 1px rgba(40,33,24,.11);
  --g-edge-3: inset 0 0 0 1px rgba(40,33,24,.13);
  --g-edge-4: inset 0 0 0 1px rgba(40,33,24,.13);
  --g-hairline: rgba(40,33,24,.11);
  --g-hairline-strong: rgba(40,33,24,.20);
  /* specular is folded into --g-edge-* for these skins; no-op here */
  --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
  /* shadow / elevation */
  --g-shadow-1: 0 1px 2px rgba(40,33,24,.055);
  --g-shadow-2: 0 1px 2px rgba(40,33,24,.05), 0 10px 28px -14px rgba(40,33,24,.24);
  --g-shadow-3: 0 2px 6px rgba(40,33,24,.07), 0 28px 56px -22px rgba(40,33,24,.30);
  --g-shadow-4: 0 2px 6px rgba(40,33,24,.07), 0 28px 56px -22px rgba(40,33,24,.30);
  --g-e0: 0 0 0 0 rgba(0,0,0,0);
  --g-e1: 0 1px 2px rgba(40,33,24,.055);
  --g-e2: 0 1px 2px rgba(40,33,24,.05), 0 10px 28px -14px rgba(40,33,24,.24);
  --g-e3: 0 2px 6px rgba(40,33,24,.07), 0 28px 56px -22px rgba(40,33,24,.30);
  --g-e4: 0 2px 6px rgba(40,33,24,.07), 0 28px 56px -22px rgba(40,33,24,.30);
  --g-lift: 0 2px 6px rgba(40,33,24,.07), 0 28px 56px -22px rgba(40,33,24,.30);
  /* scrim */
  --g-scrim: rgba(40,33,24,.34);
  --g-scrim-strong: rgba(40,33,24,.5);
  /* radii */
  --g-r-xs: 6px;
  --g-r-sm: 9px;
  --g-r-md: 10px;
  --g-r-lg: 12px;
  --g-r-xl: 16px;
  --g-r-2xl: 20px;
  --g-r-ctl: 9px;
  --g-r-card: 12px;
  --g-r-chrome: 12px;
  --g-r-menu: 12px;
  --g-r-sheet: 16px;
  --g-r-modal: 16px;
  --g-r-inner: 9px;
  /* space + control sizing */
  --g-pad-card: 15px;
  --g-pad-card-tight: 13px;
  --g-pad-sheet: 20px;
  --g-pad-page: 20px;
  --g-gap: 12px;
  --g-ctl-h: 38px;
  --g-ctl-h-sm: 30px;
  --g-ctl-h-lg: 46px;
  --g-row-h: 44px;
  /* focus */
  --g-focus-color: rgba(163,63,46,.65);
  --g-focus-halo: rgba(163,63,46,.18);
  --g-focus-ring: 0 0 0 3px rgba(163,63,46,.28);
  /* feedback */
  --g-skel: rgba(40,33,24,.06);
  --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.7) 50%, rgba(255,255,255,0) 80%);
  --g-scroll-thumb: rgba(40,33,24,.2);
  --g-scroll-thumb-hover: rgba(40,33,24,.34);
  --g-grabber: rgba(40,33,24,.32);
  /* type */
  --g-font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  --g-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  /* STRUCTURE (glass.css §1.14) */
  --g-border-w: 0px;
  --g-border-c: transparent;
  --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(120,40,25,.3), 0 6px 14px -6px rgba(163,63,46,.4);
  --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.2), 0 2px 3px rgba(120,40,25,.28), 0 9px 20px -6px rgba(163,63,46,.45);
  --g-btn-primary-shadow-press: inset 0 1px 3px rgba(80,20,10,.35);
  --g-press-x: 0px;
  --g-press-y: 0px;
  --g-press-scale: 0.98;
  --g-rule-inset: 0px;
  --g-rule-c: transparent;
  --g-rule-r: 6px;
}

html[data-ui-theme="portal-calm"][data-theme="dark"],
[data-ui-theme="portal-calm"][data-theme="dark"] {
  color-scheme: dark;
  --g-theme-scope: "portal";
  --g-theme-name: "Calm";
  --g-theme-blurb: "Warm, quiet and legible. Hairlines instead of boxes, one brick accent, no glass.";
  /* ground */
  --g-canvas: #100F0D;
  --g-mesh: none;
  /* opaque grounds (used under sticky/floating bars — iOS trap B) */
  --g-solid-1: #171613;
  --g-solid-2: #1D1B18;
  --g-solid-3: #24221E;
  --g-solid-4: #2C2A25;
  --g-solid-sunken: #0A0908;
  /* ink */
  --g-text: #F2EEE7;
  --g-text-2: #C0B9AE;
  --g-text-3: #8E877D;
  --g-text-4: #6A645C;
  --g-text-on-accent: #FFF5F1;
  --g-placeholder: #837C72;
  /* the needle */
  --g-accent: #D97C6B;
  --g-accent-strong: #C55A48;
  --g-accent-fill: #B9503F;
  --g-accent-press: #A5462F;
  --g-accent-soft: rgba(62, 23, 16, 0.55);
  --g-accent-softer: rgba(62, 23, 16, 0.3);
  --g-accent-glow: rgba(217, 124, 107, 0.3);
  /* status */
  --g-green: #7FA98A;
  --g-green-bg: rgba(27, 51, 37, 0.5);
  --g-text-on-green: #0A1710;
  --g-amber: #C8A16A;
  --g-amber-bg: rgba(58, 46, 24, 0.5);
  --g-text-on-amber: #1A130A;
  --g-blue: #86A7C4;
  --g-blue-bg: rgba(30, 42, 54, 0.5);
  --g-violet: #A99BC0;
  --g-violet-bg: rgba(42, 36, 54, 0.5);
  --g-red: #D98A7C;
  --g-red-bg: rgba(66, 22, 16, 0.45);
  --g-text-on-red: #1F0A08;
  --g-slate: #C0B9AE;
  --g-slate-bg: rgba(60, 56, 50, 0.5);
  /* the glass ladder */
  --g-fill-1: #171613;
  --g-fill-2: #1D1B18;
  --g-fill-3: #24221E;
  --g-fill-4: #2C2A25;
  --g-fill-nested: #201E1A;
  --g-fill-sunken: rgba(0,0,0,.28);
  --g-fill-hover: rgba(238,230,218,.045);
  --g-fill-press: rgba(238,230,218,.06);
  --g-fill-sel: rgba(62, 23, 16, 0.6);
  /* blur (constant per rung, NEVER animated) */
  --g-blur-1: none;
  --g-blur-2: none;
  --g-blur-3: none;
  --g-blur-4: none;
  --g-blur-scrim: none;
  /* sheen (complete literal gradients — iOS trap B) */
  --g-sheen-1: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-2: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-3: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-4: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  /* edge + hairline */
  --g-edge-1: inset 0 0 0 1px rgba(238,230,218,.085);
  --g-edge-2: inset 0 0 0 1px rgba(238,230,218,.10);
  --g-edge-3: inset 0 0 0 1px rgba(238,230,218,.10);
  --g-edge-4: inset 0 0 0 1px rgba(238,230,218,.10);
  --g-hairline: rgba(238,230,218,.085);
  --g-hairline-strong: rgba(238,230,218,.16);
  /* specular is folded into --g-edge-* for these skins; no-op here */
  --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
  /* shadow / elevation */
  --g-shadow-1: 0 1px 2px rgba(0,0,0,.34);
  --g-shadow-2: 0 1px 2px rgba(0,0,0,.30), 0 14px 34px -14px rgba(0,0,0,.66);
  --g-shadow-3: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
  --g-shadow-4: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
  --g-e0: 0 0 0 0 rgba(0,0,0,0);
  --g-e1: 0 1px 2px rgba(0,0,0,.34);
  --g-e2: 0 1px 2px rgba(0,0,0,.30), 0 14px 34px -14px rgba(0,0,0,.66);
  --g-e3: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
  --g-e4: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
  --g-lift: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
  /* scrim */
  --g-scrim: rgba(0,0,0,.55);
  --g-scrim-strong: rgba(0,0,0,.72);
  /* radii */
  --g-r-xs: 6px;
  --g-r-sm: 9px;
  --g-r-md: 10px;
  --g-r-lg: 12px;
  --g-r-xl: 16px;
  --g-r-2xl: 20px;
  --g-r-ctl: 9px;
  --g-r-card: 12px;
  --g-r-chrome: 12px;
  --g-r-menu: 12px;
  --g-r-sheet: 16px;
  --g-r-modal: 16px;
  --g-r-inner: 9px;
  /* space + control sizing */
  --g-pad-card: 15px;
  --g-pad-card-tight: 13px;
  --g-pad-sheet: 20px;
  --g-pad-page: 20px;
  --g-gap: 12px;
  --g-ctl-h: 38px;
  --g-ctl-h-sm: 30px;
  --g-ctl-h-lg: 46px;
  --g-row-h: 44px;
  /* focus */
  --g-focus-color: rgba(217,124,107,.75);
  --g-focus-halo: rgba(217,124,107,.22);
  --g-focus-ring: 0 0 0 3px rgba(217,124,107,.3);
  /* feedback */
  --g-skel: rgba(255,255,255,.06);
  --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0) 80%);
  --g-scroll-thumb: rgba(255,255,255,.2);
  --g-scroll-thumb-hover: rgba(255,255,255,.34);
  --g-grabber: rgba(235,235,245,.34);
  /* type */
  --g-font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  --g-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  /* STRUCTURE (glass.css §1.14) */
  --g-border-w: 0px;
  --g-border-c: transparent;
  --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 1px 2px rgba(0,0,0,.4), 0 7px 16px -6px rgba(185,80,63,.45);
  --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.18), 0 2px 3px rgba(0,0,0,.35), 0 10px 22px -6px rgba(185,80,63,.5);
  --g-btn-primary-shadow-press: inset 0 1px 3px rgba(0,0,0,.5);
  --g-press-x: 0px;
  --g-press-y: 0px;
  --g-press-scale: 0.98;
  --g-rule-inset: 0px;
  --g-rule-c: transparent;
  --g-rule-r: 6px;
}

@media (prefers-color-scheme: dark) {
  html[data-ui-theme="portal-calm"]:not([data-theme="light"]),
  [data-ui-theme="portal-calm"]:not([data-theme="light"]):not([data-theme="dark"]) {
    color-scheme: dark;
    --g-theme-scope: "portal";
    --g-theme-name: "Calm";
    --g-theme-blurb: "Warm, quiet and legible. Hairlines instead of boxes, one brick accent, no glass.";
    /* ground */
    --g-canvas: #100F0D;
    --g-mesh: none;
    /* opaque grounds (used under sticky/floating bars — iOS trap B) */
    --g-solid-1: #171613;
    --g-solid-2: #1D1B18;
    --g-solid-3: #24221E;
    --g-solid-4: #2C2A25;
    --g-solid-sunken: #0A0908;
    /* ink */
    --g-text: #F2EEE7;
    --g-text-2: #C0B9AE;
    --g-text-3: #8E877D;
    --g-text-4: #6A645C;
    --g-text-on-accent: #FFF5F1;
    --g-placeholder: #837C72;
    /* the needle */
    --g-accent: #D97C6B;
    --g-accent-strong: #C55A48;
    --g-accent-fill: #B9503F;
    --g-accent-press: #A5462F;
    --g-accent-soft: rgba(62, 23, 16, 0.55);
    --g-accent-softer: rgba(62, 23, 16, 0.3);
    --g-accent-glow: rgba(217, 124, 107, 0.3);
    /* status */
    --g-green: #7FA98A;
    --g-green-bg: rgba(27, 51, 37, 0.5);
    --g-text-on-green: #0A1710;
    --g-amber: #C8A16A;
    --g-amber-bg: rgba(58, 46, 24, 0.5);
    --g-text-on-amber: #1A130A;
    --g-blue: #86A7C4;
    --g-blue-bg: rgba(30, 42, 54, 0.5);
    --g-violet: #A99BC0;
    --g-violet-bg: rgba(42, 36, 54, 0.5);
    --g-red: #D98A7C;
    --g-red-bg: rgba(66, 22, 16, 0.45);
    --g-text-on-red: #1F0A08;
    --g-slate: #C0B9AE;
    --g-slate-bg: rgba(60, 56, 50, 0.5);
    /* the glass ladder */
    --g-fill-1: #171613;
    --g-fill-2: #1D1B18;
    --g-fill-3: #24221E;
    --g-fill-4: #2C2A25;
    --g-fill-nested: #201E1A;
    --g-fill-sunken: rgba(0,0,0,.28);
    --g-fill-hover: rgba(238,230,218,.045);
    --g-fill-press: rgba(238,230,218,.06);
    --g-fill-sel: rgba(62, 23, 16, 0.6);
    /* blur (constant per rung, NEVER animated) */
    --g-blur-1: none;
    --g-blur-2: none;
    --g-blur-3: none;
    --g-blur-4: none;
    --g-blur-scrim: none;
    /* sheen (complete literal gradients — iOS trap B) */
    --g-sheen-1: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
    --g-sheen-2: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
    --g-sheen-3: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
    --g-sheen-4: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
    --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
    /* edge + hairline */
    --g-edge-1: inset 0 0 0 1px rgba(238,230,218,.085);
    --g-edge-2: inset 0 0 0 1px rgba(238,230,218,.10);
    --g-edge-3: inset 0 0 0 1px rgba(238,230,218,.10);
    --g-edge-4: inset 0 0 0 1px rgba(238,230,218,.10);
    --g-hairline: rgba(238,230,218,.085);
    --g-hairline-strong: rgba(238,230,218,.16);
    /* specular is folded into --g-edge-* for these skins; no-op here */
    --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
    /* shadow / elevation */
    --g-shadow-1: 0 1px 2px rgba(0,0,0,.34);
    --g-shadow-2: 0 1px 2px rgba(0,0,0,.30), 0 14px 34px -14px rgba(0,0,0,.66);
    --g-shadow-3: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
    --g-shadow-4: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
    --g-e0: 0 0 0 0 rgba(0,0,0,0);
    --g-e1: 0 1px 2px rgba(0,0,0,.34);
    --g-e2: 0 1px 2px rgba(0,0,0,.30), 0 14px 34px -14px rgba(0,0,0,.66);
    --g-e3: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
    --g-e4: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
    --g-lift: 0 2px 6px rgba(0,0,0,.36), 0 32px 64px -24px rgba(0,0,0,.80);
    /* scrim */
    --g-scrim: rgba(0,0,0,.55);
    --g-scrim-strong: rgba(0,0,0,.72);
    /* radii */
    --g-r-xs: 6px;
    --g-r-sm: 9px;
    --g-r-md: 10px;
    --g-r-lg: 12px;
    --g-r-xl: 16px;
    --g-r-2xl: 20px;
    --g-r-ctl: 9px;
    --g-r-card: 12px;
    --g-r-chrome: 12px;
    --g-r-menu: 12px;
    --g-r-sheet: 16px;
    --g-r-modal: 16px;
    --g-r-inner: 9px;
    /* space + control sizing */
    --g-pad-card: 15px;
    --g-pad-card-tight: 13px;
    --g-pad-sheet: 20px;
    --g-pad-page: 20px;
    --g-gap: 12px;
    --g-ctl-h: 38px;
    --g-ctl-h-sm: 30px;
    --g-ctl-h-lg: 46px;
    --g-row-h: 44px;
    /* focus */
    --g-focus-color: rgba(217,124,107,.75);
    --g-focus-halo: rgba(217,124,107,.22);
    --g-focus-ring: 0 0 0 3px rgba(217,124,107,.3);
    /* feedback */
    --g-skel: rgba(255,255,255,.06);
    --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0) 80%);
    --g-scroll-thumb: rgba(255,255,255,.2);
    --g-scroll-thumb-hover: rgba(255,255,255,.34);
    --g-grabber: rgba(235,235,245,.34);
    /* type */
    --g-font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
    --g-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
    /* STRUCTURE (glass.css §1.14) */
    --g-border-w: 0px;
    --g-border-c: transparent;
    --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 1px 2px rgba(0,0,0,.4), 0 7px 16px -6px rgba(185,80,63,.45);
    --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.18), 0 2px 3px rgba(0,0,0,.35), 0 10px 22px -6px rgba(185,80,63,.5);
    --g-btn-primary-shadow-press: inset 0 1px 3px rgba(0,0,0,.5);
    --g-press-x: 0px;
    --g-press-y: 0px;
    --g-press-scale: 0.98;
    --g-rule-inset: 0px;
    --g-rule-c: transparent;
    --g-rule-r: 6px;
  }
}

/* ============================================================================
   BOLD  (id: portal-bold)
   Big, confident and glassy. Oversized numbers, deep frost, the house red.
   worst body-ink contrast — light 15.16:1 · dark 15.03:1
   ============================================================================ */
:root[data-ui-theme="portal-bold"],
[data-ui-theme="portal-bold"] {
  color-scheme: light;
  --g-theme-scope: "portal";
  --g-theme-name: "Bold";
  --g-theme-blurb: "Big, confident and glassy. Oversized numbers, deep frost, the house red.";
  /* ground */
  --g-canvas: #E9EDF6;
  --g-mesh: radial-gradient(58% 44% at 10% 2%,rgba(196,43,34,.16),transparent 66%),radial-gradient(62% 50% at 92% 8%,rgba(31,95,174,.20),transparent 70%),radial-gradient(58% 62% at 80% 98%,rgba(101,73,172,.15),transparent 72%),radial-gradient(84% 62% at 50% 42%,rgba(255,255,255,.46),transparent 76%);
  /* opaque grounds (used under sticky/floating bars — iOS trap B) */
  --g-solid-1: #F7F8FC;
  --g-solid-2: #F9FAFD;
  --g-solid-3: #FCFCFE;
  --g-solid-4: #FDFEFF;
  --g-solid-sunken: #DFE4EF;
  /* ink */
  --g-text: #0B0E14;
  --g-text-2: #454D5E;
  --g-text-3: #626A7A;
  --g-text-4: #99A0AE;
  --g-text-on-accent: #FFFFFF;
  --g-placeholder: #7A8290;
  /* the needle */
  --g-accent: #B92A20;
  --g-accent-strong: #A3241B;
  --g-accent-fill: #B92A20;
  --g-accent-press: #8E1F17;
  --g-accent-soft: rgba(246, 220, 217, 0.85);
  --g-accent-softer: rgba(250, 236, 234, 0.8);
  --g-accent-glow: rgba(185,42,32,.28);
  /* status */
  --g-green: #0F6B3F;
  --g-green-bg: #D6EEDE;
  --g-text-on-green: #F2F8F4;
  --g-amber: #8A5600;
  --g-amber-bg: #F4E7CD;
  --g-text-on-amber: #FBF4E8;
  --g-blue: #1F5FAE;
  --g-blue-bg: #DBE5F1;
  --g-violet: #4E2E9E;
  --g-violet-bg: #E6E0F2;
  --g-red: #B0271D;
  --g-red-bg: #F6DEDB;
  --g-text-on-red: #FBEEEC;
  --g-slate: #454D5E;
  --g-slate-bg: #E3E6EB;
  /* the glass ladder */
  --g-fill-1: rgba(255,255,255,.62);
  --g-fill-2: rgba(255,255,255,.71);
  --g-fill-3: rgba(255,255,255,.85);
  --g-fill-4: rgba(255,255,255,.95);
  --g-fill-nested: rgba(255,255,255,.85);
  --g-fill-sunken: rgba(14,20,34,.05);
  --g-fill-hover: rgba(14,20,34,.04);
  --g-fill-press: rgba(14,20,34,.06);
  --g-fill-sel: rgba(246, 220, 217, 0.85);
  /* blur (constant per rung, NEVER animated) */
  --g-blur-1: blur(28px) saturate(180%);
  --g-blur-2: blur(26px) saturate(170%);
  --g-blur-3: blur(22px) saturate(162%);
  --g-blur-4: blur(28px) saturate(180%);
  --g-blur-scrim: blur(8px) saturate(115%);
  /* sheen (complete literal gradients — iOS trap B) */
  --g-sheen-1: linear-gradient(172deg,rgba(255,255,255,.62) 0%,rgba(255,255,255,.14) 32%,rgba(255,255,255,0) 62%);
  --g-sheen-2: linear-gradient(172deg,rgba(255,255,255,.62) 0%,rgba(255,255,255,.14) 32%,rgba(255,255,255,0) 62%);
  --g-sheen-3: linear-gradient(172deg,rgba(255,255,255,.62) 0%,rgba(255,255,255,.14) 32%,rgba(255,255,255,0) 62%);
  --g-sheen-4: linear-gradient(172deg,rgba(255,255,255,.62) 0%,rgba(255,255,255,.14) 32%,rgba(255,255,255,0) 62%);
  --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  /* edge + hairline */
  --g-edge-1: inset 0 0 0 1px rgba(14,20,34,.085), inset 0 1.5px 0 rgba(255,255,255,.95);
  --g-edge-2: inset 0 0 0 1px rgba(14,20,34,.08), inset 0 1.5px 0 rgba(255,255,255,.95);
  --g-edge-3: inset 0 0 0 1px rgba(14,20,34,.09), inset 0 2px 0 rgba(255,255,255,1);
  --g-edge-4: inset 0 0 0 1px rgba(14,20,34,.09), inset 0 2px 0 rgba(255,255,255,1);
  --g-hairline: rgba(14,20,34,.10);
  --g-hairline-strong: rgba(14,20,34,.18);
  /* specular is folded into --g-edge-* for these skins; no-op here */
  --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
  /* shadow / elevation */
  --g-shadow-1: 0 1px 2px rgba(14,20,34,.08);
  --g-shadow-2: 0 2px 6px rgba(14,20,34,.07), 0 18px 38px -18px rgba(14,20,34,.32);
  --g-shadow-3: 0 6px 16px rgba(14,20,34,.10), 0 44px 88px -32px rgba(14,20,34,.44);
  --g-shadow-4: 0 6px 16px rgba(14,20,34,.10), 0 44px 88px -32px rgba(14,20,34,.44);
  --g-e0: 0 0 0 0 rgba(0,0,0,0);
  --g-e1: 0 1px 2px rgba(14,20,34,.08);
  --g-e2: 0 2px 6px rgba(14,20,34,.07), 0 18px 38px -18px rgba(14,20,34,.32);
  --g-e3: 0 6px 16px rgba(14,20,34,.10), 0 44px 88px -32px rgba(14,20,34,.44);
  --g-e4: 0 6px 16px rgba(14,20,34,.10), 0 44px 88px -32px rgba(14,20,34,.44);
  --g-lift: 0 6px 16px rgba(14,20,34,.10), 0 44px 88px -32px rgba(14,20,34,.44);
  /* scrim */
  --g-scrim: rgba(20,24,34,.36);
  --g-scrim-strong: rgba(20,24,34,.52);
  /* radii */
  --g-r-xs: 8px;
  --g-r-sm: 12px;
  --g-r-md: 14px;
  --g-r-lg: 20px;
  --g-r-xl: 24px;
  --g-r-2xl: 26px;
  --g-r-ctl: 14px;
  --g-r-card: 24px;
  --g-r-chrome: 26px;
  --g-r-menu: 16px;
  --g-r-sheet: 24px;
  --g-r-modal: 26px;
  --g-r-inner: 14px;
  /* space + control sizing */
  --g-pad-card: 22px;
  --g-pad-card-tight: 16px;
  --g-pad-sheet: 24px;
  --g-pad-page: 28px;
  --g-gap: 16px;
  --g-ctl-h: 40px;
  --g-ctl-h-sm: 32px;
  --g-ctl-h-lg: 48px;
  --g-row-h: 52px;
  /* focus */
  --g-focus-color: rgba(185,42,32,.65);
  --g-focus-halo: rgba(185,42,32,.18);
  --g-focus-ring: 0 0 0 3.5px rgba(185,42,32,.26);
  /* feedback */
  --g-skel: rgba(14,20,34,.07);
  --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.75) 50%, rgba(255,255,255,0) 80%);
  --g-scroll-thumb: rgba(14,20,34,.2);
  --g-scroll-thumb-hover: rgba(14,20,34,.34);
  --g-grabber: rgba(14,20,34,.32);
  /* type */
  --g-font: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --g-font-display: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  /* STRUCTURE (glass.css §1.14) */
  --g-border-w: 0px;
  --g-border-c: transparent;
  --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(120,20,14,.35), 0 8px 20px -6px rgba(185,42,32,.5);
  --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.25), 0 2px 3px rgba(120,20,14,.3), 0 11px 26px -6px rgba(185,42,32,.55);
  --g-btn-primary-shadow-press: inset 0 1px 3px rgba(80,10,5,.4);
  --g-press-x: 0px;
  --g-press-y: 0px;
  --g-press-scale: 0.965;
  --g-rule-inset: 0px;
  --g-rule-c: transparent;
  --g-rule-r: 6px;
}

html[data-ui-theme="portal-bold"][data-theme="dark"],
[data-ui-theme="portal-bold"][data-theme="dark"] {
  color-scheme: dark;
  --g-theme-scope: "portal";
  --g-theme-name: "Bold";
  --g-theme-blurb: "Big, confident and glassy. Oversized numbers, deep frost, the house red.";
  /* ground */
  --g-canvas: #08090C;
  --g-mesh: radial-gradient(58% 44% at 10% 2%,rgba(233,88,77,.17),transparent 66%),radial-gradient(62% 50% at 92% 8%,rgba(48,100,184,.15),transparent 70%),radial-gradient(58% 62% at 80% 98%,rgba(101,78,178,.13),transparent 72%);
  /* opaque grounds (used under sticky/floating bars — iOS trap B) */
  --g-solid-1: #131417;
  --g-solid-2: #17181B;
  --g-solid-3: #1E1F21;
  --g-solid-4: #202124;
  --g-solid-sunken: #060709;
  /* ink */
  --g-text: #F6F7FA;
  --g-text-2: #AEB5C3;
  --g-text-3: #848C9A;
  --g-text-4: #5D6572;
  --g-text-on-accent: #2A0806;
  --g-placeholder: #6E7684;
  /* the needle */
  --g-accent: #E9584D;
  --g-accent-strong: #F26D62;
  --g-accent-fill: #E9584D;
  --g-accent-press: #D14A40;
  --g-accent-soft: rgba(58, 15, 11, 0.55);
  --g-accent-softer: rgba(58, 15, 11, 0.3);
  --g-accent-glow: rgba(233,88,77,.3);
  /* status */
  --g-green: #45C98C;
  --g-green-bg: rgba(17, 58, 41, 0.5);
  --g-text-on-green: #04140C;
  --g-amber: #EFB45C;
  --g-amber-bg: rgba(61, 47, 20, 0.5);
  --g-text-on-amber: #1A1206;
  --g-blue: #6E9BD8;
  --g-blue-bg: rgba(24, 38, 58, 0.5);
  --g-violet: #9F8DD8;
  --g-violet-bg: rgba(36, 30, 54, 0.5);
  --g-red: #F2857C;
  --g-red-bg: rgba(66, 18, 14, 0.45);
  --g-text-on-red: #1F0806;
  --g-slate: #AEB5C3;
  --g-slate-bg: rgba(40, 44, 54, 0.5);
  /* the glass ladder */
  --g-fill-1: rgba(255,255,255,.045);
  --g-fill-2: rgba(255,255,255,.062);
  --g-fill-3: rgba(255,255,255,.088);
  --g-fill-4: rgba(255,255,255,.11);
  --g-fill-nested: rgba(255,255,255,.088);
  --g-fill-sunken: rgba(0,0,0,.30);
  --g-fill-hover: rgba(255,255,255,.105);
  --g-fill-press: rgba(255,255,255,.135);
  --g-fill-sel: rgba(58, 15, 11, 0.5);
  /* blur (constant per rung, NEVER animated) */
  --g-blur-1: blur(28px) saturate(190%);
  --g-blur-2: blur(26px) saturate(178%);
  --g-blur-3: blur(24px) saturate(168%);
  --g-blur-4: blur(28px) saturate(190%);
  --g-blur-scrim: blur(8px) saturate(115%);
  /* sheen (complete literal gradients — iOS trap B) */
  --g-sheen-1: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
  --g-sheen-2: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
  --g-sheen-3: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
  --g-sheen-4: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
  --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  /* edge + hairline */
  --g-edge-1: inset 0 0 0 1px rgba(255,255,255,.10), inset 0 1px 0 rgba(255,255,255,.17);
  --g-edge-2: inset 0 0 0 1px rgba(255,255,255,.10), inset 0 1.5px 0 rgba(255,255,255,.20);
  --g-edge-3: inset 0 0 0 1px rgba(255,255,255,.11), inset 0 1.5px 0 rgba(255,255,255,.24);
  --g-edge-4: inset 0 0 0 1px rgba(255,255,255,.11), inset 0 1.5px 0 rgba(255,255,255,.24);
  --g-hairline: rgba(255,255,255,.095);
  --g-hairline-strong: rgba(255,255,255,.18);
  /* specular is folded into --g-edge-* for these skins; no-op here */
  --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
  /* shadow / elevation */
  --g-shadow-1: 0 1px 2px rgba(0,0,0,.50);
  --g-shadow-2: 0 2px 8px rgba(0,0,0,.42), 0 18px 42px -18px rgba(0,0,0,.82);
  --g-shadow-3: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
  --g-shadow-4: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
  --g-e0: 0 0 0 0 rgba(0,0,0,0);
  --g-e1: 0 1px 2px rgba(0,0,0,.50);
  --g-e2: 0 2px 8px rgba(0,0,0,.42), 0 18px 42px -18px rgba(0,0,0,.82);
  --g-e3: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
  --g-e4: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
  --g-lift: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
  /* scrim */
  --g-scrim: rgba(0,0,0,.64);
  --g-scrim-strong: rgba(0,0,0,.78);
  /* radii */
  --g-r-xs: 8px;
  --g-r-sm: 12px;
  --g-r-md: 14px;
  --g-r-lg: 20px;
  --g-r-xl: 24px;
  --g-r-2xl: 26px;
  --g-r-ctl: 14px;
  --g-r-card: 24px;
  --g-r-chrome: 26px;
  --g-r-menu: 16px;
  --g-r-sheet: 24px;
  --g-r-modal: 26px;
  --g-r-inner: 14px;
  /* space + control sizing */
  --g-pad-card: 22px;
  --g-pad-card-tight: 16px;
  --g-pad-sheet: 24px;
  --g-pad-page: 28px;
  --g-gap: 16px;
  --g-ctl-h: 40px;
  --g-ctl-h-sm: 32px;
  --g-ctl-h-lg: 48px;
  --g-row-h: 52px;
  /* focus */
  --g-focus-color: rgba(233,88,77,.75);
  --g-focus-halo: rgba(233,88,77,.24);
  --g-focus-ring: 0 0 0 3.5px rgba(233,88,77,.36);
  /* feedback */
  --g-skel: rgba(255,255,255,.07);
  --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0) 80%);
  --g-scroll-thumb: rgba(255,255,255,.2);
  --g-scroll-thumb-hover: rgba(255,255,255,.34);
  --g-grabber: rgba(235,235,245,.34);
  /* type */
  --g-font: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --g-font-display: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  /* STRUCTURE (glass.css §1.14) */
  --g-border-w: 0px;
  --g-border-c: transparent;
  --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.4), 0 8px 20px -6px rgba(233,88,77,.5);
  --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.25), 0 2px 3px rgba(0,0,0,.35), 0 11px 26px -6px rgba(233,88,77,.55);
  --g-btn-primary-shadow-press: inset 0 1px 3px rgba(0,0,0,.5);
  --g-press-x: 0px;
  --g-press-y: 0px;
  --g-press-scale: 0.965;
  --g-rule-inset: 0px;
  --g-rule-c: transparent;
  --g-rule-r: 6px;
}

@media (prefers-color-scheme: dark) {
  html[data-ui-theme="portal-bold"]:not([data-theme="light"]),
  [data-ui-theme="portal-bold"]:not([data-theme="light"]):not([data-theme="dark"]) {
    color-scheme: dark;
    --g-theme-scope: "portal";
    --g-theme-name: "Bold";
    --g-theme-blurb: "Big, confident and glassy. Oversized numbers, deep frost, the house red.";
    /* ground */
    --g-canvas: #08090C;
    --g-mesh: radial-gradient(58% 44% at 10% 2%,rgba(233,88,77,.17),transparent 66%),radial-gradient(62% 50% at 92% 8%,rgba(48,100,184,.15),transparent 70%),radial-gradient(58% 62% at 80% 98%,rgba(101,78,178,.13),transparent 72%);
    /* opaque grounds (used under sticky/floating bars — iOS trap B) */
    --g-solid-1: #131417;
    --g-solid-2: #17181B;
    --g-solid-3: #1E1F21;
    --g-solid-4: #202124;
    --g-solid-sunken: #060709;
    /* ink */
    --g-text: #F6F7FA;
    --g-text-2: #AEB5C3;
    --g-text-3: #848C9A;
    --g-text-4: #5D6572;
    --g-text-on-accent: #2A0806;
    --g-placeholder: #6E7684;
    /* the needle */
    --g-accent: #E9584D;
    --g-accent-strong: #F26D62;
    --g-accent-fill: #E9584D;
    --g-accent-press: #D14A40;
    --g-accent-soft: rgba(58, 15, 11, 0.55);
    --g-accent-softer: rgba(58, 15, 11, 0.3);
    --g-accent-glow: rgba(233,88,77,.3);
    /* status */
    --g-green: #45C98C;
    --g-green-bg: rgba(17, 58, 41, 0.5);
    --g-text-on-green: #04140C;
    --g-amber: #EFB45C;
    --g-amber-bg: rgba(61, 47, 20, 0.5);
    --g-text-on-amber: #1A1206;
    --g-blue: #6E9BD8;
    --g-blue-bg: rgba(24, 38, 58, 0.5);
    --g-violet: #9F8DD8;
    --g-violet-bg: rgba(36, 30, 54, 0.5);
    --g-red: #F2857C;
    --g-red-bg: rgba(66, 18, 14, 0.45);
    --g-text-on-red: #1F0806;
    --g-slate: #AEB5C3;
    --g-slate-bg: rgba(40, 44, 54, 0.5);
    /* the glass ladder */
    --g-fill-1: rgba(255,255,255,.045);
    --g-fill-2: rgba(255,255,255,.062);
    --g-fill-3: rgba(255,255,255,.088);
    --g-fill-4: rgba(255,255,255,.11);
    --g-fill-nested: rgba(255,255,255,.088);
    --g-fill-sunken: rgba(0,0,0,.30);
    --g-fill-hover: rgba(255,255,255,.105);
    --g-fill-press: rgba(255,255,255,.135);
    --g-fill-sel: rgba(58, 15, 11, 0.5);
    /* blur (constant per rung, NEVER animated) */
    --g-blur-1: blur(28px) saturate(190%);
    --g-blur-2: blur(26px) saturate(178%);
    --g-blur-3: blur(24px) saturate(168%);
    --g-blur-4: blur(28px) saturate(190%);
    --g-blur-scrim: blur(8px) saturate(115%);
    /* sheen (complete literal gradients — iOS trap B) */
    --g-sheen-1: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
    --g-sheen-2: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
    --g-sheen-3: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
    --g-sheen-4: linear-gradient(172deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.012) 34%,rgba(255,255,255,0) 62%);
    --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
    /* edge + hairline */
    --g-edge-1: inset 0 0 0 1px rgba(255,255,255,.10), inset 0 1px 0 rgba(255,255,255,.17);
    --g-edge-2: inset 0 0 0 1px rgba(255,255,255,.10), inset 0 1.5px 0 rgba(255,255,255,.20);
    --g-edge-3: inset 0 0 0 1px rgba(255,255,255,.11), inset 0 1.5px 0 rgba(255,255,255,.24);
    --g-edge-4: inset 0 0 0 1px rgba(255,255,255,.11), inset 0 1.5px 0 rgba(255,255,255,.24);
    --g-hairline: rgba(255,255,255,.095);
    --g-hairline-strong: rgba(255,255,255,.18);
    /* specular is folded into --g-edge-* for these skins; no-op here */
    --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
    /* shadow / elevation */
    --g-shadow-1: 0 1px 2px rgba(0,0,0,.50);
    --g-shadow-2: 0 2px 8px rgba(0,0,0,.42), 0 18px 42px -18px rgba(0,0,0,.82);
    --g-shadow-3: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
    --g-shadow-4: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
    --g-e0: 0 0 0 0 rgba(0,0,0,0);
    --g-e1: 0 1px 2px rgba(0,0,0,.50);
    --g-e2: 0 2px 8px rgba(0,0,0,.42), 0 18px 42px -18px rgba(0,0,0,.82);
    --g-e3: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
    --g-e4: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
    --g-lift: 0 6px 18px rgba(0,0,0,.46), 0 44px 92px -30px rgba(0,0,0,.94);
    /* scrim */
    --g-scrim: rgba(0,0,0,.64);
    --g-scrim-strong: rgba(0,0,0,.78);
    /* radii */
    --g-r-xs: 8px;
    --g-r-sm: 12px;
    --g-r-md: 14px;
    --g-r-lg: 20px;
    --g-r-xl: 24px;
    --g-r-2xl: 26px;
    --g-r-ctl: 14px;
    --g-r-card: 24px;
    --g-r-chrome: 26px;
    --g-r-menu: 16px;
    --g-r-sheet: 24px;
    --g-r-modal: 26px;
    --g-r-inner: 14px;
    /* space + control sizing */
    --g-pad-card: 22px;
    --g-pad-card-tight: 16px;
    --g-pad-sheet: 24px;
    --g-pad-page: 28px;
    --g-gap: 16px;
    --g-ctl-h: 40px;
    --g-ctl-h-sm: 32px;
    --g-ctl-h-lg: 48px;
    --g-row-h: 52px;
    /* focus */
    --g-focus-color: rgba(233,88,77,.75);
    --g-focus-halo: rgba(233,88,77,.24);
    --g-focus-ring: 0 0 0 3.5px rgba(233,88,77,.36);
    /* feedback */
    --g-skel: rgba(255,255,255,.07);
    --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0) 80%);
    --g-scroll-thumb: rgba(255,255,255,.2);
    --g-scroll-thumb-hover: rgba(255,255,255,.34);
    --g-grabber: rgba(235,235,245,.34);
    /* type */
    --g-font: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --g-font-display: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    /* STRUCTURE (glass.css §1.14) */
    --g-border-w: 0px;
    --g-border-c: transparent;
    --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.4), 0 8px 20px -6px rgba(233,88,77,.5);
    --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.25), 0 2px 3px rgba(0,0,0,.35), 0 11px 26px -6px rgba(233,88,77,.55);
    --g-btn-primary-shadow-press: inset 0 1px 3px rgba(0,0,0,.5);
    --g-press-x: 0px;
    --g-press-y: 0px;
    --g-press-scale: 0.965;
    --g-rule-inset: 0px;
    --g-rule-c: transparent;
    --g-rule-r: 6px;
  }
}

/* ============================================================================
   BALANCED  (id: portal-balanced)
   iOS-native calm. Translucent cards on a soft wash, continuous radii, one coral accent.
   worst body-ink contrast — light 15.14:1 · dark 13.78:1
   ============================================================================ */
:root[data-ui-theme="portal-balanced"],
[data-ui-theme="portal-balanced"] {
  color-scheme: light;
  --g-theme-scope: "portal";
  --g-theme-name: "Balanced";
  --g-theme-blurb: "iOS-native calm. Translucent cards on a soft wash, continuous radii, one coral accent.";
  /* ground */
  --g-canvas: #ECEFF6;
  --g-mesh: radial-gradient(58% 46% at 10% 2%,rgba(196,39,29,.125),transparent 66%),radial-gradient(62% 50% at 92% 8%,rgba(34,94,190,.135),transparent 68%),radial-gradient(56% 58% at 82% 98%,rgba(102,70,190,.10),transparent 70%),radial-gradient(50% 44% at 16% 92%,rgba(16,128,78,.085),transparent 70%),radial-gradient(90% 70% at 50% 38%,rgba(255,255,255,.50),transparent 76%);
  /* opaque grounds (used under sticky/floating bars — iOS trap B) */
  --g-solid-1: #F9FAFD;
  --g-solid-2: #FBFBFE;
  --g-solid-3: #FEFEFF;
  --g-solid-4: #FFFFFF;
  --g-solid-sunken: #E2E5EE;
  /* ink */
  --g-text: #0C1016;
  --g-text-2: #4B5364;
  --g-text-3: #6B7383;
  --g-text-4: #99A1AF;
  --g-text-on-accent: #FFFFFF;
  --g-placeholder: #79818F;
  /* the needle */
  --g-accent: #C4271D;
  --g-accent-strong: #AE1F16;
  --g-accent-fill: #C4271D;
  --g-accent-press: #981911;
  --g-accent-soft: rgba(248, 224, 222, 0.85);
  --g-accent-softer: rgba(251, 238, 237, 0.8);
  --g-accent-glow: rgba(196,39,29,.3);
  /* status */
  --g-green: #0E7A44;
  --g-green-bg: #DFF3E6;
  --g-text-on-green: #F1F8F4;
  --g-amber: #8A5600;
  --g-amber-bg: #F4E7CD;
  --g-text-on-amber: #FBF4E8;
  --g-blue: #1A4F98;
  --g-blue-bg: #DAE3F0;
  --g-violet: #5233A0;
  --g-violet-bg: #E5DFF1;
  --g-red: #B62A1E;
  --g-red-bg: #F7DFDC;
  --g-text-on-red: #FBEEEC;
  --g-slate: #4B5364;
  --g-slate-bg: #E2E5EB;
  /* the glass ladder */
  --g-fill-1: rgba(255,255,255,.70);
  --g-fill-2: rgba(255,255,255,.76);
  --g-fill-3: rgba(255,255,255,.96);
  --g-fill-4: #FFFFFF;
  --g-fill-nested: rgba(255,255,255,.85);
  --g-fill-sunken: rgba(14,20,34,.045);
  --g-fill-hover: rgba(14,20,34,.04);
  --g-fill-press: rgba(14,20,34,.06);
  --g-fill-sel: rgba(248, 224, 222, 0.85);
  /* blur (constant per rung, NEVER animated) */
  --g-blur-1: blur(30px) saturate(180%);
  --g-blur-2: blur(22px) saturate(165%);
  --g-blur-3: blur(22px) saturate(165%);
  --g-blur-4: blur(30px) saturate(180%);
  --g-blur-scrim: blur(8px) saturate(115%);
  /* sheen (complete literal gradients — iOS trap B) */
  --g-sheen-1: linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.12) 34%,rgba(255,255,255,0) 68%);
  --g-sheen-2: linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.12) 34%,rgba(255,255,255,0) 68%);
  --g-sheen-3: linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.12) 34%,rgba(255,255,255,0) 68%);
  --g-sheen-4: linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.12) 34%,rgba(255,255,255,0) 68%);
  --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  /* edge + hairline */
  --g-edge-1: inset 0 0 0 .5px rgba(14,20,34,.07);
  --g-edge-2: inset 0 0 0 .5px rgba(14,20,34,.09), inset 0 1px 0 rgba(255,255,255,.95);
  --g-edge-3: inset 0 0 0 .5px rgba(14,20,34,.10), inset 0 1px 0 rgba(255,255,255,1);
  --g-edge-4: inset 0 0 0 .5px rgba(14,20,34,.10), inset 0 1px 0 rgba(255,255,255,1);
  --g-hairline: rgba(14,20,34,.085);
  --g-hairline-strong: rgba(14,20,34,.15);
  /* specular is folded into --g-edge-* for these skins; no-op here */
  --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
  /* shadow / elevation */
  --g-shadow-1: 0 1px 2px rgba(14,20,34,.07);
  --g-shadow-2: 0 1px 2px rgba(14,20,34,.06), 0 12px 26px -14px rgba(14,20,34,.30);
  --g-shadow-3: 0 2px 6px rgba(14,20,34,.09), 0 26px 56px -20px rgba(14,20,34,.36);
  --g-shadow-4: 0 2px 6px rgba(14,20,34,.09), 0 26px 56px -20px rgba(14,20,34,.36);
  --g-e0: 0 0 0 0 rgba(0,0,0,0);
  --g-e1: 0 1px 2px rgba(14,20,34,.07);
  --g-e2: 0 1px 2px rgba(14,20,34,.06), 0 12px 26px -14px rgba(14,20,34,.30);
  --g-e3: 0 2px 6px rgba(14,20,34,.09), 0 26px 56px -20px rgba(14,20,34,.36);
  --g-e4: 0 2px 6px rgba(14,20,34,.09), 0 26px 56px -20px rgba(14,20,34,.36);
  --g-lift: 0 2px 6px rgba(14,20,34,.09), 0 26px 56px -20px rgba(14,20,34,.36);
  /* scrim */
  --g-scrim: rgba(20,24,34,.34);
  --g-scrim-strong: rgba(20,24,34,.5);
  /* radii */
  --g-r-xs: 8px;
  --g-r-sm: 12px;
  --g-r-md: 14px;
  --g-r-lg: 18px;
  --g-r-xl: 22px;
  --g-r-2xl: 28px;
  --g-r-ctl: 14px;
  --g-r-card: 22px;
  --g-r-chrome: 24px;
  --g-r-menu: 16px;
  --g-r-sheet: 24px;
  --g-r-modal: 24px;
  --g-r-inner: 14px;
  /* space + control sizing */
  --g-pad-card: 18px;
  --g-pad-card-tight: 13px;
  --g-pad-sheet: 22px;
  --g-pad-page: 20px;
  --g-gap: 14px;
  --g-ctl-h: 38px;
  --g-ctl-h-sm: 30px;
  --g-ctl-h-lg: 46px;
  --g-row-h: 46px;
  /* focus */
  --g-focus-color: rgba(196,39,29,.65);
  --g-focus-halo: rgba(196,39,29,.18);
  --g-focus-ring: 0 0 0 3.5px rgba(196,39,29,.24);
  /* feedback */
  --g-skel: rgba(14,20,34,.06);
  --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.7) 50%, rgba(255,255,255,0) 80%);
  --g-scroll-thumb: rgba(14,20,34,.2);
  --g-scroll-thumb-hover: rgba(14,20,34,.34);
  --g-grabber: rgba(14,20,34,.32);
  /* type */
  --g-font: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  --g-font-display: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  /* STRUCTURE (glass.css §1.14) */
  --g-border-w: 0px;
  --g-border-c: transparent;
  --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(130,25,17,.32), 0 10px 26px -12px rgba(196,39,29,.48);
  --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.25), 0 2px 3px rgba(130,25,17,.3), 0 13px 30px -12px rgba(196,39,29,.52);
  --g-btn-primary-shadow-press: inset 0 1px 3px rgba(90,15,8,.4);
  --g-press-x: 0px;
  --g-press-y: 0px;
  --g-press-scale: 0.965;
  --g-rule-inset: 0px;
  --g-rule-c: transparent;
  --g-rule-r: 6px;
}

html[data-ui-theme="portal-balanced"][data-theme="dark"],
[data-ui-theme="portal-balanced"][data-theme="dark"] {
  color-scheme: dark;
  --g-theme-scope: "portal";
  --g-theme-name: "Balanced";
  --g-theme-blurb: "iOS-native calm. Translucent cards on a soft wash, continuous radii, one coral accent.";
  /* ground */
  --g-canvas: #0A0B0F;
  --g-mesh: radial-gradient(58% 46% at 10% 2%,rgba(255,104,92,.155),transparent 66%),radial-gradient(62% 50% at 92% 8%,rgba(84,138,236,.135),transparent 68%),radial-gradient(56% 58% at 82% 98%,rgba(122,96,214,.115),transparent 70%),radial-gradient(50% 44% at 16% 92%,rgba(44,178,118,.075),transparent 70%),radial-gradient(90% 70% at 50% 38%,rgba(255,255,255,.028),transparent 76%);
  /* opaque grounds (used under sticky/floating bars — iOS trap B) */
  --g-solid-1: #16171B;
  --g-solid-2: #18191D;
  --g-solid-3: #1F2024;
  --g-solid-4: #26272B;
  --g-solid-sunken: #060709;
  /* ink */
  --g-text: #F4F6F9;
  --g-text-2: #A7AEBC;
  --g-text-3: #7C8391;
  --g-text-4: #5A606D;
  --g-text-on-accent: #2B0805;
  --g-placeholder: #6C737F;
  /* the needle */
  --g-accent: #FF6E62;
  --g-accent-strong: #FF8478;
  --g-accent-fill: #FF6E62;
  --g-accent-press: #EF5A4E;
  --g-accent-soft: rgba(62, 21, 18, 0.5);
  --g-accent-softer: rgba(62, 21, 18, 0.3);
  --g-accent-glow: rgba(255,110,98,.34);
  /* status */
  --g-green: #4FDDA0;
  --g-green-bg: rgba(18, 58, 42, 0.5);
  --g-text-on-green: #04140D;
  --g-amber: #F7BC58;
  --g-amber-bg: rgba(63, 49, 21, 0.5);
  --g-text-on-amber: #1A1206;
  --g-blue: #7AAEF8;
  --g-blue-bg: rgba(26, 44, 70, 0.5);
  --g-violet: #9E8AE0;
  --g-violet-bg: rgba(40, 32, 58, 0.5);
  --g-red: #FF8478;
  --g-red-bg: rgba(66, 22, 20, 0.45);
  --g-text-on-red: #1F0806;
  --g-slate: #A7AEBC;
  --g-slate-bg: rgba(38, 42, 52, 0.5);
  /* the glass ladder */
  --g-fill-1: rgba(255,255,255,.048);
  --g-fill-2: rgba(255,255,255,.058);
  --g-fill-3: rgba(255,255,255,.085);
  --g-fill-4: rgba(255,255,255,.11);
  --g-fill-nested: rgba(255,255,255,.085);
  --g-fill-sunken: rgba(0,0,0,.26);
  --g-fill-hover: rgba(255,255,255,.055);
  --g-fill-press: rgba(255,255,255,.085);
  --g-fill-sel: rgba(62, 21, 18, 0.5);
  /* blur (constant per rung, NEVER animated) */
  --g-blur-1: blur(28px) saturate(185%);
  --g-blur-2: blur(24px) saturate(170%);
  --g-blur-3: blur(24px) saturate(170%);
  --g-blur-4: blur(28px) saturate(185%);
  --g-blur-scrim: blur(8px) saturate(115%);
  /* sheen (complete literal gradients — iOS trap B) */
  --g-sheen-1: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
  --g-sheen-2: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
  --g-sheen-3: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
  --g-sheen-4: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
  --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
  /* edge + hairline */
  --g-edge-1: inset 0 0 0 .5px rgba(255,255,255,.085);
  --g-edge-2: inset 0 0 0 .5px rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.10);
  --g-edge-3: inset 0 0 0 .5px rgba(255,255,255,.14), inset 0 1px 0 rgba(255,255,255,.12);
  --g-edge-4: inset 0 0 0 .5px rgba(255,255,255,.14), inset 0 1px 0 rgba(255,255,255,.12);
  --g-hairline: rgba(255,255,255,.085);
  --g-hairline-strong: rgba(255,255,255,.14);
  /* specular is folded into --g-edge-* for these skins; no-op here */
  --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
  --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
  /* shadow / elevation */
  --g-shadow-1: 0 1px 2px rgba(0,0,0,.42);
  --g-shadow-2: 0 2px 6px rgba(0,0,0,.36), 0 14px 30px -14px rgba(0,0,0,.72);
  --g-shadow-3: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
  --g-shadow-4: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
  --g-e0: 0 0 0 0 rgba(0,0,0,0);
  --g-e1: 0 1px 2px rgba(0,0,0,.42);
  --g-e2: 0 2px 6px rgba(0,0,0,.36), 0 14px 30px -14px rgba(0,0,0,.72);
  --g-e3: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
  --g-e4: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
  --g-lift: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
  /* scrim */
  --g-scrim: rgba(0,0,0,.62);
  --g-scrim-strong: rgba(0,0,0,.78);
  /* radii */
  --g-r-xs: 8px;
  --g-r-sm: 12px;
  --g-r-md: 14px;
  --g-r-lg: 18px;
  --g-r-xl: 22px;
  --g-r-2xl: 28px;
  --g-r-ctl: 14px;
  --g-r-card: 22px;
  --g-r-chrome: 24px;
  --g-r-menu: 16px;
  --g-r-sheet: 24px;
  --g-r-modal: 24px;
  --g-r-inner: 14px;
  /* space + control sizing */
  --g-pad-card: 18px;
  --g-pad-card-tight: 13px;
  --g-pad-sheet: 22px;
  --g-pad-page: 20px;
  --g-gap: 14px;
  --g-ctl-h: 38px;
  --g-ctl-h-sm: 30px;
  --g-ctl-h-lg: 46px;
  --g-row-h: 46px;
  /* focus */
  --g-focus-color: rgba(255,110,98,.75);
  --g-focus-halo: rgba(255,110,98,.22);
  --g-focus-ring: 0 0 0 3.5px rgba(255,110,98,.34);
  /* feedback */
  --g-skel: rgba(255,255,255,.06);
  --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0) 80%);
  --g-scroll-thumb: rgba(255,255,255,.2);
  --g-scroll-thumb-hover: rgba(255,255,255,.34);
  --g-grabber: rgba(235,235,245,.34);
  /* type */
  --g-font: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  --g-font-display: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
  /* STRUCTURE (glass.css §1.14) */
  --g-border-w: 0px;
  --g-border-c: transparent;
  --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 1px 2px rgba(0,0,0,.4), 0 10px 30px -10px rgba(255,110,98,.55);
  --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.22), 0 2px 3px rgba(0,0,0,.35), 0 13px 34px -10px rgba(255,110,98,.6);
  --g-btn-primary-shadow-press: inset 0 1px 3px rgba(0,0,0,.5);
  --g-press-x: 0px;
  --g-press-y: 0px;
  --g-press-scale: 0.965;
  --g-rule-inset: 0px;
  --g-rule-c: transparent;
  --g-rule-r: 6px;
}

@media (prefers-color-scheme: dark) {
  html[data-ui-theme="portal-balanced"]:not([data-theme="light"]),
  [data-ui-theme="portal-balanced"]:not([data-theme="light"]):not([data-theme="dark"]) {
    color-scheme: dark;
    --g-theme-scope: "portal";
    --g-theme-name: "Balanced";
    --g-theme-blurb: "iOS-native calm. Translucent cards on a soft wash, continuous radii, one coral accent.";
    /* ground */
    --g-canvas: #0A0B0F;
    --g-mesh: radial-gradient(58% 46% at 10% 2%,rgba(255,104,92,.155),transparent 66%),radial-gradient(62% 50% at 92% 8%,rgba(84,138,236,.135),transparent 68%),radial-gradient(56% 58% at 82% 98%,rgba(122,96,214,.115),transparent 70%),radial-gradient(50% 44% at 16% 92%,rgba(44,178,118,.075),transparent 70%),radial-gradient(90% 70% at 50% 38%,rgba(255,255,255,.028),transparent 76%);
    /* opaque grounds (used under sticky/floating bars — iOS trap B) */
    --g-solid-1: #16171B;
    --g-solid-2: #18191D;
    --g-solid-3: #1F2024;
    --g-solid-4: #26272B;
    --g-solid-sunken: #060709;
    /* ink */
    --g-text: #F4F6F9;
    --g-text-2: #A7AEBC;
    --g-text-3: #7C8391;
    --g-text-4: #5A606D;
    --g-text-on-accent: #2B0805;
    --g-placeholder: #6C737F;
    /* the needle */
    --g-accent: #FF6E62;
    --g-accent-strong: #FF8478;
    --g-accent-fill: #FF6E62;
    --g-accent-press: #EF5A4E;
    --g-accent-soft: rgba(62, 21, 18, 0.5);
    --g-accent-softer: rgba(62, 21, 18, 0.3);
    --g-accent-glow: rgba(255,110,98,.34);
    /* status */
    --g-green: #4FDDA0;
    --g-green-bg: rgba(18, 58, 42, 0.5);
    --g-text-on-green: #04140D;
    --g-amber: #F7BC58;
    --g-amber-bg: rgba(63, 49, 21, 0.5);
    --g-text-on-amber: #1A1206;
    --g-blue: #7AAEF8;
    --g-blue-bg: rgba(26, 44, 70, 0.5);
    --g-violet: #9E8AE0;
    --g-violet-bg: rgba(40, 32, 58, 0.5);
    --g-red: #FF8478;
    --g-red-bg: rgba(66, 22, 20, 0.45);
    --g-text-on-red: #1F0806;
    --g-slate: #A7AEBC;
    --g-slate-bg: rgba(38, 42, 52, 0.5);
    /* the glass ladder */
    --g-fill-1: rgba(255,255,255,.048);
    --g-fill-2: rgba(255,255,255,.058);
    --g-fill-3: rgba(255,255,255,.085);
    --g-fill-4: rgba(255,255,255,.11);
    --g-fill-nested: rgba(255,255,255,.085);
    --g-fill-sunken: rgba(0,0,0,.26);
    --g-fill-hover: rgba(255,255,255,.055);
    --g-fill-press: rgba(255,255,255,.085);
    --g-fill-sel: rgba(62, 21, 18, 0.5);
    /* blur (constant per rung, NEVER animated) */
    --g-blur-1: blur(28px) saturate(185%);
    --g-blur-2: blur(24px) saturate(170%);
    --g-blur-3: blur(24px) saturate(170%);
    --g-blur-4: blur(28px) saturate(185%);
    --g-blur-scrim: blur(8px) saturate(115%);
    /* sheen (complete literal gradients — iOS trap B) */
    --g-sheen-1: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
    --g-sheen-2: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
    --g-sheen-3: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
    --g-sheen-4: linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.01) 40%,rgba(255,255,255,0) 70%);
    --g-sheen-nested: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0));
    /* edge + hairline */
    --g-edge-1: inset 0 0 0 .5px rgba(255,255,255,.085);
    --g-edge-2: inset 0 0 0 .5px rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.10);
    --g-edge-3: inset 0 0 0 .5px rgba(255,255,255,.14), inset 0 1px 0 rgba(255,255,255,.12);
    --g-edge-4: inset 0 0 0 .5px rgba(255,255,255,.14), inset 0 1px 0 rgba(255,255,255,.12);
    --g-hairline: rgba(255,255,255,.085);
    --g-hairline-strong: rgba(255,255,255,.14);
    /* specular is folded into --g-edge-* for these skins; no-op here */
    --g-spec-1: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-2: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-3: 0 0 0 0 rgba(0,0,0,0);
    --g-spec-4: 0 0 0 0 rgba(0,0,0,0);
    /* shadow / elevation */
    --g-shadow-1: 0 1px 2px rgba(0,0,0,.42);
    --g-shadow-2: 0 2px 6px rgba(0,0,0,.36), 0 14px 30px -14px rgba(0,0,0,.72);
    --g-shadow-3: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
    --g-shadow-4: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
    --g-e0: 0 0 0 0 rgba(0,0,0,0);
    --g-e1: 0 1px 2px rgba(0,0,0,.42);
    --g-e2: 0 2px 6px rgba(0,0,0,.36), 0 14px 30px -14px rgba(0,0,0,.72);
    --g-e3: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
    --g-e4: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
    --g-lift: 0 4px 12px rgba(0,0,0,.42), 0 30px 62px -22px rgba(0,0,0,.88);
    /* scrim */
    --g-scrim: rgba(0,0,0,.62);
    --g-scrim-strong: rgba(0,0,0,.78);
    /* radii */
    --g-r-xs: 8px;
    --g-r-sm: 12px;
    --g-r-md: 14px;
    --g-r-lg: 18px;
    --g-r-xl: 22px;
    --g-r-2xl: 28px;
    --g-r-ctl: 14px;
    --g-r-card: 22px;
    --g-r-chrome: 24px;
    --g-r-menu: 16px;
    --g-r-sheet: 24px;
    --g-r-modal: 24px;
    --g-r-inner: 14px;
    /* space + control sizing */
    --g-pad-card: 18px;
    --g-pad-card-tight: 13px;
    --g-pad-sheet: 22px;
    --g-pad-page: 20px;
    --g-gap: 14px;
    --g-ctl-h: 38px;
    --g-ctl-h-sm: 30px;
    --g-ctl-h-lg: 46px;
    --g-row-h: 46px;
    /* focus */
    --g-focus-color: rgba(255,110,98,.75);
    --g-focus-halo: rgba(255,110,98,.22);
    --g-focus-ring: 0 0 0 3.5px rgba(255,110,98,.34);
    /* feedback */
    --g-skel: rgba(255,255,255,.06);
    --g-skel-shine: linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0) 80%);
    --g-scroll-thumb: rgba(255,255,255,.2);
    --g-scroll-thumb-hover: rgba(255,255,255,.34);
    --g-grabber: rgba(235,235,245,.34);
    /* type */
    --g-font: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
    --g-font-display: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif;
    /* STRUCTURE (glass.css §1.14) */
    --g-border-w: 0px;
    --g-border-c: transparent;
    --g-btn-primary-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 1px 2px rgba(0,0,0,.4), 0 10px 30px -10px rgba(255,110,98,.55);
    --g-btn-primary-shadow-hover: inset 0 1px 0 rgba(255,255,255,.22), 0 2px 3px rgba(0,0,0,.35), 0 13px 34px -10px rgba(255,110,98,.6);
    --g-btn-primary-shadow-press: inset 0 1px 3px rgba(0,0,0,.5);
    --g-press-x: 0px;
    --g-press-y: 0px;
    --g-press-scale: 0.965;
    --g-rule-inset: 0px;
    --g-rule-c: transparent;
    --g-rule-r: 6px;
  }
}
