/* web/next/tokens.css, Material v3 (2026-09-15, landed by P0.1 ui-next-p0-material).
   Owner ruling (2026-09-15, second reading): replicate superx.so's black exactly, its grey ladder and
   its textures on every page, and swap its orange for a light, beautiful sky blue. So the ground IS
   #181818 and every grey below is superx's own value, measured in the SuperX Study. The accent keeps
   superx's four registers (solid, text, glow ramp, dark tint) in blue. Dark is the default; light is a
   full second theme in the same material, in daylight. The --nx- names are the foundation's.

   THE ONE DEVIATION FROM THE HANDOFF SHEET, AND WHY. The design lane's sheet keyed the two themes on
   :root and let the operating system pick light when nothing was stored. The product keys them on the
   rebuilt frame's own attribute (.nx[data-theme]), which the shell writes from window.VBETheme, the
   same resolver the current app paints <html> from: dark is the unset default by the U0 byte-identity
   ruling (web/theme.jsx), "system" is an explicit stored choice, and the two apps never disagree on
   light or dark. The values are the handoff's, verbatim; only the selectors moved. */

.nx, .nx[data-theme="dark"] {
  color-scheme: dark;
  /* superx's ladder, verbatim */
  --nx-bg: #181818;            /* the ground (superx body) */
  --nx-well: #0D0D0D;          /* deepest well: icon tiles, screen interiors, knobs */
  --nx-disc: #0F0F0F;          /* pill icon disc fill */
  --nx-field: #111111;         /* field interiors (between well and ground) */
  --nx-flat: #1C1C1C;          /* flat card fill, with a 1px --nx-rim-top border */
  --nx-panel: #1C1C1C;
  --nx-pill: #1D1D1D;          /* pill fill */
  --nx-panel-2: #2C2B2B;       /* raised flat: selected tab capsule, current nav */
  --nx-fill-top: #2A2A2A;      /* card fill, lit top */
  --nx-fill-bot: #181818;      /* card fill, melts into the ground */
  --nx-rim-top: #363636;       /* the 1px rim, top */
  --nx-rim-bot: #181818;       /* the 1px rim, bottom */
  --nx-btn: #2C2B2B;           /* quiet button fill */
  --nx-btn-hi: #343434;        /* quiet button on hover */
  --nx-hair: #343434;          /* the blueprint hairlines */
  --nx-line: #1F1F1F;          /* crosshair grid lines around card groups */
  --nx-ring: #3F3F3F;          /* icon disc ring (2px), dashed borders */
  --nx-hover-border: #444444;
  --nx-marker: #9F9F9F;        /* "+" crosshair glyphs */
  --nx-tri: #8C8C8C;           /* ▼ frame markers */
  --nx-price-top: #191919; --nx-price-bot: #1F1F1F; --nx-price-border: #373737; /* the pricing card */
  /* text registers, superx's values */
  --nx-ink: #FFFFFF;
  --nx-ink-2: #E2E2E2;
  --nx-ink-3: #A3A3A3;         /* body (neutral-400; superx uses stone-400 #A8A29E under orange) */
  --nx-ink-4: #919191;         /* captions, placeholders (handoff #888888; 4.55:1 on the lit card top, the AA floor of acceptance row 3) */
  --nx-nav: #9CA3AF;           /* nav links at rest */
  /* the accent: a light sky blue in superx's four registers
     (superx: solid #EA580C · text #FFC35B · glow #FFE4A8→#FF8A5C→#C45040 · tint #351D10 · ring #FED7AA) */
  --nx-sky: #4FB8FF;           /* solid: dots, icons, progress, focus */
  --nx-sky-2: #38A8F5;         /* solid, deeper (orange-600 register) */
  --nx-sky-text: #8AD4FF;      /* text register: links, chips, the accent word */
  --nx-sky-ink: #06131F;       /* ink on a sky fill */
  --nx-sky-soft: rgba(79, 184, 255, 0.14);
  --nx-sky-rim: rgba(79, 184, 255, 0.55);
  --nx-sky-line: #1E6FC0;      /* connector mid colour (orange-700 register) */
  --nx-deep: #1B3FBF;
  --nx-tint: #10243A;          /* primary fill, the dark end (the #351D10 register) */
  --nx-tint-2: #163657;        /* primary fill, lit end */
  --nx-glow-a: #EAF7FF; --nx-glow-b: #7CCBFF; --nx-glow-c: #2C7DD6;
  --nx-glow-opacity: 1;
  --nx-hover-ring: #BFE6FF;
  --nx-chip-a: rgba(44, 125, 214, 0.2); --nx-chip-b: rgba(138, 212, 255, 0.2); --nx-chip-border: rgba(138, 212, 255, 0.3);
  /* semantic, never the accent */
  --nx-ok: #4ADE80;   --nx-ok-soft: rgba(74, 222, 128, 0.14);  --nx-ok-rim: rgba(74, 222, 128, 0.4);
  --nx-warn: #FBBF24; --nx-warn-soft: rgba(251, 191, 36, 0.14); --nx-warn-rim: rgba(251, 191, 36, 0.4);
  --nx-bad: #FB7185;  --nx-bad-soft: rgba(251, 113, 133, 0.14); --nx-bad-rim: rgba(251, 113, 133, 0.45);
  /* light and depth, superx's values */
  --nx-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --nx-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --nx-inset-hi: inset 0 2px 4px rgba(255, 255, 255, 0.15);
  --nx-inset-soft: inset 0 0 4px 4px rgba(255, 255, 255, 0.07);
  --nx-inset-hover: inset 0 10px 40px 5px rgba(255, 255, 255, 0.07);
  --nx-inset-btn: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  --nx-scrim: rgba(0, 0, 0, 0.6);
  --nx-bar: rgba(23, 23, 23, 0.9);
}

