@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_13fc341d-module__lMjmPq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_13fc341d-module__lMjmPq__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--ink:#222;--ink-light:#666;--accent:#111;--paper:#fff;--paper-dark:#f0f0f0;--rule:#dcdcdc;--rule-dark:#b0b0b0;--link:#2563c9;--heading:#a8205a}[data-theme=dark]{--ink:#e6e6e6;--ink-light:#9a9a9a;--accent:#fff;--paper:#1a1a1a;--paper-dark:#242424;--rule:#3a3a3a;--rule-dark:#5a5a5a;--link:#6ea8ff;--heading:#ffb86c}[data-theme=green]{--ink:#39ff6a;--ink-light:#1fa045;--accent:#39ff6a;--paper:#060d06;--paper-dark:#0e1a0e;--rule:#1b351b;--rule-dark:#2f6a2f;--link:#5de0ff;--heading:#d4ff6a}[data-theme=amber]{--ink:#ffb000;--ink-light:#b37a00;--accent:#ffb000;--paper:#120c00;--paper-dark:#1d1400;--rule:#3d2a00;--rule-dark:#6b4a00;--link:#ffd666;--heading:#ffe08a}[data-theme=dracula]{--ink:#f8f8f2;--ink-light:#8f93b0;--accent:#bd93f9;--paper:#282a36;--paper-dark:#343746;--rule:#44475a;--rule-dark:#6272a4;--link:#8be9fd;--heading:#ff79c6}*{box-sizing:border-box;margin:0;padding:0}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--ink);background:var(--paper);font-family:var(--font-mono), ui-monospace, Menlo, Consolas, monospace;-webkit-font-smoothing:antialiased;flex-direction:column;font-size:15px;line-height:1.7;display:flex}a{color:var(--link);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--link);text-decoration-color:var(--link)}a:hover{background:var(--link);color:var(--paper)}ul{list-style:none}.container{z-index:1;flex-direction:column;flex:1;width:100%;max-width:820px;margin:0 auto;padding:1.5rem 1.25rem;display:flex;position:relative}.header{border-bottom:1px dashed var(--rule-dark);margin-bottom:1.5rem;padding-bottom:.75rem}.title{font-size:1rem;font-weight:700}.title a{color:var(--ink);text-decoration:none}.nav{flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:.5rem;font-size:.9rem;display:flex}.nav a{text-decoration:none}.theme-picker{color:var(--ink-light);align-items:center;gap:.4rem;margin-left:auto;display:flex}.swatch{cursor:pointer;border:1px solid var(--rule-dark);width:16px;height:16px;padding:0}.swatch:hover{transform:scale(1.2)}.swatch.active{outline:2px solid var(--ink);outline-offset:2px}.main{flex:1}.footer{border-top:1px dashed var(--rule-dark);color:var(--ink-light);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-top:2rem;padding-top:.75rem;font-size:.8rem;display:flex}.prompt{color:var(--ink-light);margin-bottom:.5rem}.prompt b{color:var(--ink)}.out{border-left:2px solid var(--rule);margin-bottom:1.5rem;padding-left:1rem}.out>*+*{margin-top:.5rem}.dim{color:var(--ink-light)}.item h3,.out .title{color:var(--heading);font-size:1rem}.item+.item{margin-top:1.25rem}.cursor{vertical-align:text-bottom;background:var(--ink);width:.6em;height:1.1em;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.content p,.content ul,.content ol,.content pre,.content blockquote{margin:0 0 1rem}.content h2,.content h3{margin:1.5rem 0 .5rem;font-size:1rem}.content ul,.content ol{list-style:revert;padding-left:1.5rem}.content pre,.content code{background:var(--paper-dark)}.content code{padding:0 .25em}.content pre{padding:.75rem;overflow-x:auto}.content blockquote{border-left:2px solid var(--rule-dark);color:var(--ink-light);padding-left:1rem}.content img{max-width:100%}.form{flex-direction:column;gap:.75rem;max-width:480px;display:flex}.form label{color:var(--ink-light);flex-direction:column;gap:.25rem;display:flex}.form input,.form textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--rule-dark);border-radius:0;padding:.4rem .5rem}.form textarea{resize:vertical;min-height:8rem}.form input:focus,.form textarea:focus{outline:1px solid var(--ink)}.form button{font:inherit;cursor:pointer;color:var(--paper);background:var(--ink);border:1px solid var(--ink);align-self:flex-start;padding:.4rem 1rem}.whoami{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.avatar-fig{flex-direction:column;flex-shrink:0;gap:.4rem;font-size:.7rem;display:flex}.avatar-frame{border:1px solid var(--rule-dark);width:192px;height:192px;position:relative}.avatar-frame img{width:100%;height:100%;image-rendering:pixelated;filter:contrast(1.08)saturate(.85);display:block}.avatar-frame:before{--b:var(--ink);content:"";pointer-events:none;background:linear-gradient(var(--b), var(--b)) top left / 14px 2px, linear-gradient(var(--b), var(--b)) top left / 2px 14px, linear-gradient(var(--b), var(--b)) top right / 14px 2px, linear-gradient(var(--b), var(--b)) top right / 2px 14px, linear-gradient(var(--b), var(--b)) bottom left / 14px 2px, linear-gradient(var(--b), var(--b)) bottom left / 2px 14px, linear-gradient(var(--b), var(--b)) bottom right / 14px 2px, linear-gradient(var(--b), var(--b)) bottom right / 2px 14px;background-repeat:no-repeat;position:absolute;inset:-6px}.avatar-frame:after{content:"";pointer-events:none;background:repeating-linear-gradient(to bottom, #00000038 0, #00000038 1px, transparent 1px, transparent 3px), linear-gradient(color-mix(in srgb, var(--link) 14%, transparent), color-mix(in srgb, var(--link) 14%, transparent));position:absolute;inset:0}.avatar-scan{z-index:1;background:var(--link);height:2px;box-shadow:0 0 10px 2px var(--link);display:none;position:absolute;top:0;left:0;right:0}.scanning img{animation:1.7s steps(24,end) both avatar-reveal}.scanning .avatar-scan{animation:1.7s steps(24,end) both avatar-sweep;display:block}@keyframes avatar-reveal{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes avatar-sweep{0%{top:0}to{top:100%}}.heatmap-scroll{padding-bottom:.25rem;overflow-x:auto}.heatmap{grid-template-rows:repeat(7,10px);grid-auto-columns:10px;grid-auto-flow:column;gap:3px;width:max-content;display:grid}.cell{background:var(--ink);opacity:.08}.cell.l1{opacity:.3}.cell.l2{opacity:.5}.cell.l3{opacity:.75}.cell.l4{opacity:1}@media (max-width:480px){.avatar-frame{width:128px;height:128px}}.doodles{color:var(--ink);opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;gap:3.5rem;width:130px;display:none;position:fixed;top:7rem}.doodles pre{font:inherit;font-size:13px;line-height:1.2}.doodles-left{align-items:flex-end;left:calc(50% - 540px - 1.5rem)}.doodles-right{align-items:flex-start;right:calc(50% - 540px - 1.5rem)}@media (min-width:1150px){.doodles{display:flex}}.term-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:flex-start;padding:12vh 1rem 1rem;display:flex;position:fixed;inset:0}.term{background:var(--paper);border:1px solid var(--ink);width:100%;max-width:640px;box-shadow:6px 6px 0 var(--ink)}.term-bar{border-bottom:1px dashed var(--rule-dark);justify-content:space-between;padding:.35rem .75rem;font-size:.8rem;display:flex}.term-screen{max-height:50vh;padding:.75rem;font-size:.9rem;line-height:1.6;overflow-y:auto}.term-out{white-space:pre-wrap;padding-left:1rem}.term-line{gap:.5rem;display:flex}.term-input{flex:1;position:relative}.term-input input,.term-hint{width:100%;font:inherit;white-space:pre}.term-input input{z-index:1;color:var(--ink);caret-color:var(--ink);background:0 0;border:none;outline:none;position:relative}.term-hint{color:#0000;pointer-events:none;position:absolute;inset:0}.skills{flex-direction:column;gap:.9rem;display:flex}.skill-row{grid-template-columns:7.5rem 1fr;align-items:baseline;gap:.75rem;display:grid}.skill-items{flex-wrap:wrap;gap:.4rem;display:flex}.skill{border:1px solid var(--rule-dark);padding:0 .5rem;font-size:.85rem;line-height:1.6}@media (max-width:480px){.skill-row{grid-template-columns:1fr;gap:.25rem}}.container{animation:.9s step-end glitch-in}@keyframes glitch-in{0%{opacity:0;filter:hue-rotate(90deg);transform:translate(-8px)skew(10deg)}10%{opacity:1;text-shadow:-3px 0 #f05,3px 0 #00e5ff;clip-path:inset(10% 0 60%);transform:translate(6px)}20%{text-shadow:3px 0 #f05,-3px 0 #00e5ff;clip-path:inset(55% 0 15%);transform:translate(-5px)}30%{clip-path:inset(0);filter:none;transform:translate(4px)skew(-6deg)}40%{text-shadow:-2px 0 #f05,2px 0 #00e5ff;clip-path:inset(30% 0 40%);transform:translate(-3px)}50%{text-shadow:none;clip-path:inset(0);transform:none}60%{text-shadow:2px 0 #f05,-2px 0 #00e5ff;transform:translate(3px)}70%{text-shadow:none;filter:hue-rotate(40deg);transform:none}80%{filter:none;transform:translate(-2px)}to{text-shadow:none;clip-path:none;filter:none;opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.container{animation:none}}.statusbar{z-index:50;background:var(--ink);color:var(--paper);gap:1.5rem;padding:.2rem 1rem;font-size:.75rem;display:flex;position:fixed;bottom:0;left:0;right:0}.status-dot{color:#2ecc71}.status-right{font-variant-numeric:tabular-nums;margin-left:auto}body{padding-bottom:2rem}@media (max-width:480px){.status-path{display:none}}[data-theme=green] body,[data-theme=amber] body{text-shadow:0 0 6px color-mix(in srgb, var(--ink) 40%, transparent)}[data-theme=green] body:after,[data-theme=amber] body:after{content:"";z-index:200;pointer-events:none;background:repeating-linear-gradient(#0000002e 0 1px,#0000 1px 3px);position:fixed;inset:0}.power{border:1px solid var(--rule-dark);color:var(--ink-light);cursor:pointer;background:0 0;align-items:center;padding:2px 4px;display:inline-flex}.power:hover{color:var(--paper);background:var(--ink)}.crt{z-index:1000;cursor:pointer;position:fixed;inset:0}.crt-half{background:#000;height:0;position:absolute;left:0;right:0}.crt-top{top:0}.crt-bottom{bottom:0}.crt-line{opacity:0;background:#fff;border-radius:2px;width:100%;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 12px 3px #ffffffe6,0 0 40px 8px #a0c8ff99}.crt-closing .crt-half{animation:.45s ease-in forwards crt-close}.crt-closing .crt-line{animation:.6s ease-out .45s forwards crt-line-off}.crt-off .crt-half{height:50vh}.crt-opening .crt-half{height:50vh;animation:.45s ease-out .4s forwards crt-open}.crt-opening .crt-line{animation:.4s ease-out forwards crt-line-on,.3s ease-in .55s forwards crt-fade}.crt-cursor{opacity:.35;background:#cfcfcf;width:10px;height:18px;animation:1s step-end infinite blink;position:absolute;top:5%;left:3%}@keyframes crt-close{0%{height:0}to{height:50vh}}@keyframes crt-open{0%{height:50vh}to{height:0}}@keyframes crt-line-off{0%{opacity:1;width:100%}70%{opacity:1;width:3%}to{opacity:0;width:3px}}@keyframes crt-line-on{0%{opacity:1;width:3px}to{opacity:1;width:100%}}@keyframes crt-fade{to{opacity:0}}@media (prefers-reduced-motion:reduce){.crt-closing .crt-half{height:50vh;animation:none}.crt-opening .crt-half{height:0;animation:none}.crt-line{display:none}}.crt-monitor{--w:min(94vw, calc(88vh * 1.08));width:var(--w);aspect-ratio:1.08;border-radius:calc(var(--w) * .035);box-shadow:0 0 0 1px #a99c78, 0 3vmin 8vmin #000000b3, inset 0 0 calc(var(--w) * .02) #ffffff73;background:linear-gradient(145deg,#e6dabb,#d1c39f);animation:.8s ease-out both crt-monitor-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crt-glass{box-shadow:0 0 0 calc(var(--w) * .014) #a99c78, inset 0 0 calc(var(--w) * .08) #000000d9;background:radial-gradient(at 50% 45%,#2b3531 0%,#151b18 75%,#0c100e 100%);border-radius:5%/7%;position:absolute;inset:5% 6% 24%;overflow:hidden}.crt-glass:after{content:"";background:linear-gradient(125deg,#ffffff14 0%,#fff0 38%);position:absolute;inset:0}.crt-chin{align-items:center;gap:3%;height:19%;display:flex;position:absolute;bottom:0;left:6%;right:6%}.crt-plate{background:#cbbd98;border:1px solid #a99c78;width:12%;height:22%;box-shadow:inset 0 1px #fff6}.crt-buttons{gap:calc(var(--w) * .022);margin-left:auto;display:flex}.crt-btn{width:calc(var(--w) * .036);height:calc(var(--w) * .036);background:radial-gradient(circle at 35% 30%,#efe4c4,#b7aa86);border:1px solid #94876a;border-radius:50%;min-width:12px;min-height:12px;position:relative;box-shadow:0 1px 2px #0000004d}.crt-btn-power{margin-left:calc(var(--w) * .01)}.crt-led{top:calc(var(--w) * -.02);width:calc(var(--w) * .01);height:calc(var(--w) * .01);background:#2ecc71;border-radius:50%;min-width:5px;min-height:5px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 0 6px 1px #2ecc71b3}@keyframes crt-monitor-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.crt-monitor{animation:none}}.details{margin-top:.75rem}.heroes{z-index:-1;pointer-events:none;-webkit-user-select:none;user-select:none;display:none;position:fixed;inset:0;overflow:hidden}@media (min-width:700px) and (prefers-reduced-motion:no-preference){.heroes{display:block}}.spider-swing{width:100%;height:100%;color:var(--ink-light);position:absolute;inset:0;overflow:visible}.web-line{stroke:currentColor;stroke-width:1.5px;opacity:.8}.web-puff{fill:none;stroke:currentColor;stroke-width:2px}.web-word{fill:currentColor;font:700 14px var(--font-mono), ui-monospace, monospace}.hover{position:absolute;top:34vh;right:9vw}.hover-body{opacity:.95;filter:drop-shadow(0 4px 8px #ff8a1f80);animation:2.6s ease-in-out infinite alternate hover-bob;position:relative}.broom-x{animation:55s linear 12s infinite backwards broom-x;position:absolute;top:16vh;left:0}.broom-y{animation:2.8s ease-in-out infinite alternate broom-y}.broom-body{animation:2.8s ease-in-out infinite alternate broom-tilt;position:relative}.frame-a{animation:.4s step-end infinite flame-a}.frame-b{animation:.4s step-end infinite flame-b}.stardust{opacity:0;background:#ffd54a;width:4px;height:4px;animation:1s linear infinite stardust;position:absolute;left:4px;box-shadow:0 0 4px #ffd54a}@keyframes broom-x{0%{transform:translate(-16vw)}33%{transform:translate(112vw)}to{transform:translate(112vw)}}@keyframes broom-y{0%{transform:translateY(-3vh)}to{transform:translateY(8vh)}}@keyframes broom-tilt{0%{transform:rotate(-3deg)}to{transform:rotate(5deg)}}@keyframes stardust{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(-90px,8px)scale(.3)}}.flame-a{animation:.18s step-end infinite flame-a}.flame-b{animation:.18s step-end infinite flame-b}.glow{opacity:.5;transform-box:fill-box;transform-origin:50%;animation:.5s ease-in-out infinite alternate glow}.repulsor{animation-duration:.35s}.spark{opacity:0;background:#ffb347;width:4px;height:4px;animation:.7s linear infinite spark;position:absolute;top:74px}@keyframes flame-a{0%{opacity:1}50%{opacity:0}}@keyframes flame-b{0%{opacity:0}50%{opacity:1}}@keyframes glow{0%{opacity:.25;transform:scale(.6)}to{opacity:.95;transform:scale(1.25)}}@keyframes spark{0%{opacity:.9;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(46px)translate(4px)scale(.3)}}@keyframes hover-bob{0%{transform:translateY(-8px)rotate(-2deg)}to{transform:translateY(8px)rotate(2deg)}}.cafe{z-index:40;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.25rem;display:none;position:fixed;bottom:1.9rem;right:1.25rem}@media (min-width:1200px){.cafe{display:flex}}.cafe-shop{width:220px;height:auto;image-rendering:pixelated}.cafe-caption{font-size:.7rem}.lamp-glow{opacity:.25;animation:3s ease-in-out infinite alternate lamp-glow}.twinkle{animation:1.4s ease-in-out infinite alternate twinkle}.open-sign{animation:5s step-end infinite open-sign}.steam-up{opacity:0;animation:2s ease-in infinite steam-up}@keyframes lamp-glow{0%{opacity:.15}to{opacity:.38}}@keyframes twinkle{0%{opacity:.35}to{opacity:1}}@keyframes open-sign{0%,92%{opacity:1}94%{opacity:.45}96%{opacity:1}98%{opacity:.45}}@keyframes steam-up{0%{opacity:0;transform:translateY(2px)}30%{opacity:.8}to{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.lamp-glow,.twinkle,.open-sign,.steam-up{animation:none}.steam-up{opacity:.5}}.hero-warn{color:#d89b00;text-shadow:0 0 6px #ffbe28cc;background:#d89b001a;border-left:3px solid #d89b00;margin-bottom:1.25rem;padding:.4rem .75rem;font-size:.85rem;animation:1.8s ease-in-out infinite alternate warn-glow;display:none;box-shadow:0 0 14px #d89b0059,inset 3px 0 8px -4px #ffb300}@keyframes warn-glow{0%{text-shadow:0 0 3px #ffbe2880;box-shadow:0 0 6px #d89b0033,inset 3px 0 6px -4px #ffb300}to{text-shadow:0 0 10px #ffbe28,0 0 20px #ffa00099;box-shadow:0 0 22px #d89b008c,inset 3px 0 10px -4px #ffb300}}@media (min-width:700px) and (prefers-reduced-motion:no-preference){.hero-warn{display:block}}.cassette{z-index:40;cursor:pointer;font:inherit;color:var(--ink-light);background:0 0;border:none;flex-direction:column;align-items:center;gap:.3rem;padding:0;display:flex;position:fixed;bottom:2.2rem;right:1.25rem}.cassette svg{filter:drop-shadow(0 3px 6px #00000073);width:90px;height:auto;transition:transform .15s}.cassette:hover svg{transform:translateY(-2px)rotate(-1.5deg)}.cassette-label{font-size:.65rem}@media (min-width:1200px){.cassette{bottom:3.2rem;right:calc(1.25rem + 234px)}}.reel{transform-box:view-box;animation:2.4s linear infinite paused reel}.cassette.playing .reel{animation-play-state:running}@keyframes reel{to{transform:rotate(360deg)}}@media (max-width:480px){.cassette svg{width:80px}}@media (prefers-reduced-motion:reduce){.reel{animation:none}}
