@font-face{font-family:commit mono;src:url(/fonts/commit-mono-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:commit mono;src:url(/fonts/commit-mono-700.woff2)format("woff2");font-weight:700;font-display:swap}:root{--bg:#fbfbf9;--fg:#1b1d21;--muted:#6b7280;--rule:#e5e5e0;--accent:#0f8a3c;--code-bg:#0e1014;--mono:"Commit Mono", ui-monospace, "JetBrains Mono", "Source Code Pro", Menlo, monospace;--sans:system-ui, -apple-system, "Segoe UI", sans-serif}@media(prefers-color-scheme:dark){:root{--bg:#0e1014;--fg:#e4e7ec;--muted:#8a93a3;--rule:#22262e;--accent:#3dff7a}}*{box-sizing:border-box}html{background:var(--bg);color:var(--fg)}body{margin:0 auto;max-width:42rem;padding:2.5rem 1.25rem 4rem;font:1.0625rem/1.7 var(--sans)}a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent)}header.site{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;margin-bottom:3rem;font-family:var(--mono);font-size:.9rem}header.site .name{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;text-decoration:none}header.site .mark{width:32px;height:32px;border-radius:50%;object-fit:cover}.cursor{display:inline-block;width:.55em;height:1.05em;margin-left:.15em;vertical-align:-.15em;background:var(--accent);animation:blink 1.1s steps(1)infinite}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.cursor{animation:none}}nav{display:flex;gap:1rem}nav a{color:var(--muted);text-decoration:none}.intro{color:var(--muted);margin:0 0 2.5rem}h1,h2,h3{line-height:1.3}h1{font-size:1.75rem;margin:0 0 .25rem}.year h2{font:600 .85rem var(--mono);color:var(--muted);margin:2rem 0 .5rem}ul.posts{list-style:none;padding:0;margin:0}ul.posts li{display:flex;gap:1rem;padding:.35rem 0;border-bottom:1px solid var(--rule)}ul.posts time,.meta{font:.85rem var(--mono);color:var(--muted);white-space:nowrap}ul.posts time{min-width:4.5rem;padding-top:.15rem}article header{margin-bottom:2rem}article img{max-width:100%;height:auto;border-radius:6px}code{font:.9em var(--mono)}:not(pre)>code{background:var(--rule);padding:.1em .35em;border-radius:4px}pre{padding:1rem;border-radius:6px;overflow-x:auto;background:var(--code-bg)!important;line-height:1.5}blockquote{margin:1.5rem 0;padding-left:1rem;border-left:3px solid var(--accent);color:var(--muted)}hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0}footer.site{margin-top:4rem;padding-top:1rem;border-top:1px solid var(--rule);font:.8rem var(--mono);color:var(--muted)}.avatar{display:block;width:160px;height:160px;border-radius:50%;object-fit:cover;margin-bottom:1.5rem}form.contact{display:grid;gap:1rem;margin:1rem 0 .5rem}form.contact label{display:grid;gap:.3rem;font:.85rem var(--mono);color:var(--muted)}form.contact input,form.contact textarea{font:1rem var(--sans);color:var(--fg);background:0 0;border:1px solid var(--rule);border-radius:6px;padding:.6rem .75rem}form.contact input:focus,form.contact textarea:focus{outline:2px solid var(--accent);outline-offset:1px}form.contact button{justify-self:start;font:700 .9rem var(--mono);cursor:pointer;color:var(--bg);background:var(--fg);border:0;border-radius:6px;padding:.6rem 1.25rem}form.contact button:hover{background:var(--accent)}form.contact .hp{position:absolute;left:-9999px}dl.setup{margin:0}dl.setup dt{margin-top:1rem;font:700 1rem var(--mono)}dl.setup dd{margin:.2rem 0 0}