@font-face{font-family:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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_Sans_43f867;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:__IBM_Plex_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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_Sans_43f867;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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_Sans_Fallback_43f867;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_43f867{font-family:__IBM_Plex_Sans_43f867,__IBM_Plex_Sans_Fallback_43f867;font-style:normal}.__variable_43f867{--font-sans:"__IBM_Plex_Sans_43f867","__IBM_Plex_Sans_Fallback_43f867"}@font-face{font-family:__IBM_Plex_Mono_46fe82;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_46fe82;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_46fe82;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_46fe82;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_46fe82;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_46fe82;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_46fe82;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_46fe82;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_46fe82;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_46fe82;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_Fallback_46fe82;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_46fe82{font-family:__IBM_Plex_Mono_46fe82,__IBM_Plex_Mono_Fallback_46fe82;font-style:normal}.__variable_46fe82{--font-mono:"__IBM_Plex_Mono_46fe82","__IBM_Plex_Mono_Fallback_46fe82"}:root,[data-theme=light]{--bg:#fbfaf7;--surface:#fff;--ink:#0f0e0c;--mute:#6b6862;--line:#e8e4dc;--hair:#efebe2;--accent:oklch(0.72 0.14 175);--accent-ink:#0a1816}[data-theme=dark]{--bg:#0f0e0c;--surface:#161410;--ink:#f4f1ea;--mute:#8a867d;--line:#2a2822;--hair:#1f1d18;--accent:oklch(0.80 0.14 175);--accent-ink:#0a1816}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans),system-ui,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}.mono{font-family:var(--font-mono),ui-monospace,monospace}.grid12{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:24px;gap:24px}.label{text-transform:uppercase;color:var(--mute)}.label,.num{font-family:var(--font-mono),ui-monospace,monospace;font-size:11px;letter-spacing:.06em}.num{color:var(--accent)}.rule{border-top:1px solid var(--line);max-width:1360px;margin:0 auto;width:calc(100% - 80px)}.pill{font-family:var(--font-mono),ui-monospace,monospace;font-size:10px;color:var(--mute);background:var(--hair);padding:4px 8px;border-radius:3px;letter-spacing:.02em}.underline-hov{position:relative}.underline-hov:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s}.underline-hov:hover:after{transform:scaleX(1);transform-origin:left}.linkhover{transition:color .2s}.linkhover:hover{color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);font-size:12px;font-family:var(--font-mono),ui-monospace,monospace;background:var(--surface);color:var(--ink);letter-spacing:.02em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.btn:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-accent:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.blink{width:6px;height:6px;border-radius:99px;background:var(--accent);display:inline-block;animation:blink 1.6s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}.stack-row{display:grid;grid-template-columns:200px 1fr;grid-gap:32px;gap:32px;padding:22px 28px;transition:background .2s}.stack-row:hover{background:var(--hair)}.proj-row{transition:background .2s}.proj-row:hover{background:var(--hair)}.hero-info{margin-top:72px}.nav-wrap{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:color-mix(in oklab,var(--bg) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}.section{padding:0 40px}.hero,.section{max-width:1360px;margin:0 auto}.hero{padding:80px 40px 100px}.section-head{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:24px;gap:24px;align-items:end;padding:80px 0 40px}.section-title{font-size:clamp(32px,4vw,56px);letter-spacing:-.02em;font-weight:500;margin:0;line-height:1.02}.hero-name{font-size:clamp(64px,10vw,160px);font-weight:500;letter-spacing:-.035em;line-height:.92;margin:0}.proj-grid{display:grid;grid-template-columns:80px 1fr 1.4fr minmax(220px,1.2fr) 110px 70px;grid-gap:24px;gap:24px}.proj-head{padding:12px 0 14px;border-top:1px solid var(--ink);font-family:var(--font-mono),ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.proj-head,.proj-row{border-bottom:1px solid var(--line)}.proj-row{padding:28px 0;align-items:start}.footer{max-width:1360px;margin:0 auto;padding:20px 40px;display:flex;justify-content:space-between;font-family:var(--font-mono),ui-monospace,monospace;font-size:11px;color:var(--mute);letter-spacing:.04em;border-top:1px solid var(--hair)}@media (max-width:900px){.hero,.section{padding-left:20px;padding-right:20px}.hero{padding-top:48px;padding-bottom:64px}.hero-name{font-size:clamp(48px,13vw,96px);letter-spacing:-.03em}.grid12,.section-head{grid-template-columns:1fr;gap:16px}.grid12>*,.section-head>*{grid-column:1/-1!important}.section-head{padding:56px 0 24px}.section-title{font-size:clamp(28px,8vw,40px)}.hero-info{margin-top:28px}.stack-row{grid-template-columns:1fr;gap:10px;padding:18px 20px}.grid12>[class~=stack-block]{grid-column:1/-1!important}.proj-grid{grid-template-columns:1fr;gap:6px}.proj-head{display:none}.proj-row{padding:24px 0;border-bottom:1px solid var(--line)}.proj-row>.num{padding-top:0!important}.footer{padding:16px 20px;flex-direction:column;align-items:flex-start;gap:6px}.nav-grid{padding:12px 20px!important;gap:12px!important}.nav-wordmark-role{display:none}.nav-links{justify-content:flex-end!important;gap:16px!important;font-size:10px!important}}@media (max-width:480px){.hero-name{font-size:clamp(44px,14vw,72px)}.nav-links a:first-child{display:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}