.scene-switcher{position:absolute;left:max(14px,env(safe-area-inset-left));top:max(12px,env(safe-area-inset-top));display:flex;gap:5px;padding:5px;z-index:10;border:1px solid #dfc9a9;background:#f2e4cd;border-radius:20px;box-shadow:inset 0 2px 5px #fff8e9,0 3px 7px #8d735731}
.scene-switcher button{border:0;display:flex;gap:7px;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border-radius:14px;background:transparent;color:#77604e;font:600 15px/1.2 system-ui,sans-serif;box-shadow:none}
.scene-switcher button[aria-pressed=true]{background:#79afd2;color:#fff9eb;box-shadow:inset 0 2px 3px #b2d6eb,0 2px 3px #8a795c33}
.scene-switcher svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.room-objects[hidden]{display:none!important}.room-objects{position:absolute;inset:0;pointer-events:none}.room-objects button{pointer-events:auto}.magnetic-objects{z-index:2}
.scene[data-room=magnetic] .cat-art{left:-2.8%;top:6.1%;width:43.4%;height:65.1%}
.scene[data-room=magnetic] .cat-shadow{left:6%;top:62.2%;width:25%;height:2.8%}
.scene[data-room=magnetic] .kitten{left:3%;top:16.6%;width:31%;height:48.1%}
.scene[data-room=magnetic] .replay{left:58.7%;top:12.2%;width:10.5%;height:15.8%}
.scene[data-room=magnetic] .bubble{left:25.3%;top:8%;width:32.3%;height:21.5%}
.scene[data-room=magnetic] .speech-text{left:27.5%;top:10.1%;width:27.8%;height:14.5%;font-size:2.45cqw;line-height:1.18}
.mag-tile,.mag-train{position:absolute;padding:0;border:0;background:transparent;display:block;touch-action:manipulation;overflow:visible;border-radius:12%}
.mag-tile{bottom:10.3%;filter:drop-shadow(0 .2cqw .25cqw #7a583e28);transform-origin:50% 90%}
.mag-tile img{display:block;width:100%;height:auto;user-select:none;pointer-events:none}
.tile-red-square{left:4.4%;width:14.2%}
.tile-blue-rectangle{left:21.3%;width:20.6%}
.tile-yellow-equilateral{left:44%;width:17.4%}
.tile-green-isosceles{left:64.6%;width:12.6%}
.tile-purple-right{left:80.1%;width:17.8%}
.mag-tile.touched{animation:tile-lift .8s ease-in-out both}
.mag-train{left:38.9%;top:30.5%;width:50.8%;filter:drop-shadow(0 .2cqw .18cqw #7a583e20)}
.train-rig{position:relative;display:block;width:100%;transform-origin:50% 90%}.train-rig>img{display:block;width:100%;height:auto;user-select:none;pointer-events:none}
.train-shadow{left:42%;top:59.5%;width:47%;height:2.8%}
.wheel-mark{position:absolute;display:block;border-radius:50%;overflow:hidden;opacity:0}
.wheel-mark svg{display:block;width:100%;height:100%;fill:none;stroke:#986236;stroke-opacity:.4;stroke-width:3;stroke-linecap:round}
.steam{position:absolute;left:14.5%;top:24%;width:3.9%;aspect-ratio:1;border-radius:50%;background:#fff9e9;filter:blur(.06cqw);opacity:0;pointer-events:none}
.mag-train.train-running .train-rig{animation:train-chug 2.8s ease-in-out both}
.mag-train.train-running .wheel-mark{opacity:1;animation:wheel-turn .65s linear infinite}
.mag-train.train-running .steam{animation:steam-puff 1.1s ease-out 2}
.mag-train.train-running .steam-two{animation-delay:.28s}.mag-train.train-running .steam-three{animation-delay:.56s}
@keyframes tile-lift{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-.9cqw) rotate(-2deg);filter:drop-shadow(0 .6cqw .4cqw #7a583e33) brightness(1.08)}65%{transform:translateY(-.45cqw) rotate(1deg)}}
@keyframes train-chug{0%,100%{transform:translate(0,0) rotate(0)}12%{transform:translate(.4cqw,-.15cqw) rotate(-.3deg)}26%{transform:translate(1.1cqw,0) rotate(.25deg)}40%{transform:translate(1.9cqw,-.18cqw) rotate(-.25deg)}55%{transform:translate(2.8cqw,0) rotate(.2deg)}68%{transform:translate(2.9cqw,-.12cqw) rotate(-.2deg)}84%{transform:translate(1.4cqw,0) rotate(.15deg)}}
@keyframes wheel-turn{to{transform:rotate(360deg)}}
@keyframes steam-puff{0%{opacity:0;transform:translate(0,0) scale(.45)}20%{opacity:.85}100%{opacity:0;transform:translate(-1.2cqw,-2.5cqw) scale(1.65)}}
@media(max-width:600px){.scene-switcher{left:max(10px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));border-radius:17px;padding:4px}.scene-switcher button{padding:8px 11px;font-size:13px;gap:6px}.scene-switcher svg{width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.mag-tile,.train-rig,.wheel-mark,.steam{animation:none!important}}

.scene-switcher{padding:4px;border-radius:17px}.scene-switcher button{width:44px;height:44px;min-height:44px;padding:10px;gap:0;border-radius:12px}.scene-switcher svg{width:24px;height:24px}.scene-switcher button[aria-expanded=true]{background:#79afd2;color:#fff9eb}
.scene-picker{width:min(660px,calc(100vw - 28px));max-height:86svh;overflow:auto;border:1px solid #dfc9a9;border-radius:26px;padding:22px;background:#f4e7d2;color:#6b5545;box-shadow:inset 0 2px 7px #fff9ed,0 18px 70px #5f493a40}
.scene-picker::backdrop{background:#5d493e55;backdrop-filter:blur(5px)}
.scene-picker-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.scene-picker h1{font:700 22px/1.3 system-ui,sans-serif;margin:0}
.scene-picker-close{display:grid;place-items:center;border:0;background:#ead9bd;color:#856c55;border-radius:50%;width:44px;height:44px;font:28px/1 system-ui,sans-serif;padding:0}
.scene-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}
.scene-card{position:relative;display:block;border:3px solid transparent;background:#fff3df;padding:0;border-radius:18px;overflow:hidden;color:#735b47;box-shadow:0 3px 8px #8a725027;font:600 16px/1.3 system-ui,sans-serif}
.scene-card>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.scene-card>span:not(.scene-card-check){display:block;padding:13px 28px}
.scene-card[aria-pressed=true]{border-color:#7cafd0;background:#e6f0f3;color:#477b9e}.scene-card-check{display:none;position:absolute;bottom:10px;right:10px;border-radius:50%;width:24px;height:24px;background:#7cafd0;color:#fff9eb;font:700 16px/24px system-ui,sans-serif;text-align:center}.scene-card[aria-pressed=true] .scene-card-check{display:block}
@media(max-width:600px){.scene-picker{padding:16px;border-radius:22px}.scene-picker h1{font-size:20px}.scene-picker-grid{gap:12px}.scene-card{font-size:14px}.scene-card>span:not(.scene-card-check){padding:12px 24px}.scene-switcher button{padding:10px}.scene-switcher svg{width:24px;height:24px}}
