@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.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:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.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:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.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:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.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:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.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:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1e219c03c996efbd-s.ba7d7329.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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0c27b1b4.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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(../media/03bda585a99c6450-s.p.ad37b9d9.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:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_56fd3094-module__Ge4Npa__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_56fd3094-module__Ge4Npa__variable{--font-display:"Fraunces","Fraunces Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300;font-display:swap;src:url(../media/32687112bd2dd8db-s.cfdd66c2.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:300;font-display:swap;src:url(../media/28868e710e86be81-s.c30238d4.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:300;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.4564287c.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:400;font-display:swap;src:url(../media/32687112bd2dd8db-s.cfdd66c2.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.c30238d4.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.4564287c.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.cfdd66c2.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.c30238d4.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.4564287c.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.cfdd66c2.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.c30238d4.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.4564287c.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.cfdd66c2.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.c30238d4.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.4564287c.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_2263bb88-module__WBnzPW__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_2263bb88-module__WBnzPW__variable{--font-body:"Space Grotesk","Space Grotesk Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.a82ecf4e.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.afa48be3.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.764b43eb.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.cb53f04b.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.64b9304e.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.6b5ea6af.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1dcddae6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.8da66e7f.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.e6cd1753.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.19510058.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.140490a3.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.b36ae37c.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.bf5f8a12.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.10086973.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.2902b61f.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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_f8b0b876-module__ChPWvq__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_f8b0b876-module__ChPWvq__variable{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}
:root{--background:#f8f8f8;--foreground:#1f1f1f;--grid-unit:8px;--grid-unit-2:calc(var(--grid-unit)*2);--grid-unit-3:calc(var(--grid-unit)*3);--grid-unit-4:calc(var(--grid-unit)*4);--grid-unit-5:calc(var(--grid-unit)*5);--grid-unit-6:calc(var(--grid-unit)*6);--accent-ink:#0b0b0b;--accent-ink-faint:#0b0b0b24;--activity-grid-cell-size:16px;--activity-grid-cell-gap:6px;--activity-grid-padding:0px;--activity-grid-cell-color:#b0b0b0;--activity-grid-letter-color:#1f1f1f1a;--activity-grid-opacity-min:.01;--activity-grid-opacity-max:.09;--project-surface:#efefef;--project-surface-border:#a6a6a6;--project-surface-border-light:#f8f8f8;--project-surface-border-dark:#9a9a9a;--project-surface-shadow:#0003;--project-titlebar:#dcdcdc;--project-titlebar-border:#a6a6a6;--project-control:#cfcfcf;--project-control-dark:#969696;--project-accent:#6fe3be;--project-muted:#5a5a5a;--accent-mint:#6fe3be;--accent-peach:#eac7a6;--accent-sky:#5fa2c9;--accent-ice:#8fbdd6;--accent-rose:#f1c5c5;--accent-caramel:#c29859;--news-grid-line:#0000000d;--news-rail:#5fa2c9e6;--news-rail-glow:#5fa2c940;--news-stamp-bg:#6fe3be29;--news-badge-bg:#eac7a640;--news-surface:#f5f1ea;--news-surface-border:#c9c3b8;--news-titlebar:#e8e2d8;--news-titlebar-border:#c9c3b8;--news-shadow:#0000001f;--about-mail-surface:#fff;--about-mail-border:#d3cdc4;--about-mail-toolbar:#f1ede6;--about-mail-shadow:#0000001f;--about-mail-muted:#5f5f5f;--about-mail-accent:#5fa2c9;--about-mail-avatar-bg:#1f1f1f;--about-mail-avatar-text:#f8f8f8;--about-mail-body:#1f1f1f}@media (prefers-color-scheme:dark){:root{--background:#171717;--foreground:#f0f0f0;--accent-ink:#f2f2f2;--accent-ink-faint:#f2f2f224;--activity-grid-cell-color:#3a3a3a;--activity-grid-letter-color:#f0f0f026;--project-surface:#2b2b2b;--project-surface-border:#4a4a4a;--project-surface-border-light:#5a5a5a;--project-surface-border-dark:#1e1e1e;--project-surface-shadow:#00000080;--project-titlebar:#3a3a3a;--project-titlebar-border:#2a2a2a;--project-control:#4a4a4a;--project-control-dark:#1e1e1e;--project-accent:#f0f0f0;--project-muted:#c9c9c9;--news-grid-line:#ffffff0d;--news-rail:#8fbdd6e6;--news-rail-glow:#8fbdd659;--news-stamp-bg:#5fa2c933;--news-badge-bg:#f1c5c538;--news-surface:#24211e;--news-surface-border:#3c362f;--news-titlebar:#2f2a25;--news-titlebar-border:#3c362f;--news-shadow:#00000073;--about-mail-surface:#23201c;--about-mail-border:#3c362f;--about-mail-toolbar:#2a2621;--about-mail-shadow:#00000080;--about-mail-muted:#c2c2c2;--about-mail-accent:#8fbdd6;--about-mail-avatar-bg:#f0f0f0;--about-mail-avatar-text:#1f1f1f;--about-mail-body:#f0f0f0}}html,body{width:100%;height:100%;margin:0;padding:0}body{background:var(--background);color:var(--foreground);font-family:var(--font-body);min-height:100vh;line-height:1.6;overflow-x:hidden}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page-content{z-index:1;padding:calc(var(--grid-unit)*9)0 calc(var(--grid-unit)*12);gap:var(--grid-unit-4);flex-direction:column;align-items:flex-start;width:100%;margin:0;display:flex;position:relative}.home-layout{gap:var(--grid-unit-4);width:100%;max-width:1100px;padding-left:clamp(var(--grid-unit-2),4vw,var(--grid-unit-6));padding-right:clamp(var(--grid-unit-4),10vw,calc(var(--grid-unit)*16));box-sizing:border-box;grid-template-columns:minmax(0,1fr);align-items:start;margin:0;display:grid;position:relative}.home-main{gap:var(--grid-unit-4);border-left:2px solid var(--accent-ink);min-width:0;padding-left:var(--grid-unit-3);display:grid}.home-aside{align-self:start;min-width:0}.home-main>header{gap:var(--grid-unit-4);box-sizing:border-box;text-align:left;grid-template-columns:minmax(0,1fr);place-items:start;width:100%;margin:0;animation:.8s ease-out both heroReveal;display:grid}#projects,#news{gap:var(--grid-unit-3);box-sizing:border-box;grid-template-columns:minmax(0,1fr);width:100%;margin:0;display:grid}h1{font-size:clamp(2rem,3.6vw,3.2rem);font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;white-space:nowrap;margin:0 0 12px;font-weight:600;line-height:1.05}.project-window{background:var(--project-surface);border:2px solid var(--project-surface-border);border-left:4px solid var(--accent-ink);width:100%;box-shadow:inset 1px 1px 0 var(--project-surface-border-light),inset -1px -1px 0 var(--project-surface-border-dark),0 12px 24px var(--project-surface-shadow);font-family:var(--font-mono);border-radius:6px;padding:0;position:relative}.project-window__titlebar{justify-content:space-between;align-items:center;gap:var(--grid-unit-2);padding:var(--grid-unit)var(--grid-unit-2);background:var(--project-titlebar);border-bottom:2px solid var(--project-titlebar-border);color:var(--foreground);display:flex}.project-window__titlebar-text{letter-spacing:.01em;white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0;font-size:.95rem;font-weight:600;line-height:1.2}.project-window__controls{flex-shrink:0;gap:6px;display:flex}.project-window__button{border:1px solid var(--project-surface-border-dark);background:var(--project-control);width:20px;height:18px;color:var(--foreground);box-shadow:inset 1px 1px 0 var(--project-surface-border-light),inset -1px -1px 0 var(--project-control-dark);cursor:pointer;border-radius:2px;place-items:center;padding:0;font-family:inherit;font-size:.85rem;line-height:1;display:grid}.project-window__button:active{box-shadow:inset -1px -1px 0 var(--project-surface-border-light),inset 1px 1px 0 var(--project-control-dark)}.project-window__button:disabled{color:var(--project-muted);cursor:default;background:var(--project-titlebar)}.project-window__body{padding:var(--grid-unit-3);color:var(--project-muted);font-size:.95rem;line-height:1.6;display:grid}.project-window__content{gap:12px;min-width:0;display:grid}.project-window__body--media{gap:var(--grid-unit-3);grid-template-columns:minmax(0,1fr) minmax(0,40%);align-items:start}.project-window__body--media .project-window__content{grid-column:1}.project-window__body--media .project-window__media{grid-column:2;align-self:start;width:100%}.project-window--collapsed .project-window__body{display:none}.project-window__label{color:var(--project-accent);margin-right:8px;font-weight:600}.project-window__tldr .project-window__label{color:var(--accent-mint)}.project-window__insight .project-window__label{color:var(--accent-peach)}.project-window__stack .project-window__label{color:var(--accent-sky)}.project-window__text{color:inherit;overflow-wrap:anywhere}.project-window__tldr,.project-window__insight{margin:0}.project-window__media{padding:var(--grid-unit);border:1px solid var(--project-surface-border);background:var(--project-titlebar);box-shadow:inset 0 0 0 1px var(--project-surface-border-light);border-radius:6px;margin:0;overflow:hidden}.project-window__image{border-radius:4px;width:100%;max-width:100%;height:auto;display:block}@media (max-width:900px){.project-window__body--media{grid-template-columns:minmax(0,1fr)}.project-window__body--media .project-window__media{grid-column:1;justify-self:stretch;width:100%;max-width:100%}}.project-window__stack{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.project-window__tags{color:var(--foreground);flex-wrap:wrap;gap:12px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.project-window__tag{overflow-wrap:anywhere;padding:0;font-size:.9rem}.project-window__links{border-top:1px solid var(--project-surface-border);color:var(--foreground);flex-wrap:wrap;gap:12px;padding-top:12px;font-size:.9rem;display:flex}.project-window__link{color:var(--accent-sky);font-weight:600;text-decoration:none}.project-window__link:before{content:"> "}.project-window__link:hover{color:var(--accent-caramel);text-decoration:underline}.about-box{width:100%;animation:.8s ease-out both projectReveal}.about-mail{background:var(--about-mail-surface);border:1px solid var(--about-mail-border);box-shadow:0 14px 30px var(--about-mail-shadow);border-radius:14px;overflow:hidden}.about-mail__toolbar{background:var(--about-mail-toolbar);border-bottom:1px solid var(--about-mail-border);font-family:var(--font-mono);letter-spacing:.26em;text-transform:uppercase;color:var(--about-mail-muted);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;font-size:.62rem;display:flex}.about-mail__toolbar-left,.about-mail__toolbar-right{align-items:center;gap:12px;display:flex}.about-mail__folder{color:var(--about-mail-accent);font-weight:600}.about-mail__action{color:var(--about-mail-muted)}.about-mail__header{border-bottom:1px solid var(--about-mail-border);grid-template-columns:auto minmax(0,1fr);gap:12px;padding:16px;display:grid}.about-mail__avatar{background:var(--about-mail-avatar-bg);width:42px;height:42px;color:var(--about-mail-avatar-text);font-family:var(--font-mono);border-radius:999px;place-items:center;font-size:1rem;font-weight:600;display:grid}.about-mail__meta{gap:6px;min-width:0;display:grid}.about-mail__subject-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.about-mail__subject{font-family:var(--font-display);letter-spacing:-.01em;color:var(--foreground);margin:0;font-size:1.25rem}.about-mail__time{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--about-mail-muted);white-space:nowrap;font-size:.7rem}.about-mail__body{font-family:var(--font-body);color:var(--about-mail-body);gap:12px;padding:14px 16px 18px;font-size:.98rem;line-height:1.7;display:grid}.about-mail__body p{margin:0}@media (min-width:768px){.home-main>header{gap:calc(var(--grid-unit)*6);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}.ls-links{justify-self:end}}@media (max-width:640px){.home-main{border-left:none;padding-left:0}}@media (min-width:1400px){.home-aside{width:min(240px,50vw - 566px);margin-top:0;position:absolute;top:0;left:calc(100% + 16px)}}header h1{white-space:nowrap;align-items:center;gap:var(--grid-unit);margin-bottom:0;display:inline-flex}header h1:before{content:"";background:var(--accent-ink);width:10px;height:10px;display:inline-block}header span{color:var(--project-muted);font-family:var(--font-mono);font-size:.95rem;display:block}.ls-links{font-family:var(--font-mono);color:var(--foreground);text-align:left;justify-self:start;font-size:.85rem;line-height:1.5}.ls-links__header{color:var(--project-muted);margin-bottom:4px}.ls-links__list{margin:0;padding:0;list-style:none}.ls-links__item{white-space:pre;grid-template-columns:auto auto 1fr;gap:12px;display:grid}.ls-links__perms,.ls-links__date{color:var(--project-muted)}.ls-links__anchor{color:inherit;text-decoration:none}.ls-links__anchor:visited{color:inherit}.ls-links__anchor:hover{text-decoration:underline}#projects>*{animation:.8s ease-out both projectReveal}#news>*{animation:.8s ease-out .16s both projectReveal}#projects>:first-child{animation-delay:.12s}#projects>:nth-child(2){animation-delay:.22s}#projects>:nth-child(3){animation-delay:.32s}.news-window{font-family:var(--font-body);--project-surface:var(--news-surface);--project-surface-border:var(--news-surface-border);--project-titlebar:var(--news-titlebar);--project-titlebar-border:var(--news-titlebar-border);--project-surface-shadow:var(--news-shadow)}.news-window__titlebar{font-family:var(--font-mono);gap:16px}.news-window__status{font-family:var(--font-mono);letter-spacing:.26em;text-transform:uppercase;color:var(--project-muted);border:1px solid var(--project-surface-border);white-space:nowrap;border-radius:999px;padding:2px 8px 2px 20px;font-size:.62rem;position:relative}.news-window__status:before{content:"";background:var(--accent-mint);width:6px;height:6px;box-shadow:0 0 8px var(--news-rail-glow);border-radius:999px;animation:2.6s ease-in-out infinite newsPulse;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.news-window__body{isolation:isolate;padding:16px 18px 18px;position:relative;overflow:hidden}.news-window__body:before{content:"";background:repeating-linear-gradient(0deg,var(--news-grid-line)0,var(--news-grid-line)1px,transparent 1px,transparent 6px);opacity:.4;pointer-events:none;z-index:0;position:absolute;inset:0}.news-window__intro{font-family:var(--font-mono);letter-spacing:.32em;text-transform:uppercase;color:var(--project-muted);z-index:1;margin:0;font-size:.62rem;position:relative}.news-window__list{z-index:1;gap:14px;margin:0;padding:0;list-style:none;display:grid;position:relative}.news-window__entry{animation:.8s ease-out both newsEntryReveal;animation-delay:var(--news-delay,0s);grid-template-columns:minmax(0,1fr);align-items:start;gap:10px;padding:4px 0 12px;transition:transform .3s,filter .3s;display:grid;position:relative}.news-window__entry+.news-window__entry{border-top:1px dashed var(--project-surface-border);padding-top:14px}.news-window__entry:hover,.news-window__entry:focus-within{filter:saturate(1.05);transform:translate(4px)}.news-window__content{gap:8px;min-width:0;display:grid}.news-window__title{font-family:var(--font-display);color:var(--foreground);letter-spacing:-.015em;text-wrap:pretty;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;font-size:clamp(.95rem,.7vw + .55rem,1.05rem);font-weight:600;line-height:1.2;text-decoration:none}.news-window__title:visited{color:var(--foreground)}.news-window__title:hover{color:var(--accent-caramel)}.news-window__title:focus-visible{outline:2px solid var(--accent-sky);outline-offset:2px}.news-window__meta{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--project-muted);flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:.6rem;display:flex}.news-window__badge,.news-window__flag{border:1px solid var(--project-surface-border);color:var(--foreground);border-radius:999px;padding:2px 6px}.news-window__badge{background:var(--news-badge-bg)}.news-window__flag{background:var(--news-stamp-bg)}.news-window__source,.news-window__domain{color:var(--project-muted)}@keyframes heroReveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes projectReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes newsEntryReveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes newsPulse{0%,to{opacity:.4;transform:translateY(-50%)scale(.85)}50%{opacity:1;transform:translateY(-50%)scale(1)}}.activity-grid-wrapper{z-index:0;pointer-events:none;contain:layout paint;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.activity-grid-cells{contain:layout paint;width:100%;height:100%;display:block;position:absolute;inset:0}.activity-grid-letters{grid-template-columns:repeat(var(--activity-grid-columns,1),var(--activity-grid-cell-size));grid-template-rows:repeat(var(--activity-grid-rows,1),var(--activity-grid-cell-size));gap:var(--activity-grid-cell-gap);padding:var(--activity-grid-padding);contain:layout paint;z-index:1;display:grid;position:absolute;inset:0}.activity-grid-letter{font-family:var(--font-mono);font-size:calc(var(--activity-grid-cell-size)*.65);color:var(--activity-grid-letter-color);text-transform:uppercase;-webkit-user-select:none;user-select:none;pointer-events:none;justify-content:center;align-items:center;font-weight:500;line-height:1;display:flex}@media (prefers-reduced-motion:reduce){.home-main>header,#news>*,#projects>*{animation:none;transform:none}.news-window__status:before,.news-window__entry{animation:none}.news-window__entry,.news-window__entry:hover,.news-window__entry:focus-within{transition:none;transform:none}.project-window{transition:none}.about-box{animation:none}}
