:root{--bg:#fff5f7;--paper:#fffdfb;--canvas-top:#fffdf9;--canvas-bottom:#ffeef2;--accent-blue:#4fa3d1;--accent-pink:#f28b9f;--gold:#f5c147;--ink:#49384e;--muted:#907f91;--line:#f5dce4;--shadow:0 12px 30px #784c6c14}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:ui-rounded,"Hiragino Maru Gothic ProN","Microsoft YaHei",system-ui,sans-serif;color:var(--ink)}body{background:radial-gradient(circle at 12% 8%,#fff 0%,transparent 28%),radial-gradient(circle at 85% 12%,#ffe5ef 0%,transparent 38%),var(--bg)}button,input,select{font:inherit}button{cursor:pointer;border:0}button:focus-visible,canvas:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent-blue);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.5}.app{width:min(1060px,calc(100% - 28px));margin:auto;padding:15px 0 12px}.header,.identity,.bag,.modules,.stage-heading,.toolbar,.footer,.session,.panel-head{display:flex;align-items:center}.header,.stage-heading,.footer,.panel-head{justify-content:space-between}.identity{gap:11px}.brand-mark{width:54px;height:54px;border-radius:17px;background:#ffe4b2;display:grid;place-items:center;box-shadow:inset 0 -3px #f6c77d}.brand-mark img{width:39px;height:39px;object-fit:contain}.kicker,.eyebrow{font-size:10px;font-weight:850;letter-spacing:1.5px;color:#b58c9c}.header h1{font-size:clamp(21px,3vw,28px);margin:2px 0}.bag{gap:15px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px 13px;box-shadow:var(--shadow)}.bag span{display:inline-flex;align-items:center;gap:4px}.bag b{font-size:17px}.cone-icon{width:23px;height:23px;vertical-align:middle;object-fit:contain}.modules{gap:10px;margin-top:14px}.module{flex:1;min-width:0;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;text-align:left;align-items:center;padding:11px;border-radius:18px;background:white;border:2px solid transparent;box-shadow:var(--shadow);color:var(--ink);font-weight:850;line-height:1.25}.module.active{border-color:#f3adc7;background:#fff3f8}.module-icon{grid-row:1/3;font-size:28px;text-align:center}.tab-cone{width:30px;height:30px}.module small{font-size:11px;font-weight:600;color:var(--muted)}.workspace{background:var(--paper);border:1px solid var(--line);border-radius:23px;margin-top:13px;padding:15px 17px 8px;box-shadow:var(--shadow)}.stage-heading{gap:8px;min-height:54px}.stage-heading h2{font-size:clamp(21px,3vw,27px);margin:3px 0}.stage-info{display:flex;gap:12px;color:var(--muted);font-size:12px;align-items:center}.local-mark{color:#7aab9b;font-size:10px;font-weight:850}.canvas-shell{height:clamp(420px,57dvh,575px);border-radius:18px;overflow:hidden;position:relative;background:linear-gradient(180deg,var(--canvas-top),var(--canvas-bottom));border:1px solid var(--line);margin-top:8px}#world{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}#world:active{cursor:grabbing}.win-toast{position:absolute;left:50%;top:10px;transform:translateX(-50%);min-width:160px;max-width:90%;padding:10px 15px;text-align:center;background:#fffefa;border:1px solid #f3c6d5;border-radius:20px;color:#97628a;box-shadow:0 7px 24px #bd719d40;font-size:17px;font-weight:850;pointer-events:none}.win-toast[hidden]{display:none}.start-overlay{position:absolute;inset:0;background:#fff8fbf2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;z-index:2}.start-overlay[hidden]{display:none}.start-overlay img{height:min(40%,200px);width:auto;object-fit:contain;filter:drop-shadow(0 5px 8px #b6a4d2aa)}.start-overlay strong{font-size:24px}.start-overlay small{font-size:13px;color:var(--muted)}.toolbar{gap:12px;justify-content:space-between;min-height:58px}.note{font-size:13px;color:#987b8b;flex:1;line-height:1.35}.primary{background:#5ca4cd;color:white;border-radius:13px;padding:12px 20px;font-weight:850;white-space:nowrap;box-shadow:0 3px 0 #407fa7}.primary:disabled{box-shadow:none}.subtle,.wide{background:#fff0f7;color:#a15985;border-radius:12px;padding:11px;font-weight:800}.footer{margin-top:13px;color:var(--muted);font-size:12px;gap:10px}.session{gap:12px}.finish{border:1px solid #f2d6a6;background:#fff4d6;border-radius:12px;padding:10px 13px;color:#a6782e;font-weight:800}.overlay{position:fixed;inset:0;background:#34273795;z-index:20;display:flex;align-items:center;justify-content:center;padding:12px}.overlay[hidden]{display:none}.parent-panel{width:min(900px,100%);max-height:94dvh;overflow:auto;overscroll-behavior:contain;border-radius:22px;background:var(--paper);padding:20px;box-shadow:0 20px 70px #34273766}.panel-head h2{margin:4px 0}.close{width:42px;height:42px;border-radius:12px;background:#ffedf4;font-size:22px}.panel-explainer,.small-muted{font-size:12px;color:var(--muted);line-height:1.5}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.panel-card{border:1px solid var(--line);background:white;border-radius:15px;padding:15px;margin-bottom:13px}.panel-card h3{margin:0 0 9px;font-size:16px}.panel-card label{display:block;font-size:12px;color:#877382;margin:10px 0 5px}.panel-card select,.panel-card input[type=text]{width:100%;border:1px solid #edcfda;border-radius:10px;padding:10px;background:#fff}.panel-card input[type=range]{width:100%;accent-color:var(--accent-pink)}.panel-card label.toggle{display:flex;align-items:center;gap:8px}.wide{width:100%;display:block;margin-top:9px}.wide.neutral{background:#f4f0f3;color:#826c7d}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.stat{background:#fff2f8;border-radius:10px;padding:9px 3px;text-align:center}.stat b{display:block;font-size:18px;color:#9a668b}.stat small{font-size:10px}.history{max-height:210px;overflow:auto;font-size:12px}.history-item{display:flex;gap:12px;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f4e8ee}.chips{display:flex;flex-wrap:wrap;gap:5px}.chips button{padding:7px 10px;background:#fbeaf3;border-radius:18px;font-size:12px;color:#9a5f7e}.chips button.selected{background:#d4eefa;color:#386d96}.import-label{display:block;text-align:center;background:#fff0f7;color:#a15985;padding:11px;border-radius:12px;font-weight:800;cursor:pointer}.import-label input{display:none}
@media(max-width:690px){.app{width:calc(100% - 12px);padding-top:7px}.brand-mark{width:40px;height:40px}.brand-mark img{width:29px;height:29px}.identity{gap:7px}.header h1{font-size:18px}.kicker{font-size:8px}.bag{padding:7px;gap:8px;border-radius:12px}.bag b{font-size:13px}.bag .cone-icon{width:17px;height:17px}.modules{margin-top:10px;gap:5px}.module{display:flex;flex-direction:column;gap:2px;min-height:70px;text-align:center;padding:5px 2px;font-size:11px;border-radius:11px}.module-icon{font-size:23px}.module small{font-size:9px}.workspace{padding:9px 7px 5px;margin-top:8px;border-radius:15px}.stage-heading{min-height:45px}.stage-heading h2{font-size:18px}.stage-info{font-size:10px;gap:5px;flex-direction:column}.canvas-shell{height:clamp(395px,57dvh,510px);margin-top:5px}.toolbar{gap:6px;min-height:58px}.note{font-size:11px}.subtle,.primary{font-size:12px;padding:10px}.footer{margin-top:8px}.footer>span{display:none}.session{justify-content:space-between;width:100%}.finish{padding:9px;font-size:11px}.panel-grid{grid-template-columns:1fr}.parent-panel{padding:13px}.stat-grid{gap:3px}}
@media(max-width:345px){.header h1{font-size:16px}.module{font-size:10px}.module small{font-size:8px}.canvas-shell{height:425px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.girl-nav{height:37px;width:34px;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 2px 2px #68649d33)}

/* v0.3.3 seven-slot, ten-minute lesson controls */
.intro-skip,.curtain-button{position:absolute;left:50%;bottom:13%;transform:translateX(-50%);z-index:3;border-radius:28px;background:#fff;color:#98669f;padding:13px 19px;white-space:nowrap;font-weight:850;box-shadow:0 7px 24px #b971a444;border:2px solid #e5bcd8;font-size:clamp(13px,3vw,17px)}
.intro-skip[hidden],.curtain-button[hidden],.lesson-done[hidden]{display:none}
.lesson-done{position:absolute;left:50%;transform:translateX(-50%);bottom:3%;width:max-content;max-width:90%;color:#8e74a1;font-size:clamp(11px,2.8vw,14px);line-height:1.4;font-weight:800;text-align:center;pointer-events:none;white-space:normal;overflow-wrap:anywhere}
.lesson-locked{opacity:.46;cursor:default}
#lessonClock{font-size:11px;white-space:nowrap;color:#92789b;font-weight:750}
#lessonClock[hidden],.finish[hidden],#nextBtn[hidden],#replayBtn[hidden]{display:none!important}
@media(max-width:690px){.intro-skip,.curtain-button{bottom:10%;font-size:13px;padding:11px 12px}.session{gap:6px}#lessonClock{font-size:10px}}

/* V0.4.1: parent-only visual review scene panel. */

html,body{overscroll-behavior-y:none;overflow-x:hidden;-webkit-touch-callout:none}
#world,.canvas-shell{touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:contain}
/* Keep vertical document flow on short phones; fixed body would crop the parent console. */
@media(max-width:690px){.canvas-shell{max-width:100%;contain:layout paint}}