.nx[data-theme="light"] {
  color-scheme: light;
  --nx-bg: #F5F5F4; --nx-well: #E7E5E4; --nx-disc: #FFFFFF; --nx-field: #FFFFFF; --nx-flat: #FFFFFF; --nx-panel: #FFFFFF; --nx-pill: #FFFFFF; --nx-panel-2: #EDEDEC;
  --nx-fill-top: #FFFFFF; --nx-fill-bot: #F1F1F0; --nx-rim-top: #E3E3E1; --nx-rim-bot: #C4C4C1;
  --nx-btn: #FFFFFF; --nx-btn-hi: #F3F3F2; --nx-hair: #D6D6D3; --nx-line: #E8E8E6; --nx-ring: #C9C9C6; --nx-hover-border: #B8B8B5; --nx-marker: #8A8A87; --nx-tri: #9A9A97;
  --nx-price-top: #FFFFFF; --nx-price-bot: #F6F6F5; --nx-price-border: #D9D9D6;
  --nx-ink: #111111; --nx-ink-2: #2A2A2A; --nx-ink-3: #5C5C5C; --nx-ink-4: #6E6E6E; --nx-nav: #646B78; /* ink-4 (handoff #7A7A7A) and nav (handoff #6B7280) lifted to the AA floor on the card fill and the ground */
  --nx-sky: #0E86D6; --nx-sky-2: #0B74BC; --nx-sky-text: #0A6FBF; --nx-sky-ink: #FFFFFF; --nx-sky-soft: rgba(14, 134, 214, 0.12); --nx-sky-rim: rgba(14, 134, 214, 0.5); --nx-sky-line: #0E86D6;
  --nx-deep: #1B3FBF; --nx-tint: #0E6FB8; --nx-tint-2: #1877BF; /* the lit end of the primary (handoff #1D8FE0) deepened so white reads at 4.7:1 across the whole gradient */
  --nx-glow-a: #FFFFFF; --nx-glow-b: #8AD4FF; --nx-glow-c: #1B6FD8; --nx-glow-opacity: 0.35; --nx-hover-ring: #7CCBFF;
  --nx-chip-a: rgba(14, 134, 214, 0.1); --nx-chip-b: rgba(14, 134, 214, 0.16); --nx-chip-border: rgba(14, 134, 214, 0.35);
  --nx-ok: #15803D; --nx-ok-soft: rgba(21, 128, 61, 0.12); --nx-ok-rim: rgba(21, 128, 61, 0.4);
  --nx-warn: #A16207; --nx-warn-soft: rgba(161, 98, 7, 0.12); --nx-warn-rim: rgba(161, 98, 7, 0.4);
  --nx-bad: #BE123C; --nx-bad-soft: rgba(190, 18, 60, 0.1); --nx-bad-rim: rgba(190, 18, 60, 0.4);
  --nx-shadow-xl: 0 20px 25px -5px rgba(17, 17, 17, 0.08), 0 8px 10px -6px rgba(17, 17, 17, 0.06);
  --nx-shadow-2xl: 0 25px 50px -12px rgba(17, 17, 17, 0.18);
  --nx-inset-hi: inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -1px 0 rgba(17, 17, 17, 0.05);
  --nx-inset-soft: inset 0 0 4px 4px rgba(17, 17, 17, 0.03); --nx-inset-hover: inset 0 10px 40px 5px rgba(17, 17, 17, 0.03);
  --nx-inset-btn: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --nx-scrim: rgba(17, 17, 17, 0.4); --nx-bar: rgba(255, 255, 255, 0.92);
}

:root {
  /* type: Hanken Grotesk (owner), superx's weights: 400 body and buttons, 500 titles, 600 numbers and names */
  --nx-font: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --nx-t-label: 13px; --nx-t-body: 15px; --nx-t-lead: 17px; --nx-t-section: 24px; --nx-t-page: 30px; --nx-t-hero: 44px; --nx-t-display: 60px;
  --nx-lh-body: 1.6; --nx-lh-title: 1.1;
  --nx-track-title: -0.025em; --nx-track-hero: -0.04em;
  /* space, shape: superx's radii */
  --nx-s1: 4px; --nx-s2: 8px; --nx-s3: 12px; --nx-s4: 16px; --nx-s5: 20px; --nx-s6: 24px; --nx-s7: 32px; --nx-s8: 40px; --nx-s9: 56px;
  --nx-r-btn: 11px; --nx-r-card: 16px; --nx-r-tile: 16px; --nx-r-field: 12px; --nx-r-sheet: 20px; --nx-r-price: 24px; --nx-r-pill: 999px;
  --nx-r1: 11px; --nx-r2: 16px; --nx-r3: 999px;
  /* motion: superx's two curves */
  --nx-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --nx-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --nx-d-state: 150ms; --nx-d-enter: 350ms; --nx-d-handoff: 400ms; --nx-d-glow: 3500ms;
  --nx-target: 44px; --nx-target-min: 24px;
}
@media (prefers-reduced-motion: reduce) {
  :root { --nx-d-state: 0ms; --nx-d-enter: 0ms; --nx-d-handoff: 0ms; --nx-glow-opacity: 0; }
}
