html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--color-bg:#f6f4fb;--color-surface:#ebe7f4;--color-card:#fff;--color-border:#dcd6ea;--color-text:#1b1825;--color-text-muted:#625d72;--color-accent:#1b1825;--color-accent-hover:#000;--color-on-accent:#fff;--color-accent-glow:#1b182514;--color-nav-bg:#f6f4fbb8;--color-terminal:#6e49cb;--color-on-terminal:#fff;--color-name-1:#5b3fc4;--color-name-2:#b0306e;--color-name-3:#7a5fd6;--color-role:var(--color-text);--space-xs:.5rem;--space-sm:.75rem;--space-md:1.25rem;--space-lg:2rem;--space-xl:4rem;--radius:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #0000000f;--shadow-card:0 1px 2px #0000000a, 0 8px 24px #0000000f, 0 24px 60px #0000000d;--container-width:900px;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}img{max-width:100%;display:block}h1,h2,h3{color:var(--color-text);font-weight:600;line-height:1.25}h1{letter-spacing:-.5px;font-size:2.5rem}h2{font-size:1.5rem}h3{font-size:1.125rem}@media (width<=640px){h1{font-size:2rem}}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline}ul{list-style:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:4px}.section{padding:calc(var(--space-xl) * 1.15) var(--space-md)}.container{width:100%;max-width:var(--container-width);margin-inline:auto}.section-title{margin-bottom:var(--space-lg);letter-spacing:-.4px}.section{scroll-margin-top:64px}:root[data-theme=dark]{--color-bg:#1b1825;--color-surface:#262331;--color-card:#262331;--color-border:#2f2c38;--color-text:#edecf2;--color-text-muted:#a7a3b4;--color-accent:#edecf2;--color-accent-hover:#fff;--color-on-accent:#000;--color-accent-glow:#ffffff1a;--color-nav-bg:#181622b8;--color-terminal:#a989f5;--color-on-terminal:#1b1825;--color-name-1:#8b6fe0;--color-name-2:#d44d90;--color-name-3:#b9a6f5;--color-role:#dddce3;--shadow-card:0 1px 2px #0006, 0 8px 24px #00000059, 0 24px 60px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body,.navbar,.card,.statusbar,.skills__badge,.theme-toggle,.lang-switch{transition:background-color .2s,color .2s,border-color .2s}@media (prefers-reduced-motion:reduce){body,.navbar,.card,.statusbar,.skills__badge,.theme-toggle,.lang-switch{transition:none}}.lang-switch{font:inherit;letter-spacing:.5px;color:var(--color-text-muted);background-color:var(--color-bg);border:1px solid var(--color-border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.8125rem;font-weight:600;transition:border-color .15s;display:flex}.lang-switch:hover{border-color:var(--color-accent)}.lang-switch .is-active{color:var(--color-accent)}.lang-switch__divider{color:var(--color-border);font-weight:400}.theme-toggle{width:32px;height:32px;color:var(--color-text-muted);background-color:var(--color-bg);border:1px solid var(--color-border);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s;display:inline-flex}.theme-toggle:hover{color:var(--color-accent);border-color:var(--color-accent)}.navbar{z-index:20;background-color:var(--color-nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);position:sticky;top:0}.navbar__inner{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);display:flex}.navbar__logo{letter-spacing:-.2px;color:var(--color-text);align-items:baseline;gap:7px;font-size:1.0625rem;font-weight:600;display:inline-flex}.navbar__logo-mark{color:var(--color-terminal);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700}.navbar__logo-name{font-weight:600}.navbar__logo:hover{color:var(--color-accent);text-decoration:none}.navbar__nav{align-items:center;gap:var(--space-md);display:flex}.navbar__links{gap:var(--space-md);display:flex}.navbar__link{color:var(--color-text-muted);font-size:.9375rem;font-weight:500}.navbar__link:hover{color:var(--color-accent);text-decoration:none}@media (width<=640px){.navbar__links{display:none}}.gradient-text{isolation:isolate;justify-content:center;align-items:center;max-width:100%;display:inline-flex;position:relative}.gradient-text--border{border-radius:999px;padding:.35em .75em}.gradient-text--border:before{content:"";padding:var(--gt-border);border-radius:inherit;background-image:var(--gt-gradient);-webkit-mask-composite:xor;pointer-events:none;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.gradient-text__inner{display:inline-block;position:relative}.gradient-text__content{background-image:var(--gt-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:inline-block}.gradient-text__glow{z-index:-1;background-image:var(--gt-gradient);-webkit-text-fill-color:transparent;filter:blur(.3em)saturate(1.4);opacity:var(--gt-glow);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.dither-container{width:100%;height:100%;position:relative;overflow:hidden}.dither-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.hero{padding-block:calc(var(--space-xl) * 1.5) var(--space-xl);isolation:isolate;position:relative;overflow:hidden}.hero__bg{z-index:-1;opacity:.22;pointer-events:none;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 55%,#0000 100%);mask-image:linear-gradient(#000 55%,#0000 100%)}@media (width<=640px){.hero__bg{opacity:.26}.hero__tagline{background-color:var(--hero-glass-bg);border:1px solid var(--hero-glass-border);box-shadow:inset 0 1px 0 var(--hero-glass-shine),  0 10px 28px var(--hero-glass-shadow);-webkit-backdrop-filter:blur(10px)saturate(140%);backdrop-filter:blur(10px)saturate(140%);border-radius:16px;margin-inline:-.875rem;padding:.875rem}}.hero{--hero-glass-bg:#f6f4fb8c;--hero-glass-border:#ffffffb3;--hero-glass-shine:#fffc;--hero-glass-shadow:#3020601a}:root[data-theme=dark] .hero{--hero-glass-bg:#1b182573;--hero-glass-border:#ffffff14;--hero-glass-shine:#ffffff0f;--hero-glass-shadow:#0000004d}.hero__name{margin-bottom:var(--space-xs)}.terminal{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.terminal__prompt{margin-right:.35em}.hero__role{color:var(--color-role);margin-bottom:var(--space-md);min-height:1.6em;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.25rem;font-weight:400}@media (width<=640px){.hero__role{font-size:1.05rem}}.hero__role-caret{vertical-align:-.1em;background-color:var(--color-name-2);width:.6em;height:2px;margin-left:2px;animation:1s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.hero__role-caret{animation:none}}.hero__tagline{max-width:60ch;color:var(--color-text-muted);margin-bottom:var(--space-lg);font-size:1.0625rem}.hero__social{align-items:center;gap:var(--space-md);display:flex}.social{color:var(--color-text-muted);justify-content:center;align-items:center;padding:6px;transition:color .18s,transform .18s;display:inline-flex}.social:hover{color:var(--color-text);transform:translateY(-3px)}.social.is-disabled{opacity:.35;cursor:not-allowed}.social.is-disabled:hover{color:var(--color-text-muted);transform:none}@media (prefers-reduced-motion:reduce){.social,.social:hover{transform:none}}.term{--term-bar:#3a3a3c;--term-bg:#1c1c1e;--term-text:#e6e6e6;--term-muted:#9a9a9e;--term-accent:#b9a6f5;border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #0f172a29,0 10px 24px #0f172a38,0 30px 60px #0f172a33}.term__bar{background-color:var(--term-bar);align-items:center;gap:8px;padding:10px 14px;display:flex;position:relative}.term__light{border-radius:50%;width:12px;height:12px;box-shadow:inset 0 0 0 .5px #0003}.term__light--red{background-color:#ff5f57}.term__light--yellow{background-color:#febc2e}.term__light--green{background-color:#28c840}.term__title{color:#d6d6d6;white-space:nowrap;font-size:.8125rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.term__screen{padding:var(--space-md);background-color:var(--term-bg);min-height:410px;color:var(--term-text);white-space:pre-wrap;word-break:break-word;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875rem;line-height:1.7}.term__line--muted{color:var(--term-muted)}.term__line--prompt{color:var(--term-text)}.term__line--out{color:var(--term-accent);font-weight:600}.term__caret{vertical-align:text-bottom;background-color:var(--term-text);width:8px;height:1.05em;margin-left:2px;animation:1s step-end infinite term-blink;display:inline-block}@keyframes term-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.term__caret{animation:none}}@media (width<=560px){.term__title{display:none}.term__screen{font-size:.8125rem}}.card{--win-bg:#fdfcff;--win-bar:#efebf7;--win-text:#1b1825;--win-muted:#625d72;--win-chip:#ebe7f4;--win-shadow:#3020601f;background-color:var(--win-bg);height:100%;color:var(--win-text);border-radius:var(--radius);box-shadow:0 1px 2px var(--win-shadow), 0 6px 14px var(--win-shadow), 0 18px 40px var(--win-shadow);flex-direction:column;transition:transform .22s,box-shadow .22s;display:flex;overflow:hidden}.card:hover{box-shadow:0 2px 4px var(--win-shadow), 0 12px 26px var(--win-shadow), 0 30px 64px var(--win-shadow);transform:translateY(-3px)}:root[data-theme=dark] .card{--win-bg:#262331;--win-bar:#1f1c29;--win-text:#e8e6ef;--win-muted:#a7a3b4;--win-chip:#35313f;--win-shadow:#00000059}.card__bar{background-color:var(--win-bar);align-items:center;gap:7px;padding:11px 14px;display:flex}.card__light{border-radius:50%;width:11px;height:11px;box-shadow:inset 0 0 0 .5px #0000001f}.card__light--red{background-color:#ff5f57}.card__light--yellow{background-color:#febc2e}.card__light--green{background-color:#28c840}.card__body{padding:var(--space-md);flex-direction:column;flex:1;display:flex}.card__title{margin-bottom:var(--space-xs);letter-spacing:-.2px;color:var(--win-text)}.card__description{color:var(--win-muted);margin-bottom:var(--space-md);font-size:.9375rem}.card__tech{margin-bottom:var(--space-md);flex-wrap:wrap;gap:6px;display:flex}.card__tech-item{color:var(--win-muted);background-color:var(--win-chip);border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:500}.card__links{gap:var(--space-xs);margin-top:auto;display:flex}.card__link{color:var(--win-text);background-color:var(--win-chip);border-radius:999px;padding:6px 14px;font-size:.875rem;font-weight:600;transition:background-color .15s,color .15s}.card__link:hover{color:var(--win-bg);background-color:var(--win-text);text-decoration:none}@media (prefers-reduced-motion:reduce){.card,.card:hover{transition:box-shadow .22s;transform:none}}.projects__grid{gap:var(--space-md);grid-template-columns:1fr;display:grid}@media (width>=700px){.projects__grid{grid-template-columns:repeat(2,1fr)}}.experience{height:300dvh;padding-block:0}.experience__pin{height:100dvh;padding-block:var(--space-lg);flex-direction:column;justify-content:center;display:flex;position:sticky;top:0}.map{height:min(560px,68dvh);position:relative}.map__path{will-change:transform, opacity;backface-visibility:hidden;width:100%;height:100%;position:absolute;inset:0;transform:translateZ(0)}.map__road{fill:none;stroke:var(--color-surface);stroke-width:16px;stroke-linecap:round}.map__lane{fill:none;stroke:var(--color-terminal);stroke-width:2px;stroke-linecap:round;opacity:.8}.map__stops{list-style:none;position:absolute;inset:0}.stop{align-items:center;gap:var(--space-sm);will-change:transform, opacity;max-width:300px;display:flex;position:absolute}.stop--left{text-align:right;flex-direction:row-reverse;transform:translate(calc(22px - 100%),-50%)}.stop--right{transform:translate(-22px,-50%)}.stop__node{width:44px;height:44px;color:var(--color-on-terminal);background-color:var(--color-terminal);box-shadow:0 0 0 6px var(--color-bg), var(--shadow-card);will-change:transform;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex;transform:translateZ(0)}.stop__card{min-width:0}.stop__kind{text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);margin-bottom:2px;font-size:.6875rem;font-weight:700;display:inline-block}.stop__title{letter-spacing:-.2px;font-size:1rem;font-weight:600}.stop__org{color:var(--color-text);font-size:.9375rem}.stop__period{color:var(--color-text-muted);margin-top:2px;font-size:.8125rem}@media (width<=760px){.map{height:min(520px,66dvh)}.stop{max-width:calc(100vw - var(--space-md) * 2 - 24px);gap:var(--space-xs)}.stop--right,.stop--left{text-align:left;flex-direction:row;transform:translate(-19px,-50%)}.stop__node{width:38px;height:38px;box-shadow:0 0 0 5px var(--color-bg), var(--shadow-card);font-size:.875rem}.stop__title{font-size:.9375rem}.stop__org{font-size:.875rem}.stop__period{font-size:.75rem}.map__road{stroke-width:13px}}@media (prefers-reduced-motion:reduce){.experience{height:auto}.experience__pin{height:auto;position:static}}.scroll-hint{margin:calc(var(--space-lg) * -1 + 6px) 0 var(--space-md);letter-spacing:1.4px;text-transform:lowercase;color:var(--color-text-muted);opacity:.75;pointer-events:none;align-items:center;gap:8px;font-size:.6875rem;font-weight:500;display:flex}.scroll-hint__chevron{animation:2.4s cubic-bezier(.4,0,.2,1) infinite hint-drift}@keyframes hint-drift{0%,to{opacity:.5;transform:translateY(-1px)}50%{opacity:1;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.scroll-hint__chevron{animation:none}.scroll-hint{display:none}}.page-end{opacity:.18;pointer-events:none;height:clamp(140px,26vh,260px);-webkit-mask-image:linear-gradient(#0000 0%,#000 65%);mask-image:linear-gradient(#0000 0%,#000 65%)}.statusbar{border-top:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem}.statusbar__inner{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:10px var(--space-md);display:flex}.statusbar__left{align-items:center;gap:var(--space-md);display:flex}.statusbar__item{align-items:center;gap:var(--space-xs);display:flex}.statusbar__time{font-variant-numeric:tabular-nums}.statusbar__right{white-space:nowrap}@media (width<=560px){.statusbar__rights{display:none}}
