@font-face{font-family:Manrope;src:url(/fonts/manrope.ttf) format("truetype");font-weight:200 800;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/mono.ttf) format("truetype");font-weight:100 800;font-display:swap}:root{--bg: #0b1410;--panel: #0e1a15;--panel-2: #15251e;--line: #26382f;--ink: #eef2ea;--soft: #cfd8d2;--muted: #8fa198;--green: #5fbf8e;--lime: #c5e86c;--on-lime: #10201a;--err: #f2b8a8;--sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--m: clamp(20px, 3.9vw, 56px);--gap: clamp(112px, 12vw, 180px);--ease: cubic-bezier(.16, 1, .3, 1);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip;scrollbar-color:var(--line) var(--bg)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}::selection{background:var(--lime);color:var(--on-lime)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px;border:2px solid var(--bg)}a{color:inherit;text-underline-offset:.2em}:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:4px}h1,h2,h3,p,ul,ol,dl,dd,figure,pre{margin:0}ul,ol{padding:0;list-style:none}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.skip{position:absolute;left:var(--m);top:-60px;z-index:50;background:var(--lime);color:var(--on-lime);padding:10px 16px;border-radius:999px}.skip:focus{top:12px}.display{font-size:clamp(48px,5.6vw,84px);line-height:.95;letter-spacing:-.045em;font-weight:700}.display em{font-style:normal;color:var(--lime)}.display .line{display:block;overflow:hidden;padding-bottom:.08em}.display .line>span{display:inline-block}.h2{font-size:clamp(40px,4.6vw,68px);line-height:1;letter-spacing:-.04em;font-weight:700;text-wrap:balance}.h3{font-size:20px;letter-spacing:-.01em;font-weight:600}.lead{font-size:20px;line-height:1.55;color:var(--soft);max-width:32ch}.body{color:var(--soft);max-width:58ch}.btn{display:inline-flex;align-items:center;min-height:54px;padding:0 26px;border-radius:999px;font:600 17px var(--sans);text-decoration:none;transition:transform .4s var(--ease),background-color .3s,color .3s}.btn:active{transform:scale(.96)}.btn-lime{background:var(--lime);color:var(--on-lime)}.btn-lime:hover{background:var(--ink)}.btn-dark{background:var(--panel-2);color:var(--ink)}.btn-dark:hover{background:var(--green);color:var(--on-lime)}.bar{position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:22px var(--m);transition:background-color .4s}.bar.is-solid{background:#0b1410f5}.who{font-weight:700;letter-spacing:-.02em;text-decoration:none;font-size:18px}.bar nav{display:flex;gap:28px}.bar nav a{text-decoration:none;color:var(--soft);font-size:15px;position:relative;padding-block:6px;transition:color .3s}.bar nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}.bar nav a:hover{color:var(--ink)}.bar nav a:hover:after{transform:scaleX(1)}.term{background:var(--panel);border-radius:16px;overflow:hidden;outline:1px solid var(--line);box-shadow:0 40px 80px -30px #000000b3;display:flex;flex-direction:column}.term-bar{display:flex;align-items:center;gap:8px;padding:13px 16px;background:var(--panel-2)}.term-bar i{width:12px;height:12px;border-radius:50%;background:var(--line)}.term-bar i:first-child{background:var(--green)}.term-bar span{margin-left:10px;font-size:13px;color:var(--muted)}.term-body{padding:22px 24px;font-size:14.5px;line-height:1.75;color:var(--soft)}.p{color:var(--green)}.cmd{color:var(--ink)}.a{color:var(--lime)}.ok{color:var(--green)}.dim{color:var(--muted)}.caret{display:inline-block;width:.6em;height:1.15em;vertical-align:-.2em;background:var(--green);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.term-input{display:flex;gap:10px;align-items:center;padding:0 24px 20px;font-size:14.5px}.term-input input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--ink);font:inherit;caret-color:var(--lime);padding:4px 0}.term-input input::placeholder{color:#55675e}.term-body .art{white-space:pre;line-height:1.3;overflow-x:hidden}.matrix{color:var(--green)}.snake{line-height:1.12;font-size:13px;letter-spacing:0}.sn-bg{color:#1f3329}.sn-edge{color:var(--line)}.sn-body{color:var(--green)}.sn-head{color:var(--lime)}.sn-food{color:var(--lime);font-weight:700}.train{color:var(--soft)}.sw{display:inline-block;width:22px;height:12px;margin-right:4px;border-radius:2px}.sw1{background:var(--bg);outline:1px solid var(--line)}.sw2{background:var(--panel-2)}.sw3{background:#256b4c}.sw4{background:var(--green)}.sw5{background:var(--lime)}body.retro .term-body,body.retro .term-input{color:#8dffa8;text-shadow:0 0 6px rgba(141,255,168,.5)}body.retro .term-body .a,body.retro .term-body .ok,body.retro .p{color:#b6ffc6}body.retro .term{position:relative}body.retro .term:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px)}.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding:120px var(--m) 64px}.hero-copy{position:relative;z-index:1;display:grid;gap:28px;align-content:center}.dots{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.term-hero{position:relative;z-index:1}.tags{display:flex;flex-wrap:wrap;gap:10px}.tags li{font-size:13px;padding:8px 12px;border-radius:8px;background:var(--panel-2);color:var(--lime)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.term-hero{height:min(560px,70svh)}.term-hero .term-body{flex:1;overflow-y:auto;scrollbar-width:none;cursor:text}.term-hero .term-body::-webkit-scrollbar{display:none}.term-hero .term-body p{white-space:pre-wrap}.shell-hint{color:var(--muted)}section{scroll-margin-top:80px}.sec-head{display:grid;gap:16px;margin-bottom:48px;max-width:760px}.projects,.stack,.about{padding:var(--gap) var(--m) 0}.windows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.win-wide{grid-column:span 2}.win{box-shadow:none;transition:transform .6s var(--ease),outline-color .3s}.win:hover{transform:translateY(-4px);outline-color:var(--green)}.win .term-body{display:grid;gap:10px;align-content:start;min-height:100%}.win-title{font:700 clamp(30px,3vw,44px)/1.05 var(--sans);letter-spacing:-.035em;color:var(--ink);margin-top:6px}.win-desc{font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--soft);max-width:62ch}.win-meta{display:grid;gap:4px;margin-top:8px}.win-meta div{display:grid;grid-template-columns:96px 1fr;gap:12px}.win-meta dt{color:var(--green)}.win-meta dt:after{content:":"}.win-meta a{color:var(--lime)}.live{color:var(--lime);display:flex;align-items:center;gap:10px}.dot{width:8px;height:8px;border-radius:50%;background:var(--lime);flex:none;animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}.bars{display:grid;gap:14px;margin-top:14px}.bars li{display:grid;grid-template-columns:220px 1fr 52px;grid-template-areas:"name track pct" ". note note";column-gap:18px;align-items:center}.bar-name{grid-area:name;color:var(--ink)}.bar-track{grid-area:track;height:10px;border-radius:3px;background:var(--panel-2);overflow:hidden}.bar-fill{display:block;height:100%;width:var(--w, 0%);background:repeating-linear-gradient(90deg,var(--lime) 0 10px,transparent 10px 13px);transition:width 1.4s var(--ease)}.bar-pct{grid-area:pct;text-align:right;color:var(--lime);font-variant-numeric:tabular-nums}.bar-note{grid-area:note;color:var(--muted);font-size:13px}.security{padding:var(--gap) var(--m) 0;display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}.sec-copy{display:grid;gap:20px;align-content:start}.radar{display:grid;gap:12px;justify-items:start;margin-top:12px}.radar canvas{width:min(280px,100%);aspect-ratio:1}.radar figcaption{font-size:13px}.log{display:grid;gap:8px;margin-top:14px}.log li{display:flex;gap:10px}.st{color:var(--green);white-space:pre;flex:none}.st.is-run{color:var(--lime)}.log-end{margin-top:16px;color:var(--lime)}.about .h2{margin-bottom:40px}.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:64px}.statement{font-size:24px;line-height:1.45;letter-spacing:-.01em;font-weight:500;max-width:40ch}.facts{display:grid;gap:32px;align-content:start}.plain{display:grid;gap:6px;margin-top:10px;color:var(--soft)}.plain li:before{content:"› ";color:var(--green);font-family:var(--mono)}.contact{padding:var(--gap) var(--m);display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}.links{display:grid;gap:10px;margin-top:12px}.links li{display:grid;grid-template-columns:100px 1fr;gap:12px}.links a{text-decoration:none;color:var(--ink);transition:color .2s}.links a:hover{color:var(--lime)}.form .term-body{padding-bottom:6px}.form .term-input{padding-inline:0}.q{color:var(--ink);margin-top:6px}.out p{margin-top:4px}.out a{color:var(--lime)}.hp{position:absolute;left:-9999px;width:1px;height:1px}.foot{padding:64px var(--m) 48px;display:flex;justify-content:space-between;align-items:end;gap:32px;background:var(--panel)}.ascii{color:var(--green);font-size:14px;line-height:1.4}.foot-meta{text-align:right;color:var(--muted);font-size:15px;display:grid;gap:4px}.foot-meta a{text-decoration:none;color:var(--soft)}.foot-meta a:hover{color:var(--lime)}@media(max-width:1000px){.hero{grid-template-columns:1fr;padding-top:112px;gap:40px}.term-hero{height:440px}.security,.contact{grid-template-columns:1fr;gap:32px}.about-grid{grid-template-columns:1fr;gap:40px}}@media(max-width:700px){.bar nav{display:none}.display{font-size:10.4vw}.links li{grid-template-columns:1fr;gap:0}.links a{overflow-wrap:anywhere}.lead{font-size:18px}.windows{grid-template-columns:1fr}.win-wide{grid-column:auto}.term-body{padding:18px;font-size:13.5px}.term-input{padding:0 18px 16px;font-size:13.5px}.win-meta div{grid-template-columns:1fr;gap:0}.bars li{grid-template-columns:1fr 48px;grid-template-areas:"name pct" "track track" "note note";row-gap:6px}.foot{flex-direction:column;align-items:start}.foot-meta{text-align:left}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
