:root{color-scheme:light;--paper:#f7f5ed;--ink:#344b3a;--muted:#7e8975;--green:#69845b;--line:#dfe3d4;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;min-width:340px}button,a,input{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;transition:background .18s,transform .18s}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #ac9857;outline-offset:4px}button:hover:not(:disabled){transform:translateY(-1px)}[hidden]{display:none!important}
.site-header{height:100px;margin:0 4.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:22px}.wordmark{display:flex;align-items:center;text-decoration:none;color:var(--ink);font-size:23px;font-weight:650;letter-spacing:-1px;white-space:nowrap}.brand-mark{background:#e7ecdb;border-radius:50%;height:39px;width:39px;text-align:center;line-height:37px;font-size:32px;color:#799065;margin-right:11px}.wordmark-period{color:#ba9a63}.header-note{font-size:9px;letter-spacing:2.2px;color:#929b86}.header-actions{display:flex;align-items:center;gap:8px}.nav-button,.icon-button{border:0;background:transparent;border-radius:24px;padding:11px 14px;font-size:11px}.nav-button:hover,.icon-button:hover{background:#e9eddf}.nav-button>span{font-size:16px;margin-right:5px;color:#7f906c}.icon-button{font-size:21px;width:42px;padding:8px}
.scene-heading{text-align:center;padding:34px 20px 0}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:550;color:#879678;display:flex;gap:9px;justify-content:center;align-items:center;margin:0 0 13px}.eyebrow>span:first-child{width:5px;height:5px;background:#9cae7f;border-radius:50%}.eyebrow-divider{color:#bbc2b0;margin:0 3px}h1{font:400 clamp(34px,3.5vw,49px)/1.14 var(--serif);letter-spacing:-1.6px;margin:0}h1 em{font-weight:400;color:#7c8e68}.subtitle{font-size:12px;color:#86917b;margin:12px 0 0}
.play-layout{max-width:1450px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:center;padding:0 4%;margin:0 auto}.world-column{min-width:0}.world{aspect-ratio:3/2;position:relative;width:100%}#game{width:100%;height:100%;display:block;touch-action:manipulation;border-radius:24px}.world-loading{position:absolute;inset:0;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7f9268;font-size:13px}.growing-leaf{font-size:44px;animation:breathe 1.5s infinite alternate}.scene-tag{position:absolute;left:6%;bottom:4%;display:flex;gap:14px;color:#81926c;letter-spacing:2px;font-size:8px;text-transform:uppercase;pointer-events:none}.scene-tag>span:last-child{border-left:1px solid #cdd6be;padding-left:14px;letter-spacing:1px}
.inventory{position:absolute;left:5%;top:5%;display:flex;align-items:center;gap:8px;background:#fffef6eb;box-shadow:0 5px 25px #52624212;border:1px solid #e4e7d8;border-radius:17px;padding:5px 15px 5px 4px;pointer-events:none}.inventory .item-art{width:60px;height:48px}.inventory small{display:block;font-size:7px;letter-spacing:1.4px;color:#8b997d;margin-bottom:4px}.inventory span:last-child{font:17px var(--serif)}.portal-button{position:absolute;right:3%;top:7%;border:1px solid #d8dfc7;background:#fffaf0ed;padding:12px 18px;border-radius:25px;font-size:11px;box-shadow:0 5px 25px #6a795b18}.portal-button>span{margin-left:8px}
.world-toolbar{display:flex;justify-content:center;align-items:center;gap:30px;margin:0 auto 10px}.world-toolbar p{font-size:10px;color:#929c86;display:flex;align-items:center;gap:12px}.keyboard-keys{border:1px solid #dce2d0;background:#fcfbf5;letter-spacing:4px;padding:6px;border-radius:6px;color:#7a8c67;font-size:15px}.direction-pad{display:grid;grid-template-columns:repeat(2,32px);gap:4px}.direction-pad button{height:31px;border:1px solid #d7dfca;background:#edf0e4;border-radius:8px;font-size:20px;touch-action:none}.direction-pad button:active{background:#d9e2cb}.world-access{max-width:670px;margin:15px auto 5px;text-align:center}.world-access summary{font-size:10px;color:#81906f;cursor:pointer;list-style:none}.world-access summary>span{color:#a1aa96;margin-left:8px}.world-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.world-actions button{border:1px solid #dce2d0;background:#fffdf5;border-radius:18px;font-size:11px;padding:8px 12px}
.lesson-panel{padding-top:20px}.visit-meta{display:flex;justify-content:space-between;align-items:center;color:#95a084;font-size:8px;letter-spacing:1.8px}.visit-meta b{display:inline-block;width:5px;height:5px;border-radius:50%;margin-left:5px;background:#dce2d1}.visit-meta b.active{background:#8a9e6e}.lesson-panel h2{font:400 29px/1.15 var(--serif);letter-spacing:-.5px;margin:14px 0 9px}.visit-story{font-size:11px;line-height:1.7;color:#8b9481;margin:0 0 21px;min-height:35px}.lesson-card{background:#fffdf6;border:1px solid #e1e5d5;border-radius:22px;box-shadow:0 15px 45px #576b4210;padding:20px;min-height:285px;overflow:hidden}.speaker{display:flex;align-items:center;gap:11px;border-bottom:1px solid #e9ecdf;padding-bottom:15px;margin-bottom:22px}.speaker-portrait{width:45px;height:45px;border-radius:50%;background:#e8eddc url('/assets/neighbors.png') no-repeat;background-size:210px 140px;background-position:-3px -3px;overflow:hidden}.speaker-portrait.leo{background-position:-3px -73px}.speaker>div>span{font-size:12px;font-weight:600}.speaker small{display:block;font-size:7px;letter-spacing:1.3px;color:#9aa58e;margin-top:4px}.speech-flower{margin-left:auto;font-size:27px;color:#ccb978}
.model-text{font:400 28px/1.3 var(--serif);letter-spacing:-.5px;margin:0 0 12px;color:#45613f}.model-text.hidden-caption{font-size:21px;color:#879479;font-style:italic}.instruction{color:#839078;font-size:11px;line-height:1.75;margin:10px 0 16px}.step-kind{font-size:7px;letter-spacing:1.7px;color:#a3ad96;text-transform:uppercase;margin:0 0 10px}.primary-button,.secondary-button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;border:0;border-radius:13px;min-height:44px;padding:12px 16px;font-size:12px}.primary-button{background:#718963;color:#fffef4;box-shadow:0 4px 12px #61774d15;margin-top:16px}.primary-button:hover{background:#617b53}.secondary-button{border:1px solid #dfe5d2;background:#f0f3e8;margin-top:10px;color:#6b7f5a}.text-button{border:0;background:transparent;font-size:11px;padding:10px;color:#7d8f67}
.lesson-tools{display:flex;justify-content:space-between;gap:4px;margin:13px 0}.lesson-tools button{border:0;background:transparent;font-size:17px;color:#7e9069;border-radius:10px;padding:8px}.lesson-tools span{font-size:9px;margin-left:3px}.lesson-progress{height:3px;background:#e4e8db;border-radius:4px;overflow:hidden;margin-top:22px}.lesson-progress>div{height:100%;background:#a9b78e;transition:width .4s}.quiet-note{font:italic 12px var(--serif);color:#a3ac96;text-align:center;line-height:1.5;margin:13px 0}.object-preview{display:flex;justify-content:center;margin:-10px 0 0}.item-art{display:block;flex-shrink:0;width:115px;height:92px;background-image:url('/assets/objects.png');background-repeat:no-repeat;background-size:600% 500%}.object-preview .item-art{width:150px;height:120px}.success-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:#ecf1de;color:#8a9f69;font-size:23px;margin:0 0 15px}.success-text{font:400 25px/1.25 var(--serif);margin:0 0 10px;color:#536f47}.help-note{border-left:2px solid #d6c186;background:#faf5e5;padding:10px 12px;color:#887447;font-size:11px;line-height:1.6;border-radius:0 8px 8px 0;margin:12px 0}
.choice-list{display:grid;gap:8px;margin-top:13px}.choice-button,.phrase-piece{border:1px solid #dbe3ce;background:#f5f6ed;padding:12px;border-radius:12px;font-size:13px;line-height:1.4}.choice-button:hover,.phrase-piece:hover{background:#e9efdc}.choice-button.suggested{border-color:#c4b26c;background:#fff3ce}.phrase-tray{display:flex;flex-wrap:wrap;gap:7px;min-height:48px;background:#f0f2e7;border:1px dashed #cfd9bd;padding:8px;border-radius:12px;margin:14px 0}.phrase-tray:empty:before{content:'Your words go here…';font-size:10px;color:#a0aa91;padding:6px}.phrase-piece{padding:9px 10px;font-size:12px}.phrase-bank{display:flex;flex-wrap:wrap;gap:7px}.phrase-tray .phrase-piece{background:#fffef6;border-style:solid}
.count-controls{display:flex;gap:18px;align-items:center;justify-content:center;margin:14px 0}.count-controls button{width:42px;height:42px;border:1px solid #d9e0cb;border-radius:50%;background:#edf1e2;font-size:23px}.count-controls output{font:38px var(--serif);min-width:35px;text-align:center}.microphone-button{width:65px;height:65px;border:0;border-radius:50%;background:#718b64;color:#fff;margin:12px auto;display:block;font-size:26px;box-shadow:0 0 0 7px #eff2e5}.microphone-button.recording{background:#b77562;box-shadow:0 0 0 7px #f4e3d8;animation:breathe 1s infinite alternate}.mic-label{text-align:center;color:#859476;font-size:10px;margin:12px 0}.transcript{border:1px solid #e6e7d9;background:#f8f7ed;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.6;margin-top:10px}.transcript small{display:block;font-size:7px;letter-spacing:1px;color:#99a08d}.completion-flower{font-size:52px;line-height:1;color:#b6a45e;margin:10px 0 15px}
.journey-strip{max-width:1180px;margin:28px auto 30px;padding:23px 18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:17px}.tiny-leaf{font-size:32px;color:#a2ad8d}.journey-strip p{font:17px var(--serif);margin:0 0 5px;color:#6c805b}.journey-strip>div>span{font-size:9px;color:#98a18d}.journey-strip>.text-button{margin-left:auto}footer{margin:0 4.5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:20px 0;color:#9ba58d;font-size:8px;letter-spacing:1.6px}footer>span:last-child{font-size:10px;letter-spacing:.1px}
dialog{border:1px solid #e1e5d7;border-radius:25px;background:var(--paper);color:var(--ink);padding:28px;width:min(900px,94vw);max-height:85vh;box-shadow:0 30px 100px #24382130}dialog::backdrop{background:#253a2d55;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.dialog-top .eyebrow{justify-content:flex-start;margin-bottom:8px}.dialog-top h2{font:400 35px var(--serif);letter-spacing:-1px;margin:0}.close-dialog{border:1px solid #dae0cf;background:#edf0e4;border-radius:50%;width:36px;height:36px;font-size:24px}.dialog-intro{font-size:12px;color:#8b967e;line-height:1.7;margin:12px 0 24px}
.places-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.place-card{position:relative;border:1px solid #dfe5d3;background:#fffdf5;border-radius:15px;overflow:hidden;padding:0;text-align:left;min-height:185px}.place-card img{display:block;width:100%;height:120px;object-fit:cover}.place-card>div{padding:13px}.place-card small{font-size:7px;letter-spacing:1.4px;color:#95a083}.place-card strong{display:block;font:19px var(--serif);margin:6px 0}.place-card span{font-size:9px;color:#8a977d}.place-card.current{border-color:#a8bb88;box-shadow:0 0 0 2px #dfe7d3}.place-card:disabled img{filter:saturate(.4)}
.journal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.word-card{border:1px solid #e0e5d5;border-radius:14px;background:#fffdf6;padding:12px;text-align:center}.word-card .item-art{margin:auto;width:90px;height:72px}.word-card button{border:0;background:transparent;font:21px var(--serif);padding:7px}.word-card p{font-size:10px;color:#919c83;margin:4px 0}.word-card small{font-size:8px;color:#819268;line-height:1.6}.journal-stats{display:flex;gap:25px;background:#ecf0e2;border-radius:14px;padding:20px;margin-bottom:20px}.journal-stats strong{display:block;font:30px var(--serif)}.journal-stats span{font-size:10px;color:#8e9a80}.empty-note{padding:35px;text-align:center;color:#8a977d;font:18px/1.6 var(--serif)}
#settings-dialog{max-width:540px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:25px 0;border-bottom:1px solid var(--line);font-size:13px}.setting-row small{display:block;font-size:11px;color:#98a38c;margin-top:7px}.setting-row input{accent-color:#718963;width:20px;height:20px}.setting-note{font-size:12px;line-height:1.8;color:#829173;margin:20px 0}.setting-note h3{font:22px var(--serif);color:#516a44;margin:0}.grownup{font-size:11px;line-height:1.8;color:#87937b;border-top:1px solid var(--line);padding-top:18px}.grownup summary{cursor:pointer}.danger{color:#a66a53}#reset-confirm{background:#f1e8dc;padding:14px;border-radius:12px;margin-top:10px}#review-dialog{max-width:540px}.review-choices{display:flex;justify-content:center;gap:12px;margin:25px 0}.review-choices button{background:#fffdf5;border:1px solid #dce2d0;border-radius:15px;padding:12px}.review-choices .item-art{width:90px;height:72px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.error-note{color:#a46e54}
.choice-row{display:flex;gap:7px}.choice-row .choice-button{flex:1;text-align:left}.choice-listen{border:1px solid #dbe3ce;background:#edf1e2;border-radius:12px;width:40px;flex-shrink:0;color:#81936e;font-size:19px}
.voice-preview{border-top:1px solid var(--line);padding:18px 0;color:#829173;font-size:11px;line-height:1.7}.voice-preview h3{font:22px var(--serif);color:#516a44;margin:0}.voice-preview-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.voice-preview-buttons button{margin:0;font-size:11px}.voice-preview a{color:#526d46}#voice-preview-status{min-height:20px}
@keyframes breathe{to{opacity:.65;transform:translateY(-2px)}}
@media(min-width:1500px){.play-layout{grid-template-columns:minmax(0,1fr) 370px;gap:35px}.lesson-card{padding:25px}.lesson-panel{margin-right:15px}}
@media(max-width:1050px){.header-note{display:none}.play-layout{grid-template-columns:minmax(0,1fr) 300px;gap:8px;padding:0 2%}.lesson-card{padding:16px}.world-toolbar{gap:10px}.world-toolbar p{font-size:8px}.keyboard-keys{display:none}.lesson-panel{padding-top:28px}.model-text{font-size:25px}}
@media(max-width:760px){.site-header{height:77px;margin:0 5%;gap:8px}.wordmark{font-size:19px}.brand-mark{width:30px;height:30px;line-height:29px;font-size:25px;margin-right:7px}.nav-button{font-size:0;padding:9px}.nav-button>span{font-size:22px;margin:0}.icon-button{width:31px;font-size:19px;padding:4px}.header-actions{gap:1px}.scene-heading{padding-top:25px}.eyebrow{font-size:7px;letter-spacing:1.3px}h1{font-size:37px}.subtitle{font-size:10px}.play-layout{display:flex;flex-direction:column;gap:12px;padding:0 5%}.world-column{width:100%}.world{width:110%;margin-left:-5%;margin-top:5px}.world-toolbar{justify-content:space-between;padding:0 5px;gap:10px}.world-toolbar p{max-width:200px;line-height:1.6;font-size:10px}.direction-pad{grid-template-columns:repeat(2,39px)}.direction-pad button{height:37px}.scene-tag{font-size:7px;bottom:2%}.lesson-panel{width:100%;max-width:520px;padding-top:10px}.lesson-panel h2{font-size:29px}.visit-story{margin-bottom:15px;min-height:auto}.lesson-card{min-height:240px;padding:20px}.model-text{font-size:29px}.lesson-tools button{font-size:21px;padding:8px 12px}.lesson-tools span{font-size:11px}.inventory{top:1%;left:2%;padding-right:10px}.inventory .item-art{width:47px;height:38px}.inventory small{font-size:6px}.inventory span:last-child{font-size:14px}.portal-button{top:1%;right:0;font-size:9px;padding:10px 13px}.journey-strip{margin:15px 5% 25px;padding:18px 0;gap:10px}.journey-strip p{font-size:15px}.journey-strip>.text-button{font-size:9px;max-width:90px;padding:5px}.journey-strip>div>span{font-size:8px}.world-access{margin-top:8px}.places-grid{grid-template-columns:repeat(2,1fr);gap:10px}.place-card img{height:90px}.place-card{min-height:170px}.place-card strong{font-size:16px}.place-card>div{padding:10px}.journal-grid{grid-template-columns:repeat(2,1fr)}dialog{padding:23px 18px}.dialog-top h2{font-size:29px}.dialog-intro{font-size:11px}.review-choices{gap:7px}.review-choices .item-art{width:72px;height:58px}footer{font-size:6px;letter-spacing:.8px}footer>span:last-child{font-size:8px;max-width:160px;text-align:right}.primary-button,.secondary-button{min-height:47px}.choice-button{min-height:45px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Local single-word auditions; do not alter the lesson layout. */
.word-audio-comparison { margin-top: 1.25rem; border-top: 1px solid #dfe3d4; padding-top: 1rem; }
.word-audio-comparison summary { cursor: pointer; font-weight: 600; }
.word-audio-comparison select { display: block; width: calc(100% - 1rem); max-width: 100%; margin: .5rem; padding: .5rem; border: 1px solid #dfe3d4; border-radius: .5rem; background: #fffdf4; color: inherit; font: inherit; }
.word-audio-row { padding: .6rem 0; border-top: 1px solid #e6e8dc; }
.word-audio-row h4 { margin: .5rem 0; }
.word-audio-clips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.word-audio-clips > div { display: flex; flex-direction: column; }
.word-audio-clips .secondary-button { padding: .65rem .3rem; font-size: .75rem; }
.word-audio-clips [aria-pressed="true"] { color: #355b30; font-weight: 700; }
.language-voice-samples { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.language-voice-samples h4 { margin: 0 0 8px; font: 22px var(--serif); color: #516a44; }
.voice-sample-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.voice-sample-row p { grid-column: 1/-1; margin: 0; font-size: 13px; overflow-wrap: anywhere; }
.voice-sample-row button { min-height: 44px; margin: 0; padding: 10px 8px; }
.meadow-hint { margin: 16px 0 0; padding: 13px 15px; border: 1px solid #e4c574; border-radius: 12px; background: linear-gradient(135deg,#fff9e6,#fbf0ce); color: #71541c; font-size: 13px; line-height: 1.65; }
.microphone-button.hinted-control { outline: 3px solid #e5b94e; outline-offset: 6px; box-shadow: 0 0 0 10px #f7d57530; }
/* Local keepsakes: painted objects, quiet choices, no scores or scarcity. */
#language-setting { max-width: 55%; min-height: 44px; border: 1px solid var(--line); border-radius: 9px; padding: 6px; background: #fffdf5; color: var(--ink); }
.play-layout { align-items: start; }
.lesson-panel { margin-top: 50px; }
.cozy-corner { margin: 24px auto 10px; padding: 22px; border: 1px solid #e0e3d2; border-radius: 24px; background: #fcfbf5; max-width: 690px; }
.corner-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.corner-heading .eyebrow { justify-content: flex-start; margin-bottom: 6px; }
.corner-heading h2 { font: 27px var(--serif); margin: 0; }
.corner-heading .secondary-button { width: auto; margin: 0; }
.corner-diorama { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 24px 12px 16px; margin-top: 20px; border-radius: 18px; background: radial-gradient(ellipse at 30% 0,#f3e9cb,transparent 70%),linear-gradient(#edf0df,#f4edda); position: relative; }
.corner-diorama::after { content: ''; position: absolute; left: 8%; right: 8%; bottom: 43px; height: 11px; background: linear-gradient(#d6c296,#c5ad7c); border-radius: 5px; box-shadow: 0 7px 12px #69562c19; pointer-events: none; }
.corner-slot { min-width: 0; height: 136px; position: relative; background: transparent; border: 1px solid transparent; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; z-index: 1; }
.corner-slot:hover:not(:disabled) { background: #fffdf343; border-color: #ccb983; }
/* Painted atlas cells are 5:4: preserve that ratio in each view. */
.corner-slot .item-art { width: 100px; max-width: 100%; height: 80px; flex-shrink: 0; filter: drop-shadow(0 6px 4px #66572d16); }
.slot-label { font-size: 12px; padding-top: 14px; }
.empty-sprig { display: grid; place-items: center; height: 78px; font: 32px var(--serif); color: #8b976b; }
.corner-slot.bloomed::before { content: ''; position: absolute; inset: 0 0 28px; border-radius: 50%; background: radial-gradient(#f8dfa876,transparent 65%); z-index: -1; }
.corner-slot.bloomed .item-art { transform: scale(1.08); }
#cozy-feedback:empty { display: none; }
.corner-butterfly { position: absolute; top: 10px; right: 14%; width: 3px; height: 16px; border-radius: 50%; background: #867451; transform: rotate(20deg); animation: butterfly-drift 6s ease-in-out infinite; }
.corner-butterfly::before,.corner-butterfly::after { content: ''; position: absolute; top: -2px; width: 11px; height: 16px; border-radius: 75% 45% 60% 45%; background: #dab87a; box-shadow: inset 2px 1px 4px #f4daa4; }
.corner-butterfly::before { right: 3px; transform: rotate(-20deg); }.corner-butterfly::after { left: 3px; transform: rotate(20deg); }
.cozy-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; }
.cozy-choice { flex: 1 1 100px; min-height: 76px; padding: 12px; border: 1px solid #d9decb; border-radius: 16px; background: #f6f6ea; font-size: 13px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; }
.cozy-choice:hover:not(:disabled),.cozy-choice[aria-pressed=true] { background: #eaf0dd; border-color: #91a779; }
.cozy-choice .item-art { width: 72px; height: 58px; }.cozy-symbol { font-size: 28px; color: #7a9162; line-height: 1; }
.keepsake-choices { display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); gap: 14px; margin: 20px 0; }.keepsake-card .cozy-choice { width: 100%; }.keepsake-card .text-button { font-size: 12px; margin-top: 10px; }
#cozy-activity { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 18px; text-align: center; }#cozy-activity h3 { font: 24px var(--serif); margin: 0; }#cozy-activity .help-note { margin: 9px 0; }
.activity-picture { height: 120px; width: 240px; max-width: 100%; margin: 12px auto 0; position: relative; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(ellipse at center,#edf0dc,transparent 70%); }
.activity-picture>.item-art { width: 110px; height: 88px; z-index: 1; }.activity-picture.bloomed { background: radial-gradient(ellipse,#f5e5b3,transparent 70%); }
.activity-picture .mini-shelf { position: absolute; width: 140px; height: 12px; top: 81px; background: linear-gradient(#ddc79c,#bea472); box-shadow: 0 6px 10px #69562c20; border-radius: 3px; }.activity-picture.shelf>.item-art { transform: translateY(-12px); }
.activity-picture.table>.item-art { width: 154px; height: 123px; position: absolute; top: 2px; }.activity-picture.table>.table-setting { width: 63px; height: 50px; top: 4px; }
.water-drop { position: absolute; width: 6px; height: 12px; background: #91bdd1; border-radius: 60% 60% 60% 5%; transform: rotate(-28deg); opacity: 0; left: 56%; top: 15px; z-index: 2; }.water-drop:nth-of-type(2) { left: 60%; animation-delay: .25s!important; }.water-drop:nth-of-type(3) { left: 64%; animation-delay: .5s!important; }
[data-effect=water] .water-drop { animation: watering 1.5s ease-in-out; }[data-effect=shelf] .activity-picture>.item-art { animation: shelf-place 1.5s ease-out; }[data-effect=table] .table-setting { animation: table-place 1.5s ease-out; }[data-effect=roll] .activity-picture>.item-art { animation: roll-home 2.4s cubic-bezier(.4,0,.25,1); }
.finish-button { width: 100%; margin-top: 8px; }.finish-button>span { font-size: 22px; margin-right: 8px; }.speech-recovery .cozy-choice { flex-basis: 75px; font-size: 12px; padding: 12px 6px; }
.visit-moments { display: grid; grid-template-columns: repeat(auto-fit,minmax(135px,1fr)); gap: 12px; }.visit-memory { padding: 14px; border-radius: 16px; background: #f4f3e7; display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 13px; line-height: 1.5; }.visit-memory .item-art { width: 92px; height: 74px; }#visit-save-status { margin-top: 22px; }
@keyframes butterfly-drift { 0%,100% { transform: translate(0,0) rotate(20deg); }50% { transform: translate(5px,-5px) rotate(10deg); } }
@keyframes watering { 0% { opacity: 0; transform: translate(15px,-10px); }25% { opacity: .8; }100% { opacity: 0; transform: translate(-22px,38px); } }
@keyframes shelf-place { from { opacity: .25; transform: translate(-30px,-28px); }to { opacity: 1; transform: translate(0,-12px); } }
@keyframes table-place { from { opacity: .25; transform: translateY(-20px); }to { opacity: 1; transform: translateY(0); } }
@keyframes roll-home { 0%,100% { transform: translateX(0) rotate(0); }50% { transform: translateX(65px) rotate(150deg); } }
:root[data-reduce-motion=true] *, :root[data-reduce-motion=true] *::before, :root[data-reduce-motion=true] *::after { animation: none!important; transition: none!important; scroll-behavior: auto!important; }
@media(prefers-reduced-motion:reduce) { .corner-butterfly,[data-effect] * { animation: none!important; } }
@media(max-width:760px) { .lesson-panel { margin-top: 12px; }.cozy-corner { padding: 16px; }.corner-heading h2 { font-size: 23px; }.corner-heading .secondary-button { padding: 10px; font-size: 12px; }.corner-diorama { padding: 14px 3px; gap: 3px; }.corner-slot { height: 121px; }.corner-slot .item-art { width: 80px; height: 64px; } }
/* Keep the required task ahead of optional play in the narrow-screen reading order. */
@media(max-width:760px) { .world-column { display: contents; }.world { order: 0; }.world-toolbar { order: 1; width: 100%; }.world-access { order: 2; }.lesson-panel { order: 3; }.cozy-corner { order: 4; width: 100%; } }

/* Landscape game console. No forced CSS rotation or zoom restrictions. */
#mobile-extras-button { display: none; }
[data-environment=development] .site-header { border-bottom: 2px dashed #b57432; }
#dev-tools-button { color: #8a4c19; background: #ffebbd; font-size: 11px; font-weight: 800; }
#dev-tools-dialog select { width: 100%; min-height: 44px; margin: 10px 0; }
#dev-tools-dialog pre { font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
#dev-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
#rotate-dialog { max-width: 380px; text-align: center; }
#rotate-dialog h2 { font: 30px/1.2 var(--serif); }
#rotate-dialog p { font-size: 14px; line-height: 1.6; }
.rotate-device { display: block; font-size: 64px; color: var(--green); }
@media (orientation: landscape) and (max-width: 1100px), (orientation: landscape) and (pointer: coarse) {
  :root { --rail: clamp(270px, 36vw, 380px); --edge: max(10px, env(safe-area-inset-right)); --floor: max(8px, env(safe-area-inset-bottom)); }
  body { min-width: 0; height: 100vh; height: 100dvh; overflow: hidden; padding: env(safe-area-inset-top) var(--edge) var(--floor) max(8px,env(safe-area-inset-left)); display: grid; grid-template-rows: 48px minmax(0,1fr); }
  .site-header { height: 48px; margin: 0; gap: 8px; }
  .wordmark { font-size: 18px; }.brand-mark { width: 28px; height: 28px; line-height: 27px; font-size: 24px; margin-right: 6px; }
  .header-note,.scene-heading,.journey-strip,body>footer { display: none; }
  .header-actions { gap: 0; }.header-actions button { min-width: 44px; min-height: 44px; padding: 6px; }
  .nav-button { font-size: 0; }.nav-button>span { font-size: 22px; margin: 0; }
  #mobile-extras-button { display: block; }
  main { min-height: 0; }
  .play-layout { display: grid; grid-template-columns: minmax(0,1fr) var(--rail); grid-template-rows: minmax(0,1fr) 44px 102px; gap: 6px 10px; height: 100%; max-width: none; padding: 6px 0 0; align-items: stretch; }
  .world-column,.lesson-panel { display: contents; }
  .world { grid-column: 1; grid-row: 1 / 4; width: min(100%, calc((100dvh - 64px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * 1.5)); height: auto; aspect-ratio: 3/2; margin: 0; min-height: 0; align-self: center; justify-self: center; }
  #game { border-radius: 16px; }
  .scene-tag { bottom: 2%; left: 3%; font-size: 7px; }
  .inventory { top: 2%; left: 2%; padding: 2px 8px 2px 0; }.inventory .item-art { width: 40px; height: 32px; }
  .inventory small { font-size: 6px; }.inventory span:last-child { font-size: 13px; }
  .lesson-panel>.visit-meta,.lesson-panel>h2,.visit-story,.lesson-progress,.quiet-note { display: none; }
  .lesson-card { grid-column: 2; grid-row: 1; min-height: 0; padding: 10px 12px; border-radius: 16px; overflow: auto; overscroll-behavior: contain; }
  .speaker { padding-bottom: 6px; margin-bottom: 6px; gap: 8px; }.speaker-portrait { width: 30px; height: 30px; }.speaker small,.speech-flower { display: none; }
  .lesson-card .object-preview { display: none; }
  .model-text { font-size: 23px; margin: 4px 0; }.step-kind { margin: 4px 0; font-size: 8px; }
  .instruction { font-size: 12px; line-height: 1.4; margin: 5px 0; }
  .lesson-card .help-note,.meadow-hint { font-size: 12px; line-height: 1.4; padding: 7px 9px; margin: 6px 0; }
  .lesson-card .primary-button,.lesson-card .secondary-button { min-height: 44px; margin-top: 6px; padding: 8px; }
  .lesson-tools { grid-column: 2; grid-row: 2; margin: 0; padding-right: 82px; align-items: center; }
  .lesson-tools button { min-width: 44px; min-height: 44px; padding: 5px; font-size: 22px; }.lesson-tools span { display: none; }
  .finish-button { grid-column: 2; grid-row: 2; justify-self: end; width: 80px; min-height: 44px; margin: 0; padding: 4px; font-size: 11px; }.finish-button>span { display: none; }
  .world-toolbar { grid-column: 2; grid-row: 3; width: 100%; margin: 0; padding: 0; justify-content: flex-end; align-items: flex-start; }
  #movement-help { display: none; }.direction-pad { grid-template-columns: repeat(2,46px); gap: 6px; }.direction-pad button { height: 46px; font-size: 26px; border-radius: 13px; }
  /* Fixed to the viewport, outside the information scroller, including on retries. */
  #mic-button { position: fixed; right: calc(var(--edge) + var(--rail) - 90px); bottom: calc(var(--floor) + 34px); width: 56px; height: 56px; margin: 0; z-index: 3; }
  #mic-label { position: fixed; right: calc(var(--edge) + 110px); bottom: var(--floor); width: calc(var(--rail) - 116px); margin: 0; min-height: 28px; font-size: 11px; line-height: 1.25; z-index: 3; }
  #language-notice:not([hidden]) { position: fixed; left: 12px; top: 50px; z-index: 4; max-width: 40vw; }
  dialog { max-height: calc(100dvh - 20px); overscroll-behavior: contain; }
  #mobile-extras-content .world-access { display: block; }
}
@media (orientation: landscape) and (max-height: 360px) {
  .lesson-card .speaker { display: none; }
}
