@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");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-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");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-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");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-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");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-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");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-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");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-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");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}:root{--bg:#f3f5f5;--bg-2:#e7ecee;--panel:#fafcfc;--panel-2:#edf1f2;--line:#ccd5d9;--line-mid:#b3c1c8;--line-strong:#71828d;--grid:#cbd6dd;--grid-strong:#71828d;--text:#172c39;--text-2:#3c5260;--muted:#526977;--accent:#194c99;--accent-hover:#103b7e;--accent-ink:#fff;--accent-text:#194c99;--accent-vivid:#245eb3;--ok:#236644;--warn:#795500;--danger:#ad302e;--info:#23599c;--focus:#194c99;--category-purple:#70509c;--category-teal:#166b70;--category-rose:#9d3963;--category-amber:#80560f;--radius-xs:1px;--radius-sm:2px;--radius:2px;--radius-lg:2px;--radius-pill:2px;--shadow-card:none;--shadow-node:3px 3px 0 var(--line);--shadow-overlay:6px 6px 0 color-mix(in srgb, var(--text) 18%, transparent);--scrim:#0d1d288c;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:80px;--gutter:clamp(16px, 3vw, 24px);--fs-caption:13px;--lh-caption:18px;--fs-label:14px;--lh-label:20px;--fs-body:16px;--lh-body:25px;--fs-lead:18px;--lh-lead:28px;--fs-card:20px;--lh-card:26px;--fs-section:28px;--lh-section:34px;--fs-page:36px;--lh-page:42px;--fs-hero:clamp(34px, 4.3vw, 54px);--control-h:40px;--topbar-h:65px;--stepper-h:71px;--motion-fast:.12s;--motion-ui:.18s;--motion-enter:.24s;--ease-ui:cubic-bezier(.2, 0, 0, 1);--ease-enter:cubic-bezier(.16, 1, .3, 1);--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101c25;--bg-2:#172731;--panel:#1b2c37;--panel-2:#213440;--line:#354b58;--line-mid:#48606e;--line-strong:#8198a5;--grid:#304653;--grid-strong:#8198a5;--text:#e6eff3;--text-2:#bdcfd9;--muted:#a0b7c5;--accent:#9ac5ff;--accent-hover:#bad8ff;--accent-ink:#10243e;--accent-text:#9ac5ff;--accent-vivid:#9ac5ff;--ok:#86d8ae;--warn:#ebce7d;--danger:#ffa59e;--info:#9bc9ff;--focus:#b9daff;--category-purple:#cfb7f2;--category-teal:#8ad9d6;--category-rose:#efaecb;--category-amber:#e5c58c;--shadow-card:none;--shadow-node:3px 3px 0 var(--bg);--shadow-overlay:6px 6px 0 color-mix(in srgb, var(--bg) 80%, transparent);--scrim:#050e16bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#101c25;--bg-2:#172731;--panel:#1b2c37;--panel-2:#213440;--line:#354b58;--line-mid:#48606e;--line-strong:#8198a5;--grid:#304653;--grid-strong:#8198a5;--text:#e6eff3;--text-2:#bdcfd9;--muted:#a0b7c5;--accent:#9ac5ff;--accent-hover:#bad8ff;--accent-ink:#10243e;--accent-text:#9ac5ff;--accent-vivid:#9ac5ff;--ok:#86d8ae;--warn:#ebce7d;--danger:#ffa59e;--info:#9bc9ff;--focus:#b9daff;--category-purple:#cfb7f2;--category-teal:#8ad9d6;--category-rose:#efaecb;--category-amber:#e5c58c;--shadow-card:none;--shadow-node:3px 3px 0 var(--bg);--shadow-overlay:6px 6px 0 color-mix(in srgb, var(--bg) 80%, transparent);--scrim:#050e16bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (pointer:coarse){:root{--control-h:44px}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.55}body{overflow-x:clip}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}h1,h2,h3{text-wrap:balance;margin:0 0 .5em;line-height:1.2}h1{font-size:var(--fs-page);line-height:var(--lh-page);letter-spacing:-.02em;font-weight:600}h2{font-size:var(--fs-card);line-height:var(--lh-card);letter-spacing:-.01em;font-weight:600}h3{font-family:var(--sans);font-size:var(--fs-label);line-height:var(--lh-label);text-transform:none;letter-spacing:0;color:var(--text-2);margin-top:var(--s-6);font-weight:600}p{text-wrap:pretty;margin:0 0 1em}:where(.level-card:not(.future):not(:disabled),.slo-card,.account-card,.ach.done,.case-glance,.demo,.working,.timeline,.questions li,.checks li,.admin-table,.approaches li,.hints li.open,.ptile:not(:disabled),.consent){box-shadow:var(--shadow-card)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:var(--fs-caption);line-height:var(--lh-caption)}.eyebrow{font-family:var(--sans);font-weight:600;font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-2);letter-spacing:.04em;margin-bottom:var(--s-3)}.lede{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--text-2);max-width:56ch}.btn{min-height:var(--control-h);padding:0 var(--s-4);border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel-2);font-size:var(--fs-label);line-height:var(--lh-label);white-space:nowrap;transition:background-color var(--motion-fast) var(--ease-ui), border-color var(--motion-fast) var(--ease-ui), color var(--motion-fast) var(--ease-ui), transform var(--motion-fast) var(--ease-ui);justify-content:center;align-items:center;gap:.5em;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:color-mix(in srgb, var(--text) 4%, var(--panel-2));border-color:var(--text-2)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{background:0 0}.btn.ghost:hover:not(:disabled){background:color-mix(in srgb, var(--text) 5%, transparent)}.btn.small{min-height:36px;font-size:var(--fs-caption);padding:0 var(--s-3)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.link{border-radius:var(--radius-xs);color:var(--text-2);padding:var(--s-1) var(--s-1);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:3px;transition:color var(--motion-fast) var(--ease-ui);background:0 0;border:0}.link:hover{color:var(--text);text-decoration-color:currentColor}.actions{gap:var(--s-3);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.seg{border:1px solid var(--line-strong);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.seg button{padding:0 var(--s-3);min-height:var(--control-h);color:var(--text-2);font-family:var(--mono);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;transition:background-color var(--motion-fast) var(--ease-ui), color var(--motion-fast) var(--ease-ui);background:0 0;border:0}.seg button:hover:not(:disabled):not(.on){color:var(--text);background:color-mix(in srgb, var(--text) 4%, transparent)}.seg button:focus-visible{outline-offset:-3px}.seg button+button{border-left:1px solid var(--line-mid)}.seg button.on{background:var(--panel-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent-vivid)}.theme-toggle{border-color:var(--line-mid);border-radius:var(--radius-pill);background:var(--panel);flex:none;gap:2px;padding:2px}.theme-toggle button{border-radius:var(--radius-pill);place-items:center;width:32px;min-height:32px;padding:0;display:inline-grid}.theme-toggle button+button{border-left:0}.theme-toggle button.on{background:var(--bg-2);color:var(--accent-text);box-shadow:none}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{align-items:center;gap:var(--s-2) var(--s-5);min-height:var(--topbar-h);padding:var(--s-3) var(--gutter);border-bottom:1px solid var(--line);background:var(--bg);z-index:20;display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--s-2);min-height:var(--control-h);border-radius:var(--radius-sm);letter-spacing:-.01em;color:var(--text);background:0 0;border:0;flex:none;padding:0;font-size:17px;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark svg{fill:var(--accent-vivid);stroke:var(--accent-vivid);display:block}.lang{flex:none}.lang select{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:0 var(--s-2);font-size:var(--fs-caption);min-height:var(--control-h);max-width:11rem;transition:border-color var(--motion-fast) var(--ease-ui)}.lang select:hover{border-color:var(--text-2)}.topbar>.link{white-space:nowrap;font-size:var(--fs-label);min-height:var(--control-h);padding:0 var(--s-2);flex:none;text-decoration:none}.account-link{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;margin-left:auto;overflow:hidden}.navlink.account-link{line-height:var(--control-h);display:block}.home{width:min(1120px,100%);padding:clamp(40px, 7vw, 64px) var(--gutter) var(--s-9);margin:0 auto}.hero{margin-bottom:var(--s-7);max-width:760px}.hero h1{font-size:var(--fs-hero);max-width:18ch;margin-bottom:var(--s-4);line-height:1.08}.hero .lede{margin-bottom:var(--s-5)}.act{margin-top:var(--s-7)}.act-head{align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.act-head h2{font-size:var(--fs-card);line-height:var(--lh-card);color:var(--text);margin:0;font-weight:600}.tag{font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);padding:1px var(--s-2);border-radius:var(--radius-pill);border:1px solid var(--line-mid);color:var(--text-2);white-space:nowrap;align-items:center;display:inline-flex}.tag.free{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.tag.pro{color:var(--accent-text);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.level-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));margin:0;padding:0;list-style:none;display:grid}.level-grid.compact{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr))}.level-card{align-items:flex-start;gap:var(--s-1);text-align:left;width:100%;height:100%;min-height:132px;padding:var(--s-4);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--motion-ui) var(--ease-ui), background-color var(--motion-ui) var(--ease-ui), transform var(--motion-ui) var(--ease-ui), box-shadow var(--motion-ui) var(--ease-ui);flex-direction:column;display:flex}button.level-card:hover:not(:disabled){border-color:var(--line-strong);background:var(--panel-2);box-shadow:var(--shadow-node);transform:none}button.level-card:active:not(:disabled){transform:translateY(0)scale(.99)}button.level-card:disabled{color:var(--muted);background:0 0}button.level-card:disabled .level-title{color:var(--text-2)}.level-card.future{min-height:96px;color:var(--muted);background:0 0;border-style:dashed}.level-card.boss{border-color:color-mix(in srgb, var(--danger) 50%, transparent);color:var(--text-2)}.level-num{font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--muted);font-variant-numeric:tabular-nums}.future .level-num{color:var(--muted)}.level-title{color:var(--text);font-size:17px;font-weight:600;line-height:23px}.level-tag{font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2);margin:0}.future .level-tag{color:var(--muted);font-family:var(--mono);font-size:var(--fs-caption)}.level-lock{font-size:var(--fs-caption);color:var(--muted);margin-top:auto}.level-card .stars{margin-top:auto}.stars span{color:var(--line-mid);font-size:var(--fs-body);letter-spacing:.05em}.stars span.on{color:var(--accent)}.interview p{color:var(--text-2);max-width:62ch}.level{flex-direction:column;flex:1;display:flex}.stepper{align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-3) var(--gutter);border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap;display:flex}.stepper-title{align-items:baseline;gap:var(--s-1) var(--s-2);flex-wrap:wrap;min-width:0;display:flex}.stepper-title strong{font-weight:600}.stepper ol{gap:var(--s-1);scrollbar-width:none;flex-wrap:nowrap;max-width:100%;margin:0;padding:3px;list-style:none;display:flex;overflow-x:auto}.stepper ol::-webkit-scrollbar{display:none}.stepper li{flex:none}.stepper li button{align-items:center;gap:var(--s-2);border-radius:var(--radius-sm);padding:0 var(--s-3) 0 var(--s-2);color:var(--muted);font-size:var(--fs-label);line-height:var(--lh-label);min-height:var(--control-h);white-space:nowrap;transition:background-color var(--motion-fast) var(--ease-ui), color var(--motion-fast) var(--ease-ui);background:0 0;border:1px solid #0000;display:inline-flex}.stepper li button:hover:not(:disabled):not(.active){color:var(--text);background:color-mix(in srgb, var(--text) 4%, transparent)}.stepper li button:disabled{color:color-mix(in srgb, var(--muted) 70%, transparent)}.step-i{width:24px;height:24px;font-family:var(--mono);font-variant-numeric:tabular-nums;border:1px solid;border-radius:50%;place-items:center;font-size:12px;display:inline-grid}.stepper li button.done{color:var(--text-2)}.stepper li button.done .step-i{border-color:color-mix(in srgb, var(--ok) 55%, transparent);color:var(--ok)}.stepper li button.active{color:var(--text);border-color:var(--line);background:var(--panel)}.stepper li button.active .step-i{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.page{width:min(1120px,100%);padding:clamp(32px, 5vw, 56px) var(--gutter) var(--s-8);margin:0 auto}.page.narrow{max-width:760px}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,48px);display:grid}.page.two-col>div>h3:first-child{margin-top:0}.lecture{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:clamp(24px,4vw,56px);display:grid}.lecture article{margin-bottom:1.8rem}.lecture article h2{font-size:var(--fs-section);line-height:var(--lh-section);margin-bottom:var(--s-3)}.lecture article p{color:var(--text-2);font-size:var(--fs-body);max-width:62ch;line-height:26px}.demo{top:calc(var(--topbar-h) + var(--s-4));background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s-5);position:sticky}.demo-caption{color:var(--text-2)}.demo-body{flex-direction:column;gap:.9rem;display:flex}.curve{background:var(--bg-2);border-radius:var(--radius-sm);border:1px solid var(--line);width:100%;height:auto}.curve .line{fill:none;stroke:var(--accent-vivid);stroke-width:2.2px}.curve .dot{fill:var(--text);stroke:var(--accent-vivid);stroke-width:2px}.curve .guide{stroke:var(--ok);stroke-dasharray:4 4}.curve .guide-label{fill:var(--ok);text-anchor:end;font-family:var(--mono);font-size:10px}.curve .danger-zone{fill:color-mix(in srgb, var(--danger) 16%, transparent)}.slider{gap:var(--s-1);font-size:var(--fs-label);color:var(--text-2);flex-direction:column;display:flex}.slider input{accent-color:var(--accent);width:100%}.readout{font-family:var(--mono);font-size:var(--fs-label);font-variant-numeric:tabular-nums;color:var(--ok);margin:0}.readout.warn{color:var(--warn)}.readout.bad{color:var(--danger)}.toggle{flex-wrap:wrap;gap:6px;display:flex}.toggle button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-height:var(--control-h);padding:var(--s-2) var(--s-3);font-size:var(--fs-label);color:var(--text-2);transition:border-color var(--motion-fast) var(--ease-ui), color var(--motion-fast) var(--ease-ui);background:0 0;flex:140px}.toggle button:hover:not(.on){color:var(--text)}.toggle button.on{border-color:var(--text-2);color:var(--text);background:var(--panel-2)}.bar-row{gap:var(--s-2);font-size:var(--fs-label);color:var(--text-2);display:grid}.bar-row strong{font-family:var(--mono);color:var(--text)}.bar{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);height:34px;margin:18px 0 4px;position:relative}.bar .fill{background:color-mix(in srgb, var(--ok) 55%, transparent);border-radius:var(--radius-sm);transform-origin:0;width:100%;height:100%;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.bar .marker{background:var(--text);width:2px;position:absolute;top:-6px;bottom:-6px}.bar .marker.bad{background:var(--danger)}.bar .marker span{font-family:var(--mono);font-size:var(--fs-caption);white-space:nowrap;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.server-bars{align-items:stretch;gap:8px;height:120px;display:flex}.sbar{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex:1;align-items:flex-end;display:flex;position:relative;overflow:hidden}.sfill{background:var(--ok);opacity:.6;transform-origin:bottom;width:100%;height:100%;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.sbar.warn .sfill{background:var(--warn)}.sbar.bad .sfill{background:var(--danger)}.sbar.dead{border-style:dashed;border-color:var(--danger)}.sbar span{text-align:center;font-family:var(--mono);font-size:var(--fs-caption);position:absolute;inset:auto 0 6px}.sbar.dead span{color:var(--danger);inset:45% 0 auto}.req{color:var(--text-2);padding-left:1.1em}.req li{margin-bottom:.3em}.slo-card{margin-top:var(--s-5);gap:var(--s-2);padding:var(--s-4);border:1px solid var(--line-mid);border-radius:var(--radius);background:var(--panel);font-family:var(--mono);font-size:var(--fs-label);font-variant-numeric:tabular-nums;display:grid}.questions{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.questions li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);overflow:hidden}.questions button{text-align:left;width:100%;padding:var(--s-3) var(--s-4);min-height:48px;transition:background-color var(--motion-fast) var(--ease-ui);background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;display:flex}.questions button:focus-visible{outline-offset:-3px}.questions button:hover:not(:disabled){background:var(--panel-2)}.questions button:disabled{cursor:default}.questions li.open{border-color:var(--line-mid)}.questions li p{padding:0 var(--s-4) var(--s-4);color:var(--text-2);animation:reveal var(--motion-enter) var(--ease-enter);margin:0}.asked{font-family:var(--mono);font-size:var(--fs-caption);color:var(--ok);white-space:nowrap}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}}.estimate-row{align-items:center;gap:var(--s-3);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.estimate-row input{font-variant-numeric:tabular-nums;background:var(--bg-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:180px;max-width:100%;min-height:44px;font-family:var(--mono);padding:.5em .8em;font-size:1.1rem}.unit{font-family:var(--mono);color:var(--text-2)}.verdict{margin-top:1rem;font-weight:600}.verdict.right{color:var(--ok)}.verdict.wrong{color:var(--warn)}.working{font-family:var(--mono);font-size:var(--fs-label);color:var(--text-2);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.build{flex:1;grid-template-columns:300px minmax(0,1fr);min-height:0;display:grid}.build-side{border-right:1px solid var(--line);background:var(--bg-2);max-height:calc(100vh - var(--topbar-h) - var(--stepper-h));top:calc(var(--topbar-h) + var(--stepper-h));position:sticky;overflow-y:auto}.panel{padding:var(--s-5);border-bottom:1px solid var(--line)}.panel h3{margin-top:0}.palette ul{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.palette-item{align-items:center;gap:var(--s-3);text-align:left;width:100%;padding:var(--s-3);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:grab;transition:border-color var(--motion-fast) var(--ease-ui), background-color var(--motion-fast) var(--ease-ui), transform var(--motion-fast) var(--ease-ui);grid-template-columns:auto 1fr auto;display:grid}.palette-item:hover:not(.disabled){border-color:var(--line-strong);background:var(--panel-2)}.palette-item:active:not(.disabled){cursor:grabbing;transform:scale(.98)}.palette-item.disabled{opacity:.5;cursor:not-allowed}.pi-text{flex-direction:column;min-width:0;display:flex}.pi-text small{color:var(--muted);font-size:var(--fs-caption);line-height:var(--lh-caption)}.pi-cost{font-family:var(--mono);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--text-2)}.hint{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--muted);margin:var(--s-3) 0 0}.an-icon{border-radius:var(--radius-sm);background:var(--panel-2);width:32px;height:32px;color:var(--text-2);flex:none;place-items:center;display:inline-grid}.kind-client .an-icon{color:var(--info)}.kind-server .an-icon{color:var(--accent)}.kind-database .an-icon{color:var(--ok)}.kind-lb .an-icon{color:var(--category-purple)}.insp-title{align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);display:flex}.inspector>p.muted{min-height:120px;padding:var(--s-4);border:1px dashed var(--line-mid);border-radius:var(--radius-sm);text-align:center;font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2);align-content:center;place-items:center;gap:var(--s-1);margin:0;display:grid}.inspector-empty strong{color:var(--text);font-weight:500}.inspector-empty span{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--muted)}.inspector fieldset{margin-bottom:var(--s-5)}fieldset{margin:0 0 var(--s-4);border:0;min-width:0;padding:0}legend{font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2);margin-bottom:var(--s-2);padding:0;font-weight:500}.size-grid{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.size-opt{text-align:left;padding:var(--s-2) var(--s-3);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--fs-caption);color:var(--text-2);transition:border-color var(--motion-fast) var(--ease-ui);gap:2px;display:grid}.size-opt:hover:not(.on){border-color:var(--line-strong)}.size-opt.on{border-color:var(--text-2);background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--text-2)}.so-name{font-family:var(--mono);color:var(--text);font-size:1rem;font-weight:500}.so-cap,.so-cost{font-family:var(--mono);font-variant-numeric:tabular-nums}.so-cost{color:var(--text-2)}.warn-note{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--warn);padding:var(--s-2) var(--s-3);border:1px solid color-mix(in srgb, var(--warn) 50%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warn) 10%, var(--panel))}.build-main{flex-direction:column;min-width:0;display:flex}.canvas{background:var(--bg);height:max(440px,100vh - 470px);position:relative}.canvas .react-flow{--xy-background-color:var(--bg);--xy-background-pattern-color:var(--grid);--xy-edge-stroke:var(--line-strong);--xy-edge-stroke-selected:var(--info);--xy-controls-button-background-color:var(--panel);--xy-controls-button-background-color-hover:var(--panel-2);--xy-controls-button-color:var(--text-2);--xy-controls-button-border-color:var(--line-mid);--xy-handle-background-color:var(--panel-2);--xy-handle-border-color:var(--text-2);--xy-connectionline-stroke:var(--accent);--xy-controls-button-color-hover:var(--text);--xy-controls-box-shadow:var(--shadow-card);--xy-node-color:var(--text);--xy-node-border:1px solid var(--line-mid);--xy-node-background-color:var(--panel);--xy-node-boxshadow-hover:var(--shadow-node);--xy-node-boxshadow-selected:0 0 0 1px var(--focus);--xy-selection-background-color:color-mix(in srgb, var(--info) 8%, transparent);--xy-selection-border:1px dashed color-mix(in srgb, var(--info) 70%, transparent);--xy-edge-label-background-color:var(--panel);--xy-edge-label-color:var(--text);--xy-attribution-background-color:transparent}.canvas .react-flow__controls{border-radius:var(--radius-sm);overflow:hidden}.react-flow__handle{border-width:2px;width:12px;height:12px}.react-flow__handle-connecting{background:var(--danger)}.react-flow__handle-valid{background:var(--ok)}.traffic-edge{stroke-width:2px}.traffic-edge.live{stroke:color-mix(in srgb, var(--line-strong) 60%, var(--text-2))}.traffic-edge.selected{stroke-width:2.5px;stroke:var(--info)!important}.particle{fill:var(--accent-vivid)}.particle.warn{fill:var(--warn)}.particle.bad{fill:var(--danger)}.arch-node{background:var(--panel);border:1px solid var(--line-mid);border-radius:var(--radius);min-width:190px;max-width:240px;padding:var(--s-3);font-size:var(--fs-label);line-height:var(--lh-label);box-shadow:var(--shadow-node);outline-offset:3px;transition:border-color var(--motion-ui) var(--ease-ui), outline-color var(--motion-ui) var(--ease-ui);outline:2px solid #0000}.arch-node.ok{border-color:color-mix(in srgb, var(--ok) 55%, var(--line))}.arch-node.warn{border-color:var(--warn)}.arch-node.bad{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--panel))}.arch-node.dead{border-style:dashed;border-color:var(--danger);background:color-mix(in srgb, var(--danger) 6%, var(--bg-2))}.arch-node.dead .an-label,.arch-node.dead .an-icon{color:var(--muted)}.arch-node.selected{outline-color:var(--info)}.an-head{align-items:center;gap:var(--s-1) var(--s-2);flex-wrap:wrap;display:flex}.an-label{text-overflow:ellipsis;white-space:nowrap;flex:120px;min-width:0;font-weight:600;overflow:hidden}.an-size{font-family:var(--mono);padding:0 var(--s-1);border-radius:var(--radius-xs);border:1px solid var(--line-mid);color:var(--text);font-variant-numeric:tabular-nums;font-size:12px;line-height:18px}.an-spec{margin-top:var(--s-2);font-family:var(--mono);font-size:var(--fs-caption);color:var(--muted);line-height:16px}.an-load{align-items:center;gap:var(--s-2);margin-top:var(--s-2);font-family:var(--mono);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;display:flex}.an-bar{background:var(--bg-2);border-radius:3px;flex:1;height:6px;overflow:hidden}.an-bar>div{background:var(--ok);transform-origin:0;height:100%;transition:transform .2s linear}.warn .an-bar>div{background:var(--warn)}.bad .an-bar>div,.dead .an-bar>div{background:var(--danger)}.dead .an-load span{color:var(--danger);font-weight:600}.toast{max-width:min(520px,100% - 32px);padding:var(--s-3) var(--s-4);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warn) 10%, var(--panel-2));border:1px solid color-mix(in srgb, var(--warn) 50%, transparent);color:var(--text);font-size:var(--fs-label);z-index:10;box-shadow:var(--shadow-overlay);animation:toast-in var(--motion-enter) var(--ease-enter);font-weight:500;position:absolute;top:14px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}.issues{max-width:min(420px,100% - 28px);padding:var(--s-3) var(--s-4);background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid var(--line-mid);border-radius:var(--radius-sm);box-shadow:var(--shadow-node);font-size:var(--fs-caption);line-height:var(--lh-caption);z-index:5;position:absolute;top:14px;left:14px}.issues ul{margin:.2rem 0 0;padding-left:1.1em}.issues li.bad{color:var(--danger)}.issues li.warn{color:var(--warn)}.runbar{align-items:center;gap:var(--s-3);padding:var(--s-4);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2);flex-wrap:wrap;display:flex}.run-buttons{gap:var(--s-2);flex-wrap:wrap;display:flex}.timeline{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);flex:180px;height:32px;position:relative;overflow:hidden}.tl-fill{background:color-mix(in srgb, var(--accent-vivid) 22%, transparent);position:absolute;inset:0 auto 0 0}.tl-mark{background:var(--warn);opacity:.55;width:2px;position:absolute;top:0;bottom:0}.tl-mark.hit{opacity:1;background:var(--danger)}.tl-label{right:var(--s-2);font-family:var(--mono);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--text-2);position:absolute;top:50%;transform:translateY(-50%)}.cost{line-height:1.25;font-size:var(--fs-caption);color:var(--muted);flex-direction:column;display:flex}.cost strong{font-family:var(--mono);font-size:var(--fs-body);font-variant-numeric:tabular-nums;color:var(--text);font-weight:500}.cost small{color:var(--muted);font-weight:400}.cost.bad strong{color:var(--danger)}.charts{background:var(--line);grid-template-columns:1fr 1fr;gap:1px;display:grid}.chart{background:var(--bg-2);padding:var(--s-4);flex-direction:column;display:flex;position:relative}.chart-head{justify-content:space-between;align-items:baseline;gap:var(--s-2);font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2);flex-wrap:wrap;display:flex}.chart-head strong{font-family:var(--mono);font-size:var(--fs-body);font-variant-numeric:tabular-nums;color:var(--ok);font-weight:500;line-height:24px}.chart-head strong.bad{color:var(--danger)}.chart canvas{width:100%;height:144px;margin-top:var(--s-2);display:block}.chart-thr{margin-top:var(--s-1);font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--warn);align-self:flex-end;position:static}.verdict-head{align-items:center;gap:var(--s-4);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.verdict-head h2{letter-spacing:-.02em;margin:0;font-size:32px;line-height:40px}.verdict-head.pass h2{color:var(--ok)}.verdict-head.fail h2{color:var(--danger)}.verdict-head .stars span{font-size:1.6rem}.checks,.incidents{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.checks li{gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);grid-template-columns:28px 1fr;display:grid}.checks p{font-size:var(--fs-label);line-height:var(--lh-label);font-variant-numeric:tabular-nums;color:var(--text-2);margin:2px 0 0}.checks .mark{border-radius:50%;place-items:center;width:24px;height:24px;font-size:.8rem;font-weight:700;display:inline-grid}.checks .ok .mark{background:color-mix(in srgb, var(--ok) 20%, transparent);color:var(--ok)}.checks .bad{border-color:color-mix(in srgb, var(--danger) 45%, var(--line))}.checks .bad .mark{background:color-mix(in srgb, var(--danger) 20%, transparent);color:var(--danger)}.incidents li{font-size:var(--fs-label);font-variant-numeric:tabular-nums;padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb, var(--danger) 35%, var(--line));background:color-mix(in srgb, var(--danger) 6%, var(--panel));border-radius:var(--radius-sm);color:var(--text-2);line-height:22px}.debrief .two-col,.sandbox-results .two-col{gap:var(--s-6)}.debrief .two-col p{color:var(--text-2)}.debrief .two-col h3+p.muted,.sandbox-results .two-col h3+p.muted{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-2)}@media (width<=900px){.two-col,.lecture{grid-template-columns:1fr}.demo{position:static}.build{grid-template-columns:1fr}.build-side{border-right:0;order:2;max-height:none;position:static}.build-main{order:1}.canvas{height:460px}.charts{grid-template-columns:1fr}}.topic-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.topic{gap:var(--s-4) var(--s-5);padding:var(--s-5) 0;border-bottom:1px solid var(--line);background:0 0;grid-template-columns:minmax(200px,260px) minmax(0,1fr);align-items:start;display:grid}.topic:last-child{border-bottom:0}.topic.future{color:var(--muted);background:0 0;border-style:dashed;grid-template-columns:1fr}.topic-head{gap:var(--s-1);padding-top:var(--s-1);flex-direction:column;display:flex}.topic-title{font-family:var(--sans);font-size:var(--fs-card);line-height:var(--lh-card);text-transform:none;letter-spacing:-.01em;color:var(--text);margin:0;font-weight:600}.future .topic-title{color:var(--muted)}.topic-count{margin-top:var(--s-1);font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--muted);font-variant-numeric:tabular-nums;align-self:flex-start;position:static}.challenge-row{gap:var(--s-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.challenge-row .level-card{min-height:120px}.page.lecture{gap:var(--s-6);grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:start;width:min(1240px,100%)}.lecture-text article{animation:reveal var(--motion-enter) var(--ease-enter)}.stage{align-items:flex-end;gap:var(--s-2);flex-direction:column;min-width:0;display:flex}.stage .demo{width:100%;position:static}.stage-frame{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text) 4%, transparent);background-image:radial-gradient(circle, color-mix(in srgb, var(--grid) 70%, transparent) 1px, transparent 1.2px);background-size:24px 24px;overflow:hidden}.flow-scene{width:100%;height:auto;font-family:var(--sans);display:block}.scene-dots{margin:var(--s-5) 0 0;gap:6px;padding:0;list-style:none;display:flex}.scene-dots li{background:var(--line-mid);width:24px;height:4px;transition:background-color var(--motion-ui) var(--ease-ui);border-radius:2px}.scene-dots li.done{background:color-mix(in srgb, var(--accent-vivid) 45%, var(--line-strong))}.scene-dots li.on{background:var(--accent-vivid)}.fs-edge{stroke:var(--line-strong);stroke-width:1.6px}.fs-edge.cut{stroke:var(--danger);stroke-dasharray:4 4;opacity:.5}.fs-box{fill:var(--panel);stroke:var(--line-mid);stroke-width:1.2px;transition:stroke .2s}.fs-node.warm .fs-box{stroke:var(--warn)}.fs-node.hot .fs-box{stroke:var(--danger)}.fs-node.dead .fs-box{stroke:var(--danger);stroke-dasharray:4 3;fill:color-mix(in srgb, var(--danger) 8%, var(--panel))}.fs-icon{color:var(--text-2)}.fs-node.kind-client .fs-icon{color:var(--info)}.fs-node.kind-server .fs-icon{color:var(--accent)}.fs-node.kind-database .fs-icon{color:var(--ok)}.fs-node.kind-lb .fs-icon{color:var(--category-purple)}.fs-label{fill:var(--text);font-size:10px;font-weight:600}.fs-sub{fill:var(--warn);font-family:var(--mono);font-size:8.5px}.fs-slot{fill:var(--bg);stroke:var(--line-mid);stroke-width:.8px}.fs-slot.on{fill:var(--accent-vivid);stroke:var(--accent-vivid)}.fs-x{stroke:var(--danger);stroke-width:2px;stroke-linecap:round}.fs-dot{fill:var(--accent-vivid)}.fs-dot.queued{fill:var(--warn)}.fs-dot.service{fill:color-mix(in srgb, var(--accent) 45%, var(--text))}.fs-burst{fill:none;stroke:var(--danger);stroke-width:2px}.fs-meter-label{fill:var(--text-2);font-size:10px}.fs-meter-value{fill:var(--text);font-family:var(--mono);font-size:10px}.fs-meter-value.bad,.fs-callout.bad{fill:var(--danger)}.fs-meter-value.warn{fill:var(--warn)}.fs-meter-track{fill:var(--bg);stroke:var(--line)}.fs-meter-fill{fill:var(--accent-vivid);transition:transform .15s linear}.fs-meter-fill.ok{fill:var(--ok)}.fs-meter-fill.warn{fill:var(--warn)}.fs-meter-fill.bad{fill:var(--danger)}.fs-meter-fill.cap{fill:var(--line-mid)}.fs-callout{fill:var(--text);font-family:var(--mono);font-size:10.5px;font-weight:500}.fs-callout.ok{fill:var(--ok)}.fs-axis{stroke:var(--line-strong)}.fs-cap{stroke:var(--text-2);stroke-dasharray:6 4;stroke-width:1.4px}.fs-cap-label{fill:var(--text-2);font-family:var(--mono);font-size:10px}.fs-headroom{fill:color-mix(in srgb, var(--ok) 7%, transparent);transition:opacity .4s}.fs-traffic{fill:none;stroke:var(--accent-vivid);stroke-width:2.2px;stroke-linejoin:round}.fs-over{stroke:var(--danger);stroke-width:3px;opacity:.5}.fs-machine{fill:color-mix(in srgb, var(--text) 3%, transparent);stroke:var(--text-2);stroke-dasharray:5 4}.fs-cpu-app{fill:var(--accent-vivid)}.fs-cpu-db{fill:var(--ok)}.fs-legend text{fill:var(--text-2);font-size:10px}.fs-legend .hide{opacity:0}.fs-legend .show{fill:var(--text);font-family:var(--mono);transition:opacity .3s}.fs-bar-cap{fill:var(--ok)}.fs-bar-cost{fill:var(--accent-vivid)}.fs-size{fill:var(--text);font-family:var(--mono);font-size:12px;font-weight:500}.fs-badge{fill:var(--panel-2);stroke:var(--line-mid)}.fs-badge.ok{stroke:var(--ok)}.fs-badge.bad{stroke:var(--danger)}.fs-badge-text{fill:var(--text);font-family:var(--mono);font-size:10.5px}.fs-ping{fill:none;stroke:var(--category-purple);stroke-width:1.2px}@media (width<=900px){.topic{grid-template-columns:1fr}}.fs-dot.tag-read{fill:var(--info)}.fs-dot.tag-write{fill:var(--accent-vivid)}.fs-dot.tag-copy{fill:var(--category-purple)}.fs-dot.tag-static{fill:var(--ok)}.fs-dot.tag-dynamic{fill:var(--accent-vivid)}.fs-seg{fill:color-mix(in srgb, var(--ok) 30%, var(--panel))}.fs-seg.stale{fill:color-mix(in srgb, var(--danger) 45%, var(--panel))}.fs-seg-text{fill:var(--text);font-family:var(--mono);font-size:9px}.fs-callout.warn-text{fill:var(--warn)}.an-size.ttl{color:var(--text-2)}.seg.wrap{flex-wrap:wrap}.sub-legend{margin-top:.8rem;display:block}.fs-dot.tag-req{fill:var(--info)}.fs-dot.tag-job{fill:var(--accent-vivid)}.fs-dot.tag-bot{fill:var(--danger)}.fs-dot.tag-user{fill:var(--info)}.fs-dot.tag-cross{fill:var(--category-purple)}.fs-blip{fill:color-mix(in srgb, var(--danger) 14%, transparent)}.fs-node.kind-queue .fs-icon,.fs-node.kind-topic .fs-icon{color:var(--category-purple)}.fs-node.kind-worker .fs-icon{color:var(--accent)}.fs-node.kind-gateway .fs-icon{color:var(--info)}.kind-queue .an-icon,.kind-topic .an-icon{color:var(--category-purple)}.kind-worker .an-icon{color:var(--accent)}.kind-gateway .an-icon,.an-size.zone,.kind-dns .an-icon,.fs-node.kind-dns .fs-icon{color:var(--info)}.fs-machine.dead-zone{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 8%, transparent)}.fs-meter-label.bad-text{fill:var(--danger)}.fs-box.primary-box{stroke:var(--accent)}.btn.right-pick{border-color:var(--ok);color:var(--ok)}.btn.wrong-pick{border-color:var(--danger);color:var(--danger)}.practice{align-items:center;gap:var(--s-3);padding-top:var(--s-4);flex-wrap:wrap;grid-column:1/-1;display:flex}.practice-label{font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-2);min-width:130px}.practice-grid{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ptile{width:36px;height:36px;font-family:var(--mono);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--text-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--motion-fast) var(--ease-ui), color var(--motion-fast) var(--ease-ui), transform var(--motion-fast) var(--ease-ui);place-items:center;display:grid}.ptile:hover{border-color:var(--line-strong);color:var(--text)}.ptile:active{transform:scale(.95)}.ptile.done{color:var(--ok);background:color-mix(in srgb, var(--ok) 10%, var(--panel));border-color:color-mix(in srgb, var(--ok) 40%, transparent)}.ptile.done.s3{color:var(--accent-ink);background:var(--ok);border-color:var(--ok)}.topnav{gap:var(--s-1);min-width:0;display:flex}.navlink{min-height:var(--control-h);border-radius:var(--radius-sm);padding:0 var(--s-3);color:var(--text-2);font-size:var(--fs-label);line-height:var(--lh-label);white-space:nowrap;transition:background-color var(--motion-fast) var(--ease-ui), color var(--motion-fast) var(--ease-ui);background:0 0;border:0;flex-shrink:0;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.navlink:hover{color:var(--text);background:color-mix(in srgb, var(--text) 4%, transparent)}.navlink.on{background:var(--panel-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.filters{gap:var(--s-2);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--line-strong);border-radius:var(--radius-pill);min-height:36px;padding:0 var(--s-3);font-size:var(--fs-caption);color:var(--text-2);transition:border-color var(--motion-fast) var(--ease-ui), background-color var(--motion-fast) var(--ease-ui), color var(--motion-fast) var(--ease-ui);background:0 0}.chip:hover:not(.on){color:var(--text);border-color:var(--text-2)}.chip.on{border-color:var(--text);color:var(--bg);background:var(--text)}.trainer-grid{margin:var(--s-5) 0 0;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));padding:0;list-style:none;display:grid}.trainer-meta{justify-content:space-between;width:100%;display:flex}.diff{font-family:var(--mono);font-size:var(--fs-caption);color:var(--ok)}.diff.d2{color:var(--warn)}.diff.d3{color:var(--danger)}.trainer-stack{font-family:var(--mono);font-size:var(--fs-caption);color:var(--muted)}.stack-chips{flex-wrap:wrap;align-items:center;gap:6px;margin:.4rem 0 1rem;display:flex}.an-tech{text-overflow:ellipsis;font-family:var(--mono);color:var(--text-2);font-size:12px;font-weight:400;line-height:16px;display:block;overflow:hidden}.hints h3{margin-top:1.4em}.panel.hints h3{margin-top:0}.hints ol{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.hints li.open{padding:var(--s-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.hints li.open p{margin:var(--s-1) 0 0;font-size:var(--fs-label);color:var(--text-2);line-height:22px}.hint-label{font-family:var(--mono);font-size:var(--fs-caption);color:var(--muted)}.approaches{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.approaches li{justify-content:space-between;gap:var(--s-4);padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);font-size:var(--fs-label);display:flex}.approaches li.best{border-color:color-mix(in srgb, var(--ok) 50%, var(--line))}.approaches strong{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500}.tour{z-index:100;position:fixed;inset:0}.tour-spot{border-radius:var(--radius);box-shadow:0 0 0 9999px var(--scrim);outline:2px solid var(--accent);pointer-events:none;position:fixed}.tour-card{width:340px;max-width:calc(100vw - 32px);padding:var(--s-4) var(--s-5);background:var(--panel-2);border:1px solid var(--line-mid);border-radius:var(--radius);box-shadow:var(--shadow-overlay);animation:reveal var(--motion-enter) var(--ease-enter);position:fixed}.tour-card h3{text-transform:none;letter-spacing:0;color:var(--text);margin:.2rem 0 .4rem;font-size:1rem}.tour-card p{font-size:var(--fs-label);color:var(--text-2);margin:0;line-height:22px}.tour-count{font-family:var(--mono);font-size:var(--fs-caption);color:var(--muted)}.tour-actions{align-items:center;gap:var(--s-2);margin-top:var(--s-4);display:flex}.tour-spacer{flex:1}.btn.help{width:36px;padding:0;font-weight:700}.an-size.warn{color:var(--danger);border-color:var(--danger)}.machine-readout{margin-top:var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);font-family:var(--mono);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--text);justify-content:space-between;display:flex}.kind-auth .an-icon{color:var(--ok)}.kind-storage .an-icon{color:var(--info)}.sb-scenario{border-bottom:1px solid var(--line);background:var(--bg-2);padding:var(--s-2) var(--gutter)}.sb-scenario>summary{gap:var(--s-3);cursor:pointer;min-height:var(--control-h);padding:var(--s-1) 0;border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;list-style:none;display:flex}.sb-scenario>summary::-webkit-details-marker{display:none}.sb-scenario>summary:before{content:"";width:8px;height:8px;margin:0 var(--s-1);border-right:2px solid var(--text-2);border-bottom:2px solid var(--text-2);transition:transform var(--motion-ui) var(--ease-ui);flex:none;transform:rotate(-45deg)}.sb-scenario[open]>summary:before{transform:rotate(45deg)}.sb-scenario>summary:hover:before{border-color:var(--text)}.sb-grid{gap:var(--s-4) var(--s-5);padding:var(--s-4) 0 var(--s-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));display:grid}.sb-field{gap:var(--s-2);flex-direction:column;min-width:0;display:flex}.sb-label{font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2);font-weight:500}.sb-field .seg{align-self:flex-start;max-width:100%}.sb-field .seg button{min-height:var(--control-h);padding:0 var(--s-3);font-size:var(--fs-caption)}.sb-cost{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text)}.ach-head h1{margin:0 0 var(--s-2)}.ach-head p.muted{max-width:60ch}.ach-count{align-items:center;gap:var(--s-2);font-family:var(--mono);font-size:var(--fs-label);font-variant-numeric:tabular-nums;color:var(--text);margin-top:var(--s-2);padding:var(--s-1) var(--s-3);border:1px solid var(--line-mid);border-radius:var(--radius-pill);display:inline-flex}.ach-group{margin-top:var(--s-7)}.ach-group h2{font-family:var(--sans);font-size:var(--fs-label);line-height:var(--lh-label);text-transform:none;letter-spacing:0;color:var(--text-2);margin:0 0 var(--s-4);font-weight:600}.ach-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));margin:0;padding:0;list-style:none;display:grid}.ach{gap:var(--s-4);padding:var(--s-5);border:1px solid var(--line);border-radius:var(--radius);background:0 0;align-items:flex-start;display:flex}.ach.done{border-color:var(--line-mid);background:var(--panel)}.ach-text strong{font-size:var(--fs-body);font-weight:600;line-height:22px;display:block}.ach-text p{margin:var(--s-1) 0 0;font-size:var(--fs-label);color:var(--text-2);line-height:22px}.ach:not(.done) .ach-text strong{color:var(--text-2)}.ach-earned{align-items:center;gap:var(--s-1);margin-top:var(--s-3);font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--ok);display:inline-flex}.ach-progress{margin-top:var(--s-3)}.ach-progress-text{font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);font-variant-numeric:tabular-nums;color:var(--text-2);margin-bottom:6px;display:block}.badge{color:var(--muted);flex:none}.badge-hex{fill:var(--bg-2);stroke:var(--line-mid);stroke-width:1.2px}.badge.done .badge-hex{fill:color-mix(in srgb, currentColor 14%, var(--panel));stroke:currentColor}.badge.done.g-path{color:var(--info)}.badge.done.g-mastery{color:var(--category-amber)}.badge.done.g-practice{color:var(--ok)}.badge.done.g-craft{color:var(--category-purple)}.badge.done.g-sandbox{color:var(--category-teal)}.badge.done.g-habit{color:var(--category-rose)}.ach-bar{background:var(--bg-2);height:6px;box-shadow:inset 0 0 0 1px var(--line);border-radius:3px;position:relative;overflow:hidden}.ach-bar>div{transform-origin:0;background:var(--accent-vivid);border-radius:3px;position:absolute;inset:0}.ach-toast{z-index:50;max-width:min(360px,100vw - 32px);padding:var(--s-3) var(--s-4);border-radius:var(--radius);background:var(--panel-2);border:1px solid var(--line-mid);box-shadow:var(--shadow-overlay);animation:ach-in .36s var(--ease-enter);align-items:center;gap:.8rem;display:flex;position:fixed;bottom:20px;right:20px}.ach-toast small{font-family:var(--mono);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-text)}.ach-toast strong{display:block}.ach-toast p{font-size:var(--fs-caption);color:var(--text-2);margin:2px 0 0}@keyframes ach-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}@media (width<=600px){.ach-toast{bottom:16px;left:16px;right:16px}}.ach-text{flex:1;min-width:0}.case-intro article+article{margin-top:var(--s-5)}.case-intro article h3{margin:0 0 var(--s-2);font-family:var(--sans);font-size:17px;line-height:24px}.case-glance{padding:var(--s-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);align-self:start}.case-glance h3{margin:0 0 var(--s-3);font-family:var(--mono);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);font-weight:500}.case-glance ul{gap:var(--s-2);color:var(--text-2);font-size:var(--fs-label);margin:0;padding-left:1.1rem;line-height:22px;display:grid}.case-glance{text-align:left;display:block}.case-intro article h3{text-transform:none;letter-spacing:normal;color:var(--text)}.account h1,.legal h1,.admin h1{margin:0 0 var(--s-5)}.account-card{padding:var(--s-5);margin-bottom:var(--s-4);gap:var(--s-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);display:grid}.account-card:last-child{margin-bottom:0}.account-card h2{margin:0;font-size:18px;line-height:24px}.account-card .hint{margin:0}.account-card .actions{margin-top:0}.account-card>.seg{justify-self:start}.account-head{justify-content:space-between;align-items:flex-start;gap:var(--s-4);min-width:0;display:flex}.account-head>div{min-width:0}.account-head p{margin:var(--s-1) 0 0;overflow-wrap:anywhere}.auth-form{gap:var(--s-4);display:grid}.auth-form label{gap:var(--s-2);font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2);font-weight:500;display:grid}.auth-form label small{font-size:var(--fs-caption);font-weight:400}.auth-form input[type=email],.auth-form input[type=text],.auth-form input[type=password]{min-height:44px;padding:0 var(--s-3);border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg-2);color:var(--text);font:inherit;transition:border-color var(--motion-fast) var(--ease-ui), box-shadow var(--motion-fast) var(--ease-ui);font-weight:400}.auth-form input[type=email]:hover,.auth-form input[type=text]:hover,.auth-form input[type=password]:hover{border-color:var(--text-2)}.auth-form input[type=email]:focus-visible,.auth-form input[type=text]:focus-visible,.auth-form input[type=password]:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 30%, transparent);outline:none}.auth-form label.check{align-items:flex-start;gap:var(--s-3);font-weight:400;line-height:22px;display:flex}.auth-form label.check input{width:16px;height:16px;accent-color:var(--accent);flex:none;margin-top:4px}.auth-form label.check .link{padding:0}.auth-form>.btn.primary{justify-self:start;min-width:160px}.danger-zone-box{border-top:1px solid var(--line);padding-top:var(--s-4);gap:var(--s-3);display:grid}.danger-zone-box>.btn{justify-self:start}.danger-zone-box h3{font-family:var(--sans);font-size:var(--fs-body);text-transform:none;letter-spacing:0;color:var(--danger);margin:0}.tag.role-pro{color:var(--accent-text)}.tag.role-admin{color:var(--info)}.legal{max-width:720px}.legal section{margin-top:var(--s-6)}.legal h2{margin:0 0 var(--s-2);font-size:18px;line-height:26px}.legal p,.legal li{color:var(--text-2);max-width:68ch;line-height:1.7}.admin-table{border-collapse:collapse;width:100%;max-width:100%;font-size:var(--fs-label);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);display:block;overflow-x:auto}.admin-table th,.admin-table td{text-align:left;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);white-space:nowrap}.admin-table tr:last-child td{border-bottom:0}.admin-table th{font-family:var(--mono);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--bg-2);font-weight:500}.admin-table tbody tr:hover td{background:color-mix(in srgb, var(--text) 3%, transparent)}.admin-table .seg button{min-height:32px}.site-footer{justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-5);padding:var(--s-5) var(--gutter);border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-caption);line-height:var(--lh-caption);flex-wrap:wrap;margin-top:auto;display:flex}.site-footer nav{gap:var(--s-1) var(--s-4);flex-wrap:wrap;display:flex}.site-footer .link{color:var(--muted);font-size:var(--fs-caption);text-decoration:none}.site-footer .link:hover{color:var(--text);text-decoration:underline}.consent{z-index:60;align-items:center;gap:var(--s-4);max-width:720px;padding:var(--s-4) var(--s-5);border:1px solid var(--line-mid);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-overlay);animation:consent-in var(--motion-enter) var(--ease-enter);margin:0 auto;display:flex;position:fixed;bottom:16px;left:16px;right:16px}.consent p{font-size:var(--fs-label);color:var(--text-2);margin:0;line-height:22px}.consent p strong{color:var(--text)}.consent .btn{flex:none}@keyframes consent-in{0%{opacity:0;transform:translateY(12px)}}@media (width<=600px){.consent{flex-direction:column;align-items:stretch}}::selection{background:var(--accent);color:var(--accent-ink)}h1{letter-spacing:-.035em;font-weight:400}.hero h1{font-weight:400}.brand{letter-spacing:-.04em;font-size:20px}.act-head{border-bottom-color:var(--line-strong)}.level-card{border-top:2px solid var(--line-strong)}.level-num{color:var(--accent-text)}button.level-card:hover:not(:disabled){border-color:var(--accent)}.level-card.boss{border-top-color:var(--danger)}.step-i{border-radius:var(--radius-xs)}.stage-frame{box-shadow:none;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:32px 32px}.fs-box{rx:2px}.chart{border-top:1px solid var(--line-mid)}.chart-head{padding-top:var(--s-2)}.account-card,.case-glance{border-top:2px solid var(--line-strong)}.legal section{border-top:1px solid var(--line);padding-top:var(--s-5)}.ach.done{border-color:color-mix(in srgb, var(--ok) 55%, var(--line))}.ach-toast,.consent,.save-prompt{border-top:3px solid var(--accent)}.ach-bar,.ach-bar>div{border-radius:0}.site-footer{border-top-color:var(--line-strong);background:var(--bg-2)}.btn{white-space:normal;text-align:center}.page,.home,.panel,.account-card,.lecture-text,.ach-text{overflow-wrap:anywhere;min-width:0}@media (width<=600px){:root{--gutter:16px}.topbar{position:relative}.theme-toggle{margin-left:auto}.theme-toggle button{width:36px;min-height:36px}.panel{padding:var(--s-4)}.seg{max-width:100%}.seg button{padding-inline:var(--s-2)}}@media (width<=900px){.page.lecture{gap:var(--s-5);grid-template-columns:minmax(0,1fr)}.stage{order:0;align-items:stretch}.build-side{border-right:0;border-top:1px solid var(--line);max-height:none;position:static}}@media (width<=760px){:root{--topbar-h:105px}.topbar{gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--gutter) 0;flex-wrap:wrap}.topbar:after{content:"";height:0;margin-top:calc(-1 * var(--s-2));flex-basis:100%;order:2}.topbar>.link{margin-bottom:var(--s-2);order:3;padding-left:0}.topnav{min-width:0;padding:2px 2px var(--s-2);scrollbar-width:none;flex:1 1 0;order:4;margin:0 -2px;overflow-x:auto}.topnav::-webkit-scrollbar{display:none}.account-link{max-width:8rem}.topbar>.navlink{padding:0 var(--s-2)}.topbar>.account-link{margin-left:auto}.admin-link{margin-left:calc(-1 * var(--s-2))}.lang select{max-width:5.25rem}.runbar .timeline{flex-basis:100%;order:5}.stepper-title{flex-basis:100%}.account-head{flex-wrap:wrap}}@media (width<=640px){.challenge-row{grid-template-columns:minmax(0,1fr)}.challenge-row .level-card{min-height:0}.verdict-head h2{font-size:var(--fs-section);line-height:var(--lh-section)}h1{font-size:30px;line-height:36px}.hero h1{font-size:var(--fs-hero)}.account-card{padding:var(--s-4)}.auth-form>.btn.primary{justify-self:stretch}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.particle{display:none}}.player-frame:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.player-controls{justify-content:flex-end;align-items:center;gap:var(--s-2);flex-wrap:wrap;width:100%;display:flex}.player-btn{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.player-icon{color:var(--text-2);display:inline-flex}.player-btn:hover .player-icon{color:var(--text)}.player-hint{font-family:var(--mono);font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--muted);order:-1;margin-right:auto}@media (width<=560px),(hover:none){.player-hint{display:none}}.curve.plot{overflow:visible}.plot-grid line{stroke:var(--grid,var(--line));stroke-width:1px;vector-effect:non-scaling-stroke}.plot-grid .plot-tickmark,.plot-axes line{stroke:var(--line-strong,var(--line));stroke-width:1px;vector-effect:non-scaling-stroke}.plot-tick,.plot-axis-label{fill:var(--text-2);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:9px}.plot-tick.y{text-anchor:end;dominant-baseline:middle}.plot-tick.x{text-anchor:middle}.plot-axis-label{fill:var(--muted)}.plot-axis-label.x{text-anchor:end}.chart-plot{margin-top:var(--s-2);position:relative}.chart-plot canvas{cursor:crosshair;touch-action:pan-y;width:100%;height:160px;margin-top:0;display:block}.chart-unit{font-family:var(--mono);color:var(--muted);pointer-events:none;font-size:10px;line-height:1;position:absolute;top:-2px;left:0}.chart-tip{min-width:96px;padding:var(--s-1) var(--s-2);background:var(--panel-2);border:1px solid var(--line-mid);border-radius:var(--radius-sm);box-shadow:var(--shadow-overlay);font-family:var(--mono);color:var(--text-2);pointer-events:none;white-space:nowrap;z-index:2;flex-direction:column;gap:2px;margin-left:10px;font-size:11px;line-height:1.35;display:flex;position:absolute;top:4px}.chart-tip.left{transform:translate(calc(-100% - 20px))}.chart-tip-t{color:var(--muted)}.chart-tip-row{align-items:center;gap:6px;display:flex}.chart-tip-row i{border-radius:2px;flex:none;width:8px;height:8px}.chart-tip-row b{color:var(--text);margin-left:auto;font-weight:500}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.landing{width:min(1200px,100%);padding:var(--s-7) var(--gutter) var(--s-8);overflow-wrap:anywhere;margin:0 auto}.landing p{color:var(--text-2)}.landing h3{margin:0 0 var(--s-3);font:600 var(--fs-card)/var(--lh-card) var(--sans);text-transform:none;letter-spacing:-.02em;color:var(--text)}.lp-hero{gap:var(--s-7);padding-block:var(--s-5) var(--s-7);border-top:2px solid var(--text);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:stretch;display:grid}.lp-hero-copy{padding-block:var(--s-4);align-self:center}.lp-hero h1{letter-spacing:-.045em;margin-block:var(--s-5);max-width:16ch;font-size:clamp(36px,4.2vw,58px);font-weight:400;line-height:1.06}.lp-hero .lede{font-size:var(--fs-lead);max-width:36em;line-height:1.65}.lp-cta{gap:var(--s-3);margin-top:var(--s-6);flex-wrap:wrap;display:flex}.lp-btn{min-height:48px;padding:var(--s-3) var(--s-5);font-size:var(--fs-body)}.lp-cta .primary:after,.lp-final .primary:after{content:"→";margin-left:var(--s-3);font-size:20px}.landing .lp-note{margin:var(--s-3) 0 0;font-size:var(--fs-caption);color:var(--muted)}.lp-hero-art{min-width:0;padding:var(--s-5);border:1px solid var(--line-strong);background-color:var(--bg-2);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:24px 24px;flex-direction:column;justify-content:center;margin:0;display:flex;position:relative}.lp-hero-art:before,.lp-hero-art:after{content:"";border-color:var(--accent);pointer-events:none;border-style:solid;width:12px;height:12px;position:absolute}.lp-hero-art:before{border-width:3px 0 0 3px;top:-1px;left:-1px}.lp-hero-art:after{border-width:0 3px 3px 0;bottom:-1px;right:-1px}.lp-plate-index{font:500 13px/1.5 var(--mono);color:var(--accent-text);background:var(--bg-2);padding-inline:var(--s-2);align-self:flex-start}.lp-diagram{width:100%;height:auto;padding-block:var(--s-6);margin-block:auto;display:block}.lp-hero-art figcaption{padding-top:var(--s-3);border-top:1px solid var(--line-strong);font-size:var(--fs-caption);color:var(--text-2);background:var(--bg-2);line-height:1.5}.lp-edge{fill:none;stroke:var(--line-strong);stroke-width:1.5px}.lp-pulse{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:6 140;animation:2.4s linear infinite lp-flow}@keyframes lp-flow{0%{stroke-dashoffset:146px}to{stroke-dashoffset:0}}.lp-node{fill:var(--panel);stroke:var(--text-2);stroke-width:1.5px}.lp-node-lb{stroke:var(--category-teal)}.lp-node-db{stroke:var(--category-purple)}.lp-node-cache{stroke:var(--category-rose)}.lp-node-client{stroke:var(--accent)}.lp-person{fill:none;stroke:var(--text-2);stroke-width:1.5px}.lp-tag{font-family:var(--mono);fill:var(--text);text-anchor:middle;font-size:11px}.lp-stats{border-block:1px solid var(--line-strong);grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.lp-stats li{gap:var(--s-2);padding:var(--s-5) var(--s-4);flex-direction:column;display:flex}.lp-stats li+li{border-left:1px solid var(--line)}.lp-stats strong{font:400 clamp(26px, 3vw, 38px)/1.1 var(--mono);font-variant-numeric:tabular-nums;color:var(--accent-text)}.lp-stats span{font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2)}.lp-section{margin-top:var(--s-9);padding-top:var(--s-5);border-top:1px solid var(--line-strong)}.lp-section>h2{align-items:baseline;gap:var(--s-5);margin-bottom:var(--s-6);font-size:var(--fs-section);letter-spacing:-.025em;font-weight:400;line-height:1.2;display:flex}.lp-section-index{font:400 var(--fs-label)/1.5 var(--mono);color:var(--accent-text);flex:none}.lp-values{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lp-value{padding:var(--s-4) var(--s-5);border-left:1px solid var(--line)}.lp-value:first-child{border-left:0;padding-left:0}.lp-value p{margin:0}.lp-value-mark{margin-bottom:var(--s-5);font:400 32px/1 var(--mono);color:var(--muted);display:block}.landing .lp-sub{margin:calc(-1 * var(--s-3)) 0 var(--s-6);max-width:48em}.lp-road-ends{justify-content:space-between;gap:var(--s-5);font-size:var(--fs-label);color:var(--muted);margin-bottom:var(--s-4);display:flex}.lp-road{border-top:1px solid var(--line-mid);border-left:1px solid var(--line-mid);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.lp-road li{align-content:start;gap:var(--s-3);padding:var(--s-4);border-right:1px solid var(--line-mid);border-bottom:1px solid var(--line-mid);background:var(--panel);grid-template-columns:1fr auto;display:grid;position:relative}.lp-road-dot{background:var(--accent);width:5px;height:5px;position:absolute;top:-1px;left:-1px}.lp-road-num{font:400 24px/1.2 var(--mono);color:var(--accent-text)}.lp-road-name{font-size:var(--fs-label);grid-area:2/1/auto/-1;font-weight:500;line-height:1.5}.lp-road-range{font:400 12px/1.5 var(--mono);color:var(--muted);align-self:center}.lp-steps{gap:var(--s-6);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.lp-steps li{gap:var(--s-4);display:flex}.lp-steps p{margin:0}.lp-step-n{border:1px solid var(--accent);width:32px;height:32px;font:400 var(--fs-label)/1 var(--mono);color:var(--accent-text);flex:none;place-items:center;display:grid}.lp-faq{column-gap:var(--s-7);grid-template-columns:minmax(0,1fr) minmax(0,2fr);display:grid}.lp-faq>h2{grid-row:1/span 20;align-self:start}.lp-faq details{border-bottom:1px solid var(--line);grid-column:2}.lp-faq summary{cursor:pointer;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) 0;color:var(--text);font-weight:500;list-style:none;display:flex}.lp-faq summary::-webkit-details-marker{display:none}.lp-faq summary:after{content:"+";font-family:var(--mono);color:var(--accent-text);flex:none}.lp-faq details[open] summary:after{content:"−"}.lp-faq details p{margin:0 0 var(--s-5);max-width:44em}.lp-final{margin-top:var(--s-9);padding:var(--s-7) 0;border-top:3px solid var(--accent);border-bottom:1px solid var(--line-strong);column-gap:var(--s-7);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.lp-final h2{font-size:var(--fs-section);letter-spacing:-.025em;margin:0 0 var(--s-3);font-weight:400;line-height:1.2}.lp-final p{grid-column:1;max-width:45em;margin:0}.lp-final .btn{grid-area:1/2/span 2}.save-prompt{z-index:55;max-width:min(380px,100vw - 32px);padding:var(--s-4) var(--s-5);border-radius:var(--radius);border:1px solid var(--line-mid);background:var(--panel);box-shadow:var(--shadow-overlay);animation:save-prompt-in var(--motion-enter) var(--ease-enter);position:fixed;bottom:20px;left:20px}.save-prompt strong{margin-bottom:var(--s-1);color:var(--text);display:block}.save-prompt p{margin:0 0 var(--s-3);font-size:var(--fs-label);line-height:var(--lh-label);color:var(--text-2)}.save-prompt .actions{gap:var(--s-2);flex-wrap:wrap;display:flex}@keyframes save-prompt-in{0%{opacity:0;transform:translateY(8px)}}.sync-dot{width:7px;height:7px;margin-right:var(--s-2);vertical-align:middle;background:var(--muted);border-radius:50%;display:inline-block}.sync-dot.synced{background:var(--ok)}.sync-dot.saving{background:var(--warn);animation:1.2s ease-in-out infinite sync-pulse}.sync-dot.offline{box-shadow:inset 0 0 0 1.5px var(--muted);background:0 0}@keyframes sync-pulse{50%{opacity:.35}}@media (width<=900px){.lp-hero{gap:var(--s-5)}.lp-hero h1{font-size:40px}.lp-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-stats li:nth-child(4){border-left:0}.lp-stats li:nth-child(n+4){border-top:1px solid var(--line)}.lp-road{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-values,.lp-steps{grid-template-columns:minmax(0,1fr)}.lp-value,.lp-value:first-child{padding:var(--s-5) 0;border-left:0;border-bottom:1px solid var(--line);column-gap:var(--s-4);grid-template-columns:48px minmax(0,1fr);display:grid}.lp-value-mark{grid-row:1/span 2;font-size:24px}.lp-value p{grid-column:2}.lp-faq{display:block}}@media (width<=600px){.landing{padding-top:var(--s-5)}.lp-hero{padding-top:0;padding-bottom:var(--s-6);grid-template-columns:minmax(0,1fr)}.lp-hero h1{font-size:clamp(34px,9vw,44px)}.lp-hero-copy{padding-top:var(--s-5)}.lp-hero-art{padding:var(--s-4)}.lp-diagram{padding-block:var(--s-5)}.lp-cta .lp-btn{flex:100%}.lp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-stats li:nth-child(n){border-top:0;border-left:0}.lp-stats li:nth-child(2n){border-left:1px solid var(--line)}.lp-stats li:nth-child(n+3){border-top:1px solid var(--line)}.lp-section{margin-top:var(--s-7)}.lp-section>h2{gap:var(--s-4);font-size:25px}.lp-final{margin-top:var(--s-7);padding-block:var(--s-6);grid-template-columns:minmax(0,1fr)}.lp-final .btn{margin-top:var(--s-5);grid-area:auto/1}.save-prompt{max-width:none;bottom:16px;left:16px;right:16px}}@media (prefers-reduced-motion:reduce){.lp-pulse,.sync-dot.saving,.save-prompt{animation:none}.lp-pulse{display:none}}
