/* A single, welcoming hub with touch-sized controls and short instructions. */
.hud-home{display:flex;width:auto;min-width:92px;gap:7px;border-radius:12px;padding:7px 12px;font-weight:800}
.hud-home span{display:block;font-size:.88rem}
#update-notice{pointer-events:none}#update-notice .update-banner{pointer-events:auto}
body[data-route=worlds] .page-head{margin-bottom:14px}body[data-route=worlds] .page-head h1{font-size:2rem}body[data-route=worlds] .page-head p{margin-bottom:5px}
body[data-route=worlds] .overworld{height:clamp(400px,calc(100dvh - 290px),720px);aspect-ratio:auto}.hub-below-map{margin-top:16px}
body[data-route=worlds] .overworld-art{object-fit:fill}
body[data-route=worlds] .game-download{padding:9px 15px;margin-bottom:14px}
body[data-route=worlds] .game-download>div>span{display:inline;margin-left:10px}
body[data-route=worlds] .wrap{padding-top:84px}
body[data-route=worlds] .page-head .eyebrow{margin:0 0 4px}
body[data-route=worlds] .page-head h1{font-size:1.8rem;line-height:1.2;margin:0 0 5px}
.hub-shortcuts,.hub-status,.hub-saved,.game-download{display:flex;align-items:center;justify-content:space-between;gap:14px}
.hub-shortcuts{flex-wrap:wrap;justify-content:flex-start}
.hub-status{padding:14px 18px;margin:0 0 12px;background:#fff3c6;border:2px solid #d6b86c;border-radius:14px}
.hub-status span,.game-download>div>span{display:block;font-size:.76rem;margin-top:4px}
.hub-status strong{font-size:1rem;color:#69452c}
.hub-saved{padding:15px 18px;margin:0 0 12px;border:2px solid #b995b9;border-radius:14px;background:#fcf0ff}
.hub-saved p{font-size:.8rem;margin:6px 0 0}.hub-saved .actions{flex-shrink:0}
.game-download{padding:12px 18px;margin:0 0 18px;background:#edf7ef;border:2px solid #96b7a4;border-radius:14px}
.game-download strong{font-size:.87rem}.game-download .small{font-size:.74rem;line-height:1.45}
.game-download p{margin:5px 0 0}.game-download button{flex-shrink:0;max-width:100%;min-height:44px}
.game-download button:disabled{opacity:.8;cursor:wait}
.quest-exit{white-space:nowrap;flex-shrink:0}.quest-top{flex-wrap:wrap}
.world-welcome{max-width:660px;padding:25px;max-height:calc(100dvh - 24px);overflow:auto;border:4px solid #9a6c89;background:linear-gradient(135deg,#fff4d1,#f9eafa)}
.world-welcome-content{display:grid;grid-template-columns:115px minmax(0,1fr);align-items:center;gap:22px}
.world-welcome-art>.horse,.world-welcome-art>.guide-horse,.world-welcome-art>.shopkeeper{width:115px;margin:0}
.world-welcome-art>.gwen-character{width:100px;height:155px}
.world-welcome h2{font-size:1.5rem}.world-welcome p{font-size:.94rem;line-height:1.6}
.world-welcome .actions{gap:10px;flex-wrap:wrap}.world-welcome .welcome-question{font-weight:800;color:#6a446d;margin:14px 0 0}
.world-welcome .welcome-close{float:right;font-size:1.3rem;min-width:44px;min-height:44px}
.world-greeting-button{margin:0 0 15px}
.mystery-treat{position:relative;display:grid;place-items:center;width:130px;height:120px;font-size:4.8rem;margin:15px auto;background:#fae2f4;border:3px dashed #bc7faa;border-radius:24px}.mystery-treat span{position:absolute;right:6px;top:2px;font-size:1.7rem;color:#754074;background:#fff9d7;border-radius:50%;padding:0 9px}
.library-subjects{display:flex;flex-wrap:wrap;gap:10px}.library-subjects [aria-pressed=true]{background:#f4c9e5;border-color:#a36694}.library-prompt{padding:20px 0;font-size:1.1rem}
.world-welcome-art .gwen-character.talking{animation:welcome-nod .8s ease-in-out infinite}@keyframes welcome-nod{50%{transform:rotate(-2deg) translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.world-welcome-art .gwen-character.talking{animation:none}}.reduce-motion .world-welcome-art .gwen-character.talking{animation:none}
@media(orientation:landscape) and (max-height:520px){body[data-route=worlds] .wrap{padding-top:65px}body[data-route=worlds] .page-head .eyebrow,body[data-route=worlds] .page-head>div>p:not(.eyebrow){display:none}body[data-route=worlds] .page-head h1{font-size:1.4rem}.hub-shortcuts .btn{min-height:44px;padding:7px 12px;font-size:.76rem}body[data-route=worlds] .game-download{margin-bottom:10px}}
@media(max-width:650px){.hub-status,.hub-saved,.game-download{align-items:flex-start;flex-wrap:wrap;padding:12px}.hub-status>.btn{width:100%}.hub-status strong{font-size:.9rem}.hub-saved .actions{width:100%}.game-download button{width:100%}.hub-shortcuts{gap:8px}.hub-shortcuts .btn{font-size:.78rem}.world-welcome{padding:16px}.world-welcome-content{grid-template-columns:65px 1fr;gap:12px}.world-welcome-art>.horse,.world-welcome-art>.guide-horse,.world-welcome-art>.shopkeeper{width:65px}.world-welcome-art>.gwen-character{width:65px;height:100px}.world-welcome h2{font-size:1.2rem}}
@media(orientation:landscape) and (max-height:520px){body[data-route=worlds] .wrap{padding-top:66px}.hub-status,.hub-saved,.game-download{padding:9px 14px;margin-bottom:10px}.hub-status span,.game-download .small{font-size:.7rem}.game-download>div{max-width:65%}.world-welcome{padding:14px 20px}.world-welcome-content{grid-template-columns:75px 1fr;gap:14px}.world-welcome-art>.horse,.world-welcome-art>.guide-horse,.world-welcome-art>.shopkeeper{width:75px}.world-welcome-art>.gwen-character{width:65px;height:100px}.world-welcome p{margin-bottom:6px;font-size:.85rem}.world-welcome .actions{margin-top:10px}}

.map-capy-host{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;margin:0 0 12px;padding:10px 14px;background:linear-gradient(120deg,#d9f2bd,#fff0b7);border:2px solid #7fa66a;border-radius:16px;box-shadow:0 4px #7f6c6833}.map-capy-button{border:0;background:none;padding:0;min-height:0}.map-capy-button .shopkeeper{width:72px}.map-capy-bubble{position:relative;padding:9px 12px;background:#fffaf0;border:2px solid #916c64;border-radius:12px}.map-capy-bubble:before{content:'';position:absolute;left:-10px;top:24px;width:16px;height:16px;background:#fffaf0;border-left:2px solid #916c64;border-bottom:2px solid #916c64;transform:rotate(45deg)}.map-capy-bubble p{display:inline;margin:0;font-size:.82rem}.map-capy-bubble .speaker-name{display:block;font-size:.58rem;letter-spacing:1px;color:#7d5268}.map-capy-bubble .text-btn{float:right;margin-left:12px;font-size:.69rem}@media(max-width:650px){.map-capy-host{grid-template-columns:58px 1fr;padding:8px 10px}.map-capy-button .shopkeeper{width:55px}.map-capy-bubble p{font-size:.74rem}}@media(orientation:landscape) and (max-height:520px){.map-capy-host{grid-template-columns:48px 1fr;padding:5px 9px;margin-bottom:8px}.map-capy-button .shopkeeper{width:45px}.map-capy-bubble{padding:6px 9px}.map-capy-bubble p{font-size:.67rem}.map-capy-bubble .speaker-name{display:none}}

/* The map is the opening game screen. All controls float over the artwork. */
body[data-route=worlds]{overflow:hidden;background:#2b769a}
body[data-route=worlds] .wrap{width:100vw;max-width:none;height:100dvh;padding:0;margin:0;overflow:hidden}
body[data-route=worlds] .wrap>.footer{display:none}
body[data-route=worlds] .hud-home{visibility:hidden}
.world-map-screen{position:relative;width:100vw;height:100dvh;overflow:hidden;background:linear-gradient(#5dc5ea,#217697)}
body[data-route=worlds] .overworld-scroll{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:auto;border:0;border-radius:0;background:#2381a6;scrollbar-color:#f6ca73 #296e8b;overscroll-behavior:contain}
body[data-route=worlds] .overworld{position:relative;flex:0 0 auto;width:min(100vw,150dvh);height:min(100dvh,66.6667vw);min-width:0;aspect-ratio:3/2;isolation:isolate;overflow:hidden;box-shadow:0 0 45px #143f5799}
body[data-route=worlds] .overworld-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.map-logo{position:absolute;z-index:4;left:50%;top:2.2%;transform:translateX(-50%);padding:6px 14px;border:3px solid #5a3a31;border-radius:7px;background:linear-gradient(#ffd979,#e89c45);box-shadow:inset 0 2px #fff1b2,0 4px #3a394a99;color:#412c34;font:900 clamp(.72rem,1.65vw,1.2rem)/1 ui-monospace,Consolas,monospace;letter-spacing:2px;white-space:nowrap;text-shadow:1px 1px #fff1bd}
body[data-route=worlds] .map-pin{position:absolute;z-index:5;left:var(--map-x);top:var(--map-y);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;width:auto;max-width:none;min-height:0;padding:0;border:0;background:none;box-shadow:none;color:#39293b;font-family:inherit;overflow:visible;filter:drop-shadow(0 3px 2px #23394d88)}
body[data-route=worlds] .map-pin:hover{filter:drop-shadow(0 0 5px #fffbd0);box-shadow:none}
body[data-route=worlds] .map-pin:active{transform:translate(-50%,-46%)}
.map-pin-icon{display:grid!important;place-items:center;width:clamp(42px,5vw,66px);height:clamp(42px,5vw,66px);margin:0!important;border:3px solid #fff3bf;border-radius:50%;background:linear-gradient(145deg,#f265ad,#963d83);box-shadow:inset 0 3px #ffacd3,inset 0 -4px #6d365f,0 4px #4d3b48;color:#fffce2;font:900 clamp(.72rem,1.2vw,1rem)/1 ui-monospace,Consolas,monospace;text-shadow:2px 2px #50324d}
.map-pin-icon img{display:block;width:auto;height:128%;max-width:95%;object-fit:contain;object-position:center 25%;filter:drop-shadow(0 2px 1px #4c2c55);image-rendering:pixelated}
.map-pin strong{display:block;margin-top:-2px;padding:4px 8px;border:2px solid #6b443a;border-radius:5px;background:#ffdda0;color:#3c2b35;font-size:clamp(.56rem,.9vw,.76rem);line-height:1.05;white-space:nowrap;box-shadow:inset 0 1px #fff3c7,0 3px #443840aa}
.map-pin-count{position:absolute;right:-8px;top:-7px;display:grid!important;place-items:center;min-width:30px;min-height:24px;margin:0!important;padding:3px 5px;border:2px solid #fff4b5;border-radius:12px;background:#326f65;color:white;font:800 .55rem/1 ui-monospace,Consolas,monospace;box-shadow:0 2px #324342}
.map-pin.map-complete .map-pin-icon{background:linear-gradient(#7bc99b,#38836f)}
.map-pin.map-complete .map-pin-count{background:#d29e32;color:#3f3031}
.map-capy-host{position:absolute;z-index:12;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(130px,170px) 54px;align-items:end;gap:6px;width:auto;margin:0;padding:0;background:none;border:0;box-shadow:none;pointer-events:none;transform:translate(var(--drag-x,0),var(--drag-y,0))}
.map-capy-button{grid-column:2;grid-row:1;align-self:end;filter:drop-shadow(0 4px 3px #283a3f88)}
.map-capy-button .shopkeeper{width:54px;max-height:82px;margin:0}
.map-capy-bubble{grid-column:1;grid-row:1;padding:8px 10px 7px;background:#fff9dbf2;border:3px solid #68484b;border-radius:10px;box-shadow:0 4px #3e3e4f77}
.map-capy-bubble:before{left:auto;right:-9px;top:auto;bottom:22px;border:0;border-right:3px solid #68484b;border-top:3px solid #68484b}
.map-capy-bubble p{display:block;margin:2px 0 4px;font-size:.6rem;line-height:1.3}
.map-capy-bubble .speaker-name{font-size:.52rem}
.map-capy-replay{float:right;min-height:30px;padding:3px 8px;border:1px solid #916b67;border-radius:6px;background:#f5d5e9;color:#61405c;font-size:.61rem;font-weight:800}.map-capy-button,.map-capy-replay{pointer-events:auto}
.map-quest-popover{position:absolute;z-index:10;left:var(--quest-x);top:var(--quest-y);transform:translate(-50%,calc(-100% - 48px)) translate(var(--drag-x,0),var(--drag-y,0));display:grid;gap:3px;width:clamp(170px,18vw,245px);padding:9px 11px;border:3px solid #633e55;border-radius:9px;background:linear-gradient(145deg,#fff6c9,#ffcbe9);box-shadow:inset 0 2px #fff,0 5px #3a354a99;color:#453142;text-align:left;animation:quest-bob 2.2s ease-in-out infinite}
.map-quest-popover[data-world="number-city"],.map-quest-popover[data-world="grammar-castle"],.map-quest-popover[data-world="geometry-galaxy"]{transform:translate(-50%,51px) translate(var(--drag-x,0),var(--drag-y,0))}
.map-drag-handle{display:flex;align-items:center;justify-content:center;gap:4px;min-height:25px;margin:-5px -6px 2px;padding:3px 7px;border:1px dashed #9a6680;border-radius:6px;background:#fff9e9aa;color:#71465f;font:900 .56rem/1 ui-monospace,Consolas,monospace;letter-spacing:.35px;text-transform:uppercase;cursor:grab;touch-action:none;user-select:none;pointer-events:auto}.map-drag-handle span{font-size:.9rem}.is-dragging{z-index:40!important;animation:none!important}.is-dragging .map-drag-handle{cursor:grabbing;background:#ffe0f0}
.map-quest-popover strong{font-size:clamp(.82rem,1.15vw,1.02rem);line-height:1.15;color:#6a345c}.map-quest-popover small{font-size:clamp(.66rem,.88vw,.8rem);line-height:1.3}
.map-quest-pointer{display:none}.map-quest-actions{display:flex;gap:6px;align-items:center;margin-top:3px}.map-quest-main{flex:1;min-height:34px;padding:4px 8px;border:2px solid #783b69;border-radius:5px;background:#eb6cae;box-shadow:0 2px #6a385d;color:#3d2539;font-size:.66rem;font-weight:900}.map-quest-close{width:34px;height:34px;min-height:34px;padding:0;border:2px solid #96777f;border-radius:50%;background:#fff3df;color:#704b58;font-size:1rem}
.map-daily-next{border-color:#794561;background:linear-gradient(145deg,#fff7a8,#ffadd7);box-shadow:inset 0 2px #fff,0 0 0 4px #fff4a988,0 6px #3a354a99}.map-daily-label{font:900 clamp(.55rem,.75vw,.68rem)/1.2 ui-monospace,Consolas,monospace;letter-spacing:.45px;color:#8a3d69}.map-quest-plan{min-height:34px;padding:4px 7px;border:2px solid #765c69;border-radius:5px;background:#fff4cf;color:#513b4d;font-size:.64rem;font-weight:900}.map-quest-actions .map-quest-close{flex:0 0 auto}
dialog:has(.daily-plan-dialog){max-width:760px;max-height:calc(100dvh - 24px);overflow:auto}.daily-plan-dialog{max-width:720px}.daily-plan-dialog>h2{margin-bottom:5px}.daily-plan-list{display:grid;gap:8px;max-height:min(58dvh,560px);margin:16px 0;padding:0;overflow:auto;list-style:none}.daily-plan-list li{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px 12px;border:2px solid #c1939d;border-radius:12px;background:#fff8e8}.daily-plan-list li.is-next{border-color:#a14178;background:linear-gradient(120deg,#fff2a8,#ffd1e9);box-shadow:0 3px #67455844}.daily-plan-number{display:grid;place-items:center;min-height:38px;padding:4px;border-radius:9px;background:#7a4b78;color:#fff;font:900 .72rem/1 ui-monospace,Consolas,monospace}.daily-plan-list strong,.daily-plan-list small{display:block}.daily-plan-list strong{font-size:1rem;line-height:1.2}.daily-plan-list small{margin-top:3px;font-size:.8rem;color:#695661}.daily-plan-list .map-quest-main{min-width:92px}
.daily-workload{display:flex;align-items:center;gap:9px 16px;margin:13px 0;padding:12px 15px;border:3px solid #9b4778;border-radius:12px;background:linear-gradient(120deg,#fff2a5,#ffd2e9);color:#5c3452}.daily-workload strong{font-size:1.05rem}.daily-workload span{font-size:.9rem}.daily-quest-size{display:inline-flex!important;align-items:center;gap:5px;margin-top:7px!important;color:#713c60!important;font-weight:800}.daily-quest-size b{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#a54379;color:#fff;font-size:.85rem}
@keyframes quest-bob{50%{margin-top:-4px}}
.map-tool-dock{position:absolute;z-index:13;left:max(14px,env(safe-area-inset-left));bottom:max(15px,env(safe-area-inset-bottom));display:flex;align-items:end;gap:8px}
.map-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:58px;height:58px;min-height:58px;padding:4px;border:3px solid #5d423c;border-radius:12px;background:linear-gradient(#ffe295,#d4934d);box-shadow:inset 0 2px #fff2bd,0 4px #303b42aa;color:#48343c;font-weight:900}.map-tool>span{font-size:1.4rem;line-height:1}.map-tool small{font-size:.52rem;text-transform:uppercase;letter-spacing:.5px}.map-tool.update-ready{background:linear-gradient(#ff95ce,#e054a1);animation:update-pulse 1.2s ease-in-out infinite}.map-tool:active{transform:translateY(3px)}
@keyframes update-pulse{50%{filter:brightness(1.2);box-shadow:inset 0 2px #fff2bd,0 0 0 5px #fff8a666}}
.map-download-host{display:contents}.map-download-card{position:fixed;z-index:50;left:max(14px,env(safe-area-inset-left));bottom:84px;width:min(460px,calc(100vw - 28px));margin:0;background:#fff7d9f5;border:3px solid #6b4c54;box-shadow:0 7px #273a4677}
.hud-download-host{display:flex;pointer-events:auto}.hud-download-host .map-tool{width:49px;height:49px;min-height:49px;border-radius:10px}.hud-download-host .map-tool>span{font-size:1.2rem}.hud-download-host .map-tool small{font-size:.45rem}.hud-download-host .map-download-card{top:max(78px,calc(env(safe-area-inset-top) + 64px));right:auto;bottom:auto;left:max(14px,env(safe-area-inset-left))}
.game-download-copy{min-width:0;flex:1}.download-progress{display:grid;gap:5px;margin-top:9px}.download-progress-copy{display:flex;justify-content:space-between;gap:10px;align-items:end}.download-progress-copy strong{color:#734066;font-size:.72rem}.download-progress-copy span{font-size:.66rem;color:#5e5264;white-space:nowrap}.download-meter{height:18px;padding:2px;overflow:hidden;border:2px solid #61434f;border-radius:7px;background:#dbc8b4;box-shadow:inset 0 2px #846f6b}.download-meter-fill{display:block;width:var(--download-progress);height:100%;border-radius:3px;background:repeating-linear-gradient(90deg,#f065ae 0 15px,#ff9fca 15px 19px);box-shadow:inset 0 2px #ffd9e9;transition:width .18s ease-out}.download-meter.indeterminate .download-meter-fill{width:36%;animation:download-scan 1s ease-in-out infinite}.map-download-button:disabled{opacity:1;filter:none;cursor:wait}
@keyframes download-scan{0%{transform:translateX(-115%)}100%{transform:translateX(310%)}}
@media(prefers-reduced-motion:reduce){.map-quest-popover,.map-tool.update-ready,.download-meter.indeterminate .download-meter-fill{animation:none}}.reduce-motion .map-quest-popover,.reduce-motion .map-tool.update-ready,.reduce-motion .download-meter.indeterminate .download-meter-fill{animation:none}
@media(orientation:portrait){body[data-route=worlds] .overworld-scroll{justify-content:flex-start}body[data-route=worlds] .overworld{width:150dvh;height:100dvh}.map-capy-host{position:fixed}.map-tool-dock{position:fixed}}
@media(orientation:landscape) and (max-height:600px){.map-logo{top:1.5%;padding:4px 10px}.map-pin-icon{width:40px;height:40px}.map-pin strong{padding:3px 6px;font-size:.53rem}.map-pin-count{right:-6px;top:-6px;min-width:27px;min-height:21px;font-size:.49rem}.map-capy-host{grid-template-columns:minmax(145px,220px) 52px;right:8px;bottom:8px}.map-capy-button .shopkeeper{width:52px;max-height:76px}.map-capy-bubble{padding:5px 7px}.map-capy-bubble p{font-size:.65rem}.map-capy-replay{min-height:27px;font-size:.6rem}.map-quest-popover{width:220px;padding:7px 9px}.map-quest-popover strong{font-size:.82rem}.map-quest-popover small{font-size:.67rem}.map-tool-dock{left:8px;bottom:8px}.map-tool{width:48px;height:48px;min-height:48px;border-width:2px}.map-tool>span{font-size:1.1rem}.map-download-card{left:8px;bottom:64px}.download-progress-copy span{font-size:.58rem}}
@media(max-width:640px){.hud-download-host .map-tool{width:44px;height:44px;min-height:44px;border-width:2px}.hud-download-host .map-tool small{font-size:.42rem}.hud-download-host .map-download-card{top:max(68px,calc(env(safe-area-inset-top) + 56px));right:auto;left:10px;width:min(430px,calc(100vw - 20px))}}
@media(max-width:640px){.daily-workload{display:grid}.daily-plan-list li{grid-template-columns:45px minmax(0,1fr)}.daily-plan-list li .map-quest-main{grid-column:1/-1;width:100%}}
@media(orientation:landscape) and (max-height:520px){dialog:has(.daily-plan-dialog){width:calc(100% - 24px);max-height:calc(100dvh - 16px);margin-block:8px;padding:12px 18px}.daily-plan-dialog>.eyebrow{margin-bottom:2px}.daily-plan-dialog>h2{margin:0 0 2px;font-size:1.3rem}.daily-plan-dialog>p{margin:2px 0 6px;font-size:.8rem}.daily-plan-list{gap:5px;max-height:47dvh;margin:7px 0}.daily-plan-list li{grid-template-columns:46px minmax(0,1fr) auto;gap:8px;padding:6px 9px}.daily-plan-number{min-height:32px}.daily-plan-list strong{font-size:.85rem}.daily-plan-list small{font-size:.68rem}.daily-plan-list li .map-quest-main{grid-column:auto;width:auto;min-width:82px}.daily-plan-dialog>.text-btn{font-size:.72rem}}
.menu-sound-row{grid-template-columns:repeat(2,minmax(0,1fr))}

/* World screens play like arcade stages, with missions over the scene. */
body[data-route=world]{overflow:hidden;background:#294f62}
body[data-route=world] .wrap{width:100vw;max-width:none;height:100dvh;padding:0;margin:0;overflow:hidden}
body[data-route=world] .wrap>.footer{display:none}
.world-adventure-screen{width:100%;height:100%;overflow:hidden}
body[data-route=world] .world-stage{position:relative;width:100%;height:100dvh;aspect-ratio:auto;border:0;border-radius:0;background:#345f74;box-shadow:none;overflow:hidden}
body[data-route=world] .world-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
body[data-route=world] .world-stage>.stable-scene{position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:auto;border:0;border-radius:0}
body[data-route=world] .world-stage>.stable-scene .stable-background,body[data-route=world] .world-stage>.stable-scene .repair-layer img{object-fit:cover}
body[data-route=world] .world-companion{left:43%;bottom:31%;width:14%;max-width:180px;z-index:3;filter:drop-shadow(0 5px 3px #40304277)}
.world-title-plaque{position:absolute;z-index:7;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);min-width:300px;max-width:48vw;padding:7px 18px 8px;border:3px solid #5d3c3c;border-radius:8px;background:linear-gradient(#ffe59e,#d8934a);box-shadow:inset 0 2px #fff5c6,0 4px #313b48aa;text-align:center;color:#3e2d37}
.world-title-plaque small,.world-title-plaque span{display:block;font-size:.58rem;line-height:1.25}.world-title-plaque h1{margin:2px 0;font:900 clamp(.88rem,1.5vw,1.25rem)/1.05 ui-monospace,Consolas,monospace;letter-spacing:.7px}.world-title-plaque span{font-weight:800;color:#5d4d4d}
.world-guide-token{position:absolute;z-index:8;left:max(18px,env(safe-area-inset-left));top:84px;min-width:72px;min-height:40px;padding:6px 10px;border:3px solid #5d423c;border-radius:8px;background:#ffcf75;box-shadow:0 4px #303b42aa;color:#49343b;font-size:.68rem;font-weight:900;text-transform:uppercase}
body[data-route=world] .world-seals{z-index:7;right:max(18px,env(safe-area-inset-right));top:82px;font-size:1.2rem;padding:5px 9px}
.world-chapter-tabs{position:absolute;z-index:8;left:max(18px,env(safe-area-inset-left));top:142px;display:grid;gap:7px}.world-chapter-tabs button{display:grid;place-items:center;width:42px;height:42px;min-height:42px;padding:0;border:3px solid #60474d;border-radius:50%;background:#ffdda0;box-shadow:0 3px #394047;color:#4a3440;font-size:.8rem;font-weight:900}.world-chapter-tabs button[aria-pressed=true]{background:#ef6eae;color:#fff9cf;box-shadow:0 0 0 4px #fff3a899,0 3px #56364e}.world-chapter-tabs button:disabled{filter:grayscale(1)}
.mission-drawer{position:absolute;z-index:9;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(180px,.75fr) minmax(460px,2fr) minmax(120px,.45fr);align-items:center;gap:13px;padding:13px 15px;border:4px solid #5b3f46;border-radius:14px;background:linear-gradient(145deg,#fff1cfee,#f7cfe8f2);box-shadow:inset 0 2px #fff8e9,0 7px #243842aa;backdrop-filter:blur(4px)}
.mission-story{min-width:0}.mission-story>div>span{display:block;color:#8c4771;font:900 .54rem ui-monospace,Consolas,monospace;letter-spacing:1px}.mission-story h2{margin:2px 0 5px;font-size:clamp(.86rem,1.3vw,1.12rem);line-height:1.1;color:#59344f}.mission-story p{margin:0;font-size:.61rem;line-height:1.35}.mission-story .mission-cleared{margin-top:5px;color:#43715a;font-weight:800}
body[data-route=world] .campaign-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0}
body[data-route=world] .campaign-stop{display:grid;grid-template-columns:25px 1fr;gap:2px 6px;min-height:62px;padding:7px 8px;border:2px solid #7b5a70;border-radius:8px;background:linear-gradient(#fff8d9,#e9d39c);box-shadow:0 3px #745a68;color:#493644}
body[data-route=world] .campaign-stop>span{grid-row:span 2;font-size:1rem;align-self:center;color:#a34178}body[data-route=world] .campaign-stop strong{font-size:.61rem;line-height:1.15}body[data-route=world] .campaign-stop small{font-size:.51rem;color:#6b5d65}body[data-route=world] .campaign-stop.completed{background:linear-gradient(#e6ffd0,#a9d992);border-color:#4f8165}body[data-route=world] .campaign-stop:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px)}
.world-action-dock{display:grid}.world-action-token{min-height:58px;padding:8px;border:3px solid #733a65;border-radius:9px;background:linear-gradient(#ff8bc3,#df579e);box-shadow:0 4px #5e3459;color:#43243b;font-size:.65rem;font-weight:900;line-height:1.25}
@media(orientation:landscape) and (max-height:600px){.world-title-plaque{top:8px;padding:4px 12px}.world-title-plaque small{display:none}.world-guide-token{top:62px;left:8px;min-height:34px}.world-chapter-tabs{top:104px;left:8px;gap:5px}.world-chapter-tabs button{width:34px;height:34px;min-height:34px;border-width:2px}.mission-drawer{left:7px;right:7px;bottom:6px;grid-template-columns:145px minmax(420px,1fr) 105px;gap:8px;padding:8px 9px;border-width:3px}.mission-story p{display:none}.mission-story h2{font-size:.78rem}.mission-story .mission-cleared{display:block}.world-action-token{min-height:48px;font-size:.55rem}body[data-route=world] .campaign-stages{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}body[data-route=world] .campaign-stop{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;min-height:67px;padding:5px 3px}body[data-route=world] .campaign-stop>span{font-size:.86rem}body[data-route=world] .campaign-stop strong{font-size:.5rem}body[data-route=world] .campaign-stop small{font-size:.44rem}body[data-route=world] .world-seals{top:62px;right:8px}.world-adventure-screen .world-companion{bottom:27%}}
@media(orientation:portrait){.mission-drawer{grid-template-columns:1fr;max-height:43dvh;overflow:auto}.mission-story p{display:none}.world-action-dock{display:none}body[data-route=world] .campaign-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.world-title-plaque{top:76px;min-width:240px}.world-guide-token{top:142px}.world-chapter-tabs{top:197px}body[data-route=world] .world-seals{top:142px}}

/* Keep the first quest invitation inside a short landscape viewport. */
@media(orientation:landscape) and (max-height:420px){
 body[data-route=worlds] .map-intro-card{left:50%;top:70px;bottom:auto;transform:translate(-50%,0) translate(var(--drag-x,0),var(--drag-y,0));width:220px;padding:6px 8px;max-height:calc(100dvh - 140px);overflow:auto;animation:none}
 body[data-route=worlds] .map-intro-card>.map-drag-handle,body[data-route=worlds] .map-intro-card>.map-quest-pointer,body[data-route=worlds] .map-intro-card>small{display:none}
 body[data-route=worlds] .map-intro-card>strong{font-size:.78rem;line-height:1.2}
 body[data-route=worlds] .map-intro-card .map-quest-main{font-size:.72rem;min-height:44px}
 body[data-route=worlds] .map-capy-host:not(:focus-within):not(:hover) .map-capy-bubble{display:none}
}
