:root{--black:#000;--green:#39ff6a;--green-text:#b8ffca;--green-dim:#1f9e44;--green-deep:#06260f;--red:#ff2b2b;--mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}html.intro,html.intro body{overflow:hidden}body{background:var(--black);color:var(--green-text);font:400 1rem/1.65 var(--mono);-webkit-font-smoothing:antialiased;margin:0}.sunny{z-index:20;color:#2a3b7a;cursor:pointer;background:linear-gradient(160deg,#bfe7ff 0%,#fff3c4 55%,#ffd1e3 100%);flex-direction:column;font-family:Fredoka,Arial Rounded MT Bold,system-ui,sans-serif;display:none;position:fixed;inset:0;overflow:hidden}html.intro .sunny{display:flex}.blob{filter:blur(40px);opacity:.6;border-radius:50%;position:absolute}.b1{background:#ffb3d1;width:40vmax;height:40vmax;top:-12vmax;right:-10vmax}.b2{background:#a8ddff;width:30vmax;height:30vmax;bottom:-10vmax;left:-8vmax}.b3{background:#fff08a;width:18vmax;height:18vmax;bottom:10%;right:12%}.sunny-nav{justify-content:space-between;align-items:center;padding:1.5rem clamp(1.25rem,4vw,3rem);font-weight:500;display:flex;position:relative}.sunny-logo{font-size:1.5rem;font-weight:700}.sunny-links{align-items:center;gap:1.75rem;display:flex}.sunny-pill,.sunny-cta{--pill-a:#6aa8ff;--pill-c:#2f6fe0;color:#fff;background:linear-gradient(90deg, var(--pill-c) 0 50%, var(--pill-a) 50% 100%);border-radius:999px;padding:.5em 1.2em;font-weight:700;display:inline-block;position:relative;overflow:hidden;box-shadow:0 6px 10px #0003,inset 0 3px #fff6}.sunny-pill:before,.sunny-cta:before{content:"";background:#0003;width:2px;position:absolute;top:0;bottom:0;left:50%}.sunny-pill:after,.sunny-cta:after{content:"";pointer-events:none;background:#fff6;border-radius:999px;height:30%;position:absolute;top:4px;left:10%;right:10%}.sunny-hero{text-align:center;flex:1;place-content:center;justify-items:center;padding:1rem 1.5rem 4rem;display:grid;position:relative}.sun{color:#2a3b7a;background:#ffd84d;border-radius:50%;place-items:center;width:96px;height:96px;margin-bottom:2rem;font-size:64px;line-height:1;display:grid;box-shadow:0 0 0 14px #ffd84d59,0 0 0 30px #ffd84d26}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sunny-title{margin:0;font-size:clamp(2.4rem,7vw,5rem);font-weight:700;line-height:1.05}.sunny-sub{color:#4b5a94;max-width:34ch;margin:1.25rem auto 2rem;font-size:1.2rem;line-height:1.5}.sunny-cta{cursor:pointer;padding:.7em 1.6em;font-size:1.2rem;transform:rotate(-5deg);box-shadow:0 8px 14px #0000003d,inset 0 -5px 9px #00000026,inset 0 3px #ffffff73}html.glitching .sunny-cta,html.red-pill .sunny-cta{--pill-a:#ff6b6b;--pill-c:#d91f1f}html.glitching .sunny{animation:.3s step-end infinite tear}html.glitching .sunny-title,html.glitching .sunny-logo{text-shadow:-4px 0 var(--red), 4px 0 #00e5ff}@keyframes tear{0%{clip-path:inset(0);transform:translate(0)}20%{clip-path:inset(6% 0 4%);transform:translate(-10px,2px)skew(-6deg)}40%{clip-path:inset(0 0 12%);transform:translate(7px,-3px)}60%{clip-path:inset(10% 0 0);transform:translate(-4px)skew(4deg)}80%{clip-path:inset(3% 0 8%);transform:translate(5px,2px)}}.flash{z-index:30;opacity:0;pointer-events:none;background:#fff;position:fixed;inset:0}.flash.on{opacity:1}.flash.green{background:var(--green)}.frame{z-index:31;background:var(--black);pointer-events:none;place-items:center;display:none;position:fixed;inset:0}.frame.on{display:grid}.frame span{font:800 clamp(2.5rem, 11vw, 9rem) / .9 var(--mono);color:var(--red);text-align:center;letter-spacing:-.04em;padding:0 1rem}.skip{z-index:40;color:#2a3b7a;cursor:pointer;background:#ffffffb3;border:0;border-radius:999px;padding:.5em 1.1em;font:500 .95rem Fredoka,system-ui,sans-serif;display:none;position:fixed;bottom:1.25rem;right:1.25rem}html.intro .skip{display:block}.crt{z-index:10;pointer-events:none;background:radial-gradient(#0000 55%,#000000bf 100%),repeating-linear-gradient(#0000 0 2px,#00000047 2px 3px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E");position:fixed;inset:0}.term{max-width:72ch;margin:0 auto;padding:0 clamp(1.25rem,5vw,2.5rem) 3rem}a{color:var(--green);text-underline-offset:.25em;text-decoration:underline dashed}a:hover,button:hover{background:var(--green);color:var(--black);text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:3px}.bar{z-index:5;background:var(--black);border-bottom:1px dashed var(--green-dim);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex;position:sticky;top:0}.home{color:var(--green-dim);text-decoration:none}.menu-btn{font:inherit;color:var(--green);border:1px solid var(--green-dim);cursor:pointer;background:0 0;padding:.2em .8em;display:none}.menu-btn[aria-expanded=true]{background:var(--green);color:var(--black)}.menu-cmd{color:var(--green);margin:0 0 .5rem;display:none}.menu ul{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.menu a{color:var(--green-dim);padding:.15em .45em;text-decoration:none;display:block}.menu a[aria-current=true]{color:var(--green);background:var(--green-deep)}.menu a:hover{color:var(--black);background:var(--green)}.prompt{color:var(--green);margin:0;font-size:1rem;font-weight:400}.ps{color:var(--red);margin-right:.35em}.hero{padding:clamp(4rem,14vh,9rem) 0 clamp(4rem,12vh,7rem)}.title{font:800 clamp(2.4rem, 11.5vw, 5.75rem) / .9 var(--mono);letter-spacing:-.05em;color:var(--green);text-shadow:-3px 0 #ff2b2b8c,3px 0 #00e5ff4d,0 0 24px #39ff6a73;white-space:nowrap;margin:.4rem 0 1.5rem}.lede{grid-template-columns:auto 1fr;column-gap:.85em;max-width:54ch;margin:0;font-size:1.1rem;display:grid}.lede .ps{margin-right:0}.line{display:grid}.line>*{grid-area:1/1}.ghost{color:#0000}.cursor{vertical-align:text-bottom;background:var(--green);cursor:pointer;width:.6em;height:1.1em;margin-left:.1em;animation:1s step-end infinite blink;display:inline-block;position:relative}.cursor:after{content:"";position:absolute;inset:-14px -16px}.cursor.fast{animation-duration:.5s}.cmd{max-width:54ch;margin-top:1rem}.cmd[hidden]{display:none}.cmd-out{white-space:pre-wrap}.cmd-out .cmd-echo{color:var(--green)}.cmd-out .cmd-art{white-space:pre;color:var(--green);margin:.2rem 0;line-height:1.25}.cmd-line{align-items:center;gap:.6em;display:flex}.cmd-line .ps{margin:0}#cmd-in{min-width:0;font:inherit;color:var(--green-text);caret-color:var(--green);border:0;border-bottom:1px dashed var(--green-dim);background:0 0;outline:none;flex:1;padding:.3em 0;font-size:max(16px,1rem)}#cmd-in:focus-visible{border-bottom-color:var(--green)}#cmd-x{font:inherit;color:var(--green);border:1px solid var(--green-dim);cursor:pointer;background:0 0;padding:.2em .55em;font-size:1.2rem;line-height:1}.cursor.solid{animation:none}@keyframes blink{50%{opacity:0}}section[id]{padding:3rem 0;scroll-margin-top:3.5rem}.work{gap:2rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.work li{grid-template-columns:auto 1fr;gap:1.5rem;display:grid}.perm{color:var(--green-dim);white-space:nowrap}.perm.live{color:var(--green)}.work h3{color:var(--green);margin:0;font-size:1.15rem;font-weight:700}.work p{margin:.25rem 0 .5rem}.work .open h3,.work .open p{color:var(--green-dim)}.intro{max-width:60ch;margin:1.5rem 0 1.25rem}.defs{grid-template-columns:5ch 1fr;gap:1rem 1.25rem;max-width:64ch;margin:0 0 1.5rem;display:grid}.defs dt{color:var(--green);font-weight:700}.defs dd{margin:0}.defs strong{color:var(--green);font-weight:700}.note{max-width:60ch;color:var(--green-dim);margin:0}.about-wrap{max-width:60ch;margin-top:1.5rem;display:flow-root}.about{margin:0}.avatar{--p:0;float:left;width:8.5rem;color:var(--green-dim);margin:.3rem 1.5rem 0 0;font-size:.8rem}.avatar-box{aspect-ratio:1;border:1px dashed var(--green-dim);background:#03140a;position:relative;overflow:hidden}.avatar-img{clip-path:inset(0 0 calc(100% - var(--p) * 1%) 0);background-size:100% 100%;position:absolute;inset:0}.avatar-box:after{content:"";left:0;right:0;top:calc(var(--p) * 1%);background:var(--green);height:2px;box-shadow:0 0 8px var(--green);position:absolute}.avatar figcaption{justify-content:space-between;margin-top:.3rem;line-height:1.3;display:flex}.avatar-bar{background:var(--green-deep);height:3px;margin-top:.3rem}.avatar-bar span{height:100%;width:calc(var(--p) * 1%);background:var(--green);display:block}.redact{z-index:1;background:var(--black);border-block:1px solid var(--green);color:var(--green);text-align:center;clip-path:inset(0 100% 0 0);padding:.3em 0;transition:clip-path .35s steps(8,end);position:absolute;top:29%;left:0;right:0}.avatar.stalled .redact{clip-path:inset(0)}.avatar.glitch .avatar-img{animation:.16s step-end avatar-glitch}@keyframes avatar-glitch{0%{clip-path:inset(0 0 55%);transform:translate(3px)}33%{clip-path:inset(30% 0 20%);transform:translate(-4px)}66%{clip-path:inset(60% 0 1%);transform:translate(2px)}}.avatar.stalled .pct{animation:1.4s step-end infinite blink}.contact{grid-template-columns:7ch minmax(0,1fr);gap:.4rem 1rem;margin:1.5rem 0 2rem;display:grid}.contact dt{color:var(--green-dim)}.contact dd{overflow-wrap:break-word;margin:0}.sp{color-scheme:dark;max-width:60ch;margin-top:1.5rem}.sp[hidden]{display:none}.sp-head{color:var(--green);margin:0 0 1rem}.sp-count{color:var(--green-dim)}.sp-hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.sp-step{border:0;gap:.9rem;margin:0;padding:0;display:grid}.sp-step[hidden]{display:none}.sp-step legend{color:var(--green);margin-bottom:.9rem;padding:0}.sp-step>label,.sp label.block{color:var(--green-dim);gap:.3rem;display:grid}.sp .opt,.sp-sub{color:var(--green-dim);font-size:.85rem}.sp-sub{margin:.5rem 0 0}.sp-intro{color:var(--green-dim);margin:-.5rem 0 1.2rem;font-size:.9rem}.sp-hint{color:var(--green-dim);margin:-.3rem 0 0;font-size:.9rem}.sp input[type=text],.sp input[type=email],.sp input[type=tel],.sp textarea{width:100%;font:inherit;color:var(--green-text);caret-color:var(--green);border:0;border-bottom:1px dashed var(--green-dim);background:0 0;border-radius:0;padding:.35em 0;font-size:max(16px,1rem)}.sp textarea{border:1px dashed var(--green-dim);resize:vertical;padding:.5em}.sp input:focus-visible,.sp textarea:focus-visible{border-color:var(--green);outline:none}.sp-opts{gap:.35rem;display:grid}.sp-opts label,.sp-row label{color:var(--green-text);cursor:pointer;align-items:center;gap:.6em;display:flex}.sp input[type=radio],.sp input[type=checkbox]{accent-color:var(--green);width:1.05rem;height:1.05rem;margin:0}.sp-row{flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem;display:flex}.sp-row-label{min-width:9ch;color:var(--green-dim)}.sp-review{grid-template-columns:max-content minmax(0,1fr);gap:.2rem 1rem;margin:0;font-size:.9rem;display:grid}.sp-review dt{color:var(--green-dim)}.sp-review dd{overflow-wrap:anywhere;margin:0}.sp-ts{min-height:0;margin-top:.5rem}.sp-status{min-height:1.4em;color:var(--green-text);margin:1rem 0 .5rem}.sp-nav{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.sp-nav button{font:inherit;color:var(--green);border:1px solid var(--green-dim);cursor:pointer;background:0 0;padding:.45em .9em}.sp-nav button:disabled{opacity:.4;cursor:default}.sp-nav .sp-cancel{color:var(--green-dim);border-color:#0000;margin-left:auto}#sp-send{border-color:var(--green);font-weight:700}.sp-done p{color:var(--green-text);margin:0 0 .35rem}.sp-done .sp-ok{color:var(--green);font-weight:700}button.btn{font:inherit;color:var(--green);cursor:pointer;background:0 0;font-weight:700}button.btn[hidden]{display:none}.btn{border:1px solid var(--green);padding:.8em 1.3em;font-weight:700;text-decoration:none;display:inline-block}.svc{grid-template-columns:max-content minmax(0,1fr);gap:.35rem 1.25rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.svc li{display:contents}.svc-name,.svc-off{color:var(--green-dim)}.foot{border-top:1px dashed var(--green-dim);color:var(--green-dim);justify-content:space-between;align-items:end;gap:1rem;margin-top:3rem;padding-top:1.25rem;font-size:.9rem;display:flex}.stats{gap:.2rem;display:grid}.sudo{left:50%;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:12;background:var(--black);border:1px solid var(--green);width:min(36rem,100% - 2.5rem);color:var(--green-text);visibility:hidden;padding:.8rem 1rem;font-size:.95rem;position:fixed;transform:translate(-50%)}.sudo.on{visibility:visible}.power-btns{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.ouch{z-index:60;background:#00000059;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.ouch[hidden]{display:none}.ouch-win{color:#000;background:silver;border:2px solid #404040;border-color:#fff #404040 #404040 #fff;width:min(20rem,100%);padding:3px;font:13px Tahoma,MS Sans Serif,Verdana,Arial,sans-serif;box-shadow:inset -1px -1px gray,inset 1px 1px #dfdfdf}.ouch-bar{color:#fff;background:linear-gradient(90deg,navy,#1084d0);justify-content:space-between;align-items:center;padding:3px 3px 3px 6px;font-weight:700;display:flex}.ouch-bar button,.ouch-ok{font:inherit;color:#000;cursor:pointer;background:silver;border:2px solid #404040;border-color:#fff #404040 #404040 #fff}.ouch-bar button:active,.ouch-ok:active{border-color:#404040 #fff #fff #404040}.ouch-x{width:22px;height:20px;padding:0;font-weight:700;line-height:1}.ouch-body{align-items:center;gap:14px;padding:18px 14px 10px;display:flex}.ouch-body p{margin:0}.ouch-icon{color:#fff;background:#e00000;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font:700 26px/1 Arial,sans-serif;display:grid;box-shadow:2px 2px #00000059}.ouch-actions{justify-content:center;padding:6px 0 10px;display:flex}.ouch-ok{min-width:76px;padding:4px 10px}.ouch-ok:focus-visible,.ouch-x:focus-visible{outline-offset:-5px;outline:1px dotted #000}.saver{z-index:45;background:var(--black);cursor:none;position:fixed;inset:0}.saver[hidden]{display:none}.saver-logo{will-change:transform;width:min(15rem,60vw);position:absolute;top:0;left:0}.saver-logo svg{width:100%;height:auto;display:block}.saver-count{left:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));color:var(--green-dim);margin:0;font-size:.8rem;position:absolute}html.powered-off,html.powered-off body{overflow:hidden}.off{z-index:50;background:var(--black);flex-direction:column;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.off[hidden]{display:none}.off-log{white-space:pre-wrap;width:min(40rem,100%);font:400 .9rem/1.6 var(--mono);color:var(--green-text);margin:12vh 0 0}.off-log.dying{animation:.55s ease-in forwards crt-off}@keyframes crt-off{0%{filter:brightness();transform:scale(1)}60%{filter:brightness(4);transform:scaleY(.004)}to{filter:brightness(4);opacity:0;transform:scale(0,.004)}}.off-log:empty{display:none}.power-on{font:inherit;color:var(--green-dim);cursor:pointer;background:0 0;border:0;margin:auto;animation:2s step-end infinite blink}.power-on[hidden]{display:none}.foot button{font:inherit;color:var(--green);border:1px solid var(--green-dim);cursor:pointer;background:0 0;padding:.4em .8em}@media (width<=640px){.sunny-links>span:not(.sunny-pill){display:none}.work li{grid-template-columns:1fr;gap:.25rem}.menu-btn{display:block}.foot{flex-direction:column;align-items:start}.power-btns{justify-content:flex-start}.off-log{font-size:.8rem}.menu{background:var(--black);border-bottom:1px dashed var(--green-dim);padding:1rem 0 1.25rem;display:none;position:absolute;top:100%;left:0;right:0}.menu.open,.menu-cmd{display:block}.menu ul{flex-direction:column;gap:.1rem}.menu a{padding:.45em .5em .45em 1.2em}.avatar{width:7rem;margin-right:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cursor{animation:none}.redact{transition:none}}
