:root{font-family:system-ui,sans-serif;color:#edf2ff;background:#0b132c;font-size:18px}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1200px;margin:auto;padding:28px 32px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #2b3655}.brand{font-weight:900;letter-spacing:.04em;color:#fff;text-decoration:none}.brand span{color:#6cebd0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #576487;border-radius:12px;padding:12px 20px;background:#202e50;color:#fff}button:hover{filter:brightness(1.16)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #fff;outline-offset:4px}button:disabled{opacity:.5;cursor:default}h1{font-size:clamp(40px,6.5vw,76px);line-height:1.06;letter-spacing:-.04em;margin:22px 0}em{font-style:normal;color:#6cebd0}p{color:#bdc9e7;line-height:1.6}.eyebrow{font-size:14px;font-weight:800;letter-spacing:.14em;color:#6cebd0;margin-top:32px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:36px 0}.card{text-align:left;border:0;padding:28px;display:flex;flex-direction:column;gap:20px;color:#101b35;min-height:295px;border-radius:22px}.mint{background:#6cebd0}.gold{background:#ffd36a}.violet{background:#c4b5ff}.card strong{font-size:32px;line-height:1.15;letter-spacing:-.03em}.number{font-size:14px;letter-spacing:.08em;font-weight:800}.card b{margin-top:auto;font-size:16px}aside,footer{color:#aab9d9;font-size:14px}footer{margin-top:36px}h2{font-size:36px;margin-bottom:12px;letter-spacing:-.03em}.panel{background:#152140;border:1px solid #344463;border-radius:20px;padding:24px;margin:24px 0}.row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0}.primary{background:#6cebd0;color:#0b2430;border-color:#6cebd0;font-weight:750}input[type=number]{width:135px;padding:12px;background:#0b132c;color:white;border:1px solid #7887a9;border-radius:10px}select{padding:10px;background:#0b132c;color:white;border:1px solid #7887a9;border-radius:10px}progress{width:100%;accent-color:#6cebd0;height:18px}.question{font-size:48px;font-weight:800}.feedback{min-height:32px;color:#ffdb8e}.word{font-size:clamp(28px,5vw,54px);min-height:170px;display:grid;place-items:center;text-align:center;padding:16px;overflow-wrap:anywhere}.story{line-height:2;max-width:800px}.story mark{background:#ffdc81;color:#14203a}.maze-layout{display:flex;gap:30px;align-items:start;flex-wrap:wrap}canvas{max-width:100%;height:auto;display:block;background:#0b132c;border-radius:12px}.pad{display:grid;grid-template-columns:repeat(3,64px);gap:8px}.pad button{padding:14px}.pad .up{grid-column:2}.pad .left{grid-column:1}.small{font-size:14px;color:#bdc9e7}dialog{max-width:540px;border:1px solid #6cebd0;border-radius:24px;background:#152140;color:white;padding:32px}dialog::backdrop{background:#030817db}[hidden]{display:none!important}@media(max-width:760px){header,main,footer{padding:22px}.cards{grid-template-columns:1fr}.card{min-height:220px}header{gap:12px}.brand{font-size:16px}header button{font-size:14px}h2{font-size:30px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.profile-strip{border-bottom:1px solid #344463;padding-bottom:12px}.profile-strip p{margin:5px 0}input:not([type=range]){padding:12px;background:#0b132c;color:white;border:1px solid #7887a9;border-radius:10px}#profileForm>label{display:block;margin:14px 0 8px}.sentence{padding:24px;border:2px dashed #677a9f;border-radius:14px;min-height:96px;font-size:24px}.coral{background:#ffb6a0}.blue{background:#94ceff}.track{position:relative;border-bottom:6px solid #647aa2;height:60px;margin:24px 16px}.track span{position:absolute;left:0;color:#6cebd0;font-size:40px;bottom:0;transform:translateX(-50%)}table{width:100%;border-collapse:collapse;text-align:left}caption{text-align:left;font-weight:bold;margin:20px 0}th,td{padding:12px 5px;border-bottom:1px solid #344463}th{font-size:14px}#speed{display:block;width:100%;margin-top:18px}

.space{background:#aac4ff}.check-label{display:flex;align-items:center;gap:10px}.check-label input{width:20px;height:20px}.galaxy-controls button{min-width:88px;touch-action:none}#galaxyBoard{width:min(100%,600px);height:auto;margin:auto}#galaxyStatus{font-size:16px}

header{flex-wrap:wrap}header .brand{margin-right:auto}#familyDialog{width:min(94vw,680px);max-width:680px;max-height:90vh;overflow:auto}#familyProgress p{padding-bottom:12px;border-bottom:1px solid #344463}

#accountDialog{max-width:640px;max-height:90vh;overflow:auto}#accountForm label{display:block;margin:16px 0 8px}#accountActions button{margin:6px 4px 6px 0}

#changePasswordForm label,#recoverForm label{display:block;margin:16px 0 8px}#changePasswordForm input,#recoverForm input{width:100%}#changePasswordButton{margin-top:20px}#recoveryPanel{border:2px solid #ffd36a;padding:18px;margin-top:20px;border-radius:14px}#hideRecovery{margin-top:12px}
/* Keep long story names, native file pickers and media controls within small panels. */
input,select,textarea,audio{max-width:100%;min-width:0}
.row>label{min-width:0;max-width:100%}
#storyFile,#instructionAudio{width:100%}
#storyPick,#sentenceMission,#libraryPick{max-width:100%}
.story,#instructionTranscript,#familyProgress{overflow-wrap:anywhere}
@media(max-width:480px){.row>label{display:flex;flex-direction:column;align-items:flex-start;gap:6px} .panel{padding:18px} .question{font-size:34px} #storyPick,#sentenceMission,#libraryPick{width:100%} textarea{font:inherit} }
.math-model{padding:18px;border:2px solid #6cebd0;border-radius:14px;line-height:2;overflow-wrap:anywhere;font-size:22px;background:#0b132c;white-space:pre-wrap}
#mathLesson h3{font-size:28px;margin:12px 0}#mathLesson h4{font-size:22px;margin-bottom:10px}#lessonPrompt{display:block;margin-top:20px}#mathLesson{overflow-wrap:anywhere}
@media(max-width:480px){#mathLesson{padding:14px;margin-left:-8px;margin-right:-8px}.math-model{padding:12px;font-size:20px}}

#featureFields{border:1px solid #576487;border-radius:12px;padding:18px}#featureFields label{margin-top:18px}#featureFields p{margin-top:8px}#advancedPanel{overflow-wrap:anywhere}

#companionDialog{width:min(94vw,720px);max-width:720px;max-height:90vh;overflow:auto}#companionText{display:block;width:100%;font:inherit;padding:12px}#companionMessages{max-height:40vh;overflow:auto;overflow-wrap:anywhere}#companionMessages p{padding:12px;background:#0b132c;border-radius:12px}#companionAudio{width:100%}

#roomsDialog{width:min(94vw,740px);max-width:740px;max-height:90vh;overflow:auto;overflow-wrap:anywhere}#joinRoomForm label{display:block;margin:12px 0}#joinRoomForm input{display:block;max-width:100%}#roomPeerAudio{width:100%}#myRooms button{display:block;max-width:100%;overflow-wrap:anywhere;margin:8px 0}#roomVoice{border:1px solid #6cebd0;border-radius:12px;padding:16px;margin:16px 0}
#companionMicPanel{border:1px solid #6cebd0;border-radius:12px;padding:16px;margin:16px 0;overflow-wrap:anywhere}#companionMicPanel label{display:block;margin:8px 0}#companionMic{display:block;width:100%;max-width:100%;margin-bottom:12px}#companionMicLevel{display:block;width:100%;height:24px}#companionRecordedAudio{width:100%}
/* Conversation has one scroll surface; composer and Stop remain reachable. */
body:has(dialog[open]:not(#companionDialog)){overflow:hidden}
#companionDialog{padding:0;width:min(94vw,800px);max-width:800px;height:min(88dvh,850px);max-height:88dvh;overflow:hidden;box-sizing:border-box}
#companionDialog[open]{display:flex;flex-direction:column}
.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid #354563;flex-shrink:0}
.chat-heading h2{font-size:24px;margin:0}.chat-heading .eyebrow{font-size:10px;margin:0 0 5px}
#companionScroll{overflow-y:auto;overflow-x:hidden;min-height:0;flex:1;padding:18px 22px;overscroll-behavior:contain}
.chat-intro{font-size:14px;color:#b9c7e4;margin:0 0 12px}
#companionMessages{max-height:none;overflow:visible;display:flex;flex-direction:column;gap:14px;margin-top:18px}
#companionMessages .chat-message{margin:0;padding:12px 16px;max-width:88%;line-height:1.6;border-radius:16px;white-space:pre-wrap}
#companionMessages strong{display:block;font-size:12px;margin-bottom:4px}
#companionMessages .from-you{align-self:flex-end;background:#234958;border-bottom-right-radius:4px}
#companionMessages .from-helper{align-self:flex-start;background:#22304b;border-bottom-left-radius:4px}
#companionOptions{font-size:14px;padding:0;border:0;background:none}#companionOptions summary{cursor:pointer;color:#a9e8dc}
#companionMicPanel{padding:12px 0;margin:0;border:0;border-radius:0}#companionMicHelp{margin:6px 0}#companionOptions p{font-size:13px}
.chat-composer{padding:12px 22px 16px;border-top:1px solid #354563;flex-shrink:0;background:#111d37}
.chat-input-row{display:flex;gap:8px;align-items:center}#companionText{flex:1;min-width:0;width:auto;border:1px solid #63748f;border-radius:12px;background:#0b1429;color:#f3f6ff;font:inherit;padding:12px}
.chat-voice-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chat-voice-actions button{margin:0}
#companionStatus{font-size:14px;line-height:1.4;min-height:20px;margin:0 0 9px}#companionCancel{border-color:#f5bd85;color:#ffe1bf}
.chat-live-note{font-size:11px;margin:8px 0 0;color:#b9c7e4}.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}
#roomVoice{border:0;border-top:1px solid #435574;border-radius:0;padding:14px 0}#roomMicSelect{display:block;width:100%;max-width:100%;margin:8px 0 14px}
@media(max-width:520px){#companionDialog{width:96vw;height:94dvh;max-height:94dvh}.chat-heading{padding:12px 14px}.chat-heading h2{font-size:20px}#companionScroll{padding:12px 14px}.chat-composer{padding:10px 14px}.chat-voice-actions button{padding:9px 11px;font-size:13px}#companionMessages .chat-message{max-width:94%}.chat-live-note{font-size:10px}}

/* Account controls stay in the header, outside parent settings. */
#accountMenu{position:relative;order:99;margin-left:auto}
#accountMenu summary{cursor:pointer;border:1px solid #6cebd0;border-radius:12px;padding:12px 18px;color:#6cebd0;font-weight:700}
#accountMenu summary:focus-visible{outline:3px solid white;outline-offset:4px}
.account-menu-panel{position:absolute;right:0;top:calc(100% + 10px);width:min(290px,calc(100vw - 44px));z-index:20;background:#152140;border:1px solid #576487;border-radius:16px;padding:16px;box-shadow:0 12px 35px #0008}
#accountIdentity{margin:0 0 12px;font-size:14px}
#accountMenuActions{display:flex;flex-direction:column;gap:8px}
#accountMenuActions button{width:100%;text-align:left}
#headerLogout{border-color:#f5bd85;color:#ffe1bf}
#accountMenuMessage{font-size:13px;margin:8px 0 0}
#accountMenuMessage:empty{display:none}
#childrenDialog{width:min(94vw,680px);max-width:680px;max-height:88dvh;overflow:auto}
#childrenDialog h2{margin:0;flex:1}#childrenDialog label,.sign-in-page label{display:block;margin:16px 0 8px}
#childrenDialog input,#childrenDialog select,.sign-in-page input{display:block;width:100%;max-width:100%}
#childrenDialog form button,.sign-in-page form button{margin-top:18px}
.child-account-row{border-top:1px solid #576487;margin-top:24px;padding-top:12px}
.child-account-row details{margin-top:18px}.child-account-row summary,.sign-in-page summary{cursor:pointer;font-weight:700}
.sign-in-page{max-width:760px}.sign-in-page h1{font-size:clamp(34px,6vw,58px)}.sign-in-page a{color:#6cebd0}

/* Compact clubhouse: conversations first, then the six activity tiles. */
header{padding:18px 24px;gap:10px}
header button,#accountMenu summary{font-size:14px;padding:10px 14px}
header .brand{font-size:17px}#accountMenu{margin-left:4px}
main{padding:20px 24px}
#home{font-size:16px}
#home .profile-strip{padding-bottom:12px;margin-bottom:20px}
#home .profile-strip .row{margin:0 0 8px;gap:10px}
#home .profile-strip button,#home .profile-strip select{font-size:14px;padding:8px 12px}
#home .profile-strip p{font-size:13px;margin:3px 0}
#home>.eyebrow{font-size:11px;margin:0 0 8px;letter-spacing:.12em}
#home h1{font-size:clamp(28px,3.2vw,38px);line-height:1.15;letter-spacing:-.025em;margin:0 0 10px}
#home>p:not(.eyebrow){font-size:16px;margin:0 0 20px;line-height:1.5}
.connection-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 16px}
.connection-cards:not(:has(button:not([hidden]))){display:none}
.connection-card{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:18px 20px;min-width:0;min-height:120px;text-align:left;border-radius:16px;background:#152140;line-height:1.4}
.connection-card strong{font-size:21px;line-height:1.2;letter-spacing:-.02em}
.connection-card>span{font-size:14px;color:#bdc9e7}
.connection-card b{font-size:13px;margin-top:auto;font-weight:650}
.companion-tile{border-color:#40796f}.companion-tile strong,.companion-tile b{color:#8bf2dc}
.together-tile{border-color:#6d6195}.together-tile strong,.together-tile b{color:#d2c4ff}
#home .cards{gap:14px;margin:0 0 18px;grid-template-columns:repeat(3,minmax(0,1fr))}
#home .card{min-height:172px;padding:18px;gap:9px;border-radius:16px;line-height:1.4;min-width:0}
#home .card .number{font-size:10px;letter-spacing:.08em}
#home .card strong{font-size:23px;line-height:1.15}
#home .card>span:not(.number){font-size:14px}
#home .card b{font-size:13px}
#home aside{font-size:13px}footer{margin-top:12px;padding:16px 24px;font-size:12px}
@media(max-width:900px){#home .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){header,main{padding:16px}header .brand{width:100%;margin-bottom:2px}#accountMenu{margin-left:auto}header button,#accountMenu summary{font-size:13px;padding:10px 11px}.connection-cards{grid-template-columns:1fr;gap:10px}.connection-card{min-height:108px;padding:15px 17px}.connection-card strong{font-size:20px}#home .cards{grid-template-columns:1fr;gap:10px}#home .card{min-height:148px;padding:16px}#home .card strong{font-size:22px}#home .profile-strip{margin-bottom:18px}}

#companionSecureHelp,#roomSecureHelp{font-size:13px;margin:8px 0}#companionSecureHelp a,#roomSecureHelp a{color:#8bf2dc}.sign-in-page li{margin:14px 0;line-height:1.6}
.subject-nav,.catalog-pages{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 24px}.subject-nav a,.catalog-pages a{color:#cbd7f0;border:1px solid #425170;border-radius:12px;padding:9px 13px;text-decoration:none;font-size:14px}.subject-nav a[aria-current],.catalog-pages a[aria-current]{color:#0b132c;background:#6cebd0;border-color:#6cebd0}.activity-art{width:100%;height:64px;flex:none}#home .card[hidden]{display:none}#home .card{gap:10px}

/* Companion stays in this document while the subject/game underneath changes. */
#companionDialog{position:fixed;inset:12px 12px 12px auto;margin:0;width:min(430px,calc(100% - 24px));height:calc(100dvh - 24px);max-height:none;max-width:none;z-index:50;box-shadow:0 12px 50px #0008}
#companionDialog .chat-heading{padding:12px;flex-wrap:wrap}#companionDialog .chat-heading h2{font-size:20px}#companionDialog .chat-heading button{font-size:12px;padding:8px}
#companionDock{position:fixed;right:18px;bottom:18px;z-index:40;background:#6cebd0;color:#0b132c;box-shadow:0 6px 24px #0006}
@media(min-width:1050px){body.companion-open{padding-right:454px}}
@media(max-width:1049px){#companionDialog{top:auto;height:min(78dvh,740px)}}

#historyDialog{width:min(92vw,760px);max-height:88dvh;overflow:auto}#historyDialog .panel{overflow-wrap:anywhere}#historyDialog button{margin:4px}

/* Compact original illustrations, no remote image requests. */
#home .activity-art{width:100%;height:96px;object-fit:contain;background:#18364d;border-radius:12px}

.subject-mobile{display:none}#bibleStories button{margin:6px}#bibleNarration{border-block:1px solid #425170;padding:16px 0;margin:16px 0}#bibleNarration audio{width:100%;margin-top:12px}#bibleLibrary select{max-width:100%}#bibleVerses button{display:block;font-size:13px;margin:8px 0 20px}#bibleStories span{display:inline-block;margin:10px}
@media(max-width:760px){.subject-nav{display:none}.subject-mobile{display:flex;gap:10px;align-items:center;margin:0 0 20px}.subject-mobile select{flex:1;min-width:0;width:100%;font:inherit}#bibleLibrary{padding:16px}#bibleNarration button{padding:10px;font-size:14px}}

#bibleLibrary{margin-top:24px}#bibleLibrary section[hidden],#bibleLibrary form[hidden],#bibleLibrary article[hidden],#bibleLibrary div[hidden]{display:none}.bible-banner{padding:28px;background:linear-gradient(120deg,#17394a,#293154);border-radius:20px;margin-bottom:22px}.bible-banner h2{font-size:clamp(25px,4vw,36px);margin:8px 0}.bible-story-grid,.bible-study-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.bible-story-card{display:flex;flex-direction:column;text-align:left;gap:10px;padding:14px}.bible-story-card img{width:100%;border-radius:12px}.bible-story-card strong{font-size:22px}.bible-story-card span{font-size:14px;color:#bdc9e7}#bibleStoryStage{margin:28px 0;padding:24px;background:#152943;border-radius:20px}#bibleSceneArt{width:min(100%,600px);border-radius:18px}.bible-now{text-align:center;background:#193448;padding:30px;border-radius:24px;margin:24px 0}.bible-now>span{font-size:60px;color:#83efd4}#bibleCurrentVerse{font-size:21px;line-height:1.8;max-width:700px;margin:20px auto}.bible-study-grid article{padding:20px;background:#17233d;border-radius:16px}#bibleQuestionForm{padding:20px;background:#1d3550;border-radius:16px;margin:24px 0}#bibleQuestion{width:100%;display:block;margin:10px 0}#bibleTextSection{line-height:1.9}#bibleSelection select{max-width:100%}@media(max-width:560px){.bible-story-grid,.bible-study-grid{grid-template-columns:1fr}.bible-banner{padding:20px}#bibleSelection .row{display:block}#bibleSelection label{display:block;margin:12px 0}#bibleSelection select{display:block;width:100%}}

.lesson-diagram{margin:12px 0;padding:18px;border-radius:16px;background:#19394b}.lesson-diagram figcaption{font-weight:bold;color:#8af1db}.lesson-diagram li{padding:10px;margin:8px 0;background:#253f59;border-radius:10px}.fraction-parts{display:flex;height:60px;gap:3px;margin:15px 0}.fraction-parts span{flex:1;border:2px solid #8af1db}.fraction-parts .shaded{background:#8af1db}

.visual-studio{margin:28px 0;padding:26px;background:#152941;border-radius:22px}.visual-studio[hidden]{display:none}.visual-studio h2{font-size:28px}.visual-studio form{border-top:1px solid #486079;margin-top:24px;padding-top:20px}.visual-studio form label{display:block;margin-bottom:12px}.teaching-fraction{display:flex;gap:3px;height:76px;width:100%;margin:20px 0}.teaching-fraction span{flex:1;border:2px solid #77e6d1;border-radius:4px;min-width:0}.teaching-fraction .filled{background:#77e6d1}.water-picture{width:100%;max-width:700px;display:block;margin:20px auto}#waterSteps button[aria-pressed=true]{background:#77e6d1;color:#0b132c}#waterStageExplanation{font-size:20px;line-height:1.7}@media(max-width:560px){.visual-studio{padding:18px}.teaching-fraction{height:58px;gap:2px}.visual-studio input,.visual-studio select{max-width:100%}}

#words.story{white-space:pre-wrap}
