*{margin:0;padding:0;box-sizing:border-box}.welcome-back{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-60px);font-size:12px;font-family:var(--font-mono);color:var(--accent);padding:8px 16px;background:var(--glass);border:1px solid var(--border);border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:all .4s cubic-bezier(.175,.885,.32,1.275);z-index:10002;pointer-events:none;white-space:nowrap}.welcome-back.show{opacity:1;transform:translateX(-50%) translateY(0)}.skip-link{position:absolute;top:-100px;left:50%;transform:translateX(-50%);z-index:10001;padding:12px 24px;background:var(--glass);border:1px solid var(--accent);border-radius:8px;color:var(--accent);font-family:var(--font-mono);font-size:14px;text-decoration:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:top .3s ease}.skip-link:focus{top:16px;outline:2px solid var(--accent);outline-offset:2px}.cursor-glow{position:fixed;width:300px;height:300px;background:radial-gradient(circle,rgba(0,212,255,.08) 0,transparent 70%);border-radius:50%;pointer-events:none;z-index:0;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease}body:hover .cursor-glow{opacity:1}@media (prefers-reduced-motion:reduce){.cursor-glow{display:none}}@media (pointer:coarse){.cursor-glow{display:none}}.progress-bar{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-secondary));z-index:10000;box-shadow:0 0 10px var(--accent-glow);transform-origin:left;transform:scaleX(0);will-change:transform}:root{--bg:#050508;--bg-elevated:rgba(15,15,25,0.6);--text:#e8e8f0;--text-muted:#6b6b8a;--accent:#00d4ff;--accent-glow:rgba(0,212,255,0.4);--accent-secondary:#a855f7;--border:rgba(100,100,150,0.2);--glass:rgba(20,20,35,0.4);--font-mono:"SF Mono",Monaco,monospace;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#fafafa;--bg-elevated:rgba(255,255,255,0.8);--text:#1a1a2e;--text-muted:#6b6b8a;--accent:#0066cc;--accent-glow:rgba(0,102,204,0.3);--accent-secondary:#7c3aed;--border:rgba(0,0,0,0.1);--glass:rgba(255,255,255,0.7)}}[data-theme=light]{--bg:#fafafa;--bg-elevated:rgba(255,255,255,0.8);--text:#1a1a2e;--text-muted:#6b6b8a;--accent:#0066cc;--accent-glow:rgba(0,102,204,0.3);--accent-secondary:#7c3aed;--border:rgba(0,0,0,0.1);--glass:rgba(255,255,255,0.7)}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;position:relative;min-height:100vh}.noise-overlay{position:fixed;top:-50%;left:-50%;width:200%;height:200%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:-1;animation:noiseMove .5s steps(10) infinite}@keyframes noiseMove{0%,to{transform:translate(0)}10%{transform:translate(-5%,-5%)}20%{transform:translate(-10%,5%)}30%{transform:translate(5%,-10%)}40%{transform:translate(-5%,15%)}50%{transform:translate(-10%,5%)}60%{transform:translate(15%)}70%{transform:translateY(10%)}80%{transform:translate(-15%)}90%{transform:translate(10%,5%)}}body:before{top:0;left:0;background:radial-gradient(ellipse at 20% 20%,rgba(120,50,200,.08) 0,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(0,200,255,.05) 0,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(100,50,150,.03) 0,transparent 70%);z-index:-2}body:after,body:before{content:"";position:fixed;width:100%;height:100%;pointer-events:none}body:after{top:var(--parallax-y,0);left:var(--parallax-x,0);background-image:radial-gradient(2px 2px at 20px 30px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 40px 70px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 90px 40px,rgba(255,255,255,.9),transparent),radial-gradient(2px 2px at 130px 80px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 160px 20px,rgba(255,255,255,.7),transparent),radial-gradient(2px 2px at 200px 60px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 250px 90px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 300px 30px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 350px 70px,rgba(255,255,255,.7),transparent),radial-gradient(2px 2px at 400px 50px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 450px 85px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 500px 25px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 550px 65px,rgba(255,255,255,.7),transparent),radial-gradient(2px 2px at 600px 45px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 650px 75px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 700px 35px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 750px 55px,rgba(255,255,255,.7),transparent),radial-gradient(2px 2px at 800px 95px,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 850px 15px,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 900px 60px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 950px 40px,rgba(255,255,255,.7),transparent);background-repeat:repeat;background-size:1000px 150px;animation:twinkle 8s ease-in-out infinite;z-index:-1;opacity:.6}@keyframes twinkle{0%,to{opacity:.4}50%{opacity:.8}}.container{max-width:720px;margin:0 auto;padding:0 24px;position:relative;z-index:1}header{padding:100px 0 60px;border-bottom:1px solid var(--border);position:relative}header .avatar{animation:fade-in-up .6s ease-out forwards;opacity:0}header .name{animation:fade-in-up .6s ease-out .1s forwards;opacity:0}header .tagline{animation:fade-in-up .6s ease-out .2s forwards;opacity:0}header .location{animation:fade-in-up .6s ease-out .3s forwards;opacity:0}header .theme-toggle{animation:fade-in-up .6s ease-out .4s forwards;opacity:0}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}header:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-secondary),transparent);opacity:.5}.name{font-size:20px;font-weight:500;letter-spacing:.1em;margin-bottom:8px;text-transform:uppercase}.name a{color:var(--text);text-decoration:none;text-shadow:0 0 20px rgba(255,255,255,.1);transition:all .3s ease}.name a:hover{color:var(--accent);text-shadow:0 0 30px var(--accent-glow)}.status-indicator{display:inline-block;width:8px;height:8px;background:#22c55e;border-radius:50%;margin-left:10px;box-shadow:0 0 0 0 rgba(34,197,94,.7);animation:pulse-status 2s infinite;cursor:help}@keyframes pulse-status{0%{box-shadow:0 0 0 0 rgba(34,197,94,.7)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}to{box-shadow:0 0 0 0 rgba(34,197,94,0)}}.status-indicator{position:relative}.status-tooltip{position:absolute;top:-32px;left:50%;transform:translateX(-50%) translateY(4px);font-size:11px;font-family:var(--font-mono);color:var(--accent);padding:4px 10px;background:var(--glass);border:1px solid var(--border);border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px rgba(0,0,0,.2);z-index:10}.status-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);border-width:5px 5px 0;border-style:solid;border-color:var(--border) transparent transparent}.status-indicator:hover .status-tooltip{opacity:1;transform:translateX(-50%) translateY(0)}.tagline{font-size:14px;background:linear-gradient(90deg,var(--accent),var(--accent-secondary),var(--accent));background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient-shift 4s ease infinite;letter-spacing:.2em;text-transform:uppercase;font-family:var(--font-mono)}.location{gap:6px;margin-top:12px;font-size:12px;font-family:var(--font-mono);animation:fadeInSlide .5s ease-out .55s forwards}.location,.theme-toggle{display:flex;align-items:center;color:var(--text-muted);opacity:0}.theme-toggle{position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:var(--glass);border:1px solid var(--border);font-size:18px;cursor:pointer;justify-content:center;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fadeInScale .5s ease-out .6s forwards}.theme-toggle:hover{border-color:rgba(0,212,255,.4);color:var(--accent);transform:scale(1.1);box-shadow:0 0 20px rgba(0,212,255,.15)}.theme-icon{position:absolute;transition:all .3s ease}.theme-icon.sun{opacity:1;transform:rotate(0deg) scale(1)}.theme-icon.moon{opacity:0;transform:rotate(90deg) scale(.5)}[data-theme=dark] .theme-icon.sun,html:not([data-theme]) .theme-icon.sun{opacity:0;transform:rotate(-90deg) scale(.5)}[data-theme=dark] .theme-icon.moon,[data-theme=light] .theme-icon.sun,html:not([data-theme]) .theme-icon.moon{opacity:1;transform:rotate(0deg) scale(1)}[data-theme=light] .theme-icon.moon{opacity:0;transform:rotate(90deg) scale(.5)}@media (max-width:640px){.theme-toggle{top:16px;right:16px;width:36px;height:36px;font-size:16px}}.location svg{opacity:.6;transition:all .3s ease}.location:hover svg{opacity:1;color:var(--accent);transform:translateY(-1px)}@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.cursor{animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.avatar-wrapper{position:relative;display:inline-block;margin-bottom:20px}.avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid transparent;background:linear-gradient(var(--bg),var(--bg)) padding-box,linear-gradient(135deg,var(--accent),var(--accent-secondary)) border-box;box-shadow:0 0 30px rgba(0,212,255,.2),0 0 60px rgba(168,85,247,.1);transition:all .3s ease;cursor:pointer;display:block}.avatar-tooltip{position:absolute;top:-36px;left:50%;transform:translateX(-50%) translateY(8px);font-size:12px;font-family:var(--font-mono);color:var(--accent);padding:6px 12px;background:var(--glass);border:1px solid var(--border);border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .25s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px rgba(0,0,0,.2);z-index:10}.avatar-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);border-width:5px 5px 0;border-style:solid;border-color:var(--border) transparent transparent}.avatar-wrapper:hover .avatar-tooltip{opacity:1;transform:translateX(-50%) translateY(0)}.avatar-wrapper:hover .avatar{box-shadow:0 0 40px rgba(0,212,255,.3),0 0 80px rgba(168,85,247,.2);transform:scale(1.05);animation:avatar-wave .5s ease-in-out}@keyframes avatar-wave{0%,to{transform:scale(1.05) rotate(0deg)}25%{transform:scale(1.05) rotate(-5deg)}75%{transform:scale(1.05) rotate(5deg)}}@keyframes avatar-breathe{0%,to{box-shadow:0 0 30px rgba(0,212,255,.2),0 0 60px rgba(168,85,247,.1)}50%{box-shadow:0 0 35px rgba(0,212,255,.25),0 0 70px rgba(168,85,247,.15)}}.avatar-wrapper{animation:fadeInScale .5s ease-out .1s forwards}.avatar{animation:avatar-breathe 4s ease-in-out .5s infinite}section{padding:60px 0;border-bottom:1px solid var(--border);position:relative}section:last-of-type{border-bottom:none}section:before{content:"";position:absolute;top:0;left:-100px;width:200px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.3}.intro{font-size:20px;line-height:1.6;max-width:600px}.intro p{margin-bottom:16px;color:var(--accent)}.intro p:last-child{margin-bottom:0;color:var(--text-muted)}.now{margin-top:32px;display:flex;align-items:center;gap:12px;font-size:14px}.now-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);padding:4px 10px;background:rgba(0,212,255,.1);border:1px solid rgba(0,212,255,.2);border-radius:4px;animation:now-pulse 3s ease-in-out infinite}@keyframes now-pulse{0%,to{box-shadow:0 0 0 0 rgba(0,212,255,.2)}50%{box-shadow:0 0 12px 2px rgba(0,212,255,.15)}}.now-text{color:var(--text-muted)}.now-link{text-decoration:none;transition:all .3s ease;position:relative}.now-link:before{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-secondary),var(--accent));background-size:200% 100%;transition:width .3s ease;animation:shimmer-bg 2s linear infinite}.now-link:after{content:"↗";font-size:11px;margin-left:4px;opacity:0;transition:all .3s ease}.now-link:after,.now-link:hover{color:var(--accent)}.now-link:hover:before{width:100%}.now-link:hover:after{opacity:1}@keyframes shimmer-bg{0%{background-position:200% 0}to{background-position:-200% 0}}.now-date{font-size:12px;opacity:.6;margin-left:4px}.freshness-indicator,.now-date{color:var(--text-muted);font-family:var(--font-mono)}.freshness-indicator{font-size:11px;opacity:.7;transition:all .3s ease}.freshness-indicator.fresh{color:#22c55e;opacity:1;animation:fresh-pulse 2s ease-in-out infinite}.freshness-indicator.recent{color:var(--accent);opacity:.9}@keyframes fresh-pulse{0%,to{opacity:1;text-shadow:0 0 0 rgba(34,197,94,0)}50%{opacity:.85;text-shadow:0 0 8px rgba(34,197,94,.4)}}.stack-mini{margin-top:16px;display:flex;align-items:center;gap:12px;font-size:13px}.stack-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;padding:3px 8px;background:rgba(168,85,247,.1);border:1px solid rgba(168,85,247,.2);border-radius:4px}.stack-items,.stack-label{font-family:var(--font-mono);color:var(--text-muted)}.stack-items{font-size:12px;letter-spacing:.02em}.terminal-snippet{margin-top:20px;background:rgba(10,10,18,.8);border:1px solid var(--border);border-radius:8px;overflow:hidden;font-family:var(--font-mono);font-size:12px;max-width:420px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.terminal-snippet:hover{border-color:rgba(0,212,255,.3);box-shadow:0 0 20px rgba(0,212,255,.1)}.terminal-header{display:flex;align-items:center;gap:6px;padding:8px 12px;background:rgba(0,0,0,.3);border-bottom:1px solid var(--border)}.terminal-dot{width:8px;height:8px;border-radius:50%}.terminal-dot.red{background:#ff5f56}.terminal-dot.yellow{background:#ffbd2e}.terminal-dot.green{background:#27ca40}.terminal-title{margin-left:8px;color:var(--text-muted);font-size:11px;opacity:.7;flex:1 1}.terminal-copy-hint{font-size:10px;color:var(--accent);font-family:var(--font-mono);opacity:0;transform:translateX(8px);transition:all .3s ease;margin-left:auto}.terminal-snippet:focus-visible .terminal-copy-hint,.terminal-snippet:hover .terminal-copy-hint{opacity:1;transform:translateX(0)}.terminal-time{font-size:10px;color:var(--text-muted);font-family:var(--font-mono);opacity:.5;margin-left:auto;margin-right:12px;transition:opacity .3s ease}.terminal-snippet:hover .terminal-time{opacity:.8}.terminal-snippet{cursor:pointer;outline:none}.terminal-snippet:focus-visible{border-color:rgba(0,212,255,.5);box-shadow:0 0 0 2px rgba(0,212,255,.2)}.terminal-body{padding:10px 12px;color:var(--text-muted)}.terminal-hash{color:#f97583;margin-right:8px;transition:all .3s ease}.terminal-snippet:hover .terminal-hash{color:#ff6b6b;text-shadow:0 0 12px rgba(249,117,131,.5)}.terminal-msg{color:var(--text)}.terminal-cursor{color:var(--accent);margin-left:2px;animation:blink 1s step-end infinite}.scroll-indicator{margin-top:40px;text-align:center;opacity:.6;transition:opacity .5s ease,transform .5s ease;cursor:pointer;display:inline-block;padding:8px;border-radius:50%}.scroll-indicator:hover{opacity:1;background:rgba(0,212,255,.1)}.scroll-indicator.hidden{opacity:0;transform:translateY(-10px);pointer-events:none}.scroll-indicator span{display:inline-block;font-size:20px;color:var(--text-muted);animation:bounce 2s ease-in-out infinite}.scroll-indicator .scroll-label{display:block;font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;margin-bottom:4px;animation:none;opacity:.7}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.project-link-wrapper{display:block;text-decoration:none;color:inherit;margin-bottom:48px;transition:transform .3s ease}.project-link-wrapper:last-child{margin-bottom:0}.project-link-wrapper:hover{transform:translateY(-2px)}.project-link-wrapper .project-title{color:var(--text);transition:all .3s ease;position:relative}.project-link-wrapper:hover .project-title{color:var(--accent);text-shadow:0 0 20px var(--accent-glow)}.project-title:after{content:"↗";font-size:12px;opacity:0;transform:translateX(-4px);transition:all .3s ease;color:var(--accent);margin-left:6px}.project-link-wrapper:hover .project-title:after{opacity:1;transform:translateX(0)}.project{padding:24px;background:var(--glass);border:1px solid var(--border);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;position:relative;overflow:hidden;scroll-margin-top:80px}.project:before{width:200%;background:linear-gradient(90deg,transparent,rgba(0,212,255,.8),var(--accent-secondary),rgba(0,212,255,.8),transparent);transition:opacity .3s ease}.project:after,.project:before{content:"";position:absolute;top:0;left:-100%;height:1px;opacity:0}.project:after{width:50%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);filter:blur(2px)}.project:hover{border-color:rgba(0,212,255,.3);box-shadow:0 10px 40px rgba(0,0,0,.3),0 0 40px rgba(0,212,255,.1);transform:translateY(-2px)}.project:hover:after,.project:hover:before{opacity:1;animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translateX(0)}to{transform:translateX(100%)}}.project-view-hint{position:absolute;bottom:16px;right:20px;font-size:12px;font-family:var(--font-mono);color:var(--accent);opacity:0;transform:translateX(-8px);transition:all .3s ease;pointer-events:none}.project:hover .project-view-hint{opacity:1;transform:translateX(0)}.project-header{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.project-name{font-size:18px;font-weight:500}.project-name a{color:var(--text);text-decoration:none;transition:all .3s ease;display:inline-flex;align-items:center;gap:6px;position:relative}.project-name a:before{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-secondary));transition:width .3s ease}.project-name a:after{content:"↗";font-size:12px;opacity:0;transform:translateX(-4px);transition:all .3s ease;color:var(--accent)}.anchor-link{font-size:14px;color:var(--text-muted);text-decoration:none;margin-left:6px;opacity:0;transition:all .2s ease;font-family:var(--font-mono);position:relative;cursor:pointer}.anchor-link:hover{color:var(--accent);text-shadow:0 0 10px var(--accent-glow)}.anchor-link:after{content:"copy link";top:-28px;transform:translateX(-50%) translateY(4px);font-size:10px;font-family:var(--font-mono);color:var(--accent);padding:4px 8px;background:var(--glass);border:1px solid var(--border);border-radius:6px;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px rgba(0,0,0,.2)}.anchor-link:after,.anchor-link:before{position:absolute;left:50%;opacity:0;transition:all .2s ease}.anchor-link:before{content:"";top:-6px;transform:translateX(-50%);border-width:5px 5px 0;border-style:solid;border-color:var(--border) transparent transparent}.anchor-link:hover:after,.anchor-link:hover:before{opacity:1;transform:translateX(-50%) translateY(0)}.anchor-link:focus-visible,.project:hover .anchor-link{opacity:.5}.anchor-link:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.project-name a:hover{color:var(--accent);text-shadow:0 0 20px var(--accent-glow)}.project-name a:hover:before{width:100%}.project-name a:visited{color:var(--text-muted)}.project-name a:visited:hover{color:var(--accent)}.project-name a:hover:after{opacity:1;transform:translateX(0)}.live-badge{font-size:9px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:#22c55e;padding:2px 6px;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);border-radius:4px;margin-left:8px;vertical-align:middle;transition:all .3s ease;animation:live-pulse 3s ease-in-out infinite}@keyframes live-pulse{0%,to{box-shadow:0 0 0 0 rgba(34,197,94,.2)}50%{box-shadow:0 0 8px 2px rgba(34,197,94,.15)}}.project:hover .live-badge{background:rgba(34,197,94,.25);border-color:rgba(34,197,94,.6);box-shadow:0 0 20px rgba(34,197,94,.4);animation:live-glow-strong 1.5s ease-in-out infinite}@keyframes live-glow-strong{0%,to{box-shadow:0 0 15px rgba(34,197,94,.3)}50%{box-shadow:0 0 25px rgba(34,197,94,.5)}}.oss-badge{font-size:9px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:#a855f7;padding:2px 6px;background:rgba(168,85,247,.1);border:1px solid rgba(168,85,247,.3);border-radius:4px;margin-left:8px;vertical-align:middle;transition:all .3s ease}.project:hover .oss-badge{background:rgba(168,85,247,.2);border-color:rgba(168,85,247,.5);box-shadow:0 0 12px rgba(168,85,247,.3)}.project-year{font-size:12px;color:var(--text-muted);font-family:var(--font-mono);padding:2px 8px;background:rgba(0,212,255,.1);border-radius:4px;border:1px solid rgba(0,212,255,.2);transition:all .3s ease}.project:hover .project-year{border-color:rgba(0,212,255,.4);box-shadow:0 0 12px rgba(0,212,255,.2);color:var(--accent)}.project-desc{color:var(--text-muted);font-size:15px;margin-bottom:8px;max-width:560px;line-height:1.5}.project-stack{font-size:12px;color:var(--text-muted);font-family:var(--font-mono);margin-bottom:16px;opacity:.7}.project-tags{display:flex;gap:8px;flex-wrap:wrap}.tag{font-size:11px;color:var(--accent);font-family:var(--font-mono);padding:4px 12px;background:rgba(0,212,255,.08);border-radius:20px;border:1px solid rgba(0,212,255,.25);transition:all .3s ease}.tag:hover{background:rgba(0,212,255,.15);border-color:rgba(0,212,255,.4);box-shadow:0 0 15px rgba(0,212,255,.2)}.tag.github-stars{color:#ffd700;background:rgba(255,215,0,.08);border-color:rgba(255,215,0,.3);cursor:default}.tag.github-stars:hover{background:rgba(255,215,0,.12);border-color:rgba(255,215,0,.4);box-shadow:0 0 15px rgba(255,215,0,.15)}.links{display:flex;gap:32px;flex-wrap:wrap}.copy-toast{font-size:13px;color:var(--accent);font-family:var(--font-mono);margin-top:16px;opacity:0;transform:translateY(-8px);transition:all .3s ease;pointer-events:none}.copy-toast.show{opacity:1;transform:translateY(0)}.link{color:var(--text);text-decoration:none;font-size:15px;display:flex;align-items:center;gap:8px;padding:8px 0;position:relative;transition:all .3s ease}.link:before{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-secondary));transition:width .3s ease}.link:hover{color:var(--accent)}.link:hover:before{width:100%}.link:after{content:"→";opacity:0;transform:translateX(-8px);transition:all .3s ease}.link:hover:after{opacity:1;transform:translateX(0)}.email-link{position:relative}.copy-hint{position:absolute;top:-28px;left:50%;transform:translateX(-50%) translateY(4px);font-size:11px;font-family:var(--font-mono);color:var(--accent);padding:4px 10px;background:var(--glass);border:1px solid var(--border);border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px rgba(0,0,0,.2)}.copy-hint:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);border-width:5px 5px 0;border-style:solid;border-color:var(--border) transparent transparent}.email-link:hover .copy-hint{opacity:1;transform:translateX(-50%) translateY(0)}footer{padding:40px 0 80px;font-size:14px;text-align:center;display:flex;justify-content:center;align-items:center;gap:24px}.source-link,footer{color:var(--text-muted)}.source-link{text-decoration:none;transition:all .3s ease;position:relative}.source-link:before{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-secondary));transition:width .3s ease}.source-link:hover{color:var(--accent);text-shadow:0 0 20px var(--accent-glow)}.source-link:hover:before{width:100%}.footer-separator{color:var(--border);font-size:12px}.last-updated{color:var(--text-muted);background:rgba(100,100,150,.1);border-radius:4px;border:1px solid var(--border)}.built-with,.last-updated{font-size:12px;font-family:var(--font-mono);padding:2px 8px}.built-with{color:var(--accent);background:rgba(0,212,255,.08);border-radius:4px;border:1px solid rgba(0,212,255,.2);opacity:.8;transition:all .3s ease}.built-with:hover{opacity:1;background:rgba(0,212,255,.12);border-color:rgba(0,212,255,.3)}.load-time{font-size:12px;color:var(--text-muted);font-family:var(--font-mono);padding:2px 8px;background:rgba(34,197,94,.08);border-radius:4px;border:1px solid rgba(34,197,94,.2);opacity:0;transition:opacity .3s ease}.load-time.loaded{opacity:.7}.load-time:hover{opacity:1;background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35)}.reading-time{font-size:12px;color:var(--text-muted);font-family:var(--font-mono);padding:2px 8px;background:rgba(168,85,247,.08);border-radius:4px;border:1px solid rgba(168,85,247,.2);opacity:.7;transition:all .3s ease}.reading-time:hover{opacity:1;background:rgba(168,85,247,.12);border-color:rgba(168,85,247,.35)}::selection{background:rgba(0,212,255,.3);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.link:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.project:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:rgba(100,100,150,.3)}::-webkit-scrollbar-thumb:hover{background:rgba(0,212,255,.4)}@media (max-width:640px){header{padding:80px 0 40px}section{padding:40px 0}section:before{display:none}.intro{font-size:18px}.project{padding:20px}.project-header{flex-direction:column;gap:8px}.links{gap:20px}}@keyframes float{0%,to{transform:translateY(0) translateX(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100vh) translateX(20px);opacity:0}}@keyframes pulse{0%,to{box-shadow:0 0 20px rgba(0,212,255,.2)}50%{box-shadow:0 0 30px rgba(0,212,255,.3)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.container{animation:fadeInUp .6s ease-out}header{transition:opacity .3s ease,transform .3s ease}header.scrolled{opacity:.6;transform:scale(.98)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fadeInSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.avatar{opacity:0;animation:fadeInScale .5s ease-out .1s forwards}.name{opacity:0;animation:fadeInSlide .5s ease-out .25s forwards}.tagline{opacity:0;animation:fadeInSlide .5s ease-out .4s forwards}@keyframes fadeInUpCard{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.project{opacity:0;transform:translateY(30px);transition:opacity .5s ease-out,transform .5s ease-out}.project.visible{opacity:1;transform:translateY(0)}.project:first-child.visible{transition-delay:.1s}.project:nth-child(2).visible{transition-delay:.25s}.project:nth-child(3).visible{transition-delay:.4s}.back-to-top{position:fixed;bottom:24px;right:24px;width:44px;height:44px;border-radius:50%;background:var(--glass);border:1px solid var(--border);color:var(--accent);font-size:18px;cursor:pointer;opacity:0;transform:translateY(20px);transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:99;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(0,0,0,.3)}.back-to-top.visible{opacity:1;transform:translateY(0)}.back-to-top:hover{border-color:rgba(0,212,255,.4);box-shadow:0 0 20px rgba(0,212,255,.2);transform:translateY(-2px)}.back-to-top:active{transform:translateY(0)}.shortcuts-hint{position:fixed;bottom:76px;right:20px;font-size:12px;color:var(--text-muted);font-family:var(--font-mono);padding:8px 12px;background:var(--glass);border:1px solid var(--border);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transform:translateY(10px);transition:all .3s ease;pointer-events:none;z-index:100}.shortcuts-hint.visible{opacity:1;transform:translateY(0)}.shortcuts-hint kbd{display:inline-block;padding:2px 6px;background:rgba(0,212,255,.1);border:1px solid rgba(0,212,255,.3);border-radius:4px;font-size:11px;color:var(--accent);margin:0 2px}.shortcuts-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s ease}.shortcuts-modal.active{opacity:1;visibility:visible}.shortcuts-content{background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;padding:24px;min-width:280px;max-width:90vw;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transform:scale(.95);transition:transform .3s ease;box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 40px rgba(0,212,255,.1)}.shortcuts-modal.active .shortcuts-content{transform:scale(1)}.shortcuts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.shortcuts-header h3{font-size:16px;font-weight:500;color:var(--text);margin:0}.shortcuts-close{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease}.shortcuts-close:hover{color:var(--text);background:rgba(255,255,255,.1)}.shortcuts-list{display:flex;flex-direction:column;gap:12px}.shortcut-item{display:flex;align-items:center;gap:16px;font-size:14px}.shortcut-item kbd{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:6px 10px;background:rgba(0,212,255,.1);border:1px solid rgba(0,212,255,.3);border-radius:6px;font-size:13px;color:var(--accent);font-family:var(--font-mono);font-weight:500}.shortcut-item span{color:var(--text-muted)}@media print{*{background:white!important;color:black!important;box-shadow:none!important;text-shadow:none!important}.back-to-top,.cursor-glow,.noise-overlay,.progress-bar,.scroll-indicator,.shortcuts-hint,body:after,body:before{display:none!important}.container{max-width:100%;padding:0;animation:none}header{padding:20px 0;border-bottom:2px solid #000}.avatar{width:60px;height:60px;border:2px solid #000;box-shadow:none}.tagline{background:none;-webkit-text-fill-color:black;color:black}.project{background:none;border:1px solid #ccc;page-break-inside:avoid;break-inside:avoid;margin-bottom:20px}.project:hover{transform:none;box-shadow:none}.project-view-hint{display:none}.tag{background:#f0f0f0;border:1px solid #ccc;color:#333}.live-badge{background:#e8f5e9;border:1px solid #4caf50;color:#2e7d32}.now-label{background:#e3f2fd;border:1px solid #2196f3;color:#1976d2}section{padding:20px 0;border-bottom:1px solid #ccc}a{text-decoration:underline;color:#000}a[href]:after{content:" (" attr(href) ")";font-size:.9em;color:#666;word-break:break-all}a[href^="#"]:after,a[href^="/"]:after{content:""}footer{padding:20px 0;border-top:2px solid #000}.built-with,.last-updated{background:#f0f0f0;border:1px solid #ccc;color:#333}}.kudos-button{position:fixed;bottom:24px;left:24px;display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--glass);border:1px solid var(--border);border-radius:24px;color:var(--text-muted);font-family:var(--font-mono);font-size:13px;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;z-index:99;box-shadow:0 4px 20px rgba(0,0,0,.3)}.kudos-button:hover{border-color:rgba(255,107,107,.4);color:#ff6b6b;transform:translateY(-2px);box-shadow:0 6px 24px rgba(255,107,107,.15)}.kudos-button.liked{border-color:rgba(255,107,107,.5);color:#ff6b6b}.kudos-button.liked .kudos-heart{animation:heartPulse .4s ease}@keyframes heartPulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.kudos-heart{transition:transform .2s ease}.kudos-button:hover .kudos-heart{transform:scale(1.1)}.kudos-count{min-width:16px;text-align:center}@media (max-width:640px){.kudos-button{bottom:16px;left:16px;padding:8px 12px;font-size:12px}}.not-found{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center}.not-found-content{padding:40px 24px;animation:fadeInUp .6s ease-out}.not-found-code{font-size:120px;font-weight:700;line-height:1;background:linear-gradient(135deg,var(--accent),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:16px;opacity:.8;font-family:var(--font-mono);letter-spacing:-.05em}.not-found-title{font-size:24px;font-weight:500;color:var(--text);margin-bottom:12px}.not-found-desc{font-size:16px;color:var(--text-muted);margin-bottom:32px}.not-found-link{display:inline-flex;align-items:center;gap:8px;color:var(--accent);text-decoration:none;font-size:15px;padding:12px 24px;background:var(--glass);border:1px solid var(--border);border-radius:8px;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.not-found-link:hover{border-color:rgba(0,212,255,.4);box-shadow:0 0 20px rgba(0,212,255,.1);transform:translateY(-2px)}@media (max-width:640px){.not-found-code{font-size:80px}.not-found-title{font-size:20px}}.glitch{position:relative}.glitch:after,.glitch:before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;background:var(--bg)}.glitch:before{left:2px;text-shadow:-2px 0 #ff6b6b;clip:rect(24px,550px,90px,0);animation:glitch-anim-2 3s linear infinite alternate-reverse}.glitch:after{left:-2px;text-shadow:-2px 0 #00d4ff;clip:rect(85px,550px,140px,0);animation:glitch-anim 2.5s linear infinite alternate-reverse}@keyframes glitch-anim{0%{clip:rect(12px,9999px,52px,0)}20%{clip:rect(65px,9999px,91px,0)}40%{clip:rect(26px,9999px,6px,0)}60%{clip:rect(82px,9999px,41px,0)}80%{clip:rect(20px,9999px,117px,0)}to{clip:rect(54px,9999px,28px,0)}}@keyframes glitch-anim-2{0%{clip:rect(65px,9999px,99px,0)}20%{clip:rect(10px,9999px,43px,0)}40%{clip:rect(88px,9999px,11px,0)}60%{clip:rect(33px,9999px,76px,0)}80%{clip:rect(50px,9999px,28px,0)}to{clip:rect(18px,9999px,62px,0)}}.stars-drift{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;background-image:radial-gradient(1px 1px at 20px 30px,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 40px 70px,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 90px 40px,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 130px 80px,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 160px 20px,rgba(255,255,255,.3),transparent);background-size:200px 100px;animation:stars-drift 60s linear infinite}@keyframes stars-drift{0%{transform:translateX(0)}to{transform:translateX(-200px)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:rgba(15,15,25,.4);border-radius:4px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(0,212,255,.3),rgba(168,85,247,.3));border-radius:4px;border:1px solid rgba(100,100,150,.15)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(0,212,255,.5),rgba(168,85,247,.5))}*{scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.3) rgba(15,15,25,.4)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.container,.cursor,.scroll-indicator,.scroll-indicator span,body:after{animation:none}}body.hacker-mode{--accent:#00ff41;--accent-glow:rgba(0,255,65,0.4);--accent-secondary:#00cc33}body.hacker-mode .tagline{background:linear-gradient(90deg,#00ff41,#00cc33,#00ff41);background-size:200% 100%;-webkit-background-clip:text;background-clip:text}body.hacker-mode .live-badge{color:#00ff41;background:rgba(0,255,65,.1);border-color:rgba(0,255,65,.3)}body.hacker-mode .project:hover{box-shadow:0 10px 40px rgba(0,0,0,.3),0 0 40px rgba(0,255,65,.1)}body.hacker-mode .tag{color:#00ff41;background:rgba(0,255,65,.08);border-color:rgba(0,255,65,.25)}body.hacker-mode .tag:hover{background:rgba(0,255,65,.15);border-color:rgba(0,255,65,.4);box-shadow:0 0 15px rgba(0,255,65,.2)}body.hacker-mode .cursor-glow{background:radial-gradient(circle,rgba(0,255,65,.08) 0,transparent 70%)}body.hacker-mode .terminal-hash{color:#00ff41}body.hacker-mode .terminal-snippet:hover .terminal-hash{color:#00ff41;text-shadow:0 0 12px rgba(0,255,65,.5)}body.hacker-mode ::selection{background:rgba(0,255,65,.3)}.footer-fox{font-size:14px;cursor:default;transition:all .3s ease;filter:grayscale(.3);display:inline-block}.footer-fox:hover{filter:grayscale(0);transform:scale(1.2) rotate(5deg);animation:fox-wiggle .5s ease-in-out}@keyframes fox-wiggle{0%,to{transform:scale(1.2) rotate(5deg)}25%{transform:scale(1.2) rotate(-10deg)}75%{transform:scale(1.2) rotate(10deg)}}@media (max-width:640px){.footer-fox{font-size:12px}}