:root {
    --color-bg: #f3f5f2;
    --color-surface: #ffffff;
    --color-surface-soft: #e7eee9;
    --color-text: #17211d;
    --color-muted: #606d66;
    --color-border: #d5ddd8;
    --color-accent: #285b4b;
    --color-accent-dark: #153e32;
    --color-secondary: #a36c32;
    --color-focus: #b76f28;
    --color-error: #8c2d2d;
    --color-success: #245c4b;
    --accent-rgb: 40 91 75;
    --accent-dark-rgb: 21 62 50;
    --font-sans: "Segoe UI Variable Text", "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --font-display: "Segoe UI Variable Display", "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --container: 75rem;
    --text-width: 47rem;
    --radius-small: 0.45rem;
    --radius: 0.85rem;
    --radius-large: 1.35rem;
    --space-1: 0.5rem;
    --space-2: 1rem;
    --space-3: 1.5rem;
    --space-4: 2rem;
    --space-5: 3rem;
    --space-6: 4.5rem;
    --shadow: 0 1rem 3rem rgb(22 48 38 / 7%);
    --shadow-small: 0 0.4rem 1.5rem rgb(22 48 38 / 6%);
    --page-bg: var(--color-bg);
    --page-surface: var(--color-surface);
    --page-pattern-image: none;
    --page-background-image: none;
    --page-image-overlay: rgb(255 255 255 / 48%);
    --page-image-position: center center;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body {
    margin: 0;
    min-width: 20rem;
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.7;
    text-rendering: optimizeLegibility;
}
body[data-page-background="paper"] { --page-bg: #f8f7f3; --page-surface: #fffefa; }
body[data-page-background="cream"] { --page-bg: #f7f1e5; --page-surface: #fffdf7; }
body[data-page-background="sand"] { --page-bg: #eee5d5; --page-surface: #fbf7ef; }
body[data-page-background="sage"] { --page-bg: #eaf0ec; --page-surface: #f8fbf9; }
body[data-page-background="mint"] { --page-bg: #e7f1ed; --page-surface: #f7fcfa; }
body[data-page-background="mist"] { --page-bg: #edf0ef; --page-surface: #fafbfa; }
body[data-page-background="bluegray"] { --page-bg: #e8eef1; --page-surface: #f7fafb; }
body[data-page-background="warm"] { --page-bg: #f3eee6; --page-surface: #fffaf3; }
body[data-page-pattern="grid"] { --page-pattern-image: linear-gradient(rgb(40 91 75 / 5%) 1px, transparent 1px), linear-gradient(90deg, rgb(40 91 75 / 5%) 1px, transparent 1px); }
body[data-page-pattern="dots"] { --page-pattern-image: radial-gradient(circle, rgb(40 91 75 / 13%) 1px, transparent 1.25px); }
main { background-color: var(--page-bg); background-image: var(--page-pattern-image); background-size: 3rem 3rem; }
body[data-page-image-overlay="none"] { --page-image-overlay: rgb(255 255 255 / 0%); }
body[data-page-image-overlay="soft"] { --page-image-overlay: rgb(255 255 255 / 28%); }
body[data-page-image-overlay="medium"] { --page-image-overlay: rgb(255 255 255 / 52%); }
body[data-page-image-overlay="strong"] { --page-image-overlay: rgb(255 255 255 / 76%); }
body[data-page-image-position="top"] { --page-image-position: center top; }
body[data-page-image-position="left"] { --page-image-position: left center; }
body[data-page-image-position="right"] { --page-image-position: right center; }
body[data-page-has-image="true"] main { background-image: linear-gradient(var(--page-image-overlay), var(--page-image-overlay)), var(--page-background-image); background-position: center, var(--page-image-position); background-repeat: no-repeat, no-repeat; background-size: 100% 100%, cover; }
body[data-page-has-image="true"][data-page-image-mode="contain"] main { background-size: 100% 100%, contain; }
body[data-page-has-image="true"][data-page-image-mode="original"] main { background-size: 100% 100%, auto; }
body[data-page-has-image="true"][data-page-image-mode="repeat"] main { background-repeat: no-repeat, repeat; background-size: 100% 100%, auto; }
body[data-site-palette="teal"] { --color-accent: #236168; --color-accent-dark: #153f44; --color-secondary: #936634; --color-focus: #a9672d; --color-success: #225b55; --accent-rgb: 35 97 104; --accent-dark-rgb: 21 63 68; }
body[data-site-palette="navy"] { --color-accent: #345b73; --color-accent-dark: #223e52; --color-secondary: #986d35; --color-focus: #a7662e; --color-success: #315f55; --accent-rgb: 52 91 115; --accent-dark-rgb: 34 62 82; }
body[data-site-palette="graphite"] { --color-accent: #48574f; --color-accent-dark: #29342f; --color-secondary: #95683b; --color-focus: #a76932; --color-success: #315b4d; --accent-rgb: 72 87 79; --accent-dark-rgb: 41 52 47; }
body[data-site-palette="clay"] { --color-accent: #785440; --color-accent-dark: #50372b; --color-secondary: #376658; --color-focus: #9b6235; --color-success: #315d50; --accent-rgb: 120 84 64; --accent-dark-rgb: 80 55 43; }
h1, h2, h3, h4 {
    margin: 0 0 var(--space-2);
    font-family: var(--font-display);
    font-weight: 680;
    letter-spacing: -0.025em;
    line-height: 1.12;
    text-wrap: balance;
}
h1 { max-width: 50rem; font-size: clamp(2.75rem, 7vw, 5.6rem); letter-spacing: -0.045em; }
h2 { max-width: 46rem; font-size: clamp(1.8rem, 4vw, 3rem); }
h3 { font-size: 1.4rem; }
h4 { font-size: 1.15rem; }
p { margin: 0 0 var(--space-2); }
a { color: var(--color-accent); text-decoration-thickness: 0.08em; text-underline-offset: 0.22em; }
a:hover { color: var(--color-accent-dark); }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
img { display: block; max-width: 100%; height: auto; }
code { padding: 0.1rem 0.3rem; border-radius: 0.25rem; background: #e9edea; }
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: 0.01ms !important; }
}
