.fade-enter-active[data-v-77dc0de1],.fade-leave-active[data-v-77dc0de1]{transition:opacity .3s,transform .3s}.fade-enter-from[data-v-77dc0de1]{opacity:0;transform:translateY(10px)}.fade-leave-to[data-v-77dc0de1]{opacity:0;transform:translateY(-10px)}.mobile-menu-toggle[data-v-c26f8264]{cursor:pointer;z-index:21;background:0 0;border:none;flex-direction:column;justify-content:space-around;width:28px;height:24px;padding:0;display:none}.mobile-menu-toggle span[data-v-c26f8264]{background:var(--color-highlight);transform-origin:50%;border-radius:2px;width:100%;height:3px;transition:all .3s}.mobile-menu-toggle.active span[data-v-c26f8264]:first-child{transform:rotate(45deg)translate(8px,8px)}.mobile-menu-toggle.active span[data-v-c26f8264]:nth-child(2){opacity:0}.mobile-menu-toggle.active span[data-v-c26f8264]:nth-child(3){transform:rotate(-45deg)translate(8px,-8px)}@media (width<=720px){.mobile-menu-toggle[data-v-c26f8264]{display:flex}.nav[data-v-c26f8264]{top:var(--topbar-height);backdrop-filter:blur(20px);opacity:0;pointer-events:none;background:#050505;border:none;border-top:1px solid #ffffff1a;border-radius:0;flex-direction:column;gap:.5rem;padding:1rem;transition:transform .3s,opacity .3s;position:fixed;left:0;right:0;transform:translateY(-100%);box-shadow:0 14px 30px #04060c73}.nav.open[data-v-c26f8264]{opacity:1;pointer-events:all;transform:translateY(0)}.nav a[data-v-c26f8264]{text-align:center;width:100%;padding:.75rem 1.5rem}}.animated-gradient-text[data-v-09c8622e]{background:linear-gradient(120deg,#fff 0%,#888 25%,#fff 50%,#888 75%,#fff 100%) 0 0/200%;-webkit-text-fill-color:transparent;text-shadow:0 0 30px #ffffff1a;background-clip:text;animation:6s linear infinite gradient-flow-09c8622e;display:inline-block}.animate-on-hover[data-v-09c8622e]{background-size:200%;animation:none}.animate-on-hover[data-v-09c8622e]:hover{animation:1s linear infinite gradient-flow-09c8622e}@keyframes gradient-flow-09c8622e{0%{background-position:0%}to{background-position:200%}}:root{--topbar-height:80px;--color-bg:#050505;--color-surface:#ffffff08;--color-surface-alt:#ffffff0f;--color-border:#ffffff1a;--color-border-strong:#ffffff40;--color-text:#e0e0e0;--color-muted:#fff9;--color-highlight:#fff;--color-accent:#fff;--color-accent-strong:#e0e0e0;--color-accent-soft:#ffffff1a;--color-success:#ffffffe6;--maxw:1200px;--radius-lg:2px;--radius-md:2px;--font-base:clamp(1rem, .96rem + .2vw, 1.06rem);--font-name:clamp(2.8rem, 2.4rem + 2vw, 4rem);--font-subtitle:clamp(1.1rem, 1.05rem + .5vw, 1.5rem);--font-lead:clamp(1.05rem, 1rem + .7vw, 1.45rem);--font-btn:clamp(.85rem, .8rem + .2vw, .95rem);--transition-soft:transform .4s cubic-bezier(.2, .8, .2, 1), box-shadow .4s cubic-bezier(.2, .8, .2, 1), border-color .4s cubic-bezier(.2, .8, .2, 1), color .4s cubic-bezier(.2, .8, .2, 1), background-color .4s cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:var(--font-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.8;position:relative;overflow-x:hidden}h1,h2,h3,h4,h5,h6,.logo,.name{font-family:Playfair Display,serif;font-weight:400}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0a0a0a;border-left:1px solid #ffffff0d}::-webkit-scrollbar-thumb{background:linear-gradient(#444 0%,#888 50%,#444 100%);border:2px solid #0a0a0a;border-radius:0;transition:all .3s}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#666 0%,#aaa 50%,#666 100%);border-color:#222}*{scrollbar-width:thin;scrollbar-color:#666 #0a0a0a}a{color:inherit;text-decoration:none;transition:color .3s}a:hover{color:var(--color-highlight)}img{max-width:100%;display:block}main section{scroll-margin-top:calc(var(--topbar-height) + 2rem)}.container{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1.4rem,4vw,2.6rem)}.topbar{height:var(--topbar-height);-webkit-backdrop-filter:blur(16px);z-index:20;background:#050505d9;border-bottom:1px solid #ffffff14;align-items:center;display:flex;position:fixed;inset:0 0 auto}.topbar:after{content:"";opacity:.6;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);height:1px;position:absolute;inset:auto 0 -1px}.topbar .container{justify-content:space-between;align-items:center;gap:2rem;height:100%;padding:0 clamp(1.4rem,4vw,2.6rem);display:flex}.logo{letter-spacing:.1em;color:var(--color-highlight);text-transform:uppercase;font-size:1.1rem;font-weight:700;text-decoration:none}.nav{align-items:center;gap:2.5rem;display:flex}.nav a{color:var(--color-muted);letter-spacing:.1em;text-transform:uppercase;padding:.5rem 0;font-family:Inter,sans-serif;font-size:.85rem;font-weight:500;text-decoration:none;transition:color .3s;position:relative}.nav a:hover,.nav a.active{color:var(--color-highlight)}.nav a:after{content:"";background:var(--color-highlight);opacity:.7;width:0;height:1px;transition:width .3s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:0;left:0}.nav a:hover:after,.nav a.active:after{width:100%}.nav a:hover,.nav a:focus,.nav a.active{color:var(--color-highlight)}.nav a:hover:after,.nav a:focus:after,.nav a.active:after{width:100%}@media (width<=720px){.nav{display:none}}.hero{padding-top:calc(var(--topbar-height) + 6rem);align-items:center;min-height:90vh;display:flex;position:relative}.hero-grid{grid-template-columns:minmax(0,1fr);gap:4rem;width:100%;display:grid}.card{border-radius:var(--radius-lg);transition:var(--transition-soft);-webkit-backdrop-filter:blur(10px);background:#0a0a0a99;border:1px solid #ffffff14;padding:clamp(2rem,3vw + 1rem,4rem);position:relative;box-shadow:inset 0 0 0 1px #ffffff08}.card:hover,.card:focus-within{background:#0f0f0fcc;border-color:#fff3;transform:translateY(-2px);box-shadow:0 20px 60px #00000080,inset 0 0 0 1px #ffffff1a}.hero-info{width:100%;max-width:none;box-shadow:none;background:0 0;border:none;flex-direction:column;gap:2rem;margin:0 auto;padding:0;display:flex}.hero-badges{flex-wrap:wrap;gap:.8rem;display:flex}.badge{color:var(--color-highlight);letter-spacing:.15em;text-transform:uppercase;background:#ffffff08;border:1px solid #ffffff26;border-radius:2px;align-items:center;padding:.5rem 1rem;font-family:Inter,sans-serif;font-size:.75rem;transition:all .3s;display:inline-flex}.badge:hover{background:#ffffff1a;border-color:#fff6}.name{font-size:var(--font-name);letter-spacing:-.01em;color:var(--color-highlight);margin:0;line-height:1.1}.subtitle{font-family:Inter,sans-serif;font-weight:300;font-size:var(--font-subtitle);color:var(--color-muted);letter-spacing:.05em;text-transform:uppercase;margin:0}.lead{font-size:var(--font-lead);color:#f0f0f0e0;text-wrap:pretty;max-width:65ch;margin:0;font-weight:300;line-height:1.85}.hero-cta{flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem;display:flex}.btn{font-family:Inter,sans-serif;font-weight:500;font-size:var(--font-btn);letter-spacing:.15em;text-transform:uppercase;color:var(--color-highlight);transition:var(--transition-soft);z-index:1;background:0 0;border:1px solid #fff3;border-radius:2px;justify-content:center;align-items:center;gap:.6rem;padding:.9rem 2.2rem;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn.primary{color:#000;background:#fff;border-color:#fff}.btn.primary:hover{background:#e0e0e0;border-color:#e0e0e0;transform:translateY(-2px)}.btn.outline:hover{background:#ffffff1a;border-color:#fff;transform:translateY(-2px)}.btn[aria-disabled=true]{opacity:.5;cursor:wait}.btn[aria-disabled=true]:hover{background:0 0;border-color:#fff3;transform:none}.section{padding:6rem 0}.section h2{text-align:center;color:var(--color-highlight);margin:0 0 3rem;font-size:clamp(2rem,1.8rem + 1vw,2.8rem)}.section h2:after{content:"";background:var(--color-muted);opacity:.5;width:60px;height:1px;margin:1.5rem auto 0;display:block}.section-kicker{color:#ffffff94;letter-spacing:.2em;text-transform:uppercase;margin:0 0 1rem;font-size:.82rem;font-weight:600}.section-about{position:relative}.about-card{overflow:hidden}.about-card:before{content:"";opacity:.7;background:linear-gradient(90deg,#0000,#fff6,#0000);height:1px;position:absolute;inset:0 0 auto}.about-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start;gap:clamp(2rem,4vw,4rem);display:grid}.about-intro{gap:1.5rem;display:grid}.section-about .about-title{text-align:left;letter-spacing:-.03em;max-width:12ch;margin:0;font-size:clamp(2.1rem,1.8rem + 1.2vw,3.2rem);line-height:1.08}.section-about .about-title:after{display:none}.about-summary{color:#ffffffb8;text-wrap:pretty;max-width:58ch;margin:0;font-size:1.04rem;line-height:1.9}.about-signals{flex-wrap:wrap;gap:.75rem;display:flex}.about-chip{color:#ffffffd9;letter-spacing:.08em;text-transform:uppercase;background:#ffffff09;border:1px solid #ffffff1a;align-items:center;min-height:2.5rem;padding:.65rem .95rem;font-size:.8rem;display:inline-flex}.about-track{background:linear-gradient(#ffffff0b,#ffffff05);border:1px solid #ffffff17;gap:1.25rem;padding:1.5rem;display:grid;position:relative}.about-milestone{gap:.75rem;display:grid}.about-label{color:#ffffff8f;letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;font-weight:600}.about-milestone h3{color:var(--color-highlight);margin:0;font-size:clamp(1.3rem,1.15rem + .55vw,1.7rem);line-height:1.15}.about-milestone p{color:#ffffffb8;margin:0;line-height:1.8}.about-milestone--current h3{max-width:14ch}.about-milestone--next h3{max-width:11ch}.about-divider{height:1.25rem;position:relative}.about-divider:before{content:"";background:linear-gradient(90deg,#ffffff40,#ffffff0a);height:1px;position:absolute;top:50%;left:0;right:0}.about-divider span{background:#0f0f0f;border:1px solid #ffffff8c;width:.85rem;height:.85rem;position:absolute;top:50%;left:0;transform:translateY(-50%)rotate(45deg)}.about-focus{border-top:1px solid #ffffff14;gap:.85rem;margin:.25rem 0 0;padding:1.1rem 0 0;list-style:none;display:grid}.about-focus li{color:#ffffffd1;align-items:center;gap:.8rem;font-size:.95rem;display:flex}.about-focus li:before{content:"";background:#ffffffb3;flex:none;width:.42rem;height:.42rem;transform:rotate(45deg)}.grid{align-items:stretch;gap:2.5rem;display:grid}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.skill,.project{border-radius:var(--radius-md);transition:var(--transition-soft);-webkit-backdrop-filter:blur(5px);background:#0a0a0a66;border:1px solid #ffffff14;flex-direction:column;padding:2.5rem;display:flex;position:relative;overflow:hidden}.skill:hover,.project:hover{background:#14141499;border-color:#ffffff4d;transform:translateY(-4px)}.skill h3,.project h3{color:var(--color-highlight);margin-top:0;margin-bottom:1.2rem;font-size:1.4rem}.skill ul{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.skill li{color:var(--color-muted);align-items:center;gap:.8rem;font-weight:300;display:flex}.skill li:before{content:"";background:var(--color-border-strong);border-radius:50%;width:4px;height:4px}.project-links{margin-top:auto;padding-top:2rem}.project--teaser{border-color:#ffffff26}.project--teaser .teaser-baseline{color:var(--color-highlight);-webkit-text-fill-color:initial;background:0 0;font-family:Playfair Display,serif;font-size:1.1rem;font-style:italic;font-weight:400}.project--teaser .microcopy{color:var(--color-muted);margin-top:1rem;font-size:.9rem;font-weight:300}footer{text-align:center;border-top:1px solid #ffffff0d;margin-top:4rem;padding:4rem 0}footer p{color:var(--color-muted);font-size:.9rem}@media (width<=920px){.about-layout{grid-template-columns:minmax(0,1fr)}.section-about .about-title{max-width:15ch}}@media (width<=640px){.hero{min-height:auto}.hero-info{gap:1.5rem}.about-track{padding:1.2rem}.about-chip{text-align:center;justify-content:center;width:100%}}
