@import "https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";:root{--bg:oklch(7.5% .01 255);--bg-surface:oklch(12% .012 255);--bg-card:oklch(10% .01 255);--charcoal:oklch(18% .012 255);--charcoal-hi:oklch(25% .012 255);--rose-accent:#6b59d0;--rose-bright:oklch(96% .006 255);--rose-mid:oklch(72% .15 286);--rose-deep:oklch(55% .08 286);--rose-glow:oklch(72% .15 286/.1);--rose-border:oklch(72% .15 286/.16);--rose-border-hi:oklch(92% .02 255/.32);--text-1:oklch(97% .008 300);--text-2:oklch(76% .02 255);--text-3:oklch(58% .015 255);--radius-lg:1.125rem;--radius-md:.75rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(70% 55% at 0 0,oklch(72% .15 286/.12) 0%,#0000 60%),radial-gradient(65% 50% at 100% 0,oklch(96% .006 255/.08) 0%,#0000 60%),radial-gradient(65% 50% at 0 100%,oklch(72% .15 286/.08) 0%,#0000 60%),radial-gradient(70% 55% at 100% 100%,oklch(96% .006 255/.1) 0%,#0000 60%);position:fixed;inset:0}h1,h2,h3,h4{letter-spacing:-.02em;font-family:Sora,sans-serif;font-weight:600;line-height:1.1}p{color:var(--text-2);line-height:1.68}.canvas-container{z-index:-1;pointer-events:none;position:fixed;inset:0}.section{z-index:1;align-items:center;width:100vw;min-height:min(100dvh,60rem);padding:clamp(5rem,9vh,8rem) 5vw;display:flex;position:relative}.hero{grid-template-columns:minmax(0,1fr);align-items:center;gap:0;display:grid;overflow:hidden}.hero-copy{z-index:2;position:relative}.hero-stage-shell{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-stage-sticky{width:100%;height:min(100dvh,62rem);position:sticky;top:0}.hero-stage-frame{width:100%;height:100%;box-shadow:none;background:0 0;border:0;border-radius:0;position:relative;overflow:hidden}.hero-stage-frame canvas{width:100%;height:100%;display:block}.hero-stage-fallback{background:radial-gradient(circle at 52% 40%,oklch(70% .1 286/.16),#0000 28%),radial-gradient(circle at 20% 28%,oklch(97% .004 280/.18),#0000 24%),radial-gradient(circle at 78% 42%,oklch(97% .004 280/.1),#0000 22%),linear-gradient(oklch(8% .01 290) 0%,oklch(6% .008 290) 100%);position:absolute;inset:0;overflow:hidden}.hero-stage-fallback-glow{filter:blur(18px);opacity:.9;border-radius:50%;width:44%;height:44%;position:absolute}.hero-stage-fallback-glow-left{background:radial-gradient(circle,oklch(97% .02 90/.18) 0%,#0000 68%);top:18%;left:6%}.hero-stage-fallback-glow-right{background:radial-gradient(circle,oklch(70% .1 286/.2) 0%,#0000 68%);top:20%;right:10%}.hero-stage-fallback-floor{transform-origin:bottom;background:linear-gradient(#0000 0%,oklch(95% .004 280/.03) 8%,oklch(95% .004 280/.1) 100%),linear-gradient(90deg,oklch(9% .01 290) 0%,oklch(12% .015 290) 50%,oklch(9% .01 290) 100%);border-top:1px solid oklch(97% .004 280/.08);height:42%;position:absolute;bottom:-2%;left:-6%;right:-6%;transform:perspective(800px)rotateX(72deg)}.hero-stage-fallback-robot{opacity:.95;border-radius:999px;position:absolute;inset:auto}.hero-stage-fallback-go2{clip-path:polygon(8% 42%,28% 18%,72% 18%,92% 42%,80% 100%,20% 100%);background:radial-gradient(circle at 28% 40%,oklch(97% .004 280/.9) 0 8%,#0000 9%),radial-gradient(circle at 72% 40%,oklch(97% .004 280/.9) 0 8%,#0000 9%),linear-gradient(oklch(18% .02 285) 0%,oklch(10% .01 285) 100%);width:18%;height:16%;bottom:22%;left:11%;box-shadow:0 0 40px oklch(97% .004 280/.08)}.hero-stage-fallback-go2:before,.hero-stage-fallback-go2:after{content:"";background:linear-gradient(oklch(97% .004 280/.85),oklch(70% .01 280/.25));border-radius:999px;width:12%;height:44%;position:absolute;bottom:-24%}.hero-stage-fallback-go2:before{left:18%;transform:rotate(10deg)}.hero-stage-fallback-go2:after{right:18%;transform:rotate(-10deg)}.hero-stage-fallback-g1{clip-path:polygon(37% 0%,63% 0%,78% 12%,88% 34%,82% 100%,18% 100%,12% 34%,22% 12%);background:radial-gradient(circle at 50% 10%,oklch(97% .004 280/.9) 0 8%,#0000 9%),linear-gradient(oklch(18% .015 290) 0%,oklch(11% .012 290) 100%);width:18%;height:42%;bottom:18%;left:43%}.hero-stage-fallback-spot{clip-path:polygon(30% 0%,70% 0%,90% 24%,90% 76%,62% 100%,38% 100%,10% 76%,10% 24%);background:linear-gradient(oklch(95% .004 280/.95) 0%,oklch(75% .005 280/.4) 100%);width:15%;height:24%;bottom:20%;right:18%}.hero-stage-fallback-arm{clip-path:polygon(40% 0%,62% 0%,100% 58%,84% 100%,56% 100%,16% 60%);background:linear-gradient(oklch(92% .004 280/.95) 0%,oklch(70% .006 280/.45) 100%);width:11%;height:34%;bottom:14%;right:4%;transform:rotate(12deg)}.hero-stage-frame:before{content:"";pointer-events:none;background:radial-gradient(circle at 52% 42%,oklch(72% .15 286/.1),#0000 34%),radial-gradient(circle at 22% 30%,oklch(96% .006 255/.08),#0000 26%),radial-gradient(circle at 76% 48%,oklch(72% .15 286/.06),#0000 24%),linear-gradient(#0000 58%,oklch(7.5% .01 255/.16) 100%);position:absolute;inset:0}@media (orientation:portrait){.hero{align-items:start;padding-top:6.5rem;min-height:min(100dvh,62rem)!important}.hero-stage-sticky{height:100%}.hero-stage-frame{height:68%;position:absolute;bottom:0;left:0;right:0}.hero-scroll-hint{display:none!important}}@media (width<=980px){.hero{grid-template-columns:1fr}.hero-stage-shell{position:absolute}.hero-stage-sticky{height:min(100dvh,62rem);position:sticky;top:0}.hero-stage-frame{width:100%}.hero-stage-fallback-go2,.hero-stage-fallback-g1{width:22%}.hero-stage-fallback-spot{width:18%}}.navbar{z-index:200;width:min(92vw,880px);transition:opacity .3s;position:fixed;top:1.125rem;left:50%;transform:translate(-50%)}.navbar-inner{-webkit-backdrop-filter:blur(28px);border:1px solid var(--rose-border);background:oklch(9% .016 298/.55);border-radius:999px;justify-content:space-between;align-items:center;padding:.5rem 1rem;transition:background .4s,box-shadow .4s;display:flex;box-shadow:inset 0 0 0 1px oklch(72% .22 308/.06),0 8px 40px oklch(50% .28 303/.25)}.navbar-scrolled .navbar-inner{background:oklch(9% .016 298/.88);box-shadow:inset 0 0 0 1px oklch(72% .22 308/.1),0 8px 50px oklch(50% .28 303/.35)}.navbar-logo{color:var(--rose-mid);letter-spacing:.06em;background:var(--rose-glow);border:1px solid var(--rose-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.125rem;height:2.125rem;font-family:Sora,sans-serif;font-size:.8125rem;font-weight:700;text-decoration:none;transition:background .25s,box-shadow .25s;display:flex}.navbar-logo:hover{background:oklch(72% .22 308/.22);box-shadow:0 0 16px oklch(72% .22 308/.3)}.navbar-links{align-items:center;gap:.125rem;display:flex}.navbar-link{color:var(--text-2);white-space:nowrap;border-radius:999px;padding:.325rem .7rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:color .2s,background .2s}.navbar-link:hover{color:var(--text-1);background:var(--rose-glow)}.navbar-cv{color:var(--rose-mid);border:1px solid var(--rose-border-hi);background:var(--rose-glow);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.35rem .875rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:background .25s,box-shadow .25s}.navbar-cv:hover{background:oklch(72% .22 308/.22);box-shadow:0 0 16px oklch(72% .22 308/.22)}.social-bar{z-index:150;-webkit-backdrop-filter:blur(20px);border:1px solid var(--rose-border);background:oklch(11% .018 295/.78);border-left:none;border-radius:0 999px 999px 0;flex-direction:column;align-items:center;gap:.625rem;padding:1.375rem .75rem 1.375rem .875rem;transition:transform .5s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;top:50%;left:0;transform:translateY(-50%)translate(calc(20px - 100%));box-shadow:4px 0 24px oklch(50% .28 303/.2)}.social-bar:hover{transform:translateY(-50%)translate(0)}.social-icon{color:var(--text-3);border-radius:50%;justify-content:center;align-items:center;padding:.5rem;text-decoration:none;transition:color .25s,background .25s,transform .25s;display:flex}.social-icon:hover{color:var(--rose-mid);background:var(--rose-glow);transform:scale(1.15)}.social-linkedin:hover{box-shadow:0 0 14px oklch(50% .2 250/.5)}.social-github:hover{box-shadow:0 0 14px oklch(72% .22 308/.35)}.social-email:hover{box-shadow:0 0 14px oklch(50% .28 303/.5)}.card{background:var(--bg-card);border:1px solid var(--rose-border);border-radius:var(--radius-lg);padding:1.75rem;transition:border-color .35s,box-shadow .35s,transform .35s cubic-bezier(.32,.72,0,1);position:relative}.card:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;background:oklch(72% .22 308/.04);transition:opacity .35s;position:absolute;inset:0}.card:hover{border-color:var(--rose-border-hi);transform:translateY(-3px);box-shadow:0 20px 56px oklch(50% .28 303/.28)}.card:hover:before{opacity:1}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--rose-mid);background:var(--rose-glow);border:1px solid var(--rose-border);border-radius:999px;align-items:center;gap:.375rem;margin-bottom:1.125rem;padding:.225rem .8rem;font-size:.6875rem;font-weight:600;display:inline-flex}.tag{border:1px solid var(--rose-border);color:var(--text-3);background:oklch(72% .22 308/.08);border-radius:999px;padding:.175rem .6rem;font-size:.6875rem;font-weight:500;display:inline-block}.btn-primary{background:var(--rose-accent);border:1px solid var(--rose-border-hi);color:var(--text-1);cursor:pointer;border-radius:999px;align-items:center;gap:.75rem;padding:.7rem 1.125rem .7rem 1.5rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:background .3s,box-shadow .3s,transform .3s;display:inline-flex}.btn-primary:hover{background:oklch(60% .16 286);transform:translateY(-1px);box-shadow:0 0 32px oklch(54.5% .177 286/.45)}.btn-icon-wrapper{background:var(--rose-mid);width:1.875rem;height:1.875rem;color:var(--bg);border-radius:50%;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex}.btn-primary:hover .btn-icon-wrapper{transform:translate(3px)scale(1.06)}.btn-secondary{border:1px solid var(--rose-border);color:var(--text-2);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.75rem;padding:.7rem 1.5rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:border-color .25s,color .25s,background .25s;display:inline-flex}.btn-secondary:hover{border-color:var(--rose-border-hi);color:var(--text-1);background:var(--rose-glow)}.stat-card{text-align:center}.stat-number{color:var(--rose-mid);letter-spacing:-.03em;margin-bottom:.4rem;font-size:2.125rem;font-weight:700;line-height:1;display:block}.stat-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-3);font-size:.6875rem;font-weight:600}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--charcoal-hi);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--rose-deep)}.tl{text-align:left;margin-top:3rem}.tl-scroll{padding-bottom:.5rem;overflow-x:auto}.tl-inner{min-width:680px;padding-left:5.5rem;position:relative}.tl-axis{height:1.5rem;margin-bottom:.25rem;position:relative}.tl-year{letter-spacing:.08em;color:var(--text-3);font-size:.6875rem;position:absolute;transform:translate(2px)}.tl-lane{margin-bottom:.75rem;position:relative}.tl-lane-name{letter-spacing:.14em;text-transform:uppercase;color:var(--rose-mid);font-family:Sora,sans-serif;font-size:.6875rem;position:absolute;top:.5rem;left:-5.5rem}.tl-track{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--rose-border);position:relative}.tl-gridline{background:var(--rose-border);opacity:.6;width:1px;position:absolute;top:0;bottom:0}.tl-bar{white-space:nowrap;height:2rem;color:var(--text-1);background:var(--charcoal-hi);border:1px solid var(--rose-border-hi);border-radius:.5rem;align-items:center;margin-top:.25rem;padding:0 .6rem;font-size:.6875rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex;position:absolute;overflow:hidden}.tl-bar:hover,.tl-bar:focus-visible{z-index:2;outline:none;overflow:visible;transform:translateY(-2px);box-shadow:0 6px 18px oklch(72% .15 286/.25)}.tl-academia{border-color:var(--rose-border);background:oklch(32% .07 286)}.tl-work{background:var(--rose-accent);border-color:#0000}.tl-now{background:linear-gradient(90deg, var(--rose-accent), oklch(72% .15 286));box-shadow:0 0 14px oklch(72% .15 286/.5)}.tl-projects{background:var(--rose-deep);color:var(--text-2);padding:0;font-weight:500;overflow:visible}.tl-projects span{position:absolute;left:calc(100% + 6px)}.tl-projects.tl-in span{color:var(--text-1);left:.6rem}.tl-projects.tl-left span{left:auto;right:calc(100% + 6px)}.tl-now{justify-content:flex-end;overflow:visible}.tl-now span{position:absolute;right:.6rem}.tl-list{margin-top:1rem;list-style:none;display:none}.tl-list li{border-bottom:1px solid var(--rose-border);color:var(--text-2);padding:.5rem 0;font-size:.8125rem}.tl-list strong{color:var(--text-1)}.tl-list span{color:var(--text-3);font-size:.75rem;display:block}@media (width<=768px){.tl-list{display:block}}.proj-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=1100px){.proj-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}.flip{perspective:1200px;cursor:pointer;border-radius:var(--radius-lg);outline:none;height:100%}.flip:focus-visible{box-shadow:0 0 0 2px var(--rose-mid)}.flip-inner{height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:grid}.flip.is-flipped .flip-inner{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;grid-area:1/1}.flip-back{transform:rotateY(180deg)}.flip-face.card:hover{transform:none}.flip-back.card:hover{transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.flip-inner{transition:none}}@media (width<=768px){.section{padding:6rem 1.25rem}.navbar-links,.social-bar{display:none}.navbar{width:94vw;top:.75rem}}@media (width<=480px){.navbar-inner{padding:.5rem .875rem}}
