/* ============================================================
   Dipped by Lisha — tokens.css
   Bubblegum Boardwalk (locked per build brief §4)
   ============================================================ */
:root {
  /* Palette — LOCKED */
  --color-primary:      #FF3E7F;  /* hot pink — the only CTA colour */
  --color-bg:           #FFF6ED;  /* warm cream — page ground */
  --color-primary-deep: #B91848;  /* deep berry — hovers, eyebrows, utility */
  --color-accent:       #FFC93C;  /* sunny yellow — signature swipe + rare badges */
  --color-ink:          #2A1520;  /* near-black plum — body text, dark surfaces */

  /* Derived system tokens (named, referenced, never inlined) */
  --color-paper:        #FFFFFF;  /* card surfaces */
  --color-cream-deep:   #FBE9D7;  /* alternate band / footer tint */
  --color-cream-soft:   #FFFBF5;  /* raised cream surface */
  --color-ink-soft:     #5C4753;  /* muted body text on cream */
  --color-ink-faint:    #7A6470;  /* captions, meta (5.1:1 on cream) */
  --color-rule:         #F0D9C2;  /* hairlines on cream */
  --color-pink-soft:    #FFD9E6;  /* pink tint chip bg */
  --color-pink-mid:     #FF8FB5;  /* decorative pink tints on dark */
  --color-focus:        #B91848;  /* focus ring (berry, 3:1+ on cream) */
  --color-error:        #C32B2B;  /* form errors */

  /* On-dark text ramp (cream → pink tints for use on --color-ink / scrims) */
  --color-on-dark:      #FFE9D6;  /* primary text on photo scrims */
  --color-on-dark-soft: #F3DFEA;  /* body copy on dark bands */
  --color-on-dark-chip: #FFD3E3;  /* chip text on dark bands */
  --color-on-dark-note: #FFD9E6;  /* notes on pink fills */
  --color-on-dark-link: #E8CBD9;  /* footer links */

  /* Scrim + shadow composites (transparency modifiers, per color.md) */
  --scrim-hero: linear-gradient(180deg, rgba(42,21,32,0) 30%, rgba(42,21,32,0.44) 62%, rgba(42,21,32,0.82) 100%);
  --scrim-page: linear-gradient(180deg, rgba(42,21,32,0) 34%, rgba(42,21,32,0.42) 64%, rgba(42,21,32,0.84) 100%);
  --scrim-hero-deep: linear-gradient(105deg, rgba(42,21,32,0.84) 0%, rgba(42,21,32,0.62) 42%, rgba(42,21,32,0.18) 72%, rgba(42,21,32,0) 100%);
  --scrim-page-deep: linear-gradient(105deg, rgba(42,21,32,0.84) 0%, rgba(42,21,32,0.60) 44%, rgba(42,21,32,0.20) 74%, rgba(42,21,32,0) 100%);
  --text-shadow-hero: 0 2px 24px rgba(42,21,32,0.35);

  /* Typography — LOCKED */
  --font-display: "Fredoka", ui-rounded, system-ui, sans-serif;  /* weight 700 */
  --font-body:    "Inter", system-ui, sans-serif;                /* 400 / 500 */

  /* Type scale — major third from 16px */
  --text-xs:   0.64rem;
  --text-sm:   0.8rem;
  --text-base: 1rem;
  --text-md:   1.25rem;
  --text-lg:   1.5625rem;
  --text-xl:   1.9531rem;
  --text-2xl:  2.4414rem;
  --text-3xl:  3.0518rem;
  --text-display: clamp(2.6rem, 6vw + 1rem, 5.25rem);
  --text-display-s: clamp(2rem, 4vw + 1rem, 3.4rem);

  /* Spacing — 4pt scale */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;

  /* Radius — playful, ≤12px on cards */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-pill: 999px;

  /* Motion — named easings/durations only */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:  cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long:  420ms;

  /* Depth */
  --shadow-whisper: 0 8px 24px -10px rgba(185, 24, 72, 0.18);
  --shadow-lift:    0 14px 34px -12px rgba(185, 24, 72, 0.26);

  /* Z scale */
  --z-base: 1;
  --z-raised: 10;
  --z-sticky: 200;
  --z-sticky-nav: 300;
  --z-modal: 400;
}
