/* ─────────────────────────────────────────────────────────────────────────
 * design-systems/playstation/tokens.css
 *
 * Structured token bindings for "Design System Inspired by PlayStation".
 * Console-grade retail: a three-surface channel (black hero → white content
 * → cobalt footer), SST weight 300 at display sizes, and a signature
 * 1.2× scale-on-hover that fires across the page like a power-on chime.
 *
 * Key brand decisions encoded here:
 *   - Console Black (#000000) is the dominant brand canvas; Paper White
 *     is the lifted --surface tier where editorial content lives
 *   - PlayStation Blue (#0070cc) is the immovable anchor — primary CTAs,
 *     focus ring, footer
 *   - PlayStation Cyan (#1eaedb) lives only in --accent-hover — the
 *     "cyan never appears at rest" rule encoded into the token layer
 *   - SST weight 300 at 22–54px is the typographic voice (component layer
 *     enforces the weight; tokens carry sizes)
 *   - 180ms is the canonical interaction window for hover/focus/scale
 *   - Eleven-radius system collapsed onto the schema spine: 6/12/24/999
 * ─────────────────────────────────────────────────────────────────── */

:root {
  /* ─── Surface ─────────────────────────────────────────────────────
   * Three-surface channel. Console Black anchors the masthead and hero
   * zones; Paper White is the editorial gallery panel; Ice Mist is the
   * gradient end-stop that quietly lifts panels off pure white. */
  --bg: #000000;             /* Console Black — masthead / hero canvas */
  --surface: #ffffff;        /* Paper White — primary content panel */
  --surface-warm: #f5f7fa;   /* Ice Mist — atmospheric panel lift */

  /* ─── Foreground ──────────────────────────────────────────────────
   * On Console Black the primary text is Inverse White. Body Gray
   * (#6b6b6b) is reserved for white-panel context (set at component
   * layer); Mute Gray (#cccccc) is the muted tier visible on dark. */
  --fg: #ffffff;             /* Inverse White — text on dark canvas */
  --fg-2: var(--fg);         /* alias — single display weight throughout */
  --muted: #cccccc;          /* Mute Gray — tertiary labels on dark */
  --meta: var(--muted);      /* alias — one muted tier */

  /* ─── Border ──────────────────────────────────────────────────────
   * Borders sit quiet — the brand prefers spacing and feather shadow to
   * define edges. #cccccc matches the input border spec from DESIGN.md
   * §Inputs; Divider Tint is the editorial row separator. */
  --border: #cccccc;         /* Mute Gray — input edges, default rule */
  --border-soft: #f3f3f3;    /* Divider Tint — quiet horizontal rule */

  /* ─── Accent ──────────────────────────────────────────────────────
   * PlayStation Blue is the immovable anchor. PlayStation Cyan lives
   * exclusively in --accent-hover — never as a resting background.
   * Active state lands on Dark Link Blue. */
  --accent: #0070cc;         /* PlayStation Blue — primary CTA / anchor */
  --accent-on: #ffffff;
  --accent-hover: #1eaedb;   /* PlayStation Cyan — hover/focus only */
  --accent-active: #0068bd;  /* Dark Link Blue — pressed state */

  /* ─── Semantic ────────────────────────────────────────────────────
   * Warning Red is the only semantic color the brand declares. Success
   * and warn ride the schema defaults — PlayStation reserves its warm
   * palette for Commerce Orange, not for semantic green/yellow. */
  --success: #16a34a;
  --warn: #eab308;
  --danger: #c81b3a;         /* Warning Red — form errors */

  /* ─── Typography ──────────────────────────────────────────────────
   * SST is Sony's proprietary global typeface. Fallback chain:
   * Arial → Helvetica → system sans. The weight 300 voice is enforced
   * at the component layer — type tokens carry sizes, not weights. */
  --font-display: "SST", "Playstation SST", Arial, Helvetica, sans-serif;
  --font-body: "SST", "Playstation SST", Arial, Helvetica, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;

  /* Type scale — DESIGN.md §3 Typography.
   * 54px hero → 12px legal microcopy. SST weight 300 occupies 22–54px;
   * body lives at 18px; mini CTAs and captions at 14px. */
  --text-xs: 12px;           /* Micro Caption — footer / legal */
  --text-sm: 14px;           /* Caption Body / Mini CTA */
  --text-base: 18px;         /* Body Relaxed — standard reading */
  --text-lg: 22px;           /* Compact Display — module titles */
  --text-xl: 28px;           /* Mid Display — section headings */
  --text-2xl: 35px;          /* Large Display — feature headlines */
  --text-3xl: 44px;          /* Hero Display L — secondary hero */
  --text-4xl: 54px;          /* Hero Display XL — biggest SST moment */

  --leading-body: 1.5;       /* Body Relaxed — 1.5 throughout reading */
  --leading-tight: 1.25;     /* Display rhythm — 1.25 on 22–54px */
  --tracking-display: -0.1px; /* 54px hero — barely-there tightening */

  /* ─── Spacing ─────────────────────────────────────────────────────
   * 8px base unit per DESIGN.md §5. Component-level micro-scale (3/6/
   * 9/10px) lives inside individual rules; the section-y tokens below
   * carry the gallery rhythm. */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;

  /* Section rhythm — gallery pace. DESIGN.md collapsing strategy:
   * 96px → 64px → 48px as the viewport narrows. */
  --section-y-desktop: 96px;
  --section-y-tablet: 64px;
  --section-y-phone: 48px;

  /* ─── Radius ──────────────────────────────────────────────────────
   * Eleven-value radius system collapsed onto the schema spine:
   *   6px  → compact buttons / inline images
   *   12px → standard game cover images & content media
   *   24px → hero cards, primary feature frames
   *   999px → full-pill primary buttons (the CTA signature)
   * Inputs override --radius-sm with their own 3px at component layer. */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 24px;
  --radius-pill: 999px;

  /* ─── Elevation ───────────────────────────────────────────────────
   * Whisper-or-shout ladder per DESIGN.md §6: shadow opacity lands on
   * 0.06 / 0.08 / 0.16 / 0.8 with no middle ground. --elev-raised
   * holds the standard 0.08 grid-tile feather. */
  --elev-flat: none;
  --elev-ring: 0 0 0 1px var(--border);
  --elev-raised: rgba(0, 0, 0, 0.08) 0 5px 9px 0; /* Feather tile lift */

  /* ─── Focus ring ──────────────────────────────────────────────────
   * 2px PlayStation Blue ring — the exact spec from DESIGN.md §Inputs
   * and §Buttons. Brand blue does focus; cyan does hover; the two
   * never overlap at rest. */
  --focus-ring: 0 0 0 2px #0070cc;

  /* ─── Motion ──────────────────────────────────────────────────────
   * 180ms is the canonical PlayStation interaction window — every
   * hover / focus / scale transition lands here. The brand's "power-
   * on" feel comes from synchronizing four properties at 180ms, not
   * from a longer duration. */
  --motion-fast: 180ms;
  --motion-base: 200ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  /* ─── Layout ──────────────────────────────────────────────────────
   * 1600px container — PlayStation explicitly tunes through 4K-TV
   * browsing contexts (breakpoints reach 2120px). Outer gutters follow
   * DESIGN.md §5: 64/32/16 from desktop to phone. */
  --container-max: 1600px;
  --container-gutter-desktop: 64px;
  --container-gutter-tablet: 32px;
  --container-gutter-phone: 16px;
}
