.pupil-hub{max-width:860px;margin:auto}.hub-heading,.activity-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.hub-heading h1{max-width:540px;margin-bottom:0}.star-total{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;min-width:96px;padding:14px 18px;border-radius:18px;background:#fff3ce;color:#674309;border:1px solid #dfc77e;font-size:28px;font-weight:800}.star-total>span{color:#8b5d00}.star-total small{font-size:13px;width:100%;text-align:center;font-weight:650}.play-card{border:2px solid #c9c2ea;border-radius:28px;padding:36px;background:linear-gradient(130deg,#f0ecff,#fff);box-shadow:0 12px 30px #5145a50b;margin-bottom:28px}.play-card h2{font-size:clamp(25px,4vw,34px);line-height:1.25}.play-mark{float:right;display:grid;place-items:center;background:#5145a5;color:white;width:56px;height:56px;border-radius:18px;font-size:26px;margin:0 0 16px 20px}.play-complete{border-color:#9bc7b8;background:#eff8f3}.play-complete .play-mark{background:#25755a}.play-today{width:100%;max-width:440px;font-size:19px;min-height:64px;box-shadow:0 5px 0 #383073}.play-hint{margin:18px 0 0}.session-preview{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 12px}.session-preview span{font-size:14px;border-radius:10px;background:white;border:1px solid #d9d2ee;padding:8px 12px}.journey-card,.rally-invite,.collection-card,.library-panel{background:white;border:1px solid var(--line);border-radius:22px;padding:26px;margin-bottom:22px}.journey-card h2,.hub-extras h2{margin-top:0}.progress-road{list-style:none;padding:0;margin:25px 0;display:grid}.progress-road li{position:relative;display:flex;gap:18px;padding:0 0 28px}.progress-road li:last-child{padding-bottom:0}.progress-road li:not(:last-child):before{position:absolute;content:'';width:3px;left:18px;top:40px;bottom:0;background:#e0e2ed}.progress-road li>span{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px solid #c7ccda;background:#f7f8fa;color:#536176;font-weight:800}.progress-road .road-now>span{border-color:#5145a5;background:#5145a5;color:white;box-shadow:0 0 0 5px #eeebfa}.progress-road .road-done>span{border-color:#25755a;background:#e8f6ef;color:#185940}.progress-road p{margin:4px 0 0;font-size:15px;color:var(--muted)}.hub-extras{display:grid;grid-template-columns:1fr 1fr;gap:20px}.rally-invite{background:#faf5e8;border-color:#e5d7b0}.collection-card p{font-size:15px}.badge-list{list-style:none;padding:0;margin:16px 0 0}.badge-list li{background:#f3effc;border:1px solid #ded7f1;border-radius:12px;padding:12px;margin:8px 0;font-size:14px}.library-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;color:#40348c}.library-panel summary span{font-size:12px;background:#eeebfa;border-radius:8px;padding:5px 9px}.library-panel[open]>p{margin-top:18px}.library-panel .rule-card{border-radius:12px;padding:16px}.library-panel .rule-list{margin-top:18px}.library-panel .rule-card p{font-size:14px}.activity-wrap{max-width:740px;margin:auto}.activity-toolbar button{font-size:14px;min-height:44px}.session-strip{font-size:14px;padding:12px 16px;margin-bottom:18px;border-radius:12px;background:#eeebfa;color:#40348c}.pupil-activity h1{font-size:clamp(28px,5vw,38px)}.pupil-activity .progress-note{margin-bottom:10px}.pupil-activity>.assessment-progress{margin-bottom:24px}.pupil-activity .callout p{margin:8px 0 0}.pupil-activity .callout .revealed-word{font-size:30px;overflow-wrap:anywhere;font-weight:800}.pupil-activity form .actions>button{width:100%}.pupil-activity .choice{font-size:21px}.finish-card{max-width:640px;margin:auto;text-align:center}.finish-card .actions{justify-content:center}.finish-mark{width:78px;height:78px;display:grid;place-items:center;border-radius:50%;background:#e5f4ed;color:#1e674f;margin:0 auto 24px;font-size:40px}.finish-card .star-total{max-width:170px;margin:24px auto}.finish-card .small{max-width:440px;margin-left:auto;margin-right:auto}.rally-track{list-style:none;padding:0;display:flex;justify-content:space-between;gap:7px;margin:22px 0 28px}.rally-track li{width:42px;height:42px;display:grid;place-items:center;border:2px solid #c8cddd;border-radius:13px;background:#f6f7fa;color:#566074;font-weight:750}.rally-track li.current{border-color:#5145a5;box-shadow:0 0 0 4px #eeeafa}.rally-track li.collected{border-color:#25755a;background:#eaf5ef;color:#175d44}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}summary:focus-visible{outline:3px solid #d58b0e;outline-offset:5px}.activity-toolbar .sound-toggle{font-size:13px}.sound-toggle[aria-pressed=false]{background:#fff7df;color:#664600}
@media(max-width:600px){.hub-heading{align-items:flex-start}.hub-heading h1{font-size:29px}.hub-heading .star-total{min-width:76px;padding:10px;font-size:24px}.play-card{padding:25px 22px;border-radius:22px}.play-mark{width:44px;height:44px;border-radius:14px;font-size:22px;margin-left:12px}.play-card h2{clear:both}.hub-extras{grid-template-columns:1fr;gap:0}.journey-card,.rally-invite,.collection-card,.library-panel{padding:23px 20px}.pupil-activity{padding:25px 21px}.activity-toolbar{gap:10px}.activity-toolbar .sound-toggle{font-size:12px;padding:8px 10px}.rally-track li{width:36px;height:36px;border-radius:10px}.progress-road li{gap:15px}.library-panel .rule-card button{min-height:48px}.finish-card .actions{display:grid}.finish-card .actions>button{width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
header nav a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:600px){.pupil-activity .context-card{padding:12px;margin:14px 0}.pupil-activity .context-card .scene{min-height:72px;font-size:46px;margin:3px 0 10px}.pupil-activity .gap-sentence{font-size:22px;line-height:1.4;margin:0}.pupil-activity h1{margin-bottom:12px}.pupil-activity .audio-button{padding:14px;min-height:56px}.pupil-activity .status{font-size:13px;margin:8px 0}.activity-toolbar{margin-bottom:16px}}
 .mini-thesaurus{padding:1rem;margin:1rem 0;border:2px solid var(--line,#ddd);border-radius:1rem;overflow-wrap:anywhere}
 .mini-thesaurus h2{font-size:1.2rem}.mini-thesaurus dd{margin:0 0 .7rem 1rem}
 #lesson-meaning{width:100%;max-width:100%;min-height:48px;margin:.5rem 0 1rem;font:inherit;white-space:normal}
.monster-maker-invite{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(135deg,#f3efff,#fff8d9);border-color:#d8cff4}.monster-maker-invite h2{margin:0 0 6px}.monster-maker-invite p{margin-bottom:0}.monster-maker-invite .button{flex:none}@media(max-width:600px){.monster-maker-invite{display:block}.monster-maker-invite .button{width:100%;margin-top:16px}}
