:root{--font-mono: "Space Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-text: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--bg: #f3efe6;--surface: #fffdf7;--surface-2: #faf6ec;--ink: #1b1a17;--muted: #74706a;--line: #e4ddcf;--line-strong: #d2c9b6;--accent: #2f7d6b;--accent-ink: #1f5a4d;--cell: #f0c66b;--shadow: 0 1px 2px rgba(35, 30, 20, .06), 0 8px 28px -12px rgba(35, 30, 20, .18);--radius: 14px;--radius-sm: 10px;--maxw: 680px;--maxw-narrow: 620px;--step: clamp(1rem, .9rem + .5vw, 1.0625rem)}[data-theme=dark]{--bg: #131310;--surface: #1b1b16;--surface-2: #201f19;--ink: #ece7da;--muted: #9b958a;--line: #2c2b23;--line-strong: #3a382e;--accent: #4fc0a3;--accent-ink: #6fd4ba;--cell: #d6a948;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 32px -14px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-text);font-size:var(--step);line-height:1.65;color:var(--ink);background-color:var(--bg);-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}body:before{content:"";position:fixed;z-index:0;top:-28px;left:-28px;width:calc(100% + 56px);height:calc(100% + 56px);pointer-events:none;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:26px 26px;transform:translateZ(0);will-change:transform;animation:drift 19s linear infinite}@keyframes drift{0%{transform:translateZ(0)}to{transform:translate3d(26px,26px,0)}}@media (prefers-reduced-motion: reduce){body:before{animation:none}}body.no-drift:before{animation:none}body:after{content:"";position:fixed;z-index:0;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 0%,var(--bg) 78%)}.wrap{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:clamp(1.25rem,4vw,2rem) 1.25rem 3.5rem}.wrap.wrap-prose{max-width:66ch}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:clamp(2rem,6vw,3.5rem)}.topbar a.home{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;transition:color .18s ease}.topbar a.home:hover{color:var(--accent-ink)}.theme-toggle{font:inherit;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;padding:.4rem .7rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:border-color .2s ease,color .2s ease,background .2s ease}.theme-toggle:hover{border-color:var(--accent);color:var(--ink)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle svg{width:14px;height:14px}.prose h1,.prose h2,.prose h3{font-family:var(--font-mono);letter-spacing:-.01em;line-height:1.2}.prose h1{font-size:clamp(1.6rem,1.1rem + 2.4vw,2.1rem);margin:0 0 .5rem}.prose h2{font-size:1.3rem;margin:2rem 0 .8rem}.prose h3{font-size:1.1rem;margin:1.6rem 0 .6rem}.prose p{margin:0 0 1rem}.prose a{color:var(--accent-ink);text-decoration:underline;text-decoration-color:var(--cell);text-decoration-thickness:2px;text-underline-offset:3px;transition:text-decoration-color .18s ease}.prose a:hover{text-decoration-color:var(--accent)}.prose img{max-width:100%;height:auto;border-radius:var(--radius-sm);border:1px solid var(--line);display:block;margin:1.2rem 0}.prose blockquote{margin:1.2rem 0;padding:.4rem 1rem;border-left:3px solid var(--accent);color:var(--muted);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.92em;background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:.1em .35em}.prose pre{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem;overflow-x:auto;font-size:.9rem;line-height:1.5}.prose pre code{background:transparent;border:0;padding:0}.prose ul,.prose ol{padding-left:1.4rem;margin:0 0 1rem}.prose li{margin:.25rem 0}.prose hr{border:0;border-top:1px solid var(--line-strong);margin:2rem 0}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}footer.site{margin-top:clamp(2.5rem,7vw,3.5rem);padding-top:1.1rem;border-top:1px solid var(--line-strong);text-align:center;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;color:var(--muted)}footer.site a{color:var(--muted);text-decoration:none}footer.site a:hover{color:var(--accent-ink)}
