@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa1e84d8b4098af5-s.1_k7aq_c5drf2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a180f7dc2e9f5b7d-s.p.1ewykk74tw0il.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Black Fallback;src:local(Arial);ascent-override:70.78%;descent-override:16.93%;line-gap-override:0.0%;size-adjust:124.05%}._9m6gMG_className{font-family:Archivo Black,Archivo Black Fallback;font-style:normal;font-weight:400}._9m6gMG_variable{--font-archivo:"Archivo Black", "Archivo Black Fallback"}
@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/cef8ac2c062f1b0a-s.35p9_4tnsm_o4.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/c6e22b45cfe1c763-s.1q0qwmqzyniyk.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/158ff596bf2cbebe-s.02gir8avbbwr_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/52e514cb9d030258-s.3hqxvms4e79hg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/d66ba39e135c9aa7-s.1xbprfp_s2_ea.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f44e0976e40b7eea-s.1e3bxj0ebt1gg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4a0b7dd978568ff2-s.p.3fofz6dws3mg0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight Fallback;src:local(Arial);ascent-override:100.51%;descent-override:25.03%;line-gap-override:0.0%;size-adjust:96.39%}.bxlwaG_className{font-family:Inter Tight,Inter Tight Fallback;font-style:normal}.bxlwaG_variable{--font-inter-tight:"Inter Tight", "Inter Tight Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/258bd0ab5fdd762a-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/99a2019bdfa8519b-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/44e0cb21b0d052b7-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/f9cd5a77d065db98-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/954d21e04331b2ae-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/53897e768d329f66-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.w3uxYa_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.w3uxYa_variable{--font-jetbrains:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--paper:#f2f0eb;--card:#fff;--ink:#111;--ink-2:#4a4a4a;--ink-3:#8a8a8a;--line:#111;--accent:#ff4d00;--accent-ink:#fff;--ok:#1ba672;--warn:#e0a100;--stage:#141414;--ch1:#f5c400;--ch2:#33a0ff;--font-display:var(--font-archivo), "Archivo Black", sans-serif;--font-body:var(--font-inter-tight), "Inter Tight", sans-serif;--font-mono:var(--font-jetbrains), "JetBrains Mono", monospace;--bw:2px;--shadow:6px 6px 0 var(--ink);--shadow-sm:3px 3px 0 var(--ink);--gap:14px;--pad:14px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--paper);color:var(--ink);font:400 14px/1.45 var(--font-body);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--accent-ink)}.card{background:var(--card);border:var(--bw) solid var(--line);box-shadow:var(--shadow)}.label{font:600 11px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400;line-height:1.02}.mono{font-family:var(--font-mono)}.btn{border:var(--bw) solid var(--line);background:var(--card);cursor:pointer;height:34px;box-shadow:var(--shadow-sm);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;transition:transform 80ms,box-shadow 80ms,background .12s;display:inline-flex}.btn:hover{background:var(--paper)}.btn:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:#ff6a29}.btn.dark{background:var(--ink);color:#fff}.btn.sm{height:28px;box-shadow:2px 2px 0 var(--ink);padding:0 9px;font-size:12px}.btn.on{background:var(--ink);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.seg{border:var(--bw) solid var(--line);display:inline-flex}.seg button{background:var(--card);cursor:pointer;border:0;padding:6px 12px;font-size:12.5px;font-weight:600}.seg button+button{border-left:var(--bw) solid var(--line)}.seg button.on{background:var(--ink);color:#fff}.input{border:var(--bw) solid var(--line);background:var(--card);width:100%;height:40px;padding:0 12px}.input:focus{box-shadow:var(--shadow-sm);outline:none}.pill{border:1.5px solid var(--line);font:600 11px var(--font-mono);padding:2px 8px;display:inline-block}.pill.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.start{grid-template-columns:1.25fr 1fr;min-height:100vh;display:grid}.start-hero{background:var(--ink);color:#fff;flex-direction:column;gap:28px;padding:56px 56px 40px;display:flex;position:relative;overflow:hidden}.start-hero .big{font-size:clamp(54px,7.6vw,118px)}.start-hero .big em{color:var(--accent);font-style:normal}.start-hero .lede{color:#d6d6d6;max-width:620px;font-size:17px}.start-hero .meta{color:#bdbdbd;flex-wrap:wrap;gap:28px;margin-top:auto;font-size:13px;display:flex}.start-hero .meta b{color:#fff;font-size:15px;display:block}.start-hero .wave{opacity:.5;pointer-events:none;width:58%;position:absolute;bottom:120px;right:-30px}.start-hero>:not(.wave){z-index:1;position:relative}.start-form{flex-direction:column;gap:18px;padding:56px 48px 40px;display:flex}.start-form .feature{border-top:1.5px solid var(--line);grid-template-columns:34px 1fr;align-items:start;gap:10px;padding:10px 0;display:grid}.start-form .feature span{font:600 12px var(--font-mono);background:var(--ink);color:#fff;place-items:center;height:26px;display:grid}.credit-block{border:var(--bw) solid var(--line);background:var(--card);box-shadow:var(--shadow);margin-top:auto;padding:14px}.shell{gap:var(--gap);height:100vh;padding:var(--gap);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.topbar{align-items:center;gap:16px;padding:10px 14px;display:flex}.topbar .mark{background:var(--accent);color:#fff;width:46px;height:46px;font:400 26px var(--font-display);border:var(--bw) solid var(--line);place-items:center;display:grid}.topbar .ttl{font-size:22px}.topbar .ttl-short{font-size:20px;display:none}.tb-title{min-width:0}.topbar .credit{text-align:right;color:var(--ink-2);margin-left:auto;font-size:12px}.topbar .credit b{color:var(--ink);font-size:14px;display:block}.main{--lw:290px;--rw:450px;grid-template-columns:var(--lw) 1fr var(--rw);gap:var(--gap);min-height:0;transition:grid-template-columns .22s;display:grid}.main[data-left=folded]{--lw:46px!important}.main[data-right=folded]{--rw:46px!important}.col{gap:var(--gap);flex-direction:column;min-height:0;display:flex;position:relative}.fold-btn{z-index:3;background:var(--paper);border:1.5px solid var(--line);width:26px;height:26px;font:700 16px var(--font-mono);cursor:pointer;color:var(--ink);place-items:center;display:grid;position:absolute;top:8px}.fold-btn.left{right:8px}.fold-btn.right{box-shadow:2px 2px 0 var(--ink);top:58px;left:-36px}.fold-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.side-rail{cursor:pointer;border:var(--bw) solid var(--line);flex-direction:column;flex:1;align-items:center;gap:12px;padding:10px 0;display:flex}.side-rail:hover{background:var(--paper)}.side-rail .arrow{background:var(--accent);color:#fff;width:26px;height:26px;font:700 16px var(--font-mono);place-items:center;display:grid}.side-rail .rail-name{writing-mode:vertical-rl;font:400 18px var(--font-display);letter-spacing:.04em}.side-rail .rail-sum{writing-mode:vertical-rl;font:600 12px var(--font-mono);color:var(--ink-2)}.panel{padding:var(--pad);min-height:0;overflow:auto}.panel h3{font:400 20px var(--font-display);margin:4px 0 10px}.steps{flex-direction:column;gap:4px;list-style:none;display:flex}.steps li{grid-template-columns:26px 1fr;align-items:start;gap:8px;padding:7px 6px;font-size:13px;display:grid}.steps li .n{border:1.5px solid var(--line);width:24px;height:24px;font:600 11px var(--font-mono);place-items:center;display:grid}.steps li button.n{background:var(--card);color:var(--ink);cursor:pointer;margin:0;padding:0;transition:box-shadow .12s,transform .12s}.steps li button.n:hover{box-shadow:2px 2px 0 var(--accent);transform:translate(-1px,-1px)}.steps li button.n:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.steps li.done{color:var(--ink-3)}.steps li.done .n{background:var(--ok);border-color:var(--ok);color:#fff}.steps li.cur{background:var(--paper);outline:var(--bw) solid var(--line);font-weight:600}.steps li.cur .n{background:var(--accent);border-color:var(--accent);color:#fff}.hint{border-left:5px solid var(--accent);background:var(--paper);margin-top:10px;padding:10px 12px;font-size:13px}.done-banner{background:var(--ok);color:#fff;border:var(--bw) solid var(--line);margin-top:10px;padding:12px;font-weight:600}.stage{background:var(--stage);border:var(--bw) solid var(--line);box-shadow:var(--shadow);min-height:0;position:relative;overflow:hidden;container-type:inline-size}.stage-bar{z-index:2;pointer-events:none;flex-wrap:wrap;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.stage-bar>*{pointer-events:auto}.stage-bar .seg button:not(.on){background:#fff}.hovertip{z-index:4;pointer-events:none;background:var(--ink);color:#fff;font:600 12px var(--font-body);white-space:nowrap;border:1.5px solid #fff;padding:5px 9px;position:absolute}.onair{z-index:2;background:var(--accent);color:#fff;font:400 16px var(--font-display);border:var(--bw) solid var(--ink);padding:6px 12px;animation:1.2s steps(2,end) infinite blink;position:absolute;top:58px;right:48px}@keyframes blink{50%{opacity:.55}}.stage-help{z-index:2;color:#cfcfcf;font:12px var(--font-mono);background:#0000008c;padding:6px 9px;position:absolute;bottom:12px;left:12px}.stage-foot{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;max-width:calc(100% - 24px);display:flex;position:absolute;bottom:12px;left:12px}.stage-foot>*{pointer-events:auto}.foot-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.icon-btn{background:var(--card);width:32px;height:32px;color:var(--ink);border:1.5px solid var(--line);cursor:pointer;place-items:center;transition:background .12s,color .12s;display:grid}.icon-btn:hover{background:var(--paper)}.icon-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chip{color:#e9e9e9;height:32px;font:600 11.5px var(--font-mono);letter-spacing:.03em;background:#141414c7;border:1.5px solid #3a3a3a;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.chip i{background:#5a5a5a;border-radius:50%;width:8px;height:8px}.chip.on i{background:#3ddc84;box-shadow:0 0 6px #3ddc84}.help-card{color:#e9e9e9;max-width:420px;font:12px/1.5 var(--font-mono);background:#141414e6;border:1.5px solid #3a3a3a;padding:10px 12px}.help-card .help-title{font:400 15px var(--font-display);color:#fff;margin-bottom:4px}.help-card ul{margin:0;padding:0;list-style:none}.help-card li{padding:2px 0}.help-card b{color:var(--accent);margin-right:4px;font-weight:700}.toast{background:var(--accent);color:#fff;border:var(--bw) solid var(--ink);z-index:3;max-width:min(360px,100% - 24px);padding:10px 16px;font-weight:600;animation:.18s toast-in;position:absolute;bottom:12px;right:12px}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.warn{background:var(--warn);max-width:min(380px,100%);color:var(--ink);border:var(--bw) solid var(--ink);padding:8px 10px;font-size:12.5px}.tabs{border-bottom:var(--bw) solid var(--line);display:flex}.tabs button{background:var(--card);cursor:pointer;letter-spacing:.03em;border:0;flex:1;padding:10px 6px;font-size:12.5px;font-weight:600}.tabs button+button{border-left:var(--bw) solid var(--line)}.tabs button.on{background:var(--ink);color:#fff}.screen-mount canvas{border:var(--bw) solid var(--line);width:100%;height:auto;display:block}.reads{grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0;display:grid}.reads div{border:1.5px solid var(--line);padding:6px 7px}.reads small{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;display:block}.reads b{font:600 14px var(--font-mono)}.reads .c1{border-top:5px solid var(--ch1)}.reads .c2{border-top:5px solid var(--ch2)}.ctl{grid-template-columns:74px 1fr;align-items:center;gap:8px 10px;margin-top:10px;display:grid}.ctl .row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ctl .val{font:600 12.5px var(--font-mono);min-width:74px}.knob-row{border-bottom:1.5px solid #e5e2da;grid-template-columns:110px 1fr 92px;align-items:center;gap:10px;padding:8px 0;display:grid}.knob-row input[type=range]{width:100%;accent-color:var(--accent)}.knob-row .val{font:600 13px var(--font-mono);text-align:right}.list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.list .item{border:1.5px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.sw{border:1.5px solid var(--ink);width:12px;height:12px;display:inline-block}.screen-wrap{position:relative}.screen-mount{cursor:zoom-in}.screen-wrap .enlarge{opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;position:absolute;bottom:8px;right:8px;transform:translateY(3px)}.screen-wrap:hover .enlarge,.screen-wrap:focus-within .enlarge{opacity:1;pointer-events:auto;transform:none}@media (hover:none){.screen-wrap .enlarge{display:none}}.hero-cta{border-color:#fff;align-self:flex-start;height:44px;font-size:15px;box-shadow:4px 4px #fff}.mob-only,.mnav{display:none}.zoom{z-index:50;background:#111111d1;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.zoom-box{flex-direction:column;width:auto;max-width:min(1280px,100%);max-height:100%;padding:14px;display:flex;overflow:hidden}.zoom-box canvas{width:min(calc(1280px - 28px), calc(100vw - 60px), calc((100dvh - 32px - 28px - 50px) * var(--ar,1.6)));border:var(--bw) solid var(--line);height:auto;margin:0 auto;display:block}@media (min-width:901px) and (min-height:560px){.panel>.screen-wrap:first-child{top:calc(-1 * var(--pad));z-index:3;background:var(--card);margin:calc(-1 * var(--pad)) calc(-1 * var(--pad)) 0;padding:var(--pad) var(--pad) 8px;position:sticky;box-shadow:0 1.5px #e5e2da}}.picker{width:340px;position:relative}.picker-btn{background:var(--card);border:var(--bw) solid var(--line);width:100%;height:40px;box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:0 10px;font-weight:600;transition:transform 80ms,box-shadow 80ms;display:flex}.picker-btn:hover{background:var(--paper)}.picker.open .picker-btn{background:var(--ink);color:#fff;box-shadow:none;transform:translate(3px,3px)}.picker-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13.5px;overflow:hidden}.picker-caret{font-size:14px;transition:transform .15s}.picker.open .picker-caret{transform:rotate(180deg)}.picker-list{z-index:30;background:var(--card);border:var(--bw) solid var(--line);width:max-content;min-width:100%;max-width:min(460px,92vw);box-shadow:var(--shadow);max-height:62vh;list-style:none;position:absolute;top:calc(100% + 10px);left:0;overflow:auto}.picker-list li{cursor:pointer;border-bottom:1.5px solid #e5e2da;grid-template-columns:52px 1fr 16px;align-items:center;gap:10px;padding:10px 12px;display:grid}.picker-list li:last-child{border-bottom:0}.picker-list li .pill{text-align:center}.picker-list li b{font-size:13.5px;display:block}.picker-list li small{color:var(--ink-2);font-size:11.5px}.picker-list li.hi{background:var(--paper)}.picker-list li.sel{box-shadow:inset 5px 0 0 var(--accent)}.picker-tick{color:var(--accent);font-weight:700}.cat{background:var(--paper);min-height:100vh}.cat-hero{background:var(--ink);color:#fff;padding:48px 56px 40px}.cat-hero h1{margin:20px 0 12px;font-size:clamp(48px,8vw,120px)}.cat-hero h1 em{color:var(--accent);font-style:normal}.cat-hero p{color:#cfcfcf;max-width:680px;font-size:17px}.cat-meta{color:#bdbdbd;flex-wrap:wrap;gap:32px;margin-top:28px;font-size:13px;display:flex}.cat-meta b{color:#fff;font-size:18px;display:block}.cat-course{border-bottom:var(--bw) solid var(--line);max-width:1400px;margin:0 auto;padding:40px 56px}.cat-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.cat-head h2{font-size:clamp(26px,3vw,40px)}.cat-head .label{margin-left:auto}.cat-sum{color:var(--ink-2);margin:8px 0 18px;font-size:15px}.cat-empty{border:2px dashed var(--ink-3);color:var(--ink-2);padding:16px;font-weight:600}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.cat-lab{grid-template-columns:64px 1fr;align-content:start;gap:6px 12px;padding:14px;display:grid}.cat-lab.planned{box-shadow:none;background:#f8f6f1;border-color:#bdb8ad}.cat-lab.planned .cat-no{color:#bdb8ad}.cat-no{color:var(--accent);font-size:44px;line-height:1}.cat-body h3{margin:6px 0 4px;font-size:15px;line-height:1.3}.cat-body small{color:var(--ink-2);font-size:12px}.cat-actions{grid-column:1/-1;gap:8px;margin-top:8px;display:flex}.cat-actions a,.hero-cta,.topbar a.mark{text-decoration:none}.topbar a.mark{color:#fff}.back-link{color:#fff;border-bottom:1.5px solid var(--accent);text-decoration:none}.cx{background:var(--paper)}.cx-hero{background:var(--ink);color:#fff;padding:40px 56px 36px}.cx-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.cx-hero h1{max-width:1100px;margin:26px 0 12px;font-size:clamp(40px,6vw,88px)}.cx-hero h1 em{color:var(--accent);font-style:normal}.cx-hero p{color:#cfcfcf;max-width:700px;font-size:17px}.cx-toc{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.cx-toc a{color:#fff;border:1.5px solid #fff;gap:8px;padding:6px 10px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.cx-toc a span{font-family:var(--font-mono);color:var(--accent)}.cx-toc a:hover{color:var(--ink);background:#fff}.cx-sec{border-bottom:var(--bw) solid var(--line);grid-template-columns:120px 1fr;gap:24px;max-width:1400px;margin:0 auto;padding:44px 56px;scroll-margin-top:10px;display:grid}.cx-num{font:400 64px/1 var(--font-display);color:var(--accent)}.cx-body h2{margin-bottom:18px;font-size:clamp(28px,3.2vw,42px)}.cx-p{max-width:820px;margin:12px 0;font-size:16px}.cx-cols{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.cx-fact{padding:16px}.cx-fact .display{color:var(--accent);margin-bottom:8px;font-size:34px}.cx-fact p{font-size:14.5px}.cx-eq{border:var(--bw) solid var(--line);background:var(--card);box-shadow:var(--shadow);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.cx-eq>div{flex-direction:column;gap:6px;padding:14px;display:flex}.cx-eq>div+div{border-left:var(--bw) solid var(--line)}.cx-eq b{font:600 16px var(--font-mono)}.cx-eq small{color:var(--ink-2)}.cx-formula{font:600 22px var(--font-mono);background:var(--card);border:var(--bw) solid var(--line);box-shadow:var(--shadow-sm);margin:6px 0 10px;padding:14px 16px;display:inline-block}.cx-note{border-left:6px solid var(--accent);background:var(--card);align-self:start;padding:16px;font-size:15px}.cx-split{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.cx-list{flex-direction:column;gap:6px;padding-left:18px;font-size:14.5px;display:flex}.cx-mod{margin-top:14px;padding:16px}.cx-mod-ctl{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:12px;display:flex}.cx-mod-ctl label{align-items:center;gap:10px;font-weight:600;display:flex}.cx-mod-ctl input[type=range]{width:180px;accent-color:var(--accent)}.cx-mod-plots{grid-template-columns:1fr 1fr;gap:14px;display:grid}.cx-mod-plots figure{flex-direction:column;gap:6px;display:flex}.cx-svg{border:var(--bw) solid var(--line);width:100%;height:auto;display:block}.cx-reads{margin-top:12px}.cx-flows{gap:12px;display:grid}.cx-flow{flex-direction:column;gap:8px;padding:14px;display:flex}.cx-chain{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cx-chain b{background:var(--ink);color:#fff;padding:6px 10px;font-size:13.5px}.cx-chain i{color:var(--accent);margin:0 4px;font-style:normal;font-weight:700}.cx-flow small{color:var(--ink-2);font-size:13px}.cx-cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.cx-card{padding:16px}.cx-card h3{margin-bottom:10px;font-size:22px}.cx-table{border-collapse:collapse;background:var(--card);border:var(--bw) solid var(--line);width:100%;box-shadow:var(--shadow)}.cx-table th,.cx-table td{text-align:left;border-bottom:1.5px solid #e2ded5;padding:10px 12px;font-size:14.5px}.cx-table th{background:var(--ink);color:#fff;letter-spacing:.1em;text-transform:uppercase;font-size:12px}.cx-table td:last-child{font-family:var(--font-mono);font-size:13.5px}.cx-quiz{flex-direction:column;gap:10px;max-width:900px;display:flex}.cx-quiz details{background:var(--card);border:var(--bw) solid var(--line)}.cx-quiz summary{cursor:pointer;gap:10px;padding:12px 14px;font-weight:600;list-style:none;display:flex}.cx-quiz summary span{font-family:var(--font-mono);color:var(--accent)}.cx-quiz details[open] summary{background:var(--ink);color:#fff}.cx-quiz p{padding:12px 14px;font-size:15px}.cx-foot{color:var(--ink-2);max-width:1400px;margin:0 auto;padding:28px 56px 40px;font-size:13px}@media (max-width:1360px){.main{--lw:260px;--rw:410px}.topbar .picker{width:270px}}@media (max-width:1100px){.main{--lw:240px;--rw:360px}.topbar .label{display:none}.topbar .ttl{font-size:18px}}@media (max-width:900px){:root{--gap:10px;--shadow:4px 4px 0 var(--ink)}.desk-only{display:none!important}.mob-only{display:initial}.mob-pickers{gap:8px;margin-bottom:12px;display:grid}.mob-pickers .picker{width:100%}.mob-pickers .picker-list{width:100%;max-width:none}.shell{grid-template-rows:auto 1fr auto;height:100dvh;padding:10px 10px 0}.topbar{gap:10px;padding:8px 10px}.topbar .mark{width:38px;height:38px;font-size:22px}.topbar .ttl{display:none}.topbar .ttl-short{display:block}.topbar .credit{font-size:10.5px}.topbar .credit b{font-size:12px}.main{grid-template-columns:1fr;min-height:0}.main>*{min-height:0;display:none}.main[data-tab=steps]>.col-steps,.main[data-tab=instruments]>.col-dock{display:flex}.main[data-tab=bench]>.stage{display:block}.stage{box-shadow:none}.stage-bar{gap:6px;top:8px;left:8px;right:8px}.stage-bar .views{width:100%;overflow-x:auto}.stage-bar .views button{flex:1;padding:7px 6px;font-size:12px}.stage-bar .btn.sm{height:26px;padding:0 7px;font-size:11px}.stage-help{font-size:10.5px;bottom:8px;left:8px;right:8px}.warn{max-width:none}.onair{top:90px}.tabs button{padding:10px 2px;font-size:11.5px}.reads{grid-template-columns:repeat(2,1fr)}.ctl{grid-template-columns:1fr;gap:4px}.knob-row{grid-template-columns:1fr 86px}.knob-row input[type=range]{grid-area:2/1/auto/-1}.mnav{border-top:var(--bw) solid var(--line);background:var(--card);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);margin:0 -10px;display:grid}.mnav>*{background:var(--card);height:54px;color:var(--ink);cursor:pointer;border:0;place-items:center;font-size:13px;font-weight:700;text-decoration:none;display:grid}.mnav>*+*{border-left:1.5px solid var(--line)}.mnav .on{background:var(--ink);color:#fff}.start{grid-template-columns:1fr}.start-hero{gap:18px;padding:32px 20px 28px}.start-hero .big{font-size:clamp(46px,15vw,80px)}.start-hero .lede{font-size:15px}.start-hero .wave{opacity:.35;width:90%;bottom:80px}.start-form{padding:28px 20px 32px}.cx-hero{padding:24px 18px}.cx-sec{grid-template-columns:1fr;gap:6px;padding:28px 18px}.cx-num{font-size:40px}.cx-cols,.cx-eq,.cx-split,.cx-mod-plots,.cx-cards{grid-template-columns:1fr}.cx-eq>div+div{border-left:0;border-top:var(--bw) solid var(--line)}.cx-mod-ctl input[type=range]{width:140px}.cx-formula{font-size:17px}.cx-foot{padding:20px 18px 32px}.cat-hero,.cat-course{padding:28px 18px}.cat-head .label{margin-left:0}}.btn.confirm{background:var(--ink);color:#fff;border-color:var(--ink)}@container (max-width:720px){.stage-bar{gap:6px}.stage-bar .seg button{padding:6px 7px;font-size:12px}.stage-bar .btn.sm{padding:0 7px;font-size:12px}.stage-bar>span{display:none}.stage-bar .seg.views{margin-right:auto}}.main[data-tab=bench]>.ml-desk{display:flex}.ml-desk{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.ml-files{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ml-files .label{margin-right:4px}.ml-file{border:1.5px solid var(--line);background:var(--card);height:30px;font:600 12px var(--font-mono);cursor:pointer;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.ml-file:hover{background:var(--paper)}.ml-file.on{background:var(--ink);color:#fff}.ml-file i{border:1.5px solid;width:12px;height:14px;display:inline-block;position:relative}.ml-file i.m:after{content:"m";font:700 8px var(--font-mono);text-align:center;position:absolute;inset:-2px 0 0}.ml-file i.slx{background:linear-gradient(currentColor,currentColor) 50%/6px 1.5px no-repeat}.ml-work{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.ml-win{min-height:0;box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.ml-win-bar{border-bottom:1.5px solid var(--line);height:30px;font:600 12.5px var(--font-body);background:#f7f7f7;align-items:center;gap:8px;padding:0 10px;display:flex}.ml-win-bar small{font:600 11px var(--font-mono);color:var(--ink-2);margin-left:auto}.ml-win-bar.sl{color:#fff;background:#0d3e6f;border-bottom-color:#0d3e6f}.ml-win-bar.dark{color:#fff;background:#0d3e6f;justify-content:space-between}.ml-win-ico{background:var(--accent);border:1.5px solid var(--ink);width:12px;height:12px}.ml-empty{color:var(--ink-2);box-shadow:var(--shadow-sm);background:repeating-linear-gradient(135deg,#fff 0 14px,#f6f6f6 14px 28px);padding:28px 22px;font-size:14px;line-height:1.5}.ml-empty b{color:var(--ink)}.ml-fig-wrap{background:#fff;flex:1;place-items:center;min-height:0;padding:6px;display:grid}.ml-fig{cursor:crosshair;touch-action:none;width:100%;height:auto;max-height:100%;display:block}.ml-model{flex-direction:column;gap:10px;display:flex}.sl-strip{background:#fafafa;border-bottom:1.5px solid #ddd;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.sl-strip label{align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.sl-stop{width:90px;height:30px;font-family:var(--font-mono)}.sl-status{font:600 11.5px var(--font-mono);color:#0d3e6f;margin-left:auto}.sl-wrap{background:#fff;padding:6px}.sl-canvas{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.sl-block{cursor:pointer}.sl-block:hover rect,.sl-block:hover path:first-child{stroke:var(--accent)}.sl-block:focus{outline:none}.sl-block:focus-visible rect{stroke:var(--accent);stroke-width:2.5px}.sl-scope-win .sl-scope{width:100%;height:auto;display:block}.sm-seg button{padding:2px 8px;font-size:11px}.ml-cmd{height:128px;min-height:96px;box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.ml-cmd-bar{border-bottom:1.5px solid var(--line);background:#f7f7f7;justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.ml-cmd-body{font:500 12.5px/1.5 var(--font-mono);white-space:pre;flex:1;padding:6px 10px;overflow:auto}.ml-cmd-body .in{color:#111}.ml-cmd-body .err{color:#c00000}.ml-cmd-body .caret{vertical-align:-2px;background:#111;width:7px;height:14px;animation:1s steps(2,end) infinite blink;display:inline-block}.ml-editor{flex-direction:column;display:flex;overflow:hidden}.ml-editor-body{padding:var(--pad);flex:1;overflow:auto}.ml-ed{flex-direction:column;gap:10px;display:flex}.ml-ed-head{align-items:center;gap:10px;display:flex}.ml-tab{background:var(--ink);color:#fff;padding:4px 10px;font-size:12px}.ml-ed-title{font:400 18px var(--font-display)}.ml-params .knob-row{grid-template-columns:128px 1fr 96px;padding:6px 0}.ml-params .knob-row small{color:var(--ink-2);font-size:11px;line-height:1.2;display:block}.ml-opts{flex-wrap:wrap}.ml-opts button{padding:4px 8px;font-size:11.5px}.ml-ed-btns{flex-wrap:wrap;gap:8px;display:flex}.ml-code{border:1.5px solid var(--line);font:500 12.5px/1.55 var(--font-mono);background:#fff;grid-template-columns:34px 1fr;display:grid;overflow-x:auto}.ml-code .ln{text-align:right;color:#9a9a9a;-webkit-user-select:none;user-select:none;background:#f4f4f4;border-right:1px solid #e0e0e0;padding-right:8px}.ml-code code{white-space:pre;font:inherit;padding-left:8px}.ml-code .kw{color:#0e00ff}.ml-code .cm{color:#028009}.ml-code .st{color:#a709f5}.ml-code .val{outline:1.5px solid var(--accent);color:#111;background:#fff1ea;padding:0 2px;font-weight:700}.ml-code .val.hot{background:var(--accent);color:#fff}.sl-dialog{border:var(--bw) solid var(--line);box-shadow:var(--shadow-sm);background:#fff}.sl-dialog-bar{color:#fff;background:#0d3e6f;padding:6px 10px;font-size:12.5px;font-weight:600}.sl-dialog-body{flex-direction:column;gap:8px;padding:10px;display:flex}.sl-dialog-type{font:700 13px var(--font-body);color:#0d3e6f}.sl-field{flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;display:flex}.sl-field .input{height:34px;font-size:13px}.sl-field .input.bad{background:#fff0f0;border-color:#c00000}.sl-field small{color:var(--ink-2);font-size:11.5px;font-weight:400}.sl-help{color:var(--ink-2);font-size:12.5px}.sl-dialog-btns{justify-content:flex-end;gap:8px;display:flex}.ml-rep{flex-direction:column;gap:10px;display:flex}.ml-rep-item{border:1.5px solid var(--line);background:#fff;padding:8px}.ml-rep-item img{border:1px solid #ddd;width:100%;height:auto;margin:6px 0;display:block}.ml-rep-item figcaption{color:var(--ink-2);font-size:11.5px}.ml-rep-head{align-items:center;gap:8px;font-size:12.5px;display:flex}.ml-rep-head span{font:600 11px var(--font-mono);color:var(--ink-2);margin-left:auto}.ml-toast{z-index:40;position:fixed;bottom:24px;right:24px}@media (max-width:900px){.ml-desk{overflow:auto}.ml-files{scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.ml-files .ml-file{flex:none}.ml-params .knob-row{grid-template-columns:1fr 86px}.ml-cmd{height:110px}.ml-toast{bottom:70px;left:12px;right:12px}}input[type=range]{appearance:none;cursor:pointer;--p:50%;background:0 0;min-width:60px;height:20px;margin:0}input[type=range]::-webkit-slider-runnable-track{border:1.5px solid var(--ink);background:linear-gradient(to right, var(--accent) var(--p), #e9e5dc var(--p));height:8px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ink);border:1.5px solid var(--ink);width:14px;height:20px;box-shadow:2px 2px 0 var(--accent);border-radius:0;margin-top:-7.5px;transition:background .12s}input[type=range]:hover::-webkit-slider-thumb{background:var(--accent);box-shadow:2px 2px 0 var(--ink)}input[type=range]:active::-webkit-slider-thumb{background:var(--accent);box-shadow:2px 2px 0 var(--ink)}input[type=range]::-moz-range-track{border:1.5px solid var(--ink);background:#e9e5dc;height:5px}input[type=range]::-moz-range-progress{background:var(--accent);height:5px}input[type=range]::-moz-range-thumb{background:var(--ink);border:1.5px solid var(--ink);width:12px;height:18px;box-shadow:2px 2px 0 var(--accent);border-radius:0}input[type=range]:hover::-moz-range-thumb{background:var(--accent);box-shadow:2px 2px 0 var(--ink)}input[type=range]:active::-moz-range-thumb{background:var(--accent);box-shadow:2px 2px 0 var(--ink)}input[type=range]:focus{outline:none}input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input[type=range]:disabled{opacity:.45;cursor:not-allowed}.backdrop-btn .swatch{border:1.5px solid var(--ink);width:16px;height:16px;display:block}
