/* ============================================================
   ALIISS — base.css
   Design tokens, reset, typography
   ============================================================ */

/* --- Design tokens --- */
:root {
  /* Surface palette — pastel side */
  --pearl:      #F6F1EA;   /* page base light */
  --pearl-soft: #EFE7DC;
  --blush:      #EADFD5;   /* manifesto / soft blocks */
  --blush-deep: #D8C2B1;
  --lavender:   #E4DDE4;   /* accent pastel */
  --cream:      #FBF6EF;

  /* Surface palette — dark side */
  --obsidian:   #0A0806;   /* hero + dark story */
  --ink:        #1A1612;   /* slightly lifted dark */
  --carbon:     #2A241E;
  --ember:      #F2B56A;   /* amber spotlight accent */
  --ember-deep: #C68847;
  --amber-glow: rgba(242, 181, 106, 0.35);

  /* Ink / text */
  --text-ink:         #141110;
  --text-ink-soft:    rgba(20, 17, 16, 0.68);
  --text-ink-mute:    rgba(20, 17, 16, 0.42);
  --text-light:       #F6F1EA;
  --text-light-soft:  rgba(246, 241, 234, 0.72);
  --text-light-mute:  rgba(246, 241, 234, 0.48);

  /* Lines */
  --line-dark:  rgba(20, 17, 16, 0.12);
  --line-light: rgba(246, 241, 234, 0.18);

  /* Type — three-font ladder */
  --font-display: 'Italiana', 'Cormorant Garamond', Georgia, serif;
  --font-serif:   'Cormorant Garamond', 'Italiana', Georgia, serif;
  --font-sans:    'Inter', system-ui, -apple-system, sans-serif;

  /* Type scale — fluid */
  --fs-xs:  clamp(0.72rem, 0.70rem + 0.10vw, 0.78rem);
  --fs-sm:  clamp(0.82rem, 0.80rem + 0.12vw, 0.90rem);
  --fs-base:clamp(0.95rem, 0.92rem + 0.15vw, 1.05rem);
  --fs-md:  clamp(1.10rem, 1.05rem + 0.30vw, 1.30rem);
  --fs-lg:  clamp(1.40rem, 1.25rem + 0.80vw, 2.00rem);
  --fs-xl:  clamp(2.00rem, 1.60rem + 2.00vw, 3.40rem);
  --fs-2xl: clamp(2.80rem, 2.20rem + 3.00vw, 5.00rem);
  --fs-3xl: clamp(4.00rem, 3.00rem + 5.00vw, 8.00rem);
  --fs-hero:clamp(5.50rem, 4.00rem + 8.00vw, 14.00rem);
  --fs-mega:clamp(8.00rem, 5.00rem + 14.0vw, 22.00rem);

  /* Line height */
  --lh-tight: 0.92;
  --lh-snug:  1.12;
  --lh-body:  1.55;

  /* Letter spacing */
  --ls-mega:   -0.04em;
  --ls-tight:  -0.02em;
  --ls-normal: 0em;
  --ls-wide:   0.08em;
  --ls-widest: 0.22em;

  /* Spacing */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;
  --sp-8: 4rem;
  --sp-9: 6rem;
  --sp-10: 8rem;
  --sp-11: 12rem;

  /* Layout */
  --container: 1440px;
  --gutter: clamp(1.25rem, 3vw, 2.5rem);
  --section-y: clamp(5rem, 10vw, 10rem);

  /* Radii */
  --r-sm: 4px;
  --r-md: 10px;
  --r-lg: 20px;
  --r-xl: 36px;
  --r-pill: 999px;

  /* Shadows */
  --shadow-soft:  0 30px 60px -30px rgba(20, 17, 16, 0.28);
  --shadow-lift:  0 40px 80px -20px rgba(20, 17, 16, 0.20);
  --shadow-glow:  0 0 60px -10px var(--amber-glow);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,0.5);

  /* Motion */
  --ease-out-soft: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast: 220ms;
  --dur-base: 420ms;
  --dur-slow: 780ms;
  --dur-slower: 1400ms;

  /* Z-index */
  --z-nav: 100;
  --z-tray: 200;
  --z-modal: 300;

  /* Selection */
  color-scheme: light;
}

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

html, body { height: 100%; }

body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  color: var(--text-ink);
  background: var(--pearl);
  font-weight: 300;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}

img, picture, video, canvas, svg { display: block; max-width: 100%; }

button { font: inherit; background: none; border: 0; color: inherit; cursor: pointer; }

input, textarea, select { font: inherit; color: inherit; }

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

ul, ol { list-style: none; }

::selection { background: var(--ember); color: var(--obsidian); }

/* --- Typography --- */
.display {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  line-height: var(--lh-tight);
}

.serif {
  font-family: var(--font-serif);
  font-weight: 300;
  letter-spacing: var(--ls-normal);
  line-height: var(--lh-snug);
}

.eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: 400;
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--text-ink-soft);
}

.light-on-dark { color: var(--text-light); }
.light-on-dark .eyebrow { color: var(--text-light-soft); }

/* --- Container --- */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.container-wide { max-width: 1680px; }
.container-narrow { max-width: 980px; }

/* --- Section shell --- */
.section {
  padding-block: var(--section-y);
  position: relative;
}

.section-dark {
  background: var(--obsidian);
  color: var(--text-light);
}

.section-blush { background: var(--blush); }
.section-pearl { background: var(--pearl); }
.section-lavender { background: var(--lavender); }

/* --- Accessibility --- */
:focus-visible {
  outline: 2px solid var(--ember);
  outline-offset: 4px;
  border-radius: 2px;
}

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

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