@import url('https://fonts.googleapis.com/css2?family=Alegreya:ital,wght@0,400..900;1,400..900&family=Alegreya+Sans:ital,wght@0,400;0,500;0,700;0,800;1,400;1,500&family=Alegreya+Sans+SC:wght@500;700&family=Piazzolla:ital,opsz,wght@0,8..30,400..900;1,8..30,400..900&family=Cinzel:wght@400;600;700&family=Cinzel+Decorative:wght@700&family=Cormorant+Garamond:ital,wght@1,600&family=Lora:ital,wght@1,700&display=swap');
/* The Calling of Nor design tokens: copied from the design system artifact's tokens.css (2026-10-02),
   plus the font import so every page gets the four faces. Rules: config/design_principles.md. */
:root, [data-theme="night"] {
  --void: #060504;
  --ground: #0d0b09;
  --ground-sunken: #080706;
  --ground-raised: #15120e;
  --ground-overlay: #1d1914;
  --ground-hover: #252019;
  --scrim: rgba(6, 5, 4, 0.78);
  --line: #2e2720;
  --line-strong: #73644f;
  --ink: #ece3d0;
  --ink-muted: #b9ac96;
  --ink-faint: #948670;
  --lumo: #c9942a;
  --lumo-bright: #f2c14e;
  --lumo-deep: #86601a;
  --lumo-text: #d9a53c;
  --on-lumo: #1b1307;
  --lumo-wash: #251c0d;
  --iru: #c42b31;
  --iru-text: #f0675f;
  --on-iru: #fff3ee;
  --iru-wash: #251110;
  --ember: #e08a3c;
  --ember-text: #e8964a;
  --on-ember: #1b0f05;
  --ember-wash: #25170b;
  --iron: #a3b2b9;
  --iron-wash: #121819;
  --seal: var(--iru-text);
  --seal-wash: #1e1214;
  --focus: var(--lumo-bright);
  --pc-cal: #d9a53c;
  --pc-cal-ground: #17120a;
  --pc-ashann: #bea25a;
  --pc-ashann-ground: #15130b;
  --pc-riordan: #e8744a;
  --pc-riordan-ground: #170d0c;
  --pc-voldsom: #88b065;
  --pc-voldsom-ground: #0c120c;
  --pc-valdani: #b086dc;
  --pc-valdani-ground: #110d19;
  --pc-pain: #9d9a96;
  --pc-pain-ground: #0f0f10;
  --pc-charlotte: #8bb4b1;
  --pc-charlotte-ground: #0b1112;
  --season-spring: #7fc46e;
  --season-spring-line: #2d5426;
  --season-summer: #d39d55;
  --season-summer-line: #563c14;
  --season-autumn: #d77a91;
  --season-autumn-line: #57233a;
  --season-winter: #72aed6;
  --season-winter-line: #23466e;
  --month-cramas: #183014;
  --month-crafin: #0e2117;
  --month-vidmas: #2c1f0a;
  --month-vidfin: #241307;
  --month-mormas: #2c1220;
  --month-morfin: #200a16;
  --month-dormas: #13223d;
  --month-dorfin: #0e1330;
  --gilt-hi: #fbe3a1;
  --gilt: #e0ab45;
  --gilt-lo: #9a6a1c;
  --blood-sun: #d63c28;
  --blood-sun-core: #ffb36a;
  --lumen: #fff8e7;
  --shadow-deep: 0 18px 48px rgba(0, 0, 0, 0.66), 0 2px 6px rgba(0, 0, 0, 0.5);
  --shadow-glow: 0 0 28px rgba(242, 193, 78, 0.3);
  --shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.6);
}
[data-theme="vellum"] {
  --void: #1c1712;
  --ground: #efe5d1;
  --ground-sunken: #e5d9c1;
  --ground-raised: #f8f2e5;
  --ground-overlay: #fcf8ef;
  --ground-hover: #e7dbc4;
  --scrim: rgba(28, 23, 18, 0.6);
  --line: #d5c7ab;
  --line-strong: #8a775a;
  --ink: #231a11;
  --ink-muted: #56452f;
  --ink-faint: #6c5a43;
  --lumo: #a87515;
  --lumo-bright: #e0ac3a;
  --lumo-deep: #7a5716;
  --lumo-text: #76540a;
  --on-lumo: #1b1307;
  --lumo-wash: #fff2cc;
  --iru: #a51f26;
  --iru-text: #9e1a20;
  --on-iru: #fff3ee;
  --iru-wash: #f6dcd5;
  --ember: #bd6a1f;
  --ember-text: #924609;
  --on-ember: #1b0f05;
  --ember-wash: #f8e3c9;
  --iron: #455861;
  --iron-wash: #e1e6e4;
  --seal: var(--iru-text);
  --seal-wash: #f3dcd6;
  --focus: #6e4c0c;
  --pc-cal: #805b0d;
  --pc-cal-ground: #f3e6cc;
  --pc-ashann: #6e5a1e;
  --pc-ashann-ground: #efe7cf;
  --pc-riordan: #9a3a14;
  --pc-riordan-ground: #f4e0d4;
  --pc-voldsom: #3f6324;
  --pc-voldsom-ground: #e4ead6;
  --pc-valdani: #6a3a9a;
  --pc-valdani-ground: #ebe2ef;
  --pc-pain: #55524e;
  --pc-pain-ground: #e6e3de;
  --pc-charlotte: #2f625f;
  --pc-charlotte-ground: #dfe9e6;
  --season-spring: #3c6122;
  --season-spring-line: #a9c294;
  --season-summer: #7a4f0c;
  --season-summer-line: #d4b27a;
  --season-autumn: #8a2c48;
  --season-autumn-line: #d4a3b0;
  --season-winter: #2a5578;
  --season-winter-line: #a3b8cf;
  --month-cramas: #e2ecd1;
  --month-crafin: #d3e2cb;
  --month-vidmas: #f4e3bd;
  --month-vidfin: #ecd2a6;
  --month-mormas: #f2dade;
  --month-morfin: #e8c9d1;
  --month-dormas: #dce6f0;
  --month-dorfin: #cdd5e8;
  --gilt-hi: #b98a2c;
  --gilt: #8a5f12;
  --gilt-lo: #5a3d0c;
  --blood-sun: #a8321f;
  --blood-sun-core: #e08a3c;
  --lumen: #b98a2c;
  --shadow-deep: 0 14px 36px rgba(60, 40, 15, 0.2), 0 2px 6px rgba(60, 40, 15, 0.12);
  --shadow-glow: 0 0 18px rgba(168, 117, 21, 0.28);
  --shadow-inset: inset 0 1px 2px rgba(60, 40, 15, 0.14);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --radius-none: 0px;
  --radius-1: 2px;
  --radius-2: 4px;
  --radius-disc: 50%;
  --cut-sm: 6px;
  --cut-md: 10px;
  --cut-lg: 16px;
  --measure-prose: 66ch;
  --measure-wide: 84ch;
  --font-display: Piazzolla, Georgia, serif;
  --font-serif: Alegreya, Georgia, serif;
  --font-sans: "Alegreya Sans", "Segoe UI", system-ui, sans-serif;
  --font-caps: "Alegreya Sans SC", "Alegreya Sans", system-ui, sans-serif;
  --font-engraved: Cinzel, Piazzolla, Georgia, serif;
}
.title-xl { font-family: var(--font-display); font-size: 64px; line-height: 60px; font-weight: 800; letter-spacing: -0.015em; font-variation-settings: 'opsz' 30; }
.title-lg { font-family: var(--font-display); font-size: 44px; line-height: 48px; font-weight: 700; letter-spacing: -0.01em; font-variation-settings: 'opsz' 30; }
.title-md { font-family: var(--font-display); font-size: 30px; line-height: 36px; font-weight: 700; letter-spacing: -0.005em; font-variation-settings: 'opsz' 30; }
.title-sm { font-family: var(--font-display); font-size: 22px; line-height: 28px; font-weight: 700; font-variation-settings: 'opsz' 22; }
.prose-lg { font-family: var(--font-serif); font-size: 21px; line-height: 33px; font-weight: 400; }
.prose { font-family: var(--font-serif); font-size: 18px; line-height: 29px; font-weight: 400; }
.prose-sm { font-family: var(--font-serif); font-size: 16px; line-height: 25px; font-weight: 400; }
.hand { font-family: var(--font-serif); font-size: 18px; line-height: 29px; font-weight: 400; font-style: italic; }
.ui { font-family: var(--font-sans); font-size: 15px; line-height: 22px; font-weight: 500; }
.ui-strong { font-family: var(--font-sans); font-size: 15px; line-height: 22px; font-weight: 700; }
.ui-sm { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 500; }
.data { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 500; }
.eyebrow { font-family: var(--font-caps); font-size: 15px; line-height: 18px; font-weight: 700; letter-spacing: 0.08em; }
.label { font-family: var(--font-caps); font-size: 13px; line-height: 16px; font-weight: 500; letter-spacing: 0.06em; }
