:root{--yellow:#ffd23f;--ink:#1f2a44;--bg:#fffaf0;--green:#2e9e5b;--red:#d9534f;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{min-height:100vh;padding-bottom:env(safe-area-inset-bottom);margin:0}.top{background:var(--yellow);padding:14px 18px;padding-top:max(14px, env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:8px;display:flex}.top h1{margin:0;font-size:1.5rem}.install-btn{font:inherit;border:2px solid var(--ink);min-height:44px;color:var(--ink);background:#fff;border-radius:12px;flex:none;padding:8px 12px;font-size:.95rem;font-weight:700}.install-btn:focus-visible{outline-offset:3px;outline:4px solid #2563eb}.ios-sheet{z-index:40;padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));background:#1f2a4473;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.ios-sheet[hidden]{display:none!important}.ios-sheet-card{border:3px solid var(--ink);background:#fff;border-radius:20px;width:min(100%,420px);padding:18px;box-shadow:0 2px 10px #00000014}.ios-sheet-card h2{margin:0 0 10px;font-size:1.3rem}.ios-steps{margin:0 0 8px;padding-left:1.25rem;font-size:1.05rem;line-height:1.45}.ios-steps li{margin:6px 0}#no-gpu{margin-bottom:12px}.sw-update{background:var(--ink);color:#fff;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 14px;font-size:.95rem;font-weight:700;display:flex}.sw-update[hidden]{display:none!important}.sw-update-btn{font:inherit;background:var(--yellow);min-height:44px;color:var(--ink);border:2px solid #fff;border-radius:12px;padding:8px 14px;font-weight:800}.sw-update-btn:focus-visible{outline-offset:3px;outline:4px solid #2563eb}main{max-width:640px;margin:0 auto;padding:16px}.card{background:#fff;border-radius:20px;margin-bottom:16px;padding:18px;box-shadow:0 2px 10px #00000014}.card h2{margin-top:0;font-size:1.3rem}.warn{border:3px solid var(--red)}.tip{background:#fff4cc;border-radius:12px;padding:8px 12px}.tip:empty{display:none}button{font:inherit;cursor:pointer}.big{border:3px solid var(--ink);width:100%;color:var(--ink);background:#fff;border-radius:18px;min-height:64px;margin-top:12px;padding:18px;font-size:1.3rem;font-weight:700;display:block}.big.primary{background:var(--ink);color:#fff}.big:disabled{opacity:.5;cursor:default}.tabs{gap:12px;margin-bottom:12px;display:flex}.tab{margin-top:0}.tab.active{background:var(--yellow)}.label{margin-bottom:8px;font-size:1.1rem;font-weight:700;display:block}textarea{width:100%;font:inherit;resize:vertical;border:2px solid #ccc;border-radius:14px;padding:14px;font-size:1.25rem}.chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.chips button{border:2px solid var(--ink);background:#fff;border-radius:999px;padding:8px 12px;font-size:1rem}.answer{white-space:pre-wrap;background:#f2f7ff;border-radius:16px;margin-top:16px;padding:14px;font-size:1.35rem;line-height:1.45}.answer.right{border:3px solid var(--green);background:#e6f6ec}.answer.wrong{border:3px solid var(--red);background:#fff1f0}.answer .official{margin:10px 0 0;font-size:1.05rem}.answer .simple{margin:8px 0 0;font-size:1.05rem}.answer .helper{background:#fff8e1;border-radius:12px;margin-top:10px;padding:10px;font-size:1.05rem}.answer .helper-label{margin-bottom:4px;font-weight:800;display:block}#learn-why{margin-top:10px}.source-label{letter-spacing:.01em;margin:12px 0 0;font-size:.95rem;font-weight:800}.source-label.src-model{color:#1f4b99}.source-label.src-notes{color:#5a4a1a}.how-wrap{margin-top:8px}.how-toggle{min-height:44px;color:var(--ink);background:0 0;border:none;padding:6px 0;font-size:.95rem;text-decoration:underline}.how-panel{background:#f7f4ea;border:2px solid #e4dcc4;border-radius:12px;margin-top:8px;padding:10px 12px;font-size:.95rem}.how-dl{grid-template-columns:minmax(7rem,30%) 1fr;gap:6px 10px;margin:0;display:grid}.how-dl dt{margin:0;font-weight:800}.how-dl dd{margin:0}.how-pre{white-space:pre-wrap;font:inherit;max-height:14rem;margin:0;font-size:.9rem;overflow:auto}.answer-body{white-space:pre-wrap}.ask-thinking-label{font-weight:800}.ask-elapsed{color:#555;font-variant-numeric:tabular-nums}.sources{color:#555;font-size:.9rem}.bar{background:#eee;border-radius:999px;height:22px;overflow:hidden}#bar-fill{background:var(--green);width:0;height:100%;transition:width .2s}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.seg{gap:6px;display:flex}.seg button{border:2px solid var(--ink);background:#fff;border-radius:12px;padding:8px 14px;font-size:1rem;font-weight:700}.seg button.active{background:var(--yellow)}.score{font-size:1.3rem;font-weight:800}.quiz-q{font-size:1.5rem;font-weight:700}.foot{text-align:center;color:#666;font-size:.9rem}a.big{text-align:center;text-decoration:none}[hidden]{display:none!important}.options{gap:12px;margin-top:8px;display:grid}.option{text-align:left;align-items:center;gap:14px;min-height:72px;margin-top:0;display:flex}.option:focus-visible,.big:focus-visible,.seg button:focus-visible,.chips button:focus-visible{outline-offset:3px;outline:4px solid #2563eb}.opt-key{background:var(--yellow);border:2px solid var(--ink);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.option.is-right{border-color:var(--green);opacity:1;background:#e6f6ec}.option.is-right .opt-key{background:var(--green);color:#fff}.option.is-wrong{border-color:var(--red);opacity:1;background:#fff1f0}.option:disabled:not(.is-right):not(.is-wrong){opacity:.6}.answer p{margin:0}.answer .why{margin-top:10px;font-size:1.15rem}.why-label{font-weight:800}.answer{position:relative}.score-row{align-items:center;gap:12px;display:flex}.score-row .score{margin:0}.quiz-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.topic{background:#eef2ff;border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 8px;font-size:.95rem;font-weight:700;display:inline-flex}.topic-icon{font-size:1.2rem}.grading-badge{align-items:center;gap:4px;font-size:.85rem;font-weight:700;display:inline-flex}.grading-badge .arrow{font-size:1rem}.gb-text{margin-left:4px}.belt{display:block}.diagram{text-align:center;margin:12px auto 0}.diagram svg{max-width:100%;height:auto}.diagram figcaption{color:#555;font-size:.9rem}.burst{pointer-events:none;position:absolute;top:24px;left:50%}.burst span{font-size:1.5rem;animation:.9s ease-out forwards burst;position:absolute}@keyframes burst{0%{transform:rotate(var(--a)) translateY(0) scale(.6);opacity:1}to{transform:rotate(var(--a)) translateY(-70px) scale(1.1);opacity:0}}@media (prefers-reduced-motion:reduce){.burst{display:none}#bar-fill{transition:none}}.progress{color:#444;margin:0;font-weight:700}.quiz-end{text-align:center}.quiz-end h2{margin:8px 0 12px;font-size:1.8rem}.end-belt{justify-content:center;display:flex}.end-line{font-size:1.25rem;font-weight:600}.quiz-end h3{text-align:left;margin:18px 0 6px}.missed{text-align:left;margin:0;padding:0;list-style:none}.missed li{border:2px solid #e5e7eb;border-radius:14px;gap:4px;margin-top:8px;padding:10px 12px;display:grid}.mq{font-weight:700}.ma{color:#1f6b3f}.quiet{color:#666;background:0 0;border:none;width:100%;min-height:44px;margin-top:4px;padding:12px;font-size:1rem;text-decoration:underline;display:block}.credit{text-align:center;color:#555;padding:4px 16px 20px;font-size:.85rem}.credit a{color:var(--ink)}.tabs .tab{white-space:nowrap;padding:14px 8px;font-size:1.15rem}@media (max-width:380px){.tabs .tab{padding:14px 4px;font-size:1.05rem}}.learn-sec{margin-top:20px}.learn-sec h3{margin:0 0 8px;font-size:1.3rem}.study{border:2px solid #e5e7eb;border-radius:14px;margin-top:10px;padding:10px 14px}.study h4{margin:0 0 4px;font-size:1.1rem}.study p,.learn-sec>p{margin:6px 0;line-height:1.45}.cj-fig{text-align:center;margin:12px auto 0}.cj-path{width:100%;max-width:420px;height:auto;max-height:45vh;margin:0 auto;display:block}.cj-path .mv{transition:opacity .2s}.cj-path:has(.mv.on) .mv:not(.on){opacity:.25}.cj-path .mv.on circle{fill:#ffd23f}.cj-fig figcaption{color:#555;font-size:.9rem}.cj-step{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.step-btn{border:3px solid var(--ink);background:#fff;border-radius:14px;min-height:48px;padding:10px 14px;font-size:1.05rem;font-weight:800}.cj-now{text-align:center;margin:0;font-weight:600}.cj-moves{margin:12px 0 0;padding:0;list-style:none}.cj-moves li{border-bottom:1px solid #eee;gap:10px;padding:8px 6px;line-height:1.4;display:flex}.cj-moves li.on{background:#fff4cc;border-radius:10px}.cj-moves .mn{border:2px solid var(--ink);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:.85rem;font-weight:800;display:grid}.cj-moves li.end .mn{border-radius:12px;width:44px}.check{color:#7a3d00;white-space:nowrap;background:#fde7c7;border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:700;display:inline-block}@media (prefers-reduced-motion:reduce){.cj-path .mv{transition:none}}.study p.official{border-left:4px solid #ffd23f;padding-left:.6rem}.study p.simple{color:#3a4560}.belt-msg{color:#3a4560;min-height:1.2em;margin:0 0 8px;font-size:.95rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#loading.from-device .only-download{display:none}#loading.from-device #bar-fill{border-radius:999px;animation:1.2s ease-in-out infinite alternate slide;width:35%!important}@keyframes slide{0%{margin-left:0}to{margin-left:65%}}@media (prefers-reduced-motion:reduce){#loading.from-device #bar-fill{opacity:.5;animation:none;width:100%!important}}.learn-cj h2,.learn-more h2{margin-top:0}.cj-fig{margin:4px auto 0}.cj-step .step-btn{width:100%;min-height:56px}.cj-now{min-height:1.4em;margin:8px 0 0}.cj-cap{color:#555;font-size:.9rem}.cj-path .mv{cursor:pointer}.cj-path .mv:focus{outline:none}.cj-path .mv:focus-visible circle:not(.hit){stroke:#2563eb;stroke-width:4px}.mv-btn{text-align:left;width:100%;color:inherit;font:inherit;touch-action:manipulation;background:0 0;border:0;align-items:flex-start;gap:10px;min-height:44px;padding:0;line-height:1.4;display:flex}.mv-btn:focus-visible{outline-offset:3px;border-radius:10px;outline:4px solid #2563eb}.seg-tabs{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px;display:grid}@media (min-width:520px){.seg-tabs{grid-template-columns:repeat(6,1fr)}}.seg-tab{border:2px solid var(--ink);min-height:48px;color:var(--ink);touch-action:manipulation;background:#fff;border-radius:14px;padding:6px 8px;font-size:1rem;font-weight:800}.seg-tab[aria-selected=true]{background:var(--ink);color:#fff;font-weight:900}.seg-tab:focus-visible,.tab:focus-visible{outline-offset:3px;outline:4px solid #2563eb}.lpanel:focus-visible{outline-offset:3px;border-radius:10px;outline:4px solid #2563eb}.lpanel:not([hidden]){animation:.15s ease-out fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lpanel:not([hidden]){animation:none}}.belt-locks{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.belt-msg:empty{display:none}#belts{flex-wrap:nowrap;gap:4px;margin-bottom:8px;display:flex}#belts .belt{border:2px solid var(--ink);min-width:0;min-height:48px;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:12px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:4px 2px;font-size:.8rem;font-weight:800;line-height:1.1;display:flex;position:relative;overflow:hidden}#belts .belt .swatch{border:1px solid var(--ink);border-radius:4px;flex:none;width:24px;height:8px}#belts .belt.active{background:var(--yellow)}#belts .belt.locked{color:#4b5563;opacity:1;cursor:not-allowed;background:#f1f1f1;border-style:dashed}#belts .belt.locked .swatch{opacity:.45}#belts .belt .lock{font-size:.7rem;line-height:1;position:absolute;top:4px;right:4px}#belts .belt:focus-visible{outline-offset:2px;outline:4px solid #2563eb}@media (min-width:400px){#belts{gap:6px}#belts .belt{font-size:.9rem}}.belt-locks .belt{border:2px dashed var(--ink);color:#4b5563;background:#f1f1f1;border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:6px 12px;font-weight:700;display:inline-flex}.belt-locks .swatch{border:1px solid var(--ink);opacity:.45;border-radius:3px;width:18px;height:10px;display:inline-block}
