:root{color-scheme:light;--color-bg:#f5ead8;--color-surface:#ebddc5;--color-text:#201e1d;--color-accent:#c67139;--color-accent-2:#7a8a5e;--color-divider:#201e1d29;--color-neutral-100:#f9f4ed;--color-neutral-200:#eee7db;--color-neutral-300:#dcd3c4;--color-neutral-400:#c0b6a5;--color-neutral-500:#a19786;--color-neutral-600:#82796a;--color-neutral-700:#645c50;--color-neutral-800:#474238;--color-neutral-900:#2e2b25;--color-accent-100:#fff2eb;--color-accent-200:#ffe1d0;--color-accent-300:#ffc6a5;--color-accent-400:#f6a06b;--color-accent-500:#d67f48;--color-accent-600:#b2622d;--color-accent-700:#8c491a;--color-accent-800:#643312;--color-accent-900:#402310;--color-accent-2-100:#f0fae1;--color-accent-2-200:#e1eecc;--color-accent-2-300:#ccdbb2;--color-accent-2-400:#aebf92;--color-accent-2-500:#8fa073;--color-accent-2-600:#728157;--color-accent-2-700:#56633f;--color-accent-2-800:#3d472b;--color-accent-2-900:#272e1b;--font-heading:"DM Serif Display", Georgia, serif;--font-heading-weight:400;--font-body:"Archivo", system-ui, sans-serif;--font-mono:ui-monospace, Menlo, monospace;--space-1:4.4px;--space-2:8.8px;--space-3:13.2px;--space-4:17.6px;--space-6:26.4px;--space-8:35.2px;--radius-sm:8px;--radius-md:16px;--radius-lg:28px;--shadow-sm:0 1px 2px #2e2b2524;--shadow-md:0 3px 10px #2e2b2529;--shadow-lg:0 12px 32px #2e2b2538;--astro-code-foreground:#efe6d6;--astro-code-background:var(--color-neutral-900);--astro-code-token-constant:#f6a06b;--astro-code-token-string:#f6a06b;--astro-code-token-string-expression:#f6a06b;--astro-code-token-keyword:#aebf92;--astro-code-token-comment:#82796a;--astro-code-token-function:#efe6d6;--astro-code-token-parameter:#f6a06b;--astro-code-token-punctuation:#cfc6b6;--astro-code-token-link:#f6a06b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg:#1b1917;--color-surface:#262320;--color-text:#f2e7d6;--color-divider:#f2e7d62e;--color-accent:#f6a06b;--color-accent-2:#aebf92;--color-accent-100:#3c2313;--color-accent-200:#4a2a16;--color-accent-600:#ffc6a5;--color-accent-700:#ffc6a5;--color-accent-800:#ffe1d0;--color-accent-900:#ffe1d0;--color-accent-2-100:#2b3320;--color-accent-2-800:#ccdbb2;--color-accent-2-900:#e1eecc;--color-neutral-100:#332f2a;--color-neutral-800:#eee7db;--shadow-sm:0 1px 2px #0006;--shadow-md:0 3px 10px #00000073;--shadow-lg:0 12px 32px #00000080}}:root[data-theme=dark]{color-scheme:dark;--color-bg:#1b1917;--color-surface:#262320;--color-text:#f2e7d6;--color-divider:#f2e7d62e;--color-accent:#f6a06b;--color-accent-2:#aebf92;--color-accent-100:#3c2313;--color-accent-200:#4a2a16;--color-accent-600:#ffc6a5;--color-accent-700:#ffc6a5;--color-accent-800:#ffe1d0;--color-accent-900:#ffe1d0;--color-accent-2-100:#2b3320;--color-accent-2-800:#ccdbb2;--color-accent-2-900:#e1eecc;--color-neutral-100:#332f2a;--color-neutral-800:#eee7db;--shadow-sm:0 1px 2px #0006;--shadow-md:0 3px 10px #00000073;--shadow-lg:0 12px 32px #00000080}*,:before,:after{box-sizing:border-box}html{background:var(--color-bg)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0;font-size:15px;font-weight:400;line-height:1.55}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:0;margin:0 0 var(--space-2);line-height:1.12}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}a:hover{color:var(--color-accent-600)}img{max-width:100%;display:block}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}.container{max-width:1060px;margin:0 auto;padding:0 40px 120px}@media (width<=640px){.container{padding:0 20px 80px}}.kicker{font:600 10px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-700)}.meta{font:600 11px var(--font-mono);color:color-mix(in srgb, var(--color-text) 50%, transparent);align-items:center;gap:6px;display:flex}.btn{cursor:pointer;font-family:var(--font-body);color:var(--color-text);padding:var(--space-2) calc(var(--space-3) * 1.2);background:0 0;border:1px solid #0000;border-radius:2px;justify-content:center;align-items:center;gap:6px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent-600);color:var(--color-bg)}.btn-secondary{border-color:var(--color-divider);color:var(--color-text)}.btn-secondary:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent);color:var(--color-text)}.btn-ghost{color:var(--color-accent);padding-inline:var(--space-1)}.btn-ghost:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.tag{letter-spacing:.02em;border-radius:2px;align-items:center;padding:3px 10px;font-size:11px;text-decoration:none;display:inline-flex}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-accent-2{background:var(--color-accent-2-100);color:var(--color-accent-2-800)}.tag-neutral{background:var(--color-neutral-100);color:var(--color-neutral-800)}button.tag{cursor:pointer;font:inherit;border:none;font-size:11.5px}.tag-filter{color:inherit;border:1px solid var(--color-divider);background:0 0;padding:4px 12px;font-size:11.5px}.tag-filter:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent);color:inherit}.tag-filter-active,.tag-filter-active:hover{background:var(--color-accent);color:var(--color-bg);border:1px solid var(--color-accent)}.card{gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);color:inherit;border-radius:3px;flex-direction:column;text-decoration:none;display:flex}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:22px;line-height:1.2}.card-body{opacity:.8;flex:1;margin:0;font-size:14px}.elev-sm{box-shadow:var(--shadow-sm);transition:box-shadow .15s}.elev-sm:hover{box-shadow:var(--shadow-md)}@media (prefers-reduced-motion:reduce){.btn,.elev-sm{transition:none}}.site-nav{align-items:center;gap:var(--space-4);padding:26px 0 0;display:flex;position:relative}.nav-brand{font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-text);margin-right:auto;font-size:28px;text-decoration:none}.nav-links{align-items:center;gap:var(--space-4);display:flex}.nav-links a:not(.icon-btn){color:inherit;font-size:14px;font-weight:500;text-decoration:none}.nav-links a:not(.icon-btn):hover,.nav-links a[aria-current=page]{color:var(--color-accent)}.nav-links-icon-label{display:none}.icon-btn{width:32px;height:32px;color:inherit;cursor:pointer;opacity:.75;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.icon-btn:hover{opacity:1;background:color-mix(in srgb, var(--color-text) 7%, transparent)}.nav-menu-btn{display:none}@media (width<=640px){.nav-menu-btn{display:inline-flex}.nav-links{background:var(--color-bg);border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);z-index:20;flex-direction:column;align-items:flex-start;gap:16px;margin-top:14px;padding:18px 4px;display:none;position:absolute;top:100%;left:0;right:0}.nav-links[data-open=true]{display:flex}.nav-links a.icon-btn{justify-content:flex-start;width:auto;height:auto}.nav-links-icon-label{opacity:1;font-size:14px;font-weight:500;display:inline}}.site-footer{border-top:1px solid var(--color-divider);padding:30px 40px 46px}.site-footer .container{flex-wrap:wrap;align-items:center;gap:18px;padding:0;font-size:13px;display:flex}.site-footer .muted{opacity:.55}.site-footer nav{gap:18px;margin-left:auto;display:flex}.prose{font-size:17.5px;line-height:1.72}.prose p{text-wrap:pretty;margin:0 0 22px}.prose h2{letter-spacing:-.02em;margin:44px 0 16px;font-size:30px}.prose h3{margin:32px 0 12px;font-size:22px}.prose ul,.prose ol{gap:8px;margin:0 0 22px;padding-left:22px;display:grid}.prose code{font:14.5px var(--font-mono);background:color-mix(in srgb, var(--color-text) 9%, transparent);border-radius:6px;padding:2px 6px}.code-frame{border-radius:var(--radius-md);background:var(--astro-code-background);margin:0 0 26px;overflow:hidden}.code-frame-title{background:#ffffff0f;align-items:center;gap:8px;padding:9px 16px;display:flex}.code-frame-dot{background:var(--astro-code-token-string);border-radius:50%;width:9px;height:9px}.code-frame-lang{font:600 10px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--astro-code-token-punctuation)}.prose pre{font:13.5px/1.75 var(--font-mono);margin:0;padding:18px 20px}.prose pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}.prose img{border-radius:var(--radius-md);margin:0 0 26px}.prose blockquote,.prose .callout{background:var(--color-accent-100);border-radius:var(--radius-md);color:var(--color-accent-900);margin:0 0 28px;padding:24px}.prose blockquote p:last-child,.prose .callout p:last-child{margin:0;font-size:16px;line-height:1.6}.media-placeholder{border-radius:var(--radius-md);background:var(--color-accent-2-100);color:var(--color-accent-2-900);place-items:center;text-decoration:none;display:grid;position:relative;overflow:hidden}.media-placeholder:before{content:"";background:repeating-linear-gradient(38deg, transparent 0 10px, color-mix(in srgb, var(--color-accent-2-800) 14%, transparent) 10px 20px);position:absolute;inset:0}.media-placeholder span{font:600 10.5px/1.5 var(--font-mono);text-align:center;letter-spacing:.05em;position:relative}.media-placeholder-portrait{background:var(--color-accent-200);color:var(--color-accent-800)}.media-placeholder-portrait:before{background:repeating-linear-gradient(38deg, transparent 0 11px, color-mix(in srgb, var(--color-accent-700) 12%, transparent) 11px 22px)}.search-box{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:2px;align-items:center;gap:12px;padding:6px 8px 6px 20px;display:flex}.search-box input{font:inherit;color:inherit;background:0 0;border:0;outline:none;flex:1;padding:8px 0;font-size:17px}.search-box input::placeholder{color:color-mix(in srgb, var(--color-text) 45%, transparent)}
