/* Lerndachs · class-based journey · warm paper, earned objects, tactile play */
:root{--color-garden-soil:#9c6d50;--color-garden-light:#c69b71;--color-badge:#f2e7c9;--color-pet-pink:#f7d4d0;--color-partner:#e3e0f2}
.scene-caption{padding:3px 10px 3px 4px;gap:8px;top:105px}.scene-caption button{min-height:44px;background:var(--color-accent);border-radius:18px;padding:8px 13px;font-size:11px;font-weight:bold}.scene-caption #day-label{font-size:9px}.class-intro{text-align:center;padding:14px 0 0}.class-intro .guide-face{width:83px;height:83px}.class-intro h2{font-size:32px;letter-spacing:-1px;margin:10px 0}.class-intro>p:not(.learn-eyebrow){font-size:13px;line-height:1.7;color:var(--color-soft-ink);max-width:520px;margin:10px auto 20px}.class-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:25px 0}.class-grid button{background:var(--color-paper);border:2px solid var(--color-line);border-radius:20px;padding:20px 10px;white-space:normal;display:flex;align-items:center;flex-direction:column;gap:10px;min-height:170px}.class-grid button>span{font-size:35px;line-height:1;display:grid;place-items:center;width:57px;height:57px;border-radius:17px;background:var(--color-mint);font-weight:900}.class-grid button strong{font-size:14px}.class-grid button small{font-size:10px;line-height:1.5;color:var(--color-soft-ink)}.class-grid button[aria-pressed=true]{border-color:var(--color-ink);background:var(--color-accent);box-shadow:0 3px 0 var(--color-ink)}.class-grid button:hover{transform:translateY(-3px)}.journey-primary{min-height:48px;padding:13px 22px;border:2px solid var(--color-ink);border-radius:15px;background:var(--color-teal);font-weight:bold;font-size:13px;box-shadow:0 3px 0 var(--color-ink)}.journey-primary:disabled{opacity:.4;cursor:default}.class-intro .new-journey-note{font-size:10px!important;margin-bottom:0!important;color:var(--color-soft-ink)}.intro-task{padding:12px 0}.intro-task>h2{font-size:30px;margin:15px 0 10px;letter-spacing:-.8px}.intro-task>p{font-size:13px;line-height:1.8;max-width:590px}.intro-task h3{font-size:22px;line-height:1.4;margin:15px 0}.moving-boxes{min-height:110px;display:grid;place-items:center;text-align:center;background:var(--color-warm);border:1.5px solid var(--color-ink);border-radius:21px;font-size:42px;letter-spacing:5px;font-weight:bold;margin:20px 0}.starter-preview{display:flex;align-items:center;justify-content:center;gap:20px;margin:20px 0 0}.starter-preview>div{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px}.starter-preview svg{width:95px;height:75px;overflow:visible}.starter-more{font-size:11px;color:var(--color-soft-ink);max-width:70px}.intro-task #intro-feedback{font-size:12px;line-height:1.6;min-height:38px}.pack-screen{text-align:center;padding:20px 0}.pack-screen h2{font-size:32px;letter-spacing:-1px;margin:25px 0 15px}.pack-screen>p{font-size:13px;line-height:1.8}.gift-box{margin:20px auto;width:105px;height:90px;background:var(--color-accent);border:3px solid var(--color-ink);border-radius:15px;display:grid;place-items:center;font-size:50px;transform:rotate(-6deg);box-shadow:0 6px 0 var(--color-shadow-soft)}.pack-screen .journey-primary{margin-top:28px}.target-card{display:flex;align-items:center;gap:14px;padding:12px 17px;background:var(--color-paper);border:1.5px solid var(--color-line);border-radius:20px;margin:17px 0}.target-art{width:75px;height:66px;flex:none}.target-art svg{width:100%;height:100%;overflow:visible}.target-card>div:nth-child(2){display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.target-card small{font-size:8px;letter-spacing:1px;font-weight:bold;color:var(--color-deep)}.target-card strong{font-size:17px}.target-card span{font-size:11px}.target-card progress{height:7px;width:100%;accent-color:var(--color-teal);margin-top:3px}.target-card>button{min-height:44px;padding:8px 15px;border-radius:12px;background:var(--color-accent);font-size:12px;font-weight:bold}.journey-options{display:flex;justify-content:center;gap:9px;margin:14px 0 20px;flex-wrap:wrap}.journey-options button{min-height:44px;border:1px solid var(--color-line);background:var(--color-paper);border-radius:12px;font-size:11px;padding:9px 15px}.journey-options button[aria-pressed=true]{background:var(--color-partner);border-color:var(--color-purple)}.together-note,.turn-label{background:var(--color-partner);border-radius:12px;padding:12px 15px;font-size:11px;line-height:1.6;margin:12px 0}.practice-button{display:block;background:var(--color-accent);border:1.5px solid var(--color-ink);padding:13px 20px;min-height:48px;border-radius:15px;margin:20px auto;font-weight:bold;font-size:12px}.badge-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.badge-row span{background:var(--color-paper);color:var(--color-soft-ink);border-radius:20px;padding:9px 11px;font-size:9px;border:1px solid var(--color-line)}.badge-row .earned{background:var(--color-accent);color:var(--color-ink)}.world-task-actions{margin:20px 0}.world-task-actions>p{font-size:11px;line-height:1.7;color:var(--color-soft-ink);margin:17px 0}.garden-game{padding:16px;background:var(--color-mint);border:1.5px solid var(--color-ink);border-radius:20px;margin:18px 0}.garden-game>p{font-size:15px;font-weight:bold;line-height:1.5}.garden-controls{display:flex;gap:15px;align-items:center;justify-content:center;margin:15px 0}.garden-controls button{min-width:44px;min-height:44px;border-radius:12px;background:var(--color-accent);font-size:16px;padding:8px 12px;border:1.5px solid var(--color-ink)}.garden-controls span{font-size:14px;font-weight:bold}#garden-bed{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:350px;margin:15px auto;background:var(--color-garden-soil);padding:12px;border-radius:13px;border:2px solid var(--color-ink)}#garden-bed span{height:34px;display:grid;place-items:center;font-size:24px;color:var(--color-garden-light)}.garden-game>.journey-primary{display:block;margin:15px auto 0}.memory-game{margin:18px 0}.memory-game>p{font-size:12px;line-height:1.6;margin:12px 0}#memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.memory-card{min-height:83px;background:var(--color-purple);border:2px solid var(--color-ink);border-radius:15px;font-size:28px;font-weight:bold;padding:10px;white-space:normal;overflow-wrap:anywhere}.memory-card.face-up{background:var(--color-paper);font-size:17px}.memory-card.matched{background:var(--color-mint);opacity:1}.target-button{margin-top:8px;background:transparent!important;box-shadow:none!important;font-size:9px!important;border:0!important;text-decoration:underline}.pet-portrait{height:220px;background:var(--color-mint);border:2px solid var(--color-ink);border-radius:22px;padding:25px;display:grid;place-items:center}.pet-portrait svg{width:200px;height:170px;overflow:visible}.pet-bond{text-align:center;font-size:29px;color:var(--color-deep);letter-spacing:8px;margin:16px}.pet-actions{display:flex;gap:10px;justify-content:center;margin:20px 0}.pet-actions button{min-height:48px;background:var(--color-pet-pink);border:1.5px solid var(--color-ink);border-radius:13px;font-size:12px;padding:10px 16px}#pet-feedback{font-size:12px;line-height:1.8;text-align:center}.pet-name-label{display:flex;align-items:center;gap:15px;margin:20px 0;font-size:13px;font-weight:bold}.pet-name-label input{min-height:46px;width:100%;min-width:0;border:1.5px solid var(--color-ink);border-radius:12px;padding:10px;font:inherit;background:var(--color-white);color:var(--color-ink)}.pet-breathe{animation:breathe 4s ease-in-out infinite;transform-origin:0 0}.pet-ears{animation:sway 6s ease-in-out infinite;transform-origin:0 -50px}.tabs{flex-wrap:wrap}.item-body button{min-height:44px}
@media(max-width:600px){.scene-caption{top:76px;left:14px;max-width:220px;background:transparent;padding:0}.scene-caption #day-label,.scene-caption .tiny-dot{display:none}.scene-caption button{border:2px solid var(--color-frame);box-shadow:0 3px 0 var(--color-shadow-soft);font-size:10px}.class-intro{padding-top:8px}.class-intro h2{font-size:26px}.class-intro .guide-face{width:65px;height:65px}.class-intro>p:not(.learn-eyebrow){font-size:12px;margin:10px 0 16px}.class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.class-grid button{min-height:133px;padding:12px 8px;gap:8px}.class-grid button:first-child{grid-column:1/-1;min-height:90px;display:grid;grid-template-columns:44px minmax(0,1fr);text-align:left;align-items:center}.class-grid button:first-child>span{grid-row:1/3;grid-column:1}.class-grid button:first-child>strong,.class-grid button:first-child>small{grid-column:2}.class-grid button>span{width:42px;height:42px;font-size:27px;border-radius:12px}.class-grid button strong{font-size:13px}.class-grid button small{font-size:9px}.journey-primary{font-size:11px;width:100%;padding:12px 8px}.intro-task>h2{font-size:26px}.intro-task>p{font-size:12px}.intro-task h3{font-size:20px}.moving-boxes{font-size:28px;min-height:90px;letter-spacing:3px;margin:15px 0}.starter-preview{gap:10px;flex-wrap:wrap}.starter-preview svg{width:65px;height:60px}.starter-preview>div{font-size:10px}.starter-more{max-width:none;font-size:10px}.pack-screen h2{font-size:27px}.pack-screen>p{font-size:12px}.pack-screen .journey-primary{font-size:11px}.target-card{gap:9px;padding:10px 8px;flex-wrap:wrap}.target-art{width:48px;height:54px}.target-card strong{font-size:14px}.target-card span{font-size:10px;line-height:1.5}.target-card>button{min-height:44px;font-size:10px;padding:8px 10px;margin-left:auto}.journey-options{gap:6px}.journey-options button{font-size:10px;padding:8px 10px}.practice-button{font-size:10px;width:100%;padding:12px 8px}.badge-row{gap:5px}.badge-row span{font-size:8px;padding:8px}.turn-label{font-size:10px}.garden-game{padding:12px}.garden-game>p{font-size:13px}#garden-bed span{height:28px;font-size:22px}.garden-controls{gap:9px}.garden-controls button{font-size:13px}.garden-controls span{font-size:12px}#memory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.memory-card{min-height:65px;font-size:24px;padding:8px}.memory-card.face-up{font-size:12px}.pet-portrait{height:180px}.pet-portrait svg{width:160px;height:140px}.pet-actions{gap:5px}.pet-actions button{font-size:10px;padding:8px 9px;flex:1}.pet-bond{font-size:25px;letter-spacing:5px}.tabs button{font-size:10px;padding:8px 10px}.adventure-button strong{max-width:200px;overflow:clip;text-overflow:ellipsis}.adventure-button em{max-width:220px;font-size:9px}}
@media(max-height:550px) and (min-width:601px){.class-grid button{min-height:130px;padding:12px}.class-intro .guide-face{width:55px;height:55px}.class-intro{padding:0}.scene-caption{top:65px}}
/* Clear catalogue cards: artwork stays in its own area; labels use reading-size text. */
#panel .card-grid{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:15px}#panel .item-card{min-width:0;border:1.5px solid var(--color-ink);background:var(--color-card)}#panel .item-art{height:155px;flex:0 0 155px;overflow:clip;isolation:isolate}#panel .item-art svg{display:block;width:100%;height:100%;max-height:155px;padding:18px;overflow:hidden}#panel .item-body{padding:17px;gap:9px;background:var(--color-card);color:var(--color-ink)}#panel .item-body h3{font-size:18px;line-height:1.3;margin:0;overflow-wrap:anywhere}#panel .item-body p{font-size:14px;line-height:1.6;color:var(--color-soft-ink);margin:0 0 5px;overflow-wrap:anywhere}#panel .item-body button{font-size:14px;min-height:48px;line-height:1.4;padding:11px 12px;white-space:normal;color:var(--color-ink);background:var(--color-accent);box-shadow:none}#panel .item-body button.target-button{font-size:12px!important;min-height:44px;padding:8px 0}.toolbox .tool-plan{background:var(--color-cyan)}.tool-plan>span:first-child{font-size:30px;line-height:1}
#schedule-dialog{width:min(1040px,calc(100% - 30px));max-height:92dvh;padding:30px;background:var(--color-card)}#schedule-close{position:absolute;top:15px;right:15px;width:44px;height:44px;border:1px solid var(--color-line);background:var(--color-paper);border-radius:50%;font-size:26px}.schedule-heading{padding-right:40px}.schedule-heading h2{font-size:31px;letter-spacing:-1px;margin:10px 0}.schedule-heading p{font-size:13px;line-height:1.7;max-width:650px;color:var(--color-soft-ink)}.schedule-table{margin:20px 0}.schedule-row{display:grid;grid-template-columns:75px repeat(5,minmax(0,1fr));gap:7px;margin-bottom:7px}.schedule-header>span{font-size:11px;font-weight:bold;text-align:center;min-height:36px;display:grid;place-items:center}.lesson-time{min-height:85px;min-width:0;border:1px solid var(--color-line);background:var(--color-paper);border-radius:14px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px;line-height:1.4}.lesson-time b{font-size:13px}.lesson-time span{font-size:10px}.lesson-time small{position:absolute;top:4px;right:7px;font-size:10px}.lesson-cell{width:100%;height:100%;min-height:85px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;white-space:normal;border:1.5px solid var(--color-ink);border-radius:14px;padding:9px 7px;position:relative}.lesson-cell>span{font-size:24px;font-weight:bold;letter-spacing:-1px}.lesson-cell strong{font-size:12px;line-height:1.35;overflow-wrap:anywhere;max-width:100%}.lesson-cell small{position:absolute;right:7px;top:5px;font-size:10px}.lesson-cell.paper,.empty-lesson{background:var(--color-paper);border-style:dashed}.lesson-cell.mint{background:var(--color-mint)}.schedule-day-tabs{display:none}.schedule-actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.schedule-actions button{min-height:44px;padding:9px 14px;background:var(--color-mint);border:1px solid var(--color-ink);border-radius:12px;font-size:12px;font-weight:bold}#schedule-status{font-size:11px;line-height:1.7;color:var(--color-deep);margin:12px 0 0}#schedule-editor{margin:24px 0 0;padding:20px;border:2px solid var(--color-ink);border-radius:21px;background:var(--color-paper)}.schedule-edit-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.schedule-edit-top h3{font-size:21px;letter-spacing:-.5px}.schedule-edit-top button{width:44px;min-width:44px;height:44px;border:1px solid var(--color-line);border-radius:50%;font-size:25px;background:var(--color-card)}.subject-palette{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.subject-palette button{min-height:48px;padding:10px 13px;font-size:12px;font-weight:bold;border:1px solid var(--color-ink);border-radius:12px;display:flex;align-items:center;gap:8px}.subject-palette button>span{font-size:18px}.schedule-custom-label{display:flex;gap:12px;align-items:center;font-size:12px;font-weight:bold;margin:17px 0}.schedule-custom-label input{min-width:0;min-height:48px;padding:10px 12px;border:1px solid var(--color-ink);border-radius:12px;background:var(--color-card);font:inherit;flex:1}.schedule-edit-actions{display:flex;gap:12px;flex-wrap:wrap}.schedule-edit-actions button{min-height:44px;padding:10px 15px;border:1px solid var(--color-ink);border-radius:12px;background:var(--color-card);font-size:12px;font-weight:bold}.schedule-edit-actions .journey-primary{background:var(--color-teal)}.time-inputs{display:flex;gap:20px;margin:20px 0}.time-inputs label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:bold}.time-inputs input{min-height:48px;padding:10px;border:1px solid var(--color-ink);border-radius:12px;background:var(--color-card);font:inherit}#time-error{font-size:12px;color:var(--color-ink);margin-top:12px}#pwa-notice{position:fixed;z-index:100;left:50%;bottom:25px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 30px);display:flex;align-items:center;gap:12px;background:var(--color-card);color:var(--color-ink);border:2px solid var(--color-ink);border-radius:16px;padding:12px 15px;box-shadow:0 5px 0 var(--color-shadow-soft);font-size:12px}#pwa-notice button{min-height:44px;min-width:44px;background:var(--color-accent);padding:10px;border-radius:10px;font-weight:bold;font-size:12px}#pwa-notice button:last-child{font-size:20px;background:transparent}
@media(max-width:600px){#panel .card-grid{grid-template-columns:minmax(0,1fr);gap:12px}#panel .item-card{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:stretch}#panel .item-art{height:auto;min-height:150px;flex:none;display:grid;place-items:center}#panel .item-art svg{width:100%;height:130px;max-height:130px;padding:9px}#panel .item-body{padding:14px;gap:9px}#panel .item-body h3{font-size:17px}#panel .item-body p{font-size:13px;line-height:1.6}#panel .item-body button{font-size:13px;min-height:48px;padding:10px 8px}#panel .item-body button.target-button{font-size:11px!important}.toolbox{gap:0;padding:4px}.toolbox button{width:44px;min-width:44px}.toolbox .tool-plan>span:first-child{font-size:26px}#schedule-dialog{width:calc(100% - 14px);max-height:95dvh;padding:20px 13px;border-radius:22px}#schedule-close{top:12px;right:12px}.schedule-heading h2{font-size:26px}.schedule-heading p{font-size:12px;line-height:1.7}.schedule-day-tabs{display:flex;gap:5px;margin:20px 0 10px}.schedule-day-tabs button{flex:1;min-height:44px;min-width:0;padding:8px 4px;border:1px solid var(--color-ink);border-radius:12px;background:var(--color-paper);font-size:12px;font-weight:bold}.schedule-day-tabs button[aria-pressed=true]{background:var(--color-accent);box-shadow:0 2px 0 var(--color-ink)}.schedule-row{grid-template-columns:65px minmax(0,1fr);gap:8px}.schedule-row>[class*=schedule-day-]:not(.selected-day){display:none}.schedule-header>span{min-height:28px}.lesson-time{min-height:76px}.lesson-cell{min-height:76px;flex-direction:row;gap:15px;justify-content:flex-start;padding:12px 17px}.lesson-cell>span{font-size:25px;min-width:30px}.lesson-cell strong{font-size:16px;text-align:left}.schedule-actions{gap:7px}.schedule-actions button{font-size:10px;padding:9px 11px}#schedule-editor{padding:14px}.schedule-edit-top h3{font-size:19px}.subject-palette{gap:6px}.subject-palette button{min-height:44px;font-size:10px;padding:9px 10px;gap:5px}.schedule-custom-label{display:block;font-size:12px}.schedule-custom-label input{display:block;width:100%;margin-top:9px}.schedule-edit-actions{gap:8px}.schedule-edit-actions button{font-size:11px}.time-inputs{gap:10px}.time-inputs label{min-width:0;flex:1}.time-inputs input{width:100%;min-width:0;font-size:12px}#pwa-notice{font-size:11px;gap:6px;bottom:110px;padding:10px;flex-wrap:wrap}.schedule-header .selected-day{font-size:13px}}

/* Milo & Lumi: actions are nested below placement and above breathing. */
.character-action,.character-head,.character-arm,.character-pupils{transform-box:view-box;transform-origin:0 0}
.character-arm-left{transform-origin:-36px -95px}
.character-arm-right{transform-origin:37px -95px}
.character-head{transform-origin:0 -112px}
.character-action[data-gesture] .character-head{animation:character-curious 1.8s ease-in-out both;animation-delay:var(--gesture-delay,0ms)}
.character-action[data-gesture="wave"] .character-arm-right{animation:character-wave 1.8s ease-in-out both;animation-delay:var(--gesture-delay,0ms)}
.character-action[data-gesture="wave"] .character-arm-left{animation:character-sway-arm 1.8s ease-in-out both;animation-delay:var(--gesture-delay,0ms)}
.character-action[data-gesture="hop"]{animation:character-hop 1.8s ease-in-out both;animation-delay:var(--gesture-delay,0ms)}
.character-action[data-gesture="hop"] .character-arm-right{animation:character-cheer-right 1.8s ease-in-out both;animation-delay:var(--gesture-delay,0ms)}
.character-action[data-gesture="hop"] .character-arm-left{animation:character-cheer-left 1.8s ease-in-out both;animation-delay:var(--gesture-delay,0ms)}
.character-action[data-gesture="look"] .character-pupils{animation:character-glance 1.8s ease-in-out both;animation-delay:var(--gesture-delay,0ms)}
[data-kind="milo"].reacting .sprite,[data-kind="lumi"].reacting .sprite{animation:none}
@keyframes character-wave{0%,100%{transform:rotate(0)}20%{transform:rotate(-65deg)}35%{transform:rotate(-105deg)}48%{transform:rotate(-70deg)}61%{transform:rotate(-105deg)}75%{transform:rotate(-65deg)}}
@keyframes character-sway-arm{0%,100%{transform:rotate(0)}30%,65%{transform:rotate(12deg)}}
@keyframes character-hop{0%,100%{transform:translateY(0) scale(1)}12%{transform:translateY(0) scale(1.05,.92)}30%{transform:translateY(-27px) scale(.98,1.03)}46%{transform:translateY(0) scale(1.05,.94)}58%{transform:translateY(-12px) scale(1)}73%{transform:translateY(0) scale(1.02,.97)}88%{transform:translateY(0) scale(1)}}
@keyframes character-cheer-right{0%,100%{transform:rotate(0)}25%,58%{transform:rotate(-75deg)}}
@keyframes character-cheer-left{0%,100%{transform:rotate(0)}25%,58%{transform:rotate(75deg)}}
@keyframes character-curious{0%,100%{transform:rotate(0)}30%,60%{transform:rotate(-5deg)}}
@keyframes character-glance{0%,100%{transform:translateX(0)}20%,40%{transform:translateX(-4px)}60%,80%{transform:translateX(3px)}}
@media(prefers-reduced-motion:reduce){.character-action,.character-head,.character-arm,.character-pupils{animation:none!important}}
