@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/commit-mono-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-italic-400.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-italic-500.woff2)format("woff2");font-weight:500;font-style:italic;font-display:swap}:root{--bg-canvas:#ebe7e4;--bg-panel:#f4f2f0;--bg-soft:#f0f2f3;--text-base:#252f3d;--text-muted:#5c5752;--line:#8b847d;--border:#252f3d2e;--border-strong:#252f3d52;--thread-blue:#4b607c;--accent:#4b607c;--accent-surface:#4b607c14;--accent-border:#4b607c73;--success:#5c7a54;--warning:#a97a2e;--error:#a34a3a;--parchment:#dacbc2;--radius:2px;--mono:"IBM Plex Mono", "Commit Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--serif:"Newsreader", "Plantin", Georgia, "Times New Roman", serif;--sans:var(--mono);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg-canvas:#13110f;--bg-panel:#1c1a17;--bg-soft:#201d1a;--text-base:#ebe7e4;--text-muted:#a39b91;--border:#ebe7e429;--border-strong:#ebe7e44d;--accent:#93b1d1;--accent-surface:#93b1d11a;--accent-border:#93b1d180;--success:#a3a473;--warning:#e1b06e;--error:#d08a7a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}img,svg{max-width:100%}body{font-family:var(--mono);letter-spacing:.01em;color:var(--text-base);background:var(--bg-canvas);background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);-webkit-font-smoothing:antialiased;background-position:top;background-size:32px 32px;font-size:15px;line-height:1.6}body:before{content:"";pointer-events:none;background:radial-gradient(120% 90% at 50% 0,#0000 55%,#00000014 100%);position:fixed;inset:0}::selection{background:var(--accent);color:var(--bg-canvas)}a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border)}a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}#root{min-height:100svh;padding:0;display:block}.app{background:0 0;border:0;border-radius:0;flex-direction:column;width:100%;max-width:none;min-height:100svh;display:flex;overflow:clip}.topbar{border-bottom:1px solid var(--border-strong);background:var(--bg-panel);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:flex}.topbar .identity{letter-spacing:.08em;font-weight:700}.topbar .identity small{color:var(--text-muted);letter-spacing:.02em;margin-left:8px;font-weight:400}.avail{border:1px solid var(--border);background:var(--bg-canvas);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:3px 10px;display:inline-flex}.avail .dot{background:var(--success);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #5c7a542e}.topbar-actions{align-items:center;gap:8px;display:flex}.btn{font:inherit;color:var(--text-base);background:var(--bg-canvas);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;padding:5px 10px;font-size:13px}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn[aria-pressed=true]{background:var(--accent-surface);border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--text-base);color:var(--bg-canvas);border-color:var(--text-base)}.btn-primary:hover{color:var(--bg-canvas);filter:brightness(1.15)}.workspace{flex:1;grid-template-columns:216px 1fr;min-height:0;display:grid}.sidenav{border-right:1px solid var(--border-strong);background:var(--bg-panel);flex-direction:column;gap:2px;max-height:100svh;padding:14px 10px;display:flex;position:sticky;top:0;overflow-y:auto}.sidenav .nav-label{letter-spacing:.14em;color:var(--text-muted);padding:4px 10px 8px;font-size:11px}.nav-item{text-align:left;width:100%;font:inherit;border-radius:var(--radius);color:var(--text-base);cursor:pointer;background:0 0;border:1px solid #0000;align-items:baseline;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.nav-item .num{color:var(--text-muted);font-size:12px}.nav-item:hover{background:var(--accent-surface)}.nav-item[aria-current=page]{background:var(--accent-surface);border-color:var(--accent-border);color:var(--accent)}.nav-item[aria-current=page] .num{color:var(--accent)}.nav-hint{color:var(--text-muted);border-top:1px dashed var(--border);margin-top:auto;padding:12px 10px 4px;font-size:12px}.nav-hint kbd{font:inherit;border:1px solid var(--border-strong);background:var(--bg-canvas);border-bottom-width:2px;border-radius:3px;padding:0 5px;font-size:11px}.main{min-width:0;background:linear-gradient(var(--parchment) 0 0) 0 0 / 100% 3px no-repeat;min-inline-size:0;padding:24px clamp(16px,3vw,40px) 32px;overflow-x:hidden}.statusbar{border-top:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text-muted);align-items:center;gap:16px;padding:8px 16px;font-size:12px;display:flex}.statusbar .sep{opacity:.5}.statusbar .right{align-items:center;gap:12px;margin-left:auto;display:flex}.panel{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-panel)}.panel-head{border-bottom:1px solid var(--border);letter-spacing:.1em;color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex}.panel-body{padding:16px}.display{letter-spacing:-.02em;margin:0;font-size:clamp(30px,4.5vw,46px);font-weight:700;line-height:1.02}.display em,.sub em,.lede em{font-family:var(--serif);letter-spacing:0;font-style:italic;font-weight:400}.body{max-width:62ch;margin:12px 0 0;font-size:14.5px}.sub{color:var(--accent);margin:8px 0 0;font-size:16px}.lede{max-width:62ch;color:var(--text-base);margin:14px 0 0;font-size:17px;line-height:1.65}@media (width>=820px){.lede{font-size:18px}}.meta{letter-spacing:.1em;color:var(--text-muted);font-size:12px}.meta strong{color:var(--accent);font-weight:700}.grid-2{grid-template-columns:1.2fr .8fr;gap:16px;min-width:0;display:grid}.stack{flex-direction:column;gap:16px;min-width:0;display:flex}.actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.tagrow{flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.tagrow li{border:1px solid var(--border);color:var(--text-muted);background:var(--bg-canvas);border-radius:999px;padding:2px 8px;font-size:12px}.explorer{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-panel);grid-template-columns:250px 1fr;display:grid;overflow:hidden}.filelist{border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;gap:4px;padding:8px;display:flex}.file{text-align:left;font:inherit;border-radius:var(--radius);cursor:pointer;color:var(--text-base);background:0 0;border:1px solid #0000;gap:2px;padding:9px 10px;display:grid}.file .fname{font-size:13.5px;font-weight:700}.file .fsub{color:var(--text-muted);font-size:12px}.file:hover{background:var(--accent-surface)}.file[aria-selected=true]{background:var(--accent-surface);border-color:var(--accent-border)}.file[aria-selected=true] .fname{color:var(--accent)}.fstatus{letter-spacing:.08em;font-size:11px}.fstatus.ok{color:var(--success)}.fstatus.warn{color:var(--warning)}.fstatus.muted{color:var(--text-muted)}.detail{min-width:0;padding:18px}.detail h3{letter-spacing:-.01em;margin:0;font-size:22px}.detail .why{max-width:60ch;margin:10px 0 0}.kv{grid-template-columns:92px 1fr;gap:6px 12px;margin-top:14px;font-size:13px;display:grid}.kv dt{color:var(--text-muted);letter-spacing:.08em;padding-top:2px;font-size:11.5px}.kv dd{margin:0}.pixels{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-panel);overflow:hidden}.pixels pre{margin:0;padding:14px;font-size:13px;line-height:1.35;overflow-x:auto}.px-g{color:var(--success)}.px-a{color:var(--accent)}.px-m{color:var(--text-muted)}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;display:flex}.section-head h2{letter-spacing:.12em;margin:0;font-size:15px}.rule{border:0;border-top:1px dashed var(--border-strong);margin:16px 0}.contact-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.contact-list li{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-canvas);align-items:baseline;gap:10px;padding:9px 12px;display:flex}.contact-list .k{min-width:86px;color:var(--text-muted);letter-spacing:.1em;font-size:12px}.skip-link{background:var(--text-base);color:var(--bg-canvas);z-index:100;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip-link:focus{left:8px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1020px){.longpage{grid-template-columns:minmax(0,1fr)}.toc{flex-direction:row;align-items:center;position:static;overflow-x:auto}.toc-title{white-space:nowrap;padding:0 6px 0 0}.toc a{white-space:nowrap}.grid-2,.explorer{grid-template-columns:1fr}.filelist{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.file{min-width:180px}.home-hero .type{white-space:normal;overflow-wrap:break-word;width:auto;max-width:100%;animation:none;overflow:visible}}.mobilenav{display:none}@media (width<=820px){.workspace{grid-template-columns:1fr}.sidenav{display:none}.main{padding:18px 14px 120px}.grid-2,.explorer{grid-template-columns:1fr}.filelist{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.file{min-width:180px}.mobilenav{z-index:20;background:var(--bg-panel);border-top:1px solid var(--border-strong);display:flex;position:fixed;bottom:0;left:0;right:0}.mobilenav button{font:inherit;letter-spacing:.06em;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-top:2px solid #0000;flex:1;padding:13px 4px;font-size:12px}.mobilenav button[aria-current=page]{color:var(--accent);border-top-color:var(--accent)}.statusbar .hide-m,.topbar .identity small{display:none}}.section-fade{animation:.12s ease-out section-in}@keyframes section-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.panel,.explorer,.pixels{animation:.12s ease-out panel-in}@keyframes panel-in{0%{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.tagrow li{transition:border-color 80ms ease-out}.tagrow li:hover{border-color:var(--accent);color:var(--accent)}.file{transition:background 80ms ease-out,border-color 80ms ease-out}.pixels pre{min-height:118px;position:relative}.px-frame-b{opacity:0;animation:2.4s step-end infinite px-blink;position:absolute;top:14px;left:14px}@keyframes px-blink{0%,49%{opacity:0}50%,to{opacity:1}}.px-live,.cursor{animation:1.6s step-end infinite px-live-blink}@keyframes px-live-blink{50%{opacity:.25}}.px-live-wrap{align-items:center;gap:6px;display:inline-flex}.px-live-wrap .cursor{color:var(--success);font-size:10px}.reveal{opacity:0;transform:translateY(4px)}.reveal.in{opacity:1;transition:opacity .12s ease-out,transform .12s ease-out;transform:none}.longpage{grid-template-columns:minmax(0,1fr) 148px;align-items:start;gap:16px;min-width:0;display:grid}.longpage-main{min-width:0;min-inline-size:0}.toc{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);letter-spacing:.08em;flex-direction:column;gap:2px;max-height:calc(100svh - 24px);padding:10px;font-size:12px;display:flex;position:sticky;top:12px;overflow-y:auto}.toc-title{color:var(--text-muted);letter-spacing:.14em;padding:0 4px 6px;font-size:11px}.toc a{color:var(--text-muted);border-radius:var(--radius);padding:4px;text-decoration:none}.toc a:hover,.toc a[aria-current=true]{color:var(--accent);background:var(--accent-surface)}.subnav{border-bottom:1px dashed var(--border);flex-wrap:wrap;gap:4px;margin-bottom:12px;padding-bottom:12px;display:flex}.subnav a{letter-spacing:.1em;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);padding:3px 8px;font-size:11.5px;text-decoration:none}.subnav a:hover{color:var(--accent);border-color:var(--accent)}.detail-h{letter-spacing:.12em;color:var(--accent);margin:18px 0 6px;font-size:12px}.feat{gap:6px;margin:8px 0 0;padding-left:18px;font-size:14px;display:grid}.feat li::marker{color:var(--accent)}.timeline{gap:12px;margin:0;padding:0;list-style:none;display:grid}.timeline li{grid-template-columns:52px 1fr;gap:10px;display:grid}.t-year{color:var(--accent);letter-spacing:.06em;font-size:12px;font-weight:700}.t-body{gap:2px;font-size:13.5px;display:grid}.t-body span:last-child{color:var(--text-muted)}.toolkit{gap:12px;margin:0;display:grid}.toolkit-row{gap:6px;display:grid}.toolkit-row dt{letter-spacing:.12em;color:var(--text-muted);font-size:11.5px}.toolkit-row dd{margin:0}.principles{gap:10px;margin:0;padding:0;list-style:none;display:grid}.principles li{grid-template-columns:110px 1fr;gap:10px;font-size:13.5px;display:grid}.principles .k,.contact-list .k{color:var(--accent);font-weight:700}.notes-filter{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-canvas);color:var(--text-base);width:100%;margin-bottom:4px;padding:8px 10px;font-size:13px}kbd{font:inherit;border:1px solid var(--border-strong);background:var(--bg-canvas);border-bottom-width:2px;border-radius:3px;padding:0 5px;font-size:11px}@media (width<=820px){.longpage{grid-template-columns:1fr}.toc{flex-direction:row;align-items:center;position:static;overflow-x:auto}.toc-title{white-space:nowrap;padding:0 6px 0 0}.toc a{white-space:nowrap}.principles li{grid-template-columns:1fr;gap:2px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}.px-frame-b{display:none}.type,.caret,.px-cloud1,.px-cloud2,.px-fly,.px-fly2,.px-wa,.px-wb,.px-tw,.px-lit,.px-glow,.px-sway,.px-smoke{animation:none!important}.px-wb{opacity:0}}.home-hero{flex-direction:column;gap:18px;padding:32px 28px 30px;display:flex}.home-hero .home-sub,.home-hero .home-lede,.home-hero .home-muted{margin:0}.home-lede{max-width:640px;font-size:19px;line-height:1.7}.home-muted{max-width:640px}.hero-layout{grid-template-columns:1.25fr .75fr;align-items:stretch;gap:16px;display:grid}.portrait{flex-direction:column;margin:0;display:flex}.portrait-frame{background:var(--bg-canvas);flex:1;min-height:0;overflow:hidden}.portrait-frame img{object-fit:cover;width:100%;height:100%;min-height:280px;display:block}.portrait-foot{border-top:1px solid var(--border);border-bottom:0}@media (width<=1020px){.hero-layout{grid-template-columns:1fr}.portrait-frame img{aspect-ratio:1;min-height:0}}@media (width<=820px){.hero-layout{grid-template-columns:1fr}.portrait-frame img{aspect-ratio:1;min-height:0}}.home-kicker{color:var(--accent);margin:0}.home-kicker strong{color:var(--accent)}.type{white-space:nowrap;vertical-align:bottom;max-width:100%;animation:1.6s steps(48,end) .5s both typeline;display:inline-block;overflow:hidden}@keyframes typeline{0%{width:0}to{width:36em}}.caret{vertical-align:-.08em;background:currentColor;width:.55ch;height:.9em;margin-left:6px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.home-title{font-family:var(--serif);letter-spacing:-.03em;color:#32130f;margin:0;font-size:clamp(40px,5.4vw,60px);font-style:italic;font-weight:400;line-height:1}[data-theme=dark] .home-title{color:var(--text-base)}.home-title .caret{color:var(--accent)}.home-sub{color:var(--text-muted);margin:8px 0 0;font-size:18px}.home-sub em{font-family:var(--serif);color:var(--accent);letter-spacing:0;font-size:22px;font-style:italic}.home-lede em{font-family:var(--serif);font-size:1.15em;font-style:italic}.home-lede strong{color:#32130f;font-weight:600}[data-theme=dark] .home-lede strong{color:var(--text-base)}.home-muted{color:var(--text-muted)}.work-rows{flex-direction:column;display:flex}.row-link{text-align:left;width:100%;font:inherit;color:var(--text-base);border:0;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;padding:14px 16px;transition:background .2s,padding-left .25s;display:block;position:relative}.row-link:last-child{border-bottom:0}.row-link:hover{background:var(--bg-canvas);padding-left:22px}.row-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.row-name{font-weight:600}.row-link .arrow{color:var(--accent);opacity:0;margin-right:6px;transition:opacity .2s,transform .25s;transform:translate(-6px)}.row-link:hover .arrow,.row-link:focus-visible .arrow{opacity:1;transform:translate(0)}.row-sub{color:var(--text-muted);margin-top:2px;font-size:13px;display:block}.kv-rows{margin:0;display:block}.kv-row{border-bottom:1px dashed var(--border);flex-wrap:wrap;gap:4px 24px;padding:11px 0;display:flex}.kv-row:last-child{border-bottom:0}.kv-rows dt{letter-spacing:.1em;color:var(--text-muted);flex:0 0 110px;padding-top:2px;font-size:12px}.kv-rows dd{flex:260px;margin:0}@media (width>=820px){.stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;display:grid}.stack-grid .kv-row:nth-last-child(-n+2){border-bottom:0}}.idlib{flex-direction:column;min-width:0;display:flex}.idlib-scene{aspect-ratio:96/54;background:#f0cfa3;flex:none;width:100%;min-height:200px;position:relative;overflow:hidden}.idlib-svg{width:100%;height:100%;image-rendering:pixelated;display:block;position:absolute;inset:0}.idlib-foot{border-top:1px solid var(--border);border-bottom:0}@keyframes pxcloud{0%{transform:translate(-30px)}to{transform:translate(110px)}}@keyframes pxfly{0%{transform:translate(-8px)}to{transform:translate(104px)}}@keyframes pxflap{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes pxflap2{0%,49%{opacity:0}50%,to{opacity:1}}@keyframes pxtw{0%,to{opacity:.15}50%{opacity:1}}@keyframes pxlit{0%,60%{opacity:1}62%,66%{opacity:.3}68%,to{opacity:1}}@keyframes pxglow{0%,to{opacity:.3}50%{opacity:.65}}@keyframes pxsway{0%,49%{transform:translate(0)}50%,to{transform:translate(1px)}}@keyframes pxsmoke{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(-9px)}}.px-cloud1{animation:120s steps(140,end) infinite pxcloud}.px-cloud2{animation:170s steps(140,end) -60s infinite pxcloud}.px-fly{animation:26s steps(112,end) infinite pxfly}.px-fly2{animation:34s steps(112,end) -12s infinite pxfly}.px-wa{animation:.8s linear infinite pxflap}.px-wb{animation:.8s linear infinite pxflap2}.px-tw{animation:3s steps(4,end) infinite pxtw}.px-lit{animation:5s linear infinite pxlit}.px-glow{animation:4s steps(4,end) infinite pxglow}.px-sway{animation:3.2s linear infinite pxsway}.px-smoke{animation:3s steps(9,end) infinite pxsmoke}@media (width<=820px){.topbar{flex-wrap:wrap;row-gap:8px}.topbar .identity{overflow-wrap:anywhere;min-width:0}.topbar-actions{flex-wrap:wrap;margin-left:auto}.avail{max-width:100%}.home-hero{padding:20px 16px;overflow-x:hidden}.home-hero .type{white-space:normal;overflow-wrap:break-word;width:auto;max-width:100%;animation:none;overflow:visible}.home-title{overflow-wrap:break-word;text-wrap:balance;font-size:clamp(32px,9vw,44px)}.home-lede{overflow-wrap:break-word;font-size:16px}.home-sub,.home-muted,.body,.lede{overflow-wrap:break-word}.panel,.panel-body,.detail{min-width:0}.panel-body{padding:14px}.panel-head{flex-wrap:wrap;row-gap:4px}.idlib-scene{aspect-ratio:96/54;min-height:200px}.idlib-svg{width:100%;height:100%;inset:0}.row-top{flex-wrap:wrap;row-gap:4px}.row-name,.row-sub{overflow-wrap:break-word;min-width:0}.kv-row{gap:2px 12px}.kv-rows dt{flex:none}.kv-rows dd{overflow-wrap:break-word;flex:200px;min-width:0}.mobilenav{overflow-x:auto}.mobilenav button{white-space:nowrap;flex:1 0 auto;min-width:0}.statusbar{flex-wrap:wrap;row-gap:4px}}@media (width<=480px){.topbar{gap:8px;padding:8px 10px;font-size:12px}.btn{padding:4px 8px;font-size:12px}.main{padding:14px 10px 120px}.home-title{font-size:clamp(30px,10vw,38px)}.mobilenav button{padding:12px 6px;font-size:11px}}@media (height<=600px){.home-hero{gap:12px;padding:20px 16px}.sidenav{padding:10px 8px}.nav-hint{display:none}.toc{max-height:calc(100svh - 24px)}.mobilenav button{padding:10px 4px}}
