@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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 Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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 Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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 Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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 Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_5c1b7a14-module__EyR9za__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_5c1b7a14-module__EyR9za__variable{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.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:300;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.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:300;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.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:300;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.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:300;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.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:300;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.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:400;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.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/cc545e633e20c56d-s.176arc174-8zp.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/71b036adf157cdcf-s.0bp8oijd_gu96.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/89b21bb081cb7469-s.1fby2rem9ngyr.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/3fe682a82f50d426-s.0vfdmo25voy_0.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/70bc3e132a0a741e-s.p.3t6q91iet4nsy.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/13bf9871fe164e7f-s.2f7nqdagzwx2-.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/cc545e633e20c56d-s.176arc174-8zp.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/71b036adf157cdcf-s.0bp8oijd_gu96.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/89b21bb081cb7469-s.1fby2rem9ngyr.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/3fe682a82f50d426-s.0vfdmo25voy_0.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/70bc3e132a0a741e-s.p.3t6q91iet4nsy.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:600;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.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:600;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.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:600;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.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:600;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.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:600;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.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:600;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.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_80f53179-module__NbcOlW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_80f53179-module__NbcOlW__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.2ytmazkdrg7t9.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:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.3j3877k49yy0l.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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.1icgra-w5i50b.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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.1g73gv09-xcb6.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:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_d5e7c372-module__6NGlDq__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_d5e7c372-module__6NGlDq__variable{--font-display:"Instrument Serif", "Instrument Serif Fallback"}
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans), system-ui, sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono), ui-monospace, monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.grow{flex-grow:1}.resize{resize:both}.border{border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--paper:#fbf9f6;--paper-2:#f6f3ef;--paper-3:#ede9e4;--ink:#15110c;--ink-2:#2d2823;--muted:#625d58;--muted-2:#847f7b;--rule:#d3d0ce;--rule-2:#bab7b3;--warm:#cf6e37;--warm-soft:#cf6e371f;--cool:#328bb0;--cool-soft:#328bb01f;--green:#4e9a52;--red:#d74745;--term-bg:#0f0a06;--term-fg:#efeae5;--term-dim:#a29e99;--term-warm:#ea8751;--term-cool:#5bb0d7;--term-green:#6dba70;--term-rule:#322d28;--f-serif:var(--font-display), "Iowan Old Style", Georgia, serif;--f-sans:var(--font-sans), ui-sans-serif, system-ui, sans-serif;--f-mono:var(--font-mono), "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--gutter:clamp(20px, 4vw, 56px);--maxw:1400px}@supports (color:lab(0% 0 0)){:root{--paper:lab(97.915% .567883 1.79799);--paper-2:lab(95.9435% .683308 2.15881);--paper-3:lab(92.4644% .916481 2.88172);--ink:lab(5.25523% 1.45006 2.88487);--ink-2:lab(16.4669% 1.80864 4.24972);--muted:lab(39.672% 1.45072 3.49846);--muted-2:lab(53.5945% 1.1448 2.7881);--rule:lab(83.7571% .70551 1.73616);--rule-2:lab(74.4763% .849694 2.08527);--warm:lab(57.3488% 36.0652 47.3868);--warm-soft:lab(57.3488% 36.0652 47.3868/.12);--cool:lab(53.8277% -17.6223 -27.9492);--cool-soft:lab(53.8277% -17.6223 -27.9492/.12);--green:lab(57.505% -36.4483 30.0272);--red:lab(51.7988% 56.7776 34.0415);--term-bg:lab(3.03865% 1.03179 1.96844);--term-fg:lab(93.0444% .916362 2.88165);--term-dim:lab(65.2041% .922889 2.88587);--term-warm:lab(66.6565% 35.6285 45.8215);--term-cool:lab(67.778% -18.3336 -28.1172);--term-green:lab(69.124% -36.4091 29.6359);--term-rule:lab(18.7873% 1.79999 4.24262)}}html[data-theme=dark]{--paper:#0d0805;--paper-2:#130e0a;--paper-3:#1a1510;--ink:#f1eeea;--ink-2:#d0cdca;--muted:#948e89;--muted-2:#76706c;--rule:#2c2824;--rule-2:#3e3a35}@supports (color:lab(0% 0 0)){html[data-theme=dark]{--paper:lab(2.46955% .908017 1.7018);--paper-2:lab(4.42607% 1.30282 2.55998);--paper-3:lab(7.21156% 1.76802 3.59291);--ink:lab(94.2035% .683457 2.15892);--ink-2:lab(82.6035% .684738 2.1597);--muted:lab(59.3928% 1.43647 3.48873);--muted-2:lab(47.7924% 1.4438 3.49369);--rule:lab(16.47% 1.4891 3.52684);--rule-2:lab(24.591% 1.47077 3.51289)}}html[data-theme=crt]{--paper:#0a1108;--paper-2:#0d160a;--paper-3:#11190d;--ink:#c9f5b3;--ink-2:#a7e08e;--muted:#5fa84a;--muted-2:#4a8c38;--rule:#1f3a1a;--rule-2:#2a4e23;--warm:#c9f5b3;--cool:#5fa84a;--f-serif:var(--font-mono), monospace;--f-sans:var(--font-mono), monospace}html[data-theme=crt] body{text-shadow:0 0 1.5px #c9f5b373}html[data-theme=crt] body:before{content:"";pointer-events:none;z-index:9999;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#0000002e 0 1px,#0000 1px 3px);position:fixed;inset:0}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--paper);scroll-behavior:smooth;scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}body{font-family:var(--f-sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:17px;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}a.link{border-bottom:1px solid var(--rule-2);transition:border-color .12s,color .12s}a.link:hover{color:var(--warm);border-color:var(--warm)}::selection{background:var(--warm-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--warm);outline-offset:2px}.mono{font-family:var(--f-mono)}.serif{font-family:var(--f-serif);font-weight:400}.eyebrow{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:12.5px}.kbd{font-family:var(--f-mono);border:1px solid var(--rule-2);color:var(--ink-2);background:var(--paper-2);border-bottom-width:2px;border-radius:4px;padding:2px 6px;font-size:12.5px}.layout{max-width:var(--maxw);padding:0 var(--gutter);margin:0 auto}.topbar{z-index:50;padding:14px var(--gutter);padding-top:calc(14px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--rule);background:color-mix(in oklch, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);font-family:var(--f-mono);white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;font-size:13.5px;display:flex;position:fixed;top:0;left:0;right:0}.topbar .left{flex-shrink:1;align-items:center;gap:18px;min-width:0;display:flex;overflow:hidden}.topbar .right{color:var(--muted);flex-shrink:0;align-items:center;gap:14px;display:flex}.topbar .nav-mid{flex-shrink:1;gap:18px;display:flex;overflow:hidden}@media (max-width:1180px){.topbar .nav-mid,.topbar .left .role-tag,.topbar .left .role-sep{display:none}}.topbar .dot{background:var(--warm);width:7px;height:7px;box-shadow:0 0 0 3px var(--warm-soft);cursor:pointer;border:0;border-radius:999px;padding:0;animation:2.4s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.topbar nav a{color:var(--muted);transform-origin:bottom;padding:4px 2px;transition:color .12s,transform .16s cubic-bezier(.2,.7,.2,1);display:inline-block}.topbar nav a:hover,.topbar nav a:focus-visible{color:var(--ink);transform:translateY(-1px)scale(1.18)}.topbar nav a.active{color:var(--ink)}.topbar nav a .num{color:var(--muted-2);margin-right:4px}.topbar nav a:hover .num{color:var(--warm)}.topbar .term-btn{cursor:pointer;background:var(--paper-2);font:inherit;transition:transform .16s cubic-bezier(.2,.7,.2,1),border-color .12s,color .12s}.topbar .term-btn:hover{border-color:var(--ink);color:var(--ink);transform:scale(1.12)}.topbar .left strong{transition:transform .16s cubic-bezier(.2,.7,.2,1);display:inline-block}.topbar .left:hover strong{transform:scale(1.08)}.tray{z-index:50;padding:8px var(--gutter);padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--rule);background:color-mix(in oklch, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);font-family:var(--f-mono);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;display:flex;position:fixed;bottom:0;left:0;right:0}.tray .group{align-items:center;gap:14px;min-width:0;display:flex}.tray .group>span{white-space:nowrap}.tray .pill{border:1px solid var(--rule-2);font:inherit;color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:999px;padding:2px 8px;transition:all .12s}.tray .pill:hover{border-color:var(--ink-2);color:var(--ink);transform:scale(1.1)}.tray .pill.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media (max-width:720px){.tray .hide-mobile{display:none}}main{padding-top:64px;padding-bottom:64px}.section{border-top:1px solid var(--rule);padding:96px 0;position:relative}.section:first-of-type{border-top:none}.section-head{grid-template-columns:180px 1fr;gap:32px;margin-bottom:48px;display:grid}@media (max-width:720px){.section-head{grid-template-columns:1fr;gap:12px}}.section-head .id{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-top:8px;font-size:12.5px}.section-head h2{font-family:var(--f-serif);letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:clamp(36px,5vw,64px);font-weight:400;line-height:1.02}.section-head .sub{color:var(--muted);max-width:64ch;margin-top:12px}.hero{grid-template-columns:1fr;align-content:center;gap:48px;min-height:calc(100vh - 64px);padding:60px 0 120px;display:grid}.hero .meta{font-family:var(--f-mono);color:var(--muted);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr);gap:24px;padding-bottom:24px;font-size:14px;display:grid}@media (max-width:720px){.hero .meta{grid-template-columns:repeat(2,1fr)}}.hero .meta .k{color:var(--muted-2);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:12px;display:block}.hero .meta .v{color:var(--ink)}.hero h1{font-family:var(--f-serif);letter-spacing:-.025em;margin:0;font-size:clamp(60px,11vw,168px);font-weight:400;line-height:.88}.hero h1 .swap{color:var(--warm);font-style:italic}.hero .grid2{grid-template-columns:2fr 1fr;align-items:end;gap:56px;display:grid}@media (max-width:900px){.hero .grid2{grid-template-columns:1fr;gap:24px}}.hero .pitch{color:var(--muted);max-width:52ch;margin:0;font-size:18px;line-height:1.65}.hero .cta-row{flex-wrap:wrap;gap:16px;margin-top:24px;display:flex}.btn{font-family:var(--f-mono);border:1px solid var(--ink);color:var(--paper);background:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:10px;padding:14px 20px;font-size:14.5px;transition:all .16s;display:inline-flex}.btn:hover{background:var(--warm);border-color:var(--warm);color:var(--paper);transform:translateY(-1px)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover{background:var(--paper-3);color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}.btn.danger{background:var(--red);border-color:var(--red)}.btn.sm{padding:8px 12px;font-size:13px}.hint{font-family:var(--f-mono);color:var(--muted);border:1px dashed var(--rule-2);background:var(--paper-2);border-radius:999px;align-items:center;gap:10px;padding:8px 14px;font-size:14px;display:inline-flex}.hint .dot{background:var(--warm);border-radius:999px;width:6px;height:6px}.metrics{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr);gap:0;margin-top:64px;display:grid}@media (max-width:720px){.metrics{grid-template-columns:repeat(2,1fr)}}.metrics .cell{border-right:1px solid var(--rule);flex-direction:column;gap:4px;padding:28px 22px;display:flex}.metrics .cell:nth-child(4n){border-right:0}@media (max-width:720px){.metrics .cell:nth-child(2n){border-right:0}.metrics .cell:nth-child(3),.metrics .cell:nth-child(4){border-top:1px solid var(--rule)}}.metrics .v{font-family:var(--f-serif);letter-spacing:-.02em;font-size:44px;line-height:1}.metrics .l{font-family:var(--f-mono);color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;margin-top:8px;font-size:12.5px}.metrics .c{color:var(--muted);margin-top:6px;font-size:14px}.project-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:900px){.project-grid{grid-template-columns:1fr}}.project{border:1px solid var(--rule);background:var(--paper-2);text-align:left;font:inherit;color:inherit;cursor:pointer;flex-direction:column;gap:16px;min-height:320px;padding:28px;transition:background .16s,border-color .16s,transform .16s;display:flex;position:relative}.project:hover{background:var(--paper-3);border-color:var(--rule-2);transform:translateY(-2px)}.project.featured{grid-column:1/-1;min-height:360px;padding:36px}.project.featured .name{font-size:clamp(44px,6vw,64px)}.project .head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.project .name{font-family:var(--f-serif);letter-spacing:-.02em;font-size:clamp(32px,4.5vw,40px);line-height:1}.project .kicker{font-family:var(--f-mono);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:13px}.project .yearcell{font-family:var(--f-mono);color:var(--muted-2);text-align:right;font-size:14px}.project .summary{color:var(--ink-2);max-width:60ch;margin:0}.project .footrow{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:auto;display:flex}.project .tags{flex-wrap:wrap;gap:6px;display:flex}.project .tags .t{font-family:var(--f-mono);border:1px solid var(--rule-2);color:var(--muted);letter-spacing:.04em;border-radius:999px;padding:3px 7px;font-size:12px}.project .status{font-family:var(--f-mono);color:var(--ink-2);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.project .status:before{content:"";background:var(--warm);border-radius:999px;width:6px;height:6px}.project[data-accent=cool] .status:before{background:var(--cool)}.project .accent-rule{background:var(--warm);width:3px;position:absolute;top:0;bottom:0;left:0}.project[data-accent=cool] .accent-rule{background:var(--cool)}.overlay{z-index:200;background:color-mix(in oklch, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(8px);padding:var(--gutter);justify-content:center;align-items:center;animation:.2s fadein;display:flex;position:fixed;inset:0}@keyframes fadein{0%{opacity:0}to{opacity:1}}.overlay .sheet{background:var(--paper);border:1px solid var(--rule-2);width:100%;max-width:980px;max-height:88vh;padding:clamp(24px,5vw,48px);position:relative;overflow:auto}.overlay .close{font-family:var(--f-mono);border:1px solid var(--rule-2);cursor:pointer;color:var(--muted);background:0 0;border-radius:999px;padding:6px 10px;font-size:12.5px;position:absolute;top:20px;right:20px}.overlay .close:hover{color:var(--ink);border-color:var(--ink)}.overlay h3{font-family:var(--f-serif);margin:0 0 8px;font-size:clamp(36px,6vw,56px);font-weight:400;line-height:1}.overlay .lede{color:var(--ink-2);font-family:var(--f-serif);max-width:60ch;margin:10px 0 0;font-size:22px;line-height:1.35}.overlay .stack-list{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.overlay .stack-list span{font-family:var(--f-mono);border:1px solid var(--rule-2);color:var(--ink-2);border-radius:4px;padding:4px 8px;font-size:13px}.overlay .highlights{margin:24px 0;padding:0 0 0 18px}.overlay .highlights li{color:var(--ink-2);margin-bottom:12px}.xp{flex-direction:column;display:flex}.xp .row{border-top:1px solid var(--rule);cursor:pointer;text-align:left;font:inherit;color:inherit;background:0 0;border-bottom:0;border-left:0;border-right:0;grid-template-columns:200px 1fr 200px;gap:32px;width:100%;padding:32px 0;transition:background .16s;display:grid}.xp .row:first-child{border-top:1px solid var(--ink)}.xp .row:last-child{border-bottom:1px solid var(--rule)}.xp .row:hover{background:var(--paper-2)}.xp .row .when{font-family:var(--f-mono);color:var(--muted);font-size:14px}.xp .row .who h3{font-family:var(--f-serif);margin:0;font-size:32px;font-weight:400;line-height:1.05}.xp .row .who .role{font-family:var(--f-mono);color:var(--ink-2);margin-top:6px;font-size:14px}.xp .row .who .sum{color:var(--muted);max-width:56ch;margin-top:10px;font-size:16.5px}.xp .row .who ul{margin:12px 0 0;padding:0;list-style:none;display:none}.xp .row[data-open=true] .who ul{display:block}.xp .row .who ul li{color:var(--ink-2);padding:6px 0 6px 18px;font-size:16.5px;position:relative}.xp .row .who ul li:before{content:"→";color:var(--warm);position:absolute;left:0}.xp .row .where{font-family:var(--f-mono);color:var(--muted);text-align:right;font-size:14px}@media (max-width:900px){.xp .row{grid-template-columns:1fr;gap:12px}.xp .row .where{text-align:left}}.edu-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:16px;display:grid}@media (max-width:900px){.edu-grid{grid-template-columns:1fr}}.edu-grid .ed{border-top:1px solid var(--ink);padding-top:16px}.edu-grid .ed .cred{font-family:var(--f-serif);font-size:22px;line-height:1.2}.edu-grid .ed .inst{color:var(--muted);font-size:15.5px;font-family:var(--f-mono);margin-top:6px}.edu-grid .ed .loc{color:var(--muted-2);font-size:14px;font-family:var(--f-mono);margin-top:2px}.skills-table{grid-template-columns:200px 1fr;display:grid}@media (max-width:720px){.skills-table{grid-template-columns:1fr}}.skills-table>div{border-top:1px solid var(--rule);padding:22px 0}.skills-table>div:first-child,.skills-table>div:nth-child(2){border-top:1px solid var(--ink)}@media (max-width:720px){.skills-table>div:nth-child(2){border-top:0;padding-top:0}.skills-table .lbl{padding-bottom:8px}}.skills-table .lbl{font-family:var(--f-mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding-right:24px;font-size:14px}.skills-table .vals{flex-wrap:wrap;gap:8px;display:flex}.skills-table .vals span{font-family:var(--f-mono);border:1px solid var(--rule-2);color:var(--ink-2);background:var(--paper-2);border-radius:4px;padding:5px 10px;font-size:14.5px;transition:all .14s}.skills-table .vals span:hover{border-color:var(--ink);color:var(--ink)}.posts{grid-template-columns:1fr;display:grid}.posts .post{border-top:1px solid var(--rule);grid-template-columns:140px 1fr 110px 80px;align-items:baseline;gap:24px;padding:22px 0;transition:padding .16s;display:grid}.posts .post:hover{padding-left:8px}.posts .post:hover h4{color:var(--warm)}.posts .post:first-child{border-top:1px solid var(--ink)}.posts .post:last-child{border-bottom:1px solid var(--rule)}.posts .post .when{font-family:var(--f-mono);color:var(--muted);font-size:14px}.posts .post h4{font-family:var(--f-serif);margin:0;font-size:22px;font-weight:400;transition:color .16s}.posts .post .excerpt{color:var(--muted);max-width:60ch;margin-top:4px;font-size:15.5px}.posts .post .tag{font-family:var(--f-mono);color:var(--muted);font-size:12.5px}.posts .post .read{font-family:var(--f-mono);color:var(--muted);text-align:right;font-size:12.5px}@media (max-width:720px){.posts .post{grid-template-columns:1fr;gap:6px}.posts .post .read{text-align:left}}.now-card{border:1px solid var(--ink);background:var(--paper-2);padding:clamp(20px,4vw,36px)}.now-card .updated{font-family:var(--f-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:12.5px}.now-card .row{border-top:1px solid var(--rule);grid-template-columns:140px 1fr;gap:24px;padding:18px 0;display:grid}.now-card .row:first-of-type{border-top:1px solid var(--rule-2);margin-top:20px}@media (max-width:720px){.now-card .row{grid-template-columns:1fr;gap:6px}}.now-card .row .k{font-family:var(--f-mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:14px}.now-card .row .v{font-family:var(--f-serif);color:var(--ink);font-size:20px;line-height:1.4}.uses{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}@media (max-width:720px){.uses{grid-template-columns:1fr}}.uses .col h4{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:14px}.uses .col ul{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.uses .col ul li{border-bottom:1px solid var(--rule);padding:10px 0;font-size:16.5px}.lab-grid{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}@media (max-width:720px){.lab-grid{grid-template-columns:1fr}}.lab-grid .cell{background:var(--paper);min-height:180px;color:inherit;flex-direction:column;justify-content:space-between;padding:28px;transition:background .16s;display:flex}.lab-grid .cell:hover{background:var(--paper-2)}.lab-grid .cell h4{font-family:var(--f-serif);margin:0;font-size:28px;font-weight:400}.lab-grid .cell .note{color:var(--muted);margin-top:12px;font-size:16px}.lab-grid .cell .seq{font-family:var(--f-mono);color:var(--muted-2);letter-spacing:.18em;font-size:12px}.lab-grid .cell .meta-row{font-family:var(--f-mono);color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;margin-top:16px;font-size:13px;display:flex}.contact-block{grid-template-columns:1fr 1fr;align-items:end;gap:64px;padding-bottom:64px;display:grid}@media (max-width:900px){.contact-block{grid-template-columns:1fr;gap:32px}}.contact-block h2,.contact-block .contact-mark{font-family:var(--f-serif);letter-spacing:-.02em;margin:0;font-size:clamp(56px,9vw,132px);font-weight:400;line-height:.9}.contact-block .right{flex-direction:column;gap:20px;display:flex}.contact-block .right .row{border-top:1px solid var(--rule);font-family:var(--f-mono);grid-template-columns:90px 1fr;padding:14px 0;font-size:16px;display:grid}.contact-block .right .row:last-child{border-bottom:1px solid var(--rule)}.contact-block .right .row .k{color:var(--muted)}.footer{border-top:1px solid var(--rule);font-family:var(--f-mono);color:var(--muted);flex-direction:column;gap:24px;margin-top:64px;padding:48px 0 96px;font-size:13px;display:flex}.footer .colophon{grid-template-columns:1fr 1fr 1fr;gap:24px;display:grid}@media (max-width:720px){.footer .colophon{grid-template-columns:1fr}}.footer .big-mark{font-family:var(--f-serif);letter-spacing:-.04em;color:var(--ink);border-top:1px solid var(--rule);padding-top:16px;font-size:clamp(80px,18vw,240px);font-weight:400;line-height:.85}.terminal-shell{z-index:100;font-family:var(--f-mono);color:var(--term-fg);background:var(--term-bg);border:1px solid var(--term-rule);flex-direction:column;transition:all .24s cubic-bezier(.2,.7,.2,1);display:flex;position:fixed;box-shadow:0 24px 60px -20px #00000059,0 6px 12px -6px #0003}.terminal-shell.boot{width:min(820px,92vw);height:min(560px,80vh);top:50%;left:50%;transform:translate(-50%,-50%)}.terminal-shell.docked{width:min(560px,92vw);height:min(420px,65vh);bottom:36px;right:24px}@media (max-width:720px){.terminal-shell.docked{bottom:40px;right:4vw}}.terminal-shell.mini{cursor:pointer;width:280px;height:44px;bottom:36px;right:24px;overflow:hidden}.terminal-shell.fullscreen{width:auto;height:auto;inset:64px 16px 36px;transform:none}.terminal-head{border-bottom:1px solid var(--term-rule);color:var(--term-dim);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12.5px;display:flex}.terminal-head .lights{gap:6px;display:flex}.terminal-head .light{background:var(--term-rule);cursor:pointer;border:0;border-radius:999px;width:11px;height:11px;padding:0}.terminal-head .light.r{background:#d74745;background:lab(51.7988% 56.7776 34.0415)}.terminal-head .light.y{background:#ce9200;background:lab(65.1457% 18.1536 82.9403)}.terminal-head .light.g{background:#43a84c;background:lab(61.3221% -44.9349 37.663)}.terminal-head .title{letter-spacing:.08em}.terminal-head .ctrls{color:var(--term-dim);gap:10px;font-size:12px;display:flex}.terminal-head .ctrls button{border:1px solid var(--term-rule);color:var(--term-dim);font:inherit;cursor:pointer;background:0 0;border-radius:3px;padding:2px 6px}.terminal-head .ctrls button:hover{color:var(--term-fg);border-color:var(--term-fg)}.terminal-body{scrollbar-width:thin;scrollbar-color:var(--term-rule) transparent;flex:1;padding:14px 16px 8px;font-size:14.5px;line-height:1.55;overflow-y:auto}.terminal-body::-webkit-scrollbar{width:6px}.terminal-body::-webkit-scrollbar-thumb{background:var(--term-rule);border-radius:999px}.terminal-line{white-space:pre-wrap;word-break:break-word}.terminal-line.dim{color:var(--term-dim)}.terminal-line.warm{color:var(--term-warm)}.terminal-line.cool{color:var(--term-cool)}.terminal-line.green{color:var(--term-green)}.terminal-line.err{color:#fa6863;color:lab(63.4204% 56.5783 32.9929)}.terminal-line.prompt-echo{color:var(--term-fg)}.term-prompt-row{align-items:center;gap:6px;padding:4px 16px 14px;display:flex}.term-prompt{color:var(--term-warm);white-space:nowrap}.term-prompt .user{color:var(--term-warm)}.term-prompt .at{color:var(--term-dim)}.term-prompt .host{color:var(--term-cool)}.term-prompt .sep{color:var(--term-dim)}.term-prompt .path{color:var(--term-green)}.term-prompt .arrow{color:var(--term-dim);margin-left:4px}.term-input{color:var(--term-fg);font:inherit;caret-color:var(--term-warm);background:0 0;border:0;outline:0;flex:1;min-width:0;padding:0}.term-mini-prompt{color:var(--term-dim);align-items:center;gap:8px;padding:12px 14px;font-size:13.5px;display:flex}.term-mini-prompt .blink{color:var(--term-warm);animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.term-game-wrap{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;min-height:100%;display:flex}.term-game{letter-spacing:0;white-space:pre;-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair;max-width:100%;color:var(--term-fg);margin:0;font-family:inherit;font-size:12px;line-height:1.14;overflow:hidden}.terminal-shell.fullscreen .term-game-wrap{align-items:center}.terminal-shell.fullscreen .term-game{font-size:clamp(13px,2vh,18px)}@media (max-width:720px){.term-game{font-size:9px;line-height:1.1}}.term-game-status{width:100%;color:var(--term-dim);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:11.5px;display:flex}.term-game-status .live{color:var(--term-warm)}.boot-line{animation:.22s steps(40,end) both type}@keyframes type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.resume-grid{grid-template-columns:repeat(2,1fr);gap:24px;margin-top:32px;display:grid}@media (max-width:720px){.resume-grid{grid-template-columns:1fr}}.resume-card{background:var(--paper-2);border:1px solid var(--ink);transform-origin:top;padding:28px 24px 22px;transition:transform .22s cubic-bezier(.2,.7,.2,1),background .16s;position:relative}.resume-card:nth-child(odd){transform:rotate(-1.1deg)}.resume-card:nth-child(2n){transform:rotate(1.1deg)}.resume-card:hover{background:var(--paper);transform:rotate(0)translateY(-4px)}.resume-card[data-accent=warm]:hover{border-color:var(--warm)}.resume-card[data-accent=cool]:hover{border-color:var(--cool)}.resume-card .r-tag{font-family:var(--f-mono);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.resume-card .r-name{font-family:var(--f-serif);letter-spacing:-.01em;margin-top:8px;font-size:34px;line-height:1}.resume-card .r-desc{color:var(--ink-2);margin-top:12px;font-size:16px;line-height:1.5}.resume-card .r-meta{font-family:var(--f-mono);color:var(--muted);border-top:1px solid var(--rule);margin-top:16px;padding-top:12px;font-size:12.5px}.resume-card .r-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.login-shell{background:radial-gradient(circle at 80% 10%, var(--warm-soft), transparent 40%), radial-gradient(circle at 5% 90%, var(--cool-soft), transparent 38%), var(--paper);place-items:center;min-height:100vh;display:grid}.login-card{border:1px solid var(--ink);background:var(--paper);width:min(440px,92vw);padding:40px 36px}.login-card .brand{font-family:var(--f-mono);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;font-size:13px;display:flex}.login-card .brand .dot{background:var(--warm);border-radius:999px;width:8px;height:8px}.login-card h1{font-family:var(--f-serif);letter-spacing:-.02em;margin:18px 0 4px;font-size:48px;font-weight:400;line-height:1}.login-card .sub{color:var(--muted);margin-bottom:24px;font-size:14.5px}.field{margin-bottom:14px;display:block}.field label{font-family:var(--f-mono);color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:12px}.field input{border:1px solid var(--rule-2);background:var(--paper);width:100%;font:inherit;font-family:var(--f-mono);color:var(--ink);border-radius:0;margin-top:6px;padding:12px 14px;font-size:15px;display:block}.field input:focus{border-color:var(--ink);outline:none}.login-card .btn{justify-content:center;width:100%}.login-card .form-err{color:var(--red);font-size:13.5px;font-family:var(--f-mono);margin:-4px 0 10px}.login-card .form-notice{color:var(--green);font-size:13.5px;font-family:var(--f-mono);margin:-4px 0 10px}.login-card .alt-row{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:14px;display:flex}.login-card .alt-link{font-family:var(--f-mono);color:var(--muted);cursor:pointer;border:0;border-bottom:1px dashed var(--rule-2);background:0 0;padding:0;font-size:13px;transition:color .12s,border-color .12s}.login-card .alt-link:hover{color:var(--ink);border-color:var(--ink)}.login-card .alt-link.urgent{color:var(--warm);border-color:var(--warm)}.login-card .alt-link:disabled{opacity:.6;cursor:default}.login-card .hint{font-family:var(--f-mono);color:var(--muted);background:0 0;border:0;margin-top:18px;padding:0;font-size:12.5px;line-height:1.6;display:block}.admin-main{max-width:1280px;padding:28px var(--gutter) 96px;min-width:0;margin:0 auto}.admin-topline{font-family:var(--f-mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;font-size:12px;display:flex}.admin-topline .brand{color:var(--ink);align-items:center;gap:10px;display:inline-flex}.admin-topline .brand .dot{background:var(--warm);width:8px;height:8px;box-shadow:0 0 0 3px var(--warm-soft);border-radius:999px}.admin-topline .actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.page-head{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:28px;padding-bottom:18px;display:flex}.page-head h1{font-family:var(--f-serif);letter-spacing:-.02em;margin:0;font-size:clamp(34px,5vw,48px);font-weight:400;line-height:1}.page-head .right{font-family:var(--f-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.pill{border:1px solid var(--rule-2);cursor:pointer;font:inherit;font-family:var(--f-mono);color:var(--ink-2);background:0 0;border-radius:999px;padding:4px 10px;font-size:13px;transition:all .12s}.pill:hover{border-color:var(--ink-2);color:var(--ink)}.pill.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.kpis{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:24px;display:grid}@media (max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}}.kpis .cell{background:var(--paper);padding:20px 22px;transition:background .16s;animation:.5s cubic-bezier(.2,.7,.3,1) both rowIn}.kpis .cell:first-child{animation-delay:20ms}.kpis .cell:nth-child(2){animation-delay:70ms}.kpis .cell:nth-child(3){animation-delay:.12s}.kpis .cell:nth-child(4){animation-delay:.17s}.kpis .cell:nth-child(5){animation-delay:.22s}.kpis .cell:nth-child(6){animation-delay:.27s}.kpis .cell:nth-child(7){animation-delay:.32s}.kpis .cell:nth-child(8){animation-delay:.37s}.kpis .cell:hover{background:var(--paper-2)}.kpis .cell .val{font-variant-numeric:tabular-nums}@keyframes rowIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes growW{0%{width:0}}.kpis .cell .label{font-family:var(--f-mono);color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:11.5px}.kpis .cell .val{font-family:var(--f-serif);letter-spacing:-.02em;margin-top:8px;font-size:clamp(30px,3.4vw,44px);line-height:1}.kpis .cell .ctx{font-family:var(--f-mono);color:var(--muted);margin-top:6px;font-size:12px}.kpis .cell .ctx.live{color:var(--green)}.panel{border:1px solid var(--rule);background:var(--paper);min-width:0;margin-bottom:24px;padding:20px 24px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px;display:flex}.panel-head h3{font-family:var(--f-serif);margin:0;font-size:24px;font-weight:400;line-height:1.1}.panel-head .meta{font-family:var(--f-mono);color:var(--muted);font-size:12px}.row2{grid-template-columns:1.4fr 1fr;gap:24px;display:grid}@media (max-width:1000px){.row2{grid-template-columns:1fr}}.row2-even{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:1000px){.row2-even{grid-template-columns:1fr}}.chart-wrap{position:relative}.chart{width:100%;height:220px;display:block}.chart .axis text{font-family:var(--f-mono);fill:var(--muted);font-size:11px}.chart .grid line{stroke:var(--rule);stroke-dasharray:2 4}.chart .area{fill:var(--warm-soft);animation:.9s .45s both chartFade}.chart .line{stroke:var(--warm);stroke-width:2px;fill:none}.chart .dot{fill:var(--warm);opacity:0;animation:.35s cubic-bezier(.2,.9,.3,1.4) forwards dotPop}.chart .area2{fill:var(--cool-soft);animation:.9s .45s both chartFade}.chart .line2{stroke:var(--cool);stroke-width:2px;fill:none}.chart .line,.chart .line2{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.3s cubic-bezier(.4,.2,.2,1) .1s forwards chartDraw}.chart .guide{stroke:var(--ink);stroke-width:1px;stroke-dasharray:3 3;opacity:.55}.chart .hoverdot{fill:var(--paper);stroke-width:2px}@keyframes chartDraw{to{stroke-dashoffset:0}}@keyframes chartFade{0%{opacity:0}to{opacity:1}}@keyframes dotPop{0%{opacity:0;r:0}to{opacity:1}}.chart-tip{border:1px solid var(--ink);background:var(--paper);pointer-events:none;white-space:nowrap;z-index:6;font-family:var(--f-mono);color:var(--ink-2);padding:8px 12px;font-size:12px;animation:.15s both chartFade;position:absolute;transform:translate(-50%,calc(-100% - 14px));box-shadow:0 8px 24px #1e19121f}.chart-tip .d{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:11px}.chart-tip .v{align-items:center;gap:6px;display:flex}.chart-tip .v i{width:10px;height:2px;display:inline-block}.chart-tip .v b{color:var(--ink);font-weight:500}table.t{border-collapse:collapse;width:100%;font-size:14px}table.t th{text-align:left;font-family:var(--f-mono);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding:8px 12px 8px 0;font-size:11.5px;font-weight:400}table.t td{border-bottom:1px solid var(--rule);color:var(--ink-2);padding:12px 12px 12px 0}table.t td.k{font-family:var(--f-mono);color:var(--ink);word-break:break-all}table.t td.num{font-family:var(--f-mono);text-align:right;white-space:nowrap}table.t tbody tr{animation:.45s cubic-bezier(.2,.7,.3,1) both rowIn}table.t tbody tr:first-child{animation-delay:40ms}table.t tbody tr:nth-child(2){animation-delay:80ms}table.t tbody tr:nth-child(3){animation-delay:.12s}table.t tbody tr:nth-child(4){animation-delay:.16s}table.t tbody tr:nth-child(5){animation-delay:.2s}table.t tbody tr:nth-child(6){animation-delay:.24s}table.t tbody tr:nth-child(7){animation-delay:.28s}table.t tbody tr:nth-child(8){animation-delay:.32s}table.t tr:hover td{background:var(--paper-2)}table.t tbody tr:hover td.k{color:var(--warm)}.bar{background:var(--warm);vertical-align:middle;border-radius:2px;height:6px;transition:background .14s;animation:.8s cubic-bezier(.2,.7,.3,1) .25s both growW;display:inline-block}table.t tbody tr:hover .bar{background:var(--ink)}.bar.cool{background:var(--cool)}.empty{text-align:center;color:var(--muted);font-family:var(--f-mono);padding:40px;font-size:13px}.logstream{font-family:var(--f-mono);max-height:300px;font-size:12.5px;line-height:1.65;overflow-y:auto}.logstream .l{border-bottom:1px dashed var(--rule);grid-template-columns:130px 1fr;gap:14px;padding:4px 0;animation:.4s cubic-bezier(.2,.7,.3,1) both logIn;display:grid}@keyframes logIn{0%{opacity:0;background:var(--warm-soft);transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.logstream .l .t{color:var(--muted)}.logstream .l .m{color:var(--ink-2)}.logstream .l .m.warm{color:var(--warm)}.logstream .l .m.cool{color:var(--cool)}.globe-panel{padding:0;overflow:hidden}.globe-stage{background:var(--paper-2);height:calc(100vh - 320px);min-height:560px;position:relative}.globe-stage .globe-map{width:100%;height:100%;position:absolute;inset:0}.globe-map .maplibregl-ctrl-attrib{font-family:var(--f-mono);background:color-mix(in oklab, var(--paper) 80%, transparent);font-size:10px}.globe-map .maplibregl-ctrl-attrib a{color:var(--muted)}.globe-status{font-family:var(--f-mono);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;pointer-events:none;z-index:4;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.globe-ctrl{z-index:5;flex-direction:column;gap:6px;display:flex;position:absolute;top:18px;right:18px}.globe-ctrl button{border:1px solid var(--rule-2);background:var(--paper);width:36px;height:36px;font-family:var(--f-mono);color:var(--ink-2);cursor:pointer;place-items:center;padding:0;font-size:16px;line-height:1;transition:all .14s;display:grid}.globe-ctrl button:hover{border-color:var(--ink);color:var(--ink)}.globe-ctrl button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.globe-legend{border:1px solid var(--rule);background:color-mix(in oklab, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(6px);z-index:5;width:320px;max-width:calc(100% - 36px);padding:14px 0 0;animation:.5s cubic-bezier(.2,.7,.3,1) both gFadeUp;position:absolute;bottom:18px;left:18px}.globe-legend-head{font-family:var(--f-mono);color:var(--muted);letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--rule);padding:0 16px 10px;font-size:11.5px}.globe-row{text-align:left;cursor:pointer;width:100%;font:inherit;font-family:var(--f-mono);color:var(--ink-2);background:0 0;border:0;border-left:2px solid #0000;grid-template-columns:30px 1fr 64px 40px;align-items:center;gap:10px;padding:7px 16px 7px 14px;font-size:12.5px;display:grid}.globe-row:hover{background:var(--paper-2);color:var(--ink)}.globe-row.active{border-left-color:var(--warm);background:var(--paper-2);color:var(--ink)}.globe-row .cc{color:var(--muted);letter-spacing:.08em;font-size:11.5px}.globe-row.active .cc{color:var(--warm)}.globe-row .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.globe-row .gbar{background:var(--rule);border-radius:2px;height:4px;display:block;position:relative;overflow:hidden}.globe-row .gbar span{background:var(--warm);border-radius:2px;animation:.8s cubic-bezier(.2,.7,.3,1) .3s both growW;position:absolute;top:0;bottom:0;left:0}.globe-row .ct{text-align:right;color:var(--ink)}.globe-legend-foot{font-family:var(--f-mono);color:var(--muted);border-top:1px solid var(--rule);letter-spacing:.04em;align-items:center;gap:7px;margin-top:4px;padding:10px 16px 12px;font-size:11px;display:flex}.globe-legend-foot .hq{background:var(--cool);flex-shrink:0;width:6px;height:6px}@keyframes gFadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:720px){.globe-legend{width:calc(100% - 36px)}.globe-stage{min-height:480px}}.gm,.gm-hq{transition:opacity .24s}.gm{cursor:pointer;width:14px;height:14px;position:relative}.gm-dot{background:var(--warm);border:1.5px solid var(--paper);width:9px;height:9px;box-shadow:0 0 0 1px color-mix(in oklab, var(--warm) 45%, transparent);border-radius:999px;transition:transform .18s cubic-bezier(.2,.7,.3,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gm-pulse{border:1px solid var(--warm);border-radius:999px;width:9px;height:9px;animation:2.4s ease-out infinite gmPulse;position:absolute;top:50%;left:50%}@keyframes gmPulse{0%{opacity:.7;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(3.6)}}.gm-tag{font-family:var(--f-mono);letter-spacing:.08em;color:var(--muted);white-space:nowrap;text-shadow:0 0 4px var(--paper), 0 0 8px var(--paper);font-size:11px;transition:color .16s;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.gm:hover,.gm.hot{z-index:30}.gm:hover .gm-dot,.gm.hot .gm-dot{transform:translate(-50%,-50%)scale(1.55)}.gm:hover .gm-tag,.gm.hot .gm-tag{color:var(--ink)}.gm-card{border:1px solid var(--ink);background:var(--paper);opacity:0;pointer-events:none;width:248px;padding:14px 16px 12px;transition:opacity .2s cubic-bezier(.2,.7,.3,1),transform .2s cubic-bezier(.2,.7,.3,1);position:absolute;bottom:16px;left:50%;transform:translate(-50%)translateY(6px);box-shadow:0 12px 32px #1e191224}.gm:hover .gm-card,.gm.hot .gm-card{opacity:1;transform:translate(-50%)translateY(0)}.gm-card:after{content:"";background:var(--paper);border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.gm-card-head{align-items:baseline;gap:8px;display:flex}.gm-card-head .gm-cc{font-family:var(--f-mono);color:var(--warm);letter-spacing:.1em;font-size:11px}.gm-card-head .gm-name{font-family:var(--f-serif);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:19px;overflow:hidden}.gm-big{font-family:var(--f-serif);color:var(--ink);margin:6px 0 8px;font-size:30px;line-height:1}.gm-big span{font-family:var(--f-mono);color:var(--muted);margin-left:6px;font-size:11.5px}.gm-rows{border-top:1px solid var(--rule)}.gm-rows div{border-bottom:1px dashed var(--rule);justify-content:space-between;gap:12px;padding:5px 0;font-size:12px;display:flex}.gm-rows span{font-family:var(--f-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.gm-rows b{font-family:var(--f-mono);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.gm-cta{font-family:var(--f-mono);color:var(--warm);letter-spacing:.12em;text-transform:uppercase;padding-top:8px;font-size:11px}.gm-hq{pointer-events:none;position:relative}.gm-hq-sq{background:var(--cool);border:1px solid var(--paper);width:7px;height:7px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.gm-hq-tag{font-family:var(--f-mono);letter-spacing:.12em;color:var(--muted);white-space:nowrap;text-shadow:0 0 4px var(--paper), 0 0 8px var(--paper);font-size:10.5px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.badge{font-family:var(--f-mono);border:1px solid var(--rule-2);color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:11.5px}.badge.live{color:var(--green);border-color:var(--green)}.badge.warn{color:var(--warm);border-color:var(--warm)}.case-hero{padding:96px 0 48px}.case-hero h1{font-family:var(--f-serif);letter-spacing:-.02em;margin:12px 0 0;font-size:clamp(44px,7vw,96px);font-weight:400;line-height:.95}.case-hero .lede{font-family:var(--f-serif);color:var(--ink-2);max-width:46ch;margin-top:24px;font-size:clamp(20px,2.2vw,28px);line-height:1.35}.case-cols{border-top:1px solid var(--rule);grid-template-columns:2fr 1fr;gap:56px;padding:48px 0;display:grid}@media (max-width:900px){.case-cols{grid-template-columns:1fr;gap:32px}}.case-list{margin:16px 0 0;padding:0;list-style:none}.case-list li{color:var(--ink-2);border-bottom:1px solid var(--rule);padding:12px 0 12px 22px;position:relative}.case-list li:before{content:"→";color:var(--warm);position:absolute;left:0}.arch-steps{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px;display:grid}@media (max-width:900px){.arch-steps{grid-template-columns:1fr}}.arch-steps .step{border-top:1px solid var(--ink);padding-top:16px}.arch-steps .step .t{font-family:var(--f-serif);margin-top:8px;font-size:24px;line-height:1.15}.arch-steps .step p{color:var(--muted);font-size:16px;line-height:1.6}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.topbar .menu-btn{display:none}@media (max-width:1180px){.topbar .menu-btn{display:inline-block}}.mmenu{z-index:300;background:var(--paper);padding:calc(14px + env(safe-area-inset-top,0px)) var(--gutter) calc(20px + env(safe-area-inset-bottom,0px));flex-direction:column;animation:.18s fadein;display:flex;position:fixed;inset:0}.mmenu-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding-bottom:14px;display:flex}.mmenu-head .close{font-family:var(--f-mono);border:1px solid var(--rule-2);cursor:pointer;color:var(--muted);background:0 0;border-radius:999px;padding:8px 12px;font-size:12.5px}.mmenu-head .close:active{color:var(--ink);border-color:var(--ink)}.mmenu-nav{flex-direction:column;flex:1;justify-content:center;padding:12px 0;display:flex;overflow-y:auto}.mmenu-nav a{border-bottom:1px solid var(--rule);font-family:var(--f-serif);color:var(--ink);letter-spacing:-.01em;grid-template-columns:44px 1fr 28px;align-items:baseline;gap:8px;padding:11px 4px;font-size:clamp(26px,6.5vh,38px);line-height:1.05;animation:.4s cubic-bezier(.2,.7,.3,1) both rowIn;display:grid}.mmenu-nav a:first-child{border-top:1px solid var(--ink)}.mmenu-nav a .num{font-family:var(--f-mono);color:var(--muted-2);font-size:12.5px}.mmenu-nav a .arrow{font-family:var(--f-mono);color:var(--rule-2);justify-self:end;font-size:16px;transition:color .12s,transform .16s}.mmenu-nav a:active .arrow,.mmenu-nav a.active .arrow{color:var(--warm);transform:translate(3px)}.mmenu-nav a.active .num{color:var(--warm)}.mmenu-foot{border-top:1px solid var(--rule);flex-direction:column;gap:10px;padding-top:14px;display:flex}.mmenu-foot .row{flex-wrap:wrap;gap:8px;display:flex}.mmenu-foot .pill{border:1px solid var(--rule-2);font-family:var(--f-mono);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:999px;padding:9px 16px;font-size:13px;display:inline-block}.mmenu-foot .pill.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media (max-width:720px){.section{padding:56px 0}.section-head{margin-bottom:28px}.section-head .sub{font-size:15px}.hero{gap:32px;padding:36px 0 72px}.hero .pitch{font-size:15.5px}.metrics .cell{padding:20px 16px}.metrics .c{display:none}.metrics .v{font-size:36px}.project{min-height:0;padding:20px}.project.featured{min-height:0;padding:22px}.xp .row{padding:22px 0}.posts .post .excerpt{display:none}.posts .post{padding:16px 0}.now-card .row .v{font-size:18px}.lab-grid .cell{min-height:0;padding:20px}.contact-block{gap:20px;padding-bottom:24px}.footer{gap:16px;padding:32px 0 96px}.overlay{align-items:flex-end;padding:12px}.overlay .sheet{max-height:86vh}}
