@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:109.69%}.space_grotesk_e61ca768-module__pQvNrG__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_e61ca768-module__pQvNrG__variable{--font-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,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(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,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(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:134.59%}.jetbrains_mono_6971e19a-module__pjXg2W__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_6971e19a-module__pjXg2W__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26e9340776e0c8e8-s.3-pcjiz3ygyf8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(../media/37f34e4fcce0f2d4-s.3dosikwwiz7p4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Silkscreen;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9a82a02b3825653d-s.2w2uf6dgc3uj-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Silkscreen;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8ec783ae88469012-s.0twlw20dvfl-2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Silkscreen Fallback;src:local(Arial);ascent-override:68.84%;descent-override:16.71%;line-gap-override:0.0%;size-adjust:149.62%}.silkscreen_a0c9a042-module__Vd2YOq__className{font-family:Silkscreen,Silkscreen Fallback;font-style:normal}.silkscreen_a0c9a042-module__Vd2YOq__variable{--font-pixel:"Silkscreen", "Silkscreen Fallback"}
:root{--sans:var(--font-space-grotesk), "Space Grotesk", system-ui, -apple-system, sans-serif;--mono:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--max:920px;--cursor-default:url(/cursors/graphic-default.svg) 10 10, auto;--cursor-pointer:url(/cursors/pointer.svg) 14 6, pointer}:root,[data-theme=dark]{--bg:#08090b;--bg-soft:#0e1014;--fg:#e9eaee;--fg-bright:#fff;--fg-dim:#9a9da6;--fg-faint:#5c5f68;--line:#ffffff14;--accent:#e9eaee;--project-bg:#0e101480;--project-bg-hover:#12141ab3;--dot-base:120, 124, 135;--dot-accent:235, 236, 240}[data-theme=light]{--bg:#f3f3f0;--bg-soft:#e9e9e4;--fg:#15161a;--fg-bright:#000;--fg-dim:#565961;--fg-faint:#8b8e95;--line:#0000001a;--accent:#15161a;--project-bg:#ffffff8c;--project-bg-hover:#ffffffd9;--dot-base:165, 167, 172;--dot-accent:24, 25, 30}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--bg:#f3f3f0;--bg-soft:#e9e9e4;--fg:#15161a;--fg-bright:#000;--fg-dim:#565961;--fg-faint:#8b8e95;--line:#0000001a;--accent:#15161a;--project-bg:#ffffff8c;--project-bg-hover:#ffffffd9;--dot-base:165, 167, 172;--dot-accent:24, 25, 30}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;cursor:var(--cursor-default);font-size:16px;line-height:1.6;transition:background .4s,color .4s;overflow-x:hidden}html.theme-transition,html.theme-transition *,html.theme-transition :before,html.theme-transition :after{transition:background-color .4s ease-in-out,color .4s ease-in-out,border-color .4s ease-in-out,fill .4s ease-in-out,box-shadow .4s ease-in-out!important}.has-matrix{position:relative;overflow:hidden}.has-matrix>.layer{z-index:1;position:relative}.dot-matrix{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.arcade-controls{z-index:2;gap:8px;display:flex;position:absolute}.arcade-btn{font-family:var(--mono);width:30px;height:30px;color:var(--fg-dim);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;transition:color .2s,border-color .2s;display:inline-flex}.arcade-btn:hover{color:var(--fg);border-color:var(--fg)}.arcade-btn.wide{letter-spacing:.04em;gap:7px;width:auto;height:32px;padding:0 14px}.arcade-caption{z-index:2;text-align:center;height:28px;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);pointer-events:none;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute}.arcade-over{z-index:3;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute}.arcade-over-title{font-family:var(--mono);letter-spacing:.28em;color:var(--fg-dim);font-size:13px}.arcade-over-score{font-family:var(--mono);letter-spacing:.1em;color:var(--fg);font-size:34px}.arcade-over-actions{gap:10px;margin-top:6px;display:flex}.theme-toggle{font-family:var(--mono);letter-spacing:.08em;color:var(--fg-dim);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:6px 13px;font-size:12px;transition:color .2s,border-color .2s}.theme-toggle:hover{color:var(--fg);border-color:var(--fg)}.nav-right{align-items:center;gap:22px;display:flex}.shell{z-index:2;max-width:var(--max);margin:0 auto;padding:0 28px;position:relative}section{border-top:1px solid var(--line);padding:96px 0}section:first-of-type{border-top:none}section[id]{scroll-margin-top:84px}.eyebrow{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-faint);align-items:center;gap:10px;margin-bottom:38px;font-size:12px;display:flex}.eyebrow:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 12px var(--accent);border-radius:50%}.nav{z-index:3;max-width:var(--max);font-family:var(--mono);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:space-between;align-items:center;margin:0 auto;padding:20px 28px;font-size:13px;display:flex;position:sticky;top:0}.nav-brand{letter-spacing:.04em;color:var(--fg);font-weight:500;text-decoration:none}.nav-links{gap:22px;display:flex}.nav-menu-btn{font-family:var(--mono);width:32px;height:30px;color:var(--fg-dim);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:color .2s,border-color .2s;display:none}.nav-menu-btn:hover{color:var(--fg);border-color:var(--fg)}.nav-menu{background:var(--bg-soft);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;flex-direction:column;gap:4px;padding:10px;display:flex;position:absolute;top:100%;left:28px;right:28px}.nav-menu a{color:var(--fg-dim);border-radius:8px;padding:10px 12px;text-decoration:none;transition:color .2s,background .2s}.nav-menu a:hover,.nav-menu a.active{color:var(--fg);background:#7f7f7f14}.nav-links a{color:var(--fg-dim);text-decoration:none;transition:color .2s;position:relative}.nav-links a:hover,.nav-links a.active{color:var(--fg)}.nav-links a.active:after{content:"";background:var(--accent);height:1px;position:absolute;bottom:-6px;left:0;right:0}@media (max-width:620px){.nav-links{display:none}.nav-menu-btn{display:inline-flex}}.hero{border-top:none;align-items:center;width:100vw;min-height:calc(100vh - 64px);padding:0;display:flex;position:relative;left:50%;overflow:hidden;transform:translate(-50%)}.hero-inner{width:100%;max-width:var(--max);margin:0 auto;padding:0 28px;transform:translateY(calc(-1*clamp(24px,6vh,54px)))}.hero-status{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);align-items:center;gap:10px;margin-bottom:26px;font-size:12.5px;display:inline-flex}.pulse{background:#5ee08a;border-radius:50%;width:7px;height:7px;animation:2.4s infinite pulse;box-shadow:0 0 #5ee08a99}@keyframes pulse{0%{box-shadow:0 0 #5ee08a80}70%{box-shadow:0 0 0 9px #5ee08a00}to{box-shadow:0 0 #5ee08a00}}.hero h1{letter-spacing:-.03em;font-size:clamp(2.2rem,4.2vw,5.4rem);font-weight:600;line-height:1.02}.hero .role{color:var(--fg-dim);margin-top:18px;font-size:clamp(1rem,2vw,1.4rem);font-weight:400}.hero .tagline{max-width:560px;color:var(--fg-dim);margin-top:28px;font-size:1.05rem}.hero-meta{font-family:var(--mono);color:var(--fg-faint);flex-wrap:wrap;gap:14px 26px;margin-top:40px;font-size:13px;display:flex}.hero-meta a{color:var(--fg-dim);border-bottom:1px solid var(--line);text-decoration:none;transition:color .2s,border-color .2s}.hero-meta a:hover{color:var(--fg);border-color:var(--fg)}.hero-scroll{bottom:34px;left:max(28px, calc((100vw - var(--max)) / 2 + 28px));z-index:1;width:fit-content;max-width:calc(100vw - 56px);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-faint);align-items:center;gap:10px;padding:0;font-size:11px;text-decoration:none;transition:color .2s;display:flex;position:absolute}.hero-scroll:hover{color:var(--fg)}.hero-scroll-arrow{animation:1.8s ease-in-out infinite scrollNudge;display:inline-block}@keyframes scrollNudge{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(5px)}}.section-title{letter-spacing:-.02em;margin-bottom:8px;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:600}.section-lead{color:var(--fg-dim);max-width:560px;margin-bottom:48px}.work-section{--timeline-x:7px;--entry-content-x:256px;--entry-body-offset:228px;z-index:1;padding-bottom:clamp(120px,18vh,180px);position:relative}.work-timeline{z-index:1;margin-top:clamp(34px,7vh,60px);position:relative}.work-timeline:before{content:"";top:0;bottom:0;left:var(--timeline-x);pointer-events:none;background-image:radial-gradient(circle, rgba(var(--dot-accent), .34) 0 1.15px, transparent 1.35px);opacity:.48;background-repeat:repeat-y;background-size:6px 12px;width:6px;position:absolute;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000 0,#000 48px calc(100% - 48px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 48px calc(100% - 48px),#0000 100%)}.entry{padding:26px 0 clamp(36px,7vh,56px) 28px;position:relative}.entry:not(:first-child):after{content:"";top:0;left:var(--entry-content-x);background:var(--line);height:1px;position:absolute;right:0}.entry-summary{grid-template-columns:200px 1fr;gap:28px;padding:8px 0 12px;display:grid}.entry-period{font-family:var(--mono);color:var(--fg-faint);letter-spacing:.02em;padding-top:4px;font-size:11px;position:relative}.entry-period:before{content:"";left:calc(var(--timeline-x) - 31.5px);background:var(--bg);border:1px solid rgba(var(--dot-accent), .62);width:7px;height:7px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:11px}.entry-head{min-width:0}.entry-role{font-size:1rem;font-weight:600;line-height:1.18;transition:color .2s}.entry-org{color:var(--fg-dim);margin-top:2px;margin-bottom:0;font-size:.82rem;line-height:1.28;transition:color .2s}.entry-org span{color:var(--fg-faint)}.entry-details{margin-left:var(--entry-body-offset)}.entry ul{flex-direction:column;gap:9px;padding-top:18px;list-style:none;display:flex}.entry li{color:var(--fg-dim);padding-left:20px;font-size:.94rem;position:relative}.entry li:before{content:"";background:var(--fg-faint);border-radius:50%;width:5px;height:5px;position:absolute;top:9px;left:0}@media (max-width:680px){.work-section{--entry-content-x:28px;--entry-body-offset:0px;padding-bottom:96px}.entry-summary{grid-template-columns:1fr;gap:8px}.entry-details{margin-left:0}}#projects{z-index:1;position:relative}.projects-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.project{isolation:isolate;color:inherit;border:1px solid var(--line);--project-pad:22px;--project-cover-ratio:21 / 9;--project-cover-gap:14px;padding:var(--project-pad);background:var(--project-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);--card-accent-light:#7c8cff;--card-accent-dark:#7c8cff;--card-accent:var(--card-accent-light);--mx:50%;--my:50%;border-radius:14px;text-decoration:none;transition:transform .25s,border-color .25s,background .25s,box-shadow .25s;display:block;position:relative}[data-theme=dark] .project{--card-accent:var(--card-accent-dark)}.project:hover{border-color:color-mix(in srgb, var(--card-accent) 65%, var(--line));background:var(--project-bg-hover);box-shadow:0 0 24px -6px color-mix(in srgb, var(--card-accent) 35%, transparent);transform:translateY(-4px)}.project-dots,.project-ring{z-index:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .3s;position:absolute;inset:0}.project-dots{background-image:radial-gradient(circle, color-mix(in srgb, var(--card-accent) 100%, transparent) 0 1.2px, transparent 2px);-webkit-mask-image:radial-gradient(circle 280px at var(--mx) var(--my), #000 0%, transparent 75%), radial-gradient(130% 130% at 50% 50%, transparent 20%, #000 100%);-webkit-mask-composite:source-in;-webkit-mask-image:radial-gradient(circle 210px at var(--mx) var(--my), #000 0%, transparent 75%), radial-gradient(130% 130% at 50% 50%, transparent 40%, #000 100%);mask-image:radial-gradient(circle 210px at var(--mx) var(--my), #000 0%, transparent 75%), radial-gradient(130% 130% at 50% 50%, transparent 40%, #000 100%);background-size:14px 14px;-webkit-mask-composite:source-in;mask-composite:intersect}.project-ring{background:radial-gradient(circle 280px at var(--mx) var(--my), color-mix(in srgb, var(--card-accent) 95%, transparent), transparent 80%);-webkit-mask-composite:xor;padding:1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.project:hover .project-dots,.project:hover .project-ring{opacity:1}.project:hover .project-name{color:var(--fg-bright)}.project:hover .project-tag{color:color-mix(in srgb, var(--card-accent) 80%, var(--fg-dim))}.project:hover .chip{color:var(--fg);border-color:color-mix(in srgb, var(--card-accent) 45%, var(--line))}@media (hover:none),(pointer:coarse){.project.scroll-active{border-color:color-mix(in srgb, var(--card-accent) 65%, var(--line));background:var(--project-bg-hover);box-shadow:0 0 24px -6px color-mix(in srgb, var(--card-accent) 35%, transparent);transform:translateY(-4px)}.project.scroll-active .project-dots,.project.scroll-active .project-ring{opacity:1}.project.scroll-active .project-name{color:var(--fg-bright)}.project.scroll-active .project-tag{color:color-mix(in srgb, var(--card-accent) 80%, var(--fg-dim))}.project.scroll-active .chip{color:var(--fg);border-color:color-mix(in srgb, var(--card-accent) 45%, var(--line))}}.project-cover,.project-head,.project-stack{z-index:1;position:relative}.project-cover{margin:calc(var(--project-pad-y,var(--project-pad)) * -1) calc(var(--project-pad-x,var(--project-pad)) * -1) var(--project-cover-gap);aspect-ratio:var(--project-cover-ratio);border-bottom:1px solid var(--line);background:var(--project-bg-hover);border-radius:13px 13px 0 0;overflow:hidden}.project-cover img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.project:hover .project-cover img{transform:scale(1.04)}@media (hover:none),(pointer:coarse){.project.scroll-active .project-cover img{transform:scale(1.04)}}.project-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.project-name{font-size:1.25rem;font-weight:600}.project-tag{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint);font-size:11px}.project-stack{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.project-stack .chip{padding:3px 8px;font-size:10px}.chip{font-family:var(--mono);color:var(--fg-dim);border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:11.5px}@media (max-width:680px){.projects-grid{grid-template-columns:1fr}}.skills-grid{grid-template-columns:repeat(2,1fr);gap:34px 40px;display:grid}.skill-group h3{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:14px;font-size:12.5px}.skill-list{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:680px){.skills-grid{grid-template-columns:1fr}}.edu{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:20px;padding:20px 0;display:flex}.edu:first-of-type{border-top:none}.edu-degree{font-weight:500}.edu-school{color:var(--fg-dim);font-size:.92rem}.edu-period{font-family:var(--mono);color:var(--fg-faint);white-space:nowrap;font-size:12.5px}.contact h2{letter-spacing:-.03em;max-width:640px;font-size:clamp(2rem,6vw,3.4rem);font-weight:600;line-height:1.05}.contact .section-lead{margin-top:22px}.contact-links{flex-wrap:wrap;gap:14px;margin-top:14px;display:flex}.btn{font-family:var(--mono);letter-spacing:.03em;color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:12px 22px;font-size:13px;text-decoration:none;transition:border-color .2s,background .2s,transform .2s}.btn:hover{border-color:var(--fg);background:#ffffff0a;transform:translateY(-2px)}.footer{font-family:var(--mono);color:var(--fg-faint);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:40px 0 60px;font-size:12px;display:flex}.footer-note{align-items:center;gap:8px;display:inline-flex}.footer-dot{background:#5ee08a;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #5ee08a99}.footer-top{color:var(--fg-faint);text-decoration:none;transition:color .2s}.footer-top:hover{color:var(--fg)}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.reveal.in{opacity:1;transform:none}.glow-card{isolation:isolate;--mx:50%;--my:50%;position:relative}.glow__content{z-index:1;position:relative}.glow__dots,.glow__ring{z-index:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .3s;position:absolute;inset:0}.glow__dots{background-image:radial-gradient(circle, color-mix(in srgb, var(--glow-accent,var(--accent)) 100%, transparent) 0 1.1px, transparent 1.9px);-webkit-mask-image:radial-gradient(circle 150px at var(--mx) var(--my), #000 0%, transparent 72%), radial-gradient(130% 130% at 50% 50%, transparent 28%, #000 100%);-webkit-mask-composite:source-in;-webkit-mask-image:radial-gradient(circle 150px at var(--mx) var(--my), #000 0%, transparent 72%), radial-gradient(130% 130% at 50% 50%, transparent 45%, #000 100%);mask-image:radial-gradient(circle 150px at var(--mx) var(--my), #000 0%, transparent 72%), radial-gradient(130% 130% at 50% 50%, transparent 45%, #000 100%);background-size:13px 13px;-webkit-mask-composite:source-in;mask-composite:intersect}.glow__ring{background:radial-gradient(circle 190px at var(--mx) var(--my), color-mix(in srgb, var(--glow-accent,var(--accent)) 90%, transparent), transparent 78%);-webkit-mask-composite:xor;padding:1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.glow-card:hover .glow__dots,.glow-card:hover .glow__ring,.glow-card.is-glow-active .glow__dots,.glow-card.is-glow-active .glow__ring{opacity:1}h1,h2,h3,p,li,.chip,.eyebrow,.entry-period,.edu-period,.project-tag,.skill-group h3{transition:color .2s,border-color .2s}.hero h1:hover,.section-title:hover,.contact h2:hover,.entry-role:hover,.project-name:hover,.edu-degree:hover,.about-lead:hover{color:var(--fg-bright)}.tagline:hover,.role:hover,.section-lead:hover,.entry li:hover,.entry-org:hover,.hero-meta:hover,.edu-school:hover{color:var(--fg)}.eyebrow:hover,.skill-group h3:hover,.entry-period:hover,.edu-period:hover,.project-tag:hover{color:var(--fg-dim)}.chip:hover{color:var(--fg);border-color:var(--fg-faint)}.entry:hover .entry-role{color:var(--fg-bright)}.entry:hover .entry-period{color:var(--fg-dim)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}a,button,select,summary,label,[role=button]{cursor:var(--cursor-pointer)}input,textarea{cursor:text}input[type=checkbox],input[type=color],input[type=range]{cursor:var(--cursor-pointer)}.projects-grid>:first-child,.skills-grid>:first-child,.work-timeline>:first-child{--si:0}.projects-grid>:nth-child(2),.skills-grid>:nth-child(2),.work-timeline>:nth-child(2){--si:1}.projects-grid>:nth-child(3),.skills-grid>:nth-child(3),.work-timeline>:nth-child(3){--si:2}.projects-grid>:nth-child(4),.skills-grid>:nth-child(4),.work-timeline>:nth-child(4){--si:3}.projects-grid>:nth-child(5),.skills-grid>:nth-child(5),.work-timeline>:nth-child(5){--si:4}.projects-grid>:nth-child(6),.skills-grid>:nth-child(6),.work-timeline>:nth-child(6){--si:5}.projects-grid>:nth-child(7),.skills-grid>:nth-child(7),.work-timeline>:nth-child(7){--si:6}.projects-grid>:nth-child(n+8),.skills-grid>:nth-child(n+8),.work-timeline>:nth-child(n+8){--si:7}@keyframes stagger-rise{0%{opacity:0;filter:blur(3px);translate:0 18px}to{opacity:1;filter:blur();translate:0}}.reveal:not(.in) .project,.reveal:not(.in) .skill-group,.reveal:not(.in) .entry{opacity:0}.reveal.in .project,.reveal.in .skill-group,.reveal.in .entry{animation:.65s cubic-bezier(.22,.9,.3,1) both stagger-rise;animation-delay:calc(var(--si,0) * 80ms)}@keyframes hero-rise{0%{opacity:0;filter:blur(4px);translate:0 22px}to{opacity:1;filter:blur();translate:0}}.hero-inner>*{animation:.85s cubic-bezier(.22,.9,.3,1) both hero-rise}.hero-inner>:first-child{animation-delay:50ms}.hero-inner>:nth-child(2){animation-delay:.15s}.hero-inner>:nth-child(3){animation-delay:.25s}.hero-inner>:nth-child(4){animation-delay:.35s}.hero-inner>:nth-child(5){animation-delay:.45s}@supports (animation-timeline:view()){@keyframes hero-drift{to{opacity:.15;translate:0 -60px}}.hero .hero-inner{animation:linear both hero-drift;animation-timeline:view();animation-range:exit 10% exit 90%}@keyframes hero-scroll-fade{to{opacity:0}}.hero .hero-scroll{animation:linear both hero-scroll-fade;animation-timeline:view();animation-range:exit exit 30%}}.chip{transition:color .2s,border-color .2s,translate .2s}.chip:hover{translate:0 -2px}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}.pulse,.hero-scroll-arrow{animation:none}.reveal:not(.in) .project,.reveal:not(.in) .skill-group,.reveal:not(.in) .entry{opacity:1}.reveal.in .project,.reveal.in .skill-group,.reveal.in .entry,.hero-inner>*,.hero .hero-inner,.hero .hero-scroll{animation:none}.chip:hover{translate:none}}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}::view-transition-old(root){animation-duration:.45s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.45s;animation-timing-function:ease}::view-transition-group(project-cover){z-index:20;animation-duration:.65s;animation-timing-function:cubic-bezier(.22,.9,.3,1)}::view-transition-image-pair(project-cover){border-radius:16px;overflow:hidden}::view-transition-old(project-cover){object-fit:cover;width:100%;height:100%;animation-duration:.65s}::view-transition-new(project-cover){object-fit:cover;width:100%;height:100%;animation-duration:.65s}
