:root{--ink:#17324a;--deep:#173f5f;--blue:#2e6f95;--sky:#dceff6;--paper:#fffdf8;--cream:#f5efe2;--gold:#e9b44c;--green:#2f7d65;--red:#a14a3f;--line:#cad5dc;--shadow:0 18px 45px rgba(23,50,74,.13)}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(160deg,#e8f4f7 0,#f7f2e8 48%,#e7eef3 100%);color:var(--ink);font-family:ui-rounded,"Avenir Next",Avenir,"Segoe UI",sans-serif;min-height:100vh;font-size:18px}
button,select,input{font:inherit}
button{cursor:pointer;touch-action:manipulation}
.app-shell{width:min(920px,100%);min-height:100vh;margin:auto;padding:clamp(18px,4vw,44px)}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.brand-stack{display:grid;gap:4px}.breadcrumb{display:flex;align-items:center;gap:7px;font-size:.76rem;letter-spacing:.14em;font-weight:800;color:var(--blue)}.breadcrumb a{color:inherit;text-decoration:none}.breadcrumb a:hover,.breadcrumb a:focus-visible{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.breadcrumb a[aria-current=page]{color:var(--ink)}.brand-button{display:grid;text-align:left;border:0;background:transparent;color:var(--ink);padding:0}.site-title{font-family:Georgia,serif;font-size:clamp(1.55rem,4vw,2.3rem);font-weight:700}.brand-button:hover .site-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.topbar-actions{display:flex;align-items:center;gap:10px}.link-button{display:inline-flex;align-items:center;text-decoration:none}.hub-shell .brand-button:hover .site-title{text-decoration:none}
h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(1.55rem,4vw,2.3rem);margin-bottom:0}h2{font-family:Georgia,serif;font-size:clamp(1.6rem,5vw,2.65rem);line-height:1.16}h3{font-size:1.15rem}
.eyebrow{font-size:.76rem;letter-spacing:.14em;font-weight:800;color:var(--blue);margin-bottom:6px}.question-count{margin:0;color:#536c7d;font-weight:650}
.welcome-card,.question-card{background:var(--paper);border:1px solid rgba(23,63,95,.14);border-radius:24px;box-shadow:var(--shadow)}
.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.subject-card{display:flex;flex-direction:column;min-height:230px;padding:28px;border-radius:22px;border:1px solid rgba(23,63,95,.16);background:linear-gradient(145deg,#fffdf8,#e8f4f7);color:var(--ink);box-shadow:0 10px 30px rgba(23,50,74,.08);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.subject-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(46,111,149,.55)}.subject-card:focus-visible{outline:4px solid rgba(233,180,76,.65);outline-offset:3px}.subject-grade{font-size:.74rem;letter-spacing:.14em;font-weight:850;color:var(--blue);margin-bottom:20px}.subject-card strong{font-family:Georgia,serif;font-size:1.8rem;margin-bottom:12px}.subject-card>span:not(.subject-grade):not(.subject-open){line-height:1.5;color:#536c7d}.subject-open{margin-top:auto;padding-top:24px;font-size:.86rem;font-weight:800;color:var(--deep)}.site-footer{margin-top:40px;padding:20px 0;color:#627582;font-size:.78rem}.load-error{padding:18px;background:#f5e2de;color:#7d342b;border-radius:14px}
.catalog-intro{max-width:720px;margin:6vh 0 30px}.catalog-intro>p:last-child{line-height:1.65;color:#536c7d}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.review-card{display:flex;flex-direction:column;text-align:left;min-height:230px;padding:25px;border-radius:22px;border:1px solid rgba(23,63,95,.16);background:rgba(255,255,255,.86);color:var(--ink);box-shadow:0 10px 30px rgba(23,50,74,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.review-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(46,111,149,.55)}.review-card.unit{grid-column:1/-1;min-height:190px;background:linear-gradient(120deg,#173f5f,#265f7f);color:white}.review-number{font-size:.74rem;letter-spacing:.14em;font-weight:850;color:var(--blue);margin-bottom:20px}.review-card.unit .review-number{color:#bfe8f2}.review-card strong{font-family:Georgia,serif;font-size:1.55rem;margin-bottom:10px}.review-description{line-height:1.45;margin-bottom:22px}.review-meta{font-size:.82rem;color:#607787;margin-top:auto}.review-card.unit .review-meta{color:#dceff6}.review-facts{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.review-facts span{background:var(--cream);padding:8px 12px;border-radius:999px;font-size:.82rem;font-weight:750}.section-heading{font-size:1.15rem}
.review-card.test{background:linear-gradient(145deg,#fffdf8,#fff2cf);border-color:rgba(190,132,26,.42)}.review-card.test .review-number{color:#8a5a08}
.welcome-card{padding:clamp(24px,5vw,46px);margin-bottom:28px}.welcome-card>p:not(.eyebrow){max-width:680px;line-height:1.65}
.setup-actions,.choice-row,.lesson-nav{display:flex;gap:12px;flex-wrap:wrap}.setup-actions{margin-top:24px}.lesson-nav{justify-content:space-between;margin-top:22px}
.spelling-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.mode-button{display:flex;flex-direction:column;gap:8px;min-height:135px;padding:22px;text-align:left;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#edf6f8);color:var(--ink)}.mode-button strong{font-family:Georgia,serif;font-size:1.3rem}.mode-button span{color:#536c7d;line-height:1.45}.spelling-mode-grid>.secondary-button{grid-column:1/-1}
.primary-button,.secondary-button,.quiet-button,.audio-button,.knew-button,.review-button{border-radius:14px;border:0;min-height:50px;padding:12px 18px;font-weight:750}
.primary-button{background:var(--deep);color:white}.secondary-button{background:white;color:var(--ink);border:1px solid var(--line)}.quiet-button{background:rgba(255,255,255,.66);color:var(--deep);border:1px solid rgba(23,63,95,.18);min-height:42px;padding:8px 13px}
button:focus-visible,select:focus-visible,input:focus-visible{outline:4px solid rgba(233,180,76,.65);outline-offset:3px}
.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.section-button{display:flex;text-align:left;justify-content:space-between;align-items:center;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:16px;padding:17px;color:var(--ink);min-height:68px}.section-button span:last-child{font-size:.82rem;color:#607787}.disclosure{font-size:.78rem;color:#627582;margin:24px 4px 0;line-height:1.5}
.progress-row{display:flex;align-items:end;justify-content:space-between;gap:14px}.progress-track{height:9px;border-radius:8px;background:rgba(23,63,95,.13);overflow:hidden;margin:14px 0 20px}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .25s ease}
.question-card{padding:clamp(24px,5vw,48px)}.card-label,.answer-label{font-size:.72rem;letter-spacing:.15em;font-weight:850;color:var(--blue)}.question-card h2{max-width:760px;margin-bottom:26px}.audio-button{display:block;width:100%;font-size:1.08rem}.question-audio{background:var(--deep);color:white}.answer-audio{background:var(--gold);color:#32250c;margin-top:20px}.play-icon{margin-right:7px}.thinking-prompt{background:var(--cream);border-left:5px solid var(--gold);padding:15px 17px;margin:18px 0;border-radius:4px 12px 12px 4px;color:#5d4c2b;line-height:1.45}
.answer-panel{margin-top:18px;padding:22px;border-radius:16px;background:var(--sky);border:1px solid #b7d7e4}.answer-label{color:var(--green)}.answer-text{font-family:Georgia,serif;font-size:1.35rem;font-weight:700;line-height:1.45;margin-bottom:10px}.explanation-text{line-height:1.6;margin-bottom:0;color:#365368}
.spelling-help{margin-top:14px}.definition-text{margin:12px 0 0;padding:14px 16px;border-radius:12px;background:var(--cream);color:#5d4c2b;line-height:1.5}.spelling-form{margin-top:18px;padding:18px;border-radius:16px;background:var(--cream)}.spelling-form label{display:block;margin-bottom:10px}.spelling-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.spelling-entry input{min-width:0;min-height:52px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;background:white;color:var(--ink);font-size:1.15rem}.spelling-feedback{min-height:1.5em;margin:10px 0 0;font-weight:750}.spelling-feedback.correct{color:var(--green)}.spelling-feedback.incorrect{color:var(--red)}
.reading-card{margin:22px 0 24px;padding:22px;border-radius:16px;background:var(--cream);border:1px solid #dfd2b8}.reading-date{display:inline-block;margin-bottom:18px;padding:7px 11px;border-radius:999px;background:white;color:var(--deep);font-weight:850}.reading-body{font-family:Georgia,serif;font-size:1.08rem;line-height:1.72;color:#2e4050}.reading-body p:last-child{margin-bottom:0}
.recitations-brand{font-family:Georgia,serif;font-size:clamp(1.45rem,4vw,2.15rem);font-weight:700;color:var(--ink);text-decoration:none}.recitations-brand:hover{text-decoration:underline;text-underline-offset:5px}.recitation-quarter-grid,.recitation-item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.recitation-quarter-card,.recitation-item-card{display:flex;flex-direction:column;gap:12px;min-height:160px;padding:22px;text-align:left;border:1px solid rgba(23,63,95,.16);border-radius:18px;background:rgba(255,255,255,.88);color:var(--ink);box-shadow:0 8px 24px rgba(23,50,74,.07)}.recitation-quarter-card strong,.recitation-item-card strong{font-family:Georgia,serif;font-size:1.3rem}.recitation-quarter-card>span:last-child,.recitation-item-card>span:last-child{color:#536c7d;font-size:.9rem;line-height:1.45}.recitation-quarter-card .review-number{margin-bottom:0}.recitation-quarter-intro{margin-top:30px}.recitation-schedule-note,.recitation-hint{margin:22px 2px 0;color:#607787;font-size:.84rem;line-height:1.5}.recitation-practice-head{margin:24px 0 17px}.recitation-practice-head h1{font-size:clamp(1.4rem,4vw,2rem)}.recitation-citation{margin:8px 0;color:#536c7d;font-family:Georgia,serif;font-size:.92rem}.revealed-units{display:grid;gap:7px}.recitation-unit{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:start;padding:8px 11px;border-radius:10px;background:rgba(255,255,255,.82);border:1px solid rgba(23,63,95,.12)}.recitation-unit h2{font-family:inherit;font-size:.73rem;line-height:1.4;letter-spacing:.04em;color:var(--blue);margin:2px 0}.recitation-unit p{font-family:Georgia,serif;font-size:.92rem;line-height:1.42;margin:0;color:#2e4050;white-space:pre-line}.poetry-unit p{font-style:italic}.recitation-controls{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.recitation-controls button{min-height:44px;padding:10px 14px;font-size:.88rem}.recitation-controls #revealNext{flex:1 1 210px}.recitation-controls #readAloud{flex:1 1 190px}.recitation-controls #resetPractice{flex:0 0 auto}.recitations-shell audio{width:100%;margin-top:12px}
.question-figure{margin:22px auto 24px;max-width:430px}.question-figure img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--line)}.question-figure figcaption{margin-top:8px;color:#607787;font-size:.75rem;line-height:1.4;text-align:center}
.study-table-wrap{width:100%;overflow-x:auto;margin:18px 0 24px;border:1px solid #b7c7d2;border-radius:14px;background:white}.study-table{width:100%;border-collapse:collapse;min-width:560px;font-size:.9rem}.study-table th,.study-table td{border-right:1px solid #cad5dc;border-bottom:1px solid #cad5dc;padding:10px 12px;text-align:center;white-space:nowrap}.study-table tr:last-child>*{border-bottom:0}.study-table tr>*:last-child{border-right:0}.study-table thead th{background:var(--deep);color:white;font-size:.78rem;line-height:1.3}.study-table tbody th{background:#edf5f7;text-align:left}.study-table .blank-cell{height:44px;background:repeating-linear-gradient(135deg,#fff,#fff 9px,#f4f7f8 9px,#f4f7f8 10px)}.answer-panel .study-table-wrap{margin-top:12px}.answer-panel .study-table thead th{background:var(--green)}
.self-check{background:rgba(255,255,255,.7);padding:18px;margin-top:16px;border-radius:16px}.self-check p{font-weight:750;margin-bottom:10px}.choice-row button{flex:1}.knew-button{background:#d9efe7;color:#185c48}.review-button{background:#f5e2de;color:#7d342b}
.finish-view{max-width:760px;margin:10vh auto}.finish-view .welcome-card{text-align:center}.finish-view .setup-actions{justify-content:center}
dialog{border:0;border-radius:22px;padding:0;width:min(540px,calc(100% - 30px));box-shadow:var(--shadow);color:var(--ink)}dialog::backdrop{background:rgba(15,35,50,.55)}dialog form{padding:25px;display:grid;gap:14px}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font-size:1.6rem;margin:0}.voice-setting-group{display:grid;gap:8px;padding:14px;border-radius:14px;background:var(--cream)}.voice-setting-group p{margin:0;color:#607787;font-size:.78rem;line-height:1.4}label{font-weight:700}select,input[type=range]{width:100%}select{min-height:50px;border:1px solid var(--line);border-radius:12px;padding:8px;background:white;color:var(--ink)}
[hidden]{display:none!important}
@media(max-width:600px){body{font-size:16px}.app-shell{padding:16px}.topbar{align-items:flex-start}.topbar-actions{align-items:flex-end;flex-direction:column-reverse}.review-grid,.section-grid,.subject-grid,.spelling-mode-grid,.recitation-quarter-grid,.recitation-item-grid{grid-template-columns:1fr}.spelling-mode-grid>.secondary-button{grid-column:auto}.spelling-entry{grid-template-columns:1fr}.review-card.unit{grid-column:auto}.review-card,.subject-card{min-height:195px}.welcome-card,.question-card{border-radius:18px}.question-card{padding:24px 18px}.choice-row{display:grid;grid-template-columns:1fr}.lesson-nav button{flex:1}.progress-row{align-items:flex-start}.progress-row .quiet-button{font-size:.84rem}.recitation-unit{grid-template-columns:58px minmax(0,1fr);gap:7px;padding:7px 8px}.recitation-unit p{font-size:.86rem;line-height:1.38}.recitation-controls{display:grid;grid-template-columns:1fr}.recitation-controls #revealNext,.recitation-controls #readAloud,.recitation-controls #resetPractice{width:100%}}

.geography-shell{max-width:1440px}.geography-intro{margin-bottom:18px}.geography-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 18px}.geography-mode{display:flex;gap:7px}.geography-mode button{min-height:44px;padding:10px 17px;font-size:.9rem}.geography-audio-label{margin-left:auto;color:#536c7d;font-size:.88rem;font-weight:700}.geography-tools audio{width:min(340px,100%);min-height:40px}.geography-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:18px;align-items:start}.geography-map-frame{display:flex;justify-content:center;min-width:0;overflow:hidden;border:1px solid rgba(23,63,95,.15);border-radius:18px;background:#edf2f0}.geography-map{display:block;width:100%;max-width:800px;height:auto;touch-action:manipulation}.geography-context{fill:#dfe7e2;stroke:#aebbb4;stroke-width:.65;vector-effect:non-scaling-stroke}.geography-region,.geography-small-target{cursor:pointer;outline:none;touch-action:manipulation}.geography-shape{fill:#fffdf6;stroke:#aebbb4;stroke-width:.7;vector-effect:non-scaling-stroke;transition:fill .12s ease,stroke .12s ease}.geography-region:hover .geography-shape{fill:#eaf2ec}.geography-region:focus-visible .geography-shape{stroke:#173f5f;stroke-width:2.6}.geography-region[aria-pressed="true"] .geography-shape{fill:#f0c86a;stroke:#173f5f;stroke-width:2.2}.geography-target-hit{fill:transparent;stroke:transparent;stroke-width:1;vector-effect:non-scaling-stroke}.geography-small-target:hover .geography-target-hit,.geography-small-target:focus-visible .geography-target-hit{fill:rgba(233,180,76,.28);stroke:#173f5f;stroke-width:2}.geography-small-target[aria-pressed="true"] .geography-target-hit{fill:rgba(233,180,76,.6);stroke:#173f5f;stroke-width:2.5}.geography-answer{position:sticky;top:14px;padding:22px;border:1px solid rgba(23,63,95,.14);border-radius:18px;background:linear-gradient(145deg,#fffdf8,#e8f4f7);box-shadow:0 8px 24px rgba(23,50,74,.07)}.geography-answer .eyebrow{margin:0 0 12px}.geography-answer>p:not(.eyebrow){color:#536c7d;font-size:.92rem;line-height:1.5}.geography-selection-answer{min-height:2.5em;margin:8px 0 16px!important;color:var(--ink)!important;font-family:Georgia,serif;font-size:1.65rem!important;font-weight:700;line-height:1.2!important}.geography-answer #repeatAnswer{min-height:42px}.geography-map-note{margin-top:20px;padding-top:16px;border-top:1px solid rgba(23,63,95,.12);font-size:.8rem!important}.geography-source-note{margin:12px 2px 0;color:#758692;font-size:.72rem}
.memory-picture-country-fill{fill:#d99049;opacity:.3}.memory-picture-illustration{opacity:0;transform-box:fill-box;transform-origin:center;animation:memory-picture-morph .9s .12s cubic-bezier(.2,.85,.25,1.08) forwards;filter:drop-shadow(0 3px 3px rgba(23,63,95,.2))}.memory-microscope{opacity:0;transform-box:fill-box;transform-origin:bottom left;animation:memory-microscope-arrive 1s .5s cubic-bezier(.18,.88,.25,1.12) forwards;filter:drop-shadow(0 3px 4px rgba(23,63,95,.28))}.memory-athlete-character{opacity:0;transform-box:fill-box;transform-origin:center;animation:memory-athlete-tumble 2.6s .45s ease-in-out forwards;filter:drop-shadow(0 3px 4px rgba(23,63,95,.26))}@keyframes memory-picture-morph{0%{opacity:0;transform:scale(.72,.45)}62%{opacity:1;transform:scale(1.04,1.08)}100%{opacity:1;transform:scale(1)}}@keyframes memory-microscope-arrive{0%{opacity:0;transform:translate(55px,-50px) rotate(18deg) scale(.65)}70%{opacity:1;transform:translate(-3px,3px) rotate(-4deg) scale(1.04)}100%{opacity:1;transform:none}}@keyframes memory-athlete-tumble{0%{opacity:0;transform:translate(-34px,-32px) rotate(45deg) scale(.9)}12%{opacity:1;transform:translate(-30px,-28px) rotate(45deg) scale(1)}55%{opacity:1;transform:translate(-5px,-5px) rotate(40deg) scale(1)}63%{transform:translate(0,0) rotate(35deg) scale(1)}82%{transform:translate(12px,12px) rotate(-20deg) scale(1.02)}100%{opacity:1;transform:translate(24px,24px) rotate(-45deg) scale(1)}}
@media(max-width:850px){.geography-map-layout{grid-template-columns:1fr}.geography-answer{position:static;grid-row:1}.geography-map-frame{grid-row:2}.geography-map{max-width:620px}.geography-audio-label{margin-left:0}}
.geography-voice-label{color:#536c7d;font-size:.88rem;font-weight:700}.geography-voice-label select{width:auto;min-width:145px;min-height:42px;padding:6px 10px;font-size:.84rem}
.geography-song{margin-top:26px;padding:clamp(18px,3vw,30px);border:1px solid rgba(23,63,95,.14);border-radius:18px;background:#fffdf8}.geography-song .eyebrow{margin:0 0 8px}.geography-song h2{margin:0 0 16px;font-family:Georgia,serif;font-size:1.65rem}.geography-song audio{display:block;width:100%;max-width:440px}.geography-song-lyrics{margin-top:20px}.geography-song-lyrics summary{cursor:pointer;font-weight:700;padding:10px 0;min-height:44px}.geography-lyrics-stanzas{columns:2 22rem;column-gap:40px;font-size:1rem;line-height:1.65;overflow-wrap:anywhere}.geography-lyrics-stanzas p{break-inside:avoid;margin:0 0 22px}.geography-lyrics-note{font-size:.82rem;color:#536c7d;line-height:1.5;margin-bottom:0}
.capital-marker-building{fill:#e9b44c;stroke:#173f5f;stroke-width:1.4;vector-effect:non-scaling-stroke}.capital-marker-ground{fill:none;stroke:#173f5f;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}
.capital-marker{pointer-events:none;animation:capital-pop 1050ms ease-out forwards;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 2px 2px rgba(15,35,50,.35))}.capital-marker-halo{fill:rgba(255,253,246,.94);stroke:#173f5f;stroke-width:1.7;vector-effect:non-scaling-stroke}.capital-marker-buildings{fill:#e9b44c;stroke:#173f5f;stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}.capital-marker-window{fill:#173f5f;vector-effect:non-scaling-stroke}@keyframes capital-pop{0%{opacity:0;transform:scale(.45)}18%{opacity:1;transform:scale(1.18)}34%{opacity:1;transform:scale(1)}78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.82)}}@keyframes capital-fade{0%,12%{opacity:0}25%,80%{opacity:1}100%{opacity:0}}@media(prefers-reduced-motion:reduce){.capital-marker{animation:capital-fade 1050ms linear forwards}}
@media(max-width:600px){.geography-tools{align-items:stretch;flex-direction:column}.geography-mode button{flex:1}.geography-tools audio{width:100%}.geography-map-layout{gap:12px}.geography-answer{padding:17px}.geography-map-frame{border-radius:12px}}
.geography-map-column{min-width:0}.geography-map-view{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.geography-map-view button{min-height:42px;padding:9px 13px;font-size:.82rem}.geography-out-of-view{pointer-events:none!important}
.recitation-voice-label{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:.82rem}.recitation-voice-label select{width:auto;min-height:40px;padding:6px 10px;font-size:.8rem}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.spelling-details{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);text-align:left;font-size:.95rem;line-height:1.5}.spelling-details h2{font-size:1.15rem;margin:18px 0 8px}.spelling-facts{display:grid;grid-template-columns:minmax(110px,1fr) 3fr;gap:7px 14px}.spelling-facts dt{font-weight:750}.spelling-facts dd{margin:0;overflow-wrap:anywhere}.spelling-table-wrap{overflow-x:auto;margin:14px 0}.spelling-study-table{width:100%;border-collapse:collapse;font-size:.88rem;text-align:left}.spelling-study-table caption{font-weight:750;text-align:left;margin-bottom:8px}.spelling-study-table th,.spelling-study-table td{padding:10px 9px;vertical-align:top;border:1px solid var(--line);overflow-wrap:anywhere}.spelling-study-table thead{background:var(--cream)}.spelling-study-table tbody th{min-width:60px}.phonogram-reference{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:12px}.phonogram-reference summary{cursor:pointer;font-weight:750;min-height:30px}.spelling-details>p,.phonogram-reference>p{color:#536c7d;font-size:.88rem}
.marked-spelling{display:inline-flex;align-items:baseline;gap:.13em;font-size:1.08rem;white-space:nowrap;padding-top:.3em}.spelling-phonogram{position:relative;display:inline-block}.spelling-mark-underline{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1.5px}.spelling-mark-silent{text-decoration:underline double;text-underline-offset:.18em}.spelling-mark-long{text-decoration:overline;text-decoration-thickness:1.5px}.spelling-mark-broad:before,.spelling-mark-short:before{position:absolute;top:-.65em;left:0;right:0;text-align:center;line-height:1;content:'¨'}.spelling-mark-short:before{content:'˘'}.spelling-phonogram sup{position:relative;top:-.25em;font-size:.62em;margin-left:.06em}.phonogram-used{background:#f8dc8f;color:#1a3548;font-weight:800;text-decoration:underline;text-underline-offset:.14em;border-radius:3px;padding:1px 3px}.phonogram-sound-status{display:block;font-size:.85em;margin-top:4px;color:#354f62}
.table-practice-open{margin:0 0 18px;width:100%}.table-practice{margin:14px 0 22px;text-align:left}.table-practice>p{font-size:.9rem;line-height:1.5}.table-answer-bank{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.table-answer-tile,.table-slot{font:inherit;min-height:48px;padding:10px 12px;border:2px solid #9aafbd;border-radius:9px;background:white;color:var(--ink);cursor:pointer;white-space:normal;overflow-wrap:anywhere}.table-answer-tile{flex:1 1 145px;cursor:grab;font-size:.9rem}.table-answer-tile[aria-pressed="true"]{border-color:var(--blue);background:#e2eefb;outline:2px solid var(--blue)}.table-slot{width:100%;font-size:.87rem}.study-table:has(.table-slot){min-width:0;table-layout:fixed}.study-table:has(.table-slot) th,.study-table:has(.table-slot) td{white-space:normal;padding:6px;overflow-wrap:anywhere}.table-slot.placement-correct{border-color:#296343;background:#e5f4e9}.table-slot.placement-retry{border-style:dashed;border-color:#915319;background:#fff2df}.table-practice-actions{display:flex;gap:10px;flex-wrap:wrap}.table-answer-tile:focus-visible,.table-slot:focus-visible{outline:3px solid #173f5f;outline-offset:3px}#tablePracticeStatus{font-weight:700;min-height:1.5em}
.study-table:has(.table-slot) tr>:first-child{position:sticky;left:0;z-index:1}
.geography-map{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.geography-map.is-dragging,.geography-map.is-dragging *{cursor:grabbing!important}.geography-map:focus-visible{outline:3px solid var(--blue);outline-offset:-4px}.geography-navigation-help{font-size:.82rem;line-height:1.5;color:#536c7d;margin:0 0 12px}.geography-map-view{align-items:center}.geography-map-view output{font-size:.85rem;font-weight:700;min-width:52px}.geography-map-view button:disabled{opacity:.45;cursor:default}
body[data-subject="history"] .answer-panel .study-table{min-width:0}body[data-subject="history"] .answer-panel .study-table th,body[data-subject="history"] .answer-panel .study-table td{white-space:normal;overflow-wrap:anywhere;text-align:left;vertical-align:top}
body[data-subject="history"] .answer-panel .study-table thead th{overflow-wrap:normal}
.history-songs{margin:24px 0 12px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.5)}.history-songs>summary{padding:14px 0;min-height:44px;cursor:pointer;font-size:.95rem;font-weight:700}.history-songs-optional{font-weight:400;color:#536c7d;font-size:.85rem}.history-song{padding:14px 0 18px;border-top:1px solid var(--line)}.history-song h2{font-size:1.1rem;margin:0 0 9px}.history-song>p{font-size:.85rem;line-height:1.5;color:#536c7d}.history-song audio{display:block;width:100%;max-width:520px}.history-song-status:empty{display:none}.history-song-lyrics{margin-top:12px}.history-song-lyrics>summary{cursor:pointer;padding:10px 0;min-height:44px;font-size:.9rem;font-weight:600}.history-song-lyrics-text{max-height:24rem;overflow:auto;overscroll-behavior:contain;padding:0 12px;border-left:2px solid var(--line);font-size:.95rem;line-height:1.65;overflow-wrap:anywhere}.history-song-lyrics-text p{margin:0 0 22px}.history-song-lyrics-text:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.memory-scene{pointer-events:none}.memory-country-outline{fill:none;stroke:#173f5f;stroke-width:2.2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 2px rgba(23,63,95,.24))}.memory-sofa-back{fill:#497a8a;stroke:#173f5f;stroke-width:1.5;vector-effect:non-scaling-stroke;animation:memory-sofa-pop .55s cubic-bezier(.2,.9,.25,1.2) both}.memory-sofa-seat{fill:#315e70;stroke:#173f5f;stroke-width:1.5;vector-effect:non-scaling-stroke;animation:memory-sofa-pop .55s .08s cubic-bezier(.2,.9,.25,1.2) both}.memory-burger{animation:memory-burger-drop .8s .15s cubic-bezier(.2,.85,.25,1.15) both;transform-box:fill-box;transform-origin:center}.memory-burger-bun-top,.memory-burger-bun-bottom{fill:#e9a83a}.memory-burger-lettuce{fill:#5c9e52}.memory-burger-cheese{fill:#f3cc4c}.memory-burger-patty{fill:#77402c}.memory-grease-fill{fill:#f2c94c}.memory-grease{opacity:.9;animation:memory-grease-shimmer 1.25s .55s ease-in-out both}.memory-drip{fill:none;stroke:#eabf38;stroke-width:4;stroke-linecap:round;stroke-dasharray:90;stroke-dashoffset:90;vector-effect:non-scaling-stroke;animation:memory-drip 1s .65s ease-in forwards}.memory-drip-2{animation-delay:.8s}.memory-drip-3{animation-delay:.95s}.memory-athlete{animation:memory-athlete-slip 1.25s 1.35s cubic-bezier(.5,.05,.35,1) both;transform-box:fill-box;transform-origin:center}.memory-athlete-line{fill:none;stroke:#173f5f;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.memory-athlete-skin{fill:#bd784e;stroke:#173f5f;stroke-width:1;vector-effect:non-scaling-stroke}.memory-athlete-tunic{fill:#fffdf6;stroke:#173f5f;stroke-width:1.5;vector-effect:non-scaling-stroke}.memory-athens-bubble rect{fill:#fffdf6;stroke:#173f5f;stroke-width:1.5;vector-effect:non-scaling-stroke}.memory-athens-bubble text{fill:#173f5f;font:700 12px system-ui,sans-serif}.memory-athens-bubble{animation:capital-pop .55s ease-out both}@keyframes memory-sofa-pop{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes memory-burger-drop{0%{opacity:0;transform:translateY(-22px) rotate(-5deg)}70%{opacity:1;transform:translateY(3px) rotate(2deg)}100%{opacity:1;transform:none}}@keyframes memory-drip{to{stroke-dashoffset:0}}@keyframes memory-grease-shimmer{0%{opacity:0}60%{opacity:1}75%{opacity:.72}100%{opacity:.9}}@keyframes memory-athlete-slip{0%{opacity:0;transform:translate(-25px,-10px) rotate(0)}35%{opacity:1;transform:translate(-4px,-4px) rotate(0)}58%{transform:translate(2px,0) rotate(-14deg)}100%{opacity:1;transform:translate(10px,7px) rotate(72deg)}}@media(prefers-reduced-motion:reduce){.memory-scene *{animation-duration:.001ms!important;animation-delay:0ms!important}}
