:root{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#141413;--bg-2:#1b1a18;--bg-3:#24231f;--fg:#e8e6e3;--dim:#94908a;--faint:#5f5c56;--border:#3a3833;--accent:#d97757;--accent-2:#eba58a;--ok:#7cc37f;--err:#ec7b7b;--warn:#e5c07b;--link:#8ab4f8;--linkedin:#6aa9e9;--snow:#eef3f8;--flake:#d7e8ff;--flake-dim:#7f93ad;--tree:#3fa34d;--tree-dark:#2a7a36;--trunk:#9a6a3c;--roof:#a8323a;--roof-dark:#86262e;--wall:#9a6a3c;--wall-dark:#6f4a29;--window:#ffd66b;--frame:#4a3020;--door:#5c3a22;--chimney:#8a4b32;--smoke:#8a8f99;--light-r:#ff5a5a;--light-y:#ffd66b;--light-b:#6ab0ff;--santa:#d7353b;--santa-dark:#9e2328;--fur:#f6f6f2;--skin:#f2c09b;--buckle:#e5c07b;--sack:#b08a5a;--sack-dark:#85653e;--reindeer:#a8794f;--antler:#d9c49a;--rein:#c9a35a;--ground-snow:#dfe8f2;--soil:#4b3a2e;--moon:#f3e3a1;--star:#6f7c90;--font:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;--fs:15px;--radius:8px;--gutter:16px}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);scroll-padding:56px 0 140px;scrollbar-color:var(--border)transparent}body{background:var(--bg);color:var(--fg);font:400 var(--fs)/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;margin:0}::selection{background:var(--accent);color:var(--bg)}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}ul,ol{list-style:none;margin:0;padding:0}kbd{font:inherit;border:1px solid var(--border);color:var(--fg);background:var(--bg-3);border-bottom-width:2px;border-radius:4px;padding:0 .35em;font-size:.85em}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.accent{color:var(--accent)}.dim{color:var(--dim)}.fg{color:var(--fg)}.ok{color:var(--ok)}.err{color:var(--err)}.warn{color:var(--warn)}.indent{padding-left:2ch}.skip-link{position:absolute;z-index:100;background:var(--accent);color:var(--bg);border-radius:4px;padding:4px 10px;top:8px;left:-999px}.skip-link:focus{left:8px}.term{max-width:1000px;min-height:100vh;display:flex;border-inline:1px solid var(--border);background:var(--bg);flex-direction:column;min-height:100dvh;margin:0 auto}.term-bar{position:sticky;z-index:5;display:flex;padding:8px var(--gutter);background:var(--bg-2);border-bottom:1px solid var(--border);align-items: center;gap:12px;font-size:13px;top:0}.lights{display:inline-flex;gap:6px}.lights i{background:#ec6a5e;border-radius:50%;width:11px;height:11px}.lights i:nth-child(2){background:#f4bf4f}.lights i:nth-child(3){background:#61c554}.term-title{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.tabs{display:flex;padding:8px var(--gutter);border-bottom:1px dashed var(--border);overflow-x:auto;scrollbar-width:none;gap:4px}.tabs a{display:inline-flex;color:var(--dim);white-space:nowrap;border-radius:4px;align-items: center;gap:8px;padding:2px 12px}.tabs a:hover{color:var(--fg);text-decoration:none;background:var(--bg-3)}.tabs a.active{color:var(--bg);background:var(--accent);font-weight:600}.tabs .key{opacity:.7;font-size:11px}.view{padding:20px var(--gutter)32px;outline:none;flex:1}.cmdline{color:var(--dim);min-height:1.6em;margin-bottom:18px}.ps1{color:var(--accent);font-weight:700}.cursor{display:inline-block;vertical-align:text-bottom;background:var(--accent);animation:1.1s step-end infinite blink;width:.6em;height:1.1em;margin-left:2px}@keyframes blink{50%{opacity:0}}.page{display:grid;gap:28px;transition:opacity .35s,transform .35s}.page.pending{opacity:0;transform:translateY(6px)}.tool{display:grid;gap:8px;min-width:0}.tool-call{font-size:inherit;font-weight:700}.dot{color:var(--ok);margin-right:.6ch}.tool-result,.result,.post-body{display:grid;grid-template-columns:3ch 1fr;min-width:0}.elbow{color:var(--faint);padding-left:.6ch}.block-title{font-size:inherit;color:var(--dim);margin-bottom:8px;font-weight:400}.menu{display:grid;gap:2px}.menu-item,.post-link,.filter,.btn{position:relative;display:block;color:var(--fg);outline:none;border-radius:4px}.menu-item{padding:2px 8px 2px 3ch}.menu-item:before,.post-link:before{content:"❯";position:absolute;color:var(--accent);opacity:0;left:.6ch}.menu-item:hover,.post-link:hover{text-decoration:none}.menu-item.selected{background:var(--bg-3);color:var(--accent-2)}.menu-item:focus-visible{background:var(--bg-3);color:var(--accent-2)}.menu-item.selected:before,.post-link.selected:before{opacity:1}.menu-item:focus-visible:before{opacity:1}.post-link:focus-visible:before{opacity:1}.menu .label{font-weight:600}.num{color:var(--dim)}.welcome{display:grid;border:1px solid var(--accent);border-radius:var(--radius);justify-self:start;gap:2px;max-width:100%;padding:12px 18px}.hero{overflow:hidden;margin:0}.hero-art{display:block;user-select:none;width:100%;max-width:720px;height:auto}.hero-sleigh{transform:translate(300px)}@media (prefers-reduced-motion:no-preference){.hero-sleigh{animation:26s linear infinite sleigh-fly}}@keyframes sleigh-fly{0%{transform:translate(-200px,14px)}25%{transform:translate(70px)}50%{transform:translate(340px,10px)}75%{transform:translate(610px)}to{transform:translate(880px,8px)}}.hero-glyphs{font-family:var(--font);text-anchor:middle;dominant-baseline:central;font-size:17px}.t-snow{fill:var(--snow)}.t-flake{fill:var(--flake)}.t-flake-dim{fill:var(--flake-dim)}.t-tree{fill:var(--tree)}.t-tree-dark{fill:var(--tree-dark)}.t-trunk{fill:var(--trunk)}.t-roof{fill:var(--roof)}.t-roof-dark{fill:var(--roof-dark)}.t-wall{fill:var(--wall)}.t-wall-dark{fill:var(--wall-dark)}.t-window{fill:var(--window)}.t-frame{fill:var(--frame)}.t-door{fill:var(--door)}.t-chimney{fill:var(--chimney)}.t-smoke{fill:var(--smoke)}.t-light-r{fill:var(--light-r)}.t-light-y{fill:var(--light-y)}.t-light-b{fill:var(--light-b)}.t-santa{fill:var(--santa)}.t-santa-dark{fill:var(--santa-dark)}.t-fur{fill:var(--fur)}.t-skin{fill:var(--skin)}.t-buckle{fill:var(--buckle)}.t-sack{fill:var(--sack)}.t-sack-dark{fill:var(--sack-dark)}.t-reindeer{fill:var(--reindeer)}.t-antler{fill:var(--antler)}.t-rein{fill:var(--rein)}.t-ground-snow{fill:var(--ground-snow)}.t-soil{fill:var(--soil)}.t-moon{fill:var(--moon)}.t-star{fill:var(--star)}.identity{display:grid;gap:6px}.name{color:var(--accent);letter-spacing:-.02em;font-size:clamp(28px,7vw,44px);font-weight:700;line-height:1.1}.role{font-size:1.1em;font-weight:600}.keywords{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.keywords li{border:1px solid var(--border);color:var(--accent-2);background:var(--bg-2);border-radius:999px;padding:1px 10px}.keywords li:before{content:"#";color:var(--dim)}.about-grid{display:grid;grid-template-columns:minmax(0,220px)1fr;align-items: start;gap:28px}.avatar{display:grid;cursor:pointer;text-align:center;outline:none;background:0 0;border:0;justify-self:start;gap:8px;width:100%;max-width:220px;padding:0}.avatar-frame{position:relative;display:block;aspect-ratio:1;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-2);transition:border-color .2s,box-shadow .2s}.avatar-pixel,.avatar-real{position:absolute;width:100%;height:100%;transition:opacity .35s,filter .35s;inset:0}.avatar-pixel svg{display:block;image-rendering:pixelated;width:100%;height:100%}.avatar-real{object-fit:cover;opacity:0;filter:blur(6px)saturate(.6)}.avatar-caption{color:var(--dim);font-size:12px}.when-real{display:none;color:var(--accent)}.avatar:hover .avatar-frame,.avatar.selected .avatar-frame,.avatar[aria-pressed=true] .avatar-frame{border-color:var(--accent);box-shadow:0 0 0 4px #d977572e}.avatar:focus-visible .avatar-frame{border-color:var(--accent);box-shadow:0 0 0 4px #d977572e}.avatar:hover .avatar-real,.avatar.selected .avatar-real,.avatar[aria-pressed=true] .avatar-real{opacity:1;filter:none}.avatar:focus-visible .avatar-real{opacity:1;filter:none}.avatar:hover .avatar-pixel,.avatar.selected .avatar-pixel,.avatar[aria-pressed=true] .avatar-pixel{opacity:0}.avatar:focus-visible .avatar-pixel{opacity:0}.avatar:hover .when-pixel,.avatar.selected .when-pixel,.avatar[aria-pressed=true] .when-pixel{display:none}.avatar:focus-visible .when-pixel{display:none}.avatar:hover .when-real,.avatar.selected .when-real,.avatar[aria-pressed=true] .when-real{display:inline}.avatar:focus-visible .when-real{display:inline}.prose{display:grid;gap:12px;max-width:68ch}.lead{font-size:1.05em}.skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px 24px}.skill-group h3{font-size:inherit;font-weight:600}.dir{color:var(--link)}.skill-group li{color:var(--fg);position:relative;padding-left:2ch}.skill-group li:before{content:"├─";position:absolute;color:var(--faint);font-size:.85em;left:0}.skill-group li:last-child:before{content:"└─"}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:-12px}.filter,.btn{border:1px solid var(--border);background:var(--bg-2);cursor:pointer;padding:2px 12px}.filter:hover,.filter.selected,.btn:hover,.btn.selected{border-color:var(--accent);color:var(--accent-2)}.filter:focus-visible{border-color:var(--accent);color:var(--accent-2)}.btn:focus-visible{border-color:var(--accent);color:var(--accent-2)}.filter[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}.filter[aria-pressed=true] .dim{color:inherit;opacity:.75}.post-list{display:grid;gap:6px}.post-link{display:grid;border:1px solid #0000;gap:4px;padding:10px 12px 10px 3ch;transition:background .15s}.post-link:hover,.post-link.selected{background:var(--bg-2);border-color:var(--border)}.post-link:focus-visible{background:var(--bg-2);border-color:var(--border)}.post-head{display:flex;align-items:baseline;gap:1ch}.post-head .dot{margin:0}.post-head{flex-wrap:wrap}.post-title{overflow-wrap:anywhere;min-width:0;font-weight:700}.post-head time{margin-left:auto}.post-text{white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:5;overflow:hidden;-webkit-box-orient:vertical}.post-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 2ch;font-size:.9em}.post-link .post-meta{padding-left:3ch}.project{color:var(--accent-2)}.post-tags{display:inline-flex;flex-wrap:wrap;gap:0 1ch}.article{display:grid;gap:12px;max-width:72ch}.back{outline:none;border-radius:4px;justify-self:start}.back:hover,.back.selected,.article-nav a:hover,.article-nav a.selected{color:var(--accent-2);text-decoration:none;outline:none}.back:focus-visible{color:var(--accent-2);text-decoration:none;outline:none}.article-nav a:focus-visible{color:var(--accent-2);text-decoration:none;outline:none}.article-title{color:var(--accent-2);margin:0;font-size:1.35em;line-height:1.35}.article-body{display:grid;overflow-wrap:anywhere;gap:.9em}.article-body>*{margin:0}.article-body p{white-space:pre-line}.article-body ul,.article-body ol{padding-left:3ch}.article-body ul{list-style:"• "}.article-body h2,.article-body h3{color:var(--accent-2);font-size:1em}.article-body code{background:var(--bg-3);border-radius:4px;padding:0 4px}.article-body pre{overflow-x:auto;border:1px solid var(--border);background:var(--bg-2);border-radius:4px;padding:10px 12px}.article-body pre code{background:0 0;padding:0}.article-body blockquote{border-left:2px solid var(--border);color:var(--dim);padding-left:2ch}.btn.linkedin{display:inline-block;color:var(--linkedin)}.article-nav{display:flex;border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:8px 2ch;padding-top:12px}.link-label{display:inline-block;min-width:9ch}.contact-form{display:grid;gap:14px;max-width:640px}.field{display:grid;gap:4px}.field input,.field textarea{border:1px solid var(--border);background:var(--bg-2);outline:none;resize:vertical;border-radius:4px;width:100%;padding:6px 10px}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.field input:focus,.field textarea:focus,.field .selected{border-color:var(--accent)}.hp{position:absolute;width:1px;height:1px;left:-9999px}.form-actions{display:flex;flex-wrap:wrap;align-items: center;gap:12px 16px}.btn{font-weight:600}.btn[disabled]{opacity:.6;cursor:progress}.hint{font-size:12px}.form-status:empty{display:none}.console{position:sticky;z-index:5;padding:8px var(--gutter)6px;background:linear-gradient(to bottom,#141413d9,var(--bg)24px);backdrop-filter:blur(4px);bottom:0}.cmd-out{overflow-y:auto;border-left:2px solid var(--border);background:var(--bg-2);display:grid;gap:8px;max-height:38vh;margin-bottom:8px;padding:8px 12px}.cmd-out[hidden]{display:none}.echo{color:var(--dim)}.help{display:grid;gap:4px}.help ul{display:grid;gap:0;margin-bottom:6px}.help li{display:grid;grid-template-columns:12ch 1fr;gap:1ch}.prompt-box{display:flex;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);align-items: center;gap:1ch;padding:6px 12px;transition:border-color .15s}.prompt-box:focus-within{border-color:var(--dim)}.prompt-box input{outline:none;caret-color:var(--accent);background:0 0;border:0;flex:1;min-width:0}.prompt-box input::placeholder{color:var(--faint)}.cmd-suggest{display:grid;padding:4px 12px 0}.cmd-suggest[hidden]{display:none}.cmd-suggest li{display:grid;grid-template-columns:12ch 1fr;gap:1ch}.cmd-suggest li:first-child .s-name{color:var(--accent)}.s-desc{color:var(--dim)}.statusbar{display:flex;justify-content:space-between;gap:16px;padding:4px 4px 0;font-size:12px}.status-right{white-space:nowrap}.boot{position:fixed;z-index:50;display:grid;background:var(--bg);place-items: center;transition:opacity .25s;inset:0}.boot.done{opacity:0;pointer-events:none}.boot-inner{width:min(560px,calc(100vw - 2*var(--gutter)));display:grid;gap:2px}.boot-skip{position:absolute;color:var(--faint);font-size:12px;bottom:24px}@media (max-width:640px){:root{--fs:14px}.about-grid{grid-template-columns:1fr}.avatar{justify-self:center;max-width:200px}.hide-sm,.term-size{display:none}.term{border:0}.help li,.cmd-suggest li{grid-template-columns:10ch 1fr}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.proj-link.has-image{grid-template-columns:minmax(0,1fr)128px;column-gap:2ch}.proj-link.has-image>:not(.proj-thumb){grid-column:1}.proj-thumb{grid-column:2;grid-row:1/span 3;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--border);border-radius:4px;align-self: start;width:128px}.featured{color:var(--accent)}.proj-image{display:block;border:1px solid var(--border);border-radius:6px;max-width:100%;height:auto}.proj-links{display:flex;flex-wrap:wrap;gap:1ch}@media (max-width:640px){.proj-link.has-image{grid-template-columns:minmax(0,1fr)}.proj-thumb{grid-column:1;grid-row:auto;width:100%}}
