@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.3a-pd9010p_dh.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:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(../media/e62850744c7f266e-s.0n7ulcr4ivksg.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(../media/9433d1a810498265-s.p.1hij5ex6k3v9q.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:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.3a-pd9010p_dh.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:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(../media/e62850744c7f266e-s.0n7ulcr4ivksg.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(../media/9433d1a810498265-s.p.1hij5ex6k3v9q.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:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.3a-pd9010p_dh.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:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(../media/e62850744c7f266e-s.0n7ulcr4ivksg.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(../media/9433d1a810498265-s.p.1hij5ex6k3v9q.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:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/150f724d70372c02-s.1ljbalzvxyif7.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:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/750c737482d9de2f-s.3ex3j6ahhvjry.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.40bho2kviej2o.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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/150f724d70372c02-s.1ljbalzvxyif7.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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/750c737482d9de2f-s.3ex3j6ahhvjry.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.40bho2kviej2o.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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/150f724d70372c02-s.1ljbalzvxyif7.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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/750c737482d9de2f-s.3ex3j6ahhvjry.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.40bho2kviej2o.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:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_9fe33ea-module__l8nX4q__className{font-family:Newsreader,Newsreader Fallback}.newsreader_9fe33ea-module__l8nX4q__variable{--font-display:"Newsreader", "Newsreader Fallback"}
@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-20C4,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-20C4,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-20C4,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_a5fa2b34-module__HXcp5W__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_a5fa2b34-module__HXcp5W__variable{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.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.2vemzm0itqzfy.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.3cb5lpr2l6xud.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.1u30mmyq6lnsd.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-20C4,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.40sczeszzbjw1.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.1yd4_i3e35931.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.1qc6dx89jd2qv.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.29yke99gs9qpn.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.1i-sca43-qwng.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-20C4,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.0oace-s_gkfks.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_30c7ab4c-module__VCrZzq__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_30c7ab4c-module__VCrZzq__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--paper:#e8edf2;--surface:#fff;--surface-2:#f3f6f9;--surface-3:#eaeff4;--ink:#12181f;--ink-soft:#48535f;--muted:#74808d;--line:#d5dde5;--line-strong:#b7c2ce;--primary:#2b46d9;--primary-strong:#1d33b4;--primary-soft:#e6eaff;--accent:#dd4b1c;--accent-soft:#fdece4;--ok:#1c7a48;--ok-soft:#e2f3e9;--danger:#b02a1f;--danger-soft:#fbe8e6;--radius:6px;--radius-lg:10px;--shadow-sm:0 1px 2px #12181f0f, 0 1px 1px #12181f0a;--shadow-md:0 8px 24px #12181f17;--shadow-lg:0 24px 60px #12181f24;--font-display:Georgia, serif;--font-sans:system-ui, sans-serif;--font-mono:ui-monospace, monospace;--maxw:1180px;--maxw-wide:1640px;--header-h:58px;--app-pad:18px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:linear-gradient(#2b46d90b 1px,#0000 1px),linear-gradient(90deg,#2b46d90b 1px,#0000 1px);background-size:28px 28px;flex-direction:column;font-size:16px;line-height:1.6;display:flex}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0 0 .5em;font-weight:500;line-height:1.15}h1{font-size:clamp(2.1rem,4.4vw,3.4rem)}h2{font-size:clamp(1.5rem,2.6vw,2rem)}h3{font-size:1.25rem}p{margin:0 0 1em}a{color:var(--primary);text-decoration:none}a:hover{text-underline-offset:2px;text-decoration:underline}code,pre,.mono{font-family:var(--font-mono)}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.lede{color:var(--ink-soft);max-width:56ch;font-size:1.12rem}.muted{color:var(--muted)}.small{font-size:.85rem}.grow{flex:1}.row{align-items:center;gap:12px;display:flex}.row--between{justify-content:space-between}.site-header{z-index:50;-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);background:#e8edf2d9;position:sticky;top:0}.site-header .wrap{height:var(--header-h);justify-content:space-between;align-items:center;gap:18px;display:flex}.site-header--wide .wrap{max-width:var(--maxw-wide)}.brand-group{align-items:center;gap:12px;min-width:0;display:flex}.brand{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--ink);white-space:nowrap;align-items:baseline;gap:8px;font-size:1.05rem;font-weight:500;display:inline-flex}.brand:hover{text-decoration:none}.brand svg{align-self:center;display:block}.header-sep{background:var(--line-strong);flex:none;width:1px;height:22px}.header-title{font-family:var(--font-display);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:46vw;font-size:1.08rem;overflow:hidden}.header-actions{align-items:center;gap:8px;display:flex}.nav{flex:none;align-items:center;gap:6px;display:flex}.nav a,.nav button{color:var(--ink-soft);border-radius:var(--radius);padding:6px 10px;font-size:.9rem}.nav a:hover{color:var(--ink);background:var(--surface-2);text-decoration:none}.nav a.btn{color:var(--ink)}.nav a.btn:hover{color:var(--ink);background:var(--surface-2)}.nav a.btn--primary,.nav a.btn--primary:hover{color:#fff;background:var(--primary);border-color:var(--primary)}.nav a.btn--primary:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.nav a.btn--accent,.nav a.btn--accent:hover{color:#fff;background:var(--accent);border-color:var(--accent)}.nav .nav-active{color:var(--ink);background:var(--surface-2)}.top-progress{z-index:200;pointer-events:none;opacity:0;height:3px;transition:opacity .2s;position:fixed;inset:0 0 auto}.top-progress.is-active{opacity:1}.top-progress__bar{background:linear-gradient(90deg, var(--primary), var(--accent));width:0;height:100%;transition:width .26s cubic-bezier(.22,.61,.36,1);display:block;position:relative;box-shadow:0 1px 4px #2b46d959}.top-progress__bar:after{content:"";filter:blur(2px);background:linear-gradient(90deg,#0000,#dd4b1cd9);width:90px;position:absolute;top:0;bottom:0;right:0}.top-progress__toast{top:calc(var(--header-h) + 10px);z-index:200;color:#fff;letter-spacing:.02em;pointer-events:none;opacity:0;background:#12181fdb;border-radius:999px;padding:5px 12px;font-size:.78rem;transition:opacity .2s,transform .2s;position:fixed;left:50%;transform:translate(-50%,-6px)}.top-progress__toast.is-visible{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.top-progress__bar{transition:none}.top-progress__toast{transition:opacity .2s;transform:translate(-50%)}}.user-menu{position:relative}.user-menu-trigger{border-radius:var(--radius);color:var(--ink-soft);font-family:var(--font-sans);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:6px 10px;font-size:.9rem;display:inline-flex}.user-menu-trigger:hover{color:var(--ink);background:var(--surface-2)}.user-menu-trigger .caret{color:var(--muted);font-size:.7rem}.user-menu-list{z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:210px;box-shadow:var(--shadow-md);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.user-menu-head{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;margin-bottom:6px;padding:8px 10px 10px;display:flex}.user-menu-name{color:var(--ink);font-size:.9rem}.user-menu-email{color:var(--muted);font-size:.75rem}.user-menu-item{border-radius:var(--radius);width:100%;color:var(--ink-soft);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:0;padding:7px 10px;font-size:.9rem;display:block}.user-menu-item:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.btn{border-radius:var(--radius);font-family:var(--font-sans);cursor:pointer;background:var(--surface);color:var(--ink);border:1px solid #0000;border-color:var(--line-strong);justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:.92rem;font-weight:500;line-height:1.2;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn--primary:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.btn--accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn--accent:hover{filter:brightness(.94)}.btn--ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--surface-2);color:var(--ink)}.btn--danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn--danger:hover{background:var(--danger-soft)}.btn--sm{padding:5px 10px;font-size:.82rem}.btn--icon{width:30px;height:30px;padding:6px}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{color:var(--ink-soft);font-size:.82rem;font-weight:500}.field .hint{color:var(--muted);font-size:.78rem}input[type=text],input[type=email],input[type=password],input[type=search],select,textarea{font-family:var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;width:100%;padding:9px 11px;font-size:.95rem}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}textarea.wanim-inline-editor,textarea.wanim-inline-editor:focus{box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:none!important;padding:0!important}.input-prefix{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);align-items:stretch;display:flex;overflow:hidden}.input-prefix:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input-prefix .prefix{font-family:var(--font-mono);color:var(--muted);background:var(--surface-2);border-right:1px solid var(--line);align-items:center;padding:0 10px;font-size:.85rem;display:flex}.input-prefix input{box-shadow:none;border:0;border-radius:0}.input-prefix input:focus{box-shadow:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:22px}.badge{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);color:var(--ink-soft);background:var(--surface-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:.7rem;display:inline-flex}.badge--public{color:var(--ok);background:var(--ok-soft);border-color:#b6dcc6}.badge--unlisted{color:#8a5a00;background:#fdf3dc;border-color:#e6cf9b}.badge--draft{color:var(--muted)}.notice{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink-soft);padding:10px 12px;font-size:.88rem}.notice--error{background:var(--danger-soft);color:var(--danger);border-color:#e6b3ac}.notice--ok{background:var(--ok-soft);color:var(--ok);border-color:#b6dcc6}.modal-backdrop{z-index:100;background:#12181f73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:22px}.modal h2{margin-bottom:16px;font-size:1.3rem}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;margin:8px 0 20px;padding-bottom:10px;display:flex}.section-head h2{margin:0}.page{flex:1 0 auto;padding:40px 0 72px}.dash-list{flex-direction:column;gap:12px;display:flex}.dash-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);align-items:center;gap:16px;padding:16px 18px;transition:border-color .15s,box-shadow .15s;display:flex}.dash-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.dash-row .title{font-family:var(--font-display);color:var(--ink);font-size:1.15rem}.dash-row .meta{font-family:var(--font-mono);color:var(--muted);font-size:.75rem}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);text-align:center;background:#ffffff80;padding:48px 24px}.scene-list{flex-direction:column;gap:2px;margin:0;padding:6px;list-style:none;display:flex}.scene-item{border-radius:var(--radius);align-items:center;gap:8px;padding:7px 8px;display:flex}.scene-item:hover{background:var(--surface-2)}.scene-item .index{font-family:var(--font-mono);color:var(--muted);min-width:18px;font-size:.72rem}.scene-item .name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.scene-item .tools{opacity:0;gap:2px;transition:opacity .12s;display:flex}.scene-item:hover .tools,.scene-item.active .tools{opacity:1}.scene-item.active{background:var(--primary-soft)}.scene-item.active .name{color:var(--primary-strong);font-weight:500}.app-main{height:calc(100vh - var(--header-h));padding:var(--app-pad) 22px;overflow:hidden}.app-inner{max-width:var(--maxw-wide);flex-direction:column;height:100%;min-height:0;margin:0 auto;display:flex}.stage-frame{flex-direction:column;min-height:0;display:flex;position:relative}.stage-frame--fill{flex:1}.canvas-wrap{flex:1;justify-content:center;align-items:flex-start;min-height:0;display:flex;overflow:hidden}.canvas-box{position:relative}.canvas-box canvas{background:#000;width:100%;height:100%;display:block}.stage-status{font-family:var(--font-mono);color:var(--muted);white-space:pre-wrap;font-size:.74rem}.stage-status.error{color:var(--danger)}.output-box{border:1px solid var(--line-strong);background:var(--surface);height:26%;min-height:84px;color:var(--ink-soft);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;flex:none;padding:10px 12px;font-size:.76rem;line-height:1.5;overflow:auto}.output-box.error{color:var(--danger)}.editor-shell{flex-direction:column;gap:10px;height:100%;min-height:0;display:flex}.editor-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-toolbar .grow{flex:1}.editor-split{flex:1;grid-template-columns:minmax(0,44%) minmax(0,56%);gap:14px;min-height:0;display:grid}.courseware-layout{flex:1;grid-template-columns:264px minmax(0,1fr);gap:14px;min-height:0;display:grid}.editor-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;min-height:0;display:flex;overflow:hidden}.editor-side-head{border-bottom:1px solid var(--line);padding:14px}.side-title{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;overflow:hidden}.editor-side .scene-list{flex:1;overflow:auto}.name-input{min-width:0;font:inherit;border:1px solid var(--primary);background:var(--surface);border-radius:4px;flex:1;padding:3px 7px;font-size:.9rem}.editor-pane{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.code-host{border:1px solid var(--line-strong);background:#0f172a;border-radius:0;flex:1;min-height:0;font-size:12.5px;position:relative;overflow:hidden}.code-host .cm-editor{height:100%;font-size:12.5px}.code-host .cm-scroller{font-family:var(--font-mono);line-height:1.5}.display-layout{flex:1;grid-template-columns:212px minmax(0,1fr);gap:14px;min-height:0;display:grid}.display-toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;min-height:0;display:flex;overflow:auto}.display-toc-head{border-bottom:1px solid var(--line);background:var(--surface);padding:12px 14px;position:sticky;top:0}.display-stage{flex-direction:column;min-width:0;min-height:0;display:flex}.display-bar{flex-wrap:wrap;align-items:center;gap:14px;padding:10px 2px 0;display:flex}.display-bar .kbd{font-family:var(--font-mono);color:var(--muted);font-size:.72rem}kbd{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink-soft);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:.72rem}.docs{grid-template-columns:220px 1fr;align-items:start;gap:40px;display:grid}.docs-toc{top:calc(var(--header-h) + 16px);border-left:1px solid var(--line);flex-direction:column;gap:7px;padding-left:16px;font-size:.88rem;display:flex;position:sticky}.docs-toc a{color:var(--ink-soft)}.docs-body{min-width:0;max-width:74ch}.docs-body h2{margin-top:40px;padding-top:10px}.docs-body pre{color:#e2e8f0;border-radius:var(--radius);background:#0f172a;padding:16px;font-size:.84rem;line-height:1.55;overflow-x:auto}.code-block{border:1px solid var(--line-strong);border-radius:var(--radius);background:#0f172a;margin:16px 0;overflow:hidden}.code-block .cm-editor{background:#0f172a}.code-block .cm-scroller{font-family:var(--font-mono);line-height:1.55}.docs-body code{font-size:.86em}.docs-body p code,.docs-body li code{background:var(--surface-3);border:1px solid var(--line);border-radius:4px;padding:1px 5px}.docs-body table{border-collapse:collapse;width:100%;margin:16px 0;font-size:.88rem}.docs-body th,.docs-body td{border:1px solid var(--line);text-align:left;padding:7px 10px}.docs-body th{background:var(--surface-2);font-weight:500}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:28px 0 48px;font-size:.85rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}@media (max-width:900px){.docs{grid-template-columns:1fr}.docs-toc{position:static}.app-main{height:auto;overflow:visible}.editor-split,.display-layout,.courseware-layout{grid-template-columns:1fr}.editor-shell,.display-stage,.stage-frame--fill{height:auto}.code-host{height:50vh}.display-toc{max-height:30vh}.header-title{max-width:30vw}}
