/* =========================================================
   Design tokens — Roxanne Mirdamadi
   Source of truth for color, type, space, motion.
   ========================================================= */

@font-face {
  font-family: "Botanica";
  /* local() lets the browser use a system-installed Botanica first.
     Falls back to the bundled .woff2/.woff for users without it locally. */
  src: local("Botanica"),
       local("Botanica-Regular"),
       local("Botanica Regular"),
       url("../fonts/botanica-webfont.woff2") format("woff2"),
       url("../fonts/botanica-webfont.woff") format("woff");
  font-weight: 100 900;      /* permissive — match any weight */
  font-style: normal;
  font-display: swap;
}

:root {
  /* ---------- Color ---------- */
  --c-ink:          #292522;   /* Black — primary text on light */
  --c-velvet:       #273e21;   /* Velvet Green — darkest brand tint */
  --c-velvet-mid:   #475b41;   /* Velvet Green mid tint */
  --c-sage:         #697963;   /* Velvet Green lightest tint */

  /* Semantic — change this single value to recolor every dark surface. */
  --c-dark:         var(--c-velvet);      /* #273e21 — official Velvet Green */
  --c-dark-text:    var(--c-paper);
  --c-blush:        #9c5d4c;   /* Dark Blush — primary accent / CTAs */
  --c-blush-dark:   #874b3c;
  --c-blush-tint:   #d9b8af;
  --c-dove:         #bab5b0;   /* Dove Gray — dividers */
  --c-dove-soft:    #d1cdca;
  --c-nude:         #e0cfc1;   /* Nude — soft surfaces */
  --c-nude-soft:    #ebe0d6;
  --c-paper:        #f7f2eb;   /* Page background — warm ivory */
  --c-white:        #ffffff;
  --c-gold:         #b8975b;   /* Accent — hairlines and arches only */
  --c-gold-light:   #d6b988;
  --c-shadow:       rgba(41, 37, 34, 0.08);

  /* Functional aliases */
  --c-bg:           var(--c-paper);
  --c-surface:      var(--c-white);
  --c-surface-dark: var(--c-velvet);
  --c-text:         var(--c-ink);
  --c-text-muted:   #6b6259;
  --c-line:         rgba(41, 37, 34, 0.12);
  --c-line-gold:    var(--c-gold);

  /* ---------- Type ---------- */
  --f-display: "Botanica", "Italiana", "Cormorant Garamond", serif;
  --f-sans:    "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono:    ui-monospace, "SF Mono", Menlo, monospace;

  /* Modular scale — desktop */
  --t-display-xl: clamp(2.25rem, 7vw + 0.25rem, 7.5rem); /* hero display — 36px@375 → 120px@1920 */
  --t-display-l:  clamp(2.75rem, 5vw, 5rem);     /* page hero */
  --t-display-m:  clamp(2rem, 3.6vw, 3.25rem);   /* section heads */
  --t-display-s:  clamp(1.5rem, 2.4vw, 2.125rem);/* sub-section */
  --t-eyebrow:    0.75rem;                       /* all-caps labels */
  --t-body-l:     1.125rem;
  --t-body:       1rem;
  --t-body-s:     0.9375rem;
  --t-caption:    0.8125rem;

  /* Tracking */
  --tracking-eyebrow: 0.22em;
  --tracking-button:  0.18em;
  --tracking-display: -0.005em;

  /* Line heights */
  --lh-tight:  1.05;
  --lh-snug:   1.2;
  --lh-body:   1.55;
  --lh-loose:  1.7;

  /* ---------- Space ---------- */
  --s-1:  4px;
  --s-2:  8px;
  --s-3:  12px;
  --s-4:  16px;
  --s-5:  24px;
  --s-6:  32px;
  --s-7:  48px;
  --s-8:  64px;
  --s-9:  96px;
  --s-10: 128px;
  --s-11: 160px;

  --section-y:    clamp(64px, 9vw, 160px);
  --container-x:  clamp(20px, 4vw, 56px);
  --container-max: 1360px;
  --container-narrow: 920px;
  --container-text: 680px;

  /* ---------- Motion ---------- */
  --ease-out:    cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --d-fast:   180ms;
  --d-base:   320ms;
  --d-slow:   620ms;
  --d-page:   900ms;

  /* ---------- Other ---------- */
  --radius-sm: 2px;
  --radius:    4px;
  --radius-lg: 0;          /* deliberate — editorial luxury favors hard edges */
  --shadow-1:  0 1px 2px var(--c-shadow);
  --shadow-2:  0 10px 40px -20px var(--c-shadow), 0 2px 8px -2px var(--c-shadow);
  --z-nav:     50;
  --z-modal:   100;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --d-fast:   0ms;
    --d-base:   0ms;
    --d-slow:   0ms;
    --d-page:   0ms;
  }
}
