/* Sauternes — aus tokens.json erzeugt (Design-System «Sauternes»).
   Hell auf :root. Dunkel folgt dem System, ausser der ThemeToggle hat data-theme="light" gesetzt; data-theme="dark" erzwingt dunkel. */
@font-face { font-family: "Source Serif 4"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/source-serif-4-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-weight: 400; font-style: italic; font-display: swap; src: url("fonts/source-serif-4-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-weight: 700; font-style: normal; font-display: swap; src: url("fonts/source-serif-4-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-weight: 900; font-style: normal; font-display: swap; src: url("fonts/source-serif-4-latin-900-normal.woff2") format("woff2"); }   /* only the wordmark */
@font-face { font-family: "Libre Franklin"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/libre-franklin-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Libre Franklin"; font-weight: 600; font-style: normal; font-display: swap; src: url("fonts/libre-franklin-latin-600-normal.woff2") format("woff2"); }
/* Fallback fonts matched to the web fonts: the swap moves nothing (CLS 0) */
@font-face { font-family: "Source Serif 4 Fallback"; font-weight: 400; src: local("Georgia"); size-adjust: 106.3%; ascent-override: 98%; descent-override: 32%; line-gap-override: 0%; }
@font-face { font-family: "Source Serif 4 Fallback"; font-weight: 700; src: local("Georgia Bold"), local("Georgia-Bold"); size-adjust: 93.3%; ascent-override: 110.4%; descent-override: 36.1%; line-gap-override: 0%; }
@font-face { font-family: "Source Serif 4 Fallback"; font-weight: 900; src: local("Georgia Bold"), local("Georgia-Bold"); size-adjust: 95.6%; ascent-override: 108.8%; descent-override: 35.6%; line-gap-override: 0%; }
@font-face { font-family: "Libre Franklin Fallback"; font-weight: 400; src: local("Arial"), local("ArialMT"), local("Helvetica"); size-adjust: 104.3%; ascent-override: 94.3%; descent-override: 24.3%; line-gap-override: 0%; }
@font-face { font-family: "Libre Franklin Fallback"; font-weight: 600 700; src: local("Arial Bold"), local("Arial-BoldMT"), local("Helvetica Bold"); size-adjust: 100.6%; ascent-override: 97.4%; descent-override: 25.1%; line-gap-override: 0%; }

:root {
    --bg: #f7f1e3; --surface: #fffaf0; --texture-veil: rgba(247, 241, 227, 0.82); --card: #fffcf5; --tint: #f0e2bd;
    --ink: #2b2418; --ink-muted: #6a5f4b; --line: #e4d8bd; --line-strong: #9c8a66;
    --accent: #8a5f0f; --accent-hover: #765009; --on-accent: #ffffff; --chateau-ink: var(--accent); --gold: #c59000; --brand-gold: #dda52a;
    --wine: #7a0727; --wine-light: #93163c; --wine-deep: #5a0418; --wine-shade: #66041f; --on-wine: #fff8e8; --on-wine-accent: #e0b155; --score: var(--wine);
    --warn: #8a3b12; --scrim: rgba(20, 12, 6, 0.5); --lightbox-bg: rgba(12, 9, 6, 0.95); --lightbox-ink: #f3ead9;
    --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-12: 3rem;
    --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-round: 50%;
    --z-content: 1; --z-header: 2; --z-pagebar: 3; --z-dropdown: 5; --z-splash: 10; --z-tabbar: 25; --z-floating: 30; --z-panel: 40; --z-lightbox: 50; --z-dialog: 60;
    --tap-target: 2.75rem; --control-h: 2.75rem; --tabbar-h: 3.8rem; --content-max: 75rem; --reading-max: 46rem;
    --shadow-card: 0 0.0625rem 0.125rem rgba(70, 48, 10, 0.08), 0 0.25rem 0.75rem rgba(70, 48, 10, 0.06);
    --shadow-raised: 0 0.5rem 1.5rem rgba(70, 48, 10, 0.16), 0 0.125rem 0.375rem rgba(70, 48, 10, 0.1);
    --shadow-sheet: -1rem 0 3rem rgba(0, 0, 0, 0.25);
    --font-serif: "Source Serif 4", "Source Serif 4 Fallback", Georgia, serif;
    --font-sans: "Libre Franklin", "Libre Franklin Fallback", "Helvetica Neue", Arial, sans-serif;
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --bg: #1b1712; --surface: #26201a; --texture-veil: rgba(27, 23, 18, 0.82); --card: #2a231c; --tint: #3a2f1f;
        --ink: #efe6d4; --ink-muted: #b0a48c; --line: #3b3226; --line-strong: #806f53;
        --accent: #e0b155; --accent-hover: #ecc574; --on-accent: #1b1712; --chateau-ink: var(--accent); --wine: #8e1838; --score: var(--accent); --warn: #f0a070;
        --shadow-card: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.4), 0 0.25rem 0.75rem rgba(0, 0, 0, 0.3);
        --shadow-raised: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.55), 0 0.125rem 0.375rem rgba(0, 0, 0, 0.4);
        color-scheme: dark;
    }
}
:root[data-theme="dark"] {
    --bg: #1b1712; --surface: #26201a; --texture-veil: rgba(27, 23, 18, 0.82); --card: #2a231c; --tint: #3a2f1f;
    --ink: #efe6d4; --ink-muted: #b0a48c; --line: #3b3226; --line-strong: #806f53;
    --accent: #e0b155; --accent-hover: #ecc574; --on-accent: #1b1712; --chateau-ink: var(--accent); --wine: #8e1838; --score: var(--accent); --warn: #f0a070;
    --shadow-card: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.4), 0 0.25rem 0.75rem rgba(0, 0, 0, 0.3);
    --shadow-raised: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.55), 0 0.125rem 0.375rem rgba(0, 0, 0, 0.4);
    color-scheme: dark;
}
