/* ==========================================================================
   AstroLife Atlas — design tokens
   Palette, type and rhythm are taken from the printed report covers
   (astrocore typst theme) and from the round emblem (data/astrolifeatlas_emblem_v2.png),
   so the site reads as the same object as the product it sells.
   ========================================================================== */

/* --- Typefaces (self-hosted, same files the PDF uses) --------------------- */
@font-face {
  font-family: "Crimson Pro";
  src: url("/static/fonts/CrimsonPro-Variable.ttf") format("truetype-variations");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Crimson Pro";
  src: url("/static/fonts/CrimsonPro-Italic-Variable.ttf") format("truetype-variations");
  font-weight: 200 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Cinzel Decorative";
  src: url("/static/fonts/CinzelDecorative-Regular.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Cinzel Decorative";
  src: url("/static/fonts/CinzelDecorative-Bold.ttf") format("truetype");
  font-weight: 700;
  font-display: swap;
}
/* Astrological glyphs only — the same faces the reports use for symbols. */
@font-face {
  font-family: "Astronomicon";
  src: url("/static/fonts/Astronomicon.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans Symbols";
  src: url("/static/fonts/NotoSansSymbols.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans Symbols 2";
  src: url("/static/fonts/NotoSansSymbols2.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}

:root {
  /* --- Colour: deep-space ground ---------------------------------------- */
  --ink: #07080f;
  --ink-2: #0d1020;
  --ink-3: #151a2e;
  --ink-line: rgba(216, 179, 90, 0.22);
  --ink-line-strong: rgba(216, 179, 90, 0.42);

  /* --- Colour: printed page --------------------------------------------- */
  --paper: #faf8f5;
  --paper-tint: #f9f6f7;
  --paper-line: rgba(74, 51, 83, 0.18);
  --paper-line-strong: rgba(74, 51, 83, 0.34);

  /* --- Colour: brand ----------------------------------------------------- */
  --plum: #4a3353;
  --plum-2: #6b4d6e;
  --mauve: #8e6b8a;
  --mauve-light: #bda6c4;   /* mauve lifted for small text on near-black */
  --mauve-deep: #765573;
  --text-muted-light: #b7abb8;
  --text-dark: #2d2330;
  --text-muted: #6a5f68;

  /* --- Colour: gold ------------------------------------------------------ */
  --gold: #d8b35a;          /* on dark */
  --gold-deep: #b8953d;     /* decorative gold, not small text on paper */
  --gold-text: #80621e;
  --gold-light: #e8c877;
  --gold-glow: rgba(216, 179, 90, 0.16);

  /* --- Semantic --------------------------------------------------------- */
  --ok: #6f9c6a;
  --warn: #c08a3e;
  --stop: #a4574f;
  --ok-deep: #416b3e;
  --ok-light: #a0c69a;
  --warn-deep: #81581f;
  --warn-light: #dfb36e;
  --stop-deep: #97473f;
  --stop-light: #e39a91;

  /* Inherited surface roles; parchment and nested dark panels switch together. */
  --surface-muted: var(--text-muted-light);
  --surface-accent: var(--mauve-light);
  --surface-link: var(--gold-light);
  --surface-hover: var(--gold);
  --surface-ok: var(--ok-light);
  --surface-warn: var(--warn-light);
  --surface-stop: var(--stop-light);
  --surface-focus: var(--gold-light);
  --control-line-light: #a38b59;
  --control-line-deep: #887489;
  --control-line: var(--control-line-light);

  /* --- Type scale ------------------------------------------------------- */
  --font-display: "Cinzel Decorative", "Crimson Pro", Georgia, serif;
  --font-body: "Crimson Pro", Georgia, "Times New Roman", serif;
  /* Zodiac signs come from Noto Sans Symbols, star marks from Symbols 2
     (verified against both cmaps), Astronomicon as the project's own fallback. */
  --font-glyph: "Noto Sans Symbols", "Noto Sans Symbols 2", "Astronomicon", "Crimson Pro", serif;

  --step--1: clamp(0.86rem, 0.84rem + 0.1vw, 0.92rem);
  --step-0: clamp(1.06rem, 1rem + 0.3vw, 1.19rem);
  --step-1: clamp(1.3rem, 1.2rem + 0.5vw, 1.5rem);
  --step-2: clamp(1.6rem, 1.4rem + 1vw, 2.05rem);
  --step-3: clamp(2rem, 1.6rem + 2vw, 2.9rem);
  --step-4: clamp(2.4rem, 1.8rem + 3.2vw, 4rem);

  --measure: 68ch;          /* body line length */
  --container: 74rem;
  --container-narrow: 52rem;

  /* --- Space + edges ---------------------------------------------------- */
  --gap-1: 0.5rem;
  --gap-2: 0.9rem;
  --gap-3: 1.5rem;
  --gap-4: 2.4rem;
  --gap-5: 4rem;
  --gap-6: 6.5rem;

  --radius: 7px;            /* the report cover uses one restrained radius */
  --hairline: 1px;

  --shadow-lift: 0 18px 44px -28px rgba(7, 8, 15, 0.55);

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}
