@font-face{font-family:Fredoka;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/9ffc08a38813e78e-s.0y4xxz2y19qqs.woff2)format("woff2");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/44c9372a001b48d5-s.0yczt4r3j28ff.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:Fredoka;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/61715dc81dd9b4e8-s.p.0ez3bnoxb63ra.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:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/9ffc08a38813e78e-s.0y4xxz2y19qqs.woff2)format("woff2");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/44c9372a001b48d5-s.0yczt4r3j28ff.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:Fredoka;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/61715dc81dd9b4e8-s.p.0ez3bnoxb63ra.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:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/9ffc08a38813e78e-s.0y4xxz2y19qqs.woff2)format("woff2");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/44c9372a001b48d5-s.0yczt4r3j28ff.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:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/61715dc81dd9b4e8-s.p.0ez3bnoxb63ra.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:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/9ffc08a38813e78e-s.0y4xxz2y19qqs.woff2)format("woff2");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/44c9372a001b48d5-s.0yczt4r3j28ff.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:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/61715dc81dd9b4e8-s.p.0ez3bnoxb63ra.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:Fredoka Fallback;src:local(Arial);ascent-override:95.64%;descent-override:23.17%;line-gap-override:0.0%;size-adjust:101.84%}._618M2a_className{font-family:Fredoka,Fredoka Fallback;font-style:normal}._618M2a_variable{--font-learn-display:"Fredoka", "Fredoka Fallback"}
.learn-shell{--l-paper:#f8f5ed;--l-ink:#121129;--l-indigo:#4328ee;--l-indigo-dark:#2c16c7;--l-lime:#c7f02a;--l-orange:#ff7a45;--l-line:#d9d3c8;--l-muted:#5f5d6e;--l-card:#fffdf8;--l-display:var(--font-learn-display), var(--font-geist-sans), "Trebuchet MS", sans-serif;--l-body:var(--font-geist-sans), Arial, Helvetica, sans-serif;--l-radius:18px;--l-shadow:6px 6px 0 var(--l-ink);--l-shadow-soft:4px 4px 0 var(--l-ink);background:linear-gradient(90deg, #1211290b 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(#1211290b 1px, transparent 1px) 0 0 / 28px 28px, var(--l-paper);min-height:100vh;color:var(--l-ink);font-family:var(--l-body)}.learn-shell :focus-visible{outline-offset:3px;border-radius:6px;outline:3px solid #ff613d}.learn-wrap{width:min(1180px,100% - 40px);margin:0 auto}.learn-head{justify-content:space-between;align-items:center;gap:16px;padding:20px 0 8px;display:flex}.learn-head nav{flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:14px;font-weight:700;display:flex}.learn-head nav a{color:var(--l-ink);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--l-lime);text-decoration-color:var(--l-lime)}.learn-head nav a:hover{-webkit-text-decoration-color:var(--l-indigo);text-decoration-color:var(--l-indigo)}.learn-free{border:2px solid var(--l-ink);background:var(--l-lime);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:12px;font-weight:800;display:inline-flex}.learn-hero{padding:34px 0 18px;position:relative}.learn-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--l-indigo);margin:0 0 14px;font-size:12px;font-weight:800}.learn-hero h1{max-width:20ch;font-family:var(--l-display);letter-spacing:-.012em;margin:0;font-size:clamp(40px,6.4vw,76px);font-weight:600;line-height:1.04}.learn-hero h1 em{white-space:nowrap;box-shadow:inset 0 -.34em 0 var(--l-lime);font-style:normal;position:relative}.learn-lede{color:#35333f;max-width:56ch;margin:20px 0 0;font-size:17px;line-height:1.55}.learn-promise{flex-wrap:wrap;gap:8px 10px;margin-top:20px;padding:0;list-style:none;display:flex}.learn-promise li{border:2px solid var(--l-ink);background:var(--l-card);border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:700;display:inline-flex}.learn-promise li b{background:var(--l-lime);border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;display:grid}.learn-search{border:2px solid var(--l-ink);background:var(--l-card);box-shadow:var(--l-shadow);border-radius:22px;margin:30px 0 0;padding:18px}.learn-search label{font-family:var(--l-display);margin-bottom:10px;font-size:15px;font-weight:600;display:block}.learn-search-row{border:2px solid var(--l-ink);background:#fff;border-radius:14px;align-items:center;gap:12px;padding:4px 14px;display:flex}.learn-search-row:focus-within{box-shadow:0 0 0 4px #4328ee29}.learn-search-row svg{color:var(--l-indigo);flex:none}.learn-search input{min-width:0;height:50px;font-size:17px;font-family:var(--l-body);color:var(--l-ink);background:0 0;border:0;flex:1}.learn-search input:focus{outline:none}.learn-search input::placeholder{color:#8a8796}.learn-kbd{border:1.5px solid var(--l-line);color:var(--l-muted);white-space:nowrap;background:#f3efe6;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:700;display:none}.learn-search-hint{color:var(--l-muted);margin:12px 0 0;font-size:12.5px}.learn-search-hint strong{color:var(--l-ink)}.learn-chips{flex-wrap:wrap;gap:8px;margin:22px 0 0;display:flex}.learn-chip{border:2px solid var(--l-ink);background:var(--l-card);cursor:pointer;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:13px;font-weight:700;transition:transform .12s,background .12s,box-shadow .12s;display:inline-flex}.learn-chip i{background:var(--chip-color,var(--l-indigo));border-radius:50%;width:10px;height:10px}.learn-chip:hover{box-shadow:0 3px 0 var(--l-ink);transform:translateY(-2px)}.learn-chip[aria-pressed=true]{background:var(--l-ink);color:#fff;box-shadow:0 3px 0 var(--chip-color,var(--l-indigo))}.learn-results{margin:30px 0 0}.learn-results-head{justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:16px;display:flex}.learn-results-head h2{font-family:var(--l-display);letter-spacing:-.02em;margin:0;font-size:clamp(22px,3vw,30px);font-weight:600}.learn-count{color:var(--l-muted);font-size:13px;font-weight:700}.learn-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0;padding:0;list-style:none;display:grid}.learn-card{border:2px solid var(--l-ink);border-radius:var(--l-radius);background:var(--l-card);height:100%;box-shadow:var(--l-shadow-soft);flex-direction:column;gap:10px;padding:24px 22px 20px;transition:transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.learn-card:before{content:"";background:var(--strand-color,var(--l-indigo));height:6px;position:absolute;inset:0 0 auto}.learn-card:hover{box-shadow:9px 9px 0 var(--l-ink);transform:translate(-2px,-3px)}.learn-card-strand{letter-spacing:.1em;text-transform:uppercase;color:var(--strand-color,var(--l-indigo));justify-content:space-between;align-items:center;gap:10px;margin-top:6px;font-size:11px;font-weight:800;display:flex}.learn-card h3{font-family:var(--l-display);letter-spacing:-.02em;margin:0;font-size:25px;line-height:1.05}.learn-card p{color:#494756;margin:0;font-size:14px;line-height:1.5}.learn-card-meta{color:var(--l-muted);align-items:center;gap:10px;margin-top:auto;padding-top:12px;font-size:12px;font-weight:700;display:flex}.learn-card-meta span{border:1.5px solid var(--l-line);background:#fbf8f1;border-radius:999px;padding:4px 9px}.learn-card-go{color:var(--l-indigo);align-items:center;gap:6px;margin-left:auto;font-weight:850;display:inline-flex}.learn-card-done{border:2px solid var(--l-ink);background:var(--l-lime);border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:900;display:grid;position:absolute;top:16px;right:16px}.learn-empty{border:2px dashed var(--l-line);border-radius:var(--l-radius);text-align:center;color:var(--l-muted);padding:40px 24px}.learn-empty strong{font-family:var(--l-display);color:var(--l-ink);margin-bottom:6px;font-size:20px;display:block}.learn-panel{border:2px solid var(--l-ink);border-radius:var(--l-radius);background:var(--l-card);margin:40px 0 0;padding:24px}.learn-progress-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.learn-progress-head h2{font-family:var(--l-display);margin:0;font-size:22px;font-weight:600}.learn-progress-track{border:2px solid var(--l-ink);background:#fff;border-radius:999px;height:14px;overflow:hidden}.learn-progress-fill{background:linear-gradient(90deg, var(--l-indigo), #7a5bff);border-radius:999px;height:100%;transition:width .4s}.learn-progress-note{color:var(--l-muted);margin:12px 0 0;font-size:13px}.learn-link-button{color:var(--l-indigo);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:750;text-decoration:underline}.learn-workshop{flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.learn-workshop li{border:1.5px dashed var(--l-line);color:var(--l-muted);border-radius:999px;align-items:center;gap:8px;padding:7px 11px;font-size:12px;font-weight:650;display:inline-flex}.learn-workshop li b{color:var(--strand-color,var(--l-indigo));font-weight:800}.learn-foot{border-top:2px solid var(--l-line);color:var(--l-ink);background:0 0;flex-wrap:wrap;gap:10px 22px;margin-top:30px;padding:48px 0 40px;font-size:13px;font-weight:650;display:flex}.learn-foot a{color:var(--l-ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--l-line);text-decoration-color:var(--l-line)}.learn-foot a:hover{-webkit-text-decoration-color:var(--l-indigo);text-decoration-color:var(--l-indigo)}.lesson-shell{width:min(980px,100% - 36px);margin:0 auto;padding-bottom:40px}.lesson-top{z-index:20;background:var(--l-paper);background:color-mix(in srgb, var(--l-paper) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:2px solid #12112914;align-items:center;gap:14px;padding:14px 0;display:flex;position:sticky;top:0}.lesson-back{border:2px solid var(--l-ink);background:var(--l-card);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:9px 13px;font-size:13px;font-weight:750;display:inline-flex}.lesson-back:hover{background:var(--l-lime)}.lesson-top-mid{flex:1;min-width:0}.lesson-top-mid p{text-overflow:ellipsis;white-space:nowrap;font-family:var(--l-display);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:600;overflow:hidden}.lesson-top-mid span{letter-spacing:.1em;text-transform:uppercase;color:var(--strand-color,var(--l-indigo));font-size:11px;font-weight:800;display:block}.lesson-dots{align-items:center;gap:7px;margin:16px 0 0;padding:0;list-style:none;display:flex}.lesson-dots button{border:2px solid var(--l-ink);cursor:pointer;background:0 0;border-radius:999px;width:30px;height:14px;padding:0;transition:background .15s,width .15s}.lesson-dots button[data-state=done]{background:var(--l-indigo)}.lesson-dots button[data-state=current]{background:var(--l-lime);width:44px}.lesson-stage{margin:20px 0 0}.beat-card{border:2px solid var(--l-ink);background:var(--l-card);box-shadow:var(--l-shadow);border-radius:24px;padding:34px 34px 30px;position:relative}.beat-kicker{border:2px solid var(--l-ink);background:var(--strand-tint,#e9e3ff);letter-spacing:.09em;text-transform:uppercase;border-radius:999px;align-items:center;gap:8px;margin:0 0 14px;padding:6px 11px;font-size:11px;font-weight:850;display:inline-flex}.beat-headline{font-family:var(--l-display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:clamp(27px,3.8vw,42px);font-weight:600;line-height:1.1}.beat-copy{color:#3c3949;max-width:62ch;margin:16px 0 0;font-size:17px;line-height:1.55}.beat-copy+.beat-copy{margin-top:10px}.beat-glyph{border:2px solid var(--l-ink);border-radius:var(--l-radius);background:var(--strand-tint,#e9e3ff);font-family:var(--l-display);letter-spacing:.04em;color:var(--strand-color,var(--l-indigo));text-align:center;justify-content:center;align-items:center;margin:26px 0 6px;padding:26px 18px;font-size:clamp(34px,7vw,62px);font-weight:600;display:flex}.beat-term{border-left:6px solid var(--strand-color,var(--l-indigo));background:#f4f0ff;border-radius:10px;margin:22px 0 0;padding:16px 18px;font-size:15px;line-height:1.5}.beat-term b{font-family:var(--l-display);margin-bottom:3px;font-size:18px;display:block}.lesson-actions{align-items:center;gap:12px;margin:26px 0 0;display:flex}.lesson-actions .lesson-spacer{flex:1}.learn-btn{border:2px solid var(--l-ink);background:var(--l-card);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:50px;padding:0 22px;font-size:15px;font-weight:700;transition:transform .13s,box-shadow .13s,background .13s;display:inline-flex}.learn-btn:hover:not(:disabled){box-shadow:3px 3px 0 var(--l-ink);transform:translate(-1px,-2px)}.learn-btn:active:not(:disabled){box-shadow:none;transform:translate(1px,1px)}.learn-btn:disabled{opacity:.45;cursor:not-allowed}.learn-btn-primary{background:var(--l-indigo);color:#fff}.learn-btn-primary:hover:not(:disabled){background:var(--l-indigo-dark)}.learn-btn-lime{background:var(--l-lime)}.learn-btn-quiet{border-color:var(--l-line);background:0 0;min-height:40px;padding:0 14px;font-size:13px;font-weight:700}.learn-btn-small{border-radius:10px;min-height:40px;padding:0 14px;font-size:13px}.lab{border:2px solid var(--l-ink);border-radius:var(--l-radius);background:var(--strand-tint,#e9e3ff);margin:22px 0 0;padding:20px}.lab-ask{margin:0 0 16px;font-size:16px;font-weight:700;line-height:1.45}.lab-body{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;padding:18px}.lab-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.lab-note{border:2px solid var(--l-ink);background:#fff;border-radius:12px;margin:14px 0 0;padding:12px 14px;font-size:14.5px;font-weight:600;line-height:1.45}.lab-note[data-tone=good]{background:#eefbd0;border-color:#5f7a00}.lab-note[data-tone=warn]{background:#fff0e8;border-color:#b8461a}.lab-hint{color:#3c3949;margin:12px 0 0;font-size:14px;line-height:1.45}.power-grid{background:repeating-linear-gradient(45deg,#fbf8f1,#fbf8f1 10px,#f6f2e8 10px 20px);border-radius:12px;place-content:flex-start center;gap:6px;min-height:108px;padding:12px;display:grid}.power-cell{border:1.5px solid var(--l-ink);background:var(--strand-color,var(--l-indigo));border-radius:5px;width:22px;height:22px;animation:.22s cubic-bezier(.2,.9,.3,1.4) both learn-pop}@keyframes learn-pop{0%{opacity:0;transform:scale(.35)}to{opacity:1;transform:scale(1)}}.power-readout{flex-wrap:wrap;align-items:baseline;gap:14px;margin-top:16px;display:flex}.power-notation{font-family:var(--l-display);color:var(--strand-color,var(--l-indigo));font-size:clamp(30px,5vw,44px);font-weight:600;line-height:1}.power-value{font-size:18px;font-weight:800}.power-expanded{color:var(--l-muted);word-break:break-word;font-size:13.5px}.power-ladder{flex-direction:column;gap:6px;display:flex}.power-row{grid-template-columns:76px 1fr auto;align-items:center;gap:12px;font-size:14px;font-weight:700;display:grid}.power-row-notation{font-family:var(--l-display);color:var(--strand-color,var(--l-indigo));font-size:18px}.power-bar-track{border:1.5px solid var(--l-ink);background:#fff;border-radius:999px;height:18px;overflow:hidden}.power-bar{background:var(--strand-color,var(--l-indigo));border-radius:999px;height:100%}.power-row-value{text-align:right;font-variant-numeric:tabular-nums;min-width:66px}.power-divide{letter-spacing:.08em;text-transform:uppercase;color:var(--l-muted);margin-left:26px;font-size:11px;font-weight:800}.scale-stage{height:252px;margin:6px 0 0;position:relative}.scale-beam{border:2px solid var(--l-ink);background:var(--l-lime);transform-origin:50%;border-radius:999px;height:12px;transition:transform .64s cubic-bezier(.34,1.42,.64,1);position:absolute;top:56px;left:17%;right:17%}.scale-beam:after{content:"";background:var(--l-ink);border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%}.scale-upright{background:var(--l-ink);border-radius:3px;width:6px;height:84px;margin-left:-3px;position:absolute;top:62px;left:50%}.scale-foot{border:2px solid var(--l-ink);background:var(--l-orange);border-radius:999px;width:112px;height:14px;margin-left:-56px;position:absolute;top:144px;left:50%}.scale-pan{border:2px solid var(--l-ink);background:var(--l-card);border-radius:16px;flex-direction:column;gap:8px;width:34%;min-height:140px;padding:10px;transition:transform .64s cubic-bezier(.34,1.42,.64,1),background .14s,border-color .14s;display:flex;position:absolute;top:88px;box-shadow:3px 3px #1211291f}.scale-pan:before{content:"";background:var(--l-ink);width:2px;height:32px;position:absolute;top:-32px;left:50%}.pan-left{left:0}.pan-right{right:0}.scale-pan[data-target=true]{background:#f0fbd4;border-color:#4b6100}.pan-boxes,.pan-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pan-chips{align-content:flex-start;min-height:28px}.mystery-box{border:2px solid var(--l-ink);background:var(--strand-tint,#e9e3ff);width:56px;height:46px;color:var(--strand-color,var(--l-indigo));font-family:var(--l-display);border-radius:12px;place-items:center;font-size:22px;font-weight:600;display:grid;box-shadow:2px 2px #1211292e}.weight-token{border:2px solid var(--l-ink);background:var(--l-indigo);color:#fff;width:28px;height:28px;font-family:var(--l-display);cursor:grab;touch-action:none;border-radius:9px;place-items:center;font-size:14px;font-weight:600;transition:transform .12s,background .12s,box-shadow .12s;display:grid}.weight-token:hover{transform:translateY(-2px);box-shadow:0 3px #12112940}.weight-token[aria-pressed=true]{background:var(--l-orange);transform:scale(1.08);box-shadow:0 0 0 3px #ff7a4559}.equation-line{text-align:center;font-family:var(--l-display);letter-spacing:.01em;margin:14px 0 0;font-size:clamp(22px,3.2vw,30px);font-weight:600}.equation-block{margin-top:4px}.equation-op{color:var(--l-orange);font-weight:600}.equation-equals{color:var(--l-muted)}.equation-result{text-align:center;font-family:var(--l-display);color:var(--l-muted);margin:2px 0 0;font-size:clamp(15px,2.1vw,19px);font-weight:500}.pow sup{vertical-align:super;letter-spacing:0;margin-left:.04em;font-size:.52em;line-height:1}.beat-glyph sup{vertical-align:super;letter-spacing:0;font-size:.5em;line-height:1}.dot-board{flex-wrap:wrap;justify-content:center;gap:8px;padding:8px 2px;display:flex}.board-dot{border:2px solid var(--l-ink);background:var(--l-indigo);border-radius:50%;width:26px;height:26px;transition:background .26s,opacity .26s,transform .26s,border-color .26s}.board-dot-a{background:var(--l-indigo)}.board-dot-b{background:var(--l-orange)}.board-dot-off{opacity:.45;background:0 0;border-style:dashed;border-color:#c9c3d8;transform:scale(.82)}.factor-strip{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:12px 0 4px;display:flex}.factor-chip{border:2px solid var(--l-ink);background:var(--l-card);font-family:var(--l-display);border-radius:9px;align-items:center;gap:6px;padding:5px 10px;font-size:16px;font-weight:600;display:inline-flex}.factor-chip i{color:var(--l-muted);font-size:13px;font-style:normal}.factor-chip-next{color:#b8461a;background:#ffe6d9;border-color:#b8461a}.board-dot-half{background:linear-gradient(90deg, var(--l-indigo) 50%, #f1edfb 50%)}.halving-legend{color:var(--l-muted);flex-wrap:wrap;justify-content:center;gap:16px;margin-top:10px;font-size:11px;font-weight:700;display:flex}.halving-legend span{align-items:center;gap:6px;display:inline-flex}.legend-dot{border:1.5px solid var(--l-ink);border-radius:50%;width:12px;height:12px;display:inline-block}.legend-dot-on{background:var(--l-indigo)}.legend-dot-off{background:0 0;border-style:dashed;border-color:#b9b3c9}.tray{border:2px dashed var(--l-line);background:#ffffff73;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;min-height:60px;margin-top:14px;padding:10px 12px;transition:border-color .14s,background .14s;display:flex}.tray[data-target=true]{background:#f0fbd4;border-color:#4b6100}.tray-label{letter-spacing:.1em;text-transform:uppercase;color:var(--l-muted);font-size:10.5px;font-weight:800}.drop-action{border:2px solid var(--l-ink);background:var(--l-lime);color:var(--l-ink);cursor:pointer;border-radius:999px;align-self:center;margin-top:4px;padding:5px 10px;font-size:11px;font-weight:800}.drag-ghost{z-index:999;pointer-events:none;color:#fff;width:32px;height:32px;font-family:var(--font-learn-display), var(--font-geist-sans), sans-serif;background:#4328ee;border:2px solid #121129;border-radius:10px;place-items:center;font-size:15px;font-weight:600;display:grid;position:fixed;transform:translate(-50%,-50%)rotate(-5deg)scale(1.12);box-shadow:4px 5px #12112947}.share-pool{border:2px dashed var(--l-line);background:#ffffff73;border-radius:14px;flex-wrap:wrap;gap:8px;min-height:64px;padding:12px;transition:border-color .14s,background .14s;display:flex}.share-pool[data-target=true]{background:#f0fbd4;border-color:#4b6100}.token-dock{border:2px dashed var(--l-line);background:#ffffff80;border-radius:12px;align-items:center;gap:10px;margin-top:12px;padding:8px 10px;display:flex}.power-token{border:2px solid var(--l-ink);background:var(--l-orange);color:#fff;width:auto;min-width:54px;height:36px;font-family:var(--l-display);cursor:grab;touch-action:none;border-radius:10px;padding:0 12px;font-size:16px;font-weight:600;box-shadow:2px 2px #12112933}.power-token[aria-pressed=true]{background:var(--l-indigo);box-shadow:0 0 0 3px #4328ee40}.power-mat{border:2px dashed #0000;border-radius:14px;padding:10px;transition:background .14s,border-color .14s}.power-mat[data-target=true]{background:#f0fbd4;border-color:#4b6100}.data-svg{touch-action:none;width:100%;max-width:100%;height:auto;display:block;overflow:visible}.data-dot{cursor:grab}.data-dot:active{cursor:grabbing}.data-dot:focus-visible{outline:none}.data-dot:focus-visible circle{stroke:#ff613d;stroke-width:3px}.data-stats{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.data-stat{border:2px solid var(--l-ink);background:#fff;border-radius:10px;min-width:96px;padding:8px 12px;font-size:12px;font-weight:700}.data-stat b{font-family:var(--l-display);font-size:20px;line-height:1.1;display:block}.data-stat small{color:var(--l-muted);margin-top:2px;font-size:10.5px;font-weight:600;display:block}.data-stats-note{color:var(--l-muted);margin:10px 0 0;font-size:12.5px;line-height:1.5}.data-stat[data-kind=mean] b{color:var(--l-indigo)}.data-stat[data-kind=median] b{color:#b8461a}.trap-claim{border:2px solid var(--l-ink);background:#fff4ef;border-radius:14px;gap:14px;margin:22px 0 0;padding:18px 20px;display:flex}.trap-claim span{border:2px solid var(--l-ink);background:var(--l-orange);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:18px;font-weight:900;display:grid}.trap-claim p{font-family:var(--l-display);margin:0;font-size:20px;font-weight:600;line-height:1.3}.trap-fix{background:#eefbd0;border:2px solid #5f7a00;border-radius:14px;margin:16px 0 0;padding:18px 20px;font-size:16px;font-weight:650;line-height:1.5}.trap-fix b{letter-spacing:.1em;text-transform:uppercase;color:#4b6100;margin-bottom:4px;font-size:11px;font-weight:900;display:block}.check-question{font-family:var(--l-display);margin:18px 0 0;font-size:clamp(22px,3vw,28px);font-weight:600;line-height:1.25}.check-options{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.check-option{border:2px solid var(--l-ink);background:var(--l-card);text-align:left;cursor:pointer;border-radius:12px;align-items:flex-start;gap:12px;width:100%;padding:14px 16px;font-size:15.5px;font-weight:650;line-height:1.4;transition:transform .12s,background .12s;display:flex}.check-option:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.check-option i{border:2px solid var(--l-ink);background:#fff;border-radius:8px;flex:none;place-items:center;width:26px;height:26px;font-size:12px;font-style:normal;font-weight:900;display:grid}.check-option[data-state=correct]{background:#e6f8bb;border-color:#4b6100}.check-option[data-state=wrong]{background:#fff0e8;border-color:#b8461a}.check-why{color:#3c3949;margin-top:6px;font-size:14px;font-weight:600;display:block}.check-done{color:#4b6100;margin:16px 0 0;font-size:14px;font-weight:750}.wrap-card{padding:0;overflow:hidden}.wrap-banner{background:var(--l-lime);border-bottom:2px solid var(--l-ink);padding:26px 34px}.wrap-banner h2{font-family:var(--l-display);letter-spacing:-.015em;margin:0;font-size:clamp(28px,4vw,40px);font-weight:600}.wrap-list{counter-reset:recap;gap:10px;margin:22px 0 0;padding:0;list-style:none;display:grid}.wrap-list li{gap:12px;font-size:16px;font-weight:600;line-height:1.5;display:flex}.wrap-list li:before{counter-increment:recap;content:counter(recap);border:2px solid var(--l-ink);background:var(--l-lime);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:12px;font-weight:900;display:grid}.teach-back{border:2px dashed var(--l-ink);background:#f5f1ff;border-radius:14px;margin:24px 0 0;padding:18px 20px;font-size:15.5px;line-height:1.5}.teach-back b{letter-spacing:.1em;text-transform:uppercase;color:var(--l-indigo);margin-bottom:4px;font-size:11px;font-weight:900;display:block}.lesson-next{flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0 0;display:flex}.lesson-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.beat-transcript{border-top:1px dashed var(--l-line);margin-top:20px;padding-top:12px;font-size:14px;line-height:1.55}.beat-transcript summary{cursor:pointer;color:var(--l-indigo);font-size:12px;font-weight:800}.beat-transcript-body h3{font-family:var(--l-display);margin:10px 0 4px;font-size:16px;font-weight:600}.beat-transcript-body p,.beat-transcript-body ul{margin:4px 0}.beat-transcript-body ul{padding-left:18px}.tour-replay{border:2px dashed var(--l-line);color:var(--l-muted);cursor:pointer;background:0 0;border-radius:999px;margin-top:12px;padding:6px 12px;font-size:12px;font-weight:700}.tour-replay:hover{color:var(--l-ink);border-style:solid}.tour-layer{z-index:900;position:fixed;inset:0}.tour-ring{pointer-events:none;border:3px solid #c7f02a;border-radius:14px;transition:top .24s,left .24s,width .24s,height .24s;position:fixed;box-shadow:0 0 0 9999px #1211298c}.tour-card{z-index:901;color:#121129;background:#fffdf8;border:2px solid #121129;border-radius:16px;width:min(340px,100vw - 32px);padding:16px 16px 14px;font-family:Arial,Helvetica,sans-serif;position:fixed;box-shadow:6px 6px #121129}.tour-count{letter-spacing:.12em;text-transform:uppercase;color:#4328ee;margin:0 0 6px;font-size:10.5px;font-weight:800}.tour-say{margin:0;font-size:15px;line-height:1.5}.tour-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.tour-card .learn-btn{color:#121129;cursor:pointer;background:#fffdf8;border:2px solid #121129;border-radius:10px;min-height:38px;padding:0 14px;font-size:13px;font-weight:700}.tour-card .learn-btn-primary{color:#fff;background:#4328ee}.tour-card .learn-btn:hover{background:#f2eee5;box-shadow:3px 3px #121129}.tour-card .learn-btn-primary:hover{color:#fff;background:#2c16c7}.tour-card .lesson-spacer{flex:1}@media (max-width:980px){.learn-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.learn-wrap{width:calc(100% - 32px)}.learn-head{flex-wrap:wrap;gap:12px}.learn-head nav{justify-content:flex-start;gap:8px 14px;width:100%;font-size:13px}.learn-hero h1{font-size:clamp(36px,10vw,52px)}.learn-lede{font-size:16px}.learn-search{box-shadow:4px 4px 0 var(--l-ink);padding:14px}.learn-grid{grid-template-columns:minmax(0,1fr);gap:16px}.lesson-shell{width:calc(100% - 24px)}.lesson-top{gap:10px;padding:10px 0}.lesson-back .lesson-back-label{display:none}.lesson-back{padding:10px}.beat-card{box-shadow:4px 4px 0 var(--l-ink);border-radius:18px;padding:22px 18px 20px}.beat-copy{font-size:16px}.lab,.lab-body{padding:14px}.scale-stage{height:256px}.scale-pan{width:36%;min-height:132px;padding:8px 6px}.pan-chips{gap:4px}.mystery-box{width:46px;height:38px;font-size:19px}.weight-token{width:23px;height:23px;font-size:12px}.learn-btn{min-height:48px;padding:0 16px}.lesson-actions{gap:8px}}@media (min-width:900px){.learn-kbd{display:inline-block}}@media (prefers-reduced-motion:reduce){.learn-shell *,.learn-shell :before,.learn-shell :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.timeline{cursor:grab;touch-action:none;height:46px;margin:6px 2px 4px;position:relative}.timeline:focus-visible{outline:3px solid var(--l-indigo);outline-offset:4px;border-radius:8px}.timeline-rail{background:var(--l-ink);border-radius:999px;height:4px;position:absolute;inset:21px 2px auto}.timeline-stop{border:3px solid var(--l-ink);background:var(--l-card);border-radius:50%;width:18px;height:18px;margin-left:-9px;transition:transform .16s,background .16s;position:absolute;top:14px}.timeline-stop[data-state=seen]{background:var(--l-lime)}.timeline-stop[data-state=current]{background:var(--l-indigo);transform:scale(1.35)}.timeline-card{border:2px solid var(--l-ink);background:var(--l-card);box-shadow:var(--l-shadow-soft);border-radius:14px;padding:14px 16px}.timeline-card h4{font-family:var(--l-display);margin:0 0 6px;font-size:19px;font-weight:600}.timeline-card p{color:#35334a;margin:0;line-height:1.5}.timeline-count{letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;font-weight:800;color:var(--l-muted)!important;margin:0 0 4px!important}.sort-pool{border:2px dashed var(--l-line);background:#ffffff8c;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;min-height:62px;padding:10px 12px;display:flex}.sort-pool[data-target=true],.sort-bucket[data-target=true]{border-color:var(--l-indigo);background:#4328ee14}.sort-token{border:2px solid var(--l-ink);background:var(--l-lime);color:var(--l-ink);font-family:var(--l-display);cursor:grab;touch-action:none;box-shadow:3px 3px 0 var(--l-ink);border-radius:10px;padding:7px 12px;font-size:15px;font-weight:600;transition:transform .12s,box-shadow .12s}.sort-token[aria-pressed=true]{box-shadow:1px 1px 0 var(--l-ink);transform:translate(2px,2px)}.sort-token-placed{background:var(--l-card);box-shadow:none;cursor:default;font-size:14px}.sort-buckets{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px;display:grid}.sort-bucket{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;min-height:96px;padding:10px}.sort-bucket strong{font-family:var(--l-display);margin-bottom:8px;font-size:14px;font-weight:600;display:block}.sort-bucket-tiles{flex-wrap:wrap;gap:6px;display:flex}.track-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.track-value{font-family:var(--l-display);color:var(--l-indigo-dark);font-size:26px;font-weight:600}.track-change{color:var(--l-muted);font-size:12.5px;font-weight:700}.track,.zoom-track{touch-action:none;position:relative}.track{cursor:grab;height:78px;margin:2px 12px 6px}.track:focus-visible{outline:3px solid var(--l-indigo);outline-offset:4px;border-radius:8px}.track-line{background:var(--l-ink);border-radius:999px;height:4px;position:absolute;inset:36px 0 auto}.track-tick{text-align:center;margin-left:-1px;position:absolute;top:32px;transform:translate(-50%)}.track-tick i{background:var(--l-ink);width:2px;height:12px;display:block}.track-tick b{color:var(--l-muted);margin-top:6px;font-size:10.5px;font-weight:700;display:block}.track-handle{border:3px solid var(--l-ink);background:var(--l-indigo);color:#fff;min-width:44px;height:38px;font-family:var(--l-display);border-radius:999px;place-items:center;padding:0 8px;font-size:15px;font-weight:600;transition:left 90ms linear;display:grid;position:absolute;top:4px;transform:translate(-50%)}.track-percent{border:2px solid var(--l-ink);background:var(--l-card);border-radius:999px;height:38px;margin:10px 30px 14px}.track-fill{background:var(--l-lime);border-radius:999px;transition:width 90ms linear;position:absolute;inset:0 auto 0 0}.track-handle-percent{background:var(--l-ink);color:#fff;min-width:58px;height:34px;top:50%;transform:translate(-50%,-50%)}.zoom-track{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;padding:14px 16px 20px;transition:background .16s}.zoom-track[data-target=true]{background:#c7f02a59}.zoom-labels{color:var(--l-muted);justify-content:space-between;gap:8px;font-size:12px;font-weight:800;display:flex}.zoom-depth{color:var(--l-indigo-dark);font-weight:800}.zoom-line{background:var(--l-ink);border-radius:999px;height:6px;margin-top:16px;position:relative}.zoom-dot{border:3px solid var(--l-ink);border-radius:50%;width:18px;height:18px;position:absolute;top:-6px;transform:translate(-50%)}.zoom-dot-a{background:var(--l-orange)}.zoom-dot-b{background:var(--l-indigo)}.fill-bar{border:2px solid var(--l-ink);background:#ffffffb3;border-radius:14px;gap:3px;min-height:62px;padding:6px;display:flex}.fill-bar[data-target=true]{border-color:var(--l-indigo);background:#4328ee14}.fill-empty{width:100%;color:var(--l-muted);text-align:center;place-items:center;font-size:12.5px;font-weight:700;display:grid}.fill-piece{background:var(--l-indigo);color:#fff;font-family:var(--l-display);border-radius:9px;place-items:center;font-size:14px;font-weight:600;transition:width .18s;display:grid}.fill-piece[data-tone=b]{background:var(--l-orange)}.fill-tray{border:2px dashed var(--l-line);border-radius:14px;flex-wrap:wrap;gap:8px;min-height:54px;margin-top:10px;padding:10px;display:flex}.fill-tray[data-target=true]{border-color:var(--l-indigo);background:#4328ee0f}.fraction-token{border:2px solid var(--l-ink);background:var(--l-card);font-family:var(--l-display);cursor:grab;touch-action:none;box-shadow:3px 3px 0 var(--l-ink);border-radius:10px;padding:8px 14px;font-size:15px;font-weight:600}.fraction-token[aria-pressed=true]{box-shadow:1px 1px 0 var(--l-ink);transform:translate(2px,2px)}.merge-target{border:2px dashed var(--l-line);background:var(--l-card);border-radius:14px;padding:16px;transition:border-color .16s,background .16s}.merge-target[data-target=true]{border-color:var(--l-indigo);background:#4328ee14}.merge-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0;display:flex}.merge-power{font-family:var(--l-display);color:var(--l-ink);font-size:26px;font-weight:600}.merge-power sup{vertical-align:super;letter-spacing:0;font-size:.55em}.merge-op{color:var(--l-muted);font-size:20px;font-weight:700}.merge-result{color:var(--l-indigo-dark)}.merge-expansion{color:var(--l-muted);text-align:center;word-spacing:2px;margin:10px 0 0;font-size:13px;font-weight:700}.decimal-stage{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;padding:18px 16px 10px}.decimal-digits{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;display:flex}.decimal-slot-wrap{align-items:center;display:flex}.decimal-slot{cursor:pointer;background:0 0;border:2px dashed #0000;border-radius:8px;place-items:center;width:26px;height:58px;padding:0;display:grid}.decimal-slot[data-target=true]{border-color:var(--l-indigo);background:#4328ee1a}.decimal-point-on{font-family:var(--l-display);color:var(--l-indigo-dark);font-size:34px;font-weight:700;line-height:1}.decimal-point-off{background:var(--l-line);border-radius:50%;width:6px;height:6px}.decimal-digit{font-family:var(--l-display);color:var(--l-ink);font-size:40px;font-weight:600}.slot-prompt{font-family:var(--l-display);margin:0 0 10px;font-size:17px;font-weight:600}.slot-row{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px;padding:12px;display:flex}.slot{border:2px dashed var(--l-line);cursor:pointer;background:#ffffffb3;border-radius:10px;place-items:center;min-width:62px;min-height:46px;padding:2px;display:grid}.slot[data-target=true]{border-color:var(--l-indigo);background:#4328ee1a}.slot-empty{background:var(--l-line);border-radius:999px;width:40px;height:4px}.decimal-plain{text-align:center;color:var(--l-muted);margin:6px 0 0;font-size:13px;font-weight:700}.zoom-values{height:16px;color:var(--l-indigo-dark);margin-top:8px;font-size:12px;font-weight:800;position:relative}.zoom-values span{white-space:nowrap;position:absolute;top:0;transform:translate(-50%)}.zoom-values span:first-child{left:33%}.zoom-values span:last-child{left:66%}.table-machine{border:2px dashed var(--l-line);background:var(--l-card);border-radius:14px;gap:4px;margin-bottom:10px;padding:14px 16px;transition:border-color .16s,background .16s;display:grid}.table-machine[data-target=true]{border-color:var(--l-indigo);background:#4328ee14}.table-machine-label{letter-spacing:.1em;text-transform:uppercase;color:var(--l-muted);font-size:10.5px;font-weight:800}.table-machine-steps{font-family:var(--l-display);color:var(--l-indigo-dark);margin:0;font-size:20px;font-weight:600}.table-machine-hint{color:var(--l-muted);font-size:12px;font-weight:700}.table-wrap{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;overflow-x:auto}.values-table{border-collapse:collapse;width:100%;font-size:14px}.values-table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--l-muted);border-bottom:2px solid var(--l-line);padding:8px 12px;font-size:10.5px;font-weight:800}.values-table td{font-family:var(--l-display);padding:8px 12px;font-size:16px;font-weight:600}.values-table tr[data-latest=true] td{background:#c7f02a47}.values-change{color:var(--l-indigo-dark)}.values-empty{color:var(--l-muted);font-family:var(--l-body);font-size:12.5px;font-weight:700}.table-arithmetic{color:var(--l-muted);word-spacing:1px;margin:10px 0 0;font-size:12.5px;font-weight:700}.code-panel{gap:6px;display:grid}.code-line{border:2px solid var(--l-line);background:var(--l-card);border-radius:12px;align-items:center;gap:10px;padding:9px 12px;transition:border-color .14s,background .14s,opacity .14s;display:flex}.code-line[data-state=current]{border-color:var(--l-indigo);background:#4328ee0f}.code-line[data-state=done]{opacity:.72;border-color:var(--l-lime)}.code-line[data-target=true]{border-color:var(--l-indigo);background:#c7f02a4d}.code-number{background:var(--l-ink);color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:800;display:grid}.code-line code{color:var(--l-ink);white-space:pre;flex:1;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:13.5px;font-weight:600;overflow-x:auto}.code-play{border:2px solid var(--l-ink);background:var(--l-lime);color:var(--l-ink);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.code-variable{border:2px solid var(--l-ink);background:var(--l-ink);color:#fff;border-radius:12px;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;display:flex}.code-variable-label{opacity:.75;font-size:12px;font-weight:700}.code-variable-value{color:var(--l-lime);font-size:20px;font-weight:800}.code-slot{border-bottom:2px dashed var(--l-indigo);vertical-align:baseline;place-items:center;min-width:30px;margin:0 2px;display:inline-grid}.code-slot[data-target=true]{background:#4328ee1f}.code-slot-button{color:var(--l-indigo-dark);cursor:pointer;background:0 0;border:0;padding:0 4px;font-family:inherit;font-size:13.5px;font-weight:800}.code-output{border:2px solid var(--l-ink);background:var(--l-card);color:var(--l-muted);border-radius:12px;align-items:baseline;gap:10px;margin:10px 0 0;padding:10px 14px;font-size:12.5px;font-weight:700;display:flex}.code-output b{font-family:var(--l-display);color:var(--l-indigo-dark);font-size:18px;font-weight:600}.grid-frame{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;overflow:hidden}.grid-svg{touch-action:none;width:100%;height:auto;display:block}.grid-backdrop{fill:#fffdf8}.grid-line{stroke:#e6e0d4;stroke-width:1px}.grid-axis{stroke:var(--l-ink);stroke-width:1.6px}.grid-tick{font-family:var(--l-body);fill:var(--l-muted);font-size:9px;font-weight:700}.grid-axis-label{font-family:var(--l-display);fill:var(--l-indigo-dark);font-size:10px;font-weight:600}.grid-curve{stroke:var(--l-indigo);stroke-width:2.6px;stroke-linecap:round}.grid-curve-fit{stroke:var(--l-orange)}.grid-point{fill:var(--l-indigo-dark)}.grid-point-b{fill:var(--l-orange)}.grid-cursor{stroke:var(--l-orange);stroke-width:2px;stroke-dasharray:5 5}.grid-region{fill:#4328ee24}.grid-handle{fill:var(--l-lime);stroke:var(--l-ink);stroke-width:2.5px;cursor:grab;outline:none}.grid-handle:focus-visible{stroke:var(--l-indigo);stroke-width:4px}.grid-handle-alt{fill:var(--l-orange)}.grid-handle[data-ok=false]{fill:#fff}.grid-equation{border:2px solid var(--l-ink);background:var(--l-card);text-align:center;font-family:var(--l-display);color:var(--l-ink);border-radius:12px;margin:10px 0 0;padding:8px 12px;font-size:18px;font-weight:600}.k-slider{cursor:grab;touch-action:none;outline:none;height:52px;margin:12px 26px 4px;position:relative}.k-slider:focus-visible{outline:3px solid var(--l-indigo);outline-offset:3px;border-radius:10px}.k-slider-rail{background:var(--l-ink);border-radius:999px;height:5px;position:absolute;inset:24px 0 auto}.k-slider-thumb{border:3px solid var(--l-ink);background:var(--l-indigo);color:#fff;min-width:42px;height:36px;font-family:var(--l-display);border-radius:999px;place-items:center;padding:0 8px;font-size:15px;font-weight:600;display:grid;position:absolute;top:8px;transform:translate(-50%)}.point-checks{gap:5px;margin:10px 0 0;padding:0;list-style:none;display:grid}.point-checks li{border:2px solid var(--l-line);color:var(--l-muted);border-radius:10px;padding:7px 11px;font-size:12.5px;font-weight:700}.point-checks li[data-ok=true]{color:#2f4d09;background:#c7f02a47;border-color:#4b7a12}.shade-wrap{position:relative}.shade-side{background:0 0;border-radius:12px;place-items:center;height:46%;transition:background .14s;display:grid;position:absolute;left:0;right:0}.shade-side-above{top:4%}.shade-side-below{bottom:4%}.shade-side[data-target=true]{outline:3px dashed var(--l-indigo);background:#c7f02a4d}.shade-side span{background:var(--l-ink);color:#fff;letter-spacing:.08em;text-transform:uppercase;opacity:.55;border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:800}.miss-meter{letter-spacing:.06em;text-transform:uppercase;color:var(--l-muted);align-items:center;gap:10px;margin:12px 0 0;font-size:11px;font-weight:800;display:flex}.miss-meter-track{border:2px solid var(--l-ink);background:#fff;border-radius:999px;flex:1;height:12px;overflow:hidden}.miss-meter-fill{background:var(--l-orange);height:100%;transition:width .12s;display:block}.miss-meter b{font-family:var(--l-display);color:var(--l-ink);font-size:15px}.curve-frame{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;overflow:hidden}.curve-line{stroke-width:3px;stroke-linecap:round;fill:none}.curve-line-a{stroke:var(--l-indigo)}.curve-line-b{stroke:var(--l-orange)}.curve-track{cursor:grab;touch-action:none;outline:none;height:48px;margin:10px 22px 6px;position:relative}.curve-track:focus-visible{outline:3px solid var(--l-indigo);outline-offset:3px;border-radius:10px}.curve-track-rail{background:var(--l-ink);border-radius:999px;height:5px;position:absolute;inset:22px 0 auto}.curve-track-thumb{border:3px solid var(--l-ink);background:var(--l-ink);color:#fff;min-width:38px;height:34px;font-family:var(--l-display);border-radius:999px;place-items:center;font-size:14px;font-weight:600;display:grid;position:absolute;top:6px;transform:translate(-50%)}.curve-values{gap:6px;margin-top:10px;display:grid}.curve-values p{color:var(--l-muted);align-items:center;gap:8px;margin:0;font-size:12.5px;font-weight:700;display:flex}.curve-values p span{border-radius:3px;flex:none;width:12px;height:12px}.curve-values p span[data-tone=a]{background:var(--l-indigo)}.curve-values p span[data-tone=b]{background:var(--l-orange)}.curve-values b{font-family:var(--l-display);color:var(--l-ink);margin-left:auto;font-size:17px;font-weight:600}.grid-curve-other{stroke:var(--l-muted);stroke-width:2px;stroke-dasharray:6 5;opacity:.75}.grid-rise-run{fill:#ff7a4529;stroke:var(--l-orange);stroke-width:1.5px;stroke-dasharray:4 4}.grid-rise-run-label{text-align:center;color:var(--l-muted);margin:8px 0 0;font-size:12px;font-weight:700}.grid-rise-run-label b{font-family:var(--l-display);color:var(--l-orange);font-size:14px}.shape-frame{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;overflow:hidden}.shape-body{fill:#4328ee29;stroke:var(--l-indigo);stroke-width:2.5px}.shape-body-alt{fill:#ff7a452e;stroke:var(--l-orange)}.shape-label{font-family:var(--l-display);fill:var(--l-ink);font-size:13px;font-weight:600}.shape-dim{stroke:var(--l-ink);stroke-width:1.6px;stroke-dasharray:4 4}.shape-square{fill:#4328ee1a;stroke:var(--l-indigo);stroke-width:1.4px}.shape-square-b{fill:#ff7a4524;stroke:var(--l-orange)}.shape-square-c{fill:#c7f02a4d;stroke:#4b7a12}.shape-cut{stroke:var(--l-ink);stroke-width:2px;stroke-dasharray:6 5}.shape-readout{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;gap:6px;margin-top:10px;padding:12px 14px;display:grid}.shape-readout p{color:var(--l-muted);align-items:baseline;gap:8px;margin:0;font-size:12.5px;font-weight:700;display:flex}.shape-readout b{font-family:var(--l-display);color:var(--l-ink);margin-left:auto;font-size:17px;font-weight:600}.shape-readout p[data-tone=note]{color:#35334a;font-weight:600;display:block}.unit-bar{border:2px solid var(--l-ink);background:var(--l-card);border-radius:14px;justify-content:center;align-items:center;height:62px;padding:0 14px;transition:border-color .16s;display:flex;position:relative;overflow:hidden}.unit-bar[data-target=true]{border-color:var(--l-indigo)}.unit-bar-fill{background:var(--l-lime);border-radius:8px;width:62%;position:absolute;inset:8px auto 8px 8px}.unit-bar-value{background:var(--l-ink);color:#fff;font-family:var(--l-display);border-radius:999px;padding:6px 12px;font-size:17px;font-weight:600;position:relative}.solid-stage{justify-items:center;gap:6px;display:grid}.solid-cylinder{border:2px dashed var(--l-line);background:var(--l-card);border-radius:14px;place-items:center;padding:10px 14px;transition:border-color .16s,background .16s;display:grid}.solid-cylinder[data-target=true]{border-color:var(--l-indigo);background:#c7f02a3d}.solid-svg{width:150px;height:auto;display:block}.solid-body{fill:#4328ee0f;stroke:var(--l-ink);stroke-width:2.2px}.solid-top,.solid-bottom{fill:#4328ee1a;stroke:var(--l-ink);stroke-width:2.2px}.solid-fill{fill:var(--l-indigo);opacity:.85;transition:y .26s,height .26s}.solid-count{letter-spacing:.08em;text-transform:uppercase;color:var(--l-muted);margin:0;font-size:11px;font-weight:800}.k-slider-label{letter-spacing:.08em;text-transform:uppercase;color:var(--l-muted);margin:10px 0 -6px;font-size:10.5px;font-weight:800}.budget-head{border:2px solid var(--l-ink);background:var(--l-card);letter-spacing:.06em;text-transform:uppercase;color:var(--l-muted);border-radius:12px;align-items:baseline;gap:10px;margin-bottom:10px;padding:10px 14px;font-size:11px;font-weight:800;display:flex}.budget-head b{font-family:var(--l-display);color:var(--l-ink);font-size:19px;font-weight:600}.budget-head span[data-tone=good]{color:#2f4d09;margin-left:auto}.budget-head span[data-tone=warn]{color:#a35b00;margin-left:auto}.budget-head span[data-tone=bad]{color:#b3261e;margin-left:auto}.budget-groups{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;display:grid}.budget-card{border:2px solid var(--l-ink);background:var(--l-card);border-radius:12px;gap:2px;padding:8px 10px;transition:border-color .16s,background .16s;display:grid}.budget-card[data-target=true]{border-color:var(--l-indigo);background:#4328ee14}.budget-card-label{letter-spacing:.08em;text-transform:uppercase;color:var(--l-muted);font-size:10.5px;font-weight:800}.budget-card-value{font-family:var(--l-display);color:var(--l-ink);font-size:20px;font-weight:600}.budget-card-choice{color:var(--l-muted);font-size:11.5px;font-weight:700}.budget-token{border:2px solid var(--l-ink);background:var(--l-lime);color:var(--l-ink);cursor:grab;touch-action:none;box-shadow:3px 3px 0 var(--l-ink);text-align:left;border-radius:10px;gap:1px;padding:7px 12px;font-size:11.5px;font-weight:700;display:grid}.budget-token b{font-family:var(--l-display);font-size:14px;font-weight:600}.budget-token[aria-pressed=true]{box-shadow:1px 1px 0 var(--l-ink);transform:translate(2px,2px)}.budget-token-chosen{background:var(--l-card);box-shadow:none;opacity:.5;cursor:default}.grid-frame,.curve-frame,.shape-frame{max-width:440px;margin-left:auto;margin-right:auto}.token-dock{flex-wrap:wrap}.build-head{border:2px solid var(--l-ink);background:var(--l-card);letter-spacing:.06em;text-transform:uppercase;color:var(--l-muted);border-radius:12px;flex-wrap:wrap;gap:10px;margin-bottom:10px;padding:9px 12px;font-size:11px;font-weight:800;display:flex}.build-head b{font-family:var(--l-display);color:var(--l-ink);font-size:16px;font-weight:600}.build-head span[data-tone=bad]{color:#b3261e}.program-list{border:2px dashed var(--l-line);background:var(--l-card);border-radius:14px;gap:6px;min-height:96px;padding:10px;transition:border-color .16s,background .16s;display:grid}.program-list[data-target=true]{border-color:var(--l-indigo);background:#4328ee14}.program-empty{color:var(--l-muted);place-items:center;font-size:12.5px;font-weight:700;display:grid}.program-row{border:2px solid var(--l-line);background:#fff;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.program-row code{color:var(--l-ink);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px;font-weight:600}.program-value{font-family:var(--l-display);color:var(--l-indigo-dark);margin-left:auto;font-size:16px;font-weight:600}.program-remove{border:2px solid var(--l-ink);background:var(--l-card);width:24px;height:24px;color:var(--l-ink);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:13px;font-weight:800;display:grid}.build-final{border:2px solid var(--l-ink);background:var(--l-ink);color:#fff;letter-spacing:.06em;text-transform:uppercase;border-radius:12px;align-items:baseline;gap:10px;margin-top:10px;padding:10px 14px;font-size:11px;font-weight:800;display:flex}.build-final b{font-family:var(--l-display);color:var(--l-lime);margin-left:auto;font-size:22px;font-weight:600}.build-final b[data-ok=true]{color:#c7f02a}.build-typed{border:2px dashed var(--l-line);background:var(--l-card);border-radius:14px;gap:8px;margin-top:14px;padding:12px 14px;display:grid}.build-typed label{letter-spacing:.06em;text-transform:uppercase;color:var(--l-ink-soft);font-size:11px;font-weight:800}.build-typed textarea{border:2px solid var(--l-ink);width:100%;color:var(--l-ink);resize:vertical;background:#fff;border-radius:10px;padding:10px 12px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:13px;line-height:1.5}.build-typed .learn-btn{justify-self:start}.typed-result{gap:4px;margin:2px 0 0;padding:0;list-style:none;display:grid}.typed-result li{border:1px solid var(--l-line);background:#fff;border-radius:8px;align-items:baseline;gap:8px;padding:6px 10px;display:flex}.typed-result li[data-tone=bad]{background:#fff4f1;border-color:#d8462f}.typed-result code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px;font-weight:600}.typed-result b{font-family:var(--l-display);margin-left:auto;font-size:17px}.typed-result span{color:#8f2d18;font-size:12.5px}.grid-curve-b{stroke:var(--l-orange)}
