:root{--bg: #F4F1EA;--bg-2: #EBE7DC;--ink: #111111;--ink-2: #3a3a38;--ink-3: #8a8580;--ink-4: #bcb5a8;--rule: rgba(17, 17, 17, .1);--rule-2: rgba(17, 17, 17, .18);--accent: #00A14A;--accent-soft: rgba(0, 161, 74, .12);--warn: #B8480C;--syn-key: #7A1F88;--syn-str: #1A6E2E;--syn-num: #9A5400;--syn-com: #8a8580;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--serif: "Instrument Serif", ui-serif, Georgia, serif;--pad: clamp(16px, 2.2vw, 28px);--rail: 240px}[data-theme=dark]{--bg: #0F0E0C;--bg-2: #181613;--ink: #ECE7DA;--ink-2: #bdb6a5;--ink-3: #75706a;--ink-4: #3e3a34;--rule: rgba(236, 231, 218, .1);--rule-2: rgba(236, 231, 218, .18);--accent: #4FE38C;--accent-soft: rgba(79, 227, 140, .14);--warn: #F2A26C;--syn-key: #E08DEF;--syn-str: #7FD897;--syn-num: #F2B36A;--syn-com: #75706a}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--mono);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{min-height:100dvh;overflow:hidden}::selection{background:var(--accent);color:var(--bg)}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule-2);transition:border-color .15s,color .15s}a:hover{border-color:var(--accent);color:var(--accent)}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .35 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}[data-theme=dark] body:before{mix-blend-mode:screen;opacity:.2}.app{display:grid;grid-template-columns:var(--rail) 1fr;grid-template-rows:auto 1fr;grid-template-areas:"top  top" "rail term";height:100dvh}.topbar{grid-area:top;display:flex;align-items:center;justify-content:space-between;padding:14px var(--pad);border-bottom:1px solid var(--rule);font-size:12.5px;letter-spacing:.02em;background:var(--bg);position:relative;z-index:5}.topbar .brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink-2)}.topbar .brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);animation:pulse 2.4s ease-in-out infinite}.topbar .brand strong{color:var(--ink);font-weight:500}.topbar .right{display:flex;align-items:center;gap:18px;color:var(--ink-3)}.topbar .clock{font-variant-numeric:tabular-nums;color:var(--ink-2)}.theme-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--rule-2);border-radius:3px;color:var(--ink-2);transition:all .15s}.theme-btn:hover{border-color:var(--ink);color:var(--ink)}.theme-btn svg{width:13px;height:13px}.rail{grid-area:rail;border-right:1px solid var(--rule);padding:24px var(--pad);display:flex;flex-direction:column;gap:22px;overflow:auto;background:var(--bg)}.rail h3{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px}.rail ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.rail .cmd{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border-radius:3px;font-size:13.5px;color:var(--ink-2);text-align:left;letter-spacing:.01em;transition:background .12s,color .12s,transform .2s cubic-bezier(.2,.7,.2,1)}.rail .cmd .k{color:var(--ink-3);font-size:11px;width:14px;text-align:right;flex-shrink:0}.rail .cmd .arrow{color:var(--ink-4);transition:color .12s,transform .15s}.rail .cmd:hover{background:var(--bg-2);color:var(--ink)}.rail .cmd:hover .arrow{color:var(--accent);transform:translate(2px)}.rail .cmd.active{color:var(--ink);background:var(--bg-2)}.rail .cmd:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.rail .meta{margin-top:auto;font-size:11.5px;color:var(--ink-3);line-height:1.65;padding-top:18px;border-top:1px solid var(--rule)}.rail .meta b{color:var(--ink-2);font-weight:500}.rail .quote{font-family:var(--serif);font-size:18px;line-height:1.25;color:var(--ink-2);margin:0 0 6px;font-style:italic}.term{grid-area:term;position:relative;overflow:hidden;display:flex;flex-direction:column;background:var(--bg)}.stream{flex:1;overflow:auto;padding:20px var(--pad) 8px var(--pad);scroll-behavior:smooth}.stream::-webkit-scrollbar{width:8px}.stream::-webkit-scrollbar-thumb{background:var(--rule-2);border-radius:4px}.stream::-webkit-scrollbar-track{background:transparent}.line{white-space:pre-wrap;word-break:break-word}.block{margin:0 0 18px}.block.compact{margin-bottom:10px}.dim{color:var(--ink-3)}.mute{color:var(--ink-2)}.accent{color:var(--accent)}.warn{color:var(--warn)}.tag{display:inline-block;padding:1px 6px;border:1px solid var(--rule-2);border-radius:2px;font-size:11.5px;color:var(--ink-2);margin:2px 4px 2px 0;letter-spacing:.01em}.tag.on{border-color:var(--accent);color:var(--accent)}.kbd{font-family:var(--mono);font-size:11.5px;padding:1px 5px;border:1px solid var(--rule-2);border-bottom-width:2px;border-radius:3px;color:var(--ink-2);background:var(--bg-2)}.echo{display:flex;align-items:baseline;gap:8px;margin:6px 0 4px;color:var(--ink-2)}.echo .ps{color:var(--ink-3)}.echo .cmd-txt{color:var(--ink)}.promptbar{border-top:1px solid var(--rule);padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom)) var(--pad);background:var(--bg);display:flex;align-items:baseline;gap:10px;position:relative;font-size:14.5px}.ps{color:var(--ink-3);user-select:none;white-space:nowrap}.ps .at,.ps .host{color:var(--ink-2)}.ps .path{color:var(--accent)}.input-wrap{flex:1;position:relative;display:flex;align-items:baseline}#typed{color:var(--ink);white-space:pre}#typed .ghost{color:var(--ink-4)}.caret{display:inline-block;width:9px;height:1.05em;background:var(--accent);vertical-align:-2px;margin-left:1px;animation:blink 1.06s steps(2) infinite}.caret.thin{width:2px}.caret.off{animation:none;opacity:0}#input{position:absolute;inset:0;opacity:0;font:inherit;color:transparent;background:transparent;border:0;outline:0;caret-color:transparent;width:100%}.hint{font-size:11.5px;color:var(--ink-3);padding-left:8px;border-left:1px solid var(--rule-2);margin-left:6px;white-space:nowrap}.json{background:var(--bg-2);border:1px solid var(--rule);border-radius:4px;padding:14px 18px;font-size:13px;line-height:1.7;overflow-x:auto;color:var(--ink-2)}.json .k{color:var(--syn-key)}.json .s{color:var(--syn-str)}.json .n{color:var(--syn-num)}.json .p{color:var(--ink-3)}.json .c{color:var(--syn-com);font-style:italic}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:10px;border-top:1px solid var(--rule);font-size:12.5px;color:var(--ink-3)}.pager .page-info b{color:var(--ink);font-weight:500}.pager .page-btn{font-family:var(--mono);font-size:12.5px;color:var(--ink-2);background:transparent;border:1px solid var(--rule-2);border-radius:2px;padding:4px 10px;cursor:pointer;transition:color .12s,border-color .12s}.pager .page-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.pager .page-btn:disabled{opacity:.4;cursor:default}.cform{display:flex;flex-direction:column;gap:6px;margin:6px 0}.cform .field{display:flex;align-items:baseline;gap:8px}.cform .field .lbl{color:var(--ink-3);width:9ch;text-align:right;flex-shrink:0}.cform .field .val{color:var(--ink);font-family:var(--mono);min-height:1.4em}.cform .field.area .lbl{align-self:flex-start;padding-top:2px}.cform .field.area .val{flex:1;white-space:pre-wrap}.cform .sent{color:var(--accent);margin-top:8px}.contact-row{display:flex;gap:14px;flex-wrap:wrap;color:var(--ink-2);padding:6px 0;border-bottom:1px solid var(--rule)}.contact-row .lbl{color:var(--ink-3);width:7ch;flex-shrink:0}.ascii{font-family:var(--mono);font-size:13px;line-height:1.15;color:var(--ink);white-space:pre;letter-spacing:0;margin:8px 0}.ascii.accent{color:var(--accent)}.sys{color:var(--ink-3)}.sys .ok{color:var(--accent)}.sys .err{color:var(--warn)}.cur{position:fixed;top:0;left:0;width:11px;height:18px;background:var(--accent);pointer-events:none;z-index:80;mix-blend-mode:multiply;transform:translate(-100px,-100px);transition:width .12s,height .12s,background .12s,opacity .12s,border-radius .12s;opacity:0}[data-theme=dark] .cur{mix-blend-mode:screen}.cur.ready{opacity:.95}.cur.text{width:2px;height:20px;background:var(--ink)}.cur.link{width:24px;height:24px;background:var(--accent-soft);border:1.5px solid var(--accent);border-radius:50%;mix-blend-mode:normal}@media(hover:none){.cur{display:none!important}}h1.serif{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(34px,5.4vw,58px);line-height:1;letter-spacing:-.01em;margin:6px 0 14px;color:var(--ink)}.h2{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px}.lede{font-family:var(--serif);font-size:clamp(20px,2.1vw,26px);line-height:1.35;color:var(--ink);max-width:62ch;margin:0 0 14px}.para{max-width:74ch;color:var(--ink-2);margin:0 0 10px}.para b{color:var(--ink);font-weight:500}.tl{display:grid;grid-template-columns:160px 1fr;gap:0 24px;border-top:1px solid var(--rule)}.tl .yr{padding:14px 0;border-bottom:1px solid var(--rule);color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px;align-self:start}.tl .yr b{color:var(--ink);font-weight:500;display:block}.tl .body{padding:14px 0;border-bottom:1px solid var(--rule);transition:background .2s}.tl .body:hover{background:linear-gradient(90deg,var(--accent-soft),transparent 60%)}.tl .role{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;color:var(--ink)}.tl .role .where{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink)}.tl .role .what{color:var(--ink-2)}.tl .desc{color:var(--ink-2);margin:6px 0 8px;max-width:72ch}.tl .stack{display:flex;flex-wrap:wrap;gap:0;margin-top:4px}.prj{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}.prj>div{border-bottom:1px solid var(--rule);padding:18px 0;display:grid;grid-template-columns:120px 1fr;gap:0 24px}.prj .n{color:var(--ink-3);font-size:13px}.prj .n b{display:block;color:var(--ink);font-size:32px;font-family:var(--serif);font-weight:400;line-height:1;margin-bottom:6px}.prj .ttl{font-family:var(--serif);font-size:24px;line-height:1.2;color:var(--ink);margin:0 0 6px}.prj .at{color:var(--ink-3);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}.prj .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 22px;margin:10px 0 12px}.prj .grid h4{margin:0 0 4px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.prj .grid p{margin:0;color:var(--ink-2);font-size:13px;line-height:1.5}.edu{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--rule);padding-top:18px}.edu>div{padding:0 4px 4px 0}.edu .d{color:var(--ink-3);font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.edu .t{font-family:var(--serif);font-size:24px;line-height:1.15;color:var(--ink);margin:0 0 4px}.edu .w{color:var(--ink-2);font-size:13.5px}.edu .y{color:var(--ink-3);font-size:12.5px;margin-top:2px}.causes{position:relative}.causes .quote{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.5vw,30px);line-height:1.3;color:var(--ink);max-width:24ch;margin:0 0 16px;text-wrap:pretty}.causes .quote:before{content:"\201c";color:var(--accent);margin-right:2px}.causes .quote:after{content:"\201d";color:var(--accent)}.causes .credits{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--rule);padding-top:14px;margin-top:14px}.causes .credits .y{color:var(--ink-3);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.causes .credits b{display:block;color:var(--ink);font-family:var(--serif);font-size:22px;font-style:italic;margin-top:2px}.causes .credits .d{color:var(--ink-2);font-size:13px;margin-top:4px;line-height:1.45}@keyframes pulse{50%{box-shadow:0 0 0 6px transparent}}@keyframes blink{50%{opacity:0}}.scanline{position:absolute;inset:0;pointer-events:none;z-index:3;opacity:0;transition:opacity .08s}.scanline.flash{opacity:1}.scanline:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 0%,rgba(0,0,0,.06) 50%,transparent 100%);animation:scan .14s linear}[data-theme=dark] .scanline:after{background:linear-gradient(transparent 0%,rgba(255,255,255,.07) 50%,transparent 100%)}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.boot{position:fixed;inset:0;background:var(--bg);z-index:50;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 var(--pad);gap:8px}.boot .line{color:var(--ink-3)}.boot .line.now{color:var(--ink)}.boot .line .ok{color:var(--accent);margin-left:6px}.boot .skip{position:absolute;bottom:18px;right:var(--pad);color:var(--ink-3);font-size:11.5px}.boot.gone{opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .4s,transform .4s}@media(prefers-reduced-motion:reduce){*{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.caret{animation:none;opacity:.6}}@media(max-width:820px){.app{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;grid-template-areas:"top" "rail" "term"}.topbar{padding:10px var(--pad);font-size:12px}.topbar .brand .dim{display:none}.topbar .brand strong{font-size:13px}.topbar .right{gap:12px}.topbar .clock{font-size:11px}.theme-btn{padding:4px 8px;font-size:11.5px}.rail{flex-direction:row;align-items:stretch;flex-wrap:nowrap;gap:0;padding:0;border-right:0;border-bottom:1px solid var(--rule);overflow:hidden;position:relative;min-height:44px}.rail h3,.rail .meta{display:none}.rail:before{content:"~$";color:var(--accent);font-family:var(--mono);font-size:13px;font-weight:500;padding:0 10px 0 var(--pad);flex-shrink:0;user-select:none;display:flex;align-items:center;border-right:1px solid var(--rule);background:var(--bg-2)}.rail:after{content:"";position:absolute;top:0;right:0;bottom:0;width:36px;background:linear-gradient(to right,transparent,var(--bg) 70%);pointer-events:none;z-index:1}.rail ul{flex:1;min-width:0;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:0;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;scroll-padding-left:14px;-webkit-overflow-scrolling:touch;touch-action:pan-x;padding:0 0 0 4px}.rail ul::-webkit-scrollbar{display:none}.rail ul:after{content:"";flex:0 0 40px}.rail ul li{display:flex;align-items:stretch}.rail .cmd{padding:0 14px;border:0;border-radius:0;font-size:13px;font-weight:500;color:var(--ink-2);white-space:nowrap;scroll-snap-align:start;transition:color .15s,background .15s;position:relative;display:inline-flex;align-items:center;min-height:44px}.rail .cmd .k,.rail .cmd .arrow{display:none}.rail .cmd:hover,.rail .cmd:active{background:transparent;color:var(--ink)}.rail .cmd.active{color:var(--accent);background:var(--accent-soft)}.rail .cmd.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent)}.hint{display:none}.tl{grid-template-columns:90px 1fr;gap:0 16px}.prj>div{grid-template-columns:1fr;gap:8px}.prj .grid,.edu,.causes .credits{grid-template-columns:1fr}.promptbar{font-size:13px}body{font-size:14px}}
