/* ==========================================================================
   AUFMF design tokens
   The only file allowed to contain raw color/size primitives.
   Palette derived from the festival's own photography: step-and-repeat gold,
   the blue stage wash on award shots, the red carpet, theater darkness.
   ========================================================================== */

:root {
  /* --- surfaces: warm near-black, never pure #000 --- */
  --ink-900: #0B0907;
  --ink-800: #120E0A;
  --ink-700: #1C1611;
  --ink-600: #2A211A;

  /* --- paper: the light page surface (client direction, SFJAZZ reference).
     The hero and the filmstrip dividers stay dark and image-led; everything
     below runs on paper, the way SFJAZZ goes light for its programming. --- */
  --paper-50:  #FBF8F3;
  --paper-100: #F3EDE3;
  --paper-200: #E6DDCE;
  --paper-300: #D3C7B4;

  /* Ember at full chroma fails AA as TEXT on paper (3.14:1). These are the
     darkened variants that pass, measured not guessed. Full-chroma ember
     survives as a FILL, with near-black text on it (5.70:1). */
  --ember-ink:  #B83306;   /* 5.64:1 on paper — orange text on light */
  --gold-ink:   #9A6512;   /* 4.67:1 on paper — gold text on light */

  /* --- text --- */
  --bone-100: #F7F2EA;
  --bone-300: #C9BDAE;

  /* --- ember: the ONLY call-to-action color --- */
  --ember-500: #FF4D0D;
  --ember-600: #E23F06;
  --ember-400: #FF7A3D;

  /* --- gold: partnership + awards. Ties us to Orlando and Jacksonville --- */
  --gold-500: #E7A33C;
  --gold-300: #F2C878;

  /* --- stage blue: atmospheric depth only, never a surface fill --- */
  --stage-900: #0A1129;
  --stage-700: #0E1B3A;
  --stage-500: #1B3168;

  /* --- red carpet: accent only, never text --- */
  --carpet-500: #C4161C;

  /* --- semantic aliases: prefer these in sections.css --- */
  --bg: var(--paper-50);
  --bg-raised: var(--paper-100);
  --rule: var(--paper-200);
  --text: var(--ink-900);
  --text-muted: #3D352B;              /* 11.38:1 on paper */
  --accent: var(--ember-ink);          /* orange TEXT on light */
  --accent-fill: var(--ember-500);     /* full-chroma orange as a FILL */
  --accent-hover: var(--ember-600);
  --on-accent: var(--ink-900);         /* text on an ember fill — 5.70:1 */
  --award: var(--gold-ink);            /* gold TEXT on light */
  --award-fill: var(--gold-500);

  /* --- dark surfaces that survive the light theme: the hero, the filmstrip
     dividers, the footer. Their own text tokens come with them. --- */
  --surface-dark: var(--ink-900);
  --surface-dark-raised: var(--ink-800);
  --on-dark: var(--bone-100);
  --on-dark-muted: var(--bone-300);
  --rule-dark: var(--ink-600);
  --accent-on-dark: var(--ember-500);  /* 5.98:1 on ink */
  --award-on-dark: var(--gold-500);    /* 9.18:1 on ink */

  /* --- type families ---
     Anton is a single weight (400), condensed, no width axis: font-weight
     and font-stretch are both inert on it. Roboto is variable on wght. */
  --font-display: "Anton", Impact, "Arial Narrow Bold", sans-serif;
  --font-body: "Roboto", system-ui, -apple-system, sans-serif;

  /* --- fluid type scale --- */
  --step--1: clamp(0.80rem, 0.77rem + 0.15vw, 0.89rem);
  --step-0:  clamp(1.00rem, 0.95rem + 0.24vw, 1.13rem);
  --step-1:  clamp(1.25rem, 1.17rem + 0.39vw, 1.50rem);
  --step-2:  clamp(1.56rem, 1.44rem + 0.62vw, 2.00rem);
  --step-3:  clamp(1.95rem, 1.76rem + 0.95vw, 2.66rem);
  --step-4:  clamp(2.44rem, 2.15rem + 1.44vw, 3.55rem);
  --step-5:  clamp(3.05rem, 2.62rem + 2.15vw, 4.73rem);
  --step-6:  clamp(3.81rem, 3.17rem + 3.19vw, 6.31rem);
  --step-7:  clamp(4.77rem, 3.83rem + 4.68vw, 8.41rem);
  /* Anton is condensed and reads taller per line than Archivo did: the hero
     title is re-tuned against viewport HEIGHT (the binding constraint at
     1440x667) rather than width, so three stacked lines plus the kicker and
     CTA always fit above the fold. Re-verify at 1440x667/820/1000/390x844
     after any change here. */
  --step-hero: clamp(2.15rem, min(9vw, 7vh), 7rem);

  /* --- fluid spacing --- */
  --space-3xs: clamp(0.25rem, 0.24rem + 0.06vw, 0.31rem);
  --space-2xs: clamp(0.50rem, 0.48rem + 0.12vw, 0.63rem);
  --space-xs:  clamp(0.75rem, 0.71rem + 0.18vw, 0.94rem);
  --space-s:   clamp(1.00rem, 0.95rem + 0.24vw, 1.13rem);
  --space-m:   clamp(1.50rem, 1.43rem + 0.37vw, 1.69rem);
  --space-l:   clamp(2.00rem, 1.90rem + 0.49vw, 2.25rem);
  --space-xl:  clamp(3.00rem, 2.85rem + 0.73vw, 3.38rem);
  --space-2xl: clamp(4.00rem, 3.80rem + 0.98vw, 4.50rem);
  --space-3xl: clamp(6.00rem, 5.51rem + 2.44vw, 9.00rem);

  /* --- corner radius --- */
  --radius: 0.5rem;
  --radius-sm: 0.25rem;

  /* --- layout --- */
  --measure: 62ch;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --max-width: 90rem;

  /* --- motion. Never ease-in-out. --- */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-quint: cubic-bezier(0.83, 0, 0.17, 1);
  --dur-fast: 260ms;
  --dur-base: 620ms;
  --dur-slow: 1100ms;
  --dur-slower: 1600ms;
  --dur-intro: 2s;
  --dur-ambient: 28s;
  /* --- hero filmstrip loop speeds: three different rates so the strips
     read as independent parallax bands, not one sliding photo wall --- */
  --dur-hero-cycle: 21s;   /* three festival photographs, 7s each */
  --dur-strip-fast: 30s;
  --dur-strip-mid: 46s;
  --dur-strip-slow: 64s;

  /* --- depth --- */
  --z-grain: 9000;
  --z-cursor: 9500;
  --z-skip: 9500;
  --z-nav: 8000;
  --z-preload: 9900;

  /* --- translucent scrims for text over photographs --- */
  --scrim-ink: color-mix(in srgb, var(--ink-900) 72%, transparent);
  --scrim-stage: color-mix(in srgb, var(--stage-900) 60%, transparent);
}
