/* =============================================================
   Sunday Polish — design tokens
   Shared foundation. Owned by the core-build agent; the builder
   agent consumes these and must not redefine them.
   ============================================================= */

:root {
  /* --- brand ------------------------------------------------
     Sampled directly from logo-wordmark.png. Do not drift. */
  --sp-coral:        #EF7D8D;
  --sp-coral-deep:   #D45F71;
  --sp-coral-soft:   #F9C4CB;
  --sp-coral-wash:   #FDE7EA;
  --sp-lilac:        #9A78BE;
  --sp-lilac-deep:   #7B5AA0;
  --sp-lilac-soft:   #D3C3E6;
  --sp-lilac-wash:   #EDE6F5;

  /* --- surfaces --------------------------------------------- */
  --sp-cream:        #FDF5E9;
  --sp-cream-2:      #F7E9DA;
  --sp-paper:        #FFFDFA;
  --sp-ink:          #1A1418;
  --sp-ink-2:        #4A3F46;
  --sp-muted:        #857782;
  --sp-line:         #E7DACB;
  --sp-line-soft:    #F0E5D8;

  /* --- semantic --------------------------------------------- */
  --sp-bg:           var(--sp-cream);
  --sp-fg:           var(--sp-ink);
  --sp-accent:       var(--sp-coral);
  --sp-accent-2:     var(--sp-lilac);
  --sp-ok:           #3E8E6E;
  --sp-warn:         #C4643C;

  /* --- type ------------------------------------------------- */
  --sp-font-display: 'Chewy', 'Baloo 2', 'Fredoka', system-ui, sans-serif;
  --sp-font-body:    'Poppins', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --sp-font-mono:    ui-monospace, 'SFMono-Regular', Menlo, monospace;

  --sp-t-xs:  0.75rem;
  --sp-t-sm:  0.875rem;
  --sp-t-md:  1rem;
  --sp-t-lg:  1.125rem;
  --sp-t-xl:  1.375rem;
  --sp-t-2xl: clamp(1.6rem, 1.1rem + 1.6vw, 2.25rem);
  --sp-t-3xl: clamp(2.1rem, 1.3rem + 3.2vw, 3.4rem);
  --sp-t-4xl: clamp(2.8rem, 1.2rem + 6.2vw, 6.75rem);

  --sp-lh-tight: 1.05;
  --sp-lh-snug:  1.25;
  --sp-lh-body:  1.65;
  --sp-track-wide: 0.12em;

  /* --- space (8pt) ------------------------------------------ */
  --sp-1: 0.25rem; --sp-2: 0.5rem;  --sp-3: 0.75rem; --sp-4: 1rem;
  --sp-5: 1.5rem;  --sp-6: 2rem;    --sp-7: 3rem;    --sp-8: 4rem;
  --sp-9: 6rem;    --sp-10: 8rem;

  --sp-gutter: clamp(1.25rem, 3.5vw, 4rem);
  /* Wide enough to use a 1440-1920 screen properly. The old 1240 left
     ~330px of dead margin either side on a 1900px display. */
  --sp-max: 1440px;
  --sp-max-wide: 1720px;
  --sp-max-narrow: 760px;

  /* --- radii / shadow --------------------------------------- */
  --sp-r-sm: 10px;
  --sp-r-md: 18px;
  --sp-r-lg: 28px;
  --sp-r-xl: 40px;
  --sp-r-pill: 999px;

  --sp-shadow-1: 0 1px 2px rgba(26,20,24,.05), 0 2px 8px rgba(26,20,24,.05);
  --sp-shadow-2: 0 4px 12px rgba(26,20,24,.07), 0 12px 32px rgba(26,20,24,.07);
  --sp-shadow-3: 0 10px 24px rgba(26,20,24,.10), 0 30px 70px rgba(26,20,24,.12);
  --sp-shadow-pop: 0 6px 0 var(--sp-ink);

  /* --- motion ----------------------------------------------- */
  --sp-ease:      cubic-bezier(.22,.61,.36,1);
  --sp-ease-out:  cubic-bezier(.16,1,.3,1);
  --sp-spring:    cubic-bezier(.34,1.56,.64,1);
  --sp-dur-fast:  140ms;
  --sp-dur:       260ms;
  --sp-dur-slow:  520ms;

  /* --- layers ----------------------------------------------- */
  --sp-z-header: 80;
  --sp-z-drawer: 120;
  --sp-z-modal:  140;
  --sp-z-toast:  160;
}

@media (prefers-reduced-motion: reduce) {
  :root { --sp-dur-fast: 1ms; --sp-dur: 1ms; --sp-dur-slow: 1ms; }
  *, *::before, *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
    scroll-behavior: auto !important;
  }
}
