:root{--bg:#f5f6f4;--fg:#1c1e20;--muted:#6b7075;--rule:#d9dcd8;--accent:#2b5a87;--tag:#e8ebe7;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121416;--fg:#d9dcd7;--muted:#8a9096;--rule:#2a2e31;--accent:#8db4dc;--tag:#1d2124;color-scheme:dark}}:root[data-theme=dark]{--bg:#121416;--fg:#d9dcd7;--muted:#8a9096;--rule:#2a2e31;--accent:#8db4dc;--tag:#1d2124;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font:14px/1.65 var(--mono);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0}.page{gap:0;max-width:72ch;margin:0 auto;padding-block:56px 48px;display:grid}a{color:var(--accent);text-decoration:none}a:hover,a:focus-visible{text-underline-offset:3px;text-decoration:underline}a:focus-visible,button:focus-visible{outline:1px dashed var(--accent);outline-offset:2px}p{margin:0}.muted{color:var(--muted)}.site-header{gap:12px;padding-bottom:36px;display:grid}.brand{color:var(--fg);width:fit-content;font-size:15px;font-weight:700}.cursor{background:var(--fg);vertical-align:-2px;width:8px;height:15px;margin-left:2px;display:inline-block}.site-nav{flex-wrap:wrap;gap:4px 20px;display:flex}.site-nav a:before{content:"./";color:var(--muted)}.site-nav a[aria-current=page]{color:var(--fg)}section{border-top:1px solid var(--rule);gap:22px;padding-block:36px;display:grid}h1,h2{color:var(--muted);margin:0;font-size:14px;font-weight:500}h1 b,h2 b{color:var(--fg);font-weight:500}.more{width:fit-content}.prose{gap:10px;max-width:68ch;display:grid}.rows{display:grid}.proj{border-bottom:1px dashed var(--rule);grid-template-columns:18ch 1fr auto;gap:16px;padding:6px 0;display:grid}.proj>*{min-width:0}.proj .stack{color:var(--muted)}.log{gap:14px;display:grid}.entry{font-variant-numeric:tabular-nums;grid-template-columns:11ch 4ch 1fr;gap:0 14px;display:grid}.entry>*{min-width:0}.entry .src{background:var(--tag);text-align:center;border-radius:2px;height:fit-content;font-size:12px}.entry .ctx{color:var(--muted);grid-column:3;font-size:13px}.year{color:var(--muted);padding-top:8px}.filters{flex-wrap:wrap;gap:6px 14px;display:flex}.filters button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0}.filters button[aria-pressed=true]{color:var(--fg)}.filters button:before{content:"["}.filters button:after{content:"]"}.empty{color:var(--muted)}.activity{gap:10px;display:grid}.activity svg{width:100%;height:auto;display:block}.activity .lbl{font:9px var(--mono);fill:var(--muted)}.activity .l0{fill:var(--tag);background:var(--tag)}.activity .l1{fill:color-mix(in srgb, var(--accent) 30%, var(--tag));background:color-mix(in srgb, var(--accent) 30%, var(--tag))}.activity .l2{fill:color-mix(in srgb, var(--accent) 55%, var(--tag));background:color-mix(in srgb, var(--accent) 55%, var(--tag))}.activity .l3{fill:color-mix(in srgb, var(--accent) 78%, var(--tag));background:color-mix(in srgb, var(--accent) 78%, var(--tag))}.activity .l4{fill:var(--accent);background:var(--accent)}.activity-foot{flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:12px;display:flex}.legend{color:var(--muted);align-items:center;gap:3px;display:inline-flex}.legend i{border-radius:2px;width:10px;height:10px;display:inline-block}.legend i:first-child{margin-left:4px}.legend i:last-child{margin-right:4px}.xp{font-variant-numeric:tabular-nums;grid-template-columns:17ch 1fr;gap:6px 16px;display:grid}.site-footer{border-top:1px solid var(--rule);gap:22px;padding-top:36px;display:grid}.kv{grid-template-columns:10ch 1fr;gap:4px 14px;display:grid}.kv>*{overflow-wrap:anywhere;min-width:0}.colophon{color:var(--muted);border-top:1px solid var(--rule);padding-top:16px;font-size:12px}@media (width<=560px){.proj{grid-template-columns:1fr auto}.proj .desc{order:3;grid-column:1/-1}.proj .stack{display:none}.entry{grid-template-columns:4ch 1fr}.entry .date{color:var(--muted);order:-1;grid-column:2;font-size:12px}.entry .ctx{grid-column:2}.xp{grid-template-columns:1fr}.xp .when{color:var(--muted);margin-top:8px;font-size:12px}}
