@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2)format("woff2-variations");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 Variable;font-style:italic;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-cyrillic-ext-wght-italic-O9KpBTMP.woff2)format("woff2-variations");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 Variable;font-style:italic;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-cyrillic-wght-italic-BC1D_hcE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:italic;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-greek-wght-italic-BOZ1G-_q.woff2)format("woff2-variations");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 Variable;font-style:italic;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-vietnamese-wght-italic-CKSJVnJa.woff2)format("woff2-variations");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 Variable;font-style:italic;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-latin-ext-wght-italic-QwKXLQRc.woff2)format("woff2-variations");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 Variable;font-style:italic;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-latin-wght-italic-DKUSOBgV.woff2)format("woff2-variations");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(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(./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(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(./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(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(./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(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(./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(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./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(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(./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(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(./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(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(./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(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(./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(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./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{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font:"IBM Plex Sans Variable", "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-2xs:10.5px;--fs-xs:11.5px;--fs-sm:12.5px;--fs-base:13.5px;--fs-md:15px;--fs-lg:17px;--fs-xl:21px;--fs-2xl:26px;--fs-3xl:32px;--fs-display:clamp(34px, 4.4vw, 54px);--lh-tight:1.15;--lh:1.5;--lh-read:1.65;--track-caps:.08em;--bg:#090b0e;--bg-2:#0d1014;--panel:#101317;--panel-2:#14181d;--panel-3:#1b2026;--panel-raised:#1a1f25;--border:#20252c;--border-2:#2b313a;--border-strong:#3a414b;--text:#e9ecf0;--text-2:#aab2bd;--text-3:#808a97;--text-4:#5f6874;--accent:#4d84f7;--accent-strong:#3a72ee;--accent-soft:#4d84f724;--accent-softer:#4d84f714;--accent-text:#93b4ff;--accent-ring:#4d84f773;--on-accent:#fff;--good:#3ccf8e;--good-soft:#3ccf8e1f;--bad:#ff6b70;--bad-soft:#ff6b701f;--warn:#f5a524;--warn-soft:#f5a5241f;--viewport:radial-gradient(130% 100% at 50% 22%, #171c23 0%, #10141a 48%, #0a0d11 100%);--viewport-flat:#0f1318;--viewer-surface:#10141a;--shadow-sm:0 1px 2px #00000073;--shadow:0 1px 2px #0006, 0 6px 20px #00000042;--shadow-pop:0 2px 6px #00000059, 0 16px 48px #00000080;--glass:#101317bd;--glass-border:#ffffff12;--highlight-inset:inset 0 1px 0 #ffffff0b;--scrim:#0406098c;--switch-off:#343b45;--switch-off-hover:#414955;--plane:#f5a524;--plane-soft:#f5a52424;--direction:#d946ef;--direction-soft:#d946ef24;--ax-x:#ec5a5f;--ax-y:#3fb67c;--ax-z:#5a7cf0;--ax-a3:#19b3a2;--r-lg:12px;--r:8px;--r-sm:6px;--r-xs:4px;--header:52px;--control-h:32px;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.14s;--dur:.22s}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eceef2;--bg-2:#f3f4f7;--panel:#fff;--panel-2:#f7f8fa;--panel-3:#eef0f3;--panel-raised:#fff;--border:#e2e5ea;--border-2:#d3d8df;--border-strong:#b9c0ca;--text:#0e131a;--text-2:#444d59;--text-3:#636c78;--text-4:#8a929d;--accent:#2c5fe0;--accent-strong:#2251cb;--accent-soft:#2c5fe01a;--accent-softer:#2c5fe00f;--accent-text:#2251cb;--accent-ring:#2c5fe059;--good:#13834f;--good-soft:#13834f17;--bad:#cc2f38;--bad-soft:#cc2f3814;--warn:#a35f00;--warn-soft:#f5a52424;--viewport:radial-gradient(130% 100% at 50% 20%, #fff 0%, #f4f5f8 52%, #e8ebf0 100%);--viewport-flat:#f4f5f8;--viewer-surface:#f3f5f8;--shadow-sm:0 1px 2px #0f17240f;--shadow:0 1px 2px #0f17240d, 0 4px 16px #0f17240f;--shadow-pop:0 2px 6px #0f17240f, 0 14px 40px #0f172424;--glass:#ffffffd1;--glass-border:#0f172414;--highlight-inset:inset 0 1px 0 #ffffffe6;--scrim:#141a2447;--switch-off:#c4cad3;--switch-off-hover:#adb4bf;--plane-soft:#f5a52429;--direction-soft:#d946ef1a;--ax-x:#d63e44;--ax-y:#1f8f57;--ax-z:#3a5fd6;--ax-a3:#0d8c7e}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);font-size:var(--fs-base);line-height:var(--lh);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-variant-numeric:tabular-nums;margin:0}body{overflow-x:hidden}::selection{background:var(--accent-soft)}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}a{color:var(--accent-text);text-underline-offset:2px;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}h1,h2,h3,h4,h5{letter-spacing:-.012em;font-weight:600;line-height:var(--lh-tight)}.muted{color:var(--text-3)}.small{font-size:var(--fs-sm)}.mono{font-family:var(--mono)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}[hidden]{display:none!important}.kicker,.group-title,.ex-kicker,.ex-section h3{font-family:var(--font);font-size:var(--fs-2xs);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-3);font-weight:600}.app{grid-template-rows:var(--header) 1fr auto;grid-template-columns:minmax(0,1fr);height:100dvh;display:grid}.credit{padding:6px 16px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--panel);color:var(--text-3);font-size:var(--fs-xs);text-align:center}.credit a{color:var(--text-2);font-weight:500}.credit a:hover{color:var(--accent-text)}.topbar{border-bottom:1px solid var(--border);background:var(--panel);z-index:20;align-items:center;gap:20px;padding:0 14px 0 16px;display:flex;position:relative}.brand{letter-spacing:-.01em;color:var(--text);white-space:nowrap;flex:none;align-items:center;gap:10px;font-size:14.5px;font-weight:600;display:flex}.brand:hover{text-decoration:none}.brand-mark{flex:none;width:24px;height:24px}.brand small{font-size:var(--fs-xs);color:var(--text-3);border-left:1px solid var(--border-2);margin-left:6px;padding-left:9px;font-weight:500}.nav{scrollbar-width:none;flex:1;align-self:stretch;gap:2px;min-width:0;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--text-2);white-space:nowrap;transition:color var(--dur-fast);align-items:center;padding:0 11px;font-size:13.5px;font-weight:500;display:flex;position:relative}.nav a:before{content:"";border-radius:var(--r-sm);transition:background var(--dur-fast);z-index:-1;background:0 0;position:absolute;inset:10px 2px}.nav a:after{content:"";background:var(--accent);height:2px;transition:transform var(--dur) var(--ease-out);border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:11px;right:11px;transform:scaleX(0)}.nav a:hover{color:var(--text);text-decoration:none}.nav a:hover:before{background:var(--panel-3)}.nav a.is-active{color:var(--text)}.nav a.is-active:after{transform:scaleX(1)}.nav a:focus-visible{outline-offset:-8px}.top-actions{flex:none;align-items:center;gap:6px;display:flex}.page{min-height:0;animation:page-in .3s var(--ease-out);overflow:hidden}.page.scroll{overflow-y:auto}@keyframes page-in{0%{opacity:0}}.btn{height:var(--control-h);border-radius:var(--r-sm);border:1px solid var(--border-2);background:var(--panel-2);box-shadow:var(--highlight-inset), var(--shadow-sm);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-fast), transform 80ms;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:500;line-height:1;display:inline-flex}.btn .icon{width:16px;height:16px;margin:0 -1px}.btn:hover{background:var(--panel-3);border-color:var(--border-strong);text-decoration:none}.btn:active{transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.42;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:inset 0 1px #ffffff29,0 1px 2px #00000040}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-primary:disabled,.btn-primary[aria-disabled=true]{opacity:1;background:var(--panel-3);border-color:var(--border-2);color:var(--text-3);box-shadow:none}.btn-ghost{box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--panel-3);color:var(--text);border-color:#0000}.btn-block{width:100%}.btn-sm{height:27px;font-size:var(--fs-sm);gap:6px;padding:0 10px}.btn-sm .icon{width:14px;height:14px}.btn-lg{border-radius:var(--r);height:40px;padding:0 18px;font-size:14px}.icon-btn{width:var(--control-h);height:var(--control-h);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--panel-3);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:not-allowed;background:0 0}.icon-btn.is-active{color:var(--accent-text);background:var(--accent-soft)}.icon{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.seg{border-radius:var(--r);background:var(--bg-2);border:1px solid var(--border);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:2px;display:grid}.seg.wrap{grid-auto-flow:row;grid-template-columns:repeat(var(--cols,3), 1fr)}.seg button{border-radius:var(--r-sm);height:28px;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease), color var(--dur-fast), border-color var(--dur-fast), box-shadow var(--dur);background:0 0;border:1px solid #0000;padding:0 6px;font-size:13px;font-weight:500}.seg button:hover:not(:disabled){color:var(--text);background:var(--panel-3)}.seg button.is-active{background:var(--panel-raised);border-color:var(--border-2);color:var(--text);box-shadow:var(--highlight-inset), var(--shadow-sm)}.seg button:disabled{opacity:.4;cursor:not-allowed}.seg button.is-active.accent{color:var(--accent-text)}.seg button:focus-visible{outline-offset:-1px}.field-label{font-size:var(--fs-xs);color:var(--text-3);margin:0 0 6px;display:block}.text-input{width:100%;height:var(--control-h);border-radius:var(--r-sm);border:1px solid var(--border-2);background:var(--bg-2);transition:border-color var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast);font-family:var(--mono);padding:0 10px;font-size:13px;box-shadow:inset 0 1px 1px #0000000f}.text-input::placeholder{color:var(--text-3);opacity:.85}.text-input:hover{border-color:var(--border-strong)}.text-input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.text-input.is-invalid{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}select.text-input{font-family:var(--font);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23808a97' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;background-size:14px;padding-right:30px;font-size:13px}.index-input{align-items:stretch;gap:6px;display:flex}.index-input .br-big{color:var(--text-3);place-items:center;width:12px;padding-top:15px;font-size:30px;font-weight:250;line-height:1;display:grid}.ix-field{flex-direction:column;flex:1;align-items:stretch;gap:4px;min-width:0;display:flex}.ix-field label{text-align:center;font-size:var(--fs-sm);color:var(--text-3);font-style:italic;font-weight:500;line-height:1.2}.ix-field input{text-align:center;border-radius:var(--r-sm);border:1px solid var(--border-2);background:var(--bg-2);font-variant-numeric:tabular-nums;appearance:textfield;width:100%;height:42px;transition:border-color var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast);font-size:18px;font-weight:600;box-shadow:inset 0 1px 1px #0000000f}.ix-field input:hover{border-color:var(--border-strong)}.ix-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ix-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ix-field input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ix-field.is-derived input{color:var(--text-2);box-shadow:none;background:0 0;border-style:dashed}.ix-field.is-invalid input{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.ix-step{gap:2px;display:flex}.ix-step button{border:1px solid var(--border);border-radius:var(--r-xs);background:var(--panel-2);height:22px;color:var(--text-2);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);flex:1;font-size:13px;line-height:1}.ix-step button:hover{background:var(--panel-3);border-color:var(--border-2);color:var(--text)}.ix-step button:active{background:var(--accent-soft);color:var(--accent-text)}.validation{font-size:var(--fs-sm);border-radius:var(--r-sm);animation:fade-in var(--dur) var(--ease);border:1px solid #0000;margin-top:8px;padding:7px 10px;line-height:1.45}.validation.is-error{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 22%, transparent);color:var(--bad)}.validation.is-note{background:var(--accent-softer);border-color:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent-text)}@keyframes fade-in{0%{opacity:0;transform:translateY(-2px)}}.toggles{grid-template-columns:1fr 1fr;gap:2px 10px;display:grid}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;min-height:30px;color:var(--text-2);transition:color var(--dur-fast);align-items:center;gap:9px;padding:4px 2px;font-size:13px;display:flex;position:relative}.switch:hover{color:var(--text)}.switch input{opacity:0;pointer-events:none;position:absolute}.switch .track{background:var(--switch-off);width:26px;height:15px;transition:background var(--dur) var(--ease);border-radius:99px;flex:none;position:relative;box-shadow:inset 0 0 0 1px #0000000f}.switch .track:after{content:"";width:11px;height:11px;transition:transform var(--dur) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000059}.switch:hover .track{background:var(--switch-off-hover)}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(11px)}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.switch input:disabled~*{opacity:.55}.switch input:disabled+.track{box-shadow:inset 0 0 0 1px var(--border-strong);background:0 0}.switch input:disabled+.track:after{background:var(--border-strong);box-shadow:none}.switch:has(input:disabled){cursor:not-allowed;color:var(--text-3)}.switch .dot{border-radius:2px;flex:none;width:8px;height:8px;margin-right:-3px}.ws{grid-template-columns:300px minmax(0,1fr) 384px;height:100%;min-height:0;display:grid}.panel{background:var(--panel);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-2) transparent;min-height:0;overflow-y:auto}.panel-left{border-right:1px solid var(--border);padding:4px 16px 24px}.panel-right{border-left:1px solid var(--border)}.group{border-bottom:1px solid var(--border);padding:14px 0 16px}.group:last-child{border-bottom:0}.group-title{justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;display:flex}.group-title .hint{border:1px solid var(--border-2);text-transform:none;letter-spacing:0;cursor:help;width:16px;height:16px;color:var(--text-3);border-radius:50%;place-items:center;font-size:10px;font-weight:600;display:inline-grid}.group-title .hint:hover{color:var(--text);border-color:var(--border-strong)}.stack{gap:6px;display:grid}.row{gap:8px;display:flex}.row>*{flex:1}.or-sep{color:var(--text-3);font-size:var(--fs-xs);align-items:center;gap:10px;margin:14px 0 10px;display:flex}.or-sep:before,.or-sep:after{content:"";background:var(--border);flex:1;height:1px}.converter{border-radius:var(--r);border:1px solid var(--border);background:var(--panel-2);font-size:var(--fs-sm);color:var(--text-2);margin-top:12px;padding:11px 12px 12px}.converter .row{align-items:center}.converter output{min-width:72px;color:var(--text);white-space:nowrap;flex:0 auto;font-size:15px}.viewport{background:var(--viewport);min-width:0;min-height:0;position:relative;overflow:hidden}.vp-bar{z-index:6;flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex;position:absolute;top:12px;right:12px}.vp-group{border-radius:var(--r);background:var(--glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border:1px solid var(--glass-border);box-shadow:var(--shadow);gap:1px;padding:2px;display:flex}.vp-group .icon-btn{border-radius:var(--r-sm);letter-spacing:.02em;width:30px;height:30px;font-size:11.5px;font-weight:600}.vp-group .icon-btn .icon{width:16px;height:16px}.vp-crumb{z-index:6;border-radius:var(--r);background:var(--glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border:1px solid var(--glass-border);height:36px;box-shadow:var(--shadow);white-space:nowrap;align-items:center;gap:9px;max-width:calc(100% - 300px);padding:0 13px 0 11px;font-size:14px;font-weight:600;display:flex;position:absolute;top:12px;left:12px;overflow:hidden}.vp-crumb .kicker{border-radius:var(--r-xs);background:var(--panel-3);color:var(--text-2);letter-spacing:.06em;padding:2px 6px}.vp-crumb .title-word{font-size:12.5px}.vp-legend{z-index:6;border-radius:var(--r);background:var(--glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border:1px solid var(--glass-border);font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;gap:4px 14px;max-width:calc(100% - 24px);padding:7px 12px;display:flex;position:absolute;bottom:12px;left:12px}.lg{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.lg i{border-radius:50%;width:9px;height:9px;display:inline-block;box-shadow:inset 0 0 0 1px #0000002e}.lg i.sq{border-radius:2px}.vp-hint{z-index:6;font-size:var(--fs-xs);color:var(--text-3);pointer-events:none;position:absolute;bottom:14px;right:14px}.vp-hint kbd{font-family:var(--font);border-radius:var(--r-xs);border:1px solid var(--border-2);color:var(--text-2);padding:1px 5px;font-size:10.5px}.step-caption{z-index:7;border-radius:var(--r-lg);background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);border:1px solid var(--glass-border);max-width:calc(100% - 32px);box-shadow:var(--shadow-pop);white-space:nowrap;animation:caption-in .28s var(--ease-out);align-items:center;gap:10px;padding:4px 4px 4px 6px;display:flex;position:absolute;bottom:60px;left:50%;transform:translate(-50%)}@keyframes caption-in{0%{opacity:0;transform:translate(-50%,6px)}}.step-caption .num{border-radius:var(--r-sm);background:var(--accent-soft);height:26px;font-size:var(--fs-xs);color:var(--accent-text);font-variant-numeric:tabular-nums;place-items:center;padding:0 9px;font-weight:600;display:inline-grid}.step-caption .ttl{text-overflow:ellipsis;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden}.step-caption .icon-btn{width:30px;height:30px}.step-caption .ttl+.icon-btn{margin-left:4px}.drawer-toggle{display:none}.ex-head{z-index:3;background:var(--panel);border-bottom:1px solid var(--border);padding:16px 20px 14px;position:sticky;top:0}.ex-title{font-size:var(--fs-2xl);letter-spacing:-.015em;margin:6px 0 0;font-weight:600;line-height:1.15}.title-word{color:var(--text-3);letter-spacing:0;margin-left:2px;font-size:.68em;font-weight:450}.ex-tabs{margin-top:14px}.ex-body{animation:fade-in var(--dur) var(--ease);padding:4px 20px 32px}.ex-section{border-bottom:1px solid var(--border);padding:16px 0}.ex-section:last-child{border-bottom:0}.ex-section h3{margin:0 0 10px}.ex-section p{color:var(--text-2);margin:0 0 8px;line-height:1.6}.ex-section p:last-child{margin-bottom:0}.ex-section p strong{color:var(--text);font-weight:600}.ex-section.is-why h3{color:var(--accent-text)}.ex-section.is-density h3{color:var(--plane)}:root[data-theme=light] .ex-section.is-density h3{color:#9a5d00}.lead{color:var(--text-2);margin:16px 0 4px;font-size:14px;line-height:1.6}.note{font-size:var(--fs-sm);color:var(--text-2);border-radius:var(--r-sm);background:var(--panel-2);border:1px solid var(--border);margin:0 0 4px;padding:9px 12px;line-height:1.55}.callout{border-radius:var(--r-sm);background:var(--accent-softer);border:1px solid color-mix(in srgb, var(--accent) 18%, transparent);border-left:2px solid var(--accent);color:var(--text);margin:12px 0 0;padding:10px 12px;font-size:13px;line-height:1.55}.callout-warn{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 22%, transparent);border-left-color:var(--warn)}.formula{border-radius:var(--r-sm);background:var(--panel-2);border:1px solid var(--border);color:var(--text-2);white-space:nowrap;scrollbar-width:thin;margin:8px 0;padding:9px 12px;font-size:13.5px;overflow-x:auto}.formula strong{color:var(--text);font-weight:600}.idx-grid{grid-template-columns:repeat(var(--n,3), 1fr);gap:6px;display:grid}.idx-cell{border-radius:var(--r);background:var(--panel-2);border:1px solid var(--border);flex-direction:column;align-items:center;gap:1px;padding:8px 4px 9px;display:flex}.idx-name{font-size:var(--fs-sm);color:var(--text-3)}.idx-val{letter-spacing:-.01em;font-size:24px;font-weight:600;line-height:1.25}.axis-chip{font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:5px;font-style:italic;font-weight:600;display:inline-flex}.axis-chip:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.axis-chip sub{vertical-align:-.2em;margin-left:.04em;font-size:.72em;line-height:0}.ax-x{color:var(--ax-x)}.ax-y{color:var(--ax-y)}.ax-z{color:var(--ax-z)}.ax-a3{color:var(--ax-a3)}.calc-table{border-collapse:collapse;width:100%;font-size:13.5px}.calc-table th,.calc-table td{border-bottom:1px solid var(--border);text-align:left;padding:8px 4px}.calc-table tr:last-child th,.calc-table tr:last-child td{border-bottom:0}.calc-table th{width:52px;font-weight:500}.calc-table .eq{color:var(--text-2)}.calc-result{white-space:nowrap;font-weight:600;text-align:right!important}.calc-table tr.is-inf .calc-result{color:var(--text-2);font-weight:500}.calc-steps{border:1px solid var(--border);border-radius:var(--r);background:var(--panel-2);gap:0;display:grid;overflow:hidden}.calc-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:14px;padding:8px 12px;font-size:13px;display:flex}.calc-row:last-child{border-bottom:0}.calc-k{color:var(--text-3)}.calc-v{text-align:right;color:var(--text)}.move-list,.tight{gap:5px;margin:0;padding:0;list-style:none;display:grid}.move-list li,.tight li{color:var(--text-2);align-items:center;gap:8px;display:flex}.fam-chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.fam-chip{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--panel-2);align-items:center;gap:7px;height:26px;padding:0 10px;font-size:13px;display:inline-flex}.swatch{border-radius:2px;width:8px;height:8px;box-shadow:inset 0 0 0 1px #0000002e}.stat-grid{grid-template-columns:1fr 1fr;gap:6px;margin:16px 0 6px;display:grid}.stat{border-radius:var(--r);background:var(--panel-2);border:1px solid var(--border);flex-direction:column;gap:2px;padding:11px 13px 12px;display:flex}.stat-v{font-size:var(--fs-2xl);letter-spacing:-.02em;font-weight:600;line-height:1.1}.stat-v.small{letter-spacing:0;padding:5px 0 3px;font-size:16px}.stat-k{font-size:var(--fs-xs);color:var(--text-3)}.verdict{border-radius:var(--r);border:1px solid var(--border);margin:16px 0 2px;padding:11px 13px;font-size:14px}.verdict.is-yes{background:var(--good-soft);border-color:color-mix(in srgb, var(--good) 35%, transparent)}.verdict.is-in{background:var(--accent-softer);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.verdict.is-no{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 30%, transparent)}.slip-sys{margin-bottom:8px;font-size:22px;font-weight:600}.slip-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:4px;margin-top:12px;display:grid}.slip-chip{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--panel-2);cursor:pointer;height:30px;font-size:var(--fs-sm);transition:background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast)}.slip-chip:hover{border-color:var(--border-strong);background:var(--panel-3)}.slip-chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.notes{padding:0 20px}.error-card{border-radius:var(--r);background:var(--bad-soft);color:var(--bad);margin:16px 20px;padding:14px;font-size:13.5px}.steps-nav{align-items:center;gap:8px;margin-top:14px;display:flex}.steps-progress{flex:1;gap:4px;display:flex}.steps-progress button{background:var(--border-2);cursor:pointer;height:4px;transition:background var(--dur) var(--ease);border:0;border-radius:99px;flex:1;padding:0;position:relative}.steps-progress button:after{content:"";position:absolute;inset:-8px 0}.steps-progress button:hover{background:var(--border-strong)}.steps-progress button.is-done{background:color-mix(in srgb, var(--accent) 50%, var(--border-2))}.steps-progress button.is-current{background:var(--accent)}.step-list{gap:6px;margin:14px 0 0;padding:0;list-style:none;display:grid}.step-item{border:1px solid var(--border);border-radius:var(--r);background:var(--panel-2);transition:border-color var(--dur), background var(--dur), opacity var(--dur), box-shadow var(--dur)}.step-item.is-future{opacity:.6}.step-item.is-current{border-color:color-mix(in srgb, var(--accent) 70%, var(--border));background:var(--panel);box-shadow:0 0 0 3px var(--accent-softer)}.step-head{border-radius:var(--r);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-height:42px;padding:9px 12px;font-weight:600;display:flex}.step-head:focus-visible{outline-offset:-2px}.step-num{background:var(--panel-3);border:1px solid var(--border-2);width:22px;height:22px;color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.step-item.is-current .step-num{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.step-item.is-done .step-num{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.step-body{color:var(--text-2);animation:fade-in var(--dur) var(--ease);padding:0 14px 14px 44px;font-size:13.5px;line-height:1.6}.step-body p{margin:0 0 8px}.step-body .calc-table,.step-body .formula,.step-body .calc-steps{margin-top:6px}.mi{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:inherit;font-style:normal}.mi .br{padding:0 .04em;font-weight:400}.mi .br-angle{color:inherit;margin:0 -.08em;font-weight:300;display:inline-block;transform:scale(.6,1.16)}.mi .ix{padding:0 .035em;line-height:1;display:inline-block;position:relative}.mi-spaced .ix{margin:0 .12em}.mi .ix-bar:before{content:"";background:currentColor;border-radius:1px;height:.075em;min-height:1px;position:absolute;top:-.06em;left:.1em;right:.1em}.mi-sym i{padding:0 .05em;font-style:italic}.fr{font-size:.85em}.fr sup,.fr sub{font-size:.8em}.why-link{font-weight:500}.group:has(>div>.or-sep:first-child){padding-top:2px}.group:has(>div>.or-sep:first-child) .or-sep{margin-top:6px}.ex-body>.note{margin:14px 0 0}.viewer-root{touch-action:none;position:absolute;inset:0}.viewer-canvas{cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.viewer-canvas:active{cursor:grabbing}.viewer-labels{pointer-events:none;transition:opacity .25s;inset:0;position:absolute!important}.viewer-labels.hidden{opacity:0}.vlabel{font-family:var(--font);color:var(--text);white-space:nowrap;text-shadow:0 0 3px var(--bg), 0 0 6px var(--bg);font-size:12.5px;font-weight:600;transition:opacity .2s}.vlabel sub{vertical-align:-.32em;letter-spacing:0;margin-left:-.04em;font-size:.68em;font-style:normal;line-height:0}.vlabel-axis{font-size:14px;font-style:italic;font-weight:650}.vlabel-axis.is-hl{font-size:16px}.vlabel-neg{opacity:.8}.axis-x{color:var(--ax-x)}.axis-y{color:var(--ax-y)}.axis-z{color:var(--ax-z)}.axis-a3{color:var(--ax-a3)}.vlabel-origin-base{color:var(--text-3);font-size:11px}.vlabel-plane,.vlabel-dir{background:var(--glass);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-shadow:none;border:1px solid var(--plane);color:var(--text);border-radius:6px;padding:2px 7px;font-size:13px}.vlabel-dir{border-color:var(--direction)}.vlabel-ghost{opacity:.7;border-style:dashed}.vlabel-point{background:var(--glass);text-shadow:none;border-radius:4px;padding:1px 5px;font-size:11.5px}.vlabel-intercept{color:var(--plane)}.vlabel-origin{color:var(--text);font-weight:700}.vlabel-marker{color:var(--direction)}.vlabel-seg{background:var(--glass);text-shadow:none;border-radius:4px;padding:0 4px;font-size:12px;font-weight:650}.viewer-tooltip{z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-2);box-shadow:var(--shadow-pop);pointer-events:none;border-radius:8px;gap:1px;min-width:150px;padding:8px 10px;font-size:12px;display:grid;position:absolute;top:0;left:0}.viewer-tooltip strong{font-size:12.5px}.tt-coord{font-family:var(--mono);font-size:13px}.tt-sub,.tt-share{color:var(--text-3);font-size:11.5px}.home{max-width:1240px;margin:0 auto;padding:36px 28px 56px}.hero{min-height:min(620px, calc(100dvh - var(--header) - 72px));grid-template-columns:minmax(0,.92fr) minmax(0,1.2fr);align-items:center;gap:40px;display:grid}.hero-copy{padding:8px 0}.hero h1{font-size:var(--fs-display);letter-spacing:-.035em;margin:18px 0;font-weight:600;line-height:1.04}.h1-quiet{color:var(--text-3)}.hero-lede{color:var(--text-2);max-width:34em;margin:0 0 26px;font-size:16.5px;line-height:1.6}.eyebrow{border:1px solid var(--border-2);background:var(--panel);height:28px;font-size:var(--fs-xs);color:var(--text-2);letter-spacing:.01em;border-radius:99px;align-items:center;gap:9px;padding:0 11px;font-weight:500;display:inline-flex}.eyebrow-dot{background:var(--plane);width:6px;height:6px;box-shadow:0 0 0 3px var(--plane-soft);border-radius:50%}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.hero-facts{border-top:1px solid var(--border);grid-template-columns:repeat(3,max-content);gap:10px 32px;margin:34px 0 0;padding:18px 0 0;display:grid}.hero-facts div{align-items:baseline;gap:8px;display:flex}.hero-facts dt{letter-spacing:-.02em;color:var(--text);font-size:22px;font-weight:600}.hero-facts dd{font-size:var(--fs-sm);color:var(--text-3);margin:0}.hero-stage{min-width:0;position:relative}.hero-viewport{border-radius:var(--r-lg);border:1px solid var(--border);height:clamp(420px,58vh,580px);box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-viewport:after{content:"";pointer-events:none;z-index:4;background:linear-gradient(var(--border-strong), var(--border-strong)) left top / 12px 1px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) left top / 1px 12px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) right top / 12px 1px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) right top / 1px 12px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) left bottom / 12px 1px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) left bottom / 1px 12px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) right bottom / 12px 1px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) right bottom / 1px 12px no-repeat;opacity:.7;position:absolute;inset:10px}.hero-caption{z-index:6;border-radius:var(--r);background:var(--glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border:1px solid var(--glass-border);box-shadow:var(--shadow);pointer-events:none;gap:6px;padding:9px 12px 10px;display:grid;position:absolute;top:18px;left:18px}.hero-cap-k{font-size:var(--fs-2xs);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-3);font-weight:600}.hero-cap-row{gap:14px;font-size:15px;font-weight:600;display:flex}.hero-cap-row .lg{gap:7px}.hero-open{z-index:6;position:absolute;bottom:18px;right:18px}.flow{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);grid-template-columns:repeat(4,1fr);margin:44px 0 0;display:grid;overflow:hidden}.flow-step{border-left:1px solid var(--border);padding:20px 20px 22px}.flow-step:first-child{border-left:0}.flow-n{font-family:var(--mono);font-size:var(--fs-xs);color:var(--accent-text);margin-bottom:12px;font-weight:500;display:block}.flow-step h3{margin:0 0 6px;font-size:14.5px}.flow-step p{color:var(--text-3);margin:0;font-size:13px;line-height:1.55}.home-section{margin-top:56px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin-bottom:16px;display:flex}.section-title{font-size:var(--fs-xl);letter-spacing:-.02em;margin:0}.section-sub{color:var(--text-3);margin:0;font-size:13.5px}.cases{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.case{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--panel);color:var(--text);transition:border-color var(--dur), background var(--dur), transform var(--dur) var(--ease-out), box-shadow var(--dur);flex-direction:column;gap:8px;padding:14px 16px 16px;display:flex}.case:hover{border-color:var(--border-strong);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.case-top{color:var(--text-3);justify-content:space-between;align-items:center;display:flex}.case-top .icon{opacity:0;width:15px;height:15px;transition:opacity var(--dur), transform var(--dur) var(--ease-out);transform:translate(-4px)}.case:hover .case-top .icon,.case:focus-visible .case-top .icon{opacity:1;color:var(--accent-text);transform:none}.case-struct{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.06em;border-radius:var(--r-xs);background:var(--panel-3);color:var(--text-2);padding:2px 6px;font-weight:500}.case-label{letter-spacing:-.01em;font-size:22px;font-weight:600;line-height:1.25}.case-tag{font-size:var(--fs-sm);color:var(--text-3);line-height:1.4}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.card{border-radius:var(--r-lg);background:var(--panel);border:1px solid var(--border);color:var(--text);transition:border-color var(--dur), transform var(--dur) var(--ease-out), box-shadow var(--dur);padding:18px 18px 20px;display:block}a.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.card h3{margin:14px 0 5px;font-size:15px}.card p{color:var(--text-3);margin:0;font-size:13px;line-height:1.55}.card-ico{border-radius:var(--r);border:1px solid var(--border-2);background:var(--panel-2);width:32px;height:32px;color:var(--text-2);place-items:center;display:grid}.card-ico .icon{width:16px;height:16px}a.card:hover .card-ico{color:var(--accent-text);border-color:color-mix(in srgb, var(--accent) 40%, var(--border-2))}.quick{flex-wrap:wrap;gap:8px;display:flex}.footer{border-top:1px solid var(--border);color:var(--text-3);font-size:var(--fs-sm);flex-wrap:wrap;gap:6px 18px;margin-top:56px;padding-top:18px;display:flex}.footer span:first-child{color:var(--text-2);font-weight:600}.learn{grid-template-columns:248px minmax(0,1fr) minmax(380px,44%);height:100%;min-height:0;display:grid}.lesson-nav{border-right:1px solid var(--border);background:var(--panel);scrollbar-width:thin;scrollbar-color:var(--border-2) transparent;padding:10px 10px 24px;overflow-y:auto}.lesson-nav h5{font-size:var(--fs-2xs);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-3);margin:16px 10px 6px;font-weight:600}.lesson-nav a{border-radius:var(--r-sm);color:var(--text-2);transition:background var(--dur-fast), color var(--dur-fast);align-items:baseline;gap:10px;padding:7px 10px;font-size:13px;line-height:1.4;display:flex}.lesson-nav a:hover{background:var(--panel-3);color:var(--text);text-decoration:none}.lesson-nav a.is-active{background:var(--accent-soft);color:var(--text);font-weight:500}.lesson-nav .n{font-family:var(--mono);font-size:var(--fs-2xs);color:var(--text-3);flex:none;width:16px}.lesson-nav a.is-active .n{color:var(--accent-text)}.article{scrollbar-width:thin;scrollbar-color:var(--border-2) transparent;padding:32px 40px 120px;overflow-y:auto}.article-inner{max-width:660px;margin:0 auto}.article h1{font-size:var(--fs-3xl);letter-spacing:-.028em;margin:12px 0 10px;line-height:1.12}.article .summary{color:var(--text-2);margin:0 0 14px;font-size:16.5px;line-height:1.6}.article .meta{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.02em;flex-wrap:wrap;gap:8px;font-weight:500;display:flex}.lsec{transition:border-color .3s var(--ease);border-left:2px solid #0000;margin-left:-20px;padding:24px 0 20px 20px}.lsec.is-active{border-left-color:var(--accent)}.lsec h2{letter-spacing:-.015em;margin:0 0 10px;font-size:19px}.lsec p,.lsec li{color:var(--text-2);font-size:15px;line-height:var(--lh-read)}.lsec p{margin:0 0 12px}.lsec ol,.lsec ul{margin:0 0 12px;padding-left:22px}.lsec li+li{margin-top:4px}.lsec strong{color:var(--text);font-weight:600}.lsec .callout,.lsec .formula{font-size:14px}.lsec-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.figure{border-left:1px solid var(--border);background:var(--viewport);min-height:0;position:relative}.figure-caption{z-index:6;border-radius:var(--r);background:var(--glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border:1px solid var(--glass-border);box-shadow:var(--shadow);color:var(--text-2);justify-content:space-between;align-items:center;gap:12px;padding:8px 8px 8px 14px;font-size:13px;line-height:1.45;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.figure-caption .btn{flex:none}.lesson-pager{border-top:1px solid var(--border);justify-content:space-between;gap:12px;margin-top:32px;padding-top:20px;display:flex}.lesson-pager .btn{text-overflow:ellipsis;min-width:0;max-width:48%;overflow:hidden}.lesson-picker{margin:0 0 16px;display:none}.practice{grid-template-columns:minmax(0,1fr) 420px;height:100%;min-height:0;display:grid}.q-panel{border-left:1px solid var(--border);background:var(--panel);scrollbar-width:thin;scrollbar-color:var(--border-2) transparent;flex-direction:column;display:flex;overflow-y:auto}.q-top{border-bottom:1px solid var(--border);gap:10px;padding:16px 20px;display:grid}.q-stats{border:1px solid var(--border);border-radius:var(--r);background:var(--panel-2);grid-template-columns:repeat(4,1fr);gap:0;display:grid;overflow:hidden}.q-stat{border-left:1px solid var(--border);padding:8px 11px 9px}.q-stat:first-child{border-left:0}.q-stat b{letter-spacing:-.01em;font-size:17px;font-weight:600;display:block}.q-stat span{font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);font-weight:500}.q-body{animation:fade-in var(--dur) var(--ease);flex:1;padding:20px}.q-type{font-size:var(--fs-2xs);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--accent-text);font-weight:600}.q-prompt{letter-spacing:-.005em;margin:8px 0 18px;font-size:17px;font-weight:500;line-height:1.45}.q-prompt strong{font-weight:650}.choice-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice{border-radius:var(--r);border:1px solid var(--border-2);background:var(--viewport);cursor:pointer;aspect-ratio:4/3;transition:border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur) var(--ease-out);padding:0;position:relative;overflow:hidden}.choice img{object-fit:cover;width:100%;height:100%;display:block}.choice .tag{border-radius:var(--r-sm);background:var(--glass);border:1px solid var(--glass-border);width:24px;height:24px;font-weight:600;font-size:var(--fs-xs);place-items:center;display:grid;position:absolute;top:8px;left:8px}.choice:hover{border-color:var(--border-strong);transform:translateY(-1px)}.choice.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.choice.is-selected .tag{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.choice.is-correct{border-color:var(--good);box-shadow:0 0 0 3px var(--good-soft)}.choice.is-correct .tag{background:var(--good);border-color:var(--good);color:#fff}.choice.is-wrong{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.mc-list{gap:6px;display:grid}.mc{border-radius:var(--r);border:1px solid var(--border-2);background:var(--panel-2);cursor:pointer;text-align:left;min-height:44px;transition:border-color var(--dur-fast), background var(--dur-fast);align-items:center;gap:11px;padding:9px 12px;font-size:14px;line-height:1.4;display:flex}.mc:hover{border-color:var(--border-strong);background:var(--panel-3)}.mc .k{border-radius:var(--r-xs);background:var(--panel-3);border:1px solid var(--border-2);width:22px;height:22px;font-size:var(--fs-2xs);flex:none;place-items:center;font-weight:600;display:grid}.mc.is-selected{border-color:var(--accent);background:var(--accent-softer)}.mc.is-selected .k{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.mc.is-correct{border-color:var(--good);background:var(--good-soft)}.mc.is-wrong{border-color:var(--bad);background:var(--bad-soft)}.feedback{border-radius:var(--r);border:1px solid var(--border);animation:fade-in var(--dur) var(--ease);margin-top:14px;padding:12px 14px;font-size:13.5px;line-height:1.55}.feedback.is-good{background:var(--good-soft);border-color:color-mix(in srgb, var(--good) 35%, transparent)}.feedback.is-bad{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}.feedback.is-hint{background:var(--accent-softer);border-color:color-mix(in srgb, var(--accent) 25%, transparent)}.feedback h5{letter-spacing:0;align-items:center;gap:7px;margin:0 0 4px;font-size:13.5px;display:flex}.feedback h5 .icon{width:15px;height:15px}.feedback.is-good h5{color:var(--good)}.feedback.is-bad h5{color:var(--bad)}.feedback.is-hint h5{color:var(--accent-text)}.feedback p{color:var(--text-2);margin:0}.q-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.topic-bars{gap:8px;margin:10px 0 8px;display:grid}.topic-bar{font-size:var(--fs-sm);color:var(--text-2);grid-template-columns:124px 1fr 38px;align-items:center;gap:10px;display:grid}.topic-bar>span:last-child{text-align:right;font-variant-numeric:tabular-nums}.topic-bar .bar{background:var(--panel-3);border-radius:99px;height:5px;overflow:hidden}.topic-bar .bar i{background:var(--accent);height:100%;transition:width .4s var(--ease);border-radius:99px;display:block}.topic-bar.is-weak .bar i{background:var(--warn)}details.more{border-top:1px solid var(--border);padding:12px 20px}details.more summary{cursor:pointer;font-size:var(--fs-sm);color:var(--text-2);font-weight:500}.ref-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:4px;font-size:13px}.ref-table th,.ref-table td{border-bottom:1px solid var(--border);text-align:left;padding:8px}.ref-table th:first-child,.ref-table td:first-child{padding-left:10px}.ref-table th{color:var(--text-3);font-weight:600;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em}.ref-table tr:last-child td{border-bottom:0}.ref-table tr.is-active td{background:var(--accent-softer)}.ref-table tr.is-active td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.ref-table td a{font-weight:600}.glossary{margin:0}.glossary dt{color:var(--text);margin-top:12px;font-weight:600}.glossary dt:first-child{margin-top:0}.glossary dd{color:var(--text-2);margin:3px 0 0;line-height:1.55}.ref-table .num{text-align:right}.ref-dense+.ref-dense{margin-top:12px}.ref-dense td:last-child{white-space:nowrap;text-align:right;width:1%}.ref-dense tr.is-top td:first-child a{color:var(--text)}.badge{border-radius:var(--r-xs);background:var(--good-soft);height:18px;color:var(--good);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.collapse{transition:grid-template-rows .28s var(--ease), opacity .2s var(--ease);grid-template-rows:1fr;display:grid}.collapse-inner{min-height:0;margin:-4px;padding:4px;overflow:hidden}.is-collapsed>.collapse{opacity:0;visibility:hidden;transition:grid-template-rows .28s var(--ease), opacity .16s var(--ease), visibility 0s linear .28s;grid-template-rows:0fr}.chev{width:6px;height:6px;transition:transform .24s var(--ease);opacity:.8;border-bottom:1.6px solid;border-right:1.6px solid;border-radius:1px;flex:none;margin:0 1px;transform:translateY(-1px)rotate(45deg)}.is-collapsed>.group-title .chev,.is-collapsed>.disclosure-toggle .chev,.is-collapsed>h3 .chev{transform:translate(-1px)rotate(-45deg)}.group.is-collapsible>.group-title{gap:6px;margin:0}.group-toggle{border-radius:var(--r-sm);min-width:0;min-height:28px;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;margin:-4px 0;padding:4px 4px 4px 2px;transition:color .15s,background .15s;display:flex}.group-toggle:hover{color:var(--text-2)}.group-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:0;color:var(--text)}.group-body{padding-top:10px}.group.is-collapsible.is-collapsed{padding-bottom:8px}.group.is-collapsible{transition:padding .28s var(--ease)}.group-title button.hint{border:1px solid var(--border-2);width:18px;height:18px;color:var(--text-3);font:600 11px/1 var(--font);letter-spacing:0;text-transform:none;cursor:help;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;transition:color .15s,border-color .15s,background .15s;display:inline-grid}.group-title button.hint:hover,.group-title button.hint:focus-visible{color:var(--text);border-color:var(--text-3);background:var(--panel-3)}.ex-section.is-collapsible>h3{margin:0}.ex-toggle{border-radius:var(--r-sm);width:100%;min-height:28px;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin:-6px 0;padding:6px 2px;transition:opacity .15s;display:flex}.ex-toggle .chev{margin-left:auto}.ex-toggle:hover{opacity:.8}.ex-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:0}.ex-section.is-collapsible>.collapse>.collapse-inner{padding-top:13px}.ex-section.is-collapsible.is-collapsed{padding-bottom:12px}.disclosure-block.more{border-top:1px solid var(--border);padding:8px 18px 12px}.disclosure-toggle{border-radius:var(--r-sm);width:100%;min-height:32px;color:var(--text-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:4px 2px;font-size:12.5px;font-weight:600;display:flex}.disclosure-toggle:hover{color:var(--text)}.disclosure-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:0}.disclosure-body{padding-top:8px}.tooltip{--tip-bg:#10141b;z-index:2000;background:var(--tip-bg);color:#e9ecf2;width:max-content;max-width:min(240px,100vw - 16px);box-shadow:var(--shadow-pop);font-family:var(--font);text-align:left;white-space:normal;pointer-events:none;opacity:0;transition:opacity .14s var(--ease), transform .14s var(--ease);border:1px solid #ffffff17;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:450;line-height:1.4;position:fixed;top:0;left:0}:root:not([data-theme=light]) .tooltip{--tip-bg:#272f3f}.tooltip[hidden]{display:none}.tooltip[data-side=above]{transform:translateY(3px)}.tooltip[data-side=below]{transform:translateY(-3px)}.tooltip[data-side=left]{transform:translate(3px)}.tooltip[data-side=right]{transform:translate(-3px)}.tooltip.is-visible{opacity:1;transform:none}.tooltip:after{content:"";background:var(--tip-bg);border:1px solid #ffffff17;width:8px;height:8px;position:absolute}.tooltip[data-side=above]:after{bottom:-5px;left:calc(var(--tip-ax,50%) - 4px);border-top:0;border-left:0;transform:rotate(45deg)}.tooltip[data-side=below]:after{top:-5px;left:calc(var(--tip-ax,50%) - 4px);border-bottom:0;border-right:0;transform:rotate(45deg)}.tooltip[data-side=left]:after{right:-5px;top:calc(var(--tip-ay,50%) - 4px);border-bottom:0;border-left:0;transform:rotate(45deg)}.tooltip[data-side=right]:after{left:-5px;top:calc(var(--tip-ay,50%) - 4px);border-top:0;border-right:0;transform:rotate(45deg)}.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:1px;z-index:1;position:relative}.seg button.is-disabled,.seg button[aria-disabled=true]{opacity:.45;cursor:not-allowed}.seg button.is-disabled:hover,.seg button[aria-disabled=true]:hover{color:var(--text-2);background:0 0}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 5px var(--accent-soft)}.switch.is-disabled{cursor:not-allowed}.switch.is-disabled:hover{color:var(--text-2)}.switch.is-disabled .track{background:var(--border)}.icon-btn:disabled,.steps-nav .icon-btn[disabled],.step-caption .icon-btn[disabled]{opacity:.35;cursor:not-allowed}.icon-btn:disabled:hover{color:var(--text-2);background:0 0}.index-input{container:ix/inline-size}.ix-field input:focus-visible{outline:none}.ix-field.is-invalid input{box-shadow:0 0 0 3px var(--bad-soft)}.ix-step button:focus-visible{outline:2px solid var(--accent)}@media (pointer:coarse){.ix-field input{height:44px}.ix-step{gap:4px}.ix-step button{border-radius:8px;min-width:40px;height:40px;font-size:18px}.switch{min-height:40px}.group-toggle{min-height:40px;margin:-8px 0}.group-title button.hint{width:26px;height:26px}.ex-toggle{min-height:40px;margin:-10px 0}.disclosure-toggle{min-height:40px}}@container ix (width<=430px){@media (pointer:coarse){.index-input[data-count="4"] .ix-step{flex-direction:column}.index-input[data-count="4"] .ix-step button{flex:none}}}@container ix (width<=300px){@media (pointer:coarse){.index-input .ix-step{flex-direction:column}.index-input .ix-step button{flex:none}}}.msg-box:empty{display:none}@media (prefers-reduced-motion:reduce){.collapse,.is-collapsed>.collapse,.chev,.group.is-collapsible,.tooltip{transition:none!important}}@media (pointer:coarse){:root{--control-h:40px}.seg button{height:38px}.switch{min-height:40px}.ix-step button{height:32px}.vp-group .icon-btn,.step-caption .icon-btn{width:40px;height:40px}.slip-chip{height:40px}.btn-sm{height:36px}.steps-progress button:after{inset:-14px 0}}@media (max-width:1240px){.ws{grid-template-columns:minmax(0,1fr) 352px}.ws .panel-left{top:var(--header);z-index:30;visibility:hidden;width:320px;max-width:calc(100vw - 48px);transition:transform .32s var(--ease-out), visibility 0s linear .32s;box-shadow:var(--shadow-pop);position:fixed;bottom:0;left:0;transform:translate(-102%)}.ws.drawer-open .panel-left{visibility:visible;transition:transform .32s var(--ease-out), visibility 0s;transform:none}.ws.drawer-open .viewport:after{content:"";z-index:20;background:var(--scrim);animation:fade-in .2s var(--ease);position:absolute;inset:0}.drawer-toggle{display:inline-grid}.vp-crumb{max-width:calc(100% - 410px);left:118px}.drawer-btn{z-index:7;background:var(--glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border-color:var(--glass-border);height:36px;box-shadow:var(--shadow);position:absolute;top:12px;left:12px}.learn{grid-template-columns:minmax(0,1fr) minmax(340px,44%)}.lesson-nav{display:none}.lesson-picker{display:block!important}.practice{grid-template-columns:minmax(0,1fr) 380px}.hero{gap:28px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1241px){.drawer-btn{display:none!important}}@media (max-width:1100px){.cases{grid-template-columns:repeat(2,minmax(0,1fr))}.flow{grid-template-columns:repeat(2,1fr)}.flow-step:nth-child(3){border-left:0}.flow-step:nth-child(n+3){border-top:1px solid var(--border)}}@media (max-width:900px){.app{height:auto;min-height:100dvh}.page{overflow:visible}.topbar{gap:12px;padding:0 6px 0 12px;position:sticky;top:0}.brand small{display:none}.nav{padding:0 10px;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 14px calc(100% - 22px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 14px calc(100% - 22px),#0000 100%)}.ws{flex-direction:column;height:auto;display:flex}.ws .viewport{height:62vh;order:1;height:62svh;min-height:340px;max-height:620px}.ws .panel-left{visibility:visible;width:auto;max-width:none;box-shadow:none;border-right:0;border-bottom:1px solid var(--border);order:2;padding:4px 16px 16px;transition:none;position:static;transform:none}.ws .panel-right{border-left:0;order:3}.ws.drawer-open .viewport:after{display:none}.drawer-btn{display:none!important}.vp-crumb{max-width:calc(100% - 20px);height:34px;top:auto;bottom:10px;left:10px}.vp-legend,.vp-hint{display:none}.vp-bar{top:10px;left:10px;right:10px}.step-caption{bottom:54px}.ex-head{position:static}.ex-body{padding-bottom:40px}.home{padding:22px 16px 44px}.hero{grid-template-columns:1fr;gap:24px;min-height:0}.hero-viewport{height:320px;height:min(340px,46svh)}.hero h1{margin-top:14px}.hero-facts{margin-top:26px}.home-section{margin-top:40px}.learn{flex-direction:column;height:auto;display:flex}.figure{top:var(--header);height:44vh;z-index:5;border-left:0;border-bottom:1px solid var(--border);order:-1;height:44svh;min-height:280px;position:sticky}.article{padding:20px 16px 80px;overflow:visible}.article h1{font-size:var(--fs-2xl)}.practice{flex-direction:column;height:auto;display:flex}.practice .viewport{height:52vh;height:52svh;min-height:320px}.q-panel{border-left:0}}@media (max-width:560px){:root{--header:96px}.topbar{flex-wrap:wrap;align-content:stretch;gap:0 8px;padding:0 6px 0 14px}.brand{flex:1;height:52px}.top-actions{height:52px}.nav{border-top:1px solid var(--border);flex:1 0 100%;order:3;height:44px;margin:0 -6px 0 -14px;padding:0 8px;-webkit-mask-image:linear-gradient(90deg,#000 0 calc(100% - 28px),#0000 100%);mask-image:linear-gradient(90deg,#000 0 calc(100% - 28px),#0000 100%)}.nav a{padding:0 10px;font-size:13.5px}.lesson-pager{flex-direction:column}.lesson-pager .btn{justify-content:space-between;width:100%;max-width:none}.lesson-pager>span:empty{display:none}.formula{white-space:normal}.vp-bar{gap:4px}.vp-group .icon-btn{width:32px;height:32px}.vp-crumb .title-word{display:none}.flow,.cards{grid-template-columns:1fr}.flow-step{border-left:0;border-top:1px solid var(--border)}.flow-step:first-child{border-top:0}.cases{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.case{padding:12px 12px 14px}.case-label{font-size:19px}.hero-lede{font-size:15.5px}.hero-actions .btn{flex:auto}.q-stats{grid-template-columns:repeat(4,1fr)}.q-stat{padding:7px 8px 8px}.choice-grid{grid-template-columns:1fr 1fr}.toggles{gap:0 8px}.topic-bar{grid-template-columns:100px 1fr 34px}}@media (pointer:coarse) and (max-width:560px){.vp-group .icon-btn{width:38px;height:38px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
