/* ============================================================================
   ARUM — Design tokens
   Single source of truth for colour, type, space and motion.
   Values transcribed from the design handoff (design_handoff_arum_site/README.md).

   Sizes are expressed in rem so the layout scales with the reader's browser
   font-size setting (the web's equivalent of Dynamic Type). At the default
   root size of 16px every value below resolves to the exact px in the spec.
   ========================================================================= */

:root {
  /* ---- Colour -------------------------------------------------------- */
  --plum: #472A3E;              /* header, footer, headings, primary buttons */
  --plum-deep: #3E2235;         /* hero gradient midpoint                    */
  --accent: #B74B41;            /* eyebrows, links, pull-quotes              */
  --accent-hover: #C9584D;      /* all primary button hovers                 */
  --sage: #A4BE91;              /* 2px rule beside the Korean-word note      */
  --jade: #CADDBF;              /* reserved                                  */
  --jade-wash: rgba(202, 221, 191, .28); /* service row hover                */

  --hanji: #FFFFFF;
  --shell: #F7F3EF;             /* body base, mobile menu panel              */
  --surface: #FAFAFA;           /* About / Services / Contact / Philosophy   */
  --ink: #2E2028;               /* default text                              */
  --muted: #6B5A62;             /* body paragraphs                           */
  --micro: #9C8B92;             /* form + contact micro-labels               */
  --placeholder: #A5959C;

  --on-plum: #F3E9EC;           /* footer text                               */
  --on-plum-strong: #FBF6F3;    /* wordmarks                                 */
  --on-plum-soft: rgba(243, 233, 236, .82);
  --on-plum-quiet: rgba(243, 233, 236, .55);
  --on-plum-faint: rgba(243, 233, 236, .40);
  --on-plum-link-hover: #E8A9A1;

  --hairline: rgba(71, 42, 62, .15);       /* section + row dividers         */
  --hairline-soft: rgba(71, 42, 62, .13);  /* philosophy pillar gaps         */
  --hairline-faint: rgba(71, 42, 62, .12); /* image placeholder border       */
  --hairline-contact: rgba(71, 42, 62, .14);
  --field-line: rgba(71, 42, 62, .25);
  --footer-rule: rgba(243, 233, 236, .14);

  --danger: #A63A2E;            /* inline form validation                    */

  --hero-gradient: linear-gradient(180deg, var(--plum), var(--plum-deep), var(--surface));
  --hero-cta-bg: rgba(71, 42, 62, .74); /* #472A3EBC */

  /* ---- Type ---------------------------------------------------------- */
  --font-display: 'TT Ricordi Allegria', 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Lora', Georgia, serif;
  --font-mono: ui-monospace, Menlo, Consolas, monospace;

  --size-hero: clamp(4rem, 15vw, 11.875rem);        /*  64 → 190 */
  --size-h2: clamp(2.125rem, 4.8vw, 3.5rem);        /*  34 →  56 */
  --size-h2-contact: clamp(2.25rem, 5vw, 3.625rem); /*  36 →  58 */
  --size-h2-philosophy: clamp(2.25rem, 5.4vw, 3.875rem); /* 36 → 62 */
  --size-h3-service: clamp(1.5rem, 2.6vw, 1.875rem);/*  24 →  30 */
  --size-h3-pillar: clamp(1.625rem, 3.2vw, 2.25rem);/*  26 →  36 */
  --size-quote: clamp(1.625rem, 3.6vw, 2.625rem);   /*  26 →  42 */
  --size-quote-sm: clamp(1.5rem, 3.4vw, 2.375rem);  /*  24 →  38 */
  --size-footer-mark: clamp(2.75rem, 7vw, 4.75rem); /*  44 →  76 */
  --size-body: 1rem;                                /*  16 */
  --size-body-service: .96875rem;                   /*  15.5 */
  --size-body-intro: 1.0625rem;                     /*  17 */
  --size-eyebrow: .6875rem;                         /*  11 */
  --size-micro: .625rem;                            /*  10 */
  --size-nav: .75rem;                               /*  12 */

  /* Tracking is size-specific — never one value for every size. */
  --track-wordmark: .1em;
  --track-logo: .34em;
  --track-footer-mark: .14em;
  --track-eyebrow: .28em;
  --track-micro: .24em;
  --track-nav: .16em;
  --track-button: .2em;
  --track-number: .2em;

  --leading-display: 1.14;
  --leading-body: 2.05;

  /* ---- Space & layout ------------------------------------------------ */
  --page-pad: 1.75rem;                              /*  28 */
  --header-h: 4rem;                                 /*  64 */
  --measure: 68.75rem;                              /* 1100 */
  --measure-header: 75rem;                          /* 1200 */
  --measure-pillars: 62.5rem;                       /* 1000 */
  --measure-prose: 47.5rem;                         /*  760 */

  --section-y: clamp(5.625rem, 12vw, 9.375rem);     /*  90 → 150 */
  --section-y-philosophy: clamp(6.25rem, 13vw, 10.625rem); /* 100 → 170 */
  --gap-about: clamp(2.5rem, 6vw, 5rem);            /*  40 →  80 */
  --gap-services: clamp(1.75rem, 6vw, 5rem);        /*  28 →  80 */
  --gap-contact: clamp(2.875rem, 7vw, 5.625rem);    /*  46 →  90 */

  --radius: 2px;                                    /* buttons only         */

  /* ---- Motion --------------------------------------------------------
     Durations/easings marked (spec) are fixed by the handoff. The spring
     constants below follow Apple's damping-ratio + response model:
     damping 1.0 = critically damped (no overshoot), lower = bouncier;
     response = how quickly the value reaches the target, in seconds.
     ------------------------------------------------------------------- */
  --ease-reveal: cubic-bezier(.2, .7, .3, 1);       /* (spec) */
  --ease-hero: cubic-bezier(.25, .6, .3, 1);        /* (spec) */
  --dur-reveal: .9s;                                /* (spec) */
  --dur-hero-in: 2.4s;                              /* (spec) */
  --dur-hover: .3s;                                 /* (spec) */
  --dur-row: .35s;                                  /* (spec) */
  --dur-header: .4s;                                /* (spec) */
  --dur-press: 100ms;    /* pointer-down feedback — must feel instant      */

  --header-shadow: 0 1px 0 rgba(0, 0, 0, .18);      /* (spec) once scrolled */
}
