/* ==========================================================================
   izzit — Colors & Type
   --------------------------------------------------------------------------
   Source-of-truth design tokens, extracted from the iOS DesignSystem.swift /
   AdaptiveTypography.swift / Theme.kt files in the izzit codebase.

   The shipping iOS / Android apps use platform system fonts. For HTML mocks
   and the marketing site we use the izzit two-font web stack:

     • Bricolage Grotesque → display + body + UI (was -apple-system / Roboto)
     • JetBrains Mono      → logo wordmark + meta (timestamps, counters)

   These are loaded from Google Fonts here. Native apps still use system
   stacks; the role mapping is consistent so designs read the same.
   See README.md → Visual Foundations → Typography for the full rationale.
   ========================================================================== */
@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,300..800&family=JetBrains+Mono:wght@400;500;700;800&display=swap");

/* -------------------------------------------------------------------------- */
/* 1. Color Tokens                                                            */
/* -------------------------------------------------------------------------- */
:root {
  /* --- Brand ------------------------------------------------------------- */
  --izz-coral:        #FF6B6B;   /* Brand Primary — "izz", buttons, headlines */
  --izz-teal:         #4ECDC4;   /* Brand Secondary — "it", sparkle, accents  */
  --izz-cream:        #FFF4E6;   /* Brand Background — warm page tint         */

  /* --- Surfaces ---------------------------------------------------------- */
  --izz-surface-cream:    #FFF8F0;  /* Elevated surfaces                     */
  --izz-bg-warm:          #FFFDF9;  /* Page bg                               */
  --izz-canvas-white:     #FFFFFF;  /* Drawing canvas                        */
  --izz-card-bg:          #FAF1E8;  /* UI card                               */
  --izz-system-bg:        #FFFFFF;  /* Fallback                              */

  /* --- Text -------------------------------------------------------------- */
  --izz-fg:           #1C1B1F;   /* primary text                              */
  --izz-fg-secondary: rgba(28, 27, 31, 0.60);
  --izz-fg-tertiary:  rgba(28, 27, 31, 0.40);
  --izz-fg-on-coral:  #FFFFFF;
  --izz-fg-on-teal:   #FFFFFF;

  /* --- Achievement / Tier ----------------------------------------------- */
  --izz-gold:         #FFD700;
  --izz-gold-secondary: #FFA500;
  --izz-gold-accent:    #FFEB3B;
  --izz-gold-shimmer:   #FFF5CD;
  --izz-gold-placard:   #FFBE00;

  --izz-silver:           #C0C0C0;       /* iOS — neutral gray            */
  --izz-silver-android:   #B3C7DE;       /* Android — cooler blue-silver  */
  --izz-silver-secondary: #738CAE;
  --izz-silver-accent:    #D1DEEB;
  --izz-silver-shimmer:   #EBF2FA;
  --izz-silver-placard:   #93A9C6;

  --izz-bronze:           #CD7F32;
  --izz-bronze-secondary: #8B4513;
  --izz-bronze-accent:    #E79A50;
  --izz-bronze-shimmer:   #EEBB8A;
  --izz-bronze-placard:   #AC6223;

  --izz-mystery:          #8C4060;       /* AI-stumped tier */
  --izz-mystery-primary:  #A64D73;
  --izz-mystery-secondary:#73334D;
  --izz-mystery-accent:   #CC8099;
  --izz-mystery-shimmer:  #E6BFCC;

  --izz-diamond:          #B9E2F2;       /* Shiny / rare tier (light blue) */

  /* --- Streak ----------------------------------------------------------- */
  --izz-streak:           #FFA500;
  --izz-streak-android:   #FF8C00;

  /* --- Semantic --------------------------------------------------------- */
  --izz-success:      #31C74C;
  --izz-warning:      #FF9500;
  --izz-error:        #EA3B3A;

  /* --- Drawing palette (FIXED — does not adapt to dark mode) ----------- */
  --izz-draw-black:   #000000;
  --izz-draw-red:     #FF0000;
  --izz-draw-blue:    #0000FF;
  --izz-draw-yellow:  #FFFF00;
  --izz-draw-brown:   #663300;
  --izz-draw-green:   #009900;

  /* --- Borders & overlays ---------------------------------------------- */
  --izz-border:           rgba(28, 27, 31, 0.10);
  --izz-border-strong:    rgba(28, 27, 31, 0.20);
  --izz-canvas-frame:     rgba(255, 255, 255, 0.7);  /* on dark previews */
  --izz-canvas-frame-ink: #B3B3B3;                   /* white(0.7) on light */

  /* --- Shadows ---------------------------------------------------------- */
  --izz-shadow-card:        0 10px 20px rgba(0, 0, 0, 0.08);
  --izz-shadow-button:      0 5px 10px rgba(255, 107, 107, 0.30);
  --izz-shadow-trading:     0 4px 12px rgba(0, 0, 0, 0.30);

  /* --- Gradients -------------------------------------------------------- */
  --izz-gradient-brand:     linear-gradient(90deg, var(--izz-coral) 0%, var(--izz-teal) 100%);
  --izz-gradient-streak:    linear-gradient(180deg, #FFA500 0%, #FF3B30 100%);
  --izz-gradient-page:      linear-gradient(180deg, var(--izz-cream) 0%, rgba(255,244,230,0.8) 50%, #FFFFFF 100%);
  --izz-gradient-gold:      linear-gradient(135deg, var(--izz-gold-shimmer) 0%, var(--izz-gold) 50%, var(--izz-gold-secondary) 100%);
  --izz-gradient-silver:    linear-gradient(135deg, var(--izz-silver-shimmer) 0%, var(--izz-silver-android) 50%, var(--izz-silver-secondary) 100%);
  --izz-gradient-bronze:    linear-gradient(135deg, var(--izz-bronze-shimmer) 0%, var(--izz-bronze) 50%, var(--izz-bronze-secondary) 100%);
  --izz-gradient-mystery:   linear-gradient(135deg, var(--izz-mystery-shimmer) 0%, var(--izz-mystery-primary) 50%, var(--izz-mystery-secondary) 100%);

  /* --- Spacing scale --------------------------------------------------- */
  --izz-space-xs:     4px;
  --izz-space-s:      8px;
  --izz-space-m:      12px;
  --izz-space-base:   16px;
  --izz-space-l:      24px;
  --izz-space-xl:     32px;
  --izz-space-xxl:    48px;

  /* --- Corner radii ---------------------------------------------------- */
  --izz-radius-s:     4px;
  --izz-radius-m:     8px;
  --izz-radius-l:     12px;
  --izz-radius-xl:    16px;
  --izz-radius-xxl:   24px;
  --izz-radius-pill:  50px;

  /* --- Typography ------------------------------------------------------- */
  /* Two-font system (Option G):                                          */
  /*   sans  — Bricolage Grotesque — display, body, all UI                */
  /*   mono  — JetBrains Mono       — logo wordmark + meta (timestamps,   */
  /*                                    counters, version strings, etc.)  */
  /* The legacy --izz-font-rounded alias points at sans now, so any old   */
  /* references keep working without a visual jolt.                       */
  --izz-font-sans:    "Bricolage Grotesque", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --izz-font-mono:    "JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;
  --izz-font-rounded: var(--izz-font-sans);  /* deprecated alias — prefer --izz-font-sans */

  --izz-weight-regular:   400;
  --izz-weight-medium:    500;
  --izz-weight-semibold:  600;
  --izz-weight-bold:      700;
  --izz-weight-black:     900;

  /* --- Animation timings ----------------------------------------------- */
  --izz-spring-standard:  cubic-bezier(0.32, 0.72, 0.30, 1.0);
  --izz-spring-quick:     cubic-bezier(0.30, 0.80, 0.30, 1.0);
  --izz-ease-out:         cubic-bezier(0.16, 1, 0.30, 1);
  --izz-press-scale:      0.95;
}

/* The marketing site forces the warm light theme regardless of the user's
   OS dark-mode preference (see comment in index.html / privacy / support).
   Most page sections hardcode white card backgrounds and warm cream tints
   that don't have dark counterparts — flipping the tokens only inverts
   half the page. The dark-mode block is preserved here as a comment for
   when a proper dark-mode redesign happens.

   When that day comes: every #fff / #1c1b1f / rgba(255,253,249,...) /
   rgba(28,27,31,...) literal in index.html / privacy/index.html /
   support/index.html needs to migrate to a token, and the warm gradients
   in `.hero::before`, `.tiers .t-card-back`, `.cta-ticket`, the marquee,
   and the privacy section need dark variants. Once that work is done,
   restore this media query and drop the `color-scheme: light` overrides
   in the page <style> blocks.

@media (prefers-color-scheme: dark) {
  :root {
    --izz-coral:        #FF8080;
    --izz-teal:         #66D9D1;
    --izz-cream:        #1A1A1A;

    --izz-surface-cream:    #2C2520;
    --izz-bg-warm:          #1A1A1A;
    --izz-canvas-white:     #2E2E2E;
    --izz-card-bg:          #242424;
    --izz-system-bg:        #1C1B1F;

    --izz-fg:               #E6E1E5;
    --izz-fg-secondary:     rgba(230, 225, 229, 0.65);
    --izz-fg-tertiary:      rgba(230, 225, 229, 0.40);

    --izz-streak:           #FFB319;
    --izz-success:          #4DD166;
    --izz-warning:          #FFA633;
    --izz-error:            #FF594D;

    --izz-border:           rgba(230, 225, 229, 0.12);
    --izz-border-strong:    rgba(230, 225, 229, 0.22);

    --izz-shadow-card:      0 10px 20px rgba(0, 0, 0, 0.40);
  }
}
*/

/* -------------------------------------------------------------------------- */
/* 2. Semantic typography styles                                              */
/* These mirror AdaptiveTypography.swift's roles. Sizes use the iPhone        */
/* "compact" base; the iPad "regular" pair lives in the comments.             */
/* -------------------------------------------------------------------------- */

.izz-display-large {           /* iPad: 64px — reserved for the logo wordmark + numeric badges */
  font-family: var(--izz-font-mono);
  font-size: 48px;
  font-weight: var(--izz-weight-black);
  letter-spacing: -0.03em;
  line-height: 1.0;
}

.izz-display-medium {          /* iPad: 48px — drawing word display, hero headlines */
  font-family: var(--izz-font-sans);
  font-size: 36px;
  font-weight: var(--izz-weight-bold);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.izz-word-preview {            /* iPad: 40px — Today's word */
  font-family: var(--izz-font-sans);
  font-size: 32px;
  font-weight: var(--izz-weight-bold);
  letter-spacing: 0.04em;
  line-height: 1.1;
}

.izz-streak-number {           /* iPad: 56px */
  font-family: var(--izz-font-sans);
  font-size: 42px;
  font-weight: var(--izz-weight-black);
  line-height: 1.0;
}

.izz-title       { font-family: var(--izz-font-sans); font-size: 28px; font-weight: 700; line-height: 1.2; }
.izz-title-2     { font-family: var(--izz-font-sans); font-size: 22px; font-weight: 700; line-height: 1.25; }
.izz-headline    { font-family: var(--izz-font-sans); font-size: 17px; font-weight: 600; line-height: 1.3; }
.izz-body        { font-family: var(--izz-font-sans); font-size: 17px; font-weight: 400; line-height: 1.45; }
.izz-subheadline { font-family: var(--izz-font-sans); font-size: 15px; font-weight: 500; line-height: 1.35; }
.izz-callout     { font-family: var(--izz-font-sans); font-size: 16px; font-weight: 400; line-height: 1.4; }
.izz-caption     { font-family: var(--izz-font-sans); font-size: 12px; font-weight: 500; line-height: 1.3; letter-spacing: 0.06em; text-transform: uppercase; color: var(--izz-fg-secondary); }
.izz-caption-2   { font-family: var(--izz-font-sans); font-size: 11px; font-weight: 400; line-height: 1.3; color: var(--izz-fg-secondary); }

/* Tagline kerning override */
.izz-tagline {
  font-family: var(--izz-font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--izz-fg-secondary);
}

/* Trading-card tier banner */
.izz-tier-banner {
  font-family: var(--izz-font-sans);
  font-weight: var(--izz-weight-black);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
