/* The map is a row of natural-aspect scene windows. No background is stretched. */
.map-layout{display:block;position:relative;width:100%;max-width:none;height:calc(var(--toby-view-height) - 76px);overflow:hidden;background:#17477f}
.map-scroll{position:relative;display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain}
.map-scroll::-webkit-scrollbar{display:none}
.map-panel{position:relative;flex:0 0 min(100vw,700px);height:100%;scroll-snap-align:start;overflow:hidden;background-image:linear-gradient(180deg,#0d397260 0%,transparent 28%,transparent 60%,#0b31558e 100%),url('./assets/map.webp');background-repeat:no-repeat;background-size:100% 100%,auto 220%;background-position:center,center var(--scene-y)}
.map-panel::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#173f710d 0%,transparent 10%,transparent 86%,#173f7166 100%);pointer-events:none}
.map-panel::after{content:'✦ ━━━━━ ✦';position:absolute;right:0;top:54%;transform:translateX(50%);z-index:2;color:#fff1b7;text-shadow:0 0 10px #f9a91e;letter-spacing:6px;pointer-events:none}
.map-panel:last-child::after{display:none}
.map-panel.p0{--scene-y:100%}.map-panel.p1{--scene-y:84%}.map-panel.p2{--scene-y:68%}.map-panel.p3{--scene-y:52%}.map-panel.p4{--scene-y:36%}.map-panel.p5{--scene-y:20%}.map-panel.p6{--scene-y:0%}
.panel-marker{position:absolute;top:24px;left:50%;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:200px;padding:10px 20px;border:2px solid #fce1a3;border-radius:18px;background:#123b79dc;box-shadow:0 5px 12px #1031607d;color:white;text-align:center}
.panel-marker span{font-size:12px;font-weight:800;color:#ffe6a0}.panel-marker strong{font-size:24px;text-shadow:0 2px 3px #123a72}
.map-panel .map-node{left:50%;top:52%;min-width:190px;min-height:80px;justify-content:center;font-size:18px}.map-panel .map-node em{font-size:19px}.map-panel .map-toby{left:8%;top:auto;bottom:14%;width:clamp(125px,20vw,210px)}
.panel-footer{position:absolute;bottom:102px;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;padding:8px 16px;border:2px solid #b2e0ff;border-radius:999px;background:#173e81e8;color:#fff;font-size:15px;font-weight:900;text-align:center;box-shadow:0 5px 12px #0b2b65a0}
.map-controls{position:absolute;left:50%;bottom:calc(17px + var(--toby-safe-bottom));transform:translateX(-50%);z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(330px,calc(100vw - 32px));padding:5px;border:2px solid #b4dafa;border-radius:999px;background:#123d7eea;box-shadow:0 5px 15px #08235599;color:#fff;font-size:13px;font-weight:900;text-align:center;white-space:nowrap}.map-controls button{width:40px;height:40px;flex:none;border:2px solid #fde9aa;border-radius:50%;background:#2a74be;color:white;font-size:27px;line-height:1}
.map-records{position:absolute;z-index:5;right:16px;top:16px;border:2px solid #b5dcf8;border-radius:16px;padding:10px 14px;background:#133e7bdc;color:white;font-weight:900;box-shadow:0 4px 12px #112d6c80}
.day-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(350px,520px);align-items:center;gap:20px;min-height:calc(var(--toby-view-height) - 76px);max-width:1300px;margin:auto;padding:20px}.day-scene{height:calc(var(--toby-view-height) - 130px);min-height:390px;position:relative;overflow:hidden;border:4px solid #8ac8eb;border-radius:28px;background:url('./assets/map.webp') center bottom/cover no-repeat;box-shadow:0 20px 35px #09225788}.day-scene::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,#153a7190);pointer-events:none}.day-scene>img{position:absolute;bottom:4%;left:7%;height:39%;filter:drop-shadow(0 10px 10px #092d6899)}.day-layout .mission-card{width:100%;margin:10px auto;max-height:calc(var(--toby-view-height) - 120px);overflow-y:auto}.day-layout .mission-card .ribbon{margin:0 auto 14px}
.choice.correct,.choice.correct:hover,.choice.correct:disabled{background:#d8f5da;border-color:#5db977;color:#1c7136;opacity:1;filter:none;box-shadow:0 2px 0 #3d955a}
.choice.incorrect,.choice.incorrect:hover,.choice.incorrect:disabled{background:#ffe0dd;border-color:#e06564;color:#a52b2c;opacity:1;filter:none;box-shadow:0 2px 0 #bd5556}
.choice:disabled{opacity:1;filter:none;cursor:default}.choice:not(.correct):not(.incorrect):disabled:hover{background:#fff8e8;border-color:#dec298;color:#754d2b}
.feedback.try{background:#ffe8e5;border-color:#dc7370;color:#982d2d}.feedback.good{background:#e4f6dd;border-color:#77c687;color:#326f3d}
@media(max-width:820px){.map-layout{height:calc(var(--toby-view-height) - 65px)}.map-panel{flex-basis:100vw;background-size:100% 100%,auto 220%}.map-panel .map-node{top:48%}.map-panel .map-toby{width:145px;left:6%;bottom:17%}.panel-marker{top:18px}.map-records{top:12px;right:12px;padding:7px 10px;font-size:12px}.panel-footer{bottom:88px;font-size:12px}.map-controls{bottom:calc(12px + var(--toby-safe-bottom))}.day-layout{height:calc(var(--toby-view-height) - 65px);min-height:0;display:flex;flex-direction:column;gap:0;padding:8px 9px;overflow:hidden}.day-scene{width:100%;height:auto;min-height:170px;flex:1;border-width:2px;border-radius:18px}.day-scene>img{height:82%;left:6%;bottom:0}.day-scene .back-btn{margin:8px;font-size:12px;padding:7px 11px}.day-layout .mission-card{flex:none;margin:10px 0 0;max-height:calc(var(--toby-view-height) - 270px);padding:22px 18px;overflow-y:auto}.day-layout .mission-card .ribbon{margin:0 auto 10px}.day-layout .mission-card h1{font-size:25px}.day-layout .mission-lead{font-size:14px;display:block}.day-layout .summary{display:flex;font-size:11px}.day-layout .progress{margin:16px 0}.day-layout .progress-step{padding:9px}.day-layout .mission-card>.gold-btn{padding:11px}.quest-layout{padding-bottom:var(--toby-safe-bottom)}}
@media(max-width:360px){.panel-marker{min-width:160px}.panel-marker strong{font-size:19px}.map-panel .map-node{top:45%}.day-layout .mission-lead{font-size:12px}}
@media(max-width:820px) and (max-height:700px){.map-panel .map-node{top:40%}.map-panel .map-toby{left:-3%;bottom:15%;width:125px}.quest-scene{height:108px}.quest-scene>img{height:95px;left:5px}.quest-scene .back-btn{margin:5px;padding:4px 8px}.quest-scene .speech-bubble{top:48px;left:93px;right:6px;padding:5px;font-size:11px}.paper{margin-top:8px}.paper .word-card{min-height:125px}.paper .stage-track{margin:5px 0}.paper .feedback{margin-top:6px}}

