@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/oswald-latin-500-normal-B-eyT0Dw.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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/oswald-latin-600-normal-plFmSr5g.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:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/oswald-latin-700-normal-vy6hmKSr.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:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/roboto-condensed-latin-400-normal-BICmKrXV.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:Roboto Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/roboto-condensed-latin-500-normal-3p2daRJW.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:Roboto Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/roboto-condensed-latin-600-normal-C6Ud4naT.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.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:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.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:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/oswald-cyrillic-500-normal-Dz4ZC46J.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/oswald-vietnamese-500-normal-hXcn5ojQ.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:Oswald;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/oswald-latin-ext-500-normal-QdEKgtiz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/oswald-cyrillic-600-normal-OIkAk3Qq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/oswald-vietnamese-600-normal-h0z1RevK.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:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/oswald-latin-ext-600-normal-5Cvn_Zbc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/oswald-cyrillic-700-normal-BO0IwMyy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/oswald-vietnamese-700-normal-_DkZZ6ID.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:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/oswald-latin-ext-700-normal-BKErdSR5.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/roboto-condensed-cyrillic-400-normal-_T2aQlWs.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/roboto-condensed-greek-400-normal-D5vBSIyg.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:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/roboto-condensed-vietnamese-400-normal-0o1laQ-g.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:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/roboto-condensed-latin-ext-400-normal-OHaX69iP.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/roboto-condensed-cyrillic-500-normal-s4PklZE0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/roboto-condensed-greek-500-normal-Hsn-wDIp.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:Roboto Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/roboto-condensed-vietnamese-500-normal-TFWhjk13.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:Roboto Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/roboto-condensed-latin-ext-500-normal-CcSTXKtO.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/roboto-condensed-cyrillic-600-normal-CWopvA8w.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/roboto-condensed-greek-600-normal-Dk1MlhZA.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:Roboto Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/roboto-condensed-vietnamese-600-normal-BfJVrF7j.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:Roboto Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/roboto-condensed-latin-ext-600-normal-DIUh7Wuv.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.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:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.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:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#f6f3e8;--card:#faf7ee;--card-border:#e7e2d4;--tile:#f9f6ec;--tile-border:#e9e4d8;--line:#ebe6da;--ink:#0e1932;--ink-2:#1a2440;--ink-soft:#2b3346;--muted:#5d6272;--faint:#8a8d96;--track:#e1dfd8;--terminal:#13203a;--yellow-hi:#ffdd84;--yellow:#fdd062;--yellow-lo:#f6c047;--yellow-ink:#2b2611;--navy-hi:#284a70;--navy:#1e3a5c;--navy-deep:#13203a;--green-hi:#2fb38f;--green:#1f9a78;--g-yellow:radial-gradient(circle at 40% 30%, var(--yellow-hi) 0%, var(--yellow) 55%, var(--yellow-lo) 100%);--g-yellow-flat:linear-gradient(180deg, #ffd977 0%, var(--yellow-lo) 100%);--g-navy:linear-gradient(180deg, var(--navy-hi), var(--navy));--g-green:linear-gradient(180deg, var(--green-hi), var(--green));--warm-line:#d9d2bf;--f-display:"Oswald", "Barlow Condensed", "Arial Narrow", sans-serif;--f-ui:"Roboto Condensed", "Barlow Condensed", "Arial Narrow", sans-serif;--f-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-card:18px;--radius-tile:12px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:radial-gradient(1200px 500px at 50% -10%, #fbfaf3 0%, #fbfaf300 70%), var(--bg);color:var(--ink);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3{font-weight:inherit;margin:0}[hidden]{display:none!important}.stage{position:fixed;inset:0;overflow:hidden}.app{width:var(--ui-w,100vw);height:var(--ui-h,100vh);transform:scale(var(--ui-scale,1));transform-origin:0 0;flex-direction:column;padding:0 21px 22px 20px;display:flex;position:absolute;top:0;left:0}.layout{flex:1;grid-template:"bench lesson"minmax(0,1fr)"timeline lesson"100px/minmax(0,1fr) 485px;gap:14px 16px;min-height:0;display:grid}.card--bench{grid-area:bench}.card--timeline{grid-area:timeline}.card--lesson{grid-area:lesson}.topbar{z-index:10;flex:none;justify-content:space-between;align-items:center;height:78px;padding:0 2px 4px 6px;display:flex;position:relative}.brand{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.brand__mark{filter:drop-shadow(0 3px 6px #0f244340);width:48px;height:48px}.brand__text{flex-direction:column;display:flex}.brand__name{font-family:var(--f-display);letter-spacing:1.4px;color:var(--ink);font-size:31px;font-weight:600;line-height:1}.brand__name b{color:var(--green);font-weight:600}.topbar__right{align-items:center;gap:12px;display:flex}.topbar__label{font-family:var(--f-display);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:500}.segmented.segmented--board{grid-template-columns:auto auto;height:44px;margin:0 6px 0 0}.segmented--board button{align-items:center;gap:8px;padding:0 18px;font-size:16.5px;display:flex}.segmented--board svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.segmented--board circle{fill:currentColor;stroke:none}.board__short{display:none}.icon-btn{background:#ece9df;border:1px solid #e0dccf;border-radius:11px;place-items:center;width:46px;height:46px;display:grid;box-shadow:inset 0 1px #ffffffb3,0 2px 6px #463c1e0f}.icon-btn svg{width:25px;height:25px;fill:var(--ink-2)}.topbar__left{align-items:center;min-width:0;display:flex}.topbar__rule{background:#ddd8c9;flex:none;width:1px;height:34px;margin:0 18px 0 22px}.credit{min-width:0;color:inherit;border-radius:12px;align-items:center;gap:11px;margin-left:-4px;padding:4px 10px 4px 4px;text-decoration:none;transition:background .15s;display:flex}.credit:hover{background:#fff9}.credit__tile{background:linear-gradient(#20406b,#0f2443);border-radius:10px;flex:none;place-items:center;width:38px;height:38px;transition:transform .18s cubic-bezier(.16,.84,.3,1),box-shadow .18s;display:grid;box-shadow:0 3px 7px -3px #0f244373}.credit__tile svg{fill:#fff;width:17px;height:17px}.credit:hover .credit__tile{transform:translateY(-1px);box-shadow:0 5px 10px -4px #0f244380}.credit__text{gap:3px;min-width:0;display:grid}.credit__label{font-family:var(--f-display);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:500;line-height:1}.credit__handle{color:var(--ink-2);white-space:nowrap;text-underline-offset:3px;font-size:16px;font-weight:600;line-height:1.15;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1.5px;transition:text-decoration-color .15s}.credit:hover .credit__handle{-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}.lang-picker{position:relative}.icon-btn.lang-btn{align-items:center;gap:6px;width:auto;padding:0 9px 0 11px;display:flex}.lang-btn svg{fill:none;stroke:var(--ink-2);stroke-linecap:round;stroke-linejoin:round}.lang-btn .lang-btn__globe{stroke-width:1.7px;width:21px;height:21px}.lang-btn .lang-btn__caret{stroke-width:2.2px;width:16px;height:16px;transition:transform .2s cubic-bezier(.16,.84,.3,1)}.lang-picker.is-open .lang-btn__caret{transform:rotate(180deg)}.lang-btn__chip{min-width:22px;font-family:var(--f-display);letter-spacing:1.2px;color:var(--ink-2);font-size:16px;font-weight:600}.lang-picker.is-open .lang-btn{background:#fffdf7;border-color:#cfc8b6}.langs{opacity:0;visibility:hidden;transform-origin:100% 0;background:#fcfaf3;border:1px solid #e3dfd2;border-radius:16px;padding:14px 12px 10px;transition:opacity .14s,transform .14s,visibility 0s .14s;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-6px)scale(.98);box-shadow:0 24px 56px -22px #3c32146b,0 4px 12px -6px #3c321429}.lang-picker.is-open .langs{opacity:1;visibility:visible;transition:opacity .2s,transform .28s cubic-bezier(.16,.84,.3,1),visibility;transform:none}.langs__title{font-family:var(--f-display);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #ebe6d8;margin:0 4px 8px;padding-bottom:9px;font-size:13px;font-weight:500}.langs__list{grid-auto-flow:column;grid-template-columns:repeat(var(--lang-cols,1), 268px);grid-template-rows:repeat(var(--lang-rows,1), auto);gap:3px 8px;display:grid}.lang{text-align:start;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;padding:7px 10px 7px 7px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.lang:hover{background:#ffffffb3}.lang:focus-visible{outline-offset:-2px}.lang[aria-checked=true]{background:#fffdf7;border-color:#d9d2bf;box-shadow:0 1px 2px #50421e14}.lang__chip{width:36px;height:36px;font-family:var(--f-display);letter-spacing:1px;color:var(--ink-soft);background:#fffdf7;border:1.5px solid #d9d3c3;border-radius:9px;flex:none;place-items:center;font-size:13px;font-weight:600;transition:background .2s,border-color .2s;display:grid;position:relative}.lang__code{transition:opacity .15s}.lang__tick{fill:none;stroke:#fff;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;opacity:0;width:19px;height:19px;margin:auto;transition:opacity .15s,transform .15s;position:absolute;inset:0;transform:scale(.5)}.lang[aria-checked=true] .lang__chip{background:var(--g-navy);border-color:var(--navy)}.lang[aria-checked=true] .lang__code{opacity:0}.lang[aria-checked=true] .lang__tick{opacity:1;transition:opacity .2s 50ms,transform .3s cubic-bezier(.3,1.6,.5,1) 50ms;transform:none}.lang__names{gap:2px;min-width:0;display:grid}.lang__native{font-family:var(--f-display);letter-spacing:.7px;text-transform:uppercase;color:var(--navy);font-size:16.5px;font-weight:600;line-height:1.15}.lang__name{color:var(--muted);font-size:14px;line-height:1.2}@media (prefers-reduced-motion:reduce){.langs,.lang-picker.is-open .langs,.lang__tick,.lang-btn__caret,.credit__tile{transition:none!important}}.card{background:linear-gradient(180deg, #fbf9f1 0%, var(--card) 100%);border:1px solid var(--card-border);border-radius:var(--radius-card);min-height:0;position:relative;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #50421e0d,0 6px 18px -6px #50421e1a}.card__title{font-family:var(--f-display);letter-spacing:.35px;color:var(--ink);font-size:24.5px;font-weight:600;line-height:1}.badge{width:38px;height:38px;font-family:var(--f-display);color:#2b2611;background:radial-gradient(circle at 40% 30%,#ffdd84 0%,#fdd062 55%,#f6c047 100%);border-radius:50%;flex:none;place-items:center;font-size:18px;font-weight:600;display:grid;box-shadow:inset 0 1px #ffffff80,0 1px 2px #966e0a2e}.tile{background:var(--tile);border:1px solid var(--tile-border);border-radius:var(--radius-tile);box-shadow:inset 0 1px #ffffffe6,0 1px 3px #50421e0d}.card--bench{overflow:hidden}.viewport{z-index:0;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.viewport canvas{display:block}.bench__head{z-index:2;pointer-events:none;align-items:center;gap:14px;height:72px;padding:0 16px 0 17px;display:flex;position:relative}.bench__head>*{pointer-events:auto}.badge--icon svg{fill:none;stroke:#2b2611;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.bench__icon--drive,.card--bench.is-drive .bench__icon--build{display:none}.card--bench.is-drive .bench__icon--drive{display:block}.bench__titles{flex-direction:column;gap:4px;display:flex}.bench__sub{color:var(--muted);font-size:15px;font-weight:500}.pill--status{height:32px;color:var(--ink-soft);background:#edeae1eb;border-radius:16px;align-items:center;gap:8px;padding:0 13px 0 11px;font-size:15px;font-weight:500;display:flex}.dot--live{background:radial-gradient(circle at 38% 35%,#5ad47c 0%,#2db55a 55%,#229a49 100%);border-radius:50%;width:12px;height:12px;transition:background .3s,box-shadow .3s;box-shadow:0 0 0 3px #2db55a1f}.pill--status[data-state=wait] .dot--live{background:radial-gradient(circle at 38% 35%,#ffd27a 0%,#f2a92b 60%,#d98b0f 100%);animation:1.2s ease-in-out infinite pulse;box-shadow:0 0 0 3px #f2a92b1f}.pill--status[data-state=bad] .dot--live{background:radial-gradient(circle at 38% 35%,#ff8a8a 0%,#e5484d 60%,#c23339 100%);box-shadow:0 0 0 3px #e5484d1f}@keyframes pulse{50%{opacity:.45}}.view-tools{z-index:2;flex-direction:column;gap:12px;display:flex;position:absolute;top:15px;right:16px}.tool-group{flex-direction:column;gap:4px;display:flex}.tool-group[hidden]{display:none}.tool{background:#faf8f0e6;border:1px solid #e0dccf;border-radius:8px;place-items:center;width:43px;height:42px;display:grid;box-shadow:0 1px 2px #50421e0f}.tool svg{fill:none;width:23px;height:23px;stroke:var(--ink-2);stroke-width:2.1px;stroke-linecap:round;stroke-linejoin:round}.tool--play{background:var(--g-yellow-flat);border-color:#e3b23c;box-shadow:inset 0 1px #ffffff8c,0 2px 6px #aa780a40}.tool--play svg{fill:var(--yellow-ink);stroke:none}.tool.tool--play:hover{background:var(--g-yellow-flat);filter:brightness(1.06)}.tool__pause,.tool-group.is-playing .tool__resume{display:none}.tool-group.is-playing .tool__pause{display:block}.tool--text{font-family:var(--f-display);letter-spacing:.2px;color:var(--ink-2);font-size:15px;font-weight:600}.hud{z-index:2;gap:8px;display:flex;position:absolute;top:78px;left:18px}.hud__item{background:#faf8f0e6;border:1px solid #e3dfd2;border-radius:11px;flex-direction:column;gap:2px;min-width:92px;padding:7px 12px 8px;display:flex;box-shadow:0 1px 2px #50421e0d}.hud__k{font-family:var(--f-display);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:500}.hud__v{color:var(--ink-soft);white-space:nowrap;font-size:14px}.hud__v b{font-family:var(--f-display);color:var(--ink);letter-spacing:.3px;font-size:21px;font-weight:600;transition:color .2s}.hud__item{transition:border-color .2s,background .2s}.hud__item.is-near{background:#fff3f0f0;border-color:#e9b3ad}.hud__item.is-near .hud__v b{color:#c8261c}.serial{background:linear-gradient(#16243f 0%,#111b31 100%);border-radius:11px;flex-direction:column;flex:150px;min-height:132px;display:flex;overflow:hidden;box-shadow:0 6px 16px -8px #0a142866}.serial__clear{border:1px solid var(--tile-border);background:var(--tile);height:22px;font-family:var(--f-ui);letter-spacing:0;text-transform:none;color:var(--ink-soft);border-radius:6px;order:2;padding:0 9px;font-size:13px;font-weight:500}.serial__clear:hover{background:#fffdf7}.terminal{flex:1;min-height:0;position:relative}.terminal__body{scrollbar-width:none;font-family:var(--f-mono);color:#eef3f8;outline:none;margin:0;padding:6px 22px 7px 12px;font-size:12px;font-weight:500;line-height:19px;position:absolute;inset:0;overflow:hidden auto}.terminal__body::-webkit-scrollbar{display:none}.terminal__line{white-space:pre;text-overflow:ellipsis;overflow:hidden}.terminal__body:empty:before{content:"Waiting for output…";color:#6b778c}.terminal .t{color:#8e9ab0}.terminal .k{color:#f1f4f8}.terminal .k--hl{color:#6fd38a}.terminal .v{color:#f3d95f}.terminal .s{color:#4fc8f2}.terminal .w{color:#ffad5c}.terminal .l{color:#8e9ab0;font-style:italic}.terminal__scroll{background:#ffffff0f;border-radius:3px;width:5px;position:absolute;top:8px;bottom:8px;right:7px}.terminal__scroll span{cursor:grab;background:#4a5568;border-radius:3px;height:60%;position:absolute;top:0;left:0;right:0}.terminal__scroll.is-idle span{opacity:.35;pointer-events:none}.tool-group,.tool--chase,.hud__item,.minimap,.flow,.pill--status{animation:.32s cubic-bezier(.16,.84,.3,1) both ui-in}.hud__item:nth-child(2){animation-delay:40ms}.hud__item:nth-child(3){animation-delay:80ms}.hud__item:nth-child(4){animation-delay:.12s}.settings[open] .settings__panel{animation:.24s cubic-bezier(.16,.84,.3,1) ui-in}.settings[open]::backdrop{animation:.2s ease-out backdrop-in}@keyframes backdrop-in{0%{opacity:0}}@keyframes ui-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.tool-group,.tool--chase,.hud__item,.minimap,.bench-veil,.flow,.pill--status,.settings[open] .settings__panel,.settings[open]::backdrop,.partview.is-entering{animation:none!important}}.card--timeline{align-items:center;gap:4px;padding:0 9px;display:flex}.strip__view{--fade:40px;scrollbar-width:none;flex:1;align-self:stretch;align-items:center;min-width:0;display:flex;overflow:auto hidden}.strip__view::-webkit-scrollbar{display:none}.strip__view.fade-start{-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade));mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade))}.strip__view.fade-end{-webkit-mask-image:linear-gradient(90deg, #000 calc(100% - var(--fade)), transparent);mask-image:linear-gradient(90deg, #000 calc(100% - var(--fade)), transparent)}.strip__view.fade-start.fade-end{-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade), #000 calc(100% - var(--fade)), transparent);mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade), #000 calc(100% - var(--fade)), transparent)}.strip{gap:8px;margin:0;padding:0 4px;list-style:none;display:flex}.strip__item{flex:none}.stepcard{background:var(--tile);border:1px solid var(--tile-border);text-align:start;border-radius:15px;align-items:center;gap:11px;width:194px;height:78px;padding:6px 12px 6px 6px;transition:background .15s,border-color .15s,box-shadow .2s,transform .12s;display:flex;box-shadow:inset 0 1px #ffffffe6,0 1px 3px #50421e0d}.stepcard:hover{border-color:var(--warm-line);background:#fffdf7;transform:translateY(-1px)}.stepcard__pic{background:#ece7da;border-radius:10px;flex:none;width:88px;height:64px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #3c321412}.stepcard__pic img{object-fit:cover;width:100%;height:100%;transition:filter .2s,opacity .2s;display:block}.strip__item:not(.is-current):not(.is-passed):not(.is-done) .stepcard__pic img{filter:saturate(.55);opacity:.85}.stepcard:hover .stepcard__pic img{filter:none;opacity:1}.stepcard__tick{background:var(--g-green);opacity:0;border-radius:50%;place-items:center;width:20px;height:20px;transition:opacity .2s,transform .2s;display:grid;position:absolute;top:4px;right:4px;transform:scale(.6);box-shadow:0 1px 3px #0a3c2859}.stepcard__tick svg{fill:none;stroke:#fff;stroke-width:3.4px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.is-done .stepcard__tick{opacity:1;transform:none}.stepcard__text{flex-direction:column;flex:1;align-items:flex-start;gap:3px;min-width:0;display:flex}.stepcard__num{height:19px;font-family:var(--f-display);letter-spacing:.6px;color:var(--muted);background:#ebe6d9;border-radius:10px;place-items:center;margin-left:-1px;padding:0 7px;font-size:12.5px;font-weight:600;display:grid}.stepcard__name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-family:var(--f-display);letter-spacing:.2px;color:var(--ink-soft);font-size:17.5px;font-weight:500;overflow:hidden}.stepcard__bar{visibility:hidden;background:#e5e0d2;border-radius:2px;width:100%;height:3px;overflow:hidden}.stepcard__bar i{height:100%;width:calc(var(--p,0) * 100%);border-radius:inherit;background:var(--green-hi);transition:width .3s;display:block}.has-progress .stepcard__bar{visibility:visible}.is-passed .stepcard__num,.is-done .stepcard__num{background:var(--g-navy);color:#fff}.is-current .stepcard{border-color:var(--yellow-lo);background:#fffcf4;box-shadow:0 0 0 3px #fdd06252,0 6px 14px -8px #966e0a73}.is-current .stepcard__num{background:var(--g-yellow);color:var(--yellow-ink)}.is-current .stepcard__name{color:var(--ink);font-weight:600}.strip__nav{background:var(--g-navy);color:#fff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;transition:opacity .15s,transform 80ms,filter .15s;display:grid;box-shadow:0 2px 6px #14233c40}.strip__nav:hover:not(:disabled){filter:brightness(1.15)}.strip__nav:active:not(:disabled){transform:scale(.94)}.strip__nav:disabled{opacity:.22;cursor:default}.strip__nav svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.card--lesson{flex-direction:column;display:flex;overflow:hidden}.lesson__head{flex:none;align-items:center;gap:14px;padding:20px 22px 14px;display:flex}.badge--step{width:50px;height:50px;font-size:22px}.lesson__kicker{font-family:var(--f-display);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:12.5px;font-weight:500;display:block}.lesson__title{font-family:var(--f-display);letter-spacing:.3px;text-transform:uppercase;color:var(--ink);margin-top:4px;font-size:29px;font-weight:600;line-height:1.05}.lesson__body{scrollbar-width:thin;scrollbar-color:#d6d1c3 transparent;flex:1;min-height:0;padding:2px 22px 18px;overflow-y:auto}.lesson__intro{color:var(--ink-soft);margin:0;font-size:17px;line-height:1.45}.lesson__h{font-family:var(--f-display);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin:20px 0 10px;font-size:13px;font-weight:500;display:flex}.lesson__h:after{content:"";background:var(--line);flex:1;height:1px}.parts{gap:6px;margin:0;padding:0;list-style:none;display:grid}.part{color:var(--ink-soft);align-items:center;gap:12px;padding:7px 12px 7px 8px;font-size:15.5px;line-height:1.3;display:flex}.part__qty{background:var(--g-navy);color:#fff;min-width:38px;height:26px;font-family:var(--f-display);border-radius:7px;flex:none;place-items:center;font-size:14.5px;font-weight:500;display:grid}.steps{margin:0;padding:0;list-style:none;display:grid}.steps li{border-bottom:1px solid var(--line);color:var(--ink-soft);grid-template-columns:28px 1fr;gap:13px;padding:11px 0;font-size:16px;line-height:1.42;transition:color .15s;display:grid}.steps li:first-child{padding-top:4px}.steps li:last-child{border-bottom:0}.steps li:hover{color:var(--ink)}.steps li:hover .checkbox--num{border-color:var(--navy)}.pins{gap:5px;display:grid}.pin{color:var(--ink-soft);align-items:center;gap:12px;padding:8px 10px 8px 13px;font-size:15.5px;display:flex}.pin>span:first-child{flex:1;min-width:0}.pin__val{background:var(--g-navy);color:#fff;font-family:var(--f-mono);border-radius:7px;flex:none;padding:3px 9px;font-size:13px;font-weight:500}.code{background:linear-gradient(180deg, #16243f 0%, var(--terminal) 100%);border-radius:12px;position:relative;overflow:hidden}.code__head{height:36px;font-family:var(--f-mono);color:#aab6c8;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;padding:0 10px 0 14px;font-size:12.5px;display:flex}.code__tabs{background:#00000038;gap:2px;padding:6px 6px 0;display:flex}.code__tab{height:30px;font-family:var(--f-ui);color:#93a1b6;white-space:nowrap;border-radius:8px 8px 0 0;padding:0 13px;font-size:14px;font-weight:500}.code__tab:hover{color:#dfe6ef}.code__tab.is-active{color:var(--yellow);background:#16243f}.code__copy{height:24px;font-family:var(--f-ui);color:#cfd8e4;background:#ffffff12;border-radius:6px;padding:0 10px;font-size:13.5px}.code__copy:hover{background:#ffffff24}.code pre{font-family:var(--f-mono);color:#e6edf5;scrollbar-width:thin;scrollbar-color:#3b4a63 transparent;margin:0;padding:12px 12px 14px;font-size:12px;line-height:1.6;position:relative;overflow-x:auto}.code pre>code{position:relative}.code__mark{min-width:100%;box-shadow:3px 0 0 var(--yellow) inset;pointer-events:none;background:#fdd06229;animation:.25s ease-out backdrop-in;position:absolute;left:0}.c-com{color:#7f8ba0;font-style:italic}.c-kw{color:#7cc0ff}.c-type{color:#c79bff}.c-str{color:#f3d95f}.c-num{color:#ffad5c}.c-pre{color:#6fd38a}.tools{margin:0;padding:0;list-style:none}.tools li{border-bottom:1px solid var(--line);grid-template-columns:148px 1fr;gap:12px;padding:7px 0;font-size:15.5px;line-height:1.4;display:grid}.tools li:last-child{border-bottom:0}.tools b{color:var(--ink);font-weight:600}.tools span{color:var(--ink-2)}.fixes{margin:0}.fix{border-bottom:1px solid var(--line);padding:10px 0 11px}.fix:last-child{border-bottom:0}.fix dt{color:var(--ink);font-size:15.5px;font-weight:600;line-height:1.35}.fix dd{color:var(--ink-2);margin:3px 0 0;font-size:15.5px;line-height:1.45}.note{border-top:1.5px dashed var(--warm-line);grid-template-columns:auto 1fr;align-items:start;gap:12px;margin-top:20px;padding-top:15px;display:grid}.note__tag{background:var(--g-navy);color:#fff;height:24px;font-family:var(--f-display);letter-spacing:1.2px;text-transform:uppercase;border-radius:7px;place-items:center;padding:0 9px;font-size:12.5px;font-weight:500;display:grid}.note__text{color:var(--ink-soft);margin:0;font-size:15.5px;line-height:1.45}.lesson__foot{border-top:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px 18px;display:flex}.lesson__foot .btn-primary{height:42px;padding:0 20px;font-size:17px}.lesson__foot .btn-ghost{height:42px}.motor{align-items:flex-start;display:flex}.dpad{flex:none;width:150px;height:140px;position:relative}.dpad__btn,.dpad__stop{touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(#284a70 0%,#1e3a5c 100%);place-items:center;transition:filter .12s,transform 80ms,box-shadow .12s,opacity .2s;display:grid;position:absolute;box-shadow:inset 0 1px #ffffff1f,inset 0 -2px #0000001f,0 3px 6px #14233c38}.dpad__btn{border-radius:8px}.dpad__btn--up{width:46px;height:42px;top:0;left:52px}.dpad__btn--down{width:46px;height:42px;top:98px;left:52px}.dpad__btn--left{width:45px;height:44px;top:48px;left:0}.dpad__btn--right{width:45px;height:44px;top:48px;left:105px}.dpad__stop{background:radial-gradient(circle at 50% 35%,#233a58 0%,#18293f 70%,#142235 100%);border-radius:50%;width:50px;height:50px;top:45px;left:50px;box-shadow:0 0 0 1px #0a142366,0 3px 7px #14233c47}.dpad__btn:hover,.dpad__stop:hover{filter:brightness(1.12)}.dpad__btn.is-pressed,.dpad__btn:active,.dpad__stop:active{background:linear-gradient(#3a6896 0%,#2d5682 100%);transform:translateY(1px);box-shadow:inset 0 -1px #00000026,0 0 0 3px #fdd0628c,0 1px 3px #14233c59}.dpad.is-disabled .dpad__btn{opacity:.45;cursor:not-allowed}.dpad.is-denied{animation:.3s deny}@keyframes deny{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.tri{border-style:solid;width:0;height:0}.tri--up{border-width:0 8px 11px;border-color:#0000 #0000 #fff;margin-top:-2px}.tri--down{border-width:11px 8px 0;border-color:#fff #0000 #0000;margin-top:2px}.tri--left{border-width:8px 11px 8px 0;border-color:#0000 #fff #0000 #0000;margin-left:-2px}.tri--right{border-width:8px 0 8px 11px;border-color:#0000 #0000 #0000 #fff;margin-left:2px}.sq{background:#fff;border-radius:2px;width:13px;height:13px}.motor__side{flex-direction:column;flex:1;margin-left:22px;padding-top:0;display:flex}.row-between{justify-content:space-between;align-items:baseline;line-height:1;display:flex}.label{color:var(--ink-soft);font-size:15px;font-weight:500}.label--mode{margin-top:20px}.big-num{font-family:var(--f-display);color:var(--ink);letter-spacing:.3px;font-size:20px;font-weight:600}.big-num small{font-family:var(--f-ui);font-size:15px;font-weight:500}.slider{background:var(--track);cursor:pointer;touch-action:none;border-radius:5px;height:8px;margin:13px 5px 0 0;position:relative}.slider:before{content:"";position:absolute;inset:-12px -6px}.slider__fill{width:var(--v);border-radius:inherit;background:linear-gradient(90deg, var(--navy), var(--navy-hi));position:absolute;inset:0 auto 0 0}.slider__thumb{top:50%;left:var(--v);background:radial-gradient(circle at 50% 35%,#fff 0%,#f4f4f2 70%,#e8e8e4 100%);border-radius:50%;width:21px;height:21px;margin:-10.5px 0 0 -10.5px;transition:transform .12s;position:absolute;box-shadow:0 0 0 1px #0000000f,0 2px 5px #141e3238}.slider:hover .slider__thumb,.slider.is-dragging .slider__thumb{transform:scale(1.08)}.slider.is-disabled{cursor:not-allowed}.slider.is-disabled .slider__fill{background:linear-gradient(90deg,#aab5c3,#b8c2ce)}.slider.is-disabled .slider__thumb{transform:none}.slider:focus-visible{outline-offset:8px}.segmented{background:#ebe8df;border-radius:8px;grid-template-columns:repeat(3,1fr);height:34px;margin-top:7px;display:grid;box-shadow:inset 0 0 0 1px #00000005}.segmented button{color:var(--ink-soft);border-radius:8px;font-size:15px;font-weight:500;transition:background .15s,color .15s}.segmented button:not(.is-active):hover{background:#ffffff8c}.segmented .is-active{background:var(--g-navy);color:#fff;box-shadow:0 2px 5px #1e3a5c4d}.act-grid{grid-template-columns:1fr 1fr;grid-auto-rows:44px;gap:7px;display:grid}.act{align-items:center;padding:0 10px 0 12px;display:flex}.act__dot{border-radius:50%;flex:none;width:11px;height:11px;margin-right:9px}.act__dot--led{background:radial-gradient(circle at 38% 35%,#ff8b7f 0%,#e3261d 60%,#a8140f 100%)}.act__dot--buzzer{background:radial-gradient(circle at 38% 35%,#4a5d7c 0%,#1e2c48 70%)}.act__label{color:var(--ink-2);font-size:15px;font-weight:500}.act--servo{grid-column:1/-1}.slider--servo{flex:1;margin:0 14px 0 16px}.big-num--servo{font-family:var(--f-ui);text-align:right;font-variant-numeric:tabular-nums;flex:none;width:40px;font-size:18px;font-weight:500}.toggle{background:#d8d6cf;border-radius:13px;flex:none;width:44px;height:26px;margin-left:auto;transition:background .2s;position:relative;box-shadow:inset 0 1px 2px #00000014}.toggle__knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:left .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle.is-on{background:var(--g-green)}.toggle.is-on .toggle__knob{left:21px}.drive__keys{color:var(--muted);margin:9px 0 0;font-size:13px;line-height:1.9}.lesson__body.is-drive{flex-direction:column;display:flex}.lesson__body.is-drive .lesson__intro{font-size:15.5px;line-height:1.4}.lesson__body.is-drive .drive:not([hidden]){flex-direction:column;flex:1;min-height:0;display:flex}.drive .lesson__h{margin:14px 0 8px}.drive .lesson__h--serial:after{order:1}kbd{min-width:22px;font-family:var(--f-mono);text-align:center;color:var(--ink-2);background:#fffdf8;border:1px solid #ddd8ca;border-bottom-width:2px;border-radius:5px;margin:0 1px;padding:0 6px;font-size:12px;line-height:20px;display:inline-block}.btn-ghost{height:36px;color:var(--ink-soft);background:#f9f7ef;border:1px solid #e0dccf;border-radius:8px;padding:0 16px;font-size:16.5px;font-weight:500;box-shadow:0 1px 2px #50421e0f}.btn-primary{background:var(--g-yellow-flat);height:36px;color:var(--yellow-ink);border-radius:8px;padding:0 22px;font-size:17px;font-weight:600;box-shadow:inset 0 1px #ffffff8c,inset 0 -1px #9669002e,0 2px 6px #aa780a40}.btn-primary:hover:not(:disabled){filter:brightness(1.06)}.icon-btn,.tool,.btn-ghost,.btn-primary{transition:background .15s,box-shadow .15s,transform 80ms,color .15s,filter .15s,opacity .15s}.icon-btn:hover,.tool:hover,.btn-ghost:hover:not(:disabled){background:#fffdf7}.icon-btn:active,.tool:active,.btn-ghost:active,.btn-primary:active{transform:translateY(1px)}:where(button,a,[role=slider],[tabindex]):focus-visible{outline:2px solid var(--navy);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.45}.settings{transform:scale(var(--ui-scale,1));background:0 0;border:0;padding:0;overflow:visible}.settings::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1e1c1447}.settings__panel{background:linear-gradient(180deg, #fcfaf3 0%, var(--card) 100%);border:1px solid var(--card-border);border-radius:var(--radius-card);width:480px;color:var(--ink);font-family:var(--f-ui);padding:6px 22px 20px;box-shadow:inset 0 1px #ffffffe6,0 24px 60px -12px #3c321459}.settings__head{align-items:center;height:58px;display:flex}.settings__close{border-radius:8px;place-items:center;width:36px;height:36px;margin-left:auto;display:grid}.settings__close:hover{background:#efebe1}.settings__close svg{width:20px;height:20px;stroke:var(--ink-2);stroke-width:2.2px;stroke-linecap:round}.settings__group{border-top:1px solid var(--line);padding:14px 0 16px}.settings__label{font-family:var(--f-display);letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:14px;font-weight:500}.segmented--wide{grid-template-columns:1fr 1fr;margin:0}.field{color:var(--ink-soft);flex-direction:column;gap:6px;margin-top:14px;font-size:15px;font-weight:500;display:flex}.field input{height:40px;font-family:var(--f-mono);color:var(--ink);background:#fffdf8;border:1px solid #ddd8ca;border-radius:9px;outline:none;padding:0 12px;font-size:14px}.field input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1e3a5c24}.settings__hint{color:var(--muted);margin:10px 0 0;font-size:14px;line-height:1.35}.settings__hint.is-error{color:#c23339}.settings__row{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:16px;padding:5px 0;font-size:16px;display:flex}.settings__foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding-top:16px;display:flex}.settings__foot .btn-ghost{margin-right:auto}.row--link,.row--check{cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.part__name{flex:1}.row__eye{fill:none;stroke:#9c9683;stroke-width:1.8px;opacity:0;flex:none;width:19px;height:19px;transition:opacity .15s,stroke .15s}[data-parts]:hover .row__eye,[data-parts]:focus-visible .row__eye{opacity:1}.row__eye:hover{stroke:var(--navy)}.tile.row--link:hover,.tile.row--check:hover,.tile[data-parts]:focus-visible{border-color:var(--warm-line);background:#fffdf7}.pin.row--link:hover .pin__val{background:var(--navy-hi)}.checkbox{background:#fffdf8;border:2px solid #d6cfbb;border-radius:8px;flex:none;place-items:center;width:26px;height:26px;transition:background .15s,border-color .15s;display:grid}.checkbox svg{fill:none;stroke:#fff;stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round;opacity:0;width:15px;height:15px}.checkbox--num{border-radius:50%;width:28px;height:28px}.checkbox--num:before{content:attr(data-n);font-family:var(--f-display);color:var(--navy);grid-area:1/1;font-size:14px;font-weight:600}.checkbox--num svg{grid-area:1/1}.row--check.is-checked .checkbox{background:var(--g-green);border-color:#0000}.row--check.is-checked .checkbox svg{opacity:1}.row--check.is-checked .checkbox--num:before{content:""}.steps .row--check.is-checked>span:nth-child(2){color:var(--faint);-webkit-text-decoration:line-through #8a8d9680;text-decoration:line-through #8a8d9680}.part.row--check .checkbox{border-radius:6px;width:22px;height:22px}.part.row--check.is-checked .part__name{color:var(--faint)}.count-chip{font-family:var(--f-display);letter-spacing:.6px;color:var(--muted);background:#ece8de;border-radius:10px;order:3;padding:2px 8px;font-size:12px}.count-chip.is-complete{color:#12735f;background:#d8f1e8}.code__actions{gap:6px;display:flex}.code__download{height:24px;font-family:var(--f-ui);color:#cfd8e4;background:#ffffff12;border-radius:6px;padding:0 10px;font-size:13.5px}.code__download:hover{background:#ffffff24}.lesson__keys{color:var(--faint);font-size:13.5px}.lesson__keys kbd{min-width:20px;padding:0 4px;font-size:11px;line-height:18px}.part-tip{z-index:4;color:#fff;pointer-events:none;white-space:nowrap;background:#13203aeb;border-radius:10px;flex-direction:column;gap:1px;padding:7px 11px 8px;display:flex;position:absolute;top:0;left:0;box-shadow:0 8px 20px -8px #0a142880}.part-tip b{font-family:var(--f-display);letter-spacing:.3px;font-size:16px;font-weight:500}.part-tip span{color:#aab6c8;font-size:12.5px}.lesson__pane,.partview{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.partview.is-entering{animation:.22s ease-out pane-in}@keyframes pane-in{0%{opacity:0;transform:translate(16px)}}.partview__bar{flex:none;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px 0;display:flex}.partview__back{background:var(--g-navy);color:#fff;border-radius:18px;align-items:center;gap:6px;min-width:0;height:36px;padding:0 15px 0 9px;font-size:15.5px;font-weight:500;transition:filter .15s,transform 80ms;display:flex;box-shadow:0 2px 6px #14233c38}.partview__back:hover{filter:brightness(1.15)}.partview__back:active{transform:translateY(1px)}.partview__back svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.partview__back span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.partview__esc{flex:none}.partview__head{flex:none;padding:20px 22px 4px}.partview__group{font-family:var(--f-display);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:12.5px;font-weight:500;display:block}.partview__name{font-family:var(--f-display);letter-spacing:.3px;text-transform:uppercase;color:var(--ink);margin-top:4px;font-size:29px;font-weight:600;line-height:1.05}.partview__body{scrollbar-width:thin;scrollbar-color:#d6d1c3 transparent;flex:1;min-height:0;padding:8px 22px 18px;overflow-y:auto}.partview__what{color:var(--ink-soft);margin:0;font-size:17px;line-height:1.45}.partview__specs{gap:6px;margin:0;display:grid}.partview__specs div{border-radius:var(--radius-tile);background:var(--tile);border:1px solid var(--tile-border);grid-template-columns:minmax(96px,36%) 1fr;gap:14px;padding:9px 13px;font-size:15px;line-height:1.35;display:grid;box-shadow:inset 0 1px #ffffffe6}.partview__specs dt{font-family:var(--f-display);letter-spacing:.8px;text-transform:uppercase;color:var(--muted);padding-top:1px;font-size:13px;font-weight:500}.partview__specs dd{color:var(--ink-2);margin:0;font-weight:500}.partview__foot{border-top:1px solid var(--line);min-height:75px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px 18px;font-size:15px;display:flex}.partview__step b{color:var(--ink-2);font-weight:600}.partview__foot .btn-primary{flex:none;height:42px;padding:0 18px}.tool--toggle.is-active,.tool--chase.is-active{background:var(--g-navy);border-color:var(--navy)}.tool--toggle.is-active svg,.tool--chase.is-active svg{stroke:#fff}.card--bench.is-drive .tool--toggle,.card--bench:not(.is-drive) .tool--chase{display:none}.minimap{z-index:2;background:#fcfaf3f0;border:1px solid #e3dfd2;border-radius:14px;padding:6px;position:absolute;bottom:16px;left:16px;box-shadow:0 10px 26px -12px #3c32144d}.minimap canvas{width:196px;height:196px;display:block}.minimap__foot{justify-content:space-between;align-items:center;gap:8px;min-height:26px;margin-top:4px;padding-left:5px;display:flex}.minimap__label{font-family:var(--f-display);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:500}.minimap__edit{background:#f9f7ef;border:1px solid #e0dccf;border-radius:7px;place-items:center;width:30px;height:26px;transition:background .15s,border-color .15s,transform 80ms;display:grid;box-shadow:0 1px 2px #50421e0f}.minimap__edit:hover{background:#fffdf7;border-color:#cfc8b6}.minimap__edit:active{transform:translateY(1px)}.minimap__edit svg{fill:none;width:16px;height:16px;stroke:var(--ink-2);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.arena__head,.arena__side,.arena__foot{display:none}.bench-veil{z-index:4;border-radius:inherit;background:#f6f3e8b8;animation:.2s ease-out backdrop-in;position:absolute;inset:0}.minimap.is-editing{z-index:5;grid-template-columns:var(--arena-size,480px) 196px;background:#fcfaf3;border-radius:18px;grid-template-areas:"head head""map side""foot foot";gap:10px 14px;width:max-content;height:max-content;margin:auto;padding:12px 16px 14px;animation:none;display:grid;inset:0;box-shadow:0 24px 60px -24px #3c321473}.minimap.is-editing .minimap__foot{display:none}.minimap.is-editing canvas{width:var(--arena-size,480px);height:var(--arena-size,480px);touch-action:none;border-radius:10px;grid-area:map}.minimap.is-editing canvas:focus-visible{outline-offset:2px;outline:2px solid #1e3a5c47}.minimap.is-editing .arena__head{grid-area:head;justify-content:space-between;align-items:center;min-height:30px;display:flex}.arena__title{font-family:var(--f-display);letter-spacing:.6px;text-transform:uppercase;color:var(--ink);font-size:19px;font-weight:600}.arena__paused{height:26px;color:var(--ink-soft);background:#f4efdf;border:1px solid #e6dfca;border-radius:999px;align-items:center;gap:7px;padding:0 11px 0 9px;font-size:13.5px;font-weight:500;display:inline-flex}.arena__paused i{border-left:3px solid var(--yellow-lo);border-right:3px solid var(--yellow-lo);width:8px;height:10px}.minimap.is-editing .arena__side{background:var(--tile);border:1px solid var(--tile-border);border-radius:12px;flex-direction:column;grid-area:side;padding:12px 12px 10px;display:flex;overflow:hidden}.arena__none{color:var(--muted);margin:4px 2px;font-size:15px;line-height:1.35}.arena__name{font-family:var(--f-display);letter-spacing:.3px;color:var(--ink);align-items:center;gap:8px;margin:0 0 4px;font-size:16.5px;font-weight:600;display:flex}.arena__swatch{border-radius:3px;flex:none;width:16px;height:16px;box-shadow:inset 0 0 0 1px #3c321438}.arena__swatch.is-round{border-radius:50%}.arena__group{font-family:var(--f-display);letter-spacing:1.2px;text-transform:uppercase;color:var(--faint);margin:12px 0 5px;font-size:11.5px;font-weight:500}.afield{color:var(--ink-soft);grid-template-columns:1fr 62px 18px;align-items:center;gap:5px;margin-top:5px;font-size:14.5px;display:grid}.afield input{width:100%;height:30px;font-family:var(--f-mono);color:var(--ink);background:#fffdf8;border:1px solid #ddd8ca;border-radius:7px;outline:none;padding:0 4px 0 8px;font-size:13px}.afield input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1e3a5c24}.afield em{color:var(--faint);font-size:13px;font-style:normal}.arena__keys{border-top:1px solid var(--line);color:var(--muted);margin:auto 0 0;padding-top:10px;font-size:13px;line-height:1.25}.arena__keys div{align-items:baseline;gap:7px;margin-top:5px;display:flex}.arena__keys dt{flex:none;width:48px}.arena__keys dd{margin:0}.arena__keys kbd{font-family:var(--f-mono);color:var(--ink-soft);background:#fffdf8;border:1px solid #ddd8ca;border-radius:5px;padding:1px 5px;font-size:11px}.minimap.is-editing .arena__foot{grid-area:foot;align-items:center;gap:8px;min-height:42px;display:flex}.arena__hint{min-width:0;color:var(--muted);flex:1;margin:0 6px 0 2px;font-size:14.5px;line-height:1.3}.arena__hint.is-warn{color:#b4281f}.arena__foot .btn-ghost,.arena__foot .btn-primary{flex:none;height:38px;padding:0 15px;font-size:16px}.arena__foot .btn-primary{padding:0 22px}.drive[inert]{opacity:.45;transition:opacity .2s}.flow{--flow-k:.187;z-index:2;cursor:pointer;background:#fcfaf3f0;border:1px solid #e3dfd2;border-radius:14px;padding:9px 8px 6px;transition:border-color .15s,box-shadow .15s;position:absolute;bottom:16px;right:16px;box-shadow:0 10px 26px -12px #3c32144d}.flow:not(.is-open):hover{border-color:#cfc8b6;box-shadow:0 12px 28px -12px #3c32146b}.flow__head,.flow__detail{display:none}.flow__chart{width:calc(1112px * var(--flow-k));height:calc(318px * var(--flow-k));overflow:hidden}.flow__stage{width:1112px;height:318px;transform:scale(var(--flow-k));transform-origin:0 0;position:relative}.flow__edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.flow__edge{fill:none;stroke:#98a1b0;stroke-width:1.6px;stroke-linejoin:round;transition:stroke .15s,stroke-width .15s}.flow__edge.is-on{stroke:var(--navy);stroke-width:2.2px}.flow__edges marker path{fill:context-stroke}.flow__answer{font-family:var(--f-display);letter-spacing:.5px;text-transform:uppercase;fill:var(--muted);font-size:11.5px;font-weight:500}.flow__answer--yes{fill:var(--green)}.fnode{width:96px;height:48px;font-family:var(--f-ui);text-align:center;color:var(--ink-2);background:#fffdf7;border:1.5px solid #cfc8b6;border-radius:10px;place-items:center;margin:-24px 0 0 -48px;padding:0 7px;font-size:13.5px;font-weight:600;line-height:1.15;transition:border-color .15s,box-shadow .15s,background .15s,transform 80ms;display:grid;position:absolute;box-shadow:0 1px 2px #50421e14}.fnode span{z-index:1;white-space:pre-line;position:relative}.fnode:hover{border-color:var(--navy)}.fnode.is-on{border-color:var(--navy);box-shadow:0 0 0 3px #1e3a5c33,0 4px 10px -4px #1e3a5c66}.fnode--start{background:var(--g-navy);border-color:var(--navy);color:#fff;border-radius:24px}.fnode--ask{width:104px;height:78px;box-shadow:none;color:var(--yellow-ink);background:0 0;border:0;margin:-39px 0 0 -52px;padding:0 22px}.fnode--ask:before,.fnode--ask:after{content:"";clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#d9a92c;transition:background .15s,inset .15s;position:absolute;inset:0}.fnode--ask:after{background:var(--g-yellow-flat);inset:2.5px 3px}.fnode--ask:hover:before,.fnode--ask.is-on:before{background:var(--navy)}.fnode--ask.is-on{box-shadow:none;filter:drop-shadow(0 0 #1e3a5c33)drop-shadow(0 3px 5px #1e3a5c59)}.fnode--ask.is-on:after{inset:4px 5px}.fnode:focus-visible{outline:2px solid var(--navy);outline-offset:3px}.flow:not(.is-open) .flow__stage{pointer-events:none}.flow:not(.is-open) .fnode{color:#0000;box-shadow:none;border-width:5px}.flow:not(.is-open) .fnode--do{background:#ece6d6}.flow:not(.is-open) .flow__answer{display:none}.flow:not(.is-open) .flow__edge{stroke-width:6px;stroke:#a9b0bc;marker-end:none}.flow__foot{align-items:center;gap:8px;min-height:26px;margin-top:5px;padding-left:4px;display:flex}.flow__foot .minimap__label{margin-right:auto}.flow__expand{background:#f9f7ef;border:1px solid #e0dccf;border-radius:7px;flex:none;place-items:center;width:30px;height:26px;transition:background .15s,border-color .15s,transform 80ms;display:grid;box-shadow:0 1px 2px #50421e0f}.flow:not(.is-open):hover .flow__expand{background:#fffdf7;border-color:#cfc8b6}.flow__expand:active{transform:translateY(1px)}.flow__expand svg,.flow__close svg{fill:none;width:16px;height:16px;stroke:var(--ink-2);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.flow.is-open{z-index:5;cursor:default;background:#fcfaf3;border-radius:18px;flex-direction:column;gap:10px;width:max-content;height:max-content;margin:auto;padding:12px 16px 16px;animation:none;display:flex;inset:0;box-shadow:0 24px 60px -24px #3c321473}.flow.is-open .flow__foot{display:none}.flow.is-open .flow__head{align-items:center;gap:14px;min-height:30px;display:flex}.flow__heading{align-items:baseline;gap:12px;min-width:0;display:flex}.flow__title{font-family:var(--f-display);letter-spacing:.6px;text-transform:uppercase;color:var(--ink);white-space:nowrap;font-size:19px;font-weight:600}.flow__file{font-family:var(--f-mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.flow__tip{color:var(--faint);white-space:nowrap;margin-left:auto;font-size:14px}.flow__close{background:#f9f7ef;border:1px solid #e0dccf;border-radius:8px;flex:none;place-items:center;width:32px;height:30px;transition:background .15s,transform 80ms;display:grid}.flow__close:hover{background:#fffdf7}.flow__close:active{transform:translateY(1px)}.flow.is-open .flow__chart{width:var(--flow-w,1112px);height:calc(318px * var(--flow-k) + 2px + var(--flow-bar,0px));background:linear-gradient(var(--tile), var(--tile)) padding-box;border:1px solid var(--tile-border);scrollbar-width:thin;border-radius:12px;padding:0;overflow:hidden}.flow.is-open .flow__chart.is-scrolling{overflow-x:auto}.flow.is-open .flow__stage{margin-bottom:calc(318px * (var(--flow-k) - 1));margin-right:calc(1112px * (var(--flow-k) - 1))}.flow.is-open .flow__detail{width:var(--flow-w,1112px);height:var(--flow-detail,260px);grid-template-columns:minmax(230px,.62fr) minmax(0,1fr);gap:14px;display:grid}.flow__about{background:var(--tile);border:1px solid var(--tile-border);border-radius:12px;position:relative;overflow:hidden}.flow__about-in{scrollbar-width:thin;height:100%;padding:12px 14px;overflow:hidden auto}.flow__kind{height:22px;font-family:var(--f-display);letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);background:#ece6d6;border-radius:999px;padding:0 9px;font-size:11.5px;font-weight:500;line-height:22px;display:inline-block}.flow__kind[data-kind=ask]{background:var(--g-yellow-flat);color:var(--yellow-ink)}.flow__kind[data-kind=start]{background:var(--g-navy);color:#fff}.flow__node{font-family:var(--f-display);letter-spacing:.2px;color:var(--ink);margin:9px 0 6px;font-size:18.5px;font-weight:600;line-height:1.2}.flow__text{color:var(--ink-soft);margin:0;font-size:15.5px;line-height:1.42}.flow__code{flex-direction:column;min-width:0;min-height:0;display:flex}.flow__code .code__head{flex:none;height:32px}.flow__code pre{flex:1;min-height:0;padding:8px 0 10px;font-size:12.5px;line-height:1.55;overflow:auto}.fl{white-space:pre;opacity:.5;width:max-content;min-width:100%;padding:0 14px 0 0;display:block}.fl i{text-align:right;color:#6d7a90;-webkit-user-select:none;user-select:none;width:44px;padding-right:12px;font-style:normal;display:inline-block}.fl.is-marked{opacity:1;box-shadow:3px 0 0 var(--yellow) inset;background:#fdd06224}.fl.is-marked i{color:#c6cfdb}.fl--gap{color:#6d7a90;opacity:.8}.flow__say,.flow__state{display:none}.flow.is-live:not(.is-open){padding:9px 9px 6px}.flow.is-live .flow__say{width:calc(1112px * var(--flow-k));gap:1px;margin:7px 0 0;padding:0 3px;display:grid}.flow__say b,.flow__say span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.flow__say b{font-family:var(--f-ui);color:var(--ink);font-size:13.5px;font-weight:600;line-height:1.25}.flow__say span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;line-height:1.3}.flow.is-live .flow__state{place-items:center end;display:grid}.flow__state>*{opacity:0;visibility:hidden;grid-area:1/1;transition:opacity .16s,transform .16s,visibility 0s .16s;transform:translateY(4px)}.flow__state>.is-shown{opacity:1;visibility:visible;transition:opacity .24s .12s,transform .24s cubic-bezier(.16,.84,.3,1) .12s,visibility;transform:none}.flow__badge{height:20px;font-family:var(--f-display);letter-spacing:1.2px;text-transform:uppercase;color:#14705a;background:#1f9a7821;border-radius:999px;align-items:center;gap:5px;padding:0 8px 0 7px;font-size:11px;font-weight:600;display:inline-flex}.flow__badge i{background:var(--green);border-radius:50%;width:7px;height:7px;animation:1.5s ease-in-out infinite flow-live}@keyframes flow-live{50%{opacity:.35;transform:scale(.78)}}.flow__auto{background:var(--g-navy);height:26px;font-family:var(--f-ui);color:#fff;border-radius:7px;align-items:center;gap:2px;padding:0 11px 0 6px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #13203a40}.flow__auto:hover{background:var(--navy)}.flow__auto:active{transform:translateY(1px)}.flow__auto svg{fill:currentColor;width:16px;height:16px}.flow.is-live .flow__chart{transition:opacity .3s}.flow.is-live.is-idle:not(.is-open) .flow__chart{opacity:.5}.flow.is-live .flow__edge.is-lit{stroke:var(--navy);stroke-width:2.6px}.flow.is-live .flow__edge.is-lit[data-answer=yes]{stroke:var(--green)}.flow.is-live:not(.is-open) .flow__edge.is-lit{stroke-width:9px}.flow__answer{transition:fill .15s}.flow.is-live .flow__answer.is-lit{fill:var(--navy);font-weight:700}.flow.is-live .flow__answer--yes.is-lit{fill:var(--green)}.flow__over{z-index:2}.flow__marker{opacity:0;transition:opacity .12s}.flow__marker.is-on{opacity:1}.flow__dot{fill:var(--yellow);stroke:var(--navy);stroke-width:2.5px}.flow__ink{fill:none;stroke:var(--navy);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.flow__ink[data-answer=yes]{stroke:var(--green)}.flow:not(.is-open) .flow__dot{stroke-width:6px}.flow:not(.is-open) .flow__ink{stroke-width:9px}.flow.is-live .fnode.was-live{border-color:var(--navy)}.flow.is-live .fnode--ask.was-live:before{background:var(--navy)}.flow.is-live .fnode{transition:border-color .15s,box-shadow .2s,background .15s,transform .2s cubic-bezier(.16,.84,.3,1)}.flow.is-live .fnode.is-live{z-index:1;border-color:var(--navy);transform:scale(1.1);box-shadow:0 0 0 4px #fdd062bf,0 5px 12px -4px #1e3a5c73}.flow.is-live .fnode--do.is-live{background:var(--yellow);color:var(--yellow-ink)}.flow.is-live .fnode--ask.is-live{box-shadow:none;filter:drop-shadow(0 3px 5px #1e3a5c66)}.flow.is-live .fnode--ask.is-live:before{background:var(--navy);inset:-3px -4px}.flow.is-live:not(.is-open) .fnode.is-live{transform:scale(1.18);box-shadow:0 0 0 11px #fdd062cc}.flow.is-live:not(.is-open) .fnode--do.is-live,.flow.is-live:not(.is-open) .fnode--start.is-live,.flow.is-live:not(.is-open) .fnode--ask.is-live{color:#0000}.flow.is-live:not(.is-open) .fnode--ask.is-live{box-shadow:none;filter:none}.flow.is-live:not(.is-open) .fnode--ask.is-live:before{inset:-7px -9px}.flow.is-live .fnode--ask:after{transition:background .15s,inset .15s,box-shadow .25s;box-shadow:inset 0 0 0 60px #0000}.flow.is-live .fnode--ask.is-heated:after{box-shadow:inset 0 0 0 60px var(--face)}.flow.is-open.is-live .flow__say{width:var(--flow-w,1112px);background:var(--tile);border:1px solid var(--tile-border);border-radius:9px;align-items:center;gap:12px;height:30px;margin:0;padding:0 12px;display:flex}.flow.is-open.is-live .flow__say:before{content:"";background:var(--green);border-radius:50%;flex:none;width:8px;height:8px;animation:1.5s ease-in-out infinite flow-live}.flow.is-open.is-live.is-idle .flow__say:before{background:#b9b6ab;animation:none}.flow.is-open.is-live .flow__say b{flex:none;font-size:15px}.flow.is-open.is-live .flow__say span{font-size:14px}@media (prefers-reduced-motion:reduce){.flow__marker{display:none}.flow__badge i,.flow.is-open.is-live .flow__say:before{animation:none}.flow.is-live .fnode,.flow.is-live .fnode--ask:after,.flow__state>*{transition:none}}.kit-label{pointer-events:none;-webkit-user-select:none;user-select:none}.kit-label span{font-family:var(--f-ui);color:var(--ink-2);white-space:nowrap;background:#fcfaf3eb;border:1px solid #e3dfd2;border-radius:7px;padding:3px 8px;font-size:13.5px;font-weight:500;display:block;box-shadow:0 2px 6px -3px #3c32144d}.kit-label--now span{background:var(--g-yellow-flat);color:var(--yellow-ink);border-color:#e3b23c;box-shadow:0 3px 10px -3px #aa780a80}.parts.is-intro .tile{background:#fff8e2;border-color:#efc65a;transition:background .3s,border-color .3s}.steps--animated li,.pins--animated .pin{position:relative}.steps--animated li{grid-template-columns:28px 1fr 26px}.row__play{width:26px;height:26px;color:var(--muted);opacity:0;border-radius:50%;align-self:start;place-items:center;margin-top:1px;transition:opacity .15s,color .15s,background .15s;display:grid}.row__play svg{fill:currentColor;width:12px;height:12px;margin-left:1px}[data-act]:hover .row__play,[data-act]:focus-within .row__play,[data-act].is-now .row__play{opacity:1}.row__play:hover{color:#fff;background:var(--g-navy)}.steps--animated li.is-now{color:var(--ink)}.steps--animated li.is-now:not(.is-checked) .checkbox--num{background:var(--g-yellow);border-color:#0000;box-shadow:0 0 0 4px #fdd06247}.steps--animated li.is-now:not(.is-checked) .checkbox--num:before{color:var(--yellow-ink)}.pins--animated .pin.is-now{border-color:var(--yellow-lo);background:#fffcf4;box-shadow:0 0 0 3px #fdd06247}.pins--animated .pin .row__play{align-self:center;margin-left:-6px}:root:is(.ui-tall,.ui-short) .app{padding:0 10px 10px}:root.ui-tall .layout{grid-template:"bench"minmax(0,44fr)"timeline""lesson"minmax(0,56fr)/minmax(0,1fr);gap:8px;transition:grid-template-rows .4s cubic-bezier(.16,.84,.3,1)}:root.ui-tall .layout:has(>.card--bench.is-drive){grid-template-rows:minmax(0,52fr) auto minmax(0,48fr)}:root.ui-short .layout{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 380px;gap:8px 10px}:root:is(.ui-tall,.ui-short) .topbar{height:60px;padding:0 0 2px}:root:is(.ui-tall,.ui-short) .brand{gap:10px}:root:is(.ui-tall,.ui-short) .brand__mark{width:38px;height:38px}:root:is(.ui-tall,.ui-short) .brand__name{letter-spacing:1.1px;font-size:24px}:root:is(.ui-tall,.ui-short) .topbar__rule{height:28px;margin:0 12px 0 14px}:root:is(.ui-tall,.ui-short) .credit__tile{border-radius:9px;width:34px;height:34px}:root:is(.ui-tall,.ui-short) .credit__tile svg{width:15px;height:15px}:root:is(.ui-tall,.ui-short) .credit__handle{font-size:15px}:root:is(.ui-tall,.ui-short) .topbar__right{gap:8px}:root:is(.ui-tall,.ui-short) .segmented.segmented--board{height:40px;margin:0}:root:is(.ui-tall,.ui-short) .segmented--board button{padding:0 14px;font-size:15.5px}:root:is(.ui-tall,.ui-short) .icon-btn{border-radius:10px;width:42px;height:42px}:root:is(.ui-tall,.ui-short) #settingsBtn svg{width:22px;height:22px}:root:is(.ui-tall,.ui-short) .icon-btn.lang-btn{width:auto;padding:0 8px 0 10px}:root.ui-tall .topbar__label,:root.ui-tall .board__name{display:none}:root.ui-tall .board__short{display:inline}:root.ui-narrow .brand__mark{width:36px;height:36px}:root.ui-narrow .brand__name{letter-spacing:.9px;font-size:21px}:root.ui-narrow .topbar__rule{width:0;margin:0 5px}:root.ui-narrow .credit{margin:0;padding:0}:root.ui-narrow .credit:hover{background:0 0}:root.ui-narrow .credit__text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:root.ui-narrow .topbar__right{gap:6px}:root.ui-narrow .segmented--board svg,:root.ui-narrow .lang-btn__caret{display:none}:root.ui-narrow .segmented--board button{padding:0 11px;font-size:15px}:root.ui-narrow .langs{width:min(300px, calc(var(--ui-w) - 40px));max-height:calc(var(--ui-h) - 90px);overscroll-behavior:contain;overflow-y:auto}:root.ui-narrow .langs__list{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-auto-flow:row}:root:is(.ui-tall,.ui-short) .bench__head{gap:10px;height:56px;padding:0 12px}:root:is(.ui-tall,.ui-short) .bench__head .badge--icon{width:32px;height:32px}:root:is(.ui-tall,.ui-short) .bench__head .badge--icon svg{width:18px;height:18px}:root:is(.ui-tall,.ui-short) .bench__head .card__title{font-size:21px}:root:is(.ui-tall,.ui-short) .bench__sub{display:none}:root:is(.ui-tall,.ui-short) .pill--status{height:28px;padding:0 11px 0 9px;font-size:14px}:root:is(.ui-tall,.ui-short) .view-tools{gap:8px;top:9px;right:10px}:root:is(.ui-tall,.ui-short) .tool{width:40px;height:38px}:root:is(.ui-tall,.ui-short) .tool svg{width:21px;height:21px}:root:is(.ui-tall,.ui-short) .view-tools [aria-label=Zoom]{display:none}:root.ui-narrow .view-tools,:root.ui-narrow .view-tools .tool-group{flex-direction:row}:root:is(.ui-tall,.ui-short) .hud{gap:6px;top:56px;left:10px}:root:is(.ui-tall,.ui-short) .hud__item{border-radius:10px;min-width:0;padding:5px 10px 6px}:root:is(.ui-tall,.ui-short) .hud__k{letter-spacing:1px;font-size:10.5px}:root:is(.ui-tall,.ui-short) .hud__v{font-size:12.5px}:root:is(.ui-tall,.ui-short) .hud__v b{font-size:18px}:root:is(.ui-narrow,.ui-short) .minimap:not(.is-editing){border-radius:12px;padding:5px;bottom:10px;left:10px}:root:is(.ui-narrow,.ui-short) .minimap:not(.is-editing) canvas{width:104px;height:104px}:root:is(.ui-narrow,.ui-short) .minimap:not(.is-editing) .minimap__foot{display:none}:root.ui-short .minimap:not(.is-editing) canvas{width:140px;height:140px}:root:is(.ui-narrow,.ui-short) .flow:not(.is-open){border-radius:12px;padding:7px 7px 5px;bottom:10px;right:10px}:root:is(.ui-narrow,.ui-short) .flow.is-live:not(.is-open) .flow__say{margin-top:5px}:root:is(.ui-narrow,.ui-short) .flow.is-live:not(.is-open) .flow__say span{display:none}:root:is(.ui-narrow,.ui-short) .flow.is-live:not(.is-open) .flow__say b{font-size:13px}:root.ui-narrow .flow:not(.is-open) .flow__foot{gap:5px;min-height:24px;margin-top:3px}:root:is(.ui-narrow,.ui-short) .flow.is-live:not(.is-open) .flow__foot{display:none}:root:is(.ui-narrow,.ui-short) .flow.is-live:not(.is-open){padding-bottom:7px}:root.ui-narrow .flow:not(.is-open) .flow__foot .minimap__label{letter-spacing:1px;font-size:10.5px}:root.ui-narrow .flow:not(.is-open) .flow__expand{width:28px;height:24px}:root:is(.ui-tall,.ui-short) .flow.is-open{z-index:30;position:fixed}:root:is(.ui-tall,.ui-short) #flowVeil{z-index:25;border-radius:0;position:fixed}:root.ui-narrow .flow.is-open{gap:8px;padding:10px 12px 12px}:root.ui-narrow .flow__file,:root.ui-narrow .flow__tip{display:none}:root.ui-narrow .flow__title{font-size:17px}:root.ui-narrow .flow__close{margin-left:auto}:root.ui-narrow .flow.is-open .flow__detail{grid-template-rows:minmax(0,.85fr) minmax(0,1.15fr);grid-template-columns:minmax(0,1fr);gap:8px}:root.ui-narrow .flow__node{font-size:17px}:root.ui-narrow .flow__text{font-size:15px}:root.ui-narrow .flow.is-open.is-live .flow__say{gap:9px}:root.ui-narrow .flow.is-open.is-live .flow__say b{font-size:14px}:root.ui-narrow .flow.is-open.is-live .flow__say span{font-size:13px}:root:is(.ui-tall,.ui-short) .card--timeline{gap:2px;height:62px;padding:0 6px}:root:is(.ui-tall,.ui-short) .strip{gap:6px}:root:is(.ui-tall,.ui-short) .stepcard{border-radius:12px;gap:8px;width:148px;height:50px;padding:4px 9px 4px 4px}:root:is(.ui-tall,.ui-short) .stepcard__pic{border-radius:8px;width:54px;height:40px}:root:is(.ui-tall,.ui-short) .stepcard__tick{width:16px;height:16px;top:2px;right:2px}:root:is(.ui-tall,.ui-short) .stepcard__tick svg{width:10px;height:10px}:root:is(.ui-tall,.ui-short) .stepcard__text{gap:2px}:root:is(.ui-tall,.ui-short) .stepcard__num{height:16px;padding:0 6px;font-size:11px}:root:is(.ui-tall,.ui-short) .stepcard__name{font-size:15px}:root:is(.ui-tall,.ui-short) .stepcard__bar{height:2px}:root:is(.ui-tall,.ui-short) .strip__nav{width:38px;height:38px}:root:is(.ui-tall,.ui-short) .lesson__head{gap:11px;padding:12px 16px 8px}:root:is(.ui-tall,.ui-short) .badge--step{width:40px;height:40px;font-size:18px}:root:is(.ui-tall,.ui-short) .lesson__kicker{font-size:11.5px}:root:is(.ui-tall,.ui-short) .lesson__title{margin-top:2px;font-size:23px}:root:is(.ui-tall,.ui-short) .lesson__body{padding:0 16px 14px}:root:is(.ui-tall,.ui-short) .lesson__foot{padding:9px 16px 11px}:root:is(.ui-tall,.ui-short) .lesson__foot .btn-primary,:root:is(.ui-tall,.ui-short) .lesson__foot .btn-ghost{height:40px}:root:is(.ui-tall,.ui-short) .lesson__foot .btn-primary{padding:0 16px;font-size:16px}:root:is(.ui-tall,.ui-short) .lesson__body.is-drive #lessonContent{order:1;margin-top:16px}:root:is(.ui-tall,.ui-short) .lesson__body.is-drive .drive:not([hidden]){flex:none}:root:is(.ui-tall,.ui-short) .drive .lesson__h:first-child{margin-top:4px}:root:is(.ui-tall,.ui-short) .dpad{zoom:1.1}:root.ui-tall .drive .lesson__h:first-child{display:none}:root.ui-tall .drive .motor{margin-top:4px}:root:is(.ui-tall,.ui-short) .serial{flex:none;height:190px}:root:is(.ui-tall,.ui-short) .settings__panel{width:min(480px, calc(var(--ui-w) - 24px));max-height:calc(var(--ui-h) - 24px);overflow-y:auto}:root:is(.ui-tall,.ui-short) .settings[open]{justify-content:center;align-items:center;width:auto;max-width:none;height:auto;max-height:none;margin:0;display:flex;inset:0}:root.ui-narrow .kit-label:not(.kit-label--now){display:none}:root.ui-narrow .kit-label span{border-radius:6px;padding:2px 6px;font-size:11.5px}@media (hover:none) and (pointer:coarse){:root{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.lesson__keys,.drive__keys,.partview__esc,.flow__tip,.arena__keys{display:none!important}.dpad__btn,.dpad__stop{-webkit-touch-callout:none;-webkit-user-select:none}}:root:is(:lang(ar),:lang(hi)) *{letter-spacing:0!important}.code,.code pre,.flow__code,.flow__code pre,.terminal{text-align:left;direction:ltr}
