html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:root{color-scheme:light;--bg:#fff;--bg-sunken:linear-gradient(180deg,#fff,#fafafa);--bg-footer:linear-gradient(90deg,#f4f4f5,#fff);--surface:#fff;--bar-bg:linear-gradient(180deg,#f4f4f5,#e4e4e7);--pill-bg:linear-gradient(180deg,#fff,#eeeef0);--pill-bg-hover:linear-gradient(180deg,#f7f7f8,#e4e4e7);--solid-bg:#171717;--solid-bg-hover:#000;--chrome-bg:#ffffffd9;--panel-bg:#fffffff7;--stripe:repeating-linear-gradient(135deg,#fafafa,#fafafa 10px,#f1f1f2 10px,#f1f1f2 20px);--ink:#171717;--ink-muted:#4b4b52;--ink-faint:#71717a;--ink-on-solid:#fff;--ink-nav-hover:#6b7280;--line:#1717171a;--line-strong:#17171726;--line-soft:#17171714;--graph-line:#1717172e;--graph-dot:#a1a1aa;--wash:#17171712;--focus-ring:#171717}html[data-theme=dark]{color-scheme:dark;--bg:#0c0c0d;--bg-sunken:#0c0c0d;--bg-footer:#0c0c0d;--surface:#16161a;--bar-bg:linear-gradient(180deg,#1e1e24,#15151a);--pill-bg:linear-gradient(180deg,#1e1e24,#15151a);--pill-bg-hover:linear-gradient(180deg,#26262e,#1b1b21);--solid-bg:#f4f4f5;--solid-bg-hover:#fff;--chrome-bg:#0c0c0dd9;--panel-bg:#0c0c0df7;--stripe:repeating-linear-gradient(135deg,#141418,#141418 10px,#1c1c21 10px,#1c1c21 20px);--ink:#f4f4f5;--ink-muted:#a9a9b2;--ink-faint:#8b8b92;--ink-on-solid:#0c0c0d;--ink-nav-hover:#a1a1aa;--line:#ffffff1f;--line-strong:#ffffff24;--line-soft:#ffffff1a;--graph-line:#ffffff38;--graph-dot:#a1a1aa;--wash:#ffffff1a;--focus-ring:#f4f4f5}@media (prefers-reduced-transparency:reduce){.project-modal::backdrop{backdrop-filter:none;background:#000c}}@media (prefers-contrast:more){:root{--chrome-bg:#fff;--panel-bg:#fff;--ink-faint:#4b4b52;--line:#17171757;--line-strong:#17171780;--line-soft:#17171747;--wash:#17171729;--graph-line:#17171773}html[data-theme=dark]{--chrome-bg:#0c0c0d;--panel-bg:#0c0c0d;--ink-faint:#c9c9d1;--line:#ffffff61;--line-strong:#ffffff8c;--line-soft:#ffffff4d;--wash:#ffffff38;--graph-line:#ffffff80}header{backdrop-filter:none}}body{background:var(--bg);margin:0}::selection{background:var(--ink);color:var(--bg)}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}[data-s=page]{background:var(--bg-sunken);border-top-color:var(--line-soft)}[data-s=card]{background:var(--surface);border-color:var(--line);color:var(--ink)}[data-s=pill]{background:var(--pill-bg);border-color:var(--line-strong);color:var(--ink)}[data-s=solid]{background:var(--solid-bg);color:var(--ink-on-solid)}[data-s=pill] [stroke],[data-s=solid] [stroke]{stroke:currentColor}[data-s=pill] svg[fill]:not([fill=none]),[data-s=pill] circle[fill],[data-s=pill] path[fill]:not([fill=none]),[data-s=solid] svg[fill]:not([fill=none]),[data-s=solid] circle[fill],[data-s=solid] path[fill]:not([fill=none]){fill:currentColor}[data-m=graph-lines] g{stroke:var(--graph-line)}.card-arrow [stroke]{stroke:var(--ink-faint)}[data-m=cta-panel]{--ink:#f4f4f5;--ink-muted:#b8b8c0;--ink-faint:#8b8b92;border-color:var(--line)}@media (width<=900px){[data-m=hero]{grid-template-columns:1fr!important;gap:34px!important;padding-top:44px!important}[data-m=bar]{gap:12px!important;padding-top:14px!important;padding-bottom:14px!important}[data-m=nav]{gap:10px!important}[data-m=nav-links]{display:none!important}[data-m=menu-btn]{order:9!important;display:flex!important}[data-mm=tap]{width:44px!important;height:44px!important}[data-m=graph]{aspect-ratio:auto!important;flex-wrap:wrap!important;justify-content:center!important;gap:22px 14px!important;max-width:none!important;display:flex!important;position:static!important}[data-m=graph-lines],[data-m=hub]{display:none!important}[data-m=node]{width:84px!important;position:static!important;top:auto!important;left:auto!important;transform:none!important}}@media (width<=520px){[data-m=brand]{font-size:12px!important}[data-m=cta]{justify-content:center!important;width:100%!important}[data-m=node]{width:74px!important}}html[data-js] [data-anim]{opacity:0}html[data-js] [data-anim].is-in{animation:.6s cubic-bezier(.22,.61,.36,1) both fadeUp;animation-delay:calc(var(--i,0) * 70ms)}@media (prefers-reduced-motion:reduce){html[data-js] [data-anim]{opacity:1}html[data-js] [data-anim].is-in{animation:none}}[data-m=nav-links] [data-nav-link]{position:relative}[data-m=nav-links] [data-nav-link]:after{content:"";transform-origin:0;background:currentColor;border-radius:2px;height:2px;transition:transform .3s cubic-bezier(.22,.61,.36,1);position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}[data-m=nav-links] [data-nav-link][aria-current=true]:after{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){[data-m=nav-links] [data-nav-link]:after{transition:none}}@keyframes themeReveal{0%{clip-path:circle(0 at var(--vt-x,50%) var(--vt-y,0))}to{clip-path:circle(var(--vt-r,150vmax) at var(--vt-x,50%) var(--vt-y,0))}}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal}::view-transition-old(root){animation:none}::view-transition-new(root){animation:.5s cubic-bezier(.22,.61,.36,1) themeReveal}html[data-theme-swap] [data-theme-root]{transition:none!important}@media (prefers-reduced-motion:reduce){::view-transition-new(root){animation:none}}[data-m=marquee]{--marquee-band:#171717;--marquee-ink:#fff}html[data-theme=dark] [data-m=marquee]{--marquee-band:#f4f4f5;--marquee-ink:#0c0c0d}.nav-link{color:var(--ink);text-decoration:none}.nav-link:hover{color:var(--ink-nav-hover)}.pill{border:1px solid var(--line-strong)}.pill:hover{background:var(--pill-bg-hover)}.solid:hover{background:var(--solid-bg-hover)}.solid-cta{box-shadow:0 1px 2px #00000026}.solid-cta:hover{box-shadow:0 4px 14px #00000040}.cta-light{color:#171717;background:#f4f4f5}.cta-light:hover{background:#fff;transform:translateY(-2px)}.hv-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px -20px #0000004d}.hv-lift:hover{transform:translateY(-2px)}.hv-node:hover{--ms:1.12}.hv-top:hover{background:var(--pill-bg-hover)}.back-to-top{z-index:40;background:var(--bar-bg);border:1px solid var(--line);opacity:0;visibility:hidden;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .28s,transform .28s cubic-bezier(.22,.61,.36,1),visibility .28s,background .2s;display:flex;position:fixed;bottom:clamp(16px,3vw,28px);right:clamp(16px,3vw,28px);transform:translateY(10px);box-shadow:0 8px 20px -8px #00000059}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}html[data-theme=dark] .back-to-top{box-shadow:0 8px 20px -8px #000000b3}@media (prefers-reduced-motion:reduce){.back-to-top{transition:none;transform:none}}.hero-carousel{touch-action:pan-y}.hero-slide{transition:opacity .7s}.hero-carousel.is-dragging .hero-slide{transition:none}.hero-carousel.is-dragging{cursor:grabbing}.hero-slide-caption{background:linear-gradient(#0000,#0000008c);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}.hero-slide-label{color:#fff;text-shadow:0 1px 3px #00000080;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.hero-controls{align-items:center;gap:12px;display:flex}.hero-toggle{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:background .2s;display:flex}.hero-toggle:hover{background:#ffffff61}.hero-toggle:focus-visible{outline-offset:2px;outline-color:#fff}.hero-dots{gap:7px;display:flex}.hero-dot{cursor:pointer;background:#ffffff73;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .2s,transform .2s}.hero-dot:hover{background:#ffffffbf}.hero-dot[aria-current=true]{background:#fff;transform:scale(1.25)}@media (prefers-reduced-motion:reduce){.hero-slide{transition:none}}.project-shot img{transition:transform .45s cubic-bezier(.22,.61,.36,1)}.hv-card:hover .project-shot img{transform:scale(1.05)}@media (prefers-reduced-motion:reduce){.project-shot img{transition:none}.hv-card:hover .project-shot img{transform:none}}.project-modal{border:1px solid var(--line);background:var(--surface);width:min(560px,92vw);max-height:85vh;color:var(--ink);border-radius:20px;padding:0;overflow:visible;box-shadow:0 30px 80px -20px #00000073}.project-modal::backdrop{backdrop-filter:blur(3px);background:#0000008c}.project-modal{transform-origin:var(--origin,50% 50%)}.project-modal[open]{animation:.24s cubic-bezier(.22,.61,.36,1) modalIn}.project-modal[open]::backdrop{animation:.24s ease-out backdropIn}.project-modal.is-closing{animation:.2s cubic-bezier(.64,0,.78,.39) modalOut}.project-modal.is-closing::backdrop{animation:.2s ease-in backdropOut}@keyframes modalIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}@keyframes modalOut{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.88)}}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes backdropOut{0%{opacity:1}to{opacity:0}}.project-modal-inner{border-radius:20px;max-height:85vh;padding:clamp(22px,3vw,30px);overflow-y:auto}.project-modal-rule{background:var(--ink);opacity:.25;width:48px;height:2px;margin-bottom:20px}.project-close{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:background .2s;display:flex;position:absolute;top:14px;right:16px}.project-close [stroke]{stroke:var(--ink)}.project-close:hover{background:var(--wash)}.project-open:hover{opacity:.6}@media (prefers-reduced-motion:reduce){.project-modal[open],.project-modal[open]::backdrop,.project-modal.is-closing,.project-modal.is-closing::backdrop{animation:none}}html[data-theme=dark] .tech-chip img[src$=nextjs\.svg],html[data-theme=dark] .tech-chip img[src$=ai\.svg],html[data-theme=dark] .tech-chip img[src$=prisma\.svg]{filter:invert()}h2,[data-i18n=jobsTitle]{letter-spacing:-.01em}[data-i18n=contactLead]{letter-spacing:-.015em}section[id]{scroll-margin-top:calc(var(--header-h,80px) + 6px)}#scroll-progress{transition:background .25s}header:after{content:"";pointer-events:none;opacity:0;background:var(--line-soft);height:1px;transition:opacity .25s;position:absolute;top:100%;left:0;right:0}html[data-scrolled] header:after{opacity:1}@media (prefers-reduced-motion:reduce){header:after{transition:none}}:root{--focus-ring:#171717}html[data-theme=dark]{--focus-ring:#f4f4f5}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.hero-dot:focus-visible{outline-offset:2px;outline-color:#fff}main[tabindex]:focus,main[tabindex]:focus-visible{outline:none}#menu-panel{background:var(--panel-bg)}.menu-panel-row{min-height:0}.menu-panel-inner{flex-direction:column;max-width:1200px;margin:0 auto;padding:8px clamp(20px,4vw,40px) 18px;display:flex}html[data-js] #menu-panel{opacity:0;visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.22,.61,.36,1),opacity .2s,visibility .28s;display:grid;overflow:hidden}html[data-js] #menu-panel.is-open{opacity:1;visibility:visible;grid-template-rows:1fr}@media (prefers-reduced-motion:reduce){html[data-js] #menu-panel{transition:opacity .15s,visibility .15s}}.skip-link{z-index:60;background:var(--solid-bg);color:var(--ink-on-solid);border-radius:0 0 12px 12px;padding:12px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:transform .2s cubic-bezier(.22,.61,.36,1);position:fixed;top:0;left:clamp(20px,4vw,40px);transform:translateY(-120%)}.skip-link:focus-visible{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}.tech-node{--mx:0px;--my:0px;--ms:1;transform:translate(calc(-50% + var(--mx)),calc(-50% + var(--my))) scale(var(--ms));flex-direction:column;align-items:center;gap:8px;transition:transform .28s cubic-bezier(.22,.61,.36,1);display:flex}@media (prefers-reduced-motion:reduce){.tech-node{transition:none}}.tech-icon{object-fit:contain;width:clamp(36px,4.6vw,50px);height:clamp(36px,4.6vw,50px);display:block}.tech-label{color:var(--ink-muted);white-space:nowrap;text-align:center;font-family:JetBrains Mono,monospace;font-size:clamp(9px,1vw,11px)}html[data-theme=dark] .tech-icon[data-icon-invert]{filter:invert()}.edu-group+.edu-group{margin-top:clamp(30px,4.5vw,46px)}.edu-group-label{color:var(--ink-faint);margin:0 0 16px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:400}.edu-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.edu-item{align-items:flex-start;gap:16px;display:flex;position:relative}.edu-item:before{content:"";background:var(--line-strong);border-radius:2px;width:2px;position:absolute;top:44px;bottom:-16px;left:21px}.edu-item:last-child:before{display:none}.edu-badge{border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.edu-card{border:1px solid var(--line);border-radius:14px;flex:1;min-width:0;padding:clamp(14px,2vw,18px) clamp(16px,2.2vw,20px);transition:transform .2s,box-shadow .2s}.edu-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.edu-course{margin:0;font-family:JetBrains Mono,monospace;font-size:clamp(14px,1.8vw,16px);font-weight:700;line-height:1.35}.edu-year{white-space:nowrap;border:1px solid var(--line-strong);border-radius:999px;flex:none;padding:4px 11px;font-family:JetBrains Mono,monospace;font-size:12px}.edu-inst{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:14px;font-weight:500;display:flex}.edu-status{letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--wash);border-radius:999px;padding:3px 9px;font-family:JetBrains Mono,monospace;font-size:11px}.edu-detail{color:var(--ink-muted);margin:10px 0 0;font-size:13.5px;line-height:1.6}@media (width<=520px){.edu-item{gap:12px}.edu-badge{border-radius:11px;width:38px;height:38px}.edu-item:before{top:38px;left:18px}}.nav-link,.pill,.solid,.cta-light,.hero-dot,.project-open,.project-close,.back-to-top{-webkit-tap-highlight-color:transparent}.pill:active,.solid:active,.hero-dot:active,.project-open:active,.project-close:active,.back-to-top:active{transition:transform .1s ease-out;transform:scale(.97)}.cta-light:active,.hv-lift:active,a.hv-card:active{transition:transform .1s ease-out;transform:translateY(0)scale(.98)}@media (prefers-reduced-motion:reduce){.pill:active,.solid:active,.cta-light:active,.hero-dot:active,.project-open:active,.project-close:active,.back-to-top:active,.hv-lift:active,a.hv-card:active{opacity:.75;transition:none;transform:none}}
