/* Interactive 3D-style island map */
.world-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:14px 0 22px}
.world-page-heading h1{font-family:Nunito,sans-serif;font-size:clamp(30px,3.8vw,46px);letter-spacing:-1.8px;line-height:1.05;color:#172653;margin:10px 0 8px}
.world-page-heading h1 em{font-style:normal;color:#6b5be0}
.world-page-heading p{margin:0;color:#7582a4;font-size:13px;line-height:1.65}
.world-eyebrow{color:#7b75c8}.world-eyebrow span{color:#ffae53;font-size:16px;margin-right:5px}
.world-map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 2px 12px}.world-map-status{display:flex;align-items:center;gap:9px;color:#7180a5;font-size:9px;letter-spacing:1.2px;font-weight:1000}.world-map-status b{background:#e9edff;color:#5a5d9d;padding:6px 9px;border-radius:8px;font-size:9px;letter-spacing:.8px}.world-live-dot{width:8px;height:8px;border-radius:50%;background:#42c99b;box-shadow:0 0 0 4px #42c99b22}.world-map-legend{display:flex;gap:14px;flex-wrap:wrap;color:#8290ad;font-size:9px;font-weight:800}.world-map-legend span{display:flex;align-items:center;gap:6px}.world-map-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-ready{background:#4dc69e}.legend-preview{background:#f5b85a}
.world-map-scene{height:clamp(590px,62vw,720px);min-height:590px;position:relative;overflow:hidden;border-radius:30px;border:1px solid #cfe0fa;isolation:isolate;perspective:1100px;background:linear-gradient(180deg,#97d8fa 0%,#c7eafb 38%,#72cbe0 39%,#4db4ce 100%);box-shadow:0 10px 0 #d1e6f5,0 24px 50px #2d609122}
.world-map-scene:before{content:"";position:absolute;z-index:-1;left:-10%;right:-10%;bottom:-22%;height:72%;border-radius:50% 50% 0 0;background:repeating-radial-gradient(ellipse at 50% 10%,transparent 0 42px,#ffffff20 44px 47px,transparent 49px 88px),linear-gradient(180deg,#72cbdc,#2997ba 60%,#217da7);box-shadow:0 -24px 50px #d7f5ff55}
.world-map-scene:after{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:0;height:34%;background:radial-gradient(ellipse at 23% 45%,#d9fbff54 0 1px,transparent 4px),radial-gradient(ellipse at 72% 35%,#d9fbff55 0 2px,transparent 5px);background-size:160px 100px;opacity:.6}
.world-sky-sun{position:absolute;width:112px;height:112px;border-radius:50%;right:8%;top:6%;background:radial-gradient(circle at 35% 32%,#fff8c7,#ffd36e 68%,#ffb859);box-shadow:0 0 0 15px #fff5bd30,0 0 65px #fff3b6aa}
.world-cloud{position:absolute;width:100px;height:28px;border-radius:50px;background:#ffffffc9;filter:drop-shadow(0 8px 7px #317da01a);opacity:.88;animation:ww-cloud-drift 16s ease-in-out infinite alternate}
.world-cloud:before,.world-cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.world-cloud:before{width:42px;height:42px;left:18px;bottom:6px}.world-cloud:after{width:34px;height:34px;right:17px;bottom:4px}
.world-cloud-a{left:8%;top:12%;transform:scale(.95)}.world-cloud-b{left:43%;top:8%;transform:scale(.65);animation-delay:-6s}.world-cloud-c{right:24%;top:26%;transform:scale(.55);animation-delay:-10s}
@keyframes ww-cloud-drift{from{translate:-10px 0}to{translate:22px 4px}}
.world-map-label{position:absolute;font-size:9px;letter-spacing:1.5px;color:#fff;text-shadow:0 2px 6px #20749a88;font-weight:1000;opacity:.9}.world-map-label span{font-size:15px;margin-left:7px}.map-label-north{top:4%;left:5%}.map-label-south{bottom:4%;left:43%}
.world-trails{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.65}.world-trails path{fill:none;stroke:#e7fdff;stroke-width:4;stroke-linecap:round;stroke-dasharray:2 15}.world-trails .trail-dots{stroke:#fff5c6;stroke-width:2;stroke-dasharray:2 18;animation:ww-trail 24s linear infinite}@keyframes ww-trail{to{stroke-dashoffset:-320}}
.world-island{--island-top:#8bd78d;--island-side:#4caa75;position:absolute;width:208px;height:172px;z-index:2;border:0;background:none;padding:0;color:#24345d;cursor:pointer;transform:translate(-50%,-50%);filter:drop-shadow(0 20px 15px #155d7b38);animation:ww-island-float 5s ease-in-out infinite;transition:filter .25s,scale .25s;isolation:isolate}
.world-island:hover,.world-island:focus-visible,.world-island.is-selected{z-index:5;filter:drop-shadow(0 26px 18px #155d7b4a);scale:1.07}
.world-island:focus-visible{outline:3px solid #fff;outline-offset:8px;border-radius:40%}
.world-island:nth-of-type(2){animation-delay:-1.2s}.world-island:nth-of-type(3){animation-delay:-2.4s}.world-island:nth-of-type(4){animation-delay:-.7s}.world-island:nth-of-type(5){animation-delay:-3.1s}.world-island:nth-of-type(6){animation-delay:-1.8s}
@keyframes ww-island-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
.island-maths{left:17%;top:32%;--island-top:#a5e58e;--island-side:#58ad6d}.island-science{left:48%;top:25%;--island-top:#a3df9a;--island-side:#529e78}.island-english{left:80%;top:37%;--island-top:#b9e69b;--island-side:#76ad68}.island-geography{left:17%;top:71%;--island-top:#8bdc9a;--island-side:#409b78}.island-brain{left:49%;top:70%;--island-top:#f2d38e;--island-side:#bd8d55}.island-adventure{left:81%;top:73%;--island-top:#99dfad;--island-side:#409c8b}
.island-rock{position:absolute;left:8%;right:8%;top:40px;bottom:5px;border-radius:48% 47% 42% 43%;background:linear-gradient(180deg,var(--island-side),#397c74);clip-path:polygon(4% 11%,18% 0,82% 0,96% 13%,91% 64%,72% 93%,28% 100%,8% 72%);box-shadow:inset 0 -13px 0 #174e5e35,inset 0 8px 0 #ffffff45;transform:rotateX(30deg);}
.island-surface{position:absolute;left:4%;right:4%;top:9px;height:126px;border-radius:50%;background:radial-gradient(ellipse at 35% 25%,#ffffff9c 0 2%,transparent 3%),radial-gradient(ellipse at 78% 35%,#ffffff65 0 2%,transparent 3%),linear-gradient(145deg,#d7f5b0 0%,var(--island-top) 46%,#74c98b 100%);border:5px solid #d5f5c4;box-shadow:inset 0 -9px 0 #4a9c7040,inset 0 5px 0 #ffffff8a,0 9px 0 var(--island-side),0 15px 0 #236d77;transform:rotateX(13deg);transition:transform .28s,filter .28s;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:visible}
.world-island:hover .island-surface,.world-island.is-selected .island-surface{transform:rotateX(8deg) translateY(-8px);filter:saturate(1.12)}
.island-landmark{font-size:43px;line-height:1;filter:drop-shadow(0 6px 2px #315b5250);margin-top:-13px;z-index:1}
.island-name{font-family:Nunito,sans-serif;font-size:14px;font-weight:1000;color:#27456a;letter-spacing:-.3px;text-shadow:0 1px #fff9;margin-top:5px;white-space:nowrap;z-index:1}.island-subtitle{font-size:9px;font-weight:800;color:#446b72;margin-top:1px;z-index:1}.island-status{position:absolute;bottom:-11px;left:50%;transform:translateX(-50%);padding:7px 11px;border-radius:99px;background:#fff;color:#52658a;box-shadow:0 4px 0 #d3dfec,0 7px 12px #355d7530;font-size:8px;font-weight:1000;letter-spacing:.6px;white-space:nowrap;z-index:3}.island-status b{font-size:11px;color:#6b60d9;margin-left:3px}
.island-deco{position:absolute;font-size:23px;filter:drop-shadow(0 4px 2px #244c453b);z-index:1}.island-deco-a{left:16px;top:27px}.island-deco-b{right:14px;top:32px}.island-sparkle{position:absolute;right:12%;top:0;color:#fff6bd;font-size:22px;text-shadow:0 2px 10px #43859c;animation:ww-sparkle 2.6s ease-in-out infinite}.island-preview .island-surface{filter:saturate(.83)}.island-preview .island-status{background:#fff0c9;color:#936a27;box-shadow:0 4px 0 #e6c67f,0 7px 12px #355d7530}.island-preview .island-status b{color:#c28a26}.island-no-content{opacity:.52;filter:grayscale(.35)}.island-no-content .island-status{background:#f3f4f8;color:#78829a}
@keyframes ww-sparkle{0%,100%{opacity:.55;scale:.8;rotate:0deg}50%{opacity:1;scale:1.2;rotate:18deg}}
.world-floating-fact{position:absolute;right:3%;bottom:5%;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 13px;background:#ffffffdc;border:1px solid #ffffffd9;border-radius:15px;box-shadow:0 8px 24px #1c668d25;backdrop-filter:blur(10px)}.world-floating-fact>span{font-size:25px}.world-floating-fact small,.world-floating-fact strong{display:block}.world-floating-fact small{font-size:7px;letter-spacing:1.2px;color:#9b8a54;font-weight:1000}.world-floating-fact strong{font-family:Nunito,sans-serif;font-size:11px;color:#3e5679;margin-top:2px}.world-map-compass{position:absolute;right:3%;top:5%;width:42px;height:42px;border-radius:50%;background:#ffffffb8;border:1px solid #ffffffd9;display:grid;place-items:center;color:#6e74a5;box-shadow:0 6px 14px #2d6c9020}.world-map-compass span{font-size:17px;line-height:12px}.world-map-compass small{font-size:8px;font-weight:1000}
.world-island-detail{display:flex;align-items:center;gap:17px;margin:0 0 20px;padding:18px 20px;background:linear-gradient(110deg,#fff,#f8faff);border:1px solid #dfe8fa;border-radius:22px;box-shadow:0 9px 22px #294c8e0b}.world-detail-icon{width:57px;height:57px;flex:0 0 auto;display:grid;place-items:center;font-size:31px;border-radius:18px;background:linear-gradient(145deg,#fff2c9,#ffe0a0);box-shadow:0 5px 0 #e7c47b}.world-detail-copy{flex:1;min-width:0}.world-detail-copy .eyebrow{font-size:8px;letter-spacing:1.2px;color:#8a8ab2}.world-detail-copy h2{font-family:Nunito,sans-serif;font-size:20px;letter-spacing:-.5px;color:#253761;margin:3px 0}.world-detail-copy p{font-size:11px;line-height:1.6;color:#7785a4;margin:0;max-width:700px}.world-detail-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;color:#6e83a3;font-size:9px;font-weight:800}.world-island-detail .button{flex:0 0 auto}.world-island-detail .button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.world-journey-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:15px;padding:14px 18px;border-radius:17px;background:#eaf1ff;border:1px solid #dbe6fb}.world-journey-footer>div:first-child{display:flex;align-items:center;gap:11px}.world-journey-icon{width:39px;height:39px;display:grid;place-items:center;background:#fff;border-radius:13px;font-size:22px}.world-journey-footer strong,.world-journey-footer small{display:block}.world-journey-footer strong{font-family:Nunito,sans-serif;font-size:12px;color:#3e4d79}.world-journey-footer small{font-size:9px;color:#8290ae;margin-top:3px}.world-journey-progress{text-align:right}.world-journey-progress strong{font-family:Nunito,sans-serif;font-size:23px;color:#5d63c6;line-height:1}.world-journey-progress small{font-size:8px;text-transform:uppercase;letter-spacing:.8px}
@media(max-width:1050px){.world-map-scene{height:620px}.world-island{width:184px;height:158px}.island-surface{height:117px}.island-name{font-size:12px}.island-landmark{font-size:37px}.world-floating-fact{right:2%;bottom:2%}}
@media(max-width:760px){.world-page-heading{align-items:flex-start;flex-direction:column}.world-map-toolbar{align-items:flex-start;flex-direction:column}.world-map-scene{height:auto;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 8px;padding:105px 10px 75px;border-radius:23px;background:linear-gradient(180deg,#a6dcf7 0%,#c8eafb 29%,#6fc9dc 30%,#319dbd 100%)}.world-map-scene:before{bottom:-4%;height:42%}.world-sky-sun{width:76px;height:76px;right:7%;top:15px}.world-cloud-a{left:7%;top:32px}.world-cloud-b{left:47%;top:14px}.world-cloud-c{display:none}.world-trails{display:none}.world-map-label{font-size:7px}.map-label-north{top:12px;left:12px}.map-label-south{bottom:13px;left:37%}.world-map-compass{top:12px;right:12px;width:35px;height:35px}.world-island{position:relative;left:auto!important;top:auto!important;transform:none;width:100%;height:157px;min-width:0;animation:ww-mobile-float 5s ease-in-out infinite}.world-island:nth-of-type(odd){animation-delay:-2s}.world-island:hover,.world-island:focus-visible,.world-island.is-selected{scale:1.025}.island-rock{left:3%;right:3%;top:35px}.island-surface{left:0;right:0;top:6px;height:119px}.island-deco-a{left:8px;top:25px}.island-deco-b{right:8px;top:29px}.island-name{font-size:12px}.island-subtitle{font-size:8px}.island-landmark{font-size:35px}.island-status{font-size:7px;bottom:-9px}.world-floating-fact{left:50%;right:auto;bottom:12px;transform:translateX(-50%);white-space:nowrap;padding:7px 10px}.world-floating-fact>span{font-size:19px}.world-floating-fact strong{font-size:9px}.world-floating-fact small{font-size:6px}.world-island-detail{align-items:flex-start;flex-wrap:wrap;padding:15px;gap:12px}.world-detail-icon{width:47px;height:47px;border-radius:14px;font-size:26px}.world-detail-copy{flex:1 1 calc(100% - 62px)}.world-detail-copy h2{font-size:18px}.world-detail-copy p{font-size:10px}.world-island-detail .button{width:100%;justify-content:center}.world-journey-footer{align-items:flex-start}.world-journey-footer small{max-width:230px;line-height:1.5}}
@keyframes ww-mobile-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media(max-width:390px){.world-map-scene{gap:17px 5px;padding-left:7px;padding-right:7px}.world-island{height:144px}.island-surface{height:108px;border-width:4px}.island-name{font-size:10px}.island-subtitle{font-size:7px}.island-landmark{font-size:31px}.island-deco{font-size:18px}.island-status{padding:6px 8px;font-size:6px}.world-journey-footer{padding:11px}.world-journey-progress strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){.world-island,.world-cloud,.world-trails .trail-dots,.island-sparkle{animation:none!important}}


/* Real Three.js world explorer. The original CSS map remains as a no-WebGL fallback. */
.world-three-root{display:none;position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:hidden;border-radius:inherit;background:linear-gradient(180deg,#8ed8f8,#39b6d0)}
.world-map-scene.is-three{height:clamp(560px,60vw,720px);min-height:560px;overflow:hidden;perspective:none;background:linear-gradient(180deg,#93dafa 0%,#8ed8f3 42%,#37b2d0 100%);touch-action:pan-y}
.world-map-scene.is-three:before,.world-map-scene.is-three:after{display:none}
.world-map-scene.is-three .world-three-root{display:block}
.world-three-canvas{display:block;width:100%!important;height:100%!important;max-width:none;outline:none;cursor:grab;touch-action:none}
.world-three-canvas:active{cursor:grabbing}
.world-map-scene.is-three .world-sky-sun,.world-map-scene.is-three .world-cloud,.world-map-scene.is-three .world-map-label,.world-map-scene.is-three .world-trails,.world-map-scene.is-three .world-floating-fact,.world-map-scene.is-three .world-map-compass{display:none}
.world-three-status{display:none;position:absolute;z-index:9;left:18px;top:18px;align-items:center;gap:9px;padding:9px 13px;border:1px solid #ffffffa8;border-radius:999px;background:#ffffffd9;box-shadow:0 8px 24px #1c5c7430;backdrop-filter:blur(12px);color:#52658a;font-size:8px;font-weight:1000;letter-spacing:1px;pointer-events:none}
.world-map-scene.is-three .world-three-status{display:flex}
.world-three-status>span:last-child{margin-left:5px;color:#8192ad;font-size:7px;letter-spacing:.65px}
.world-three-status-dot{width:7px;height:7px;border-radius:50%;background:#42c99b;box-shadow:0 0 0 4px #42c99b20}
.world-three-controls{display:none;position:absolute;z-index:10;top:16px;right:16px;align-items:center;gap:5px;padding:6px;border:1px solid #ffffffb8;border-radius:15px;background:#ffffffd9;box-shadow:0 8px 24px #1c5c7430;backdrop-filter:blur(12px)}
.world-map-scene.is-three .world-three-controls{display:flex}
.world-three-controls button{width:32px;height:32px;padding:0;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:#53658b;font:800 18px/1 Nunito,system-ui,sans-serif;cursor:pointer;transition:background .18s,transform .18s,color .18s}
.world-three-controls button:hover,.world-three-controls button:focus-visible{background:#edf0ff;color:#615bd0;transform:translateY(-1px);outline:2px solid #8279e8;outline-offset:1px}
.world-three-control-divider{width:1px;height:21px;background:#dfe5f2;margin:0 2px}
.world-map-scene.is-three>.world-island{--island-top:transparent;position:absolute;z-index:5;width:auto;height:auto;min-width:0;min-height:0;left:50%;top:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;border:0;border-radius:13px;background:none;box-shadow:none;filter:none;transform:translate(-50%,-50%);animation:none;transition:opacity .18s,filter .18s}
.world-map-scene.is-three>.world-island:hover,.world-map-scene.is-three>.world-island:focus-visible,.world-map-scene.is-three>.world-island.is-selected{z-index:7;filter:drop-shadow(0 5px 9px #173e5845);scale:1}
.world-map-scene.is-three>.world-island:focus-visible{outline:3px solid #fff;outline-offset:5px;border-radius:13px}
.world-map-scene.is-three .island-rock,.world-map-scene.is-three .island-landmark,.world-map-scene.is-three .island-deco,.world-map-scene.is-three .island-sparkle,.world-map-scene.is-three .island-subtitle{display:none!important}
.world-map-scene.is-three .island-surface{display:contents;background:none;border:0;box-shadow:none;transform:none;filter:none;}
.world-map-scene.is-three .island-name{display:flex;align-items:center;gap:6px;margin:0;padding:7px 11px;border:1px solid #ffffffd9;border-radius:11px;background:#ffffffed;box-shadow:0 4px 0 #d3e1ed,0 8px 18px #16496c35;color:#33486e;font-size:11px;line-height:1.1;letter-spacing:-.15px;text-shadow:none;white-space:nowrap}
.world-map-scene.is-three .island-name:before{font-size:14px}
.world-map-scene.is-three .island-maths .island-name:before{content:"🧮"}.world-map-scene.is-three .island-science .island-name:before{content:"🔬"}.world-map-scene.is-three .island-english .island-name:before{content:"📚"}.world-map-scene.is-three .island-geography .island-name:before{content:"🗺️"}.world-map-scene.is-three .island-brain .island-name:before{content:"🧠"}.world-map-scene.is-three .island-adventure .island-name:before{content:"🧭"}
.world-map-scene.is-three .island-status{display:block;position:static;left:auto;bottom:auto;transform:none;margin:0;padding:4px 8px;border-radius:99px;background:#314a71e8;color:#fff;box-shadow:0 3px 9px #173e5835;font-size:6px;line-height:1.1;letter-spacing:.9px;z-index:auto}
.world-map-scene.is-three .island-status b{color:#ffe29a;font-size:9px}
.world-map-scene.is-three .island-preview .island-status{background:#fff0c9;color:#936a27;box-shadow:0 3px 9px #61471f20}
.world-map-scene.is-three .island-preview .island-status b{color:#c28a26}
.world-map-scene.is-three .island-no-content{opacity:.65;filter:grayscale(.25)}
.world-map-scene.is-three .island-no-content .island-status{background:#eef0f4;color:#75809b}
@media(max-width:760px){
  .world-map-scene.is-three{height:clamp(460px,68svh,620px);min-height:460px;display:block;padding:0;border-radius:23px;background:#65c5df}
  .world-map-scene.is-three .world-three-root{inset:0;width:100%;height:100%;min-width:0;min-height:0}
  .world-map-scene.is-three .world-three-canvas{width:100%!important;height:100%!important}
  .world-map-scene.is-three .world-three-status{left:10px;top:10px;gap:6px;padding:7px 9px;font-size:7px}
  .world-map-scene.is-three .world-three-status>span:last-child{display:none}
  /* Keep camera tools at the top so they never collide with the movement pad. */
  .world-map-scene.is-three .world-three-controls{top:9px;right:9px;bottom:auto;transform:none;padding:4px;gap:2px;border-radius:12px}
  .world-map-scene.is-three .world-three-controls button{width:27px;height:27px;font-size:15px}
  .world-map-scene.is-three .world-three-control-divider{height:17px;margin:0 1px}
  .world-map-scene.is-three>.world-island{max-width:122px}
  .world-map-scene.is-three .island-name{max-width:122px;padding:5px 7px;font-size:8px;white-space:normal;text-align:left;line-height:1.15}
  /* Keep the original subject names readable; hide only the tiny OPEN chips on phones. */
  .world-map-scene.is-three .island-status{display:none!important}
}
@media(max-width:390px){
  .world-map-scene.is-three{height:clamp(440px,66svh,580px);min-height:440px}
  .world-map-scene.is-three>.world-island{max-width:112px}
  .world-map-scene.is-three .island-name{max-width:112px;font-size:7.5px;gap:4px;padding:5px 6px}
}
@media(prefers-reduced-motion:reduce){.world-map-scene.is-three .world-three-controls button{transition:none}}

/* Phase 2 — Character Explorer controls */
.world-avatar-help{display:none;position:absolute;z-index:12;left:16px;bottom:16px;align-items:center;gap:10px;max-width:min(390px,52%);padding:10px 13px;border:1px solid #ffffffc9;border-radius:16px;background:#ffffffdf;box-shadow:0 8px 24px #16496c30;backdrop-filter:blur(12px);pointer-events:none}
.world-map-scene.is-three .world-avatar-help{display:flex}
.world-map-scene.is-three .world-three-avatar-actions{display:flex}
.world-avatar-help-icon{width:37px;height:37px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:linear-gradient(145deg,#fff0c2,#ffdda0);font-size:22px;box-shadow:0 3px 0 #e9c67b}
.world-avatar-help-copy{display:block;min-width:0}
.world-avatar-help-copy strong,.world-avatar-help-copy small{display:block}
.world-avatar-help-copy strong{font:900 10px/1.25 Nunito,system-ui,sans-serif;color:#33476e}
.world-avatar-help-copy small{margin-top:3px;color:#7888a5;font-size:8px;line-height:1.35}
.world-three-dpad{display:none}
.world-three-avatar-actions{display:none;position:absolute;z-index:12;right:16px;bottom:16px;align-items:center;gap:7px}
.world-three-avatar-actions button{min-width:76px;min-height:39px;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:1px solid #ffffffc9;border-radius:13px;background:#ffffffeb;box-shadow:0 5px 0 #d3e1ed,0 8px 18px #16496c30;color:#455980;font:900 10px Nunito,system-ui,sans-serif;cursor:pointer;touch-action:none;transition:transform .16s,background .16s}
.world-three-avatar-actions button:first-child{background:#fff1c9;color:#9a6b22;box-shadow:0 5px 0 #e8ca82,0 8px 18px #16496c24}
.world-three-avatar-actions button:hover,.world-three-avatar-actions button:focus-visible{transform:translateY(-2px);outline:2px solid #766ce0;outline-offset:2px}
.world-three-avatar-actions button:active{transform:translateY(2px);box-shadow:0 2px 0 #d3e1ed}
@media(max-width:760px){
  .world-avatar-help{left:10px;bottom:10px;max-width:calc(100% - 20px);padding:7px 9px}
  .world-avatar-help-icon{width:30px;height:30px;font-size:18px}
  .world-avatar-help-copy strong{font-size:9px}
  .world-avatar-help-copy small{font-size:7px}
  .world-map-scene.is-three .world-three-dpad{position:absolute;z-index:13;left:12px;bottom:14px;display:grid;grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,38px);gap:4px;touch-action:none}
  .world-three-dpad button{width:38px;height:38px;padding:0;display:grid;place-items:center;border:1px solid #ffffffd9;border-radius:12px;background:#ffffffeb;box-shadow:0 4px 0 #d3e1ed,0 6px 15px #16496c30;color:#4b5f87;font:900 16px Nunito,system-ui,sans-serif;touch-action:none;user-select:none;-webkit-user-select:none}
  .world-three-dpad button:nth-child(1){grid-column:2;grid-row:1}
  .world-three-dpad button:nth-child(2){grid-column:1;grid-row:2}
  .world-three-dpad button:nth-child(3){grid-column:2;grid-row:2}
  .world-three-dpad button:nth-child(4){grid-column:3;grid-row:2}
  .world-three-dpad button:active,.world-three-dpad button.is-held{background:#e9eaff;color:#5d55c7;transform:translateY(2px);box-shadow:0 2px 0 #d3e1ed}
  .world-map-scene.is-three .world-three-avatar-actions{right:12px;bottom:17px;flex-direction:column;align-items:stretch;gap:8px}
  .world-three-avatar-actions button{min-width:68px;min-height:42px;padding:8px 10px;font-size:10px}
  .world-map-scene.is-three .world-avatar-help{display:none}
}
@media(max-width:390px){
  .world-map-scene.is-three .world-three-dpad{left:8px;bottom:11px;grid-template-columns:34px 34px 34px;grid-template-rows:34px 34px;gap:3px}
  .world-three-dpad button{width:34px;height:34px;border-radius:10px;font-size:14px}
  .world-map-scene.is-three .world-three-avatar-actions{right:8px;bottom:14px}
  .world-three-avatar-actions button{min-width:61px;min-height:38px;padding:7px 8px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.world-three-avatar-actions button{transition:none}}


/* World Map header: reduce the header's own height, not only the gap beneath it.
   :has() also covers browsers where the JS view-state class is delayed. */
.main-area.world-view-active .topbar,
.main-area:has(#world-view.active) .topbar{
  height:60px;
  min-height:60px;
  margin-bottom:0 !important;
}
#world-view .world-page-heading{margin:0 0 8px}
#world-view .world-page-heading h1{margin-top:0}
@media(max-width:1050px){
  .main-area.world-view-active .topbar,
  .main-area:has(#world-view.active) .topbar{
    height:56px;
    min-height:56px;
    margin-bottom:0 !important;
  }
}
@media(max-width:760px){
  .main-area.world-view-active .topbar,
  .main-area:has(#world-view.active) .topbar{
    height:52px;
    min-height:52px;
    margin-bottom:0 !important;
  }
  #world-view .world-page-heading{margin:0 0 7px}
  #world-view .world-page-heading{margin:0 0 9px}
  .world-map-scene.is-three>.world-island{
    max-width:116px;
    transform:translate(-50%,-100%);
    justify-content:flex-end;
    gap:0;
    overflow:visible;
  }
  .world-map-scene.is-three .island-name{
    display:flex;
    justify-content:center;
    align-items:center;
    width:max-content;
    max-width:116px;
    min-width:76px;
    min-height:30px;
    padding:6px 9px;
    border:1px solid #ffffff;
    border-radius:11px;
    background:#ffffffF5;
    box-shadow:0 3px 0 #d3e1ed,0 7px 16px #16496c38;
    color:#2f456d;
    font-size:9px;
    font-weight:1000;
    line-height:1.15;
    letter-spacing:0;
    text-align:center;
    text-shadow:none;
    white-space:normal;
    overflow-wrap:normal;
    text-wrap:balance;
  }
  .world-map-scene.is-three>.world-island[aria-pressed="true"] .island-name{
    background:#fff3cf;
    border-color:#f2cf7b;
    color:#654d1e;
    box-shadow:0 3px 0 #e9c778,0 7px 17px #77561d30;
  }
}
@media(max-width:390px){
  .world-map-scene.is-three>.world-island{max-width:104px}
  .world-map-scene.is-three .island-name{width:max-content;max-width:104px;min-width:72px;min-height:28px;padding:5px 7px;font-size:8.5px;line-height:1.15}
}

/* 3D map: explorer controls (movement pad and Jump/Enter) sit at the top, under the camera controls, not at the bottom. */
.world-map-scene.is-three .world-three-avatar-actions{top:70px;right:16px;bottom:auto}
@media(max-width:760px){
  .world-map-scene.is-three .world-three-avatar-actions{top:52px;right:12px;bottom:auto}
  .world-map-scene.is-three .world-three-dpad{top:44px;bottom:auto}
}
@media(max-width:390px){
  .world-map-scene.is-three .world-three-avatar-actions{top:50px;right:8px;bottom:auto}
  .world-map-scene.is-three .world-three-dpad{top:42px;bottom:auto}
}

#world-view .world-page-heading{margin-top:18px}
