/* Toy Planet round01: material surfaces from the selected controls/lesson references.
   Existing semantic symbols and learning renderer remain authoritative. */
:root{font-family:ui-rounded,'Arial Rounded MT Bold',system-ui,sans-serif;font-size:18px;color:#253659;background:#f7f3e9;--ink:#253659;--cream:#fffaf0;--lavender:#e8dff3;--lavender-dark:#a994cc;--blue:#3569d2;--blue-deep:#214d9c;--lime:#b7d955;--purple:#8061c7;--orange:#ee963d;--focus:#154999;--surface-shadow:0 5px 0 #b6a6cb,0 9px 14px #392a651f;--button-light:#fdfaf2;--button-base:#f4edde}
*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,input,select{font:inherit}button,a{touch-action:manipulation}button{min-width:48px;min-height:48px;padding:12px 16px;border:2px solid #e4dac9;border-radius:22px;background:linear-gradient(#fffdf8,#f4edde);color:var(--ink);box-shadow:inset 0 2px 2px #fff,0 4px 0 #c0b09c,0 7px 10px #43313a16;cursor:pointer;transition:transform .12s,box-shadow .12s}button:hover:enabled{filter:brightness(1.035);transform:translateY(-2px)}button:active:enabled{transform:translateY(3px);box-shadow:inset 0 2px 5px #45365c30,0 1px 0 #b3a28c}button:disabled{cursor:not-allowed;border-style:dashed;box-shadow:inset 0 1px 4px #41384920;background:#e8e5df;color:#736f7d;opacity:.67}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:4px solid var(--focus);outline-offset:5px}input,select{min-height:52px;max-width:100%;padding:14px;border:2px solid #b5a3cf;border-radius:18px;background:var(--cream);color:var(--ink);box-shadow:inset 0 2px 4px #57426716}a{color:var(--blue-deep)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.shell{max-width:1440px;margin:auto;padding:24px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;padding:14px 18px;background:#eee7f5;border:2px solid #fff;border-radius:28px;box-shadow:0 4px 0 #d4c6e1}.tools{display:flex;gap:12px;flex-wrap:wrap}.icon{width:32px;height:32px;display:block;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.icon-button{display:grid;place-items:center;min-width:60px;min-height:60px;padding:12px}.toolbar .icon-button{background:linear-gradient(#4d82e5,#3569d2);color:#fff9ed;border-color:#5484dc;box-shadow:inset 0 2px 2px #a8c6ff,0 5px 0 #214d9c,0 8px 12px #284e9520}.toolbar [data-nav='/parent']{background:#ede4f7;color:#5c408c;border-color:#d6c7e9;box-shadow:inset 0 2px 2px #fff,0 5px 0 #baabd0}
.map{min-height:65vh;border:12px solid var(--blue);border-radius:48px;box-shadow:inset 0 3px 5px #263f6b25,0 7px 0 var(--blue-deep),0 15px 26px #214d9c20;background:#e9e2f4;display:grid;align-content:center;padding:40px}.profile-grid,.course-grid{display:flex;gap:32px;flex-wrap:wrap;justify-content:center;align-items:center;padding:28px 0}.station{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:min(280px,100%);min-height:260px;border:5px solid #e8f2b7;border-radius:48px;background:linear-gradient(#d9eb85,#b9d75c);box-shadow:inset 0 4px 4px #f8ffd8,0 10px 0 #7b9b38,0 18px 22px #465b4125;color:#244d95}.station>svg:first-child{width:96px;height:96px;stroke-width:2.6}.station>svg:last-child{width:36px;height:36px}.station .route-line{width:96px;border-top:5px dashed #fdfbea;height:0;transform:rotate(-8deg)}.station[data-symbol=subtraction],.station[data-symbol=division]{background:linear-gradient(#ffc782,#ee9b4e);border-color:#ffe6c3;box-shadow:inset 0 4px 4px #fff0da,0 10px 0 #c47c32,0 18px 22px #80502520}.profile-button{width:144px;height:144px;display:grid;place-items:center;font-size:64px;border:4px solid #fff9ed;border-radius:38px;background:#e8dff3;box-shadow:var(--surface-shadow)}.profile-button svg{width:72px;height:72px}.empty{min-height:45vh;display:grid;place-items:center;gap:24px}.empty svg{width:80px;height:80px;color:#7b69a7}.status-icon{display:flex;align-items:center;justify-content:center;gap:12px}.child-error{margin-top:18px;text-align:center}.child-error>.icon{margin:12px auto;color:#ad4c26}
.lesson-layout{direction:ltr;display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;align-items:stretch;padding:18px;border:12px solid var(--blue);border-radius:44px;background:#e8dff3;box-shadow:inset 0 3px 5px #31559830,0 7px 0 var(--blue-deep),0 14px 22px #274a8c20}.stage{grid-column:2;grid-row:1;direction:rtl;min-width:0;min-height:620px;border:2px solid #e7ddca;border-radius:26px;background:var(--cream);color:var(--ink);padding:28px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;box-shadow:inset 0 3px 6px #4b3a5310}.methods{grid-column:1;grid-row:1;direction:rtl;display:flex;flex-direction:column;gap:24px;align-items:center;justify-content:center;padding:12px 0}.methods .icon-button{width:64px;height:68px;padding:12px;background:linear-gradient(#faf6ff,#e0d5ee);border-color:#f9f3ff;color:#5e4895;box-shadow:inset 0 2px 2px #fff,0 5px 0 #b7a4ce,0 8px 10px #40315a20}.methods button[aria-pressed=true]{border:4px solid #99b839;box-shadow:inset 0 0 0 2px #faffda,0 5px 0 #879f42,0 8px 10px #40315a20}.methods button[aria-expanded=true]{border:4px double #674698}.companion{direction:rtl;grid-column:3;grid-row:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:32px;padding:8px 0}.companion-top{width:100%;display:flex;justify-content:flex-start}.companion-mark{background:#f4eef8;border:3px solid #fffafc;border-radius:30px;min-height:180px;width:100%;display:grid;place-items:center;box-shadow:var(--surface-shadow)}.companion-mark .icon{width:80px;height:80px;color:#8a71bc}.companion-actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.companion-actions #full-help{background:linear-gradient(#9f86df,var(--tp-color-primary,#8061c7));color:var(--tp-color-on-primary,#fffaf0);border-color:#b5a0eb;box-shadow:inset 0 2px 2px #d7cbfc,0 5px 0 #5e4299}.companion-actions #stop-help{background:linear-gradient(#ffa56d,#ed8552);color:var(--tp-color-on-primary,#fffaf0);border-color:#ffbd95;box-shadow:inset 0 2px 2px #ffd9c0,0 5px 0 #bf5d35}.help-open{grid-template-columns:76px minmax(0,1fr) 240px}
#answer-form{width:100%;display:grid;justify-items:center;gap:14px}.equation{direction:ltr;display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:clamp(2.4rem,4.8vw,3.7rem);font-weight:800;font-variant-numeric:tabular-nums}.equation>span:nth-child(1){color:#1786af}.equation>span:nth-child(3){color:#ce6d16}.equation>span:nth-child(2),.equation>span:nth-child(4){color:#7953bd}.equation input{width:106px;min-width:82px;text-align:center;font-size:inherit;line-height:1.1;padding:10px;border:4px solid #b4a0d5;background:#fffaf0;border-radius:22px;box-shadow:inset 0 2px 4px #6a54841a}.numeric-keypad{direction:ltr;display:grid;grid-template-columns:repeat(6,minmax(48px,64px));gap:12px;justify-content:center;padding:18px;border:3px solid #f9f3ff;border-radius:30px;background:#e5dbee;box-shadow:inset 0 2px 3px #fff,0 5px 0 #b7a4ce,0 8px 12px #49325d1a}.numeric-keypad button{height:60px;min-width:48px;padding:6px;border-radius:18px;font-size:1.8rem;font-weight:800}.numeric-keypad [data-erase]{background:linear-gradient(#ffbd61,#f49b33);border-color:#ffd598;color:#75421b;box-shadow:inset 0 2px 2px #ffe9c5,0 4px 0 #bf7728}.numeric-keypad [data-answer-submit]{background:linear-gradient(#9d81df,#8060c9);border-color:#b99ee8;color:#fff8ed;box-shadow:inset 0 2px 2px #dac9ff,0 4px 0 #5d419c}.numeric-keypad [data-keyboard]{grid-column:1/-1;justify-self:center;height:48px;min-height:48px;font-size:1rem}.numeric-keypad [data-keyboard] .icon{height:26px}.feedback{min-height:48px;display:grid;place-items:center}.feedback svg{width:44px;height:44px}.feedback[data-kind=correct]{color:#3e7b36}.feedback[data-kind=pending]{border-bottom:3px dashed #9d85bc;min-width:64px}.practice-success{outline:4px solid #b3cf61;outline-offset:-7px}#help-stage{width:100%;max-width:700px;min-height:160px}#object-workspace{width:100%;max-width:100%;overflow-x:auto;padding:5px}#object-stage{display:block;width:100%;min-width:624px}#object-controls{justify-content:center;margin-top:12px}#object-controls button{min-width:52px;min-height:52px;font-size:1.3rem}.tool-open .stage{justify-content:flex-start}.tool-open .equation{font-size:2.6rem}.tool-open .stage #answer-form{gap:10px}
.parent{max-width:760px;margin:32px auto;padding:32px;border:3px solid #fff;border-radius:32px;background:#eee6f5;box-shadow:var(--surface-shadow)}.parent h1{font-size:1.6rem}.parent label{display:block;margin:18px 0 8px}.parent p{line-height:1.6}.parent button{margin-top:16px}.notice{padding:16px;border-inline-start:4px solid #a6c64c;background:#fffaf0}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.review-list{padding:0;list-style:none}.review-list li{padding:14px 0;border-bottom:1px solid #c6b4da}.prototype-label{font-size:.9rem;color:#685780}code{overflow-wrap:anywhere}.math-auth.math-auth{--ma-bg:#f7f3e9;--ma-card:#fffaf0;--ma-ink:#253659;--ma-muted:#6b6381;--ma-accent:#8061c7;--ma-deep:#3569d2;--ma-soft:#eee6f5;--ma-line:#d9c9e9}.math-auth .math-auth__card{border-radius:32px;box-shadow:0 7px 0 #d2c0e2,0 16px 30px #6b508c15}.math-auth .math-auth__submit{background:#3569d2;border-radius:20px;box-shadow:0 5px 0 #214d9c}
@media(max-width:1240px){.lesson-layout,.help-open{grid-template-columns:1fr;gap:14px}.methods{grid-column:1;grid-row:1;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:18px;padding:0 0 8px}.stage{grid-column:1;grid-row:2;padding:24px 16px}.companion{grid-column:1;grid-row:3;display:grid;grid-template-columns:auto 100px auto;align-items:center;gap:20px;padding:12px}.companion-top{grid-column:1}.companion-mark{min-height:100px;border-radius:24px}.companion-mark .icon{width:56px;height:56px}.companion-actions{flex-wrap:nowrap}.companion .sr-only{position:absolute}.stage{min-height:600px}.tool-open .stage{padding:20px 12px}}
@media(max-width:800px){.shell{padding:14px}.toolbar{margin-bottom:18px;padding:12px}.lesson-layout{padding:12px;border-width:8px;border-radius:32px}.stage{padding:24px 12px}.map{padding:24px;border-width:8px;border-radius:36px}.numeric-keypad{grid-template-columns:repeat(6,minmax(48px,56px));gap:10px;padding:14px}.numeric-keypad button{height:56px}.equation{gap:12px}.parent{margin:16px;padding:24px}}
@media(max-width:560px){.shell{padding:10px}.toolbar{gap:10px}.toolbar .icon-button{min-width:48px;min-height:48px;padding:8px}.toolbar .tools{gap:10px}.map{padding:16px;border-width:6px;min-height:65vh}.station{min-height:210px}.lesson-layout{padding:8px;border-width:6px;gap:12px}.stage{padding:20px 8px}.numeric-keypad{grid-template-columns:repeat(3,minmax(48px,64px));gap:10px;padding:14px}.numeric-keypad [data-digit='0']{grid-column:auto}.equation{font-size:2.3rem;gap:8px}.equation input{width:84px}.methods .icon-button{width:56px;height:56px;min-width:56px;min-height:56px}.companion{grid-template-columns:auto 1fr;gap:14px}.companion-mark{display:none}.companion-actions{grid-column:2}.parent{margin:10px;padding:20px}.row{display:block}.profile-button{width:120px;height:120px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Keep the active workspace above a compact, complete two-row keypad. */
@media(min-width:700px){
 .stage,.tool-open .stage{padding-top:18px;padding-bottom:18px;gap:12px;min-height:560px}
 #object-stage{max-width:640px;margin-inline:auto}
 #object-controls{margin-top:6px;gap:8px}
 .tool-open #answer-form,#answer-form{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'equation tools' 'feedback feedback' 'keypad keypad';gap:10px;align-items:center}
 .equation{grid-area:equation}.numeric-keypad{grid-area:keypad}#feedback{grid-area:feedback}#answer-form>.tools{grid-area:tools}
 .numeric-keypad{grid-template-columns:repeat(6,minmax(48px,56px)) 48px;gap:8px;padding:12px}
 .numeric-keypad button{height:52px;font-size:1.65rem;border-radius:16px}
 .numeric-keypad [data-keyboard]{grid-column:7;grid-row:1/3;height:112px;width:48px}
 .feedback:empty{min-height:0}.tool-open .equation{font-size:2.4rem}.equation input{width:94px}
}
@media(min-width:700px) and (max-width:1240px){.shell{padding:12px}.toolbar{margin-bottom:12px}.stage,.tool-open .stage{padding-top:12px;padding-bottom:12px}.companion{padding:8px}.companion-mark{min-height:60px}.companion-mark .icon{width:40px;height:40px}}
@media(min-width:1241px){.shell{padding:20px}.toolbar{padding-block:10px}.lesson-layout{padding:16px}.stage,.tool-open .stage{padding-top:16px;padding-bottom:16px}}
/* Recolor only the existing semantic renderer; identity, shapes and geometry stay intact. */
#object-stage circle[fill='#397b71']{fill:#159cc0}#object-stage circle[fill='#a06c25']{fill:#ed902e}#object-stage [data-target-area='operand-a']{fill:#edf6fa}#object-stage [data-target-area='operand-b']{fill:#fff3df}

/* CEO focus delta002: quiet learning canvas; rich material stays outside lessons. */
.lesson-nav{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.lesson-nav .icon-button{min-width:56px;min-height:56px;background:#f4eef9;color:#5e4895;border-color:#ded2eb;box-shadow:0 3px 0 #c5b6d5}
.lesson-layout,.help-open{grid-template-columns:minmax(0,1fr);border:2px solid #d9cfe5;border-radius:24px;box-shadow:0 4px 14px #574c7010;background:#f2edf8;padding:12px;gap:12px}.stage{grid-column:1;grid-row:2;border:1px solid #e5ddcf;box-shadow:none;min-height:560px}.methods{grid-column:1;grid-row:1;flex-direction:row;justify-content:flex-start;padding:8px;gap:14px}.methods .icon-button{height:56px;width:56px;min-width:56px;min-height:56px}.companion{grid-column:1;grid-row:3;display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:24px;padding:18px;background:#ebe2f4;border-radius:24px}.companion-top{gap:12px}.companion-mark{min-height:160px;box-shadow:none}.companion-actions{flex-wrap:wrap}.explanation-expanded .companion-mark{min-height:280px}.explanation-expanded .companion{grid-template-columns:auto minmax(0,1fr) auto}.numeric-keypad{grid-template-columns:repeat(3,minmax(48px,var(--tp-size-key-width,56px)));gap:var(--tp-space-small,8px);padding:var(--tp-space-medium,12px)}.numeric-keypad [data-keyboard]{grid-column:1/-1;grid-row:auto;width:56px;height:48px}.numeric-keypad button{height:var(--tp-size-control,52px)}.numeric-keypad [data-erase]{grid-column:1}.numeric-keypad [data-answer-submit]{grid-column:3}
@media(min-width:1100px){.lesson-layout{grid-template-columns:minmax(0,1fr) 220px;align-items:start}.stage{grid-column:1;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.stage #answer-form{grid-template-columns:1fr;grid-template-areas:'equation' 'feedback' 'keypad' 'tools';width:220px}.stage #help-stage{grid-column:1/-1}.stage:not(:has(#object-workspace:not([hidden]))){display:flex}.stage:not(:has(#object-workspace:not([hidden]))) #answer-form{width:100%;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'equation keypad' 'feedback keypad' 'tools keypad'}.methods{grid-column:1/-1}.companion{grid-column:1/-1;grid-row:3}.stage{grid-column:1/-1}.tool-open .stage{grid-template-columns:minmax(624px,1fr) 220px}.explanation-expanded .companion-mark{min-height:320px}}
@media(max-width:1099px){.companion{grid-template-columns:auto 1fr;gap:14px}.companion-mark{min-height:180px;grid-column:1/-1;grid-row:2}.companion-actions{grid-column:2;grid-row:1}.explanation-expanded .companion-mark{min-height:300px}#answer-form,.tool-open #answer-form{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'equation keypad' 'feedback keypad' 'tools keypad'}#answer-form{gap:8px}.equation{font-size:2rem;gap:8px}.equation input{width:82px}.tool-open .stage #answer-form{grid-template-columns:minmax(0,1fr) auto}.stage{padding:12px}.companion-top .icon-button{min-width:48px;min-height:48px;padding:8px}.companion-top{gap:8px}}
@media(max-width:560px){#answer-form,.tool-open #answer-form{grid-template-columns:1fr;grid-template-areas:'equation' 'feedback' 'keypad' 'tools'}.stage{padding:12px 6px}.companion{padding:12px}.companion-top{flex-wrap:wrap}}

.companion-mark{display:grid;place-items:center;padding:18px;min-width:0}.companion-mark:has(#help-stage:not([hidden])) .help-idle{display:none}#help-stage{width:100%;max-width:none;min-height:180px}.explanation-expanded #help-stage{min-height:300px}.companion .companion-actions{align-items:flex-start}
@media(min-width:1100px){.tool-open .stage{grid-template-columns:minmax(624px,1fr) 300px}.tool-open .stage #answer-form{width:300px}.tool-open .equation{gap:8px;font-size:2rem;flex-wrap:nowrap}.tool-open .equation input{width:82px}}

/* PRODUCT-ISO02-01: preserve one live model + answer + explanation inside the viewport. */
.help-open .stage,.help-open.tool-open .stage{min-height:0;padding:10px 12px;gap:8px}
.help-open #numeric-keypad{display:none}
.help-open .stage #answer-form,.help-open.tool-open .stage #answer-form{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'equation tools' 'feedback feedback';gap:6px;align-items:center}
.help-open .stage,.help-open.tool-open .stage{display:flex;flex-direction:column;justify-content:flex-start}
.help-open #object-workspace{max-width:100%;padding:0}.help-open #object-controls{gap:8px;margin-top:4px}.help-open #object-controls button{height:48px;min-height:48px;min-width:48px;padding:8px}
.help-open .equation{font-size:2rem;gap:8px;flex-wrap:nowrap}.help-open .equation input{width:82px;min-height:60px;padding:6px}
.help-open .feedback{min-height:0}.help-open .feedback svg{height:32px;width:32px}.help-open #answer-form>.tools{flex-wrap:nowrap;gap:10px;align-items:center}.help-open #answer-form>.tools .icon-button{height:48px;min-height:48px;min-width:48px;padding:8px}
.help-open .companion{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:10px;padding:10px;align-items:center}
.help-open .companion-top{grid-column:2;grid-row:1;display:flex;gap:10px;align-self:start}.help-open .companion-actions{grid-column:2;grid-row:2;display:flex;gap:10px;align-self:end;flex-wrap:nowrap}
.help-open .companion-mark{grid-column:1;grid-row:1/3;min-height:150px;padding:8px}.help-open .companion-top .icon-button,.help-open .companion-actions .icon-button{height:52px;min-height:52px;min-width:52px;padding:10px}
.help-open #help-stage{height:var(--tp-size-help-regular,150px);min-height:var(--tp-size-help-regular,150px);max-height:var(--tp-size-help-regular,150px)}.help-open.explanation-expanded #help-stage{height:var(--tp-size-help-expanded,220px);min-height:var(--tp-size-help-expanded,220px);max-height:var(--tp-size-help-expanded,220px)}.help-open.explanation-expanded .companion-mark{min-height:220px}
@media(max-width:1099px){.help-open{gap:8px;padding:8px}.help-open .stage,.help-open.tool-open .stage{padding:8px}.help-open .companion{padding:8px;gap:8px}.help-open .companion-top,.help-open .companion-actions{gap:8px}.help-open .companion-mark{min-height:150px}.help-open.explanation-expanded .companion-mark{min-height:210px}.help-open.explanation-expanded #help-stage{height:210px;min-height:210px;max-height:210px}}
/* Actions need a selection; preserve row geometry while avoiding a gallery of disabled controls. */
@supports selector(:has(*)){#object-controls{min-height:52px}#object-workspace:not(:has(#object-stage [data-active-entity][aria-pressed='true'])) #object-controls button{visibility:hidden}}

/* Round02 code polish: real controls, no fabricated landscape or isolated production art. */
:root{--surface-shadow:inset 0 2px 3px #ffffffc9,0 5px 0 #c1afd4,0 9px 15px #4432541a}
button{border-radius:20px;border-color:var(--tp-color-border,#e9dfcc);background:linear-gradient(145deg,#fffdf5 6%,#f5eddf 72%);box-shadow:inset 2px 3px 3px #fff,0 4px 0 #b8a58c,0 7px 10px #4a34511a;transition:transform .12s,box-shadow .12s}
button:hover:enabled{transform:translateY(-1px)}button:active:enabled{transform:translateY(2px);box-shadow:inset 0 2px 5px #5a41692b,0 1px 0 #b8a58c}
button:disabled{background:var(--tp-color-disabled,#e9e6df);border-style:dashed;box-shadow:inset 1px 2px 3px #ffffff70,0 2px 0 #c2b8ac;opacity:.66}
button:focus-visible{outline:4px solid var(--tp-color-button-focus,#234c92);outline-offset:5px}
.numeric-keypad button{font-family:ui-rounded,'Arial Rounded MT Bold',system-ui,sans-serif;font-weight:800;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 #fff8;line-height:1;border-radius:var(--tp-radius-key,17px)}
.map{position:relative;isolation:isolate;overflow:hidden;min-height:62vh;border:2px solid #d8cbe7;border-radius:34px;box-shadow:inset 0 2px 3px #fff,0 8px 20px #67527b12;background:#ede6f5;padding:26px}
.map-scenery{position:absolute;inset:0;z-index:-1;pointer-events:none}.map-world{width:100%;height:100%;object-fit:contain;visibility:hidden}.map-has-world .map-world{visibility:visible}
.map-stations{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(28px,6vw,76px);align-items:center;max-width:960px;width:100%;margin:auto;padding:36px 0}
.map .station{width:140px;min-height:158px;gap:15px;border-radius:38px;border-width:3px;box-shadow:inset 1px 3px 4px #fffbc4,0 7px 0 #8ea83f,0 12px 17px #3e4e3125}
.map .station>svg:first-child{width:58px;height:58px}.map .station>svg:last-child{width:28px;height:28px}.map .station .route-line{width:48px;border-top-width:3px}
.map .station[data-symbol=subtraction],.map .station[data-symbol=division]{box-shadow:inset 1px 3px 4px #ffe9c6,0 7px 0 #c18341,0 12px 17px #66452220}
.map .station:disabled{border-style:dashed;box-shadow:inset 0 2px 3px #fff7,0 3px 0 #b8aca1}
.icon-slot{position:relative;display:grid;place-items:center;width:32px;height:32px}.icon-slot img{display:none;width:100%;height:100%;object-fit:contain}.icon-slot.asset-ready img{display:block}.icon-slot.asset-ready>.icon{display:none}
@media(max-width:800px){.map{padding:18px;border-width:2px}.map-stations{gap:32px}.map .station{width:128px;min-height:148px}}
@media(prefers-reduced-motion:reduce){button{transition:none!important}}

/* Scene and live anchors share the actual image-content rectangle, never the viewport. */
.map-content{position:relative;isolation:isolate;width:100%;max-width:880px;aspect-ratio:4/3;margin:auto;display:grid;align-items:center}
.map-content .map-scenery{z-index:-1}.map-content .map-stations{position:absolute;inset:0;max-width:none;align-content:center;padding:10%;margin:0}
.map-many .map-content{aspect-ratio:auto!important;min-height:0}.map-many .map-scenery{display:none}.map-many .map-stations{position:relative;inset:auto;padding:24px 0;justify-content:center;gap:28px}

/* Round02 methods role only: 48px art in existing lesson control. */
#toggle-methods .icon-slot,#toggle-methods .icon-slot img{width:48px;height:48px}

/* Two currently declared stations anchored to this image-content rectangle.
   Positions are layout only; catalogue still supplies identities/order/access. */
.map-has-world .map-stations[data-station-count="2"]{display:block;padding:0}
.map-has-world .map-stations[data-station-count="2"] .station{position:absolute;transform:translate(-50%,-50%)}
.map-has-world .map-stations[data-station-count="2"] .station:nth-child(1){left:71%;top:70%}
.map-has-world .map-stations[data-station-count="2"] .station:nth-child(2){left:32%;top:43%}

/* Explicit Figma0.1-draft consumption for existing component families only. */
.icon-button{border-radius:var(--tp-radius-button,20px);padding:var(--tp-space-medium,12px)}
#help-panel{border-radius:var(--tp-radius-panel,24px)}
/* Existing compact controls retain 8/10px padding from their earlier specific rules. */
/* Resource controls keep the existing companion surface usable on narrow screens. */
@media(max-width:560px){.help-open .companion-actions:has(#voice-talk){display:grid;grid-template-columns:repeat(2,52px);gap:8px}}

/* Parent onboarding draft: existing Toy Planet palette and control geometry. */
.profile-setup{--avatar-0:#e7ddfa;--avatar-1:#ffe1cb;--avatar-2:#d9eadb;--avatar-3:#f8e6aa;--avatar-4:#d9e7f6;--avatar-5:#e0e3fa;max-width:1080px;margin:clamp(20px,5vh,64px) auto;padding:32px;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,6vw,76px);color:#34334b;align-items:center}
.profile-setup__intro{position:relative;text-align:center}.profile-setup__eyebrow{color:#725498;font-size:.8rem;letter-spacing:.06em;font-weight:700}.profile-setup h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;margin:16px 0}.profile-setup__intro>p:last-of-type{color:#757184;line-height:1.7;font-size:1rem}
.profile-setup__planet{color:#b5a1d9;font-size:46px}.profile-setup__preview{font-size:112px;line-height:1;width:210px;height:210px;border-radius:50%;display:grid;place-items:center;margin:32px auto;background:#eee6f7;border:9px solid #fff;box-shadow:0 12px 0 #dacde8,0 22px 42px #a18cb32b;transform:rotate(-6deg)}
.profile-setup__form{background:#fffdf9;border:2px solid #e8dfed;border-radius:32px;box-shadow:0 8px 0 #e6dce9;padding:clamp(22px,4vw,40px);display:grid;gap:16px}.profile-setup fieldset{border:0;padding:0;margin:0}.profile-setup legend,.profile-setup__form>label{font-weight:700;margin-bottom:12px;font-size:.92rem}.avatar-choices{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.avatar-choice{background:var(--avatar-color);border:2px solid transparent;border-radius:20px;padding:8px;min-width:0;min-height:64px;box-shadow:0 4px 0 #ded7df}.avatar-choice span{font-size:36px}.avatar-choice[aria-pressed="true"]{border-color:#745798;box-shadow:0 0 0 3px #eee5f7,0 5px 0 #b8a2cd;transform:translateY(-3px)}.profile-setup .avatar-choice:hover:enabled{background:var(--avatar-color);filter:brightness(1.03)}
.profile-setup input[type=text]{width:100%;min-height:54px;box-sizing:border-box;border:2px solid #e4ddeb;border-radius:16px;background:#fbf9fd;color:#34334b;padding:12px 16px;font:inherit}.grade-choices{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.grade-choice{position:relative;cursor:pointer}.grade-choice input{position:absolute;opacity:0;width:1px;height:1px}.grade-choice span{display:grid;place-items:center;border:2px solid #e8e1ec;border-radius:14px;min-height:52px;background:#faf7fc;font-weight:700;color:#655575}.grade-choice input:checked+span{background:#eee5f7;border-color:#8866aa;box-shadow:0 3px 0 #cdb8df}.grade-choice input:focus-visible+span{outline:3px solid #8866aa;outline-offset:3px}
.profile-setup__note{font-size:.76rem;color:#777184;line-height:1.7;margin:0}.profile-setup__status{min-height:1em;font-size:.85rem;color:#a24f4f;margin:0}.profile-setup .profile-setup__submit{background:#77549b;color:white;border:2px solid #654483;box-shadow:0 5px 0 #593977;min-height:58px;font-weight:700;border-radius:18px;display:flex;justify-content:space-between;align-items:center}.profile-setup .profile-setup__submit:hover:enabled{background:#8864aa}.profile-setup .profile-setup__back{background:transparent;border:0;color:#83738f;box-shadow:none;font-size:.8rem;min-height:44px}.station-lock{font-size:22px}.station:disabled{filter:grayscale(.65);opacity:.55}
@media(max-width:720px){.profile-setup{grid-template-columns:1fr;padding:20px;gap:24px;margin:8px auto;max-width:540px}.profile-setup__preview{width:100px;height:100px;font-size:62px;margin:18px auto}.profile-setup h1{font-size:2rem}.profile-setup__planet{display:none}.profile-setup__form{padding:22px}.avatar-choices{grid-template-columns:repeat(3,1fr)}.avatar-choice span{font-size:40px}.grade-choices{gap:5px}.grade-choice span{min-height:48px}}
@media(prefers-reduced-motion:reduce){.profile-setup *{transition:none!important;animation:none!important}}
.avatar-choice[data-avatar="owl"]{--avatar-color:var(--avatar-0)}
.avatar-choice[data-avatar="fox"]{--avatar-color:var(--avatar-1)}
.avatar-choice[data-avatar="turtle"]{--avatar-color:var(--avatar-2)}
.avatar-choice[data-avatar="star"]{--avatar-color:var(--avatar-3)}
.avatar-choice[data-avatar="rocket"]{--avatar-color:var(--avatar-4)}
.avatar-choice[data-avatar="whale"]{--avatar-color:var(--avatar-5)}

/* Approved six-animal sheet, displayed as a CSS atlas without redrawing characters. */
.animal-avatar{--avatar-x:0;--avatar-y:0;position:relative;display:inline-grid;place-items:center;isolation:isolate;overflow:hidden;width:100%;aspect-ratio:1;border-radius:22%;background:#e7dff0;vertical-align:middle}
.animal-avatar>img{position:absolute;width:300%;height:200%;max-width:none;left:calc(var(--avatar-x) * -100%);top:calc(var(--avatar-y) * -100%);pointer-events:none}
.animal-avatar>img[hidden]{display:none}.animal-fallback{font-size:2rem;line-height:1}
.animal-avatar[data-animal=owl]{--avatar-x:1}.animal-avatar[data-animal=turtle]{--avatar-x:2}
.animal-avatar[data-animal=cat]{--avatar-y:1}.animal-avatar[data-animal=axolotl]{--avatar-x:1;--avatar-y:1}.animal-avatar[data-animal=raccoon]{--avatar-x:2;--avatar-y:1}
.avatar-choice{padding:4px}.avatar-choice>.animal-avatar{display:block}.profile-setup__preview>.animal-avatar{width:100%;height:100%;border-radius:50%}.profile-setup__preview{overflow:hidden;transform:none}.profile-button>span{width:100%;display:block}.profile-button .animal-avatar{width:100%;max-width:116px}.review-list .animal-avatar{width:48px}
.avatar-choice:focus-visible{outline:3px solid #365ec6;outline-offset:4px}

/* Local motion study: educational state, quantities and navigation are unchanged. */
.lesson-nav{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-end}
#help-direct{background:linear-gradient(145deg,#fff5b8,#ffc45a);border-color:#fff4ca;color:#855316;box-shadow:inset 0 3px 2px #fff9dc,0 5px 0 #d49437,0 9px 14px #9f76272b}
#talk-direct{background:linear-gradient(145deg,#c0f2e8,#60c8b7);border-color:#d5fff4;color:#226c65;box-shadow:inset 0 3px 2px #e6fff6,0 5px 0 #389f91,0 9px 14px #359e8f2b}
#next-item{background:linear-gradient(150deg,#ffc975,#f4a54d);border-color:#ffedc9;color:#744712;box-shadow:inset 0 3px 2px #fff0cb,0 5px 0 #cc8233,0 10px 16px #ac70222b;border-radius:24px;min-width:76px;min-height:64px}#next-item:enabled .icon{animation:next-nudge 2.6s ease-in-out infinite}
.method-orbit{position:relative;display:block;width:44px;height:44px}.method-orbit i{position:absolute;display:block;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#aff2ff,#1cadd7 60%,#1876a6);box-shadow:0 3px 3px #345b7526;animation:shape-hop 3.2s ease-in-out infinite}
.method-orbit i:nth-child(1){left:0;top:19px}.method-orbit i:nth-child(2){right:0;top:20px;border-radius:5px;background:linear-gradient(135deg,#ffd08d,#ef862a);animation-delay:-1.1s;transform:rotate(12deg)}.method-orbit i:nth-child(3){left:15px;top:0;background:linear-gradient(130deg,#cbb6ff,#7954cf);border-radius:5px;clip-path:polygon(50% 0,100% 100%,0 100%);animation-delay:-2.2s}
.equation{position:relative;isolation:isolate}.equation.is-celebrating::after{content:'';pointer-events:none;position:absolute;inset:-28px;border:4px dashed #edb347;border-radius:50%;z-index:-1;animation:equation-ring 900ms ease-out forwards}.equation.is-celebrating input{border-color:#91b84b;box-shadow:0 0 0 7px #e2edbd88,inset 0 2px 4px #6a54841a}
@keyframes shape-hop{0%,70%,100%{translate:0 0}80%{translate:0 -7px}90%{translate:0 0}}
@keyframes next-nudge{0%,75%,100%{translate:0 0}86%{translate:-5px 0}}
@keyframes equation-ring{from{opacity:.9;transform:scale(.7) rotate(-8deg)}to{opacity:0;transform:scale(1.3) rotate(12deg)}}
@media(prefers-reduced-motion:reduce){.method-orbit i,#next-item:enabled .icon,.equation.is-celebrating::after{animation:none}.equation.is-celebrating::after{display:none}}

/* Clear live control feedback; no new learning state. */
.icon-button[aria-busy="true"]{opacity:.7;outline:3px dotted var(--tp-color-primary)}
#talk-direct[aria-pressed="true"],#voice-talk[aria-pressed="true"]{outline:3px solid #26897b;box-shadow:0 0 0 6px #67d4bd44}
#feedback[data-kind="correct-pending"]{color:#458439;opacity:.8}
