@import "https://fonts.googleapis.com/css2?family=VT323&family=Share+Tech+Mono&display=swap";:root{--mono:"Courier New", Courier, monospace;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-width:100%;min-height:100%}body{margin:0;overflow:hidden}*{box-sizing:border-box}html,body,#root{background:#000;height:100%;margin:0;padding:0;overflow:hidden}body{font-family:VT323,Share Tech Mono,Courier New,monospace}.crt-shell{width:100%;height:100%;position:relative;overflow:hidden}.crt-screen{scrollbar-width:none;color:#baffc9;background:#05070a;flex-direction:column;width:100%;max-width:1600px;height:100%;scroll-padding-top:24px;display:flex;position:relative;overflow:hidden auto;box-shadow:0 0 0 4px #17161a,0 0 0 8px #0c0b0d,inset 0 0 60px 10px #000000d9,inset 0 0 140px 30px #0009}.crt-screen::-webkit-scrollbar{width:0;height:0;display:none}.crt-glitch-text{animation:1.6s infinite textShadow}.crt-scrollbar{z-index:5;pointer-events:none;background:#05070a;width:14px;position:fixed;top:0;bottom:0;right:0;box-shadow:inset 1px 0 #baffc914}.crt-scrollbar-thumb{background:repeating-linear-gradient(0deg,#05070a2e 0 1px,#0000 1px 3px),#baffc9a2;width:100%;min-height:36px;box-shadow:0 0 6px #6dffb099,inset 0 0 5px #baffc98c}.crt-image-column{flex-direction:column;flex:0 40%;align-items:center;gap:1rem;max-width:40%;display:flex}.crt-image-wrap{z-index:1;border:1px solid #baffc9b3;flex:0 auto;justify-content:center;align-items:center;width:100%;max-width:100%;max-height:70%;margin:0;padding:.8rem;display:flex;position:relative;overflow:hidden;box-shadow:0 0 12px #78ffaa40,inset 0 0 12px #78ffaa1f}.social-links{color:#baffc9;gap:1.25rem;display:flex}.social-links a{place-items:center;width:1.5rem;height:1.5rem;display:grid}.social-links svg{fill:currentColor;width:100%;height:100%}@media (width<=700px){.crt-image-wrap{max-width:100%}.crt-image-column{align-self:center;width:min(80%,28rem);max-width:80%}}.crt-image{white-space:pre;color:#baffc9;text-shadow:0 0 2px #baffc9cc,0 0 6px #78ffaa80;letter-spacing:0;transform-origin:50%;-webkit-user-select:none;user-select:none;pointer-events:none;margin:0;font-family:Share Tech Mono,VT323,monospace;font-size:clamp(2.2px,.14vw,10px)}.crt-curvature{z-index:2;pointer-events:none;background:radial-gradient(#fff0 60%,#00000059 100%);position:absolute;inset:0}.crt-vignette{z-index:4;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 180px 60px #000000bf}.crt-scanlines{content:" ";z-index:3;pointer-events:none;background:linear-gradient(#12101000 50%,#00000040 50%) 0 0/100% 2px,linear-gradient(90deg,#ff00000f,#00ff0005,#0000ff0f) 0 0/3px 100%;display:block;position:absolute;inset:0}.crt-flicker{content:" ";opacity:0;z-index:3;pointer-events:none;background:#1210101a;animation:.15s infinite flicker;display:block;position:absolute;inset:0}@keyframes flicker{0%{opacity:.27861}5%{opacity:.34769}10%{opacity:.23604}15%{opacity:.90626}20%{opacity:.18128}25%{opacity:.83891}30%{opacity:.65583}35%{opacity:.67807}40%{opacity:.26559}45%{opacity:.84693}50%{opacity:.96019}55%{opacity:.08594}60%{opacity:.20313}65%{opacity:.71988}70%{opacity:.53455}75%{opacity:.37288}80%{opacity:.71428}85%{opacity:.70419}90%{opacity:.7003}95%{opacity:.36108}to{opacity:.24387}}@keyframes textShadow{0%{text-shadow:.438992px 0 1px #001eff80,-.438992px 0 1px #ff00504d,0 0 3px}5%{text-shadow:2.7929px 0 1px #001eff80,-2.7929px 0 1px #ff00504d,0 0 3px}10%{text-shadow:.0295628px 0 1px #001eff80,-.0295628px 0 1px #ff00504d,0 0 3px}15%{text-shadow:.402185px 0 1px #001eff80,-.402185px 0 1px #ff00504d,0 0 3px}20%{text-shadow:3.4794px 0 1px #001eff80,-3.4794px 0 1px #ff00504d,0 0 3px}25%{text-shadow:1.61256px 0 1px #001eff80,-1.61256px 0 1px #ff00504d,0 0 3px}30%{text-shadow:.701559px 0 1px #001eff80,-.701559px 0 1px #ff00504d,0 0 3px}35%{text-shadow:3.89691px 0 1px #001eff80,-3.89691px 0 1px #ff00504d,0 0 3px}40%{text-shadow:3.87091px 0 1px #001eff80,-3.87091px 0 1px #ff00504d,0 0 3px}45%{text-shadow:2.23106px 0 1px #001eff80,-2.23106px 0 1px #ff00504d,0 0 3px}50%{text-shadow:.0808429px 0 1px #001eff80,-.0808429px 0 1px #ff00504d,0 0 3px}55%{text-shadow:2.37585px 0 1px #001eff80,-2.37585px 0 1px #ff00504d,0 0 3px}60%{text-shadow:2.20219px 0 1px #001eff80,-2.20219px 0 1px #ff00504d,0 0 3px}65%{text-shadow:2.86388px 0 1px #001eff80,-2.86388px 0 1px #ff00504d,0 0 3px}70%{text-shadow:.48874px 0 1px #001eff80,-.48874px 0 1px #ff00504d,0 0 3px}75%{text-shadow:1.89485px 0 1px #001eff80,-1.89485px 0 1px #ff00504d,0 0 3px}80%{text-shadow:.0833037px 0 1px #001eff80,-.0833037px 0 1px #ff00504d,0 0 3px}85%{text-shadow:.0976983px 0 1px #001eff80,-.0976983px 0 1px #ff00504d,0 0 3px}90%{text-shadow:3.44334px 0 1px #001eff80,-3.44334px 0 1px #ff00504d,0 0 3px}95%{text-shadow:2.18418px 0 1px #001eff80,-2.18418px 0 1px #ff00504d,0 0 3px}to{text-shadow:2.62088px 0 1px #001eff80,-2.62088px 0 1px #ff00504d,0 0 3px}}.crt-page{color:#baffc9;width:100%;max-width:1600px;margin:0 auto;padding:0 clamp(2rem,6vw,8rem)}.crt-hero{flex-wrap:wrap;align-items:flex-start;min-height:100svh;padding:15vw 0 3rem;display:flex;transform:translateY(-3vh)}.crt-hero-text{flex:320px}.intro-line{opacity:.75;margin:0 0 4px;font-size:2.5rem}.hero-name{color:#baffc9;margin:0 0 6px;font-size:clamp(3.6rem,7vw,6.5rem);line-height:1.05}.role-line{letter-spacing:.06em;opacity:.85;margin:0 0 20px;font-size:2.5rem}.cursor{margin-left:2px;animation:1s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.page-links{flex-wrap:wrap;gap:20px;display:flex}.page-links a{color:#baffc9;letter-spacing:.05em;border-bottom:1px solid #0000;padding-bottom:2px;font-size:1.35rem;text-decoration:none;transition:border-color .2s,text-shadow .2s}.page-links a:hover,.page-links a:focus-visible{text-shadow:0 0 6px #baffc9b3;border-color:#baffc9cc}.crt-image-column{flex:280px;justify-content:center;display:flex}.crt-image-wrap{max-width:100%}.crt-section{border-top:3px dashed #baffc9b8;min-height:100svh;padding:5rem 0;scroll-margin-top:24px}#skills{padding-inline:clamp(0rem,0vw,0rem)}.skills-explorer{grid-template-columns:minmax(15rem,.7fr) minmax(22rem,1.3fr);align-items:stretch;gap:clamp(2rem,8vw,8rem);min-height:32rem;display:grid}.skills-list{flex-direction:column;align-items:flex-start;gap:.65rem;margin:0;padding:1rem 0;list-style:none;display:flex}.skills-list li{width:100%;position:relative}.skills-list li:before{content:">> ";opacity:.45}.skills-list li:after{content:"";opacity:0;transform-origin:0;background:currentColor;width:clamp(2rem,8vw,8rem);height:1px;transition:opacity .2s,transform .25s;position:absolute;top:50%;left:calc(100% + .75rem);transform:scaleX(0)}.skills-list li.is-active:after{opacity:.75;transform:scaleX(1)}.skills-list button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;padding:.4rem .7rem;font-size:1.5rem;transition:border-color .2s,background .2s,text-shadow .2s}.skills-list button:hover,.skills-list button:focus-visible,.skills-list li.is-active button{text-shadow:0 0 6px #baffc9b3;background:#baffc90d;border-color:currentColor;outline:none}.skill-detail{opacity:0;pointer-events:none;border:1px solid #0000;flex-direction:column;min-width:0;transition:opacity .25s,transform .25s,border-color .25s;display:flex;transform:translate(1rem)}.skill-detail.is-visible{opacity:1;pointer-events:auto;border-color:#baffc9b8;transform:translate(0);box-shadow:0 0 14px #78ffaa1f,inset 0 0 18px #78ffaa0d}.skill-preview{color:#baffc999;letter-spacing:.08em;border-bottom:1px dashed #baffc980;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;min-height:15rem;font-size:1.1rem;display:flex}.skill-preview-mark{border:1px dashed;place-items:center;width:6rem;height:4rem;font-size:2rem;display:grid}.skill-projects{min-height:9rem;padding:1rem 1.2rem 1.2rem}.skill-projects-label{color:#baffc999;letter-spacing:.08em;margin-bottom:.8rem;font-size:1rem;display:block}.skill-projects article+article{margin-top:1rem}.skill-projects h3,.skill-projects p{margin:0}.skill-projects h3{font-size:1.35rem}.skill-projects h3:before{content:"> ";opacity:.65}.skill-projects p{opacity:.8;margin-top:.25rem;font-size:1.1rem;line-height:1.35}.skill-empty{opacity:.6}#projects{padding-inline:clamp(0rem,3vw,3rem)}#education{padding-inline:clamp(0rem,5vw,5rem)}.section-prompt{opacity:.55;margin:0 0 4px;font-size:1.3rem}.crt-section h2{letter-spacing:.08em;margin:0 0 20px;font-size:2.35rem}.section-list{flex-wrap:wrap;gap:10px 24px;margin:0;padding:0;font-size:1.5rem;list-style:none;display:flex}.section-list li:before{content:"» ";opacity:.6}@media (width<=760px){.skills-explorer{grid-template-columns:1fr;gap:1.5rem;min-height:0}.skills-list li:after{display:none}.skill-detail{min-height:20rem}}.section-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;display:grid}.crt-card{box-shadow:none;background:0 0;border:0;border-left:2px solid #baffc973;padding:0 0 0 1.25rem}.crt-card h3{margin:0 0 8px;font-size:1.65rem}.crt-card h3:before{content:"> ";opacity:.65}.crt-card p{opacity:.85;margin:0;font-size:1.3rem;line-height:1.55}.crt-screen{perspective:1200px}.crt-tilt-wrap{transform:rotateX(calc(3.2deg + var(--scroll-frac,0) * 1.8deg));transform-origin:top;will-change:transform;position:relative}.crt-vignette{box-shadow:inset 0 0 220px 90px #000c,inset 0 0 40px 10px #0006}.boot-flicker{z-index:20000;pointer-events:none;animation:linear forwards boot-flicker-fade;animation-duration:inherit;background:#050d08;position:fixed;inset:0;overflow:hidden}.boot-flicker-phosphor{animation:linear forwards phosphor-warmup;animation-duration:inherit;background:radial-gradient(#baffc9e6,#20683ac7 38%,#050d08 76%);position:absolute;inset:0}.boot-flicker-lines{opacity:.8;background:repeating-linear-gradient(0deg,#baffc914 0 1px,#0000 1px 4px);position:absolute;inset:0}@keyframes boot-flicker-fade{0%{opacity:1}72%{opacity:1}to{opacity:0}}@keyframes phosphor-warmup{0%{opacity:0;transform:scaleY(.02)}24%{opacity:.95;transform:scaleY(.02)}62%{opacity:.8;transform:scaleY(1)}to{opacity:.1}}@media (prefers-reduced-motion:reduce){.boot-flicker,.boot-flicker-phosphor{animation:none}}
