/* =========================================================
   FGB — Design tokens v2
   Canonical palette, self-hosted fonts, type, spacing, motion,
   layers, and compatibility aliases.
   Architecture: tokens → base → motion → page.
   ========================================================= */

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-normal-500-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-normal-500-600-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-italic-500-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-italic-500-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/manrope-normal-400-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/manrope-normal-400-600-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Color scales */
  --ink-50: #F3F6FA;
  --ink-100: #E6EBF2;
  --ink-200: #C8D1DE;
  --ink-300: #9EADBF;
  --ink-400: #718398;
  --ink-600: #3A485A;
  --ink-700: #263445;
  --ink-800: #172232;
  --ink-950: #0C1220;

  --bronze-100: #F2EBDD;
  --bronze-200: #E5D7BD;
  --bronze-300: #D7C29C;
  --bronze-400: #C7AB82;
  --bronze-500: #BEA172;
  --bronze-600: #B5996A;
  --bronze-700: #6E5938;

  --cream-50: #F7F3EC;
  --cream-100: #EFE8DA;

  --concrete-100: #F1EFEB;
  --concrete-200: #D9D5CD;
  --concrete-300: #B8B1A6;
  --concrete-400: #8B857B;
  --concrete-500: #5F5A52;

  /* Semantic aliases */
  --bg: var(--cream-50);
  --surface: var(--cream-100);
  --text: var(--ink-950);
  --accent: var(--bronze-600);
  --line: rgba(12, 18, 32, 0.12);

  /* Legacy aliases used by the current pages */
  --ink: var(--ink-950);
  --ink-2: var(--ink-800);
  --ink-3: var(--ink-700);
  --bronze: var(--bronze-600);
  --bronze-soft: var(--bronze-300);
  --bronze-deep: var(--bronze-700);
  --bronze-text: var(--bronze-700);
  --cream: var(--cream-50);
  --cream-2: var(--cream-100);
  --stone: var(--concrete-200);
  --line-on-dark: rgba(247, 243, 236, 0.14);
  --muted: var(--concrete-500);
  --muted-on-dark: rgba(247, 243, 236, 0.68);

  /* Typography */
  --font-display: "Cormorant Garamond", "Times New Roman", serif;
  --font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: var(--font-display);
  --sans: var(--font-body);
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --type-display: clamp(44px, 6vw, 104px);
  --type-hero: clamp(42px, 5.4vw, 88px);
  --type-h1: var(--type-display);
  --type-h2: var(--type-display);
  --type-h3: clamp(24px, 3vw, 36px);
  --type-body: 17px;
  --type-caption: 12px;
  --tracking-display: -0.02em;
  --tracking-hero: -0.015em;
  --tracking-label: 0.30em;
  --tracking-cta: 0.08em;

  /* Spacing and containers */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-section: clamp(112px, 13vw, 192px);
  --section-divider-height: 64px;
  --container-prose: 62ch;
  --container-wide: 1320px;
  --container-full: 100vw;
  --gutter: clamp(20px, 5vw, 96px);
  --section-y: var(--space-section);

  /* Motion */
  --dur-fast: 200ms;
  --dur-base: 400ms;
  --dur-slow: 800ms;
  --dur-scene: 1200ms;
  --dur-cta-hover: 280ms;
  --dur-link-underline: 240ms;
  --dur-media-hover: 600ms;
  --dur-ken-burns: 22s;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);

  /* Component dimensions */
  --nav-height: 64px;
  --nav-logo-height: 32px;
  --scroll-progress-height: 2px;
  --scroll-cue-line: 48px;
  --grain-opacity: 0.025;

  /* Layers and depth */
  --z-base: 0;
  --z-content: 2;
  --z-nav: 100;
  --z-overlay: 1000;
  --z-curtain: 10000;
  --shadow-ambient: 0 18px 60px rgba(12, 18, 32, 0.12);

  /* Breakpoints and media budgets */
  --bp-sm: 640px;
  --bp-lg: 1024px;
  --bp-xl: 1440px;
  --budget-poster-avif: 120KB;
  --budget-video-mobile: 2.5MB;
  --budget-scrub-desktop: 30MB;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 0ms;
    --dur-base: 0ms;
    --dur-slow: 0ms;
    --dur-scene: 0ms;
    --dur-cta-hover: 0ms;
    --dur-link-underline: 0ms;
    --dur-media-hover: 0ms;
    --dur-ken-burns: 0s;
  }
}
