/* ==========================================================================
   Variant: GT Alpina (licensed, static cuts) — v2, 2026-10-21
   Loaded after styles.css by alpina.html (generated from index.html by build-variants.mjs).
   Not a font swap: Alpina gets its own role system.
     · display lines (hero word, chapter heads, specimen, outro): Light, upright, caps, tracking −3 % (Alpina runs ~30 % wider than Saol;
       −4.5 % would clog the serifs), line-height .92, underscored by the site rule
     · numbers (chapter numbers, thesis numbers): Light Italic, lining figures — the calligraphic voice carries the numerals
     · sublines and item titles (hero subline, tool titles, thesis titles): Regular Italic, sentence case — form contrast serif-italic / sans-body
     · intro statement: Light upright, sentence case — the book register opens the page
     · body, labels, data: unchanged (Aeonik Pro / Aeonik Mono)
   ========================================================================== */
@font-face { font-family: "GT Alpina"; src: url("fonts/GT-Alpina-Standard-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "GT Alpina"; src: url("fonts/GT-Alpina-Standard-Light-Italic.woff2") format("woff2"); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: "GT Alpina"; src: url("fonts/GT-Alpina-Standard-Regular-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

:root {
  --font-display: "GT Alpina", "Saol Display", Georgia, "Times New Roman", serif;
  --ls-hero: -0.03em;
  --ls-h1: -0.03em;
  --display-tracking: -0.03em;
}

/* display lines: Light upright caps */
.t-hero, .t-h1, .t-display { font-weight: 300; font-style: normal; }

/* numbers: Light Italic, lining figures (Alpina italic defaults to oldstyle figures) */
.principle__num.t-display, .theses .n { font-style: italic; font-weight: 300; font-variant-numeric: lining-nums; letter-spacing: -0.01em; }

/* sublines + item titles: Regular Italic, sentence case, no underscore */
.hero__sub, .tools .tool h3, .theses .thesis h3 {
  font-family: var(--font-display); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: 0;
  font-size: var(--fs-h2); line-height: var(--lh-h2); text-decoration: none;
}

/* intro statement: Light upright, the hanging "(Intro)" label stays mono */
.statement { font-family: var(--font-display); font-weight: 300; letter-spacing: -0.01em; }
.statement u { text-decoration-thickness: .03em; text-underline-offset: .1em; }

/* quiz feedback (if present) follows the display role */
.quiz__result .t-h1 { font-weight: 300; }

/* chapter number + heading boxes: 7 rows (140 px) instead of 6 for the 144 px line — Alpina's taller extenders and the underscore
   collide with the next line in a 120 px box when a heading wraps; both boxes move together so number and heading share the baseline */
.principle__num.t-display, .principle__head.t-display { line-height: calc(var(--base) * 7); }
@media (max-width: 1024px) { .principle__head.t-display { line-height: calc(var(--base) * 4); } }
/* 4-column phones: Alpina's wider caps push the longest single word ("Werkzeuge") 0.6 px past the viewport at 2 × 28 px;
   number and heading shrink together to 1.9 × so they keep the shared size and baseline */
@media (max-width: 640px) { .principle__num.t-display, .principle__head.t-display { font-size: calc(var(--fs-h1) * 1.9); } }
