@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e546cf32c9d4702c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/d76fe899475ae4d7-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8048a25e80cc4179-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/87bc17f7c8b98e48-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/29b98dbfba401fa9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/e546cf32c9d4702c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/d76fe899475ae4d7-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8048a25e80cc4179-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/87bc17f7c8b98e48-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/29b98dbfba401fa9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Unbounded;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/e546cf32c9d4702c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Unbounded;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/d76fe899475ae4d7-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/8048a25e80cc4179-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Unbounded;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/87bc17f7c8b98e48-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Unbounded;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/29b98dbfba401fa9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Unbounded Fallback;src:local("Arial");ascent-override:73.93%;descent-override:18.20%;line-gap-override:0.00%;size-adjust:134.59%}.__className_e844a4{font-family:Unbounded,Unbounded Fallback;font-style:normal}.__variable_e844a4{--font-unbounded:"Unbounded","Unbounded Fallback"}@font-face{font-family:Figtree;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Figtree;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Figtree Fallback;src:local("Arial");ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.00%;size-adjust:100.72%}.__className_760b88{font-family:Figtree,Figtree Fallback;font-style:normal}.__variable_760b88{--font-figtree:"Figtree","Figtree Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}img,svg{display:block}button{cursor:pointer;font:inherit}a{color:inherit;text-decoration:none}p{max-width:65ch}:root{--bg:oklch(0.07 0 0);--surface:oklch(0.11 0.008 20);--surface-2:oklch(0.16 0.008 20);--border:oklch(0.21 0.008 20);--ink:oklch(0.95 0 0);--ink-2:oklch(0.84 0 0);--muted:oklch(0.55 0 0);--primary:oklch(0.60 0.155 20);--primary-dim:oklch(0.50 0.130 20);--accent:oklch(0.68 0.090 200);--accent-bg:oklch(0.68 0.090 200/0.10);--accent-bd:oklch(0.68 0.090 200/0.25);--font-d:var(--font-unbounded),sans-serif;--font-b:var(--font-figtree),sans-serif;--r:0.375rem;--rl:0.75rem;--ease-out:cubic-bezier(0.16,1,0.3,1)}html{scroll-behavior:smooth;color-scheme:dark}body{background:var(--bg);color:var(--ink);font-family:var(--font-b);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(circle,oklch(.22 .005 20) 1px,transparent 0);background-size:44px 44px;pointer-events:none;z-index:0;opacity:.35}.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 clamp(1.25rem,5vw,3.5rem)}nav#nav{position:fixed;inset:0 0 auto;z-index:100;padding:1.125rem 0;border-bottom:1px solid transparent;transition:background .35s,border-color .35s,-webkit-backdrop-filter .35s;transition:background .35s,border-color .35s,backdrop-filter .35s;transition:background .35s,border-color .35s,backdrop-filter .35s,-webkit-backdrop-filter .35s}nav#nav.scrolled{background:oklch(.07 0 0/.82);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-color:var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.nav-logo{font-family:var(--font-d);font-size:1rem;font-weight:900;color:var(--primary);letter-spacing:-.02em;flex-shrink:0}.nav-links{display:flex;gap:2.25rem;list-style:none}.nav-links a{font-size:.875rem;font-weight:500;color:var(--muted);transition:color .2s}.nav-links a:hover{color:var(--ink)}.nav-right{display:flex;align-items:center;gap:.875rem;flex-shrink:0}.lang-toggle{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:100px;padding:3px;gap:2px}.lang-btn{font-size:.6875rem;font-weight:700;letter-spacing:.04em;background:transparent;border:none;color:var(--muted);padding:.2rem .625rem;border-radius:100px;transition:background .2s,color .2s}.lang-btn.active{background:var(--primary);color:#fff}.nav-cta{font-size:.8125rem;font-weight:600;color:var(--ink);border:1px solid var(--border);padding:.4375rem 1.125rem;border-radius:var(--r);transition:background .2s,border-color .2s,color .2s;display:inline-block}.nav-cta:hover{background:var(--primary);border-color:var(--primary);color:#fff}#hero{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(3rem,7vw,5.5rem);padding-top:80px}.hero-meta-line{font-size:.8125rem;font-weight:500;color:var(--muted);margin-bottom:1.75rem;display:flex;align-items:center;gap:.75rem}.hero-meta-line:before{content:"";display:inline-block;width:28px;height:1px;background:var(--primary);flex-shrink:0}.hero-name{font-family:var(--font-d);font-size:clamp(3rem,11.5vw,7.25rem);font-weight:900;letter-spacing:-.04em;line-height:.9;text-transform:uppercase;margin-bottom:clamp(2rem,5vw,3.5rem)}.hero-name span{display:block}.hero-name .hl{color:var(--primary)}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}.hero-tagline{font-size:clamp(1.0625rem,2.25vw,1.3125rem);font-weight:300;font-style:italic;color:var(--ink-2);margin-bottom:.4rem;max-width:42ch}.hero-location{font-size:.8125rem;color:var(--muted);font-weight:500}.hero-actions{display:flex;gap:.625rem;flex-shrink:0}.btn{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-b);font-size:.9375rem;font-weight:600;padding:.6875rem 1.625rem;border-radius:var(--r);border:1px solid transparent;transition:background .2s,border-color .2s,color .2s,transform .15s}.btn-fill{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-fill:hover{background:var(--primary-dim);border-color:var(--primary-dim);transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--ink);border-color:var(--border)}.btn-outline:hover{border-color:oklch(.45 0 0);transform:translateY(-1px)}section{position:relative;z-index:1;padding:clamp(4.5rem,10vw,8rem) 0}.section-head{display:flex;align-items:baseline;border-bottom:1px solid var(--border);padding-bottom:1.125rem;margin-bottom:clamp(2.5rem,5vw,4rem)}.section-title{font-family:var(--font-d);font-size:clamp(1.25rem,3vw,1.75rem);font-weight:800;letter-spacing:-.03em}.about-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(2.5rem,7vw,6rem);gap:clamp(2.5rem,7vw,6rem);align-items:start}.about-avatar{width:72px;height:72px;border-radius:50%;border:2px solid var(--border);object-fit:cover;margin-bottom:1.625rem;filter:grayscale(15%)}.about-body{font-size:1.0625rem;line-height:1.75;color:var(--ink-2);max-width:52ch}.about-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}.stat{background:var(--surface);padding:1.5rem 1.25rem}.stat-val{font-family:var(--font-d);font-size:2rem;font-weight:800;letter-spacing:-.04em;color:var(--ink);line-height:1;margin-bottom:.3rem}.stat-lbl{font-size:.8125rem;font-weight:500;color:var(--muted)}.skill-row{display:grid;grid-template-columns:180px 1fr;grid-gap:2rem;gap:2rem;padding:1.125rem 0;border-bottom:1px solid var(--border);align-items:baseline}.skill-row:first-child{border-top:none}.skill-cat{font-size:.75rem;font-weight:700;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.skill-items{font-size:.9375rem;color:var(--ink-2);line-height:1.7}.timeline{border-top:1px solid var(--border)}.tl-item{display:grid;grid-template-columns:148px 1fr;grid-gap:2rem;gap:2rem;padding:2.25rem 0;border-bottom:1px solid var(--border)}.tl-item:last-child{border-bottom:none}.tl-left{padding-top:.2rem}.tl-period{font-size:.75rem;font-weight:600;color:var(--muted);line-height:1.55;letter-spacing:.01em}.tl-dot{width:6px;height:6px;background:var(--primary);border-radius:50%;margin-top:.875rem}.tl-company{font-family:var(--font-d);font-size:1.0625rem;font-weight:700;letter-spacing:-.025em}.tl-company,.tl-role{margin-bottom:.125rem}.tl-role{font-size:.875rem;font-weight:600;color:var(--primary)}.tl-loc{font-size:.8125rem;color:var(--muted);margin-bottom:1.125rem}.tl-highlights{list-style:none;display:grid;grid-gap:.4375rem;gap:.4375rem}.tl-highlights li{font-size:.9375rem;color:var(--ink-2);padding-left:1.125rem;position:relative;line-height:1.55}.tl-highlights li:before{content:"–";position:absolute;left:0;color:var(--primary);font-weight:600}.tl-stack{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:1.125rem}.badge{font-size:.6875rem;font-weight:700;letter-spacing:.02em;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-bd);padding:.1875rem .625rem;border-radius:100px}.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}.proj-card{background:var(--surface);padding:2rem 1.875rem;transition:background .2s;text-decoration:none;color:inherit;display:block}.proj-card:hover{background:var(--surface-2)}.proj-card.span-2{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;grid-gap:2.5rem;gap:2.5rem;align-items:center}.proj-label{font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary);margin-bottom:.625rem}.proj-name{font-family:var(--font-d);font-size:1.1875rem;font-weight:700;letter-spacing:-.025em;line-height:1.2;margin-bottom:.75rem}.proj-desc{font-size:.9375rem;color:oklch(.75 0 0);line-height:1.6;margin-bottom:1.5rem;max-width:50ch}.proj-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem}.proj-lang{font-size:.8125rem;color:var(--muted);font-weight:500}.proj-link{font-size:.8125rem;font-weight:700;color:var(--primary);letter-spacing:.01em;transition:letter-spacing .2s}.proj-card:hover .proj-link{letter-spacing:.03em}.code-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:1.25rem 1.5rem;font-family:Courier New,monospace;font-size:.7375rem;line-height:1.8;overflow:hidden;color:var(--muted)}.cb-line{display:flex;gap:1.25rem}.cb-n{color:oklch(.32 0 0);min-width:1.25rem;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kw{color:var(--primary)}.fn{color:var(--accent)}.str{color:oklch(.7 .12 145)}.cm{color:oklch(.4 0 0)}#contact{border-top:1px solid var(--border)}.contact-grid{display:grid;grid-template-columns:1fr auto;grid-gap:4rem;gap:4rem;align-items:end}.contact-heading{font-family:var(--font-d);font-size:clamp(2rem,5.5vw,3.75rem);font-weight:800;letter-spacing:-.04em;line-height:1;margin-bottom:1rem;max-width:16ch;text-wrap:balance}.contact-body{font-size:1.0625rem;color:oklch(.72 0 0);line-height:1.65;max-width:42ch;margin-bottom:2rem}.contact-links{display:flex;flex-direction:column;align-items:flex-end;gap:1.25rem}.c-link{font-size:.875rem;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:.625rem;transition:color .2s}.c-link:hover{color:var(--ink)}.c-link svg{width:15px;height:15px;flex-shrink:0}footer{position:relative;z-index:1;padding:1.75rem 0;border-top:1px solid var(--border)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.footer-text{font-size:.8125rem;color:var(--muted)}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.btn,nav#nav{transition:none}}@media (max-width:860px){.about-grid{grid-template-columns:1fr}.about-stats{max-width:420px}.tl-item{grid-template-columns:1fr;gap:.5rem}.tl-dot{display:none}.skill-row{grid-template-columns:1fr;gap:.3rem}.proj-card.span-2{grid-column:span 1;grid-template-columns:1fr}.code-block{display:none}.contact-grid{grid-template-columns:1fr;gap:2.5rem}.contact-links{align-items:flex-start}}@media (max-width:600px){.nav-links{display:none}.proj-grid{grid-template-columns:1fr}.hero-bottom{flex-direction:column;align-items:flex-start}.hero-actions{width:100%}.hero-actions .btn{flex:1 1;justify-content:center}.about-stats{grid-template-columns:1fr 1fr}}