@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_49a339{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_49a339{--font-sans:"Space Grotesk","Space Grotesk Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_6d24ac{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_6d24ac{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg:#070b14;--bg-surface:#0d1424;--bg-elevated:#111928;--accent:#10f07a;--accent-dim:rgba(16,240,122,0.15);--accent-border:rgba(16,240,122,0.25);--accent-glow:rgba(16,240,122,0.08);--text:#e8f0fe;--text-muted:#637085;--border:rgba(255,255,255,0.07);--border-hover:rgba(255,255,255,0.14);--nav-height:64px;--max-w:860px;--font-sans:var(--font-sans,"Space Grotesk"),system-ui,sans-serif;--font-mono:var(--font-mono,"JetBrains Mono"),monospace;--ease:cubic-bezier(0.16,1,0.3,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 24px)}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;border:none;background:none;font:inherit}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(rgba(16,240,122,.07) 1px,transparent 0);background-size:28px 28px;pointer-events:none;z-index:0}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:1.5rem}section{position:relative;z-index:1}.reveal{opacity:0;transform:translateY(28px);transition:opacity .65s var(--ease),transform .65s var(--ease)}.reveal.visible{opacity:1;transform:translateY(0)}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-height);display:flex;align-items:center;transition:background .4s ease,border-color .4s ease,-webkit-backdrop-filter .4s ease;transition:background .4s ease,border-color .4s ease,backdrop-filter .4s ease;transition:background .4s ease,border-color .4s ease,backdrop-filter .4s ease,-webkit-backdrop-filter .4s ease;border-bottom:1px solid transparent}.navbar.scrolled{background:rgba(7,11,20,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom-color:var(--border)}.navbar .container{justify-content:space-between}.nav-brand,.navbar .container{display:flex;align-items:center}.nav-brand{gap:.55rem;font-weight:700;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text);transition:color .2s}.nav-brand-icon,.nav-brand:hover{color:var(--accent)}.nav-brand-icon{font-size:1.05rem}.nav-links{display:flex;gap:2rem}.nav-links a{font-size:.82rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);position:relative;transition:color .2s}.nav-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1.5px;background:var(--accent);transition:width .25s var(--ease)}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after{width:100%}.nav-hamburger{display:none;flex-direction:column;gap:5px;padding:6px;color:var(--text)}.nav-hamburger svg{display:block}.mobile-menu{display:none;position:fixed;inset:0;z-index:99;background:rgba(7,11,20,.97);align-items:center;justify-content:center;animation:fadeIn .2s ease}.mobile-menu.open{display:flex}.mobile-menu nav{display:flex;flex-direction:column;gap:2.5rem;text-align:center}.mobile-menu nav a{font-size:2rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text);transition:color .2s}.mobile-menu nav a:hover{color:var(--accent)}@media (max-width:640px){.nav-links{display:none}.nav-hamburger{display:flex}}.hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(7,11,20,.72) 0,rgba(7,11,20,.55) 50%,rgba(7,11,20,.88)),url(/img/intro-bg.jpg) no-repeat 50% /cover}.hero-inner{display:flex;flex-direction:column;gap:2rem;padding-block:calc(var(--nav-height) + 3rem) 4rem}.hero-label{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:.75rem}.hero-label:before{content:"";display:block;width:2rem;height:1.5px;background:var(--accent)}.hero-name{font-size:clamp(3.2rem,9vw,7.5rem);font-weight:700;line-height:.92;letter-spacing:-.03em;background:linear-gradient(150deg,#ffffff 35%,rgba(255,255,255,.55));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-role{font-size:clamp(1rem,2.5vw,1.25rem);color:var(--text-muted);max-width:480px;line-height:1.5}.hero-role a{color:var(--accent);font-weight:500;transition:opacity .2s}.hero-role a:hover{opacity:.75}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-sans);font-size:.83rem;font-weight:600;letter-spacing:.06em;padding:.65rem 1.3rem;border-radius:6px;transition:all .2s var(--ease)}.btn-primary{background:var(--accent);color:#070b14}.btn-primary:hover{background:#ffffff;transform:translateY(-1px);box-shadow:0 0 24px rgba(16,240,122,.35)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border-hover)}.btn-ghost:hover{color:var(--text);border-color:var(--accent-border);background:var(--accent-dim);transform:translateY(-1px)}.hero-scroll{display:flex;align-items:center;gap:.6rem;font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.08em;margin-top:1rem}.hero-scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,var(--accent),transparent);animation:scrollLine 2s ease-in-out infinite}@keyframes scrollLine{0%,to{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.6);transform-origin:top}}.section{padding-block:100px}@media (max-width:640px){.section{padding-block:72px}}.section-tag{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}.section-title{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;letter-spacing:-.02em;color:var(--text);margin-bottom:3rem}.about-text{display:flex;flex-direction:column;gap:1.25rem;max-width:660px}.about-text p{font-size:1.1rem;color:var(--text-muted);line-height:1.8}.about-text .highlight{color:var(--text);font-weight:500}.about-status{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:999px;padding:.35rem .9rem;margin-top:.5rem}.about-status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 0 rgba(16,240,122,.4)}50%{opacity:.7;box-shadow:0 0 0 6px rgba(16,240,122,0)}}.project-list{display:flex;flex-direction:column}.project-item{display:grid;grid-template-columns:56px 1fr;grid-gap:0 1.75rem;gap:0 1.75rem;padding-block:2rem;border-top:1px solid var(--border);position:relative;transition:border-color .2s;text-decoration:none;color:inherit}.project-item:last-child{border-bottom:1px solid var(--border)}.project-item:before{content:"";position:absolute;left:-1.5rem;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);transform:scaleY(0);transition:transform .35s var(--ease)}.project-item:hover:before{transform:scaleY(1)}.project-num{font-family:var(--font-mono);font-size:.72rem;font-weight:500;color:var(--accent);letter-spacing:.04em;padding-top:.25rem;line-height:1}.project-num span{display:block;font-size:.6rem;color:var(--text-muted);margin-top:2px}.project-body{display:flex;flex-direction:column;gap:.45rem}.project-title{font-size:1.1rem;font-weight:700;color:var(--text);letter-spacing:-.01em;display:flex;align-items:center;gap:.5rem;transition:color .2s}.project-item:hover .project-title{color:var(--accent)}.project-arrow{font-size:.85rem;opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .25s var(--ease)}.project-item:hover .project-arrow{opacity:1;transform:translateX(0)}.project-desc{font-size:.9rem;color:var(--text-muted);line-height:1.6;max-width:600px}@media (max-width:480px){.project-item{grid-template-columns:42px 1fr;gap:0 1rem}}.resume-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.resume-frame{border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--bg-surface)}.resume-frame iframe{width:100%;height:640px;display:block;border:none}@media (max-width:640px){.resume-frame iframe{height:420px}}.exp-card{border:1px solid var(--border);border-radius:12px;padding:2.5rem;background:var(--bg-surface);display:flex;flex-direction:column;gap:2.5rem}.exp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.exp-role{font-size:1.35rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.exp-subrole{font-size:.78rem;color:var(--accent);letter-spacing:.06em;margin-top:.3rem}.exp-company,.exp-subrole{font-family:var(--font-mono)}.exp-company{font-size:.75rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border-hover);padding:.35rem .8rem;border-radius:999px;white-space:nowrap;align-self:flex-start}.exp-summary{font-size:.98rem;color:var(--text-muted);line-height:1.8;border-left:2px solid var(--accent-border);padding-left:1.25rem}.exp-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.5rem;gap:2.5rem}@media (max-width:720px){.exp-grid{grid-template-columns:1fr;gap:2rem}.exp-card{padding:1.75rem}}.exp-col-title{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1.25rem}.exp-list{display:flex;flex-direction:column;gap:.85rem}.exp-list li{display:flex;gap:.6rem;font-size:.88rem;color:var(--text-muted);line-height:1.6}.exp-bullet{flex-shrink:0;margin-top:.35rem;font-size:.6rem;color:var(--border-hover)}.exp-list--accent .exp-bullet{color:var(--accent)}.exp-list--accent li{color:var(--text)}.exp-tech{padding-top:2rem;border-top:1px solid var(--border)}.exp-tech-groups{display:flex;flex-direction:column;gap:1.1rem;margin-top:1.25rem}.exp-tech-group{display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap}.exp-tech-label{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);letter-spacing:.04em;white-space:nowrap;padding-top:.25rem;min-width:210px}.exp-tags{display:flex;flex-wrap:wrap;gap:.45rem}.exp-tag{font-family:var(--font-mono);font-size:.72rem;padding:.25rem .65rem;border-radius:4px;background:var(--accent-glow);border:1px solid var(--accent-border);color:var(--accent);letter-spacing:.02em}@media (max-width:640px){.exp-tech-label{min-width:unset;width:100%}}.footer{padding-block:3rem;border-top:1px solid var(--border);position:relative;z-index:1}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.footer-commit{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);letter-spacing:.04em}.footer-commit a{color:var(--accent);transition:opacity .2s}.footer-commit a:hover{opacity:.7}.footer-copy{font-size:.78rem;color:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}