:root{--bg: #000;--fg: #fff;--dim: #555;--muted: #333;--subtle: #888;--font-pixel: "Press Start 2P", monospace;--font-terminal: "VT323", monospace;--font-mono: "IBM Plex Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--dim) var(--bg)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--dim)}body{background:var(--bg);color:var(--fg);font-family:var(--font-terminal);font-size:1.4rem;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale}#bg-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;opacity:.15}.crt-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15) 0px,rgba(0,0,0,.15) 1px,transparent 1px,transparent 3px)}.scan-beam{position:fixed;left:0;width:100%;height:4px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.03),transparent);z-index:9998;pointer-events:none;animation:scanBeam 8s linear infinite}@keyframes scanBeam{0%{top:-4px}to{top:100vh}}.terminal-wrapper{max-width:880px;margin:0 auto;padding:1.5rem;position:relative;z-index:10}.section{margin-bottom:5rem;padding-top:2rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-pixel);text-transform:uppercase;margin-bottom:1rem;line-height:1.6}a{color:var(--fg);text-decoration:none;transition:background .15s,color .15s}a:hover{background:var(--fg);color:var(--bg)}::selection{background:var(--fg);color:var(--bg)}.prompt{color:var(--subtle)}#hero{min-height:90vh;display:flex;align-items:center;justify-content:center}.hero-content{width:100%}.hero-header{margin-bottom:2.5rem}.about-logo{display:block;max-width:clamp(30px,8vw,72px);height:auto;margin-bottom:1rem;opacity:.9;filter:grayscale(1) brightness(1.2);image-rendering:pixelated}.ascii-art{font-family:var(--font-mono);font-size:clamp(.25rem,1.4vw,.75rem);line-height:1.2;white-space:pre;opacity:.9;text-shadow:0 0 8px rgba(255,255,255,.15);overflow:hidden;max-width:100%}.hero-subtitle{font-size:clamp(1.2rem,4vw,2.2rem);margin-bottom:1.5rem}.hero-hint{font-size:.85rem;color:var(--dim);animation:fadeInHint 2s ease-out 3s both}@keyframes fadeInHint{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.cursor{animation:cursorBlink 1s step-end infinite}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.nav-bar{position:sticky;top:0;z-index:100;background:#000000eb;border:1px solid var(--muted);padding:.8rem 1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin-bottom:4rem}.nav-list{display:flex;justify-content:center;list-style:none;gap:.5rem 2rem;flex-wrap:wrap}.nav-list a{font-family:var(--font-pixel);font-size:.65rem;padding:.4rem .6rem;display:inline-block}.nav-prefix{color:var(--dim)}.terminal-window{border:1px solid var(--muted);background:#000000d9;margin-bottom:2rem}.terminal-header{background:var(--muted);padding:.4rem .8rem;display:flex;align-items:center;gap:.8rem;font-family:var(--font-pixel);font-size:.6rem}.terminal-dots{display:flex;gap:5px}.dot{width:8px;height:8px;border-radius:50%;background:var(--dim);display:inline-block}.dot:first-child{background:#666}.dot:nth-child(2){background:#555}.dot:last-child{background:#444}.terminal-title{color:var(--subtle)}.terminal-body{padding:1.5rem;font-family:var(--font-mono);font-size:.95rem;line-height:1.7}.cmd-line{margin-bottom:.5rem;color:var(--fg)}.cmd-output{padding-left:1rem;border-left:2px solid var(--muted);margin-bottom:1rem}.cmd-output strong{color:var(--fg);text-shadow:0 0 6px rgba(255,255,255,.2)}.json-block{font-family:var(--font-mono);color:var(--subtle)}.json-block .str{color:var(--fg)}.json-block .num{color:var(--subtle);font-weight:600}.skill-group{margin-bottom:1.2rem}.skill-label{display:block;color:var(--subtle);margin-bottom:.4rem;font-size:.85rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.4rem}.skill-tag{border:1px solid var(--dim);padding:.15rem .5rem;font-size:.8rem;font-family:var(--font-mono);transition:background .15s,color .15s;cursor:default}.skill-tag:hover{background:var(--fg);color:var(--bg)}.section-cmd{font-family:var(--font-mono);font-size:1rem;margin-bottom:2rem}.projects-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:700px){.projects-grid{grid-template-columns:1fr 1fr}}.project-card{display:flex;flex-direction:column;transition:transform .2s ease}.project-card:hover{transform:translateY(-2px)}.project-card .terminal-body{flex:1;display:flex;flex-direction:column}.project-name{font-family:var(--font-pixel);font-size:.7rem;margin-bottom:.8rem;text-shadow:0 0 8px rgba(255,255,255,.1)}.project-desc{font-family:var(--font-mono);font-size:.85rem;color:var(--subtle);margin-bottom:1rem;flex:1}.project-stack{font-size:.75rem;color:var(--dim);margin-bottom:.8rem;display:flex;flex-wrap:wrap;gap:.3rem}.project-links{display:flex;gap:1rem}.project-link{font-family:var(--font-mono);font-size:.85rem;padding:.1rem .3rem}.contact-block{margin:.5rem 0 1rem}.contact-line{margin-bottom:.3rem}.contact-key{color:var(--subtle);display:inline-block;min-width:80px}.contact-sep{color:var(--dim)}.cta-button{display:inline-block;padding:.6rem 1.2rem;border:1px solid var(--fg);font-family:var(--font-pixel);font-size:.65rem;transition:background .15s,color .15s}.cta-button:hover{background:var(--fg);color:var(--bg)}.footer{text-align:center;padding:2rem 0;border-top:1px solid var(--muted);margin-top:4rem}.footer-art{font-family:var(--font-mono);font-size:.7rem;color:var(--dim);line-height:1.5;white-space:pre}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.fade-in.visible{opacity:1;transform:translateY(0)}@keyframes glitchShake{0%{transform:translate(0)}20%{transform:translate(-3px,3px)}40%{transform:translate(3px,-3px)}60%{transform:translate(-2px,-2px)}80%{transform:translate(2px,2px)}to{transform:translate(0)}}.glitch-active{animation:glitchShake .3s ease-in-out}@media(max-width:600px){body{font-size:1.2rem}.terminal-wrapper{padding:1rem}.section{margin-bottom:3rem}.terminal-body{padding:1rem;font-size:.85rem}.nav-list{gap:.3rem 1rem}.nav-list a{font-size:.55rem;padding:.3rem .4rem}}
