@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-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:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-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:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-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:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-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:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-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:__Inter_Fallback_f367f3;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_f367f3{font-family:__Inter_f367f3,__Inter_Fallback_f367f3;font-style:normal}.__variable_f367f3{--font-sans:"__Inter_f367f3","__Inter_Fallback_f367f3"}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-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:__IBM_Plex_Mono_595324;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-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:__IBM_Plex_Mono_Fallback_595324;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:__IBM_Plex_Mono_595324,__IBM_Plex_Mono_Fallback_595324;font-style:normal}.__variable_595324{--font-mono:"__IBM_Plex_Mono_595324","__IBM_Plex_Mono_Fallback_595324"}:root{--bg:#fff;--bg-accent:#fff;--surface:#fff;--surface-strong:#fff;--surface-soft:#fff;--text:#111;--muted:#5f5f5f;--muted-strong:#2f2f2f;--line:#d9d9d9;--line-strong:#c7c7c7;--accent:#111;--accent-soft:#fff;--shadow-lg:none;--shadow-md:none;--radius-xl:0;--radius-lg:0;--radius-md:0}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body,html{margin:0;padding:0;min-height:100%;color:var(--text);font-family:var(--font-sans),"Segoe UI",sans-serif;font-size:15px;background:#fff}body{position:relative;overflow-x:hidden}a{color:inherit}img{max-width:100%}.page{position:relative;z-index:1;width:min(1160px,calc(100% - 40px));margin:0 auto;padding:28px 0 88px}.topbar{position:-webkit-sticky;position:sticky;top:18px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:36px;padding:16px 20px;border:1px solid var(--line);border-radius:0;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.brand-block{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.brand{color:var(--text);text-decoration:none;font-size:clamp(1.4rem,2vw,1.85rem);font-weight:700;letter-spacing:-.04em}.brand-subtitle{margin:0;color:var(--muted);font-size:.92rem}.brand-subtitle a{color:var(--muted-strong);-webkit-text-decoration-color:rgba(17,24,39,.24);text-decoration-color:rgba(17,24,39,.24);text-underline-offset:.22em}.topnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.topnav-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border-radius:0;color:var(--muted);text-decoration:none;font-size:.95rem;font-weight:600;transition:transform .18s ease,color .18s ease,background-color .18s ease,box-shadow .18s ease}.topnav-link:hover{color:var(--accent);background:#f6f6f6;box-shadow:inset 0 0 0 1px var(--line);transform:translateY(-1px)}.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,340px);grid-gap:32px;gap:32px;align-items:stretch;padding:26px 0 6px}.hero-main{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:10px 0}.hero-copy{max-width:640px}.hero-kicker{width:-moz-fit-content;width:fit-content;margin:0 0 18px;padding:8px 12px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--muted-strong);font-family:var(--font-mono),monospace;font-size:.76rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.headline{margin:0;color:var(--text);font-size:clamp(1.02rem,1.7vw,1.38rem);line-height:1.55;letter-spacing:-.02em;text-wrap:balance}.social-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:20px}.social-link{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 14px 0 10px;border:0;border-radius:0;background:#fff;box-shadow:none;color:var(--muted-strong);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.social-link:hover{transform:translateY(-2px);background:transparent;box-shadow:none}.social-icon{width:30px;height:30px;border-radius:0;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:0;color:var(--text);font-family:var(--font-mono),monospace;font-size:.78rem;flex:0 0 auto}.social-icon,.social-link__label{font-weight:600;letter-spacing:-.02em}.social-link__label{font-size:.88rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 18px;border-radius:0;border:1px solid transparent;text-decoration:none;font-weight:600;font-size:.92rem;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.btn:hover{transform:translateY(-2px)}.btn.primary{color:#fff;background:#111;box-shadow:none}.hero-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-xl);padding:24px;background:#fff;box-shadow:var(--shadow-lg)}.hero-card__halo{display:none}.profile-photo-wrap{position:relative;width:172px;height:172px;margin:0 auto 20px;padding:6px;border-radius:0;background:#fff;box-shadow:none;border:1px solid var(--line)}.profile-photo{width:100%;height:100%;display:block;object-fit:cover;border-radius:0}.hero-card__body{display:grid;grid-gap:10px;gap:10px}.card-label{margin:0;color:#64748b;font-family:var(--font-mono),monospace;font-size:.74rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.card-value{margin:0;color:var(--text);font-size:1.02rem;font-weight:700;line-height:1.45;letter-spacing:-.02em}.card-meta{margin:0;color:var(--muted);font-size:.92rem}.section{margin-top:76px}#journey,.section{position:relative}.section-head{display:grid;grid-gap:10px;gap:10px;max-width:700px;margin-bottom:24px}.section-head h2,.section>h2{margin:0;color:var(--text);font-size:clamp(1.45rem,2vw,1.9rem);font-weight:700;letter-spacing:-.04em}.section-head p,.section>p{margin:0;color:var(--muted);font-size:1rem;line-height:1.65}.timeline{display:grid;grid-gap:18px;gap:18px;max-width:760px}.timeline-item{display:grid;grid-template-columns:86px minmax(0,1fr);grid-gap:18px;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);-webkit-backdrop-filter:none;backdrop-filter:none;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.timeline-item:hover{transform:translateY(-3px);box-shadow:none;border-color:var(--line-strong)}.timeline-item--plain,.timeline-item--plain:hover{border:0;box-shadow:none;background:transparent}.timeline-logo-wrap{width:72px;height:72px;border-radius:0;display:grid;place-items:center;background:#fff;border:1px solid var(--line);overflow:hidden}.timeline-logo{width:76%;height:76%;object-fit:contain;transition:transform .2s ease}.timeline-item:hover .timeline-logo{transform:scale(1.04)}.project-meta h3,.timeline-content h3{margin:0;color:var(--text);font-size:1.08rem;font-weight:700;letter-spacing:-.03em}.timeline-role{margin:6px 0 0;color:var(--muted-strong);font-size:.9rem;font-weight:600}.timeline-detail{margin:8px 0 0;color:var(--muted);font-size:.94rem;line-height:1.65}.journey-hover-art{position:absolute;right:12px;top:40px;width:240px;border-radius:0;overflow:hidden;border:1px solid var(--line);box-shadow:none;opacity:0;transform:translateY(14px) scale(.98);transition:opacity .26s ease,transform .26s ease;pointer-events:none;z-index:12}.journey-hover-art img{display:block;width:100%;height:auto}#journey:hover .journey-hover-art{opacity:1;transform:translateY(0) scale(1)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:22px;gap:22px}.project-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:0;background:var(--surface-strong);box-shadow:var(--shadow-md);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.project-card:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:none}.project-image-wrap{display:block;overflow:hidden;border-bottom:1px solid var(--line);background:#fff}.project-image{width:100%;aspect-ratio:16/10;display:block;object-fit:cover;transition:transform .32s ease}.project-card:hover .project-image{transform:scale(1.03)}.project-card__body{display:flex;flex:1 1 auto;flex-direction:column;gap:12px;padding:20px 20px 22px}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-year{margin:0;color:#64748b;font-family:var(--font-mono),monospace;font-size:.78rem;font-weight:500}.desc{margin:0;color:var(--muted);font-size:.95rem}.desc,.stack{line-height:1.7}.stack{margin:auto 0 0;color:#475569;font-family:var(--font-mono),monospace;font-size:.8rem}.contact{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:24px 26px;border:1px solid var(--line);border-radius:0;background:#fff;box-shadow:var(--shadow-md)}.contact .section-head{margin-bottom:0}.reveal{opacity:0;transform:translateY(14px);transition:opacity .52s ease,transform .52s ease}.reveal.show{opacity:1;transform:translateY(0)}@media (max-width:1080px){.hero{grid-template-columns:minmax(0,1fr)}.hero-card{max-width:380px}.journey-hover-art{width:210px;top:100px}}@media (max-width:860px){.page{width:min(100% - 28px,760px);padding-bottom:64px}.topbar{position:static;flex-direction:column;align-items:flex-start;gap:16px;border-radius:0}.topnav{width:100%}.section{margin-top:58px}.project-grid{grid-template-columns:1fr}.contact{align-items:flex-start;flex-direction:column}.journey-hover-art{position:static;width:min(100%,260px);margin-top:20px;opacity:1;transform:none;pointer-events:auto}}@media (max-width:560px){.page{width:calc(100% - 22px);padding-top:16px}.topbar{padding:14px}.topnav{gap:6px}.topnav-link{min-height:38px;padding:0 12px;font-size:.9rem}.hero{gap:22px;padding-top:10px}.hero-kicker{margin-bottom:14px}.headline{font-size:1.02rem;line-height:1.72}.social-links{gap:10px}.social-link{width:100%;justify-content:flex-start}.hero-card{padding:18px}.profile-photo-wrap{width:148px;height:148px}.timeline-item{grid-template-columns:1fr;gap:14px}.timeline-logo-wrap{width:64px;height:64px}.contact,.project-card__body{padding-left:18px;padding-right:18px}}