:root{--paper:#fff8f2;--paper-2:#fff;--ink:#3b2d4a;--ink-soft:#6a5a78;--line:#3b2d4a;--brick:#ff6b6b;--brick-2:#ffb4a2;--teal:#1f9d8a;--teal-2:#b8f3d8;--sky:#7ec8f5;--sun:#ffe566;--mint:#7ed9b8;--lilac:#c9b6ff;--peach:#ffc29e;--coral:#ff8fab;--ok:#2f9e5c;--no:#e04848;--brick-ink:#c62828;--teal-ink:#14705f;--shadow:0 6px 0 #3b2d4a14;--sans:"Chiron GoRound TC", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--display:"Huninn", "Chiron GoRound TC", "Noto Sans TC", sans-serif;--serif:var(--sans);--round:28px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}html{overflow-x:hidden}#root{min-height:100%}body{font-family:var(--sans);color:var(--ink);-webkit-text-size-adjust:100%;background:radial-gradient(at 8% -4%,#ff8fab 0 140px,#0000 141px),radial-gradient(at 96% 6%,#c9b6ff 0 170px,#0000 171px),radial-gradient(at -8% 62%,#7ed9b8 0 200px,#0000 201px),radial-gradient(at 108% 88%,#7ec8f5 0 220px,#0000 221px),radial-gradient(at 70% 40%,#ffe566 0 90px,#0000 91px),#f4f1ff;font-size:20px;font-weight:700;line-height:1.7}button,input{font:inherit}.shell{width:100%;max-width:860px;padding:20px max(16px, env(safe-area-inset-right)) 80px max(16px, env(safe-area-inset-left));margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:28px;display:flex}.brand{font-family:var(--display);letter-spacing:0;cursor:pointer;box-shadow:var(--shadow);background:#fff;border:0;border-radius:999px;align-items:center;gap:8px;min-width:0;padding:4px 14px 4px 6px;font-size:18px;font-weight:800;display:inline-flex}.brand .mascot{animation:none}.topbar nav{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.pwa-update-bubble{z-index:200;top:max(16px, env(safe-area-inset-top));max-width:calc(100vw - 32px);color:var(--ink);border:3px solid var(--ink);font-family:var(--display);background:#ffe566;border-radius:24px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin:0;padding:14px 16px 14px 18px;font-size:20px;font-weight:800;line-height:1.2;animation:.35s ease-out pwa-update-pop;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px #3b2d4a2e}.pwa-update-bubble button{border:3px solid var(--ink);color:var(--ink);font-family:var(--display);cursor:pointer;background:#fff;border-radius:999px;padding:8px 18px;font-size:18px;font-weight:800}@keyframes pwa-update-pop{0%{opacity:0;transform:translate(-50%)translateY(-16px)scale(.9)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}:-webkit-any(html:fullscreen .shell,html:-webkit-full-screen .shell){background:var(--paper,#f4efe4);max-width:960px;min-height:100%}:is(html:fullscreen .shell,html:fullscreen .shell){background:var(--paper,#f4efe4);max-width:960px;min-height:100%}.fullscreen-guide{z-index:40;border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:16px;margin:0;padding:10px 14px;position:fixed;top:12px;left:50%;transform:translate(-50%)}.topbar nav button,.back,.btn.ghost{border:2px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:none;background:#fff;border-radius:999px;padding:6px 14px}.topbar nav .sound-toggle{place-items:center;width:38px;height:38px;padding:0;display:grid}.topbar nav .sound-toggle.is-off{background:#ffc2d4}.page-head h1,.lesson h1,.card h2,.gallery h2,.hero-copy h1,.focus-card strong,.pub-name,.course-unit-title strong{font-family:var(--display);margin:0 0 8px;font-weight:800;line-height:1.25}.page-head h1{font-size:34px}.hero-stage{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:32px;grid-template-columns:1.05fr .95fr;gap:0;min-width:0;max-width:100%;min-height:260px;margin:4px 0 28px;display:grid;overflow:hidden}.hero-copy,.hero-art{min-width:0}.hero-copy{flex-direction:column;justify-content:center;padding:28px 24px 32px;display:flex}.hero-copy h1{margin:0 0 10px;font-size:36px}.hero-art{background:radial-gradient(circle at 16% 86%,#ff8fab 0 56px,#0000 57px),radial-gradient(circle at 88% 12%,#ffe566 0 64px,#0000 65px),linear-gradient(165deg,#7ec8f5 0%,#b8f3d8 100%);justify-content:center;align-items:flex-end;min-height:220px;display:flex;position:relative}.hero-doodle{object-fit:contain;object-position:center bottom;width:100%;max-width:280px;height:250px}.hero-mascot-pin{position:absolute;bottom:10px;left:10px}.split-head{grid-template-columns:1fr 180px;align-items:end;gap:12px;margin-bottom:8px;display:grid}.head-doodle{object-fit:contain;object-position:bottom center;width:180px;max-width:100%;height:120px}.doodle-img{min-width:0;max-width:100%;display:block}.play-banner{border:3px solid var(--ink);box-shadow:var(--shadow);background:#ffc2d4;border-radius:28px;grid-template-columns:1fr 160px;align-items:center;gap:8px;margin:8px 0 20px;padding:18px 12px 18px 22px;display:grid}.play-banner h2{margin:0 0 6px}.play-banner p{margin:0}.banner-doodle{object-fit:contain;width:160px;height:120px}.section-label{margin:8px 0;font-weight:700}.teacher-link{text-align:right}.linkish{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;font-size:14px;text-decoration:underline}.eyebrow{color:var(--teal-ink);letter-spacing:.08em;margin:0 0 8px;font-size:15px;font-weight:700}.lede,.card p,.lesson-body p{color:var(--ink);font-size:21px}.publisher-grid{grid-template-columns:1fr 1fr;gap:12px;margin:24px 0;display:grid}.pub-card,.card,.item-card,.unit-row,.concept-row,.focus-card,.hero-stage,.play-banner{background:var(--paper-2);border:3px solid var(--ink);box-shadow:var(--shadow);min-width:0;max-width:100%;transition:transform .15s}.pub-card{text-align:left;cursor:pointer;border-width:3px;border-radius:22px;flex-direction:column;gap:4px;padding:18px;display:flex}.pub-kangxuan{background:#fff1d6}.pub-hanlin{background:#dcecff}.pub-nani{background:#ddf7e4}.pub-card.alt{background:#efe6ff}.pub-card:hover{transform:translateY(-3px)}.pub-mark{width:36px;height:42px;color:var(--ink)}.pub-name{font-family:var(--display);font-size:24px;font-weight:800}.pub-card.is-mine{outline:3px solid var(--ink)}.pub-meta{color:var(--ink-soft);font-size:15px}.card{border-radius:16px;margin:16px 0;padding:20px}.card.highlight{border-color:var(--brick-2)}.btn{color:#fff;cursor:pointer;font-family:var(--display);background:linear-gradient(#6c7cff,#5463f0);border:0;border-radius:999px;margin-top:12px;padding:14px 24px;font-size:19px;font-weight:800;box-shadow:0 4px #3d4ac2}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.ghost{background:var(--paper-2);color:var(--ink);box-shadow:none}.unit-list,.concept-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.unit-row,.concept-row{text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.unit-row:disabled,.concept-row:disabled{cursor:default;opacity:.72}.unit-no{font-family:var(--sans);color:var(--brick);width:2.2em;font-weight:800}.unit-body,.concept-row span:first-child{flex-direction:column;flex:1;display:flex}.unit-body em,.concept-row em{color:var(--ink-soft);font-size:13px;font-style:normal}.pill{background:#eee6d6;border-radius:999px;padding:3px 10px;font-size:12px}.ready .pill{background:var(--teal-2);color:var(--teal)}.tabs{flex-wrap:wrap;gap:8px;margin:8px 0 20px;display:flex}.tabs button{border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:6px 14px}.tabs button:first-child.is-on{color:var(--ink);border-color:var(--ink);background:#7ec8f5}.tabs button.is-on{color:var(--ink);border-color:var(--ink);background:#ff8fab}.back{cursor:pointer;text-align:left;max-width:100%;margin-bottom:16px}.lesson-body h2,.miscon h2{font-family:var(--display);margin:28px 0 10px;font-size:26px;font-weight:800}.callout{border:3px solid var(--ink);border-radius:16px;gap:4px;margin:16px 0;padding:14px 16px;font-size:21px;display:grid}.callout.tone-watch{background:#ffc2d4}.callout.tone-tip{background:#b8f3d8}.media,.split-compare figure{margin:16px 0}.media figcaption,.split-compare figcaption{color:var(--ink-soft);margin-top:8px;font-size:17px}.media-circle{max-width:none}.frac-circle-wrap{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.frac-circle{width:200px;height:200px;display:block}.pie-crust{fill:#f0b35a;stroke:var(--ink);stroke-width:3px}.slice-on{fill:#ff6b6b;stroke:var(--ink);stroke-width:2.4px}.slice-off{fill:#fff7e8;stroke:var(--ink);stroke-width:2.4px}.slice-ring{fill:none;stroke:var(--ink);stroke-width:2.5px}.slice-num{font-family:var(--sans);fill:var(--ink);pointer-events:none;font-weight:800}.slice-num.is-on{fill:#fff}.frac-pie-badge{border:3px solid var(--ink);min-width:120px;box-shadow:var(--shadow);background:#fff;border-radius:20px;gap:2px;padding:10px 14px;display:grid}.frac-pie-badge p{margin:0;font-size:15px}.frac-pie-badge strong{font-size:20px}.split-compare{grid-template-columns:1fr 1fr;gap:16px;display:grid}.split-compare figcaption{gap:2px;display:grid}.pair-wrap,.wholes{margin:16px 0}.pair-caption{color:var(--ink-soft);margin:8px 0 0;font-size:17px}.book{border:4px solid var(--ink);background:#fff;border-radius:32px 32px 24px 24px;min-width:0;max-width:100%;margin-top:4px;overflow:hidden;box-shadow:6px 8px #3b2d4a29}.story-band{border-bottom:3px solid var(--ink);background:radial-gradient(circle at 10% 88%,#ff8fab 0 64px,#0000 65px),radial-gradient(circle at 90% 10%,#7ec8f5 0 70px,#0000 71px),linear-gradient(#ffe566 0%,#fff3b8 62%,#fff 100%);justify-content:center;align-items:flex-end;min-height:220px;padding:12px 12px 0;display:flex;overflow:hidden}.story-band.is-sun{background:radial-gradient(circle at 10% 88%,#ff8fab 0 64px,#0000 65px),radial-gradient(circle at 90% 10%,#7ec8f5 0 70px,#0000 71px),linear-gradient(#ffe566 0%,#fff3b8 62%,#fff 100%)}.story-band.is-peach{background:radial-gradient(circle at 88% 12%,#ffe566 0 56px,#0000 57px),radial-gradient(circle at 8% 90%,#c9b6ff 0 60px,#0000 61px),linear-gradient(#ffb089 0%,#ffe1d2 62%,#fff 100%)}.story-band.is-mint{background:radial-gradient(circle at 14% 16%,#ffe566 0 56px,#0000 57px),radial-gradient(circle at 90% 88%,#ff8fab 0 64px,#0000 65px),linear-gradient(#5fd0b0 0%,#d4f8ea 62%,#fff 100%)}.story-band.is-sky{background:radial-gradient(circle at 12% 80%,#ffc29e 0 60px,#0000 61px),radial-gradient(circle at 92% 18%,#c9b6ff 0 58px,#0000 59px),linear-gradient(#7ec8f5 0%,#d8f1ff 62%,#fff 100%)}.story-band.is-lilac{background:radial-gradient(circle at 18% 20%,#7ed9b8 0 58px,#0000 59px),radial-gradient(circle at 88% 84%,#ffe566 0 64px,#0000 65px),linear-gradient(#c9b6ff 0%,#ece4ff 62%,#fff 100%)}.story-band.is-coral{background:radial-gradient(circle at 10% 18%,#7ec8f5 0 56px,#0000 57px),radial-gradient(circle at 90% 86%,#b8f3d8 0 64px,#0000 65px),linear-gradient(#ff8fab 0%,#ffd4e0 62%,#fff 100%)}.story-doodle{object-fit:contain;object-position:center bottom;width:100%;max-width:360px;height:208px}.book-inner{padding:18px 22px 26px}.book-inner .page-head{margin-bottom:4px}.book-inner .tabs{margin-top:10px}.book .item-card.play,.book .finish-card{box-shadow:none;background:0 0;border:0;margin:8px 0 0;padding:0}.page-nav{border-top:3px solid var(--ink);background:#b8f3d8;justify-content:space-between;align-items:stretch;gap:12px;margin:0;padding:12px 16px 16px;display:flex}.book.is-sun .page-nav{background:#c9b6ff}.book.is-peach .page-nav{background:#7ec8f5}.book.is-mint .page-nav{background:#ffe566}.book.is-sky .page-nav{background:#ffc2d4}.book.is-lilac .page-nav{background:#7ed9b8}.book.is-coral .page-nav{background:#ffe566}.page-turn{border:3px solid var(--ink);color:var(--ink);cursor:pointer;min-width:0;box-shadow:3px 3px 0 var(--ink);background:#fff;border-radius:18px;flex-direction:column;flex:0 auto;align-items:flex-start;gap:2px;padding:10px 16px;font-weight:800;display:flex}.page-turn-next{text-align:right;align-items:flex-end;margin-left:auto}.page-turn-title{color:var(--ink-soft);font-size:14px;font-weight:600}.page-turn-spacer{flex:1;min-width:0}.page-nav.is-quiet .page-turn{box-shadow:none;background:#fff;border-width:2px;padding:8px 14px}.sub-count{color:var(--ink-soft);margin-top:4px;font-size:13px;display:block}.frac-bar{border:3px solid var(--ink);background:#fff;border-radius:14px;max-width:100%;height:64px;display:flex;overflow:hidden}.frac-cell{border:0;border-right:2px solid var(--ink);background:#fff;min-width:0;padding:0}.frac-cell:last-child{border-right:0}.frac-cell.is-on{background:var(--brick)}.frac-cell:disabled{pointer-events:none;opacity:1;color:inherit}.frac-bar.is-interactive .frac-cell{cursor:pointer}.frac-cell.is-unequal:nth-child(odd){background:#ffe0c2}.frac-cell.is-unequal.is-on{background:var(--brick)}.frac{vertical-align:middle;font-family:var(--serif);flex-direction:column;align-items:center;margin:0 4px;font-weight:700;line-height:1;display:inline-flex}.frac-rule{background:var(--ink);width:1.4em;height:2px;margin:3px 0;display:block}.frac-num,.frac-den{font-variant-numeric:tabular-nums}.frac-sm{font-size:14px}.frac-md{font-size:22px}.frac-lg{font-size:34px}.frac-notation{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:16px;margin:16px 0;padding:16px;display:grid}.frac-notation-glyph{justify-items:center;gap:6px;display:grid}.frac-tag{letter-spacing:.06em;font-size:12px;font-weight:700}.frac-tag-num{color:var(--brick)}.frac-tag-den{color:var(--teal)}.builder{background:var(--paper-2);border:1px dashed var(--brick);border-radius:16px;margin:16px 0;padding:16px}.builder-status.is-ok{color:var(--ok);font-weight:700}.builder-status.is-warn{color:var(--no);font-weight:700}.miscon ul{gap:10px;padding:0;list-style:none;display:grid}.miscon .speak-line-body{gap:4px;display:grid}.miscon .speak-line-body strong{display:block}.miscon li{border:3px solid var(--ink);border-radius:16px;gap:4px;padding:12px 14px;display:grid}.miscon li:nth-child(3n+1){background:#ffe566}.miscon li:nth-child(3n+2){background:#c9b6ff}.miscon li:nth-child(3n+3){background:#b8f3d8}.item-card{margin:14px 0}.item-card.play{border-width:3px;border-radius:22px;padding:20px}.progress-dots{gap:8px;margin:0 0 14px;display:flex}.dot{background:#ead9b8;border-radius:50%;width:12px;height:12px}.dot.is-now{background:var(--brick);transform:scale(1.2)}.dot.is-done{background:var(--ok)}.finish-card{text-align:center;background:var(--paper-2);border:3px solid var(--line);border-radius:24px;padding:28px 16px}.star-row{justify-content:center;gap:8px;margin-top:12px;display:flex}.star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#ead9b8;width:18px;height:18px}.star.on{background:#f0b429}.finish-doodle{object-fit:contain;width:min(320px,100%);height:180px;margin:0 auto}.item-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.item-actions>.speak-line{flex:100%}.item-card header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.review-card-tools{align-items:center;gap:8px;display:flex}.item-no{font-family:var(--serif);color:var(--brick-ink);font-weight:700}.item-prompt{border:3px solid var(--ink);background:#eef0ff;border-radius:16px;margin:0 0 8px;padding:14px 16px;font-size:20px;font-weight:800}.stem-visual{max-width:420px;margin:8px 0 12px}.level{border:2px solid var(--ink);background:#eee6d6;border-radius:999px;padding:2px 8px;font-size:15px}.level-recognize{background:#bfe9fb}.level-procedure{background:#ffe566}.level-apply{background:#b8f3d8}.level-misconception{background:#ffc2d4}.choices{gap:8px;margin:12px 0;display:grid}.choice{text-align:left;border:3px solid var(--ink);cursor:pointer;background:#fff;border-radius:16px;gap:8px;min-width:0;max-width:100%;min-height:56px;padding:12px;font-size:20px;font-weight:800;display:grid}.choice:nth-child(4n+1){background:#e8fff6}.choice:nth-child(4n+2){background:#fff1e6}.choice:nth-child(4n+3){background:#eef0ff}.choice:nth-child(4n+4){background:#ffeaf2}.choice.is-picked{outline:3px solid var(--teal);outline-offset:0}.choice.is-right{background:#b8f3d8}.choice.is-wrong{background:#ffc2d4}.feedback.ok{color:var(--ok)}.feedback.no{color:var(--no)}.fill-frac{justify-items:center;gap:6px;margin:12px 0;display:inline-grid}.fill-frac input{text-align:center;border:1px solid var(--line);background:#fff;border-radius:8px;width:64px;padding:8px}.fill-bar{background:var(--ink);width:64px;height:3px}.gallery .row{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.muted{color:var(--ink-soft);font-size:16px}.num-line{width:100%;height:72px}.num-line-axis,.num-line-tick{stroke:var(--ink);stroke-width:2px}.num-line-label{fill:var(--ink);font-size:6px;font-family:var(--sans)}.book-hint{color:var(--ink-soft);margin:8px 0 0;font-size:17px;font-weight:700}.speak-btn{border:3px solid var(--ink);width:40px;height:40px;color:var(--ink);cursor:pointer;background:#ffe566;border-radius:999px;flex-shrink:0;place-items:center;margin:0;padding:0;display:grid}.speak-btn:disabled{opacity:.45;cursor:not-allowed}.speak-btn.is-on{color:#fff;background:#ff8fab}.speak-btn.compact{border-width:2px;width:30px;height:30px}.speak-btn.compact svg{width:16px;height:16px}.speak-all{border:3px solid var(--ink);color:var(--ink);font-family:var(--display);cursor:pointer;background:#ffe566;border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:6px 16px 6px 10px;font-size:17px;font-weight:800;line-height:1.2;display:inline-flex}.speak-all:disabled{opacity:.45;cursor:not-allowed}.speak-all.is-on{color:#fff;background:#ff8fab}.page-head-main{align-items:flex-start;gap:8px;display:flex}.page-head-main .speak-line{flex:1;min-width:0;margin:0}.page-head-main>.speak-btn{margin-top:4px}.speak-line{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px;margin:10px 0;display:grid}.speak-line-tools{flex-direction:column;align-items:center;gap:4px;display:flex}.ask-mark{border:2px solid var(--ink);width:30px;height:30px;color:var(--ink);cursor:pointer;background:#fff8e8;border-radius:999px;flex-shrink:0;place-items:center;margin:0;padding:0;display:grid;overflow:hidden}.ask-mark .mascot{width:46px;height:46px;margin:-8px 0 0 -12px;animation:none;display:block}.ask-mark.is-on{background:#e0d4ff}.speak-line.is-asked{outline-offset:4px;background:#f6f0ff;border-radius:16px;outline:3px solid #8b74d6}.speak-line.is-reading{outline-offset:4px;background:#fff7d6;border-radius:16px;outline:3px solid #ff8fab}.speak-line-body h1,.speak-line-body h2,.speak-line-body p{margin-top:0}.speak-line-body h2{margin-bottom:0}.speak-line.callout{align-items:start}.speak-line.callout .speak-line-body{gap:4px;display:grid}.speak-line .item-prompt{margin:0}.item-card>.speak-btn,.finish-card>.speak-btn{margin:8px 0 4px}.tts-box{border-top:2px dashed #3b2d4a33;margin:16px 0 8px;padding-top:12px}.tts-note{color:var(--ink-soft);margin:0 0 10px;font-size:16px;font-weight:700;line-height:1.55}.zhuyin-preview-line .zhuyin{color:var(--ink);font-weight:800}.zhuyin .zy-unit{vertical-align:middle;white-space:nowrap;grid-template-columns:max-content max-content max-content;align-items:center;column-gap:.04em;margin:.04em .18em .04em 0;display:inline-grid}.zhuyin .zy-han{color:var(--ink);line-height:1}.zhuyin .zy-col{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.01em;color:#08544a;font-family:Noto Sans Bopomofo,Noto Sans TC,sans-serif;font-size:7.5px;font-style:normal;font-weight:500;line-height:1.05}.zhuyin .zy-tone{color:#08544a;font-family:Noto Sans Bopomofo,Noto Sans TC,sans-serif;font-size:7px;font-weight:600;line-height:1}.zhuyin-on h1{line-height:1.85}.zhuyin-on h1 .zy-col{font-size:8.5px}.zhuyin-on h1 .zy-tone{font-size:8px}.zhuyin-on .onboard-card h1{line-height:1.9}.zhuyin-on .lede,.zhuyin-on p,.zhuyin-on .item-prompt,.zhuyin-on figcaption,.zhuyin-on .callout,.zhuyin-on .builder-prompt,.zhuyin-on .feedback{font-size:21px;line-height:2.05}.zhuyin-on .focus-card strong{font-size:18px;line-height:1.35}.zhuyin-on .focus-card em{font-size:15px;line-height:1.4}.miscon .speak-line{margin:0}.course-list{gap:10px;margin:8px 0 24px;display:grid}.course-unit{border:3px solid var(--ink);background:#fff;border-radius:20px;padding:12px 14px}button.course-unit{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}button.course-unit:disabled{cursor:default;opacity:.8}button.course-unit:hover:not(:disabled){transform:translateY(-2px)}.course-unit.is-open{background:#fffef2}.course-unit.is-later{background:#f3efff}.course-unit-head{align-items:center;gap:10px;display:flex}.course-no{font-family:var(--display);color:var(--brick-ink);white-space:nowrap;font-size:15px;font-weight:800}.course-unit-title{flex-direction:column;flex:1;min-width:0;display:flex}.course-unit-title strong{margin:0;font-size:22px}.course-unit-title em{color:var(--ink-soft);font-size:16px;font-style:normal}.course-unit .focus-grid{margin:12px 0 4px}.course-unit .btn{margin-top:10px}.unit-foci{gap:8px;margin:8px 0 2px}.unit-foci .concept-row{box-shadow:none;background:#fff;border-width:2px;border-radius:16px}.focus-note{color:var(--ink-soft);margin:10px 0 0;font-size:17px;font-weight:700}.page-head.with-doodle{align-items:center;gap:16px;display:flex}.focus-grid{flex-direction:column;gap:8px;margin:12px 0 24px;display:flex}.focus-card{text-align:left;border:3px solid var(--ink);cursor:pointer;box-shadow:var(--shadow);background:#fff;border-radius:16px;grid-template-columns:auto 48px minmax(0,1fr) auto;align-items:center;gap:8px 10px;padding:8px 12px;display:grid;overflow:hidden}.focus-card:hover:not(:disabled){transform:translateY(-1px)}.focus-no{white-space:nowrap;min-width:max-content;color:var(--ink);font-size:15px;font-weight:800;line-height:1.2}.focus-art{background:#ffffff8c;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.focus-art-svg{width:40px;height:40px}.focus-body{flex-direction:column;gap:2px;min-width:0;padding:0;display:flex}.focus-card strong{margin:0;font-size:20px;font-weight:800}.focus-card em{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-style:normal;overflow:hidden}.focus-card.tone-sun{background:#ffe566}.focus-card.tone-peach{background:#ffc29e}.focus-card.tone-mint{background:#b8f3d8}.focus-card.tone-sky{background:#bfe9fb}.focus-card.tone-lilac{background:#e0d4ff}.focus-card.tone-coral{background:#ffc2d4}.focus-card.is-done .pill{background:var(--teal-2);color:var(--teal)}.focus-card.is-locked{filter:saturate(.35);cursor:default}.focus-card:disabled{cursor:default}.course-unit.is-clear{background:#e8fff6}.unit-clear{text-align:center;border:3px solid var(--ink);box-shadow:var(--shadow);background:#b8f3d8;border-radius:24px;margin:0 0 18px;padding:18px 16px 16px}.unit-clear h2{font-family:var(--display);margin:4px 0 8px;font-size:28px}.unit-clear p{margin:0}.unit-clear .btn{margin-top:10px}.focus-card .pill{white-space:nowrap;align-self:center;margin:0}.later-block{margin-top:8px}.chip-row{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.chip{border:2px solid var(--ink);background:#fff;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700}.chip.tone-sun{background:#ffe566}.chip.tone-peach{background:#ffc29e}.chip.tone-mint{background:#b8f3d8}.chip.tone-sky{background:#bfe9fb}.play-card{border-width:4px;border-color:var(--ink);background:#ffc2d4}.inline-doodle{vertical-align:middle;color:#ff8fab;width:22px;height:22px;margin-right:6px;display:inline-block}.inline-doodle.crayon{color:#6c7cff;width:12px;height:28px}.concept-list.dim{opacity:.72}.mascot{animation:2.8s ease-in-out infinite mascot-pop}@keyframes mascot-pop{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.choice .frac-circle{width:148px;height:148px}@media (width<=640px){.shell{padding:12px max(12px, env(safe-area-inset-right)) 56px max(12px, env(safe-area-inset-left))}.topbar{margin-bottom:12px}.brand{padding:3px 10px 3px 4px;font-size:15px}.topbar nav button,.back{padding:6px 12px;font-size:14px}.topbar nav .sound-toggle{width:36px;height:36px;padding:0}.publisher-grid,.split-compare,.div-pair,.focus-grid,.hero-stage,.split-head,.play-banner{grid-template-columns:1fr}.hero-copy{padding:20px 16px 16px}.hero-copy h1,.page-head h1,.lesson h1{font-size:28px}.hero-art{min-height:150px}.hero-doodle{max-width:220px;height:150px}.head-doodle{width:120px;height:84px}.book{border-width:3px;border-radius:22px 22px 18px 18px;box-shadow:4px 5px #3b2d4a29}.story-band{min-height:108px;padding-top:4px}.story-doodle{width:220px;max-width:100%;height:100px}.book-inner{padding:12px 12px 16px}.page-nav{gap:8px;padding:10px}.page-turn{flex:42%;padding:8px 10px}.page-turn-title{font-size:13px}.frac-bar{height:52px}.frac-circle{width:160px;height:160px}.choice{padding:10px;font-size:20px}.choice .frac-circle{width:120px;height:120px}.item-prompt{padding:12px;font-size:20px}.focus-card{grid-template-columns:auto 40px minmax(0,1fr) auto;gap:6px 8px;padding:6px 10px}.focus-art{width:40px;height:40px}.focus-art-svg{width:32px;height:32px}.focus-no{font-size:14px}.focus-card strong{font-size:18px}.focus-card em{font-size:15px}.frac-notation{grid-template-columns:1fr}.btn{width:100%}.onboard-card h1{font-size:26px}.score-big{font-size:52px}}.onboard{justify-items:center;gap:16px;width:100%;display:grid}.onboard-dots{margin:0 0 4px}.onboard-card{border:3px solid var(--ink);width:100%;box-shadow:var(--shadow);text-align:left;background:#fff;border-radius:28px;padding:28px 22px 24px}.onboard-card>.mascot{margin-bottom:8px}.onboard-card h1{font-family:var(--display);margin:4px 0 10px;font-size:30px;line-height:1.25}.onboard-points{color:var(--ink-soft);gap:6px;margin:0 0 16px;padding-left:1.2em;font-size:16px;display:grid}.onboard-pubs{gap:10px;margin:14px 0 8px;display:grid}.onboard-name{gap:6px;margin:16px 0 8px;font-size:15px;font-weight:800;display:grid}.onboard-name input{border:3px solid var(--ink);background:#fffef8;border-radius:16px;width:100%;padding:12px 14px}.onboard-doodle{object-fit:contain;width:min(280px,100%);height:140px}.chip{cursor:pointer;color:var(--ink)}.chip.is-soon{opacity:.72}.grade-group{color:var(--ink-soft);letter-spacing:.08em;margin:12px 0 0;font-size:13px;font-weight:700}.chip-sub{color:var(--ink-soft);margin-left:6px;font-size:12px;font-weight:700}.settings-link{margin-top:8px;font-size:15px;display:inline-block}.unit-exam{border-top:2px dashed #3b2d4a2e;margin-top:10px;padding-top:10px}.exam-last{color:var(--ink-soft);margin:0 0 4px;font-size:15px}.exam-size{flex-wrap:wrap;align-items:center;gap:6px 12px;margin:4px 0 14px;display:flex}.exam-size label{align-items:center;gap:8px;font-weight:700;display:inline-flex}.exam-size input{border:3px solid var(--ink);width:84px;font:inherit;text-align:center;color:var(--ink);background:#fff;border-radius:14px;padding:6px 10px;font-size:18px;font-weight:800}.exam-size-max{color:var(--ink-soft);font-size:14px}.exam-pill{white-space:nowrap;background:#ffe566}.btn.exam-start{color:var(--ink);background:linear-gradient(#ff8fab,#ff6b8a);box-shadow:0 4px #c44a66}.score-big{font-family:var(--display);margin:8px 0 4px;font-size:64px;font-weight:800;line-height:1}.score-big.tone-mint{color:#1f9d8a}.score-big.tone-sky{color:#2b6cb0}.score-big.tone-sun{color:#c98a00}.score-big.tone-coral{color:#d9486f}.level-exam{background:#ffc2d4}.exam-actions{gap:8px;margin-top:16px;display:grid}.exam-page .finish-card{margin-top:8px}.gfig{justify-content:center;width:100%;display:flex;overflow-x:auto}.gfig-sm{max-width:240px;margin:0 auto}.gfig-svg{width:100%;max-width:420px;height:auto;font-family:var(--sans);display:block}.gfig-svg.gfig-wide{max-width:520px}.ruler-svg{max-width:640px;overflow:visible}.ruler-svg.ruler-compact{max-width:420px}.gfig-ruler-sm{width:100%;max-width:420px;margin:0 auto}.ruler-drag-svg{touch-action:none;cursor:ew-resize}:is(.stem-visual:has(.ruler-svg),.stem-visual:has(.cm-tokens)){max-width:640px}.cm-tokens{gap:8px;width:100%;max-width:560px;margin:0 auto;display:grid}.cm-tokens.is-compact{gap:6px;max-width:320px}.cm-token-row{align-items:center;gap:8px;min-width:0;display:flex}.cm-token-cells{border:3px solid var(--ink);background:#fff7e8;border-radius:10px;flex:0 auto;display:flex;overflow:hidden}.cm-token-cells.is-full{background:#b8f3d8}.mm-cell{border:0;border-right:2px solid var(--ink);background:#fff7e8;flex:none;width:20px;height:28px;padding:0;display:block}.mm-cell:last-child{border-right:0}.mm-cell.is-on{background:#ffc29e}.mm-cell.is-extra{background:#7ec8f5}button.mm-cell{cursor:pointer;font:inherit}button.mm-cell:hover{filter:brightness(.97)}.cm-token-lab{white-space:nowrap;color:var(--ink);font-size:13px;font-weight:800}.cm-token-sum{text-align:center;margin:4px 0 0;font-weight:800}.mm-paint .cm-token-cells{background:#fff}@media (width<=640px){.mm-cell{width:16px;height:24px}.cm-token-lab{font-size:12px}}.vert-svg{max-width:340px}.vert-svg.vert-wide{max-width:400px}.mul-svg{width:auto;max-width:min(520px,100%);height:auto;max-height:400px;overflow:visible}.mul-svg.mul-compact{max-width:280px}.mul-vert-svg{max-width:360px;overflow:visible}.mul-vert-svg.mul-vert-wide{max-width:440px}.div-long-svg{max-width:280px;overflow:visible}.div-long-svg.div-long-wide{max-width:340px}.div-split-svg,.div-check-svg,.div-enough-svg{max-width:520px;overflow:visible}:is(.stem-visual:has(.mul-svg),.stem-visual:has(.mul-vert-svg),.stem-visual:has(.div-long-svg),.stem-visual:has(.div-split-svg)){max-width:520px}.mul-split{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;width:100%;display:flex}.mul-split-pile{justify-items:center;min-width:0;display:grid}.mul-plus{color:var(--ink);padding:0 4px;font-size:28px;font-weight:800;line-height:1}.mul-split-eq{text-align:center;margin:6px 0 0;font-weight:800}.mul-row-slots{gap:8px;margin:10px 0;display:grid}.mul-row-slot{border:3px dashed var(--ink);width:100%;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:4px;padding:8px;display:grid}.mul-row-slot.is-on{background:#fff7e8;border-style:solid}.mul-row-slot.is-empty{justify-content:center;min-height:56px}.mul-row-ghost{opacity:.45;font-size:28px;font-weight:800;line-height:1}.mul-row-slot.is-locked{opacity:.4;cursor:default}.mul-row-slot-lab{font-size:13px;font-weight:800}.mul-row-slot .mul-svg{max-width:280px}.vert-step-caption{margin:8px 0 4px;font-size:15px;font-weight:800}.vert-steps-actions,.op-hang-actions{flex-wrap:wrap;gap:8px;margin:12px 0 8px;display:flex}.vert-steps-actions button,.op-hang-actions button{border:3px solid var(--ink);min-width:52px;min-height:44px;font:inherit;color:var(--ink);background:#fff;border-radius:12px;padding:4px 14px;font-weight:800}.vert-steps-actions button:disabled{opacity:.4}.op-hang-actions button.is-on{background:#b8f3d8}.place-pair{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:100%;display:flex}@media (width<=640px){.place-pair{flex-direction:column}}.place-pair .gfig-svg{max-width:240px}.place-pair-op{color:var(--ink);padding:0 4px;font-size:32px;font-weight:800;line-height:1}.place-builder-cols{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 8px;display:grid}.place-col-btns{flex-direction:column;align-items:center;gap:4px;font-size:13px;font-weight:800;display:flex}.place-col-btns button{border:3px solid var(--ink);width:40px;height:40px;font:inherit;color:var(--ink);background:#fff;border-radius:12px;font-weight:800}.line-drag-svg{touch-action:none;cursor:pointer}.gfig-pattern{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pat-cell{border:3px solid var(--ink);background:#ffe566;border-radius:12px;justify-content:center;align-items:center;min-width:42px;height:42px;padding:0 8px;font-weight:800;display:flex}.gfig-table-wrap{width:100%}.gtable{border-collapse:collapse;width:100%;font-weight:800}.gtable th,.gtable td{border:3px solid var(--ink);text-align:center;padding:8px 10px}.gtable th{background:#c9b6ff}.gtable td{background:#fff}.fill-num{align-items:center;gap:10px;margin:12px 0;display:flex}.fill-num input{border:3px solid var(--ink);width:140px;font:inherit;border-radius:16px;padding:10px 12px;font-weight:800}.angle-svg{width:auto;max-width:min(520px,100%);height:auto;overflow:visible}.angle-svg.angle-compact{max-width:240px}.angle-drag-svg{touch-action:none;cursor:pointer}.stem-visual:has(.angle-svg){max-width:520px}.angle-pick-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.angle-pick-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:4px;padding:8px 6px;font-weight:800;display:grid}.angle-pick-btn.is-on{background:#fff7e8;border-style:solid}.angle-pick-btn.is-ok{background:#b8f3d8}.angle-pick-btn .angle-svg{max-width:100%}.quad-hit{cursor:pointer}@media (width<=640px){.angle-pick-row{grid-template-columns:1fr}.angle-pick-btn .angle-svg{max-width:220px}}.area-svg{width:auto;max-width:min(520px,100%);height:auto;overflow:visible}.area-svg.area-compact{max-width:280px}.stem-visual:has(.area-svg){max-width:520px}.area-hit{cursor:pointer;pointer-events:all;outline:none}.area-legend{align-items:center;gap:8px;margin:0 0 8px;font-weight:800;display:flex}.area-pick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.area-pick-row.area-pick-3{grid-template-columns:repeat(3,minmax(0,1fr))}.area-pick-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:4px;padding:8px 6px;font-weight:800;display:grid}.area-pick-btn.is-on{background:#fff7e8;border-style:solid}.area-pick-btn.is-ok{background:#b8f3d8}.area-pick-btn .area-svg{max-width:100%}@media (width<=640px){.area-pick-row,.area-pick-row.area-pick-3{grid-template-columns:1fr}.area-pick-btn .area-svg{max-width:260px}}.div-svg{width:100%;max-width:min(640px,100%);height:auto;overflow:visible}.div-svg.div-compact{max-width:360px}.div-svg.gfig-wide{max-width:min(680px,100%)}.div-hit{cursor:pointer}:is(.stem-visual:has(.div-svg),.stem-visual:has(.div-pair)){max-width:560px}.div-pair{grid-template-columns:1fr 1fr;align-items:start;gap:12px;width:100%;display:grid}.div-pair-pane{min-width:0;margin:0}.div-pair-pane figcaption{color:var(--ink-soft);gap:2px;margin-top:8px;font-size:14px;display:grid}.div-pair-pane .div-svg{max-width:100%}.choice .div-svg{max-width:220px}@media (width<=640px){.div-pair{grid-template-columns:1fr}.div-pair-pane .div-svg{max-width:320px;margin:0 auto}}.cup-svg{width:100%;max-width:min(420px,100%);height:auto;overflow:visible}.cup-svg.cup-compact{max-width:280px}.cup-svg.cup-wide{max-width:min(640px,100%)}.stem-visual:has(.cup-svg){max-width:560px}.choice .cup-svg{max-width:220px}.gfig:has(.cup-wide){display:block}@media (width<=640px){.cup-svg.cup-wide{max-width:100%}}.weight-svg{width:100%;max-width:min(420px,100%);height:auto;overflow:visible}.weight-svg.weight-compact{max-width:280px}.weight-svg.weight-wide{max-width:min(640px,100%)}.stem-visual:has(.weight-svg){max-width:560px}.choice .weight-svg{max-width:220px}.gfig:has(.weight-wide){display:block}@media (width<=640px){.weight-svg.weight-wide{max-width:100%}}.pattern-host{width:100%}.pattern-svg{width:100%;max-width:min(420px,100%);height:auto;overflow:visible}.pattern-svg.pattern-compact{max-width:280px}.pattern-svg.pattern-wide{max-width:min(680px,100%)}.stem-visual:has(.pattern-svg){max-width:560px}.choice .pattern-svg{max-width:220px}.gfig:has(.pattern-wide){display:block}.pattern-pick-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.pattern-pick-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:4px;padding:8px 6px;font-weight:800;display:grid}.pattern-pick-btn em{font-size:13px;font-style:normal}.pattern-pick-btn.is-on{background:#fff7e8;border-style:solid}.pattern-pick-btn.is-ok{background:#b8f3d8}.pattern-pick-glyph{width:100%;max-width:88px}.pattern-pick-glyph .pattern-host{width:100%}.vert-steps-actions button.is-on{background:#b8f3d8}@media (width<=640px){.pattern-svg.pattern-wide{max-width:100%}.pattern-pick-row{grid-template-columns:1fr}.pattern-pick-btn .pattern-svg{max-width:160px}}.circle-svg{width:100%;max-width:min(520px,100%);height:auto;overflow:visible}.circle-svg.circle-compact{max-width:280px}.circle-svg.circle-wide{max-width:min(640px,100%)}.stem-visual:has(.circle-svg){max-width:560px}.choice .circle-svg{max-width:220px}.gfig:has(.circle-wide){display:block}.circle-pick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.circle-pick-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:4px;padding:10px 8px;font-weight:800;display:grid}.circle-pick-btn.is-on{background:#fff7e8;border-style:solid}.circle-pick-btn.is-ok{background:#b8f3d8}@media (width<=640px){.circle-svg.circle-wide{max-width:100%}.circle-pick-row{grid-template-columns:1fr}}.decimal-host{width:100%;max-width:min(640px,100%)}.decimal-svg{width:100%;max-width:min(560px,100%);height:auto;overflow:visible}.decimal-svg.decimal-compact{max-width:300px}.decimal-svg.decimal-wide{max-width:min(640px,100%)}.stem-visual:has(.decimal-svg){max-width:560px}.choice .decimal-svg{max-width:240px}.gfig:has(.decimal-wide){display:block}.decimal-pick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.decimal-pick-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:6px;padding:10px 8px;font-weight:800;display:grid}.decimal-pick-btn.is-on{background:#fff7e8;border-style:solid}.decimal-pick-btn.is-ok{background:#b8f3d8}.decimal-pick-btn.is-warn{background:#ffc29e}.decimal-place-cols{grid-template-columns:1fr auto 1fr;place-items:center;gap:8px;margin:12px 0 8px;display:grid}.decimal-place-dot{font-size:28px;font-weight:900;line-height:1}@media (width<=640px){.decimal-svg.decimal-wide{max-width:100%}.decimal-pick-row{grid-template-columns:1fr}}.clock-svg{width:100%;max-width:min(420px,100%);height:auto;overflow:visible}.clock-svg.clock-compact{max-width:240px}.clock-svg.clock-wide{max-width:min(640px,100%)}.stem-visual:has(.clock-svg){max-width:560px}.choice .clock-svg{max-width:220px}.gfig:has(.clock-wide){display:block}.clock-pick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.clock-pick-row.clock-hands-row{grid-template-columns:1fr 1fr}.clock-pick-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:6px;padding:10px 8px;font-weight:800;display:grid}.clock-pick-btn.is-on{background:#fff7e8;border-style:solid}.clock-pick-btn.is-ok{background:#b8f3d8}.clock-pick-btn.is-warn{background:#ffc29e}.clock-pick-cell{justify-items:center;gap:6px;min-width:0;display:grid}.clock-set-row{flex-wrap:wrap;justify-content:center;align-items:start;gap:12px;margin:10px 0;display:flex}.clock-set-group{flex-direction:column;align-items:center;gap:4px;font-size:13px;font-weight:800;display:flex}.clock-set-group button{border:3px solid var(--ink);min-width:88px;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;padding:8px 10px;font-weight:800}.clock-set-group button.is-on{background:#b8f3d8}@media (width<=640px){.clock-svg.clock-wide{max-width:100%}.clock-pick-row{grid-template-columns:1fr}.choice .clock-svg{max-width:180px}}.twostep-host{width:100%}.twostep-svg{width:100%;max-width:min(520px,100%);height:auto;overflow:visible}.twostep-svg.twostep-compact{max-width:280px}.twostep-svg.twostep-wide{max-width:min(760px,100%)}.stem-visual:has(.twostep-svg){max-width:560px}.choice .twostep-svg{max-width:240px}.gfig:has(.twostep-wide){display:block}.twostep-mini{width:88px;height:auto;overflow:visible}.twostep-pick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.twostep-pick-btn,.twostep-order-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:6px;padding:12px 10px;font-weight:800;display:grid}.twostep-pick-btn.is-on,.twostep-order-btn.is-on{background:#fff7e8;border-style:solid}.twostep-pick-btn.is-ok,.twostep-order-btn.is-ok,.twostep-mark-btn.is-ok{background:#b8f3d8;border-style:solid}.twostep-pick-btn.is-warn,.twostep-order-btn.is-warn,.twostep-mark-btn.is-warn{background:#ffc29e;border-style:solid}.twostep-mark-row{flex-wrap:wrap;justify-content:center;gap:8px;margin:10px 0;display:flex}.twostep-mark-btn{border:3px dashed var(--ink);min-width:96px;max-width:120px;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:4px;padding:8px 6px;font-size:13px;font-weight:800;display:grid}.twostep-mark-btn.is-on{background:#fff7e8;border-style:solid}.twostep-mark-btn.is-dim{opacity:.55}.twostep-order-row{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;display:grid}.twostep-order-no{opacity:.7;font-size:12px;font-weight:800}@media (width<=640px){.twostep-svg.twostep-wide{max-width:100%}.twostep-pick-row,.twostep-order-row{grid-template-columns:1fr}.choice .twostep-svg{max-width:200px}}.muldiv-host{width:100%}.muldiv-svg{width:100%;max-width:min(520px,100%);height:auto;overflow:visible}.muldiv-svg.muldiv-compact{max-width:280px}.muldiv-svg.muldiv-wide{max-width:min(760px,100%)}.stem-visual:has(.muldiv-svg){max-width:560px}.choice .muldiv-svg{max-width:240px}.gfig:has(.muldiv-wide){display:block}.muldiv-mini{width:108px;height:auto;overflow:visible}.muldiv-pick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.muldiv-path-row{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;display:grid}.muldiv-pick-btn,.muldiv-path-btn{border:3px dashed var(--ink);width:100%;min-width:0;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-items:center;gap:6px;padding:12px 10px;font-weight:800;display:grid}.muldiv-pick-btn.is-on,.muldiv-path-btn.is-on{background:#fff7e8;border-style:solid}.muldiv-pick-btn.is-ok,.muldiv-path-btn.is-ok{background:#b8f3d8;border-style:solid}.muldiv-pick-btn.is-warn,.muldiv-path-btn.is-warn{background:#ffc29e;border-style:solid}@media (width<=640px){.muldiv-svg.muldiv-wide{max-width:100%}.muldiv-pick-row,.muldiv-path-row{grid-template-columns:1fr}.choice .muldiv-svg{max-width:200px}}.table-host{width:100%}.table-svg{width:100%;max-width:min(560px,100%);height:auto;overflow:visible}.table-svg.table-compact{max-width:280px}.table-svg.table-wide{max-width:min(760px,100%)}.stem-visual:has(.table-svg){max-width:560px}.choice .table-svg{max-width:240px}.gfig:has(.table-wide){display:block}.table-build-grid{gap:6px;width:100%;max-width:560px;margin:10px 0;display:grid}.table-build-row{display:contents}.table-build-head{border:3px solid var(--ink);text-align:center;background:#c9b6ff;border-radius:10px;justify-content:center;align-items:center;min-height:44px;padding:8px 6px;font-weight:800;display:flex}.table-cell-btn,.table-ask-btn{border:3px dashed var(--ink);width:100%;min-width:0;min-height:48px;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;justify-items:center;gap:2px;padding:8px 6px;font-weight:800;display:grid}.table-cell-who{opacity:.78;font-size:12px;font-weight:800}.table-cell-btn strong{font-size:18px}.table-ask-row{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;display:grid}.table-cell-btn.is-on,.table-ask-btn.is-on{background:#fff7e8;border-style:solid}.table-cell-btn.is-ok,.table-ask-btn.is-ok{background:#b8f3d8;border-style:solid}.table-cell-btn.is-warn,.table-ask-btn.is-warn{background:#ffc29e;border-style:solid}@media (width<=640px){.table-svg.table-wide{max-width:100%}.table-ask-row{grid-template-columns:1fr}.choice .table-svg{max-width:200px}}.review{max-width:1100px;margin:0 auto}.review h1{margin-bottom:4px}.review-list{line-height:2}.review-table{border-collapse:collapse;width:100%;margin:12px 0 20px;font-size:14px}.review-table th,.review-table td{text-align:left;vertical-align:top;border:1px solid #3b2d4a33;padding:6px 8px}.review-nav{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.review-concept{background:var(--paper);border:3px solid var(--ink);border-radius:24px;margin:28px 0;padding:18px}.review-items{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:16px;display:grid}.review-item{margin:0}.review-answer{overflow-wrap:anywhere;margin:8px 0 4px;font-weight:800}.review-meta{color:var(--ink-soft);margin:2px 0;font-size:13px}.review a.chip{color:var(--ink);text-decoration:none}.review .chip.is-on{background:var(--sun)}.review-pager{justify-content:space-between}.review-publisher{margin:28px 0}.review-units{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.review-unit{background:var(--paper);border:3px solid var(--ink);border-radius:18px;padding:12px 14px}.review-unit h3{margin:0;font-size:18px;line-height:1.5}.review-concepts{margin:6px 0 0;padding-left:1.6em;line-height:1.6}.review-concepts li{margin:4px 0}.review-empty{color:var(--ink-soft);margin:4px 0 0;font-size:15px}.gfig-missing{border:2px dashed var(--brick);color:var(--brick);border-radius:12px;padding:12px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sign-key{border:3px solid var(--ink);width:52px;height:52px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:16px;flex:none;font-size:28px;font-weight:800;line-height:1}.sign-key.is-on{background:var(--sun);box-shadow:inset 0 3px #3b2d4a2e}.fill-frac-row{align-items:center;gap:12px;display:flex}.feedback.is-form{color:#8a4b00}.mglue{white-space:nowrap}.mfrac{vertical-align:middle;text-align:center;flex-direction:column;align-items:stretch;margin:0 3px;font-size:.92em;line-height:1.15;display:inline-flex}.mfrac-num{border-bottom:2px solid;padding:0 3px 2px}.mfrac-den{padding:2px 3px 0}.math-answer{grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;margin:12px 0 4px;display:grid}.math-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.math-prefix,.math-unit{font-size:20px;font-weight:800}.math-input{border:3px solid var(--ink);width:100%;min-width:0;max-width:420px;font:inherit;letter-spacing:.02em;background:#fff;border-radius:16px;flex:160px;padding:10px 12px;font-size:22px;font-weight:800}.math-clear{color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;font-size:15px;text-decoration:underline}.math-hint{min-height:1.6em;color:var(--ink-soft);margin:0;font-size:18px;line-height:1.8}.math-preview{color:var(--ink);font-size:20px;font-weight:800}.math-keypad{gap:8px;width:100%;max-width:420px;display:grid}.math-key{border:2px solid var(--ink);min-width:0;min-height:48px;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;background:#fff;border-radius:14px;padding:0;font-size:21px;font-weight:800;box-shadow:0 3px #3b2d4a24}.math-key:active{box-shadow:none;transform:translateY(2px)}.math-key.is-action{background:#eef0ff}.math-key.is-wide{grid-column:span 2;font-size:17px}.math-template{flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:22px;font-weight:800;display:flex}.math-blank{border:3px solid var(--ink);width:5.2em;min-width:0;font:inherit;text-align:center;background:#fff;border-radius:14px;padding:8px 10px;font-size:21px}.math-blank.is-active{outline:3px solid var(--teal);outline-offset:1px}.math-blank.is-right,.rel-pick.is-right{background:#b8f3d8}.math-blank.is-wrong,.rel-pick.is-wrong{background:#ffc2d4}.math-blank.is-form,.rel-pick.is-form{background:#ffe9b8}.rel-pick{border-radius:14px;gap:4px;padding:3px;display:inline-flex}.rel-pick button{border:2px solid var(--ink);min-width:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:12px;font-size:22px;font-weight:800}.rel-pick button.is-on{background:var(--sun)}.math-loading{min-height:48px}.math-blank.is-off{opacity:.45}.math-special{flex-wrap:wrap;gap:8px;display:flex}.math-special button{border:2px solid var(--ink);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:0 18px;font-size:18px;font-weight:800}.math-special button.is-on{background:var(--sun)}.math-special button.is-right{background:#b8f3d8}.math-special button.is-wrong{background:#ffc2d4}.mseg{border-top:2px solid;padding-top:1px}.mrad{vertical-align:middle;align-items:stretch;margin:0 .05em;line-height:1;display:inline-flex}.mrad-hook{flex:none;align-self:stretch;width:.58em;height:1.08em;overflow:visible}.mrad-body{border-top:.08em solid;margin-left:-.08em;padding:.07em .16em .02em .04em;line-height:1.15}.math-chunks{flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;max-width:100%;display:flex}.math-chunk{white-space:nowrap;align-items:center;gap:4px;display:flex}.math-template.is-many .math-blank{width:var(--blank-w,2.8em);min-width:2.8em;max-width:5.2em;padding:8px 4px}@media (width<=640px){.math-template{gap:6px;font-size:20px}.math-blank{width:4.4em;padding:8px 6px}.rel-pick{gap:3px;padding:2px}.rel-pick button{min-width:38px}.math-template.is-many,.math-chunks{gap:6px 4px}.math-chunk{gap:2px}.math-template.is-many .math-blank{max-width:4.4em}}body{background-color:#7ec8f8;background-image:radial-gradient(circle,#ffffff8c 1.6px,#0000 1.7px);background-size:22px 22px}.brand{box-shadow:none;color:#163a73;background:0 0;gap:6px;padding:2px 8px 2px 2px;font-size:16px}.topbar nav .sound-toggle,.topbar nav button{color:#fff;background:#5c6578;border:0;border-radius:12px;padding:6px 10px;font-size:14px;font-weight:800;box-shadow:0 3px #3d4454}.topbar nav .sound-toggle{align-items:center;gap:4px;width:auto;height:auto;display:inline-flex}.topbar nav .nav-book{background:#2f6fe0;box-shadow:0 3px #1d4ea8}.back{color:#163a73;background:#fff;border:3px solid #d5e6f8;box-shadow:0 3px #163a731f}.btn{color:#163a73;background:linear-gradient(#ffe56a,#f5c400);border:0;box-shadow:0 4px #c89600}.btn.ghost{color:#163a73;box-shadow:none;background:#fff;border:2px solid #8eb4e8}.book,.onboard-card,.records-card,.card,.course-unit,.focus-card,.item-card,.unit-row,.concept-row{border-color:#8ea0bd;box-shadow:0 8px #46608c29}.book{background:#fff;border-width:4px;border-radius:28px}.brand{flex-shrink:0;overflow:visible}.brand-logo{width:auto;height:44px;display:block}.topbar{flex-wrap:wrap;row-gap:8px}@media (width<=640px){.brand-logo{height:36px}.topbar .nav-book{display:none}}.dino-sheet{background:#fff;border:4px solid #8ea0bd;border-radius:28px;padding:16px 14px 22px;box-shadow:0 8px #46608c24}.teacher-lockup{width:min(340px,100%);margin-bottom:8px;display:inline-block;position:relative}.teacher-lockup img{width:100%;height:auto;display:block}.teacher-sem{text-align:center;color:#163a73;width:30%;font-size:15px;font-weight:800;position:absolute;top:50%;right:1.5%;transform:translateY(-50%)}.unit-ico{object-fit:contain;flex:none;width:56px;height:56px}.course-no{color:#fff;background:#2f6fe0;border-radius:10px;padding:6px 8px;font-size:13px;line-height:1.25}.course-unit,.course-unit.is-open,.course-unit.is-later,.course-unit.is-clear{background:#fff}.course-unit .pill,.focus-card .pill{padding:6px 12px;font-size:15px;font-weight:800}.pill.is-open{color:#fff;background:#2f6fe0}.focus-card .pill.go-0{color:#fff;background:#f08a12}.focus-card .pill.go-1{color:#fff;background:#e23b4a}.focus-card .pill.go-2{color:#fff;background:#2f9e44}.focus-card .pill.go-3{color:#fff;background:#2f6fe0}.focus-card .pill.go-4{color:#fff;background:#7b4ddb}.focus-card.tone-sun,.focus-card.tone-peach,.focus-card.tone-mint,.focus-card.tone-sky,.focus-card.tone-lilac,.focus-card.tone-coral{background:#fff}.focus-art img{object-fit:contain;width:52px;height:52px}.dino-banner img{width:100%;height:auto;display:block}.dino-sheet>.dino-banner,.records>.dino-banner{border-radius:16px;overflow:hidden}.dino-ribbon{width:auto;height:44px;margin:10px 0 4px;display:block}.story-band:has(.dino-banner){background:#d7eefe;border-bottom:0;min-height:0;padding:0;display:block}.story-band .dino-banner img{height:auto}.dino-exam{text-align:left;background:#fff6df;padding:0;position:relative;overflow:hidden;container-type:inline-size}.dino-exam-copy{pointer-events:none;justify-content:space-between;align-items:flex-end;gap:12px;padding:10px;display:flex;position:absolute;inset:0}.dino-exam-copy .btn,.dino-exam-copy .btn.exam-start{pointer-events:auto;color:#163a73;background:linear-gradient(#ffe56a,#f5c400);flex:none;width:auto;margin:0;padding:8px 16px;box-shadow:0 4px #c89600}.dino-exam-copy .eyebrow{color:#fff;white-space:nowrap;background:#2f6fe0;border-radius:10px 10px 10px 2px;margin:0;padding:4px 10px}.dino-exam-copy p{color:#163a73;margin:0;font-weight:800}.pub-card.pub-art{box-shadow:none;background:0 0;border:3px solid #0000;padding:0}.pub-card.pub-art img{width:100%;height:auto;display:block}.pub-card.pub-art.is-mine{border-color:#163a73;border-radius:22px}.topbar{justify-content:center;gap:14px}.topbar nav .nav-settings,.topbar nav .sound-toggle,.topbar nav .nav-full{letter-spacing:.04em;border-radius:10px;align-items:center;gap:4px;height:40px;padding:0 12px 0 4px;font-size:16px;display:inline-flex}.topbar nav .nav-settings{background:#e41f1f;box-shadow:0 3px #b41616}.topbar nav .sound-toggle,.topbar nav .nav-full{background:#5a516f;box-shadow:0 3px #3c3550}.topbar nav img{object-fit:none;border-radius:0;flex:none;width:28px;height:28px}.nav-settings img{object-position:-11px -7px}.sound-toggle img{object-position:-7px -4px}.nav-full img{object-position:-8px -3px}:is(.dino-sheet:has(>.back),.lesson:has(>.back),.onboard:has(>.back),.records:has(>.back),.exam-page:has(>.back)){margin-top:58px;position:relative}.dino-sheet>.back,.lesson>.back,.onboard>.back,.records>.back,.exam-page>.back{z-index:2;margin:0;position:absolute;top:-54px;right:0}.back{color:#1a4f93;text-align:left;background:#fff;border:0;border-radius:999px;align-items:center;gap:6px;height:46px;margin:0;padding:0 16px 0 4px;font-size:16px;font-weight:800;display:inline-flex;box-shadow:0 4px #9ec0ee}.back img{object-fit:cover;object-position:left center;border-radius:50%;flex:none;width:40px;height:40px}.dino-sheet>.page-head{background:#fff6c2;border-radius:14px;padding:12px 14px 10px}.focus-no{color:#7b879c;background:0 0;flex-direction:column;justify-content:flex-end;align-items:center;gap:0;min-width:52px;padding:0 0 8px;font-size:13px;display:flex;position:relative}.focus-no:after{content:"";background:#f08a12;border-radius:3px;height:5px;position:absolute;bottom:0;left:0;right:0}.focus-card.go-1 .focus-no:after{background:#e23b4a}.focus-card.go-2 .focus-no:after{background:#2f9e44}.focus-card.go-3 .focus-no:after{background:#2f6fe0}.focus-card.go-4 .focus-no:after{background:#7b4ddb}.focus-card .pill{border-radius:8px;place-items:center;min-width:58px;min-height:34px;padding:6px 8px;display:grid;box-shadow:0 3px #0000002e}.focus-card.is-done .pill.go-0{color:#fff;background:#f08a12}.focus-card.is-done .pill.go-1{color:#fff;background:#e23b4a}.focus-card.is-done .pill.go-2{color:#fff;background:#2f9e44}.focus-card.is-done .pill.go-3{color:#fff;background:#2f6fe0}.focus-card.is-done .pill.go-4{color:#fff;background:#7b4ddb}.dino-exam-ribbon{z-index:2;pointer-events:none;filter:drop-shadow(0 0 2px #fff)drop-shadow(0 0 2px #fff)drop-shadow(0 4px 6px #10245066);width:auto;height:42%;min-height:44px;max-height:64px;position:absolute;top:10%;left:3%}.dino-exam-ribbon.is-text{color:#fff;filter:none;background:#2f6fe0;border-radius:8px 14px 14px 3px;align-items:center;height:auto;min-height:0;max-height:none;padding:8px 16px 10px;font-size:18px;font-weight:800;display:inline-flex;box-shadow:0 0 0 3px #fff,3px 4px #14326e47}.dino-exam-go{z-index:2;cursor:pointer;filter:drop-shadow(0 2px #fffffff2)drop-shadow(0 5px 8px #46280073);background:0 0;border:0;height:52%;min-height:52px;max-height:76px;padding:0;position:absolute;top:50%;right:3%;transform:translateY(-50%)}.dino-exam-go img{width:auto;height:100%;display:block}@container (width<=520px){.dino-exam-ribbon{height:36%;min-height:32px;max-height:42px}.dino-exam-go{height:44%;min-height:36px;max-height:46px}}.dino-exam-score{color:#163a73;background:#ffffffeb;border-radius:8px;margin:0;padding:2px 8px;font-size:13px;font-weight:800;position:absolute;bottom:8px;left:12px}.tabs{justify-content:center}.tabs button,.tabs .speak-all{color:#1a4f93;background:#e7f3ff;border:2px solid #b9d4f2;border-radius:999px;align-items:center;gap:6px;margin:0;font-weight:800;display:inline-flex;box-shadow:0 3px #c5d8ee}.tabs button.is-on,.tabs button:first-child.is-on{color:#fff;background:#2f6fe0;border-color:#1d4ea8}.tabs .speak-all.is-on{color:#fff;background:#2f6fe0}.tab-ico,.tabs .speak-all img{object-fit:cover;object-position:left center;border-radius:6px;flex:none;width:22px;height:22px}.tabs .speak-all img{object-fit:contain;object-position:center;border-radius:50%}.page-turn,.page-turn.page-turn-next{color:#5c6b86;box-shadow:none;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:0;display:flex}.page-turn-next{align-items:flex-end}.page-turn img{width:auto;height:42px;display:block}.page-turn-title{color:#5c6b86;background:#e7eef6;border-radius:8px;padding:4px 10px;font-weight:700}.speak-btn,.speak-btn.compact,.ask-mark{box-shadow:none;background:0 0;border:0;width:32px;height:32px;padding:0;overflow:visible}.speak-btn img,.ask-mark img{width:32px;height:32px;display:block}.ask-mark.is-on{border-radius:50%;outline:3px solid #2f6fe0}.speak-line-tools{flex-direction:row;align-items:center;gap:4px}.login-shell .brand{cursor:default}.login-card{max-width:460px}.login-card>.mascot{margin-bottom:4px}.login-form{gap:6px;margin-top:8px;display:grid}.login-label{margin-top:10px;font-size:15px;font-weight:800}.login-input{border:3px solid var(--ink);width:100%;min-width:0;color:var(--ink);background:#fffef8;border-radius:16px;padding:12px 14px}.login-input:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.login-input[aria-invalid=true]{border-color:var(--brick-ink)}.login-password{align-items:center;gap:8px;display:flex}.login-reveal{border:2px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;padding:6px 14px;font-size:15px}.login-reveal[aria-pressed=true]{background:var(--teal-2)}.login-keep{cursor:pointer;align-items:center;gap:10px;margin-top:12px;font-size:16px;display:flex}.login-keep input{width:22px;height:22px;accent-color:var(--teal);flex-shrink:0;margin:0}.login-submit{width:100%;margin-top:16px}.login-message{min-height:1.7em}.login-error{color:var(--brick-ink);margin:8px 0 0;font-size:16px}.login-input:disabled,.login-reveal:disabled,.login-keep input:disabled{opacity:.6;cursor:not-allowed}.auth-loading{min-height:60vh;color:var(--ink-soft);place-content:center;justify-items:center;gap:4px;font-size:16px;display:grid}.auth-loading p{margin:0}.account-card .eyebrow{margin-top:0}.account-line{margin:4px 0 0;font-size:17px}.account-logout{margin-top:12px}.account-error{color:var(--brick-ink);margin:10px 0 0;font-size:16px}.login-card{color:#fff;background:#163a8a;border-color:#0d2460}.login-card h1,.login-card .lede,.login-card .login-label{color:#fff}.login-card .login-input{color:#163a73;background:#fff;border-color:#fff}.login-logo{width:min(280px,100%);height:auto;margin:0 auto 4px;display:block}.login-shell{align-items:center;min-height:100vh;display:flex}.login-shell .login{width:100%}.login-card .login-keep,.login-card .login-keep span{color:#fff}.ai-ask,.ai-fab{border:3px solid var(--ink);background:var(--sun);color:var(--ink);font-family:var(--display);cursor:pointer;border-radius:999px;align-items:center;gap:6px;font-weight:800;line-height:1.2;display:inline-flex}.ai-ask .mascot,.ai-fab .mascot,.ai-avatar .mascot{animation:none;display:block}.ai-ask-face{flex-shrink:0;place-items:center;display:grid}.ai-ask:focus-visible,.ai-fab:focus-visible,.ai-chip:focus-visible,.ai-close:focus-visible,.ai-send:focus-visible,.ai-retry:focus-visible{outline:3px solid var(--sky);outline-offset:3px}.ai-ask{vertical-align:middle;margin:12px 0 0 10px;padding:4px 16px 4px 5px;font-size:18px;box-shadow:0 4px #3b2d4a2e}.ai-ask:active{transform:translateY(2px);box-shadow:0 2px #3b2d4a2e}.ai-ask-passage{margin:6px 0 2px;padding:2px 14px 2px 4px;font-size:17px}.ai-fab{z-index:40;right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));padding:6px 18px 6px 6px;font-size:18px;position:fixed;box-shadow:0 6px #3b2d4a33}.ai-attach{background:#fff;border-bottom:2px solid #eadff8;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.ai-attach-label{color:var(--ink-soft);margin:0;font-size:14px;font-weight:800}.ai-attach-row{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.ai-attach .ai-chip{flex:none;padding:4px 10px;font-size:15px}.ai-attach .ai-chip.is-on{background:var(--sun)}.ai-mic{border:3px solid var(--ink);width:46px;height:46px;color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;place-items:center;display:grid}.ai-mic.is-on{background:#ff8fab}.ai-mic:disabled{opacity:.45;cursor:default}.ai-listen-hint{color:var(--ink-soft);margin:0;padding:0 14px 4px;font-size:15px;font-weight:700}.ai-backdrop{display:none}.ai-panel{--ai-kb:0px;z-index:60;right:max(16px, env(safe-area-inset-right));bottom:calc(16px + var(--ai-kb));width:min(400px,100vw - 32px);height:min(600px,100vh - 32px);height:min(600px, calc(100dvh - 32px - var(--ai-kb)));background:var(--paper-2);border:3px solid var(--ink);color:var(--ink);border-radius:24px;flex-direction:column;font-size:17px;line-height:1.6;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px #3b2d4a1f,0 18px 44px #3b2d4a33}.ai-panel:focus{outline:none}.ai-head{border-bottom:3px solid var(--ink);background:#fff1b8;align-items:center;gap:10px;padding:10px 12px 10px 10px;display:flex}.ai-avatar{flex-shrink:0;place-items:center;display:grid}.ai-head-text{flex:1;min-width:0}.ai-head h2{font-family:var(--display);margin:0;font-size:20px;font-weight:800;line-height:1.2}.ai-about{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:16px;line-height:1.4;overflow:hidden}.ai-close,.ai-read{border:2px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;padding:4px 12px;font-size:15px}.ai-read.is-on{background:var(--sun)}.ai-fab{max-width:min(280px,100vw - 32px);font-size:16px}.ai-log{overscroll-behavior:contain;background:var(--paper);flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 12px;display:flex;overflow-y:auto}.ai-msg{align-items:flex-end;gap:6px;max-width:100%;display:flex}.ai-msg.is-me{justify-content:flex-end}.ai-msg .speak-btn.compact{border-width:2px;width:34px;height:34px}.ai-bubble{border:2px solid var(--ink);overflow-wrap:anywhere;background:#fff;border-radius:18px;max-width:calc(100% - 42px);padding:8px 12px}.ai-msg.is-ai .ai-bubble{border-bottom-left-radius:6px}.ai-msg.is-me .ai-bubble{background:#dcecff;border-bottom-right-radius:6px;max-width:85%}.ai-p{margin:0}.ai-p+.ai-p,.ai-p+.ai-list,.ai-list+.ai-p{margin-top:6px}.ai-list{margin:0;padding-left:1.4em}.ai-list li+li{margin-top:2px}.ai-typing{align-items:center;gap:5px;padding:12px 14px;display:inline-flex}.ai-typing span:not(.sr-only){background:var(--ink-soft);border-radius:50%;width:8px;height:8px;animation:1s infinite ai-blink}.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}@keyframes ai-blink{0%,to{opacity:.25}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.ai-typing span:not(.sr-only){opacity:.6;animation:none}}.ai-notice{border:2px solid var(--ink);background:#ffc2d4;border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 12px 0;padding:8px 12px;font-size:15px;line-height:1.5;display:flex}.ai-notice.is-limit{background:#fff1b8}.ai-retry{border:2px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:2px 12px;font-size:15px}.ai-chips{flex-wrap:wrap;gap:6px;padding:10px 12px 0;display:flex}.ai-chip{border:2px solid var(--ink);color:var(--ink);cursor:pointer;background:#e8fff6;border-radius:999px;padding:4px 12px;font-size:15px;font-weight:800;line-height:1.5}.ai-chip:nth-child(3n+2){background:#eef0ff}.ai-chip:nth-child(3n+3){background:#fff1e6}.ai-form{gap:8px;padding:10px 12px 6px;display:flex}.ai-input{border:3px solid var(--ink);min-width:0;color:var(--ink);background:#fffef8;border-radius:16px;flex:1;padding:8px 12px;font-size:17px;font-weight:700}.ai-input:focus-visible{outline:3px solid var(--sky);outline-offset:1px}.ai-input:disabled{opacity:.6}.ai-send{color:#fff;font-family:var(--display);cursor:pointer;background:linear-gradient(#6c7cff,#5463f0);border:0;border-radius:999px;flex-shrink:0;padding:8px 18px;font-size:17px;font-weight:800;box-shadow:0 3px #3d4ac2}.ai-foot{color:var(--ink-soft);margin:0;padding:0 12px 10px;font-size:13px;line-height:1.5}.ai-panel.is-zhuyin .ai-bubble,.ai-panel.is-zhuyin .ai-about{line-height:2.05}.ai-panel.is-zhuyin .ai-bubble{font-size:18px}.ai-panel.is-zhuyin .ai-chip{line-height:1.9}@media (width<=640px){html.ai-open,html.ai-open body{overflow:hidden}.ai-backdrop{z-index:55;background:#3b2d4a61;display:block;position:fixed;inset:0}.ai-panel{left:0;right:0;bottom:var(--ai-kb);width:100%;height:min(640px,100vh - 56px);height:min(640px, calc(100dvh - 56px - var(--ai-kb)));padding-bottom:env(safe-area-inset-bottom);border-bottom:0;border-radius:24px 24px 0 0}.ai-fab{padding:4px 16px 4px 5px;font-size:17px}.ai-ask{width:fit-content;margin:14px auto 0;display:flex}}.ai-insights{border:3px solid var(--ink);width:100%;box-shadow:var(--shadow);background:#fff;border-radius:28px;margin:16px 0;padding:22px 20px 20px}.ai-insights-head{align-items:center;gap:12px;margin-bottom:6px;display:flex}.ai-insights-head .eyebrow{margin:0 0 2px}.ai-insights-head h2{font-family:var(--display);margin:0;font-size:24px;font-weight:800;line-height:1.25}.ai-insights-lede{color:var(--ink-soft);margin:8px 0 0;font-size:17px}.ai-insights .btn{margin-top:14px}.ai-insights-wait{color:var(--ink-soft);align-items:center;gap:8px;margin:12px 0 0;font-size:17px;display:flex}.ai-insights-wait .ai-typing{padding:0}.ai-insights-sub{font-family:var(--display);margin:16px 0 6px;font-size:18px;font-weight:800}.ai-insights-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ai-insights-list li{border:3px solid var(--ink);border-radius:16px;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 14px;font-size:17px;line-height:1.55;display:flex}.ai-insights-list .speak-line{flex:1;min-width:0;margin:0}.ai-insights-list.is-good li{background:#b8f3d8}.ai-insights-list.is-next li{background:#fff1b8}.ai-insights-point{flex:1;gap:2px;min-width:12em;display:grid}.ai-insights-point strong{font-family:var(--display);font-weight:800}.btn.ghost.ai-insights-go{border:2px solid var(--ink);margin:0;padding:6px 16px;font-size:16px}.ai-insights-cheer{font-family:var(--display);margin:14px 0 6px;font-size:19px;font-weight:800}.ai-insights .ai-foot{padding:0}.ai-insights .ai-notice{margin:12px 0 0}.zhuyin-on .ai-insights-list li,.zhuyin-on .ai-insights-lede,.zhuyin-on .ai-insights-cheer{line-height:2.05}.ai-fab{text-align:center;background:#fff8e0;border:3px solid #163a73;border-radius:22px;flex-direction:column;gap:2px;width:76px;padding:6px 6px 8px;font-size:11px;line-height:1.15;box-shadow:0 6px #163a7340}.ai-panel{background:#fff;border:3px solid #8ea0bd;border-radius:22px;bottom:78px;box-shadow:0 8px #46608c29}.ai-head{background:#fff;border-bottom:2px solid #e6eef8;padding:10px 10px 8px}.ai-avatar img{border-radius:50%;width:40px;height:40px;display:block}.ai-head h2{font-size:16px}.ai-about{font-size:13px}.ai-read{color:#5c6b86;background:#fff;border:2px solid #d5e0ee;border-radius:999px;font-weight:800;box-shadow:0 2px #e4eaf3}.ai-close{width:36px;height:36px;box-shadow:none;background:0 0;border:0;padding:0}.ai-close img{width:36px;height:36px;display:block}.ai-log{background:#fff}.ai-msg.is-ai .ai-bubble{background:#fff3a8;border:0;border-radius:12px}.ai-chips{flex-direction:column;align-items:stretch}.ai-chip,.ai-chip:nth-child(3n+2),.ai-chip:nth-child(3n+3){text-align:left;color:#2f7d32;width:100%;box-shadow:none;background:#dff6c8;border:0;border-radius:8px}.ai-input{background:#fff;border:2px solid #d5e0ee;border-radius:12px}.ai-mic{color:#fff;background:#2f6fe0;border:0;width:40px;height:40px;box-shadow:0 3px #1d4ea8}.ai-send{box-shadow:none;background:0 0;border:0;padding:0}.ai-send img{width:auto;height:42px;display:block}.ai-send:disabled{opacity:1;cursor:not-allowed}.ai-fab{text-align:left;background:#fff;border:3px solid #8ea0bd;border-radius:999px;flex-direction:row;gap:6px;width:auto;max-width:min(240px,100vw - 24px);padding:3px 12px 3px 3px;font-size:13px;line-height:1.2;box-shadow:0 4px #46608c33}.ai-fab .ai-ask-face img,.ai-ask .ai-ask-face img{border-radius:50%;width:40px;height:40px;display:block}@media (width>=1080px){html.ai-open .shell{max-width:calc(100vw - 460px);margin-left:16px;margin-right:440px}.ai-panel{width:400px;height:auto;top:88px;bottom:78px}}@media (width<=640px){.ai-fab.is-open{display:none}.ai-panel{bottom:var(--ai-kb);height:min(640px, calc(100dvh - 56px - var(--ai-kb)))}}.records{gap:14px;min-width:0;display:grid}.records>.back{justify-self:start;margin-bottom:0}.records .page-head{margin-bottom:0}.records .page-head .lede{margin:0}.records-round-head h1{margin-bottom:6px}.records-round-head .btn{margin-top:12px}.records-note{color:var(--ink-soft);margin:0;font-size:16px}.records-note.is-error{color:var(--brick-ink)}.records-note .linkish{margin-left:8px}.records-periods{margin:0}.records-body{gap:14px;min-width:0;transition:opacity .15s;display:grid}.records-body>.ai-insights{margin:0}.records-body.is-refreshing{opacity:.6}.records-card{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:22px;min-width:0;padding:18px 18px 16px}.records-card>h2{font-family:var(--display);margin:0 0 10px;font-size:22px;font-weight:800;line-height:1.3}.records-subline{color:var(--ink-soft);margin:10px 0 0;font-size:16px}.records-more{margin-top:10px;font-size:16px;display:inline-block}.records-load-more{justify-self:center}.records-id{color:var(--ink-soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700;display:block}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.stat-tile{border:3px solid var(--ink);min-width:0;box-shadow:var(--shadow);background:#fff;border-radius:18px;align-content:start;gap:2px;padding:12px 14px;display:grid}.stat-tile:nth-child(4n+1){background:#e8fff6}.stat-tile:nth-child(4n+2){background:#fff8d9}.stat-tile:nth-child(4n+3){background:#eef0ff}.stat-tile:nth-child(4n+4){background:#ffeef3}.stat-label{color:var(--ink-soft);font-size:15px}.stat-value{font-family:var(--sans);overflow-wrap:anywhere;font-size:28px;font-weight:800;line-height:1.2}.stat-note{color:var(--ink-soft);font-size:13px;line-height:1.4}.records-chart{min-width:0;margin:0}.records-chart figcaption{margin:0 0 10px}.records-chart figcaption strong{font-family:var(--display);font-size:20px}.chart-frame{grid-template-columns:auto minmax(0,1fr);gap:6px;display:grid}.chart-axis{height:140px;color:var(--ink-soft);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;padding-top:2px;font-size:12px;line-height:1;display:flex}.chart-plot{background:linear-gradient(#e7e1ee,#e7e1ee) top/100% 1px no-repeat,linear-gradient(#cfc6db,#cfc6db) left 0 bottom 22px/100% 1px no-repeat;align-items:stretch;gap:2px;min-width:0;display:flex}.chart-slot{flex:1 1 0;grid-template-rows:140px 22px;min-width:0;display:grid;position:relative}.chart-hit{all:unset;cursor:default;border-radius:6px;justify-content:center;align-items:flex-end;height:140px;display:flex}.chart-hit:focus-visible{outline:3px solid var(--sky);outline-offset:1px}.chart-bar{background:var(--teal);border-radius:4px 4px 0 0;width:min(24px,72%);min-height:0;display:block;position:relative}.chart-hit:hover .chart-bar,.chart-hit.is-focus .chart-bar{filter:brightness(1.12)}.chart-value{color:var(--ink);font-variant-numeric:tabular-nums;padding-bottom:2px;font-size:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.chart-tick{color:var(--ink-soft);white-space:nowrap;font-size:11px;line-height:22px;position:absolute;top:140px;left:50%;transform:translate(-50%)}.chart-slot:first-child .chart-tick{left:0;transform:none}.chart-slot:last-child .chart-tick{left:auto;right:0;transform:none}.chart-tip{z-index:3;border:2px solid var(--ink);min-width:96px;color:var(--ink-soft);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);background:#fff;border-radius:12px;gap:0;padding:6px 10px;font-size:13px;display:grid;position:absolute;bottom:calc(100% - 112px);left:50%;transform:translate(-50%)}.chart-tip strong{color:var(--ink);font-size:16px}.chart-slot:first-child .chart-tip{left:0;transform:none}.chart-slot:last-child .chart-tip{left:auto;right:0;transform:none}.chart-table{margin-top:10px;font-size:15px}.chart-table summary{cursor:pointer;color:var(--ink-soft)}.chart-table table,.records-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:15px}.chart-table caption{text-align:left;color:var(--ink-soft);font-size:13px}.chart-table th,.chart-table td,.records-table th,.records-table td{text-align:left;font-variant-numeric:tabular-nums;vertical-align:top;border-bottom:1px solid #ece6f2;padding:6px 8px}.records-table thead th{color:var(--ink-soft);white-space:nowrap;font-size:13px}.records-table td{white-space:nowrap}.meter{background:var(--teal-2);vertical-align:middle;border-radius:999px;flex:none;width:88px;height:10px;display:inline-block;overflow:hidden}.meter-fill{background:var(--teal);border-radius:999px;height:100%;display:block}.wrong-card{background:#fff8d9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.wrong-card h2{font-family:var(--display);margin:0 0 4px;font-size:22px}.wrong-card p{color:var(--ink-soft);margin:0;font-size:16px}.wrong-card .btn{margin-top:0}.chapter-list,.round-list,.common-wrong,.account-list,.lesson-rows{gap:8px;margin:0;padding:0;list-style:none;display:grid}.chapter-row details{border:2px solid var(--ink);background:#fffef2;border-radius:16px}.chapter-row.is-later details{background:#f6f2ff}.chapter-row summary{cursor:pointer;gap:6px;padding:10px 12px;list-style:none;display:grid}.chapter-row summary::-webkit-details-marker{display:none}.chapter-row summary:after{content:"看每一關 ▾";color:var(--ink-soft);font-size:12px}.chapter-row details[open] summary:after{content:"收起來 ▴"}.chapter-title{font-size:17px;font-weight:800;line-height:1.4}.chapter-stats{color:var(--ink-soft);flex-wrap:wrap;gap:6px 16px;font-size:14px;display:flex}.chapter-stat{align-items:center;gap:8px;display:inline-flex}.lesson-rows{gap:4px;padding:0 12px 12px}.lesson-rows li{border-top:1px solid #ece6f2;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding-top:6px;font-size:15px;display:grid}.lesson-done{border:2px solid #cfc6db;border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;line-height:1;display:grid}.lesson-done.is-done{background:var(--teal);border-color:var(--teal);color:#fff}.lesson-name{overflow-wrap:anywhere;min-width:0}.lesson-acc{color:var(--ink-soft);text-align:right;font-size:13px}.chapter-later{margin-top:10px}.chapter-later summary{cursor:pointer;color:var(--ink-soft);font-size:15px}.chapter-quiet{gap:2px;margin:6px 0 0;padding:0;font-size:15px;list-style:none;display:grid}.chapter-quiet li{border-top:1px solid #ece6f2;justify-content:space-between;gap:10px;padding-top:4px;display:flex}.round-row{all:unset;box-sizing:border-box;border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.round-row:hover{background:#f7f5ff}.round-row:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.round-mode{border:2px solid var(--ink);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:800}.round-mode.is-practice{background:#bfe9fb}.round-mode.is-unit_quiz{background:#ffe566}.round-mode.is-retry{background:#ffc2d4}.round-main{min-width:0;display:grid}.round-main strong{overflow-wrap:anywhere;font-size:16px;line-height:1.35}.round-main em{color:var(--ink-soft);overflow-wrap:anywhere;font-size:13px;font-style:normal}.round-score{color:var(--ink-soft);white-space:nowrap;justify-items:end;font-size:12px;display:grid}.round-score strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:18px}.common-wrong li{border:2px solid var(--ink);background:#fff;border-radius:14px;gap:2px;min-width:0;padding:8px 10px;display:grid}.common-lesson{color:var(--teal-ink);font-size:13px;font-weight:800}.common-prompt{overflow-wrap:anywhere;font-size:15px}.common-answer{color:var(--ink-soft);overflow-wrap:anywhere;font-size:14px}.round-summary{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-top:4px;font-size:15px;display:flex}.round-summary strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px}.review-list{gap:0;display:grid}.review-card{position:relative}.review-card.is-ok{border-color:var(--ink)}.verdict-badge{border:2px solid var(--ink);white-space:nowrap;border-radius:999px;align-self:flex-start;padding:1px 10px;font-size:14px;font-weight:800}.verdict-badge.is-ok{background:#dcf7e7}.verdict-badge.is-no{background:#ffe0e6}.verdict-badge.is-form{background:#fff3c4}.verdict-badge.is-skip{background:#eeeaf2}.review-choices .choice{cursor:default}.choice-tags{flex-wrap:wrap;gap:6px;display:flex}.choice-tag{border:2px solid var(--ink);background:#fff;border-radius:999px;padding:0 8px;font-size:12px;font-weight:800}.choice-tag.is-key{color:#fff;background:#2f9e5c;border-color:#2f9e5c}.review-shade{max-width:420px;margin:8px 0}.review-answers{gap:6px;margin:10px 0;display:grid}.review-answer-row{border:2px solid var(--ink);background:#fff;border-radius:14px;grid-template-columns:7.5em minmax(0,1fr);align-items:center;gap:8px;padding:8px 12px;font-size:18px;display:grid}.review-answer-row dt{color:var(--ink-soft);font-size:14px;font-weight:800}.review-answer-row dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:800}.review-answer-row.is-ok{background:#e9fbf1}.review-answer-row.is-no{background:#fff0f3}.review-answer-row.is-form{background:#fff8d9}.review-answer-row.is-key{background:#e9fbf1}.review-frac{vertical-align:middle;align-items:center;gap:2px;display:inline-flex}.review-explain{color:var(--ink);margin:6px 0 0}.review-answers-plain{margin:6px 0}.attempt-list{gap:4px;margin:10px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.attempt-list li{border-top:1px solid #ece6f2;flex-wrap:wrap;align-items:center;gap:4px 10px;padding-top:4px;display:flex}.attempt-no{color:var(--brick-ink);font-weight:800}.attempt-answer{font-weight:800}.attempt-verdict.is-ok{color:var(--ok)}.attempt-verdict.is-no{color:var(--brick-ink)}.attempt-verdict.is-form{color:#8a6100}.attempt-time{color:var(--ink-soft)}.attempt-single,.review-meta-line{color:var(--ink-soft);margin:8px 0 0;font-size:14px}.ask-ai-slot{margin-top:10px}.wrong-group{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fffef2;border-radius:22px;padding:4px 14px 2px}.wrong-group-title{font-family:var(--display);cursor:pointer;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;margin:0;padding:10px 0;font-size:20px;font-weight:800;list-style:none;display:grid}.wrong-group-title::-webkit-details-marker{display:none}.wrong-group-title:after{content:"打開 ▾";font-family:var(--sans);color:var(--ink-soft);white-space:nowrap;font-size:13px}.wrong-group-name{overflow-wrap:anywhere;min-width:0}.wrong-group[open]>.wrong-group-title:after{content:"收起來 ▴"}.wrong-group-count{font-family:var(--sans);color:var(--ink-soft);white-space:nowrap;font-size:14px}.empty-card{text-align:left}.records-entry{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.records-entry-link{border:2px solid var(--ink);color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:16px;font-weight:800;text-decoration:none;display:inline-flex}.records-entry-link:first-child{background:#b8f3d8}.records-entry-link:hover{transform:translateY(-1px)}.account-links{flex-wrap:wrap;gap:8px 16px;margin:4px 0 8px;display:flex}.account-links a{color:var(--ink);font-weight:800}.admin-search{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin-bottom:12px;display:flex}.admin-search label{color:var(--ink-soft);flex:220px;gap:4px;font-size:14px;display:grid}.admin-search input{border:2px solid var(--ink);background:#fff;border-radius:12px;min-width:0;padding:8px 10px;font-size:16px}.admin-search .btn{margin-top:0}.account-row{all:unset;box-sizing:border-box;border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:16px;gap:4px;width:100%;padding:10px 12px;display:grid}.account-row:hover{background:#f7f5ff}.account-row:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.account-name{display:grid}.account-name strong{overflow-wrap:anywhere;font-size:17px}.account-name em,.account-stats{color:var(--ink-soft);font-size:13px;font-style:normal}.account-stats{gap:1px;display:grid}@media (width<=640px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-value{font-size:24px}.records-card{border-radius:18px;padding:14px 12px 12px}.records-card>h2{font-size:20px}.review-answer-row{grid-template-columns:1fr;gap:2px;font-size:17px}.round-row{grid-template-columns:minmax(0,1fr) auto}.round-mode{grid-column:1/-1;justify-self:start}.wrong-card .btn{width:100%}.meter{width:64px}}
