:root{font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif;font-size:16px;color:#233e56;background:#f0f9ff;--blue:#147bb8;--blue-dark:#106798;--ink:#233e56;--muted:#617c90;--line:#d6e9f5;--sky:#e9f6ff;--mint:#e5f6ed;--peach:#fff0e4}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.48;cursor:default}button:focus-visible,select:focus-visible{outline:3px solid #55abe0;outline-offset:4px}[hidden]{display:none!important}.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;pointer-events:none}
header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{max-width:900px;margin:auto;padding:2px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand-logo{display:block;width:164px;height:auto}.header-caption{color:#53738c;font-size:13px;line-height:1.8;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}main{max-width:720px;margin:42px auto 0;padding:0 24px 60px}.intro{padding:0 4px}.eyebrow{font-size:13px;font-weight:700;letter-spacing:.04em;color:#397fa9;display:flex;align-items:center;gap:8px;margin:0 0 14px}.eyebrow .icon{width:18px;height:18px;flex-basis:18px}h1{font-size:clamp(32px,5.8vw,43px);line-height:1.45;letter-spacing:.03em;margin:0 0 16px;font-weight:750}h2{font-size:21px;line-height:1.7}h3{font-size:15px}.lead{font-size:16px;line-height:1.9;color:var(--muted);margin:0 0 26px}.lead-line,.practice-note{display:block;white-space:nowrap}.practice-note{margin-top:8px}.creator-credit{font-size:12px;line-height:1.7;color:#617c90;margin:-12px 0 25px}.creator-credit span{font-weight:600;color:#397fa9}.card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;margin:22px 0;box-shadow:0 8px 26px #5a91b30a}.summary{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #e3f0f8;padding-bottom:22px;margin-bottom:24px}.summary-item{display:flex;gap:7px;align-items:center;font-size:13px;font-weight:600;color:#387b9f}.summary-item .icon{width:19px;height:19px;flex-basis:19px}.review-summary{color:#8a6548}.field-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:18px}.field{min-width:0}label,legend{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:650;margin:0 0 11px}label .icon,legend .icon{width:18px;height:18px;flex-basis:18px;color:#568eaf}.select-wrap{position:relative}.select-wrap>.icon{position:absolute;right:13px;top:17px;width:18px;height:18px;color:#6e93ab}select{appearance:none;-webkit-appearance:none;width:100%;min-height:52px;border:1px solid #cce1ef;border-radius:13px;background:#f8fcff;color:var(--ink);padding:12px 39px 12px 14px;line-height:1.5}.question-count{border:0;padding:0;margin:25px 0 0;min-width:0}legend{padding:0}.counts{display:flex;gap:12px}.counts button{flex:1;min-width:0;min-height:67px;padding:10px 8px;border:1px solid #d3e6f2;background:#fff;color:#56778d;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.counts button>span:first-child{font-size:23px;font-weight:650;line-height:1.2}.counts small{font-size:13px;font-weight:500;margin-left:4px}.counts .selected{background:#e5f4ff;border:2px solid #57a4d2;color:#176e9f}.recommended{font-size:10px;font-weight:600;line-height:1.4;color:#3a81ac}.available{font-size:12px;color:#6a8699;text-align:center;margin:17px 0 18px;line-height:1.7}.primary,.secondary,.judge{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;border-radius:15px;padding:15px 17px;line-height:1.55;transition:background .15s,transform .15s}.primary{border:1px solid var(--blue);background:var(--blue);color:#fff;font-weight:650;margin-top:14px;box-shadow:0 4px 0 #0b689a}.secondary{border:1px solid #cfe5f3;background:#f2f9ff;color:#356d91;margin-top:14px;font-size:14px}.end-icon{margin-left:auto}.primary>.icon:first-child{margin-right:auto}.primary>.icon:only-of-type{margin:0}.note{color:#6b8395;font-size:12px;line-height:1.85}#load:empty{display:none}#load{margin:18px 0 0}.how-to{margin:29px 0 18px}.how-to h2{font-size:14px;text-align:center;color:#567b94;font-weight:600;margin:0 0 18px}.tips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tips>div{display:flex;flex-direction:column;align-items:center;gap:9px;font-size:12px;color:#58788e}.tips b{font-weight:550}.tip-icon{width:43px;height:43px;background:#e2f1fc;color:#4089b5;border:1px solid #d3e8f6;border-radius:15px;display:grid;place-items:center}.tip-icon .icon{width:23px;height:23px}.home-note{margin:26px 4px 0}.top{display:flex;justify-content:space-between;align-items:center;gap:15px}button.text{min-height:44px;border:0;background:transparent;color:#527c98;font-size:14px;padding:6px 2px;display:flex;gap:7px;align-items:center}button.text .icon{width:19px;height:19px;flex-basis:19px}.counter{font-size:16px;font-weight:650;color:#327da9;background:#e3f3ff;padding:8px 14px;border-radius:20px;white-space:nowrap}.track{height:7px;background:#dceef9;border-radius:10px;overflow:hidden;margin:18px 0 24px}#bar{height:100%;background:#59ade0;border-radius:10px;transition:width .2s}.question{margin-top:0}.unit-badge{display:inline-flex;gap:7px;align-items:center;padding:7px 11px;border:1px solid #dceffb;border-radius:10px;font-size:13px;font-weight:650;background:#eef8ff;color:#397ca5}.unit-badge .icon{width:17px;height:17px;flex-basis:17px}.question h2{margin:22px 0 16px}.prompt{font-size:18px;line-height:1.9;overflow-wrap:anywhere;margin:18px 0;padding-block:8px;overflow-x:auto;overflow-y:hidden}.prompt math,#hint math{font-size:1.15em;vertical-align:middle}.problem{padding:30px 0;min-height:128px;display:flex;align-items:center;justify-content:flex-start;overflow-x:auto}.problem:empty{display:none}.problem math{font-size:clamp(34px,7vw,44px);font-family:"STIX Two Math","Cambria Math",serif;font-weight:400;max-width:none;flex-shrink:0;margin-inline:auto}.instruction{font-size:15px;line-height:1.8;text-align:center}.instruction:empty{display:none}.diagram-button{width:100%;padding:14px;border:1px solid #d8eaf6;border-radius:17px;background:#fff;margin:15px 0 24px;display:block}.diagram-button img{display:block;width:100%;max-width:500px;height:auto;margin:auto}.diagram-button>span{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:#5385a5;margin-top:14px}.diagram-button .icon{width:17px;height:17px;flex-basis:17px}.solve-note{margin:22px 0 18px}#solution{border-top:1px solid #dfedf6;margin-top:26px;padding-top:24px}.answerlabel,.steps-title,.reasoning h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:650;color:#417fa6}.answerlabel{margin:0 0 10px}.answerlabel .icon,.steps-title .icon,.reasoning h3 .icon{width:19px;height:19px;flex-basis:19px}#answer{font-size:28px;font-weight:400;line-height:1.6;overflow-x:auto;margin-bottom:22px}#answer math,.steps math{font-family:"STIX Two Math","Cambria Math",serif;font-weight:400;font-style:normal;text-align:left}#answer math{font-size:36px;display:inline-block;margin:10px 0 15px}#answer math[display="inline"]{margin:4px 0;vertical-align:middle}.steps-title{margin:24px 0 12px}.steps{padding:8px 0 8px 13px;margin-bottom:22px;border-left:3px solid #a8d8f5;overflow-x:auto}.steps>div{margin:13px 0}.steps math{font-size:26px;max-width:none;white-space:nowrap}.steps math[display="block"]{display:inline-block;margin:0;text-align:left}.steps mrow{font-weight:400}.reasoning{background:#edf7ff;border:1px solid #dceefb;padding:18px;border-radius:16px;margin-top:22px}.reasoning h3{margin:0 0 10px;color:#3d7caa}#hint{font-size:15px;line-height:1.9;color:#3a5a73;overflow-wrap:anywhere}.judge-caption{font-size:14px;line-height:1.8;margin:25px 0 14px}.judgements{display:flex;flex-direction:column;gap:12px}.judge{margin:0;font-size:15px;font-weight:600}.correct{background:var(--mint);border:1px solid #b4ddc8;color:#24654b}.wrong{background:var(--peach);border:1px solid #f0d2bb;color:#8e5434}.source{margin:18px 4px 0;font-size:11px}.result-intro{text-align:center}.result-mark{width:70px;height:70px;margin:0 auto 20px;border:1px solid #d3e9fb;background:#e1f3ff;color:#4096cb;border-radius:24px;display:grid;place-items:center}.result-mark .icon{width:35px;height:35px;stroke-width:1.5}.result-intro .eyebrow{justify-content:center}.result-intro h1{font-size:30px}.score{text-align:center;color:#287cab;font-size:32px;font-weight:700;margin:0 0 12px}#feedback{font-size:15px;line-height:1.8;color:#637c8f;text-align:center;margin:0 0 22px}.row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7f1f8;padding:16px 0;font-size:13px;gap:10px;line-height:1.6}.row b{white-space:nowrap;font-size:11px;padding:5px 9px;border-radius:8px;font-weight:650}.good{color:#296a50;background:#e7f6ee}.bad{color:#8c5438;background:#fff0e5}#list{margin-bottom:24px}dialog{width:95vw;max-width:1100px;border:1px solid var(--line);border-radius:22px;padding:20px;background:#fff;color:var(--ink)}dialog::backdrop{background:#16354eaa}.close-dialog{width:auto;margin:0 0 18px auto;min-height:44px;padding:8px 16px}#large-diagram{display:block;width:100%;max-width:1000px;height:auto;margin:20px auto}
@media(hover:hover){button:not(:disabled):hover{filter:brightness(.97)}.primary:not(:disabled):hover{background:var(--blue-dark);filter:none}.primary:not(:disabled):active{transform:translateY(2px);box-shadow:0 2px 0 #0b689a}}
@media(max-width:500px){.header-inner{padding:2px 18px;gap:12px}.brand-logo{width:clamp(112px,36vw,144px);flex-shrink:0}.header-caption{font-size:12px}main{padding:0 18px 44px;margin-top:29px}h1{font-size:32px;line-height:1.5}.lead{font-size:15px;margin-bottom:22px}.card{padding:23px 19px;border-radius:22px}.summary{padding-bottom:20px;margin-bottom:22px}.summary-item{font-size:11px;gap:5px}.summary-item .icon{width:17px;height:17px;flex-basis:17px}.field-grid{grid-template-columns:1fr;gap:20px}.question-count{margin-top:23px}.counts{gap:10px}.counts button{min-height:66px}.primary,.secondary{padding:14px 12px}.secondary{font-size:13px;gap:8px}.primary{font-size:15px}.question{padding:23px 18px}.question h2{font-size:19px}.prompt{font-size:17px}.problem{padding:30px 0}.problem math{font-size:34px}.steps{padding-left:9px}.steps math{font-size:24px}#answer math{font-size:34px}.reasoning{padding:16px}.judge{font-size:14px;gap:8px}.result-intro h1{font-size:28px}.score{font-size:28px}.source{font-size:11px}button.text{font-size:13px}.counter{font-size:14px}.row{font-size:12px}.note{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Function explanations: exact vector graphs with readable mobile labels. */
.function-figure{margin:26px 0 28px;padding:20px 16px 18px;border:1px solid var(--line);border-radius:17px;background:#fff}.function-figure-title{margin:0 0 14px;color:#356d91;font-size:16px;line-height:1.8;font-weight:650}.function-formulas{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:12px}.graph-formula{font-size:17px;line-height:1.9;color:var(--blue)}.graph-formula.formula-1{color:#278467}.graph-formula math{font-size:1.1em}.function-graph-button{display:block;width:100%;padding:0;border:0;border-radius:12px;background:white;color:var(--muted)}.function-graph-button img{display:block;width:100%;max-width:400px;height:auto;margin:auto}.function-zoom{display:block;font-size:12px;line-height:1.8;margin:8px 0 14px;color:#587489}.function-figure figcaption{padding-top:14px;border-top:1px solid var(--line);font-size:15px;line-height:1.9;color:#3a5a73;overflow-wrap:anywhere;line-break:strict}.graph-preview .preview-lead{color:var(--muted);font-size:16px;line-height:1.95;margin:0 0 25px}.graph-nav{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 30px}.graph-nav a{color:#356d91;background:#e3f3ff;border:1px solid var(--line);text-decoration:none;border-radius:10px;padding:10px 13px;font-size:13px;line-height:1.7}.graph-example{scroll-margin-top:24px;margin-bottom:40px}.example-topic{display:flex;align-items:center;gap:12px;margin-bottom:18px}.example-topic>span{font-size:14px;color:#397ca5;background:#eef8ff;border-radius:10px;padding:7px 10px}.example-topic h2{margin:0;font-size:21px}.example-answer{font-size:28px;margin:12px 0 20px;overflow-x:auto}.example-answer math{display:inline-block;text-align:left;font-size:34px;margin-block:8px}.example-hint{font-size:15px;line-height:1.9;line-break:strict}.graph-preview .source{margin-top:22px}.graph-preview .prompt{line-break:strict}
@media(max-width:500px){.function-figure{padding:17px 10px 15px;margin:24px -6px}.function-figure-title{padding:0 4px;font-size:15px}.function-formulas{padding:0 4px;gap:6px 14px}.graph-formula{font-size:16px}.function-figure figcaption{padding:13px 4px 0;font-size:15px}.function-zoom{font-size:11px}.graph-nav{gap:6px}.graph-nav a{padding:9px 10px;font-size:12px}.example-topic{gap:9px}.example-topic h2{font-size:19px}}
.example-answer{line-height:1.9;padding:8px 0 16px;overflow-y:hidden}.example-answer math{margin:0}.single-example{margin-top:18px}.single-example .graph-example{margin-top:0}
.function-figure[data-question="u08-q025"] .formula-0{color:#278467}.function-figure[data-question="u08-q025"] .formula-1{color:#bc563c}.function-figure[data-question="u08-q049"] .graph-formula{color:var(--blue)}.step-explain{display:block;color:#3a5a73;font-size:15px;line-height:1.9;margin-bottom:8px;white-space:normal;line-break:strict}

.function-formulas:empty{display:none}.math-svg{vertical-align:middle;max-width:100%;object-fit:contain}.inline-math-svg{height:25px;width:auto}.step-math-svg{display:block;height:34px;width:auto;margin-block:6px}.answer-math-svg{display:block;max-width:100%;height:auto;margin:10px 0 16px}

/* Teaching explanations: readable prose before/after the mathematical steps. */
.solution-focus{margin:20px 0 26px;padding:17px 18px;border-radius:15px;background:#eef8ff;border-left:3px solid #75b8df}.solution-focus h3{margin:0 0 9px;color:#276e9c;font-size:15px}.solution-focus p,.solution-check p{font-size:15px;line-height:1.95;margin:7px 0;overflow-wrap:anywhere}.solution-focus p:last-child{color:#466379}.steps:has(.teaching-step){border:0;padding:0;overflow:visible}.teaching-step{padding:3px 0 16px;border-bottom:1px solid #e0eef7}.step-note{font:14px/1.85 sans-serif;color:#476982;margin:9px 0 6px;overflow-wrap:anywhere}.step-formula{overflow-x:auto;overflow-y:hidden;padding:5px 1px 10px}.step-formula>.katex-display{margin:.5em 0;text-align:left}.step-formula .katex-display>.katex{text-align:left}.step-formula .katex{font-size:1.25em}#answer>.katex-display{margin:.4em 0;text-align:left}#answer>.katex-display>.katex{text-align:left}.solution-check{margin-top:18px;padding-top:15px;border-top:1px solid #cde3f2}.solution-check h4{margin:0 0 6px;font-size:14px;color:#317b69}.relation-wrap{overflow-x:auto;margin:18px 0}.relation-table,.coordinate-table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.7}.relation-table th,.relation-table td,.coordinate-table th,.coordinate-table td{padding:10px 9px;text-align:left;border-bottom:1px solid #d9e9f3}.relation-table caption,.coordinate-table caption{font-size:13px;text-align:left;color:#4c7189;padding:5px 0 10px}.relation-table td:last-child{white-space:nowrap}.coordinate-table{flex-basis:100%;margin-top:10px}.coordinate-table th,.coordinate-table td{text-align:center;padding:6px}.function-figure figcaption:empty{display:none}.solution-reason{line-height:2}.solution-reason .katex{font-size:1.1em}#large-diagram{max-height:75vh;object-fit:contain}.review-controls{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0 25px}.review-controls select{flex:1;min-width:180px}.review-controls button{width:auto;padding:8px 15px}.review-meta{font-size:13px;color:#55778e;line-height:1.8}.review-pagination{display:flex;gap:14px;align-items:center;margin:25px 0}.review-pagination button{width:auto}.review-page .prompt{font-size:17px}.review-page .example-answer{font-size:24px}.function-figure.original-image img{max-width:500px}
@media(max-width:500px){.solution-focus{padding:14px 13px}.solution-focus p,.solution-check p{font-size:15px}.step-formula .katex{font-size:1.12em}.relation-table{font-size:13px}.relation-table th,.relation-table td{padding:8px 5px}.relation-table .katex{font-size:1.05em}}

.embedded-review>header,.embedded-review .review-heading{display:none}.embedded-review main{margin:0;padding:0 12px 30px}.embedded-review .card{margin:0;padding:22px 16px;border-radius:0;border:0;box-shadow:none}.step-note:empty{display:none}.prose-step{display:block;font-size:16px;line-height:1.95;white-space:normal;overflow-wrap:anywhere}.embedded-review .prompt{font-size:16px}.review-page .function-figure{margin-inline:0}

.relation-table td:last-child{white-space:normal;min-width:65px}.function-formulas .coordinate-table{width:100%}.function-formulas>.graph-formula{max-width:100%;overflow-x:auto}

/* Home, revision 19: a compact mathematics workspace. */
.practice-app{background:#f1f8fd}.practice-app.on-home{background:radial-gradient(ellipse at 85% 12%,#e1f0fb 0,transparent 45%),#f5faff}.practice-app>header{background:#ffffffd9;border-bottom:1px solid #dfedf7}.practice-app .header-inner{max-width:820px;padding:0 24px;min-height:66px}.practice-app .brand-logo{width:124px}.practice-app .header-caption{font-size:12px;font-weight:550;letter-spacing:.035em;color:#598099}.practice-app.on-home main{max-width:760px;margin-top:25px}.home-hero{position:relative;margin-bottom:24px}.home-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:20px}.home-hero-copy{position:relative;z-index:1}.home-hero .eyebrow{font-size:12px;letter-spacing:.08em;margin:0 0 10px;color:#5288a9}.home-hero h1{font-size:42px;line-height:1.48;letter-spacing:.02em;margin:0 0 17px;color:#234c68}.hero-accent{position:relative;z-index:0;white-space:nowrap}.hero-accent:after{content:"";position:absolute;bottom:.05em;left:-.03em;right:-.03em;height:.25em;background:#d5ecdf;border-radius:4px;z-index:-1}.home-math-art{display:block;width:100%;height:auto;max-width:260px;justify-self:end}.bank-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:#32789e;padding:7px 11px;border-radius:8px;background:#e5f3fc;border:1px solid #d3e9f7;white-space:nowrap}.bank-badge .icon{width:15px;height:15px;flex-basis:15px}.home-lead{font-size:15px;line-height:1.9;color:#617d90;margin:4px 0 19px;letter-spacing:.015em}.home-features{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:13px 0 0;border-top:1px solid #dcebf5}.home-features>div{display:flex;align-items:center;gap:9px;font-size:13px;color:#476c84;font-weight:550;white-space:nowrap}.feature-icon{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:10px}.feature-icon .icon{width:18px;height:18px;flex-basis:18px;stroke-width:1.7}.feature-blue{background:#e1effa;color:#378cb9}.feature-mint{background:#e1f1e9;color:#4e987d}.feature-apricot{background:#fff0df;color:#c78e55}#home .settings-card{margin:0 0 24px;padding:25px 26px 22px;border-color:#d2e5f2;border-radius:22px;box-shadow:0 8px 25px #4c7e9c09;background:#fff}.home-settings-heading{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:22px}.home-settings-heading h2{font-size:17px;font-weight:650;margin:0;line-height:1.6;letter-spacing:.015em;color:#345d76}.home-review-status{display:flex;align-items:center;gap:4px;font-size:11px;line-height:1.6;color:#a27c57;white-space:nowrap}.home-review-status .icon{width:14px;height:14px;flex-basis:14px}#home .field-grid{gap:17px}#home label,#home legend{font-size:13px;margin-bottom:9px;color:#577c93;font-weight:550;gap:6px}#home label .icon,#home legend .icon{width:16px;height:16px;flex-basis:16px;color:#80a6bc}#home select{min-height:47px;border-radius:11px;background:#f7fbfe;border-color:#d8e8f3;font-size:15px;padding:10px 36px 10px 13px}#home .select-wrap>.icon{top:14px;color:#7e9fb3}#home .question-count{margin-top:21px}#home .counts{gap:10px}#home .counts button{min-height:58px;border-radius:12px;background:#fbfdff}#home .counts button>span:first-child{font-size:22px}#home .counts .selected{border-color:#5ca7d1;background:#e9f6ff;box-shadow:0 2px 6px #3392c70a}#home .counts .recommended{font-size:9px}#home .available{margin:12px 0 11px;font-size:11px;color:#7a94a4}#home #start{min-height:54px;margin-top:0;border-radius:12px;background:#2785b8;border-color:#2785b8;box-shadow:0 3px 0 #1a6d9b;font-size:15px;font-weight:650;letter-spacing:.025em}#home #start:hover{background:#1d76a8}#home #start .icon{width:20px;height:20px;flex-basis:20px}#home #review,#home #resume{min-height:43px;margin-top:13px;border-radius:11px;font-size:12px;background:#f7fbfe;border-color:#e0edf5;color:#66879d;padding:10px 8px}#home #review:disabled{opacity:.65}#home #load{margin-top:14px}#home #load:empty{display:none}#home .how-to{margin:20px 0 16px}#home .how-to h2{font-size:13px;font-weight:550;color:#7b94a4;margin-bottom:15px}#home .tips>div{font-size:11px;gap:7px}#home .tip-icon{width:33px;height:33px;background:transparent;border-color:#d4e5f0;border-radius:50%}#home .tip-icon .icon{width:17px;height:17px;flex-basis:17px}#home .home-note{font-size:11px;line-height:1.9;margin:20px 0 0;color:#8297a5}.home-credit{font-size:10px;color:#8ba1af;letter-spacing:.025em;text-align:center;margin:18px 0 0}
@media(max-width:600px){.practice-app .header-inner{padding:0 18px;min-height:57px}.practice-app .brand-logo{width:107px}.practice-app .header-caption{font-size:10px;letter-spacing:.02em}.practice-app.on-home main{padding:0 18px 35px;margin-top:18px}.home-hero{margin-bottom:20px}.home-hero-grid{grid-template-columns:minmax(0,1fr) 122px;gap:10px}.home-hero .eyebrow{font-size:10px;letter-spacing:.04em;margin:0 0 9px}.home-hero h1{font-size:30px;line-height:1.48;letter-spacing:0;margin-bottom:12px;white-space:nowrap}.home-math-art{width:142px;max-width:none;margin-right:-8px}.bank-badge{font-size:10px;padding:5px 8px;gap:5px;border-radius:7px}.bank-badge .icon{width:13px;height:13px;flex-basis:13px}.home-lead{font-size:12px;line-height:1.8;margin:12px 0 14px}.home-features{gap:6px;padding-top:11px}.home-features>div{font-size:10px;gap:5px}.feature-icon{width:26px;height:26px;flex-basis:26px;border-radius:8px}.feature-icon .icon{width:15px;height:15px;flex-basis:15px}#home .settings-card{padding:18px 17px 17px;margin-bottom:18px;border-radius:18px}.home-settings-heading{margin-bottom:17px}.home-settings-heading h2{font-size:15px}.home-review-status{font-size:10px}.home-review-status .icon{width:12px;height:12px;flex-basis:12px}#home .field-grid{grid-template-columns:1fr;gap:13px}#home label,#home legend{font-size:12px;margin-bottom:7px}#home select{min-height:45px;font-size:16px;padding-block:9px;border-radius:10px}#home .select-wrap>.icon{top:13px}#home .question-count{margin-top:17px}#home .counts button{min-height:50px;padding:6px 8px;border-radius:11px}#home .counts button>span:first-child{font-size:21px}#home .counts small{font-size:12px}#home .counts .recommended{font-size:9px}#home .available{font-size:10px;line-height:1.6;margin:10px 0}#home #start{min-height:50px;font-size:14px;padding:12px 13px}#home #review,#home #resume{min-height:40px;font-size:11px;margin-top:12px}#home .how-to{margin:19px 0 14px}#home .home-note{font-size:10px;margin-top:17px}.home-credit{margin-top:15px}}
@media(max-width:350px){.practice-app.on-home main{padding-inline:16px}.practice-app .header-inner{padding-inline:16px}.home-hero-grid{grid-template-columns:minmax(0,1fr) 87px;gap:8px}.home-hero h1{font-size:26px}.home-math-art{width:108px;margin-right:-8px}.home-hero .eyebrow{font-size:9px}.bank-badge{font-size:9px;padding-inline:6px}.home-lead{font-size:11px}.home-features>div{font-size:9px;gap:4px}.feature-icon{width:23px;height:23px;flex-basis:23px}.home-settings-heading h2{font-size:13px}.home-review-status{font-size:9px}#home .settings-card{padding:16px 14px}#home .counts{gap:8px}}

@media(min-width:351px) and (max-width:600px){.bank-badge{font-size:11px}.home-features>div{font-size:11px}}
@media(max-width:350px){.bank-badge{font-size:10px}}

/* v20: problem-specific visual reasoning */
.geometry-lesson{margin:18px 0;padding:15px 12px;border:1px solid #cde0ee;border-radius:16px;background:#f6faff}
.geometry-lesson>h3{font-size:17px;margin:0 0 12px;color:#244e72}
.geometry-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.geometry-tabs button{min-width:38px;min-height:38px;border:1px solid #b7cddd;border-radius:10px;background:white;color:#35546c;padding:6px 12px;font-size:15px;font-weight:700}
.geometry-tabs button[aria-pressed=true]{background:#176da7;color:white;border-color:#176da7}
.geometry-tabs button:focus-visible{outline:3px solid #f2ac54;outline-offset:2px}
.geometry-stage{background:white;padding:12px 8px;border-radius:12px}
.geometry-stage h4{font-size:16px;margin:0 0 9px;color:#283c50}
.geometry-instruction-img{display:block;width:100%;max-width:440px;height:auto;margin:auto}
.geometry-original{display:block;max-width:100%;max-height:380px;width:auto;height:auto;margin:8px auto 15px}
.geometry-key{display:flex;flex-wrap:wrap;gap:7px 12px;margin:14px 0 9px;font-size:14px;line-height:1.65}
.geometry-key>span{border-bottom:3px solid var(--angle-color);color:var(--angle-color);font-weight:700}
.geometry-key>span:before{content:'●';margin-right:5px}
.geometry-description{font-size:15px;line-height:1.85;margin:10px 0 2px;color:#33485c}
.geometry-formula{overflow-x:auto;padding:4px 0;font-size:16px}
.geometry-formula .katex-display{margin:10px 0;text-align:left}
@media(max-width:350px){.geometry-lesson{padding:12px 8px}.geometry-stage{padding:10px 5px}.geometry-key{font-size:13px}.geometry-description{font-size:14px}}

/* v21: legends for exact function models and annotated geometry. */
.geometry-formula [data-tex]{display:block;margin:8px 0;color:#147bb8}
.geometry-formula .formula-1{color:#278467}.geometry-formula .formula-2{color:#bc563c}.geometry-formula .formula-3{color:#8b65ad}
.geometry-formula table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.6;margin:12px 0}
.geometry-formula th,.geometry-formula td{padding:6px 9px;border-bottom:1px solid #dce7ee;text-align:center}
.geometry-formula caption{text-align:left;color:#4c697d;font-size:13px;margin-bottom:5px}
.geometry-tabs{max-height:140px;overflow-y:auto}
.geometry-progress{font-size:12px;color:#647e90;margin:0 0 12px}
.geometry-reading{padding:14px 13px;background:#f0f7fc;border-radius:10px;line-break:strict;overflow-wrap:anywhere}
.geometry-reading h5,.geometry-equations h5{font-size:14px;color:#315e7c;margin:0 0 7px}
.geometry-reading .geometry-description{margin:0;white-space:pre-line;font-size:16px;line-height:1.9}
.geometry-equations{margin-top:18px;border-top:1px solid #d7e7f2;padding-top:16px;min-width:0}
.geometry-equation{min-width:0;margin-top:12px}.geometry-equation p{font-size:15px;line-height:1.85;margin:0 0 6px;color:#3b566b}
.geometry-formula{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.geometry-formula .prose-step{white-space:normal;overflow-wrap:anywhere}
.geometry-tabs[hidden]{display:none}.geometry-tabs button{font-size:13px;min-height:44px}
.geometry-navigation{display:flex;justify-content:space-between;gap:14px;margin-top:18px}
.geometry-navigation button{width:auto;min-height:44px;border:1px solid #c6dceb;border-radius:9px;background:#f3f9fd;color:#285b7c;font-size:14px;padding:9px 16px}
.geometry-navigation button:disabled{opacity:.4}.geometry-navigation button:focus-visible{outline:3px solid #f2ac54;outline-offset:2px}
.review-controls select{min-width:0;max-width:100%;text-overflow:ellipsis}.review-controls{min-width:0}.graph-example,.geometry-lesson,.geometry-stage{min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:500px){.review-controls select{flex-basis:100%}.geometry-stage{padding:12px 7px}.geometry-key{font-size:14px}.geometry-reading{padding:12px 10px}.geometry-reading .geometry-description{font-size:15px}.geometry-instruction-img{max-width:100%}.geometry-equation p{font-size:14px}}

.geometry-key>span{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:2px}.geometry-key .katex{font-size:1.05em}
.lesson-phases{display:flex;gap:5px;margin:12px 0 14px}
.lesson-phases button{flex:1;min-width:0;min-height:44px;padding:8px 3px;border:1px solid #c4d9e7;border-radius:9px;background:#fff;color:#47677e;font-family:inherit;font-size:13px;font-weight:700;line-height:1.4}
.lesson-phases button[aria-pressed=true]{background:#e7f3fb;border-color:#287aa9;color:#14567f;box-shadow:inset 0 -3px #287aa9}
.lesson-phases button:disabled{opacity:.4}.lesson-phases button:focus-visible{outline:3px solid #e6a257;outline-offset:2px}
.guided-lesson .geometry-instruction-img{width:auto;max-width:100%;height:auto;max-height:300px;object-fit:contain}
.lesson-beat{margin-top:10px;padding:13px 12px;background:#f0f7fc;border-radius:10px;min-height:118px;min-width:0}
.lesson-beat-label{font-size:13px;font-weight:700;color:#276080;margin:0 0 7px}
.lesson-beat .geometry-description{margin:0;font-size:16px;line-height:1.85;overflow-wrap:anywhere}
.lesson-beat .geometry-key{margin:9px 0 0}.lesson-beat .geometry-formula{font-size:17px}
.lesson-coordinates,.lesson-original{margin-top:14px;font-size:14px;color:#43667e}
.lesson-coordinates summary,.lesson-original summary,.solution-full>summary{padding:12px 3px;cursor:pointer;min-height:44px;box-sizing:border-box}
.solution-full{border:1px solid #d4e1eb;border-radius:12px;padding:3px 14px;margin:18px 0;background:white;min-width:0}
.solution-full>summary{font-weight:700;color:#315b76;font-size:15px}
.solution-full .solution-focus{margin-top:12px}.solution-full[open]{padding-bottom:14px}
@media(max-width:360px){.lesson-phases button{font-size:12px}.lesson-beat{padding:12px 9px}.lesson-beat .geometry-description{font-size:15px}}
