/* ============================================================
   ORLANDO PIRATES FC — Design Tokens
   Direction: "The Ghost" — black ground dominant, white linework.
   GOLD = prestige/honours (scarce). RED = live/CTA (scarce).
   Tokens are the single source of design truth. Never inline values.
   ============================================================ */

:root {
  /* ---- CORE GROUND & LINEWORK ---- */
  --color-black: #000000;
  --color-pitch: #0A0A0A;
  --color-surface-1: #111111;
  --color-surface-2: #1A1A1A;
  --color-white: #FFFFFF;
  --color-white-dim: #E8E8E8;
  --color-white-ghost: rgba(255, 255, 255, 0.08);

  /* ---- SCARCE SIGNIFIERS (use deliberately, never as decoration) ---- */
  --color-red: #EE362F;        /* LIVE / primary CTA only */
  --color-red-deep: #C42020;
  --color-gold: #D4B84A;       /* PRESTIGE / honours only */
  --color-gold-bright: #F0D060;
  --color-maroon: #7A2E24;     /* crest secondary */

  /* ---- FUNCTIONAL ---- */
  --color-border: rgba(255, 255, 255, 0.12);
  --color-border-strong: rgba(255, 255, 255, 0.22);
  --color-border-gold: rgba(212, 184, 74, 0.35);
  --color-ink-dim: rgba(255, 255, 255, 0.45);
  --color-ink-faint: rgba(255, 255, 255, 0.28);
  --color-scrim: rgba(0, 0, 0, 0.72);
  --color-scrim-soft: rgba(0, 0, 0, 0.45);

  /* ---- TYPE FAMILIES ---- */
  --font-display: 'Bebas Neue', 'Oswald', 'Arial Narrow', sans-serif;
  --font-sub: 'Oswald', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow Condensed', 'DIN Pro', 'Roboto Condensed', sans-serif;

  /* ---- TYPE SCALE (fluid, mobile-first) ---- */
  --text-hero: clamp(2.85rem, 11.5vw, 9rem);
  --text-display: clamp(2.5rem, 8vw, 5.5rem);
  --text-h2: clamp(1.9rem, 5vw, 3.25rem);
  --text-h3: clamp(1.35rem, 3vw, 1.9rem);
  --text-lead: clamp(1.05rem, 2.2vw, 1.35rem);
  --text-body: 1.0625rem;
  --text-small: 0.9375rem;
  --text-eyebrow: 0.875rem;    /* 14px floor for readable labels */
  --text-mono-num: clamp(2.25rem, 6vw, 4rem);

  /* ---- TYPE TREATMENT ---- */
  --tracking-hero: 0.01em;
  --tracking-eyebrow: 0.32em;
  --tracking-sub: 0.16em;
  --leading-tight: 0.92;
  --leading-snug: 1.15;
  --leading-body: 1.5;

  /* ---- MOTION ---- */
  --ease-ghost: cubic-bezier(0.22, 1, 0.36, 1); /* slow-in / fast-out */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 180ms;
  --duration-base: 280ms;
  --duration-slow: 500ms;
  --duration-cinematic: 900ms;

  /* ---- LAYOUT ---- */
  --container-max: 1280px;
  --container-wide: 1560px;
  --container-gutter: clamp(1.25rem, 4vw, 3rem);
  --section-gap: clamp(4.5rem, 10vw, 9rem);

  /* ---- DEPTH ---- */
  --shadow-gold-glow: 0 0 24px rgba(212, 184, 74, 0.25);
  --shadow-red-glow: 0 0 16px rgba(238, 54, 47, 0.35);
  --shadow-card: 0 24px 60px -24px rgba(0, 0, 0, 0.9);
  --shadow-card-lift: 0 40px 90px -30px rgba(0, 0, 0, 0.95);

  /* ---- RADII ---- */
  --radius-card: 4px;
  --radius-pill: 999px;

  /* ---- Z-INDEX ---- */
  --z-nav: 100;
  --z-overlay: 200;

  /* ---- CREST MASK ASSET (the structural move — real club mark) ---- */
  --crest-mark: url("assets/crest.svg");
}

/* ============================================================
   LIGHT MODE — explicit toggle only (localStorage `op-theme`).
   Default is dark; light is opt-in. Warm off-white ground,
   near-black ink, hairlines inverted. Red + gold stay scarce
   and are darkened just enough to stay legible on light paper.
   Every token the dark theme reads is overridden here, so every
   existing surface re-skins without per-component edits.
   ============================================================ */
body.light {
  /* ---- ground & linework (inverted) ---- */
  --color-black: #F4F1EA;        /* warm off-white paper = the new ground */
  --color-pitch: #ECE8DE;        /* recessed surface */
  --color-surface-1: #E3DED1;    /* lifted surface */
  --color-surface-2: #D8D2C2;    /* highest lift */
  --color-white: #15140F;        /* near-black ink (primary text) */
  --color-white-dim: #2C2A22;    /* secondary ink */
  --color-white-ghost: rgba(21, 20, 15, 0.06);

  /* ---- scarce signifiers — darkened for contrast on paper ---- */
  --color-red: #C81E16;          /* deeper red so it reads on light */
  --color-red-deep: #A2120C;
  --color-gold: #8A6D12;         /* prestige gold goes bronze-dark on light */
  --color-gold-bright: #6E5510;  /* focus ring + on-light gold text */
  --color-maroon: #7A2E24;

  /* ---- functional ---- */
  --color-border: rgba(21, 20, 15, 0.14);
  --color-border-strong: rgba(21, 20, 15, 0.30);
  --color-border-gold: rgba(138, 109, 18, 0.45);
  --color-ink-dim: rgba(21, 20, 15, 0.62);
  --color-ink-faint: rgba(21, 20, 15, 0.45);
  --color-scrim: rgba(0, 0, 0, 0.55);
  --color-scrim-soft: rgba(0, 0, 0, 0.30);

  /* ---- depth: softer, warmer shadows on paper ---- */
  --shadow-gold-glow: 0 0 20px rgba(138, 109, 18, 0.22);
  --shadow-red-glow: 0 0 14px rgba(200, 30, 22, 0.28);
  --shadow-card: 0 22px 50px -26px rgba(40, 34, 14, 0.40);
  --shadow-card-lift: 0 36px 80px -32px rgba(40, 34, 14, 0.48);
}
/* light theme-colour for the browser chrome */
body.light { background: var(--color-black); }

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 1ms;
    --duration-base: 1ms;
    --duration-slow: 1ms;
    --duration-cinematic: 1ms;
  }
}
