:root{--bg:#070b1f;--bg-2:#0d1330;--surface:#ffffff0a;--surface-hover:#ffffff12;--border:#ffffff17;--text:#e8ebff;--muted:#9aa3c7;--violet:#7c5cff;--violet-light:#c4b8ff;--gradient:linear-gradient(110deg, var(--violet-light), var(--violet));--radius:18px;--max:1080px;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;overflow-x:hidden}a{color:inherit}h1,h2,h3{margin:0;line-height:1.1}ul,ol{margin:0;padding:0;list-style:none}.muted{color:var(--muted)}.gradient{background:var(--gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.aurora{z-index:-2;filter:blur(80px);opacity:.55;position:fixed;inset:0;overflow:hidden}.aurora span{border-radius:50%;width:45vmax;height:45vmax;animation:22s ease-in-out infinite alternate drift;position:absolute}.aurora span:first-child{background:var(--violet);top:-15vmax;left:-10vmax}.aurora span:nth-child(2){background:#312e81;animation-duration:28s;animation-delay:-6s;bottom:-20vmax;right:-10vmax}.aurora span:nth-child(3){opacity:.6;background:#4c1d95;width:30vmax;height:30vmax;animation-duration:34s;animation-delay:-12s;top:35%;left:45%}.progress{z-index:20;background:var(--gradient);transform-origin:0;height:3px;transform:scaleX(var(--scroll,0));position:fixed;top:0;left:0;right:0}.topbar{z-index:10;width:min(var(--max), calc(100% - 2rem));border:1px solid #0000;border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .75rem .6rem 1.1rem;transition:background .3s,border-color .3s,backdrop-filter .3s;display:flex;position:fixed;top:.75rem;left:50%;transform:translate(-50%)}.scrolled .topbar{border-color:var(--border);backdrop-filter:blur(14px);background:#070b1fb3}.logo{letter-spacing:.05em;background:var(--gradient);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800;text-decoration:none}.topbar nav{gap:.25rem;display:flex}.topbar nav a{color:var(--muted);border-radius:999px;padding:.4rem .8rem;font-size:.9rem;text-decoration:none;transition:color .2s,background .2s}.topbar nav a:hover{color:var(--text);background:var(--surface-hover)}.topbar .nav-cta{color:var(--text);background:var(--surface-hover);border:1px solid var(--border)}main{width:min(var(--max), calc(100% - 2rem));margin:0 auto}.section{padding:5rem 0 1rem}.section-title{letter-spacing:-.02em;align-items:baseline;gap:.9rem;margin-bottom:2.25rem;font-size:clamp(1.8rem,4vw,2.6rem);display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,background .35s;position:relative;overflow:hidden}.card:hover{background:var(--surface-hover);border-color:#7c5cff73;transform:translateY(-4px)}.spot:before{content:"";pointer-events:none;opacity:0;background:radial-gradient(380px circle at var(--x,50%) var(--y,50%), #7c5cff29, transparent 60%);transition:opacity .3s;position:absolute;inset:0}.spot:hover:before{opacity:1}.card h3{font-size:1.15rem}.chips{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.chips li{background:#7c5cff1f;border:1px solid #7c5cff4d;border-radius:999px;padding:.3rem .75rem;font-size:.82rem;transition:transform .2s,background .2s}.chips li:hover{background:#7c5cff40;transform:translateY(-2px)scale(1.04)}.chips-soft li{background:var(--surface-hover);border-color:var(--border)}.hero{grid-template-columns:1.3fr 1fr;align-items:center;gap:3rem;min-height:min(100svh,56rem);padding:7rem 0 3rem;display:grid}.badge{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.6rem;margin:0 0 1.5rem;padding:.4rem .9rem;font-size:.85rem;display:inline-flex}.pulse{background:#34d399;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 #34d399b3}.hero h1{letter-spacing:-.035em;font-size:clamp(2.6rem,7vw,5rem);font-weight:800}.hero-greeting{color:var(--muted);letter-spacing:-.02em;font-size:.55em;font-weight:600;display:block}.hero-name{display:block}.headline{color:var(--text);max-width:34ch;margin:1.4rem 0 .4rem;font-size:clamp(1.05rem,2.2vw,1.35rem)}.headline-tech{color:var(--muted);font-size:.9em;display:block}.location{color:var(--muted);margin:0}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.btn{font:inherit;color:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;padding:.85rem 1.5rem;font-weight:600;text-decoration:none;transition:transform .25s,box-shadow .25s,background .25s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--violet);color:#fff;box-shadow:0 10px 30px -10px #7c5cffcc}.btn-primary:hover{box-shadow:0 16px 40px -10px #7c5cffe6}.btn-ghost{border:1px solid var(--border);background:var(--surface)}.btn-ghost:hover{background:var(--surface-hover)}.hero-photo{aspect-ratio:1;justify-self:center;width:min(340px,75vw);position:relative}.hero-photo img{object-fit:cover;object-position:50% 25%;border:6px solid var(--bg);border-radius:50%;width:calc(100% - 20px);height:calc(100% - 20px);animation:7s ease-in-out infinite float;position:absolute;inset:10px}.ring{background:conic-gradient(from 0deg, var(--violet), transparent 35%, var(--violet-light) 65%, var(--violet));filter:drop-shadow(0 0 30px #7c5cff80);border-radius:50%;animation:8s linear infinite spin;position:absolute;inset:0}.floating{border:1px solid var(--border);backdrop-filter:blur(8px);white-space:nowrap;background:#0d1330d9;border-radius:999px;padding:.4rem .8rem;font-size:.8rem;font-weight:600;animation:6s ease-in-out infinite float;position:absolute}.f0{top:6%;left:-12%}.f1{animation-delay:-1.5s;top:18%;right:-14%}.f2{animation-delay:-3s;bottom:16%;left:-16%}.f3{animation-delay:-4.5s;bottom:2%;right:-6%}.stats{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.stat{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;padding:1.5rem 1rem;display:flex;position:relative;overflow:hidden}.stat-value{background:var(--gradient);color:#0000;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.2rem,5vw,3.2rem);font-weight:800}.stat-label{color:var(--muted);font-size:.9rem}.about-text{margin:0;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.6}.timeline{padding-left:2.25rem;position:relative}.timeline-line{background:var(--border);border-radius:2px;width:2px;position:absolute;top:.5rem;bottom:.5rem;left:.55rem;overflow:hidden}.timeline-fill{background:linear-gradient(var(--violet), var(--violet-light));transform-origin:top;transform:scaleY(var(--fill,1));position:absolute;inset:0}.js .timeline-fill{transform:scaleY(var(--fill,0))}.jobs{flex-direction:column;gap:1.5rem;display:flex}.job{position:relative}.dot{background:var(--bg);border:3px solid var(--violet);border-radius:50%;width:14px;height:14px;position:absolute;top:1.7rem;left:-2.1rem}.dot-live{border-color:#34d399;animation:2s infinite pulse;box-shadow:0 0 #34d399b3}.job-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.company{color:var(--violet-light);margin:.35rem 0 0;font-weight:600}.via{color:var(--muted);font-size:.9rem;font-weight:400}.when{color:var(--muted);text-transform:capitalize;flex-direction:column;align-items:flex-end;margin:0;font-size:.9rem;display:flex}.duration{text-transform:none;opacity:.8;font-size:.8rem}.job-description{color:#c9cff0;margin:1rem 0 0}.marquee{margin:0 0 2rem;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.marquee-track{gap:2.5rem;width:max-content;animation:35s linear infinite marquee;display:flex}.marquee-track span{color:#0000;-webkit-text-stroke:1px #e8ebff59;white-space:nowrap;font-size:clamp(1.4rem,3vw,2.2rem);font-weight:800}.marquee:hover .marquee-track{animation-play-state:paused}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;display:grid}.edu-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.edu-year{color:var(--violet-light);margin-bottom:.6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;display:inline-block}.edu p{margin:.6rem 0 0;font-size:.92rem}.languages{flex-wrap:wrap;gap:1rem;margin-top:1.5rem;display:flex}.languages li{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.75rem;padding:.7rem 1.2rem;display:flex}.languages span{color:var(--muted);font-size:.9rem}.contact{text-align:center;padding:7rem 0 4rem}.contact-kicker{color:var(--muted);margin:0 0 1rem}.contact-title{letter-spacing:-.04em;font-size:clamp(3rem,12vw,8rem);font-weight:800}.contact-title a{background:var(--gradient);color:#0000;-webkit-background-clip:text;background-clip:text;text-decoration:none}.arrow{margin-left:.15em;transition:transform .3s;display:inline-block}.contact-title a:hover .arrow{transform:translate(.2em)rotate(-30deg)}.links{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2.5rem;display:flex}.links a,.links button{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:.6rem 1.1rem;text-decoration:none;transition:background .2s,transform .2s;display:inline-block}.links a:hover,.links button:hover{background:var(--surface-hover);transform:translateY(-2px)}.footer{text-align:center;color:var(--muted);padding:2rem 1rem 3rem;font-size:.85rem}.js .reveal{opacity:0;filter:blur(6px);transition:opacity .8s cubic-bezier(.2, .8, .2, 1) var(--delay,0s), transform .8s cubic-bezier(.2, .8, .2, 1) var(--delay,0s), filter .8s ease var(--delay,0s);transform:translateY(28px)}.js .reveal.visible{opacity:1;filter:none;transform:none}.js .card.reveal.visible{transition:transform .35s cubic-bezier(.2, .8, .2, 1), border-color .35s, background .35s, opacity .8s ease var(--delay,0s), filter .8s ease var(--delay,0s)}@keyframes drift{0%{transform:translate(0)scale(1)}to{transform:translate(12vmax,8vmax)scale(1.2)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-10px)}}@keyframes pulse{70%{box-shadow:0 0 0 10px #34d39900}to{box-shadow:0 0 #34d39900}}@keyframes marquee{to{transform:translate(-50%)}}@media (width<=760px){.topbar{padding-left:1rem}.topbar nav a:not(.nav-cta){display:none}.hero{text-align:center;grid-template-columns:1fr;gap:2.5rem;padding-top:6rem}.hero-photo{order:-1;width:min(240px,62vw)}.headline{margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.floating{font-size:.72rem}.f0,.f2{left:-8%}.f1,.f3{right:-8%}.stats{gap:.5rem}.stat{padding:1rem .4rem}.stat-label{font-size:.75rem;line-height:1.3}.when{align-items:flex-start}.timeline{padding-left:1.75rem}.dot{left:-1.6rem}.timeline-line{left:.3rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}.js .reveal{opacity:1;filter:none;transform:none}.js .timeline-fill{transform:scaleY(1)}}.sector{color:var(--muted);border:1px solid var(--border);border-radius:999px;margin:.5rem 0 0;padding:.15rem .6rem;font-size:.78rem;display:inline-block}.achievements{gap:.45rem;margin-top:.9rem;display:grid}.achievements li{color:#c9cff0;padding-left:1.4rem;position:relative}.achievements li:before{content:"✓";color:var(--violet-light);font-weight:700;position:absolute;left:0}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.project h3 a{text-decoration:none}.project h3 .arrow{color:var(--violet-light);margin-left:.35rem}.project p{margin:.75rem 0 0}.links button{font:inherit;color:inherit;cursor:pointer}.print-cv{display:none}@media print{@page{size:A4;margin:22mm 18mm 16mm}body{background:#fff}body>:not(.print-cv){display:none!important}.print-cv{color:#1a1a1a;font-size:10pt;line-height:1.5;display:block}.print-cv p{margin:0}.pcv-header{border-bottom:2px solid #5b3fd9;justify-content:space-between;align-items:center;gap:6mm;padding-bottom:5mm;display:flex}.pcv-header h1{letter-spacing:-.02em;font-size:22pt}.pcv-headline{color:#5b3fd9;font-size:11pt;font-weight:600;margin-top:1mm!important}.pcv-headline .headline-tech{color:#555;font-size:10pt;font-weight:500}.pcv-contact{color:#444;white-space:pre-wrap;margin-top:2mm!important}.pcv-header img{object-fit:cover;object-position:50% 25%;border-radius:50%;width:24mm;height:24mm}.print-cv section{margin-top:8mm}.pcv-experience+section{break-before:page;margin-top:0}.print-cv h2{text-transform:uppercase;letter-spacing:.08em;color:#5b3fd9;border-bottom:1px solid #ddd;margin-bottom:2mm;padding-bottom:1mm;font-size:10pt}.pcv-item{break-inside:avoid;margin-bottom:5mm}.pcv-item>*+*{margin-top:1mm!important}.pcv-row{justify-content:space-between;align-items:baseline;gap:4mm;display:flex}.pcv-date{color:#555;flex-shrink:0;font-size:9pt}.pcv-muted{color:#555}.print-cv ul{margin:1mm 0 0;padding-left:5mm;list-style:outside}.print-cv li+li{margin-top:.5mm}.pcv-tech{color:#5b3fd9;font-size:8.5pt}.pcv-skills{grid-template-columns:26mm 1fr;gap:1mm 4mm;margin:0;display:grid}.pcv-skills dt{font-weight:700}.pcv-skills dd{margin:0}.pcv-edu+.pcv-edu{margin-top:1.5mm}.pcv-footer{color:#888;text-align:right;font-size:8pt;margin-top:6mm!important}}
