@font-face{font-family:Cosmic Vortex;src:url(/fonts/cosmic-vortex.woff2) format("woff2");font-display:swap}@font-face{font-family:Monomials;src:url(/fonts/monomials.woff2) format("woff2");font-display:swap}*{margin:0;padding:0;box-sizing:border-box}html,body{background:#000;color:#d6ffe6;font-family:Monomials,ui-monospace,SF Mono,Menlo,monospace}.app{--bg: #000;--fg: #d6ffe6;--muted: #6bbb86;--accent: #00ff66;--warn: #ffcc33;--line: rgba(126, 255, 164, .8);--line-dim: rgba(126, 255, 164, .3);--panel: rgba(2, 14, 7, .5);--glow: 0 0 10px rgba(0, 255, 102, .3);--display: "Cosmic Vortex", "Monomials", system-ui, sans-serif;--body: "Monomials", ui-monospace, "SF Mono", Menlo, monospace}#stage{height:500vh;position:relative}.sticky{position:sticky;top:0;height:100vh;overflow:hidden}.canvas{position:absolute;top:0;right:0;bottom:0;left:0}.blackfade{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;pointer-events:none;will-change:opacity;z-index:4}.poweron{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;will-change:opacity}.poweron-content{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg);overflow:hidden}.login{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;overflow:hidden;background:#000;place-items:center}.login-box{position:relative;width:min(680px,86vw);font-family:var(--body);color:var(--fg);line-height:1.75;padding:2.2rem 2rem 1.6rem;border:2px solid var(--line);outline:1px solid var(--line-dim);outline-offset:6px;box-shadow:var(--glow),inset 0 0 40px #00ff660a;background:var(--panel)}.login-title{position:absolute;top:0;left:1.6rem;transform:translateY(-50%);background:#000;padding:0 .6rem;color:var(--accent);font-size:.78rem;letter-spacing:.28em;text-shadow:0 0 10px rgba(0,255,102,.6)}.corner{position:absolute;color:#baffd2;font-size:.72rem;line-height:1;text-shadow:0 0 8px rgba(0,255,102,.8)}.c-tl{top:-.42em;left:-.36em}.c-tr{top:-.42em;right:-.36em}.c-bl{bottom:-.42em;left:-.36em}.c-br{bottom:-.42em;right:-.36em}.login-head{color:var(--accent);letter-spacing:.12em;margin-bottom:.4rem;text-shadow:0 0 12px rgba(0,255,102,.5)}.login-divider{overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;color:var(--accent);opacity:.55;font-size:.6rem;letter-spacing:.32em;margin:.4rem 0 .9rem}.login-divider.bottom{margin:1.2rem 0 .2rem;opacity:.35}.login-line{font-size:clamp(.9rem,1.6vw,1.15rem)}.login-line.dim{color:var(--muted);opacity:.7}.lp{color:var(--accent);margin-right:.5rem}.login-granted{font-size:clamp(1.4rem,3vw,2.2rem);color:#eafff2;letter-spacing:.16em;text-shadow:0 0 22px rgba(0,255,102,.9);animation:flick .5s steps(2) infinite}@keyframes flick{50%{opacity:.55}}.login-scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.25) 0 1px,transparent 1px 3px);opacity:.4}.hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;color:#6bbb86;z-index:4;will-change:opacity}.screen{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;overflow:hidden}.terminal{position:absolute;top:3.2vmin;right:3.2vmin;bottom:3.2vmin;left:3.2vmin;border:3px solid color-mix(in srgb,var(--accent) 72%,transparent);background:radial-gradient(125% 125% at 50% 45%,#03120a,#010402 78%);box-shadow:0 0 70px #00ff662e,0 0 0 1px #00ff6624,inset 0 0 130px #00ff660d}.frame-title{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);z-index:4;background:#000;border:2px solid var(--line);padding:.18rem 1.1rem;white-space:nowrap;color:var(--accent);font-size:.72rem;letter-spacing:.3em;text-shadow:0 0 10px rgba(0,255,102,.6)}.screen-rain{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.06;z-index:0;filter:blur(1.4px)}.os{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;padding:1.8vmin 1.4vmin 1.4vmin}.deck{display:grid;grid-template-columns:232px 1fr 1fr 320px;grid-template-rows:minmax(0,1.02fr) minmax(0,.76fr) 1rem minmax(0,1.28fr) 58px 1rem minmax(0,1.06fr);grid-template-areas:"photo     id    id     vid" "photo     about skills vid" "div1      div1  div1   vid" "edu       exp   exp    vid" "sys       sys   sys    wire" "div2      div2  div2   wire" "manifesto proj  proj   wire";gap:1vmin;width:100%;height:100%}.card{position:relative;background:var(--panel);border:2px solid var(--line);box-shadow:var(--glow),inset 0 0 24px #00ff6608;padding:.55rem .8rem;overflow:hidden;display:flex;flex-direction:column;gap:.3rem;min-height:0}.card p{color:var(--muted);font-size:.79rem;line-height:1.38}.pane-legend{flex:none;color:var(--accent);font-size:.66rem;letter-spacing:.2em;text-shadow:0 0 8px rgba(0,255,102,.55);margin-bottom:.1rem}.a-photo .pane-legend,.a-vid .pane-legend,.a-wire .pane-legend{position:absolute;top:.45rem;left:.6rem;z-index:2;margin:0;background:#0009;padding:.08rem .4rem}.map-divider{display:flex;align-items:center;overflow:hidden;color:var(--accent);-webkit-user-select:none;user-select:none;pointer-events:none;font-size:.64rem;line-height:1;text-shadow:0 0 8px rgba(0,255,102,.4)}.div-fill{flex:1;overflow:hidden;white-space:nowrap;letter-spacing:.3em;opacity:.45}.div-label{flex:none;padding:0 .7rem;letter-spacing:.2em;color:#baffd2}.a-div1{grid-area:div1}.a-div2{grid-area:div2}.a-photo{grid-area:photo;padding:0}.a-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;filter:grayscale(1) sepia(1) hue-rotate(60deg) saturate(2.4) brightness(.85) contrast(1.2)}.a-id{grid-area:id;justify-content:flex-start;gap:.14rem}.a-id .name{font-size:clamp(1.4rem,2.4vw,2rem);color:var(--fg);text-shadow:0 0 18px rgba(0,255,102,.5)}.realname{color:var(--muted);font-size:.76rem}.a-id .role{color:var(--accent);font-size:clamp(.8rem,1.2vw,.98rem)}.links{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;margin-top:.2rem}.links a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--accent)}.sep{color:color-mix(in srgb,var(--accent) 50%,transparent)}.a-about{grid-area:about}.a-about p{font-size:.75rem;line-height:1.36}.a-skills{grid-area:skills}.a-exp{grid-area:exp}.a-manifesto{grid-area:manifesto}.a-edu{grid-area:edu}.a-edu .row-title.sm{font-size:.68rem;line-height:1.25}.a-edu .org{font-size:.66rem}.a-edu .item-when{font-size:.58rem}.a-edu .row+.row{margin-top:.26rem;padding-top:.26rem}.a-proj{grid-area:proj}.proj-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:.9rem;row-gap:.45rem;align-content:start}.proj-grid .row+.row{margin-top:0;padding-top:0;border-top:none}.proj-desc{color:var(--muted);font-size:.7rem;line-height:1.3}.a-vid{grid-area:vid;padding:0}.a-vid video{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) sepia(1) hue-rotate(60deg) saturate(2.8) brightness(.9) contrast(1.25)}.a-wire{grid-area:wire;padding:0}.wire-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.wire-stats{position:absolute;bottom:.3rem;right:.55rem;z-index:2;font-size:.62rem!important;letter-spacing:.1em;color:var(--muted)!important;opacity:.85}.a-sys{grid-area:sys;padding:.4rem .8rem;justify-content:center;gap:.15rem}.sys-strip{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;column-gap:.9rem;row-gap:.15rem;font-family:var(--body);font-size:.64rem;white-space:nowrap}.sys-item{display:inline-flex;gap:.45rem;align-items:baseline}.sys-item+.sys-item:before{content:"◆";font-size:.5em;color:var(--accent);opacity:.7;align-self:center}.sys-k{color:var(--muted);letter-spacing:.04em}.sys-v{color:var(--fg);font-variant-numeric:tabular-nums}.sys-v.hot{color:var(--warn);text-shadow:0 0 8px rgba(255,204,51,.5)}.quote-box:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid var(--line-dim);pointer-events:none}.quote-box{padding-bottom:.4rem}.a-manifesto p{font-size:.72rem;line-height:1.4}.mono-dim{color:color-mix(in srgb,var(--accent) 70%,#7fd39c)!important;font-size:.68rem!important;letter-spacing:.02em}.exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:.64rem;color:var(--accent)}.display{font-family:var(--display);line-height:1.02;letter-spacing:.02em}.org{color:var(--accent);font-size:.76rem}.tags{display:flex;flex-wrap:wrap;gap:.3rem}.tag{border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);padding:.13rem .4rem;font-size:.66rem;color:var(--fg);background:transparent}.row{display:grid;gap:.08rem}.row+.row{margin-top:.32rem;padding-top:.32rem;border-top:1px dashed color-mix(in srgb,var(--accent) 22%,transparent)}.item-when{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.row-title{color:var(--fg);font-size:.83rem;font-weight:700}.row-title.sm{font-size:.78rem}.card ul{list-style:none;display:grid;gap:.14rem;margin-top:.08rem}.card li{position:relative;padding-left:.95rem;font-size:.74rem;color:var(--muted);line-height:1.32}.card li:before{content:"◆";position:absolute;left:0;top:.14em;font-size:.6em;color:var(--accent);text-shadow:0 0 6px rgba(0,255,102,.6)}.crt-scanlines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px);opacity:.4}.crt-sweep{position:absolute;left:0;right:0;height:16%;z-index:3;pointer-events:none;background:linear-gradient(to bottom,transparent,rgba(0,255,102,.05),transparent);animation:sweep 7s linear infinite}@keyframes sweep{0%{top:-16%}to{top:100%}}.crt-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;box-shadow:inset 0 0 180px 50px #000c}.caret{color:var(--accent);animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media (max-width: 980px){.os{overflow-y:auto}.deck{height:auto;min-height:100%;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1.1rem auto auto 40vh 1.1rem auto auto 22vh;grid-template-areas:"photo     id" "about     skills" "div1      div1" "exp       exp" "sys       sys" "vid       vid" "div2      div2" "edu       proj" "manifesto manifesto" "wire      wire"}.a-photo{height:24vh}.proj-grid,.exp-grid{grid-template-columns:1fr}.terminal{top:2vmin;right:2vmin;bottom:2vmin;left:2vmin}.frame-title{font-size:.6rem;letter-spacing:.18em;padding:.14rem .6rem}}@media (prefers-reduced-motion: reduce){#stage{height:100vh}.crt-sweep,.caret,.login-granted{animation:none}}
