/* ============================================================
   The Haunting — shared theme tokens
   One identity across three chambers (Hauntings / Ghosts / Witch Trials),
   each chamber tinted by its own spectral accent.
   Linked by the hub and by every reconceived / polished viz.
   ============================================================ */

:root {
  /* Base — a cold, blue-black room */
  --void:        #05070c;
  --void-2:      #080b13;
  --surface:     #0d1019;
  --surface-2:   #11151f;
  --hairline:    #1d2230;
  --hairline-lit:#2c3346;

  /* Spectral ink */
  --ash:         #c9ccd6;  /* primary text */
  --ash-dim:     #8a8f9e;  /* secondary text */
  --ash-faint:   #565b6b;  /* tertiary / meta */

  /* Chamber accents */
  --gold:        #d4a039;  /* the through-line accent (séance gold) */
  --gold-soft:   #e8c879;
  --haunt:       #8c7bff;  /* Hauntings — violet phosphor */
  --ghost:       #57e0c4;  /* Ghosts & Wrecks — drowned cyan */
  --ember:       #ff6b35;  /* Witch Trials — ember red */
  --ember-soft:  #ffa54a;

  /* Glow shadows */
  --glow-gold:  0 0 24px rgba(212,160,57,0.22);
  --glow-haunt: 0 0 24px rgba(140,123,255,0.22);
  --glow-ghost: 0 0 24px rgba(87,224,196,0.20);
  --glow-ember: 0 0 24px rgba(255,107,53,0.22);

  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body:    "Inter", system-ui, -apple-system, sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --maxw: 1120px;
  --radius: 12px;
}

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

html { scroll-behavior: smooth; }

body {
  background: var(--void);
  color: var(--ash);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-height: 100vh;
}

a { color: var(--gold); text-decoration: none; }
a:hover { color: var(--gold-soft); }

:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 3px;
}

/* Accessibility utilities shared by every page in the set */
.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;
}

.skip-link {
  position: fixed; top: -60px; left: 16px; z-index: 1000;
  background: var(--gold); color: var(--void);
  padding: 10px 18px; border-radius: 0 0 8px 8px;
  font-family: var(--font-mono); font-size: 13px; font-weight: 600;
  transition: top 0.18s ease;
}
.skip-link:focus { top: 0; color: var(--void); }

/* Honour the reader who wants stillness — every viz must respect this */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

@media (forced-colors: active) {
  .skip-link { border: 1px solid ButtonText; }
}
