/* Hallmark · tokens — Aera landing page (custom theme)
 * theme: custom · vibe: "warm, human, calm, trustworthy"
 * paper: oklch(97% 0.010 80) · accent: oklch(50% 0.14 248)
 * display: Fraunces · body: SF Rounded · axes: light / roman-serif / cool-blue
 * Portable design system — page CSS references these by name only. */

:root{
  /* ---- colour ---- */
  --color-paper:        oklch(97%   0.010 80);   /* warm porcelain field */
  --color-paper-2:      oklch(94.5% 0.013 78);   /* card / elevation */
  --color-paper-3:      oklch(91.5% 0.016 75);   /* tinted band */
  --color-ink:          oklch(27%   0.016 65);   /* warm near-black */
  --color-ink-2:        oklch(42%   0.014 66);   /* body secondary */
  --color-muted:        oklch(47%   0.014 67);   /* small / label text */
  --color-rule:         oklch(86%   0.012 76);   /* hairline */
  --color-rule-2:       oklch(90%   0.009 76);   /* fainter hairline */
  --color-accent:       oklch(50%   0.14  248);  /* Aera blue */
  --color-accent-deep:  oklch(44%   0.13  250);  /* CTA depth */
  --color-accent-soft:  oklch(93%   0.030 248);  /* soft blue wash */
  --color-accent-ink:   oklch(98%   0.008 80);   /* warm white on blue */
  --color-focus:        oklch(52%   0.19  248);  /* instant focus ring */
  --color-ink-block:    oklch(26%   0.020 64);   /* warm-dark panel */
  --color-ink-block-2:  oklch(31%   0.022 62);   /* panel gradient stop */
  --color-on-block:     oklch(95%   0.010 80);   /* text on warm-dark */
  --color-on-block-2:   oklch(80%   0.014 78);   /* secondary on warm-dark */
  --color-accent-on-block: oklch(78% 0.10 248);  /* blue that reads on dark */
  --color-nav-bg:       oklch(97%   0.010 80 / 0.82);  /* translucent nav */
  --color-badge-glow:   oklch(40%   0.05  70 / 0.24);  /* badge hover drop-shadow */

  /* device frame (cool aluminium) */
  --color-device-1:     oklch(33%   0.006 270);
  --color-device-2:     oklch(25%   0.006 270);
  --color-device-3:     oklch(17%   0.005 270);
  --shadow-device-rim:  inset 0 0 0 1.5px oklch(100% 0.002 80 / 0.14),
                        inset 0 2px 5px oklch(100% 0.002 80 / 0.16),
                        inset 0 -3px 8px oklch(15% 0.005 270 / 0.38);

  /* ---- type ---- */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body:    ui-rounded, "SF Pro Rounded", "SF Compact Rounded",
                  -apple-system, system-ui, "Segoe UI", sans-serif;

  --text-xs:   0.8125rem;   /* 13 */
  --text-sm:   0.9375rem;   /* 15 */
  --text-md:   1.0625rem;   /* 17 */
  --text-lg:   1.3125rem;   /* 21 */
  --text-xl:   clamp(1.5rem, 1.1rem + 1.6vw, 2.125rem);
  --text-2xl:  clamp(1.9rem, 1.3rem + 2.4vw, 2.875rem);
  --text-display:   clamp(2.6rem, 1.4rem + 4.6vw, 4.5rem);
  --text-display-s: clamp(2.1rem, 1.4rem + 2.8vw, 3.25rem);

  --lh-tight: 1.04;
  --lh-snug:  1.16;
  --lh-body:  1.55;
  --track-display: -0.022em;

  /* ---- spacing (4 pt) ---- */
  --space-3xs: 0.25rem;  --space-2xs: 0.5rem;   --space-xs: 0.75rem;
  --space-sm:  1rem;     --space-md:  1.5rem;    --space-lg: 2rem;
  --space-xl:  3rem;     --space-2xl: 4.5rem;    --space-3xl: 7rem;
  --space-4xl: 9.5rem;

  /* ---- radius ---- */
  --radius-pill:   999px;
  --radius-card:   20px;
  --radius-panel:  32px;
  --radius-input:  12px;
  --device-bezel:  10px;   /* phone frame thickness */
  --radius-device: 46px;   /* phone bezel outer */
  --radius-screen: 38px;   /* screenshot inner */

  /* ---- motion ---- */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-short:   180ms;
  --dur-med:     240ms;

  /* ---- elevation (warm-tinted) ---- */
  --shadow-sm:  0 2px 8px -4px oklch(40% 0.04 70 / 0.18);
  --shadow-md:  0 16px 40px -22px oklch(38% 0.05 68 / 0.30),
                0 4px 12px -8px oklch(38% 0.05 68 / 0.16);
  --shadow-lg:  0 40px 90px -40px oklch(36% 0.06 66 / 0.40),
                0 12px 32px -16px oklch(36% 0.06 66 / 0.22);

  /* ---- z scale ---- */
  --z-base: 1;  --z-raised: 10;  --z-sticky-nav: 300;

  --maxw: 1140px;
  --maxw-prose: 64ch;
}
