        /* ── Theme tokens (RGB triplets so Tailwind opacity modifiers work) ── */
        :root,
        :root[data-theme="light"] {
            color-scheme: light;
            /* Warm off-white / beige. Nothing is pure white: the brightest
               surface sits at ~92% luminance instead of ~99%. */
            --c-canvas: 242 238 229;
            --c-canvas-2: 232 226 214;
            --c-surface: 249 246 238;
            --c-ink: 31 28 23;
            --c-body: 74 68 59;
            --c-muted: 107 99 88;
            --c-line: 222 214 200;
            --c-line-strong: 199 188 167;
            --c-hover: 236 231 220;
            --c-accent: 137 108 34;
            --c-accent-deep: 111 86 24;
            --c-on-accent: 249 246 238;
            --c-brass: 113 99 66;
            --shadow-card: 0 1px 2px rgba(46, 38, 26, 0.05), 0 8px 24px rgba(46, 38, 26, 0.05);
            --shadow-card-hover: 0 2px 4px rgba(46, 38, 26, 0.06), 0 18px 40px rgba(46, 38, 26, 0.12);
        }

        :root[data-theme="dark"] {
            color-scheme: dark;
            --c-canvas: 20 18 15;
            --c-canvas-2: 28 25 22;
            --c-surface: 32 28 24;
            --c-ink: 242 237 229;
            --c-body: 184 176 164;
            --c-muted: 138 129 117;
            --c-line: 50 44 38;
            --c-line-strong: 68 60 51;
            --c-hover: 40 35 30;
            --c-accent: 207 176 92;
            --c-accent-deep: 225 196 116;
            --c-on-accent: 20 18 15;
            --c-brass: 176 154 109;
            --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.30), 0 8px 24px rgba(0, 0, 0, 0.35);
            --shadow-card-hover: 0 2px 4px rgba(0, 0, 0, 0.35), 0 18px 40px rgba(0, 0, 0, 0.50);
        }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: rgb(var(--c-canvas)); color: rgb(var(--c-body)); font-family: 'Inter', system-ui, sans-serif; font-size: 1rem; line-height: 1.7; -webkit-font-smoothing: antialiased; }
::selection { background: rgb(var(--c-accent) / .2); color: rgb(var(--c-ink)); }
a { color: rgb(var(--c-accent)); text-decoration: none; text-underline-offset: 4px; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid rgb(var(--c-accent)); outline-offset: 5px; }
.site-nav { border-bottom: 1px solid rgb(var(--c-line)); }
.nav-inner { max-width: 1120px; margin: auto; padding: 18px 24px; display: flex; align-items: center; gap: 24px; }
.brand { margin-right: auto; font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; color: rgb(var(--c-ink)); }
.back-link { font-size: .82rem; color: rgb(var(--c-muted)); }
.theme-btn { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid rgb(var(--c-line)); border-radius: 8px; color: rgb(var(--c-muted)); background: transparent; cursor: pointer; }
.theme-btn:hover { background: rgb(var(--c-hover)); color: rgb(var(--c-ink)); }
.theme-btn svg { width: 17px; height: 17px; }
.theme-btn .moon, :root[data-theme="dark"] .theme-btn .sun { display: none; }
:root[data-theme="dark"] .theme-btn .moon { display: block; }
.container { max-width: 960px; margin: auto; padding: 64px 24px 48px; }
header { margin-bottom: 40px; }
.eyebrow { font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: rgb(var(--c-brass)); margin: 0 0 16px; }
h1, h3 { font-family: 'Fraunces', Georgia, serif; color: rgb(var(--c-ink)); font-weight: 500; }
header h1 { font-size: clamp(2.6rem, 7vw, 4rem); line-height: 1.08; letter-spacing: -.03em; margin: 0; }
header h2 { font-size: 1.2rem; font-weight: 400; margin: 12px 0 20px; color: rgb(var(--c-brass)); }
.meta { font-size: .88rem; line-height: 2; max-width: 760px; overflow-wrap: anywhere; }
.meta a { color: rgb(var(--c-body)); }
.download-btn { display: inline-flex; align-items: center; margin-top: 14px; background: rgb(var(--c-accent)); color: rgb(var(--c-on-accent)); padding: .6rem 1.15rem; border: 1px solid rgb(var(--c-accent)); border-radius: 6px; font-size: .78rem; font-weight: 600; letter-spacing: .04em; transition: background .2s ease; }
.download-btn:hover { background: rgb(var(--c-accent-deep)); text-decoration: none; }
section { margin-bottom: 24px; padding: 32px; background: rgb(var(--c-surface)); border: 1px solid rgb(var(--c-line)); border-radius: 10px; box-shadow: var(--shadow-card); }
section h3 { font-size: 1.8rem; line-height: 1.2; margin: 0 0 24px; }
section > p { margin: 0; }
.entry + .entry { border-top: 1px solid rgb(var(--c-line)); margin-top: 28px; padding-top: 28px; }
.entry-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; }
.entry-header strong { flex: 1 1 420px; font-size: 1rem; font-weight: 600; }
.entry-header > span { font-size: .75rem; color: rgb(var(--c-brass)); }
strong { color: rgb(var(--c-ink)); }
.entry > p { margin: 8px 0 12px; font-size: .88rem; }
.location { color: rgb(var(--c-muted)); }
ul { padding-left: 20px; margin: 16px 0 0; }
li { padding-left: 4px; margin: 0 0 10px; }
li:last-child { margin-bottom: 0; }
li::marker { color: rgb(var(--c-brass)); }
.skills-list { display: grid; gap: 0; }
.skill-row { display: grid; grid-template-columns: 210px 1fr; gap: 16px; padding: 14px 0; font-size: .9rem; }
.skill-row + .skill-row { border-top: 1px solid rgb(var(--c-line)); }
.skill-row:first-child { padding-top: 0; }
.skill-row:last-child { padding-bottom: 0; }
.skill-row strong { font-weight: 500; }
.site-footer { margin-top: 40px; border-top: 1px solid rgb(var(--c-line)); padding-top: 24px; display: flex; justify-content: space-between; gap: 16px; font-size: .8rem; color: rgb(var(--c-muted)); }
@media (max-width: 600px) {
 .container { padding: 40px 20px; }
 .nav-inner { padding: 16px 20px; gap: 16px; }
 section { padding: 24px 20px; }
 section h3 { font-size: 1.5rem; }
 .skill-row { grid-template-columns: 1fr; gap: 4px; }
 .entry-header { flex-direction: column; gap: 6px; }
 .entry-header strong { flex: auto; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
@media print {
 body { background: white; color: #222; font-size: 10pt; }
 .site-nav, .download-btn, .site-footer { display: none; }
 .container { max-width: none; padding: 0; }
 header { margin-bottom: 20px; }
 header h1 { font-size: 28pt; }
 section { padding: 0; border: 0; box-shadow: none; background: none; margin-bottom: 20px; }
 h1, h3, strong, a, .meta a, header h2, .location, .entry-header > span { color: #222; }
 section h3 { font-size: 16pt; break-after: avoid; }
 .entry-header { break-after: avoid; }
 li { break-inside: avoid; }
}
