@font-face{font-family:Bodoni Moda;font-style:italic;font-weight:400 900;font-display:swap;src:url(/_next/static/media/7362f304958813f8-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Bodoni Moda;font-style:italic;font-weight:400 900;font-display:swap;src:url(/_next/static/media/db906319981135e5-s.woff2) format("woff2");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-family:Bodoni Moda;font-style:italic;font-weight:400 900;font-display:swap;src:url(/_next/static/media/e4043985c18db9d8-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:Bodoni Moda;font-style:italic;font-weight:400 900;font-display:swap;src:url(/_next/static/media/821d76e08f562279-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:Bodoni Moda;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/4f52e7e286ad48dd-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Bodoni Moda;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/5b2b7a6f7f37a283-s.woff2) format("woff2");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-family:Bodoni Moda;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/9a8547324877773b-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:Bodoni Moda;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/95c8264a6767742a-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:Bodoni Moda Fallback;src:local("Times New Roman");ascent-override:98.50%;descent-override:35.02%;line-gap-override:0.00%;size-adjust:114.22%}.__className_883c8c{font-family:Bodoni Moda,Bodoni Moda Fallback}.__variable_883c8c{--font-bodoni:"Bodoni Moda","Bodoni Moda Fallback"}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-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:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-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:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-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:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/313510e2713fb214-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:Hanken Grotesk Fallback;src:local("Arial");ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.00%;size-adjust:100.94%}.__className_9c618b{font-family:Hanken Grotesk,Hanken Grotesk Fallback;font-style:normal}.__variable_9c618b{--font-hanken:"Hanken Grotesk","Hanken 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:oklch(0.243 0.046 163);--bg-2:oklch(0.283 0.049 163);--bg-sunken:oklch(0.213 0.042 163);--ink:oklch(0.948 0.014 90);--ink-muted:oklch(0.792 0.018 92);--ink-faint:oklch(0.682 0.020 95);--accent:oklch(0.930 0.022 88);--accent-ink:oklch(0.243 0.046 163);--line:color-mix(in oklch,var(--accent) 16%,transparent);--line-strong:color-mix(in oklch,var(--accent) 32%,transparent);--focus:oklch(0.86 0.10 90);--font-display:var(--font-bodoni),Georgia,"Times New Roman",serif;--font-sans:var(--font-hanken),system-ui,-apple-system,sans-serif;--font-mono:var(--font-mono),ui-monospace,"SFMono-Regular",monospace;--step--1:clamp(0.78rem,0.74rem + 0.20vw,0.88rem);--step-0:clamp(0.98rem,0.93rem + 0.25vw,1.10rem);--step-1:clamp(1.20rem,1.10rem + 0.50vw,1.50rem);--step-2:clamp(1.55rem,1.36rem + 0.95vw,2.20rem);--step-3:clamp(2.05rem,1.70rem + 1.75vw,3.30rem);--step-4:clamp(2.70rem,2.05rem + 3.25vw,5.20rem);--step-5:clamp(3.40rem,2.20rem + 6.00vw,6.00rem);--nav-w:17rem;--gutter:clamp(1.5rem,1rem + 4vw,5rem);--measure:68ch;--section-y:clamp(5rem,4rem + 9vh,9rem);--radius:2px;--z-grain:1;--z-sticky:50;--z-nav:60;--z-overlay:80;--z-toast:90;--ease:cubic-bezier(0.22,1,0.36,1);--dur:600ms;color-scheme:dark}[data-theme=light]{--bg:oklch(0.967 0.012 92);--bg-2:oklch(0.942 0.014 92);--bg-sunken:oklch(0.985 0.008 92);--ink:oklch(0.305 0.055 163);--ink-muted:oklch(0.430 0.048 163);--ink-faint:oklch(0.530 0.040 163);--accent:oklch(0.515 0.082 84);--accent-ink:oklch(0.985 0.010 92);--line:color-mix(in oklch,var(--ink) 16%,transparent);--line-strong:color-mix(in oklch,var(--ink) 30%,transparent);--focus:oklch(0.55 0.11 84);color-scheme:light}*,:after,:before{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.65;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100dvh;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}img,picture,svg{display:block;max-width:100%}svg{width:1em;height:1em;flex:0 0 auto}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::selection{background:color-mix(in oklch,var(--accent) 85%,transparent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--radius)}body:after{content:"";position:fixed;inset:0;z-index:var(--z-grain);pointer-events:none;opacity:.5;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E")}[data-theme=light] body:after{opacity:.35}.display{line-height:1.02;letter-spacing:-.018em}.display,h1,h2,h3{font-family:var(--font-display);font-weight:500;text-wrap:balance}p{text-wrap:pretty}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}.section-title{font-size:var(--step-3);line-height:1.05;letter-spacing:-.022em}.lede{font-size:var(--step-1);line-height:1.5;color:var(--ink-muted);max-width:var(--measure);font-family:var(--font-display);font-weight:400;font-style:italic}.mono{font-family:var(--font-mono)}.shell{display:flex;min-height:100dvh}.content{flex:1 1 auto;min-width:0;margin-left:var(--nav-w)}@media (max-width:880px){.content{margin-left:0;padding-top:4.25rem}}.section{padding-block:var(--section-y);padding-inline:var(--gutter);scroll-margin-top:2rem;border-top:1px solid var(--line)}.section:first-of-type{border-top:0}.section-inner{max-width:72rem;margin-inline:auto;width:100%}.section-head{display:flex;align-items:baseline;gap:1.25rem;margin-bottom:clamp(2rem,1.5rem + 2vw,3.5rem)}.section-head .index{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.1em;padding-top:.4em}.sidenav{position:fixed;inset-block:0;inset-inline-start:0;width:var(--nav-w);z-index:var(--z-nav);display:flex;flex-direction:column;padding:clamp(1.75rem,1.4rem + 1vw,2.5rem) 1.75rem;background:var(--bg);-webkit-border-end:1px solid var(--line);border-inline-end:1px solid var(--line)}.sidenav .wordmark{font-family:var(--font-display);font-size:var(--step-2);letter-spacing:-.02em;line-height:1}.sidenav .wordmark .dot{color:var(--accent)}.nav-list{list-style:none;padding:0;margin:clamp(2.5rem,8vh,5rem) 0 auto;display:flex;flex-direction:column;gap:.15rem}.nav-link{position:relative;display:inline-flex;align-items:center;gap:.85rem;padding:.4rem 0;font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);transition:color .3s var(--ease);width:-moz-fit-content;width:fit-content}.nav-link:before{content:"";width:1.4rem;height:1px;background:var(--line-strong);transition:width .35s var(--ease),background-color .3s var(--ease)}.nav-link:hover,.nav-link[aria-current=true]{color:var(--ink)}.nav-link:hover:before,.nav-link[aria-current=true]:before{width:2.6rem;background:var(--accent)}.sidenav-foot{display:flex;align-items:center;justify-content:space-between;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.socials{display:flex;gap:.35rem}.icon-btn{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;color:var(--ink-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:color .3s var(--ease),border-color .3s var(--ease),background-color .3s var(--ease),transform .2s var(--ease)}.icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.icon-btn:active{transform:translateY(1px)}.icon-btn svg{width:1.05rem;height:1.05rem}@media (max-width:880px){.sidenav{display:none}}.topbar{display:none;position:fixed;inset-block-start:0;inset-inline:0;z-index:var(--z-nav);height:4.25rem;align-items:center;justify-content:space-between;padding-inline:var(--gutter);background:color-mix(in oklch,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar .wordmark{font-family:var(--font-display);font-size:var(--step-1)}.topbar .wordmark .dot{color:var(--accent)}@media (max-width:880px){.topbar{display:flex}}.overlay{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--bg);display:flex;flex-direction:column;padding:5.5rem var(--gutter) 2.5rem;transform:translateX(100%);transition:transform .5s var(--ease);overflow-y:auto}.overlay[data-open=true]{transform:translateX(0)}.overlay .nav-list{margin:0;gap:.25rem}.overlay .nav-link{font-size:var(--step-1);letter-spacing:.06em}.overlay-foot{margin-top:auto;padding-top:2rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.hero{min-height:100dvh;justify-content:center;padding-inline:var(--gutter);padding-block:clamp(6rem,18vh,11rem) var(--section-y);position:relative}.hero,.hero-inner{display:flex;flex-direction:column}.hero-inner{max-width:60rem;margin-inline:auto;width:100%;text-align:center;align-items:center}.hero-name{font-size:var(--step-5);line-height:.95;letter-spacing:-.03em;font-weight:500}.hero-name,.hero-type{font-family:var(--font-display)}.hero-type{font-size:var(--step-3);font-style:italic;font-weight:400;color:var(--ink-muted);margin-top:clamp(1rem,.6rem + 1.5vw,2rem);line-height:1.1;min-height:1.2em}.hero-type .fixed{color:var(--ink);font-style:normal;font-weight:500}.cursor{display:inline-block;width:.06em;height:1em;margin-left:.06em;background:var(--accent);transform:translateY(.12em);animation:blink 1.05s steps(1) infinite}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.hero-meta{margin-top:clamp(2.5rem,2rem + 3vw,4.5rem);display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.08em;color:var(--ink-faint);text-transform:uppercase}.hero-meta .sep{width:1px;height:.9rem;background:var(--line-strong)}.scroll-hint{margin-top:clamp(2rem,5vh,3.5rem)}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.6rem;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius);cursor:pointer;transition:transform .2s var(--ease),background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);white-space:nowrap}.btn-primary{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent)}.btn-ghost,.btn-primary:hover{background:transparent;color:var(--ink)}.btn-ghost{border:1px solid var(--line-strong)}.btn-ghost:hover{border-color:var(--accent);color:var(--ink)}.btn:active{transform:translateY(1px)}.btn svg{inline-size:1.05em;block-size:1.05em;flex:0 0 auto}.text-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink);border-bottom:1px solid var(--line-strong);padding-bottom:1px;transition:border-color .3s var(--ease),gap .3s var(--ease)}.text-link:hover{border-color:var(--accent);gap:.65rem}.text-link svg{width:.85em;height:.85em}.tags{display:flex;flex-wrap:wrap;gap:.45rem}.tag{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.02em;padding:.3rem .7rem;border:1px solid var(--line);border-radius:999px;color:var(--ink-muted);white-space:nowrap}.timeline{position:relative;display:flex;flex-direction:column;-webkit-padding-start:2.25rem;padding-inline-start:2.25rem}.timeline:before{content:"";position:absolute;inset-inline-start:.31rem;inset-block:.55rem .9rem;width:1px;background:var(--line-strong)}.tl-item{display:grid;grid-template-columns:11rem 1fr;grid-gap:clamp(1rem,.5rem + 2vw,3rem);gap:clamp(1rem,.5rem + 2vw,3rem);padding-block:clamp(1.75rem,1.25rem + 2vw,2.75rem);border-top:1px solid var(--line);position:relative}.tl-item:first-child{border-top:0;padding-top:0}.tl-item:before{content:"";position:absolute;inset-block-start:clamp(1.95rem,1.45rem + 2vw,2.95rem);inset-inline-start:-2.25rem;width:.62rem;height:.62rem;border-radius:50%;background:var(--bg);border:1px solid var(--line-strong)}.tl-item:first-child:before{inset-block-start:.45rem}.tl-item.anchor:before{background:var(--accent);border-color:var(--accent)}.tl-aside{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.04em;padding-top:.4rem}.tl-aside .loc{display:block;margin-top:.35rem;color:var(--ink-faint)}.tl-role{font-family:var(--font-display);font-size:var(--step-2);line-height:1.1}.tl-company{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem;color:var(--ink-muted);font-size:var(--step-0)}.tl-company .anchor-tag{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line-strong);padding:.12rem .45rem;border-radius:999px}.tl-points{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.55rem;color:var(--ink-muted);max-width:var(--measure)}.tl-points li{position:relative;padding-left:1.1rem}.tl-points li:before{content:"";position:absolute;left:0;top:.72em;width:.4rem;height:1px;background:var(--accent)}@media (max-width:620px){.tl-item{grid-template-columns:1fr;gap:.5rem}.tl-item:before,.tl-item:first-child:before{inset-block-start:.4rem}.tl-aside{padding-top:0}}.projects{display:flex;flex-direction:column}.project-row{display:grid;grid-template-columns:4rem 1fr auto;grid-gap:clamp(1rem,.5rem + 2vw,2.5rem);gap:clamp(1rem,.5rem + 2vw,2.5rem);align-items:start;padding-block:clamp(1.75rem,1.25rem + 2vw,2.75rem);border-top:1px solid var(--line);text-align:start;width:100%;background:none;border-inline:0;border-bottom:0;cursor:pointer;transition:background-color .4s var(--ease)}.project-row:hover{background:color-mix(in oklch,var(--bg-2) 60%,transparent)}.project-row .num{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);padding-top:.5rem}.project-row .title{font-family:var(--font-display);font-size:var(--step-2);line-height:1.08;transition:color .3s var(--ease)}.project-row .context{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);margin-top:.4rem;letter-spacing:.03em}.project-row .oneliner{color:var(--ink-muted);margin-top:.9rem;max-width:54ch}.project-row .tags{margin-top:1.1rem}.project-row .chev{color:var(--ink-faint);padding-top:.5rem;transition:transform .3s var(--ease),color .3s var(--ease)}.project-row:hover .chev{transform:translateX(4px);color:var(--accent)}.project-row:hover .title{color:var(--ink)}@media (max-width:720px){.project-row{grid-template-columns:1fr;gap:.4rem}.project-row .num{padding-top:0}.project-row .chev{display:none}}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));grid-gap:clamp(1.75rem,1rem + 3vw,3rem) clamp(1.5rem,1rem + 2vw,3.5rem);gap:clamp(1.75rem,1rem + 3vw,3rem) clamp(1.5rem,1rem + 2vw,3.5rem)}.skill-group .skill-cat{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);padding-bottom:.9rem;margin-bottom:1.1rem;border-bottom:1px solid var(--line)}.skill-items{display:flex;flex-wrap:wrap;gap:.45rem}.lead-list{display:flex;flex-direction:column}.lead-item{padding-block:clamp(1.5rem,1rem + 2vw,2.5rem);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr;grid-gap:.9rem;gap:.9rem}.lead-item:first-child{border-top:0;padding-top:0}.lead-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem}.lead-org{font-family:var(--font-display);font-size:var(--step-2);line-height:1.1}.lead-role{color:var(--ink-muted);margin-top:.4rem;font-size:var(--step-0)}.lead-when{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.04em;white-space:nowrap}.lead-points{list-style:none;padding:0;margin:.3rem 0 0;display:flex;flex-direction:column;gap:.5rem;color:var(--ink-muted);max-width:var(--measure)}.lead-points li{position:relative;padding-left:1.1rem}.lead-points li:before{content:"";position:absolute;left:0;top:.72em;width:.4rem;height:1px;background:var(--accent)}.lead-minor-item{padding-block:clamp(1.5rem,1rem + 2vw,2.5rem);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.5rem}.lead-minor-item .o{font-family:var(--font-display);font-size:var(--step-2);line-height:1.1;font-weight:500}.lead-minor-item .r{color:var(--ink-muted);font-size:var(--step-0)}.lead-minor-item .t{position:relative;color:var(--ink-muted);max-width:var(--measure);margin-top:.2rem;padding-left:1.1rem}.lead-minor-item .t:before{content:"";position:absolute;left:0;top:.72em;width:.4rem;height:1px;background:var(--accent)}.edu-grid{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:clamp(2rem,1rem + 4vw,4.5rem);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:start}@media (max-width:820px){.edu-grid{grid-template-columns:1fr}}.edu-degree{font-family:var(--font-display);font-size:var(--step-2);line-height:1.12}.edu-inst{color:var(--ink-muted);margin-top:.5rem}.edu-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.2rem;font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.04em}.edu-gpa{color:var(--accent)}.awards-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.awards-list li{padding-block:.85rem;border-top:1px solid var(--line);color:var(--ink-muted);display:flex;gap:.85rem}.awards-list li:first-child{border-top:0;padding-top:0}.awards-list li:before{content:"";flex:0 0 auto;width:.4rem;height:1px;background:var(--accent);margin-top:.85em}.coursework{margin-top:2rem;border-top:1px solid var(--line)}.coursework summary{cursor:pointer;padding-top:1.25rem;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);list-style:none;display:flex;align-items:center;gap:.6rem}.coursework summary::-webkit-details-marker{display:none}.coursework summary .mk{transition:transform .3s var(--ease)}.coursework[open] summary .mk{transform:rotate(90deg)}.coursework summary:hover{color:var(--ink)}.coursework .course-items{display:flex;flex-wrap:wrap;gap:.45rem;padding-top:1.25rem}.about-grid{display:grid;grid-template-columns:1.5fr .85fr;grid-gap:clamp(2rem,1rem + 4vw,5rem);gap:clamp(2rem,1rem + 4vw,5rem);align-items:start}.about-body{max-width:42rem}.about-para{font-family:var(--font-display);font-weight:400;font-size:var(--step-1);line-height:1.5;letter-spacing:-.005em;color:var(--ink)}.about-para+.about-para{margin-top:1.4rem;color:var(--ink-muted)}.portrait-figure{margin:0;position:-webkit-sticky;position:sticky;top:2rem}.portrait{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line-strong);border-radius:var(--radius)}@media (max-width:820px){.about-grid{grid-template-columns:1fr;gap:2.25rem}.portrait-figure{position:static;order:-1;max-width:18rem}}.contact-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(2rem,1rem + 5vw,5rem);gap:clamp(2rem,1rem + 5vw,5rem);align-items:start}@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}.contact-channels{display:flex;flex-direction:column}.channel{padding-block:1.15rem;border-top:1px solid var(--line);display:flex;align-items:center;gap:1rem}.channel:first-of-type{border-top:0;padding-top:0}.channel .ch-label{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);width:5.5rem;flex:0 0 auto}.channel a{color:var(--ink);border-bottom:1px solid transparent;transition:border-color .3s var(--ease)}.channel a:hover{border-color:var(--accent)}.form{gap:1.25rem}.field,.form{display:flex;flex-direction:column}.field{gap:.5rem}.field label{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.field input,.field textarea{background:var(--bg-sunken);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.8rem .95rem;color:var(--ink);transition:border-color .3s var(--ease),background-color .3s var(--ease)}.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field textarea{resize:vertical;min-height:8rem}.form .btn{align-self:flex-start}.form-status{font-size:var(--step--1);color:var(--ink-muted);min-height:1.2em}.form-status[data-state=error]{color:oklch(.72 .13 35)}.form-status[data-state=ok]{color:var(--accent)}.foot{padding:2.5rem var(--gutter) 3rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.04em}.detail{max-width:56rem;margin-inline:auto;padding:clamp(4.5rem,4rem + 6vh,8rem) var(--gutter) var(--section-y)}.detail .back{margin-bottom:clamp(2rem,5vh,3.5rem)}.detail .d-context{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase}.detail h1{font-size:var(--step-4);line-height:1;letter-spacing:-.025em;margin-top:1rem}.detail .d-over{font-size:var(--step-1);color:var(--ink-muted);margin-top:1.75rem;max-width:var(--measure);font-family:var(--font-display);font-style:italic;font-weight:400;line-height:1.45}.detail .d-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.detail .tags{margin-top:2rem}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);margin-top:clamp(2.5rem,5vh,4rem);overflow:hidden}.metric{background:var(--bg);padding:1.5rem 1.4rem}.metric .m-val{font-family:var(--font-display);font-size:var(--step-2);line-height:1}.metric .m-label{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;margin-top:.6rem}.detail h2{font-size:var(--step-2);margin-top:clamp(2.5rem,5vh,4rem);margin-bottom:1.5rem}.d-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.1rem}.d-points li{position:relative;padding-left:1.4rem;color:var(--ink-muted);max-width:var(--measure)}.d-points li:before{content:"";position:absolute;left:0;top:.72em;width:.7rem;height:1px;background:var(--accent)}.reveal{opacity:1}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.in{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}*{scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}