/* base.css
   Design tokens, reset, typography scale and shared layout primitives.
   Part of the Mici & Tungi invitation. Load order: base -> sections -> responsive. */

  :root {
    --bg:        oklch(0.965 0.012 85);
    --bg-deep:   oklch(0.935 0.018 82);
    --bg-sage:   oklch(0.840 0.042 118);
    --paper:     oklch(0.985 0.008 88);
    --ink:       oklch(0.22 0.015 60);
    --ink-soft:  oklch(0.38 0.018 60);
    --ink-mute:  oklch(0.43 0.020 60);
    --rule:      oklch(0.78 0.018 70);
    --accent:    oklch(0.42 0.045 135);
    --accent-soft: oklch(0.58 0.035 135);
    --curtain:   oklch(0.30 0.040 135);
    --curtain-dk:oklch(0.22 0.040 135);
    --serif: 'Cormorant Garamond', 'EB Garamond', Georgia, serif;
    --sans:  'Outfit', ui-sans-serif, system-ui, sans-serif;
  }

  * { box-sizing: border-box; margin: 0; padding: 0; }
  html, body { background: var(--bg); color: var(--ink); }
  body {
    font-family: var(--serif);
    font-weight: 400;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
  }
  /* Lock scroll while curtain is closed. Uses dvh so the height tracks the
     visible viewport on iOS Safari (100vh includes the collapsed URL-bar
     area, which can push the curtain button below the visible screen). */
  body.locked { overflow: hidden; height: 100dvh; }

  ::selection { background: var(--accent); color: var(--bg); }
