/* ============================================================
   LDM BASE — reset + design tokens
   League of Distinguished Misfits
   ============================================================ */

/* ── Google Fonts preconnects are in <head> ── */

:root {
  /* ── Palette — LDM Brand Standards (authoritative) ── */
  --color-bg:              #0B0B0C;   /* Obsidian Black */
  --color-surface:         #111110;
  --color-surface-2:       #181714;
  --color-surface-card:    #141310;
  --color-border:          #2a2720;
  --color-divider:         #1e1c18;

  /* Text */
  --color-text:            #F4F0E6;   /* Ivory */
  --color-text-muted:      #9a9080;
  --color-text-faint:      #55504a;
  --color-text-inverse:    #0B0B0C;

  /* League Gold — authoritative brand accent */
  --color-gold:            #C6A15B;   /* League Gold */
  --color-gold-light:      #E7CE93;   /* Bright Gold / highlight */
  --color-gold-pale:       #F4F0E6;   /* Ivory — near-white */
  --color-gold-dark:       #8a6a2a;   /* deep gold shadow */
  --color-gold-dim:        #6a5020;   /* very deep gold */
  --color-copper:          #B87333;   /* Copper alternate */
  --color-gold-glow:       rgba(198, 161, 91, 0.12);
  --color-gold-glow-md:    rgba(198, 161, 91, 0.20);
  --color-gold-glow-lg:    rgba(198, 161, 91, 0.06);

  /* ── Type Scale ── */
  --text-xs:   clamp(0.75rem,  0.7rem  + 0.25vw, 0.875rem);
  --text-sm:   clamp(0.875rem, 0.8rem  + 0.35vw, 1rem);
  --text-base: clamp(1rem,     0.95rem + 0.25vw, 1.125rem);
  --text-lg:   clamp(1.125rem, 1rem    + 0.75vw, 1.5rem);
  --text-xl:   clamp(1.5rem,   1.2rem  + 1.25vw, 2.25rem);
  --text-2xl:  clamp(2rem,     1.2rem  + 2.5vw,  3.5rem);
  --text-3xl:  clamp(2.5rem,   1rem    + 4vw,    5rem);
  --text-hero: clamp(3rem,     0.5rem  + 7vw,    7rem);

  /* ── Spacing ── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* ── Fonts — LDM authoritative typefaces ── */
  --font-display: 'Cormorant Garamond', 'Georgia', serif;  /* voice / taglines */
  --font-title:   'Cinzel', 'Georgia', serif;               /* wordmark / headings */
  --font-body:    'EB Garamond', 'Georgia', serif;          /* body / captions */
  --font-label:   'Cinzel', 'Georgia', serif;               /* labels / nav */

  /* ── Radius ── */
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;

  /* ── Motion ── */
  --ease-out:         cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:          cubic-bezier(0.4, 0, 1, 1);
  --ease-in-out:      cubic-bezier(0.4, 0, 0.2, 1);
  --transition-fast:  180ms cubic-bezier(0.16, 1, 0.3, 1);
  --transition-med:   350ms cubic-bezier(0.16, 1, 0.3, 1);
  --transition-slow:  600ms cubic-bezier(0.16, 1, 0.3, 1);

  /* ── Shadows ── */
  --shadow-gold-sm: 0 0 16px rgba(196, 154, 108, 0.15);
  --shadow-gold-md: 0 0 32px rgba(196, 154, 108, 0.20);
  --shadow-gold-lg: 0 0 64px rgba(196, 154, 108, 0.12);

  /* ── Content widths ── */
  --content-narrow:  580px;
  --content-default: 900px;
  --content-wide:    1160px;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-padding-top: var(--space-16);
  /* Lenis overrides scroll-behavior: */
  scroll-behavior: auto;
}

/* Lenis-safe: only apply smooth scroll when Lenis is NOT active */
html:not(.lenis) { scroll-behavior: smooth; }
html.lenis { scroll-behavior: auto; }

/* Lenis required base */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-smooth iframe { pointer-events: none; }

body {
  min-height: 100dvh;
  line-height: 1.7;
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-bg);
  overflow-x: hidden;
}

img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
ul[role='list'], ol[role='list'] { list-style: none; }
input, button, textarea, select { font: inherit; color: inherit; }

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
  line-height: 1.1;
  font-family: var(--font-display);
}

p, li, figcaption { text-wrap: pretty; max-width: 68ch; }

a { color: inherit; text-decoration: none; }

button {
  cursor: pointer;
  background: none;
  border: none;
  font-family: var(--font-body);
}

::selection {
  background: rgba(196, 154, 108, 0.25);
  color: var(--color-text);
}

:focus-visible {
  outline: 1px solid var(--color-gold);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0;
  margin: -1px; overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border-width: 0;
}
