:root{--bg:#080611;--bg-soft:#100b1e;--panel:#120d20c7;--panel-strong:#1b132deb;--border:#be7bff2e;--border-strong:#be7bff59;--text:#f6f2ff;--muted:#b9accb;--muted-2:#8f829f;--accent:#c66bff;--accent-2:#8c4dff;--accent-soft:#c66bff24;--accent-cyan:#00f0ff;--shadow:0 24px 80px #7737ff2e;--radius:8px;--max-width:1120px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:radial-gradient(circle at 18% 12%, #894fff2b, transparent 30rem), radial-gradient(circle at 84% 20%, #c66bff21, transparent 34rem), linear-gradient(180deg, #0d0919 0%, var(--bg) 52%, #0d0718 100%);min-height:100vh;color:var(--text);margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}body.nav-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.container{width:min(100% - 40px, var(--max-width));margin:0 auto}.narrow{width:min(100% - 40px,820px)}.stars-canvas,.page-glow{pointer-events:none;position:fixed;inset:0}.stars-canvas{z-index:-2}.page-glow{z-index:-1;opacity:.9;background:linear-gradient(90deg,#c66bff14,#0000 18% 82%,#8c4dff14),radial-gradient(circle at 50% 0,#c66bff1f,#0000 32rem)}.site-header{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0d0919b8;border-bottom:1px solid #0000;transition:border-color .18s,background .18s,box-shadow .18s;position:fixed;top:0;left:0;right:0}.site-header.scrolled{background:#0a0713e6;border-color:#c66bff24;box-shadow:0 18px 50px #00000040}.navbar{justify-content:space-between;align-items:center;min-height:76px;display:flex}.brand{letter-spacing:0;align-items:center;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:800;display:inline-flex}.brand span:first-child{color:var(--text)}.brand span:last-child{color:var(--accent)}.nav-links{align-items:center;gap:clamp(1rem,2.4vw,2rem);display:flex}.nav-links a{color:var(--muted);font-size:.96rem;font-weight:600;transition:color .18s;position:relative}.nav-links a:after{transform-origin:100%;background:var(--accent);content:"";border-radius:999px;width:100%;height:2px;transition:transform .18s;position:absolute;bottom:-8px;left:0;transform:scaleX(0)}.nav-links a:hover,.nav-links a.active{color:var(--text)}.nav-links a:hover:after,.nav-links a.active:after{transform-origin:0;transform:scaleX(1)}.nav-resume-btn{border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);background:#c66bff14;justify-content:center;align-items:center;padding:8px 16px;font-size:.9rem;font-weight:600;transition:background .3s,border-color .3s,box-shadow .3s;display:inline-flex}.nav-resume-btn:hover{border-color:var(--accent);color:#fff;background:#c66bff26;box-shadow:0 4px 20px #c66bff40}.shimmer-btn{position:relative;overflow:hidden}.shimmer-btn:before{content:"";background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:50%;height:100%;transition:none;position:absolute;top:0;left:-100%;transform:skew(-20deg)}.shimmer-btn:hover:before{animation:.6s ease-out forwards shimmer-sweep}@keyframes shimmer-sweep{to{left:200%}}.nav-toggle{border:1px solid var(--border);border-radius:var(--radius);width:44px;height:44px;color:var(--text);cursor:pointer;background:#ffffff08;place-items:center;display:none}.nav-toggle span{background:currentColor;border-radius:999px;width:20px;height:2px;transition:transform .18s,opacity .18s;display:block}.section{padding:124px 0;position:relative}.hero{align-items:center;min-height:100vh;padding-top:120px;display:flex}.hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.eyebrow,.section-kicker{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 16px;font-family:JetBrains Mono,Consolas,monospace;font-size:.86rem;font-weight:700}.hero-name{text-transform:none;letter-spacing:-.01em;color:var(--text);font-size:1.25rem}.hero h1,.section-title{color:var(--text);letter-spacing:0;margin:0;font-size:clamp(2.8rem,8vw,6.8rem);font-weight:800;line-height:.95}.hero h1{max-width:900px;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.05}.hero h2{max-width:720px;color:var(--muted);letter-spacing:0;margin:24px 0 0;font-size:clamp(1.15rem,2vw,1.4rem);font-weight:500;line-height:1.5}.hero-intro,.section-copy,.section-subtitle{color:var(--muted);font-size:1.02rem;line-height:1.75}.hero-intro{max-width:660px;margin:24px 0 0}.status-strip{color:var(--accent-cyan);background:#00f0ff0d;border:1px solid #00f0ff40;border-radius:999px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;padding:8px 16px;font-family:JetBrains Mono,Consolas,monospace;font-size:.86rem;font-weight:700;display:inline-flex}.status-dot{background-color:var(--accent-cyan);border-radius:50%;width:8px;height:8px;position:relative}.status-dot:after{content:"";background-color:var(--accent-cyan);opacity:.6;border-radius:50%;animation:2s ease-out infinite pulse-dot;position:absolute;inset:-4px}@keyframes pulse-dot{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(2.2)}}.proof-chips{flex-wrap:wrap;gap:10px;max-width:700px;margin-top:24px;display:flex}.proof-chips.small-badges{gap:8px;margin-top:14px}.proof-chips span{color:#efe6ff;background:#c66bff14;border:1px solid #c66bff47;border-radius:999px;padding:9px 12px;font-family:JetBrains Mono,Consolas,monospace;font-size:.78rem;font-weight:700;box-shadow:0 12px 36px #8c4dff1a}.proof-chips.small-badges span{opacity:.85;padding:5px 10px;font-size:.7rem}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:34px;display:flex}.btn{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 18px;font-weight:700;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:inline-flex}.btn svg{fill:currentColor;width:20px;height:20px}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 16px 40px #8c4dff47}.btn-secondary{border-color:var(--border-strong);color:var(--text);background:#ffffff0a}.btn:hover{transform:translateY(-2px)}.btn-primary:hover{box-shadow:0 18px 46px #c66bff57}.btn-secondary:hover{background:var(--accent-soft);border-color:#c66bff9e}.hero-visual{perspective:1000px;justify-content:flex-end;width:100%;display:flex;position:relative}.hero-visual:before{content:"";filter:blur(40px);z-index:1;pointer-events:none;background:radial-gradient(circle,#c66bff26 0%,#00f0ff14 40%,#0000 70%);width:320px;height:320px;position:absolute;top:50%;right:5%;transform:translateY(-50%)}.hero-visual-stack{z-index:2;flex-direction:column;align-items:flex-end;gap:24px;width:100%;max-width:340px;display:flex;position:relative}.code-keyword{color:var(--accent)}.code-var{color:#00f0ff}.code-string{color:#10b981}.code-func{color:#ffbd2e}.proof-card{-webkit-backdrop-filter:blur(16px);z-index:2;background:#0a0712a6;border:1px solid #c66bff26;border-radius:16px;width:100%;max-width:340px;padding:32px;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s;position:relative;box-shadow:0 20px 40px #0006,inset 0 0 20px #c66bff0d}.proof-card:hover{border-color:#00f0ff4d;transform:translateY(-4px);box-shadow:0 30px 60px #00000080,0 0 40px #00f0ff1a}.proof-header{border-bottom:1px solid #ffffff0f;margin-bottom:24px;padding-bottom:16px}.proof-header h3{color:var(--text);letter-spacing:.05em;margin:0 0 4px;font-size:1.1rem;font-weight:700}.proof-header p{color:var(--accent-cyan);margin:0;font-family:JetBrains Mono,Consolas,monospace;font-size:.85rem}.proof-section{margin-bottom:20px}.proof-section:last-child{margin-bottom:0}.proof-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:.75rem;display:block}.proof-live{color:var(--text);align-items:center;gap:8px;margin:0;font-size:.95rem;font-weight:500;display:flex}.proof-dot{background-color:#10b981;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-proof-dot;box-shadow:0 0 10px #10b98199}@keyframes pulse-proof-dot{0%{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}to{opacity:.6;transform:scale(.95)}}.proof-list{margin:0;padding:0;list-style:none}.proof-list li{color:var(--text);opacity:.9;margin-bottom:6px;padding-left:14px;font-size:.9rem;position:relative}.proof-list li:before{content:">";color:var(--accent);opacity:.7;font-size:.9rem;position:absolute;top:0;left:0}.stack-tags{flex-wrap:wrap;gap:8px;display:flex}.stack-tags span{color:var(--text);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:4px 10px;font-family:JetBrains Mono,Consolas,monospace;font-size:.75rem;transition:all .2s}.stack-tags span:hover{color:#fff;background:#c66bff26;border-color:#c66bff66}@media (width<=768px){.hero-visual{justify-content:center;margin-top:20px}.hero-visual:before{display:none}.proof-card{max-width:100%}}.section-heading{max-width:720px;margin-bottom:44px}.section-heading .section-title,.narrow .section-title{text-shadow:0 0 34px #c66bff2e;font-size:clamp(2rem,5vw,4rem);line-height:1}.section-subtitle{max-width:670px;margin:18px 0 0}.section-copy{margin:22px 0 0}.about-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:4rem;margin-top:40px;display:grid}.about-text p{color:var(--muted);margin-bottom:20px;font-size:1.05rem;line-height:1.8}.accent-text{color:var(--text);background:#c66bff1a;border:1px solid #c66bff33;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,Consolas,monospace;font-weight:500;transition:background .3s,border-color .3s}.accent-text:hover{background:#00f0ff1a;border-color:#00f0ff66}.about-chips{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.about-chips span{color:var(--muted);background:#ffffff08;border:1px solid #ffffff14;border-radius:999px;padding:6px 14px;font-family:JetBrains Mono,Consolas,monospace;font-size:.8rem;transition:all .3s}.about-chips span:hover{color:var(--text);background:#c66bff1a;border-color:#c66bff4d;box-shadow:0 4px 12px #c66bff26}.about-visual{perspective:1000px;justify-content:flex-end;display:flex;position:relative}.about-visual:before{content:"";filter:blur(40px);z-index:1;pointer-events:none;background:radial-gradient(circle,#c66bff1f 0%,#00f0ff0d 50%,#0000 70%);width:300px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.about-photo-wrapper{z-index:2;width:100%;max-width:320px;transition:transform .4s cubic-bezier(.2,.8,.2,1);position:relative}.about-photo-wrapper:hover{transform:translateY(-6px)}.photo-backdrop{-webkit-backdrop-filter:blur(8px);z-index:-1;background:#c66bff0d;border:1px solid #c66bff33;border-radius:12px;transition:transform .4s,background .4s;position:absolute;inset:12px -12px -12px 12px}.about-photo-wrapper:hover .photo-backdrop{background:#c66bff14;transform:translate(4px,4px)}.photo-container{aspect-ratio:1/1.08;border:1px solid #ffffff0d;border-radius:12px;width:100%;position:relative;overflow:hidden;box-shadow:0 20px 40px #00000080}.about-photo{object-fit:cover;object-position:center 58%;filter:contrast(1.05)brightness(.95);width:100%;height:100%;transition:transform .6s}.about-photo-wrapper:hover .about-photo{transform:scale(1.03)}.photo-container:after{content:"";pointer-events:none;background:linear-gradient(#0000 40%,#0a071266 70%,#0a0712f2 100%);position:absolute;inset:0}.photo-caption{color:var(--text);z-index:2;align-items:center;gap:8px;padding:24px 20px;font-family:JetBrains Mono,Consolas,monospace;font-size:.8rem;font-weight:500;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.caption-roller{align-items:center;height:1.2em;display:grid}.caption-roller span{opacity:0;will-change:transform, opacity;grid-area:1/1;animation:9s infinite roll-cycle;transform:translateZ(0)}.caption-roller span:first-child{animation-delay:0s}.caption-roller span:nth-child(2){animation-delay:3s}.caption-roller span:nth-child(3){animation-delay:6s}@keyframes roll-cycle{0%{opacity:0;transform:translateY(10px)}5%{opacity:1;transform:translateY(0)}28%{opacity:1;transform:translateY(0)}33%{opacity:0;transform:translateY(-10px)}to{opacity:0;transform:translateY(-10px)}}@media (width<=768px){.about-photo-wrapper{max-width:280px;margin:0 auto}.about-grid{grid-template-columns:1fr;gap:3rem}.about-visual{justify-content:center}}.projects-section{padding-top:148px;padding-bottom:148px;overflow:hidden}.projects-section:before{inset:56px max(12px, calc((100vw - (var(--max-width) + 56px)) / 2)) 56px;z-index:-1;content:"";background:#c66bff06;border:1px solid #c66bff14;border-radius:8px;position:absolute}.projects-section .section-heading{z-index:1;margin-bottom:68px;position:relative}.projects-grid{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid;position:relative}.project-card{border:1px solid var(--border);background:linear-gradient(145deg, #c66bff17, transparent 38%), var(--panel);min-height:100%;transform:perspective(1000px) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg)) translateY(var(--translate-y,0px));transform-style:preserve-3d;border-radius:8px;flex-direction:column;padding:clamp(22px,3vw,32px);transition:transform .3s ease-out,border-color .18s,box-shadow .18s,background .18s;display:flex;position:relative;box-shadow:0 20px 70px #00000038}.project-card:before{content:"";border-radius:inherit;background:radial-gradient(800px circle at var(--mouse-x,50%) var(--mouse-y,50%), #c66bff26, transparent 40%);opacity:0;pointer-events:none;z-index:0;transition:opacity .3s;position:absolute;inset:0}.project-card>*{z-index:1;position:relative}.project-card:hover{--translate-y:-6px;background:linear-gradient(145deg,#c66bff24,#0000 38%),#120d20e6;border-color:#c66bff94;transition:transform 50ms linear,border-color .18s,box-shadow .18s,background .18s;box-shadow:0 28px 90px #8c4dff33}.project-card:hover:before{opacity:1}.project-media{aspect-ratio:600/350;background:linear-gradient(135deg,#c66bff29,#0000 34%),#090711d1;border:1px solid #c66bff38;border-radius:8px;margin-bottom:24px;display:block;position:relative;overflow:hidden;box-shadow:0 16px 42px #8c4dff1f}.project-media img{object-fit:cover;opacity:.86;width:100%;height:100%;transition:transform .22s,opacity .22s;display:block}.project-media:hover img{opacity:1;transform:scale(1.035)}.project-media-cli:after{content:"";pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#c66bff38 0 28%,#0000 28% 100%),linear-gradient(90deg,#f6f2ff38 0 54%,#0000 54% 100%),linear-gradient(90deg,#8c4dff47 0 42%,#0000 42% 100%);background-position:0 30%,0 48%,0 66%;background-repeat:no-repeat;background-size:100% 8px,100% 8px,100% 8px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #f6f2ff1a;border-radius:6px;position:absolute;inset:18px}.project-card-header{align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.project-index{color:var(--accent);margin:2px 0 0;font-family:JetBrains Mono,Consolas,monospace;font-size:.95rem;font-weight:700}.project-card h3{color:var(--text);margin:0;font-size:clamp(1.35rem,2.5vw,1.8rem);line-height:1.18}.project-description,.project-role p,.experience-card p{color:var(--muted);line-height:1.7}.project-description{margin:0 0 26px}.project-block,.project-role{margin-top:2px;margin-bottom:24px}.project-block h4,.project-role h4,.experience-work h4{color:var(--text);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:800}.inline-stack,.skill-tags{flex-wrap:wrap;gap:10px;display:flex}.inline-stack span,.skill-tags span{color:#eee4ff;background:#c66bff14;border:1px solid #c66bff40;border-radius:999px;font-size:.86rem;font-weight:700}.inline-stack span{padding:8px 10px}.feature-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.feature-list li{color:var(--muted);padding-left:22px;line-height:1.55;position:relative}.feature-list li:before{background:var(--accent);content:"";border-radius:50%;width:7px;height:7px;position:absolute;top:.72em;left:0;box-shadow:0 0 18px #c66bffcc}.project-role{margin-top:auto;padding-top:4px}.project-role p{margin:0}.project-actions{flex-wrap:wrap;gap:10px;display:flex}.project-link{border:1px solid var(--border-strong);border-radius:var(--radius);width:fit-content;color:var(--text);white-space:nowrap;align-items:center;gap:8px;padding:11px 14px;font-weight:800;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.project-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.3px;width:18px;height:18px}.project-link:hover{background:#c66bff1f;border-color:#c66bffb3;transform:translateY(-2px)}.project-link-secondary{color:var(--muted);background:#ffffff08;border-color:#c66bff38}.project-link-disabled{cursor:not-allowed;opacity:.68}.project-link-disabled span:last-child{color:var(--muted-2);text-transform:uppercase;font-size:.74rem;font-weight:800}.project-link-disabled:hover{background:#ffffff08;border-color:#c66bff38;transform:none}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.skill-group{border:1px solid var(--border);background:#120d20b3;border-radius:8px;padding:24px}.skill-group h3{margin:0 0 18px;font-size:1rem}.skill-tags span{padding:10px 12px}.experience-card,.contact-panel{border:1px solid var(--border);background:linear-gradient(145deg, #c66bff1c, transparent 42%), var(--panel);box-shadow:var(--shadow);border-radius:8px}.experience-card{gap:22px;padding:clamp(24px,4vw,34px);display:grid}.experience-label{color:var(--accent);margin:0 0 8px;font-family:JetBrains Mono,Consolas,monospace;font-weight:700}.experience-card h3{margin:0;font-size:clamp(1.6rem,3vw,2.4rem)}.experience-card p{margin:0}.experience-work{border-top:1px solid #c66bff29;padding-top:22px}.contact-section{padding-bottom:80px}.contact-panel{grid-template-columns:minmax(0,.9fr) minmax(320px,.8fr);align-items:start;gap:32px;padding:clamp(24px,5vw,44px);display:grid}.contact-links{gap:14px;display:grid}.contact-links a{border-radius:var(--radius);background:#ffffff09;border:1px solid #c66bff2e;gap:6px;padding:16px;transition:transform .18s,border-color .18s,background .18s;display:grid}.contact-links a:hover{background:#c66bff1a;border-color:#c66bff94;transform:translateY(-2px)}.contact-links span{color:var(--muted-2);text-transform:uppercase;font-size:.78rem;font-weight:800}.contact-links strong{overflow-wrap:anywhere;color:var(--text);font-size:.98rem}.site-footer{color:var(--muted-2);text-align:center;border-top:1px solid #c66bff24;padding:24px 0 32px}.site-footer p{margin:0}.reveal{opacity:0;transition:transform .65s,opacity .65s;transform:translateY(18px)}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes float{0%,to{transform:translate(0,0)}50%{transform:translateY(-16px)}}@media (width<=900px){.nav-toggle{display:grid}.nav-toggle span{grid-area:1/1}.nav-toggle[aria-expanded=true] span:first-child{transform:rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:rotate(-45deg)}.nav-links{border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;pointer-events:none;background:#0d0919f5;border-radius:8px;gap:0;padding:8px;transition:transform .18s,opacity .18s;display:grid;position:fixed;top:76px;left:20px;right:20px;transform:translateY(-12px)}.nav-links.open{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-links a{border-radius:6px;padding:14px}.nav-links a:after{display:none}.nav-links a:hover,.nav-links a.active{background:#c66bff1a}.hero-grid,.skills-grid,.contact-panel,.projects-grid{grid-template-columns:1fr}.hero{min-height:auto}.hero-visual{min-height:360px}}@media (width<=620px){.container,.narrow{width:min(100% - 28px, var(--max-width))}.section{padding:82px 0}.hero{padding-top:118px}.navbar{min-height:68px}.nav-links{top:68px;left:14px;right:14px}.hero-actions{flex-direction:column}.btn{width:100%}.hero-visual{min-height:330px}.code-card{top:48px;left:18px;right:18px}.metric-card{bottom:92px;right:18px}.stack-card{bottom:20px;left:18px;right:18px}.project-card-header{flex-direction:column;gap:8px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
