:root{--bg:#0a0a0b;--bg-raised:#0f0f11;--bg-panel:#0c0c0e;--fold:#141417;--cursorline:#ffffff07;--selection:#2c3440;--border:#222226;--border-strong:#34343a;--nontext:#2a3448;--ln:#34343a;--ln-active:#9a9aa2;--comment:#6e6e76;--dim:#85858d;--fg:#d9d9de;--fg-bright:#f2f2f4;--keyword:#e19067;--func:#7fa7cb;--type:#c4a8d6;--string:#a3b991;--ok:#7cc48a;--warn:#d9a35a;--error:#e08585;--font:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--tabline:38px;--winbar:34px;--statusline:26px;--cmdline:24px;--explorer:248px;--gutter:6ch;--ind:2ch;--ease:cubic-bezier(.2, .7, .2, 1);interpolate-size:allow-keywords}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--fg);scroll-behavior:smooth;scroll-padding-top:calc(var(--tabline) + var(--winbar) + 8px);scrollbar-color:var(--border-strong) var(--bg);scrollbar-width:thin}body{min-width:320px;padding-bottom:calc(var(--statusline) + var(--cmdline));background:var(--bg);color:var(--fg);font-family:var(--font);font-feature-settings:"calt" 1, "zero" 1;-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.7;overflow-x:hidden}::selection{background:var(--selection);color:var(--fg-bright)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}h1,h2,h3,p,figure{margin:0}:focus-visible{outline:1px solid var(--func);outline-offset:3px}.skip-link{z-index:100;background:var(--fg-bright);color:var(--bg);padding:6px 12px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}.k{color:var(--keyword)}.f{color:var(--func)}.s{color:var(--string)}.p{color:var(--dim)}.prop{color:var(--fg)}.dim{color:var(--comment)}.c,.c i{color:var(--comment);font-style:italic}.ok{color:var(--ok)}.inline{font:inherit;display:inline}.link{transition:background-size .3s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat}.link:hover{background-size:100% 1px}.tabline{z-index:30;height:var(--tabline);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);align-items:stretch;font-size:12px;display:flex;position:fixed;inset:0 0 auto}.workspace{flex:0 0 var(--explorer);border-right:1px solid var(--border);color:var(--fg-bright);align-items:center;padding:0 16px;display:flex}.buffers{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.buffers::-webkit-scrollbar{display:none}.buffers a{border-right:1px solid var(--border);color:var(--comment);flex:none;align-items:center;gap:8px;padding:0 16px;transition:color .2s,background-color .2s;display:flex;position:relative}.buffers a:after{content:"";background:var(--keyword);height:1px;transition:transform .35s var(--ease);position:absolute;inset:auto 0 -1px;transform:scaleX(0)}.buffers a:hover{color:var(--fg)}.buffers a.is-active{background:var(--bg-raised);color:var(--fg-bright)}.buffers a.is-active:after{transform:scaleX(1)}.branch{border-left:1px solid var(--border);color:var(--keyword);align-items:center;gap:6px;padding:0 16px;display:flex}.ico{place-items:center;width:2ch;font-size:10px;font-style:normal;font-weight:700;display:inline-grid}.ico.ts{color:var(--func)}.ico.md{color:var(--type)}.ico.lua{color:#8b9fe0}.ico.sh{color:var(--keyword)}.ico.health{color:var(--ok)}.ico.img{color:var(--warn)}.layout{grid-template-columns:var(--explorer) minmax(0, 1fr);padding-top:var(--tabline);display:grid}.explorer{top:var(--tabline);height:calc(100vh - var(--tabline) - var(--statusline) - var(--cmdline));height:calc(100dvh - var(--tabline) - var(--statusline) - var(--cmdline));border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;font-size:12.5px;display:flex;position:sticky}.pane-title{color:var(--comment);letter-spacing:.12em;padding:12px 16px 8px;font-size:10.5px}.tree-root{color:var(--fg);padding:2px 12px 6px;font-weight:500}.chev{color:var(--comment)}.tree{flex-direction:column;display:flex;position:relative}.tree a{z-index:1;color:var(--dim);align-items:center;gap:8px;padding:4px 16px 4px 28px;transition:color .2s;display:flex;position:relative}.tree a:hover,.tree a.is-active{color:var(--fg-bright)}.tree-cursor{border-left:2px solid var(--func);background:var(--selection);width:100%;height:29px;transition:transform .35s var(--ease), height .35s var(--ease);position:absolute;top:0;left:0}.keys{border-top:1px solid var(--border);margin-top:20px}.keys dl{gap:4px;margin:0;padding:0 16px;font-size:11.5px;display:grid}.keys div{justify-content:space-between;display:flex}.keys dd{color:var(--comment);margin:0}kbd{border:1px solid var(--border-strong);min-width:2.4ch;color:var(--fg);font:inherit;text-align:center;border-bottom-width:2px;border-radius:3px;padding:0 4px;font-size:10.5px;display:inline-block}.explorer-foot{border-top:1px solid var(--border);color:var(--comment);justify-content:space-between;margin-top:auto;padding:12px 16px;font-size:10.5px;display:flex}.buffer{min-width:0}.winbar{z-index:20;top:var(--tabline);height:var(--winbar);padding:0 20px 0 var(--gutter);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 90%, transparent);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;font-size:12px;display:flex;position:sticky}.crumbs b{color:var(--ln);margin:0 8px;font-weight:400}.crumbs strong{color:var(--fg);font-weight:500}.diag{color:var(--comment);align-items:center;gap:8px;display:flex}.diag i{background:var(--ok);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 18%, transparent);border-radius:50%}main{max-width:1120px;padding-right:32px}.file{counter-reset:ln;padding:72px 0 40px}.file+.file{border-top:1px dashed var(--border)}.l{min-height:1.7em;padding-left:var(--gutter);overflow-wrap:anywhere;transition:background-color .15s;position:relative}.l:before{counter-increment:ln;content:counter(ln);width:calc(var(--gutter) - 2.5ch);color:var(--ln);text-align:right;user-select:none;font-size:12px;font-style:normal;font-weight:400;line-height:1.7rem;transition:color .15s;position:absolute;top:0;left:0}.l:hover{background:var(--cursorline)}.l:hover:before{color:var(--ln-active)}.i1{padding-left:calc(var(--gutter) + var(--ind))}.i2{padding-left:calc(var(--gutter) + var(--ind) * 2)}.prose{max-width:calc(68ch + var(--gutter))}.js .file .l{opacity:0;transform:translateY(6px)}.js .file.is-in .l{opacity:1;transition:opacity .55s var(--ease) calc(var(--i,0) * 32ms), transform .55s var(--ease) calc(var(--i,0) * 32ms), background-color .15s;transform:none}.cursor{background:var(--fg);vertical-align:-.2em;width:.6em;height:1.15em;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero{padding-top:clamp(48px,10vh,112px)}.name-line{padding-top:6px;padding-bottom:10px}.name-line h1{color:var(--string);letter-spacing:-.045em;margin:4px 0 0 -.04em;font-size:clamp(40px,7.4vw,104px);font-weight:700;line-height:1}.name-line .q{color:color-mix(in srgb, var(--string) 55%, var(--bg));font-weight:400}.name-line .comma{color:var(--ln-active);font-weight:400}.js .ch{opacity:0;animation:10ms linear forwards type;animation-delay:calc(.35s + var(--c) * 55ms)}@keyframes type{to{opacity:1}}.hero .prose{color:var(--dim)}.actions{flex-wrap:wrap;gap:10px;padding-top:8px;padding-bottom:8px;display:flex}.cmd{border:1px solid var(--border-strong);color:var(--fg);cursor:pointer;transition:border-color .2s, background-color .2s, color .2s, transform .2s var(--ease);background:0 0;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:inline-flex}.cmd span{color:var(--func)}.cmd:hover{border-color:var(--func);transform:translateY(-1px)}.cmd.primary{border-color:var(--func);background:var(--func);color:var(--bg)}.cmd.primary span{color:color-mix(in srgb, var(--bg) 60%, var(--func))}.cmd.primary:hover{background:color-mix(in srgb, var(--func) 85%, white)}.md-h{color:var(--fg-bright);letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1.7rem}.md-h.sub{font-size:15px}.hash{color:var(--type);font-weight:400}.about{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:40px;display:grid}.about-copy .prose{color:var(--fg)}.bullet{color:var(--keyword)}.about-copy strong{color:var(--fg-bright);font-weight:500}.portrait{top:calc(var(--tabline) + var(--winbar) + 24px);border:1px solid var(--border);background:var(--bg-raised);position:sticky}.portrait figcaption{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 10px;font-size:11.5px;display:flex}.portrait figcaption .dim{margin-left:auto}.portrait-frame{aspect-ratio:1;overflow:hidden}.portrait img{object-fit:cover;filter:grayscale()contrast(1.05)brightness(.9);width:100%;height:100%;transition:filter .6s var(--ease), transform .8s var(--ease);display:block;transform:scale(1.02)}.portrait:hover img{filter:grayscale(0)contrast()brightness();transform:scale(1)}.folds{margin:6px 0}.fold summary{cursor:pointer;user-select:none;align-items:baseline;gap:1ch;list-style:none;display:flex}.fold summary::-webkit-details-marker{display:none}.fold:not([open])>summary{background:var(--fold);color:var(--dim)}.fold:not([open])>summary:hover{background:color-mix(in srgb, var(--fold) 70%, var(--selection))}.fold-mark:before{content:"+--";color:var(--comment)}.fold[open] .fold-mark:before{content:"-  ";white-space:pre}.fold-title strong{color:var(--fg-bright);font-weight:500}.fold-fill{border-bottom:1px dotted var(--border-strong);flex:1;min-width:2ch;transform:translateY(-5px)}.fold-period{color:var(--comment);white-space:nowrap;align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.live{background:var(--ok);border-radius:50%;width:6px;height:6px;animation:2.4s ease-in-out infinite live}@keyframes live{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 45%, transparent)}60%{box-shadow:0 0 0 6px #0000}}.fold::details-content{opacity:0;block-size:0;transition:block-size .4s var(--ease), opacity .3s, content-visibility .4s allow-discrete;overflow:hidden}.fold[open]::details-content{opacity:1;block-size:auto}.fold-body{padding:2px 0 14px}.note{max-width:calc(80ch + var(--gutter));color:var(--fg);gap:1.5ch;display:flex}.note .bullet{color:var(--comment);flex:none}.tags{flex-wrap:wrap;gap:6px;padding-top:6px;display:flex}.tag{border:1px solid var(--border);color:var(--dim);border-radius:2px;padding:0 8px;font-size:11.5px;line-height:1.8;transition:border-color .2s,color .2s}.tag:hover{border-color:var(--border-strong);color:var(--fg)}.tag.link{color:var(--func)}.rule{color:var(--border-strong);white-space:nowrap;overflow:hidden}.rule:after{content:"=============================================================================================================="}.health-h{color:var(--fg-bright);font-size:14px;font-weight:700}.health-group{color:var(--fg-bright);font-size:14px;font-weight:500}.health-group:before{content:"- ";color:var(--comment)}.check{color:var(--fg)}.badge{margin-right:6px;font-weight:700;display:inline-block}.check.ok .badge{color:var(--ok)}.check.warn .badge{color:var(--warn)}.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:14px 0 10px;display:grid}.card{margin-left:calc(var(--gutter) + var(--ind));border:1px solid var(--border);background:var(--bg-raised);transition:border-color .3s, transform .4s var(--ease), background-color .3s;flex-direction:column;padding:0;display:flex}.projects .card+.card{margin-left:0}.card:before{display:none}.card:hover{border-color:var(--border-strong);background:var(--bg-raised);transform:translateY(-3px)}.card-art{border-bottom:1px solid var(--border);background:var(--bg)}.card-art svg{background:radial-gradient(circle at 1px 1px,#1c1c20 1px,#0000 1.4px) 0 0/20px 20px;width:100%;height:auto;display:block}.card-art svg *{stroke:var(--comment);stroke-width:1.2px;vector-effect:non-scaling-stroke}.card-art .contour,.card-art .road.minor{stroke:var(--border-strong)}.card-art .land{fill:color-mix(in srgb, var(--string) 10%, transparent);stroke:var(--string)}.card-art .signal{stroke:var(--ok)}.card-art .dot{fill:var(--keyword);stroke:none}.card-art .pulse{stroke:var(--keyword);transform-box:fill-box;transform-origin:50%;animation:pulse 2.6s var(--ease) infinite}@keyframes pulse{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.6)}}.js .draw{stroke-dasharray:1400;stroke-dashoffset:1400px}.js .is-in .draw{stroke-dashoffset:0;transition:stroke-dashoffset 2.2s var(--ease) .3s}.card:hover .card-art svg *{stroke:var(--dim)}.card:hover .card-art .land{stroke:var(--string)}.card:hover .card-art .signal{stroke:var(--ok)}.card:hover .card-art .pulse{stroke:var(--keyword)}.card-body{flex-direction:column;flex:1;gap:8px;padding:18px 20px 20px;display:flex}.card-kicker{color:var(--comment);font-size:11.5px}.card h3{color:var(--fg-bright);letter-spacing:-.02em;font-size:18px;font-weight:700}.card-body>p:not(.card-kicker):not(.tags){color:var(--dim);font-size:13px}.card .tags{margin-top:auto}.contact{padding-bottom:24px}.term{margin-top:4px;padding-top:18px;padding-bottom:18px}.term-prompt{color:var(--dim)}.term h2{color:var(--fg-bright);letter-spacing:-.045em;margin:10px 0 22px -.04em;font-size:clamp(40px,6.6vw,88px);font-weight:700;line-height:1}.term h2 a{background:linear-gradient(var(--keyword), var(--keyword)) 0 100% / 0 3px no-repeat;transition:background-size .5s var(--ease)}.term h2 a:hover{background-size:100% 3px}.term h2 .cursor{background:var(--keyword);vertical-align:-.04em;width:.5em;height:.8em;margin-left:.12em}.term-actions{flex-wrap:wrap;gap:10px;display:flex}.cmd.is-yanked{border-color:var(--ok);color:var(--ok)}.elsewhere{color:var(--comment);gap:20px;margin-top:22px;display:flex}.elsewhere a{transition:color .2s}.elsewhere a:after{content:" ↗";color:var(--ln-active)}.elsewhere a:hover{color:var(--fg-bright)}.eob{color:var(--nontext);user-select:none;flex-direction:column;padding:0 0 48px 1ch;display:flex}.statusbar{z-index:30;background:var(--bg);position:fixed;inset:auto 0 0}.statusline{height:var(--statusline);font-size:11.5px;line-height:var(--statusline);background:#151518;align-items:stretch;display:flex}.statusline>span{white-space:nowrap;padding:0 12px}.mode{background:var(--func);min-width:9ch;color:var(--bg);text-align:center;font-weight:700;transition:background-color .25s}.mode[data-mode=insert]{background:var(--string)}.mode[data-mode=visual]{background:var(--type)}.sl-branch{color:var(--keyword);background:#1f1f23}.sl-file{color:var(--fg)}.sl-spacer{flex:1}.sl-meta{color:var(--comment)}.sl-pos{min-width:7ch;color:var(--fg);text-align:center;background:#1f1f23}.cmdline{height:var(--cmdline);color:var(--fg);font-size:12px;line-height:var(--cmdline);white-space:nowrap;text-overflow:ellipsis;padding:0 12px;overflow:hidden}@media (width<=1100px){.about{grid-template-columns:minmax(0,1fr) 200px;gap:28px}}@media (width<=960px){:root{--gutter:5ch}.layout{grid-template-columns:minmax(0,1fr)}.explorer,.branch{display:none}.workspace{flex-basis:auto}main{padding-right:20px}.projects{grid-template-columns:minmax(0,1fr)}.projects .card+.card{margin-left:calc(var(--gutter) + var(--ind))}}@media (width<=680px){:root{--gutter:4.5ch;--ind:1.5ch}body{font-size:13px}.workspace{display:none}.buffers a{padding:0 12px}.winbar,main{padding-right:14px}.file{padding-top:48px}.about{grid-template-columns:minmax(0,1fr)}.portrait{max-width:220px;margin-left:var(--gutter);grid-row:1;position:static}.fold summary{grid-template-columns:3ch minmax(0,1fr);align-items:start;gap:0 1ch;padding-top:4px;padding-bottom:4px;display:grid}.fold-fill{display:none}.fold-period{grid-column:2;line-height:1.5}.sl-meta,.sl-branch{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.js .file .l,.js .ch{opacity:1;transform:none}.js .draw{stroke-dashoffset:0}}
