/* Accessible, compact spatial HUD. */
.world-stage .world-view-controls{left:14px;bottom:220px;display:flex;flex-wrap:wrap;width:168px;gap:5px;padding:7px;z-index:12}
.world-stage .world-view-controls button{width:auto;min-width:36px;min-height:36px;padding:3px 7px!important;font-size:14px}
.world-stage .world-view-controls .world-reset-view,.world-stage .world-view-controls .world-return-start{width:100%;font-size:11px;white-space:nowrap}
.world-map-pan{display:none;grid-template-columns:repeat(4,1fr);width:100%;gap:3px}.world-stage:has(.world-camera-pick .selected:last-child) .world-map-pan,.world-stage.map-mode .world-map-pan{display:grid}
.world-stage .world-view-controls .world-map-pan button{min-width:0;padding:2px!important}
.campus-stick-wrap{position:absolute;z-index:12;left:16px;bottom:48px;display:flex;align-items:flex-end;gap:10px;padding:7px 10px;border:1px solid #efba86a8;border-radius:18px;background:#281629e8;box-shadow:0 10px 28px #180b20a0;max-width:320px}
.campus-stick-wrap small{max-width:124px;font-size:11px;line-height:1.3;color:#ffdfbc}
.campus-stick{position:relative;flex:none;width:106px;height:106px;border-radius:50%;touch-action:none;cursor:grab;background:radial-gradient(circle at center,#7b4563 0 26%,#53314c 27% 55%,#38223c 56%);border:3px solid #fabd73;box-shadow:inset 0 0 0 7px #a9676870,0 0 16px #ffc68355}
.campus-stick:active{cursor:grabbing}.stick-knob{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#ffe1a7,#ed9d5e);border:3px solid #fff2d4;box-shadow:0 3px 10px #1b1022b0;pointer-events:none}
.campus-stick span:not(.stick-knob){position:absolute;color:#fff4e4;font:800 10px system-ui;pointer-events:none}.stick-n{top:2px;left:50%}.stick-s{bottom:2px;left:50%}.stick-w{left:5px;top:46%}.stick-e{right:5px;top:46%}
.campus-move-alt{position:absolute;left:0;bottom:calc(100% + 5px);border-radius:9px;background:#2c172ee8;padding:4px 7px;font-size:11px}.campus-move-alt summary{cursor:pointer}.campus-move-alt>div{display:flex;gap:3px;margin-top:4px}.campus-move-alt button{min-width:37px;min-height:37px;padding:0!important}
.world-stage .world-touch{display:none}.world-stage .campus-surprise{margin-left:auto;min-height:42px;padding:8px 12px!important;border:1px solid #ffe0a6!important;border-radius:13px!important;background:#f7b973!important;color:#321c30!important;font-weight:850;white-space:nowrap;box-shadow:0 5px 0 #79455280}.world-stage .world-map-toggle{margin-left:0}
.campus-how{position:absolute;z-index:12;top:88px;left:18px;min-height:42px;padding:7px 11px!important;border:1px solid #ffe2ad!important;border-radius:12px!important;background:#3a223ce8!important;color:#fff0d5!important;font-weight:750;box-shadow:0 5px 15px #241124a8}
.world-stage .world-character-button{top:139px}
.campus-wheel-overlay:not([hidden]){position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:20px;background:#1a0e22c9;backdrop-filter:blur(6px)}
.campus-wheel-overlay>div{position:relative;width:min(480px,100%);max-height:calc(100dvh - 30px);overflow:auto;border:1px solid #f3be8c;border-radius:24px;padding:20px;background:#3b243d;color:#fff2df;box-shadow:0 24px 70px #120a1bdd}
.campus-wheel-overlay h2{font-size:27px;margin:3px 0}.campus-wheel-overlay p{font-size:13px;line-height:1.4}.campus-wheel-overlay .world-dialog-close{position:absolute;right:13px;top:10px}
.campus-wheel-graphic{position:relative;width:min(260px,62vw);aspect-ratio:1;margin:8px auto 14px}.campus-pointer{position:absolute;z-index:3;left:50%;top:-10px;transform:translateX(-50%);color:#ffda94;font-size:25px}.campus-wheel-disc{position:absolute;inset:0;border:5px solid #ffdda1;border-radius:50%;box-shadow:0 9px 20px #180e20a8;overflow:hidden}.campus-wheel-disc span{position:absolute;transform:translate(-50%,-50%);max-width:88px;color:white;text-align:center;font:800 clamp(8px,1.7vw,12px)/1.1 system-ui;text-shadow:0 2px 4px #281625}.campus-wheel-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#ffd39b;color:#48263b;border:4px solid #fff1d7;font-size:24px}
.campus-spin,.campus-wheel-go{width:100%;margin:4px 0}.campus-manual{display:grid;gap:5px;font-weight:700;font-size:13px}.campus-manual select{min-height:44px}.campus-wheel-result{font-weight:850;min-height:20px;color:#ffe0a5}
.campus-spin-power{display:grid;gap:6px;margin:8px 0 10px;padding:9px 12px;border:1px solid #eabf8670;border-radius:12px;background:#241c31;color:#fff0d8}.campus-spin-power>span{display:flex;justify-content:space-between;font:800 13px system-ui}.campus-spin-power output{color:#ffd798}.campus-spin-power input{width:100%;height:28px;accent-color:#efa65f;cursor:pointer;touch-action:auto}.campus-spin-power small{color:#eed1b2;font:600 11px/1.3 system-ui}.campus-spin-power input:focus-visible{outline:3px solid #fff0b8;outline-offset:2px}
.world-room-stage[data-world-room=rewards] .world-room-board{border-color:#f9d397;background:#4a2638}.world-room-stage[data-world-room=signal] .world-room-board{border-color:#8bd4c5;background:#29424e}
.signal-room{max-width:1100px;margin:auto;padding:12px 20px 70px}.signal-room header{padding:16px 20px;border:1px solid #f6ba86;border-radius:20px;background:linear-gradient(110deg,#5b2d48,#31273d)}.signal-room h1{font-size:clamp(26px,4vw,42px);margin:3px 0}.signal-room header p{max-width:680px;line-height:1.45}.signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.signal-card{border:1px solid #bd8c91;border-radius:20px;padding:17px;background:#38283b;min-width:0}.signal-card>span{font-size:11px;font-weight:850;letter-spacing:.1em;color:#ffd295}.signal-card h2{margin:7px 0}.signal-card p{font-size:13px;line-height:1.45}.signal-card button{display:grid;text-align:left;width:100%;margin:8px 0;min-height:45px}.signal-card button small{opacity:.85}.signal-bubble{border:1px solid #986b75;background:#4a3147;border-radius:16px;padding:9px;margin:7px 0}.signal-bubble.reply{margin-left:25px;background:#3b4d50}.signal-bubble p{margin:3px}.signal-sample{color:#ffd39b;font-weight:800}
@media(max-width:800px){.world-stage .world-view-controls{left:8px;bottom:210px;width:143px}.world-stage .world-view-controls button{min-height:36px}.campus-stick-wrap{left:8px;bottom:calc(var(--phone-main-nav-height,68px) + 10px + env(safe-area-inset-bottom));padding:4px 6px;max-width:213px}.campus-stick{width:76px;height:76px}.stick-knob{width:30px;height:30px}.campus-stick-wrap small{font-size:9px;max-width:93px}.campus-how{top:76px;left:8px;font-size:11px;min-height:36px}.world-stage .world-character-button{top:115px}.world-stage .world-hud-top{top:8px;left:8px;right:8px;gap:5px}.world-stage .world-brand{min-width:0}.world-stage .world-location{display:none}.world-stage .campus-surprise{font-size:11px;padding:5px 7px!important;min-height:36px}.world-stage .world-map-toggle{font-size:10px;min-height:36px}.signal-grid{grid-template-columns:1fr}.signal-room{padding:8px 12px 90px}}
@media(max-width:390px){.world-stage .world-brand{padding:8px}.world-stage .world-brand span{font-size:15px}.world-stage .world-brand small{font-size:6px}.campus-stick-wrap{bottom:calc(var(--phone-main-nav-height,68px) + 7px + env(safe-area-inset-bottom))}.world-stage .world-view-controls{bottom:187px}}
@media(prefers-reduced-motion:reduce){.campus-wheel-disc{transition:none!important}}
/* Navigation remains in two fixed rows on a phone, including Signal Room. */
@media(max-width:800px){.simple-shell .sidebar .nav,html[data-experience=teacher] .simple-shell .sidebar .nav{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;height:calc(var(--phone-main-nav-height,112px) + env(safe-area-inset-bottom))!important}.simple-shell .sidebar .nav button{min-height:43px!important}.world-stage .world-minimap{left:auto;right:8px;bottom:calc(var(--phone-main-nav-height,112px) + 14px + env(safe-area-inset-bottom));width:95px}.world-stage .world-view-controls{bottom:calc(var(--phone-main-nav-height,112px) + 102px + env(safe-area-inset-bottom))}.world-room-stage .world-minimap{left:auto;right:8px;bottom:calc(var(--phone-main-nav-height,112px) + 14px + env(safe-area-inset-bottom))}.world-stage .world-door-prompt{bottom:calc(var(--phone-main-nav-height,112px) + 86px + env(safe-area-inset-bottom))}.world-stage .world-hud-bottom{bottom:3px}}
@media(min-width:801px){.world-stage .world-minimap{left:auto;right:18px;bottom:64px}.simple-shell .sidebar .nav{overflow:hidden!important}.simple-shell .sidebar .nav button{min-height:0}}
@media(max-width:360px){.simple-shell .sidebar .nav button{font-size:8px!important}.simple-shell .sidebar .nav button .nav-label-phone{font-size:9px}.campus-stick-wrap small{max-width:72px}.world-stage .world-minimap{width:80px}}
.reward-cabinet .reward-badge{min-height:130px}.reward-badge summary{cursor:pointer;list-style:none}.reward-badge summary::-webkit-details-marker{display:none}.reward-badge summary:focus-visible{outline:3px solid #ffd48e;outline-offset:2px}.reward-badge[open]{border-color:#f9c47e!important;box-shadow:0 0 0 2px #f7b77866}.reward-badge[open] p{font-size:12px;line-height:1.4;margin:7px 0;color:#f9e5d2}
@keyframes campus-arrive{from{opacity:.25;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}
.world-stage{animation:campus-arrive .28s ease-out both}
@media(prefers-reduced-motion:reduce){.world-stage{animation:none}}
.world-stage.map-mode .campus-stick-wrap,.world-stage.map-mode .campus-how{display:none}
.campus-fallback-spin{min-height:42px;padding:8px 13px!important;margin:4px 0 9px;border:1px solid #ffe0a6!important;border-radius:11px!important;background:#f3b77c!important;color:#331e32!important;font-weight:850}
.world-fallback .campus-fallback-spin:focus-visible,.campus-surprise:focus-visible,.campus-how:focus-visible,.campus-wheel-overlay :focus-visible,.world-view-controls button:focus-visible{outline:3px solid #fff2bc!important;outline-offset:3px}
/* The whole entrance card is the action; the brass dot reads as a door handle. */
.world-stage .world-entrance-label{min-height:48px;min-width:132px;padding:7px 32px 7px 9px!important;position:absolute;cursor:pointer}
.world-stage .world-entrance-label>*{pointer-events:none}
.world-stage .world-entrance-label::after{content:'';position:absolute;right:10px;top:50%;transform:translateY(-50%);width:11px;height:11px;border-radius:50%;background:#f8c77f;box-shadow:0 0 0 3px #5c3548,0 0 10px #f7ba73}
.world-stage .world-entrance-label:hover,.world-stage .world-entrance-label:focus-visible{border-color:#fff3c7!important;background:#5e314a!important;box-shadow:0 0 0 3px #ffc47f9c,0 7px 22px #170d1b!important}
.world-stage .world-door-prompt{min-height:56px;min-width:min(290px,calc(100% - 24px));padding:8px 14px!important;display:flex;align-items:center;justify-content:center;gap:12px;border:2px solid #ffcf90!important;border-radius:15px!important;color:#fff4df!important;cursor:pointer;text-align:left;font-weight:800}
.world-stage .world-door-prompt>*{pointer-events:none}
.world-stage .world-door-prompt .world-prompt-label{font-size:15px;font-weight:900}
.world-stage .world-door-prompt strong{font-size:12px;white-space:nowrap;padding:8px 10px;border-radius:9px;background:#fbc17e;color:#392038}
.world-prompt-handle,.world-handle{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border:2px solid #ffe2aa;border-radius:50%;background:#b9744d;color:#ffecbc;box-shadow:inset 0 0 0 5px #714354,0 2px 8px #170c20}
.world-stage .world-door-prompt:hover,.world-stage .world-door-prompt:focus-visible{background:#51304b!important;box-shadow:0 0 0 4px #efb7789c,0 12px 32px #180d20b0!important;outline:none}
.world-stage .world-hud-side .world-direction-open{display:flex;align-items:center;width:100%;gap:9px;padding:9px 7px!important;text-align:left;border:1px solid #d09a87!important;border-radius:11px!important;background:#573349!important;color:#fff0dc!important;cursor:pointer}
.world-direction-open>span:nth-child(2){min-width:0;flex:1}.world-direction-open .world-handle{width:19px;height:19px;border-width:1px;box-shadow:inset 0 0 0 4px #714354}
.world-stage .world-hud-side .world-direction-open:hover,.world-stage .world-hud-side .world-direction-open:focus-visible{background:#7c4652!important;border-color:#ffda9f!important;outline:3px solid #ffd49d;outline-offset:2px}
.world-role-patch{position:absolute;z-index:4;transform:translate(-50%,-50%);pointer-events:none;padding:2px 5px;line-height:1;border:1px solid #fff0bf;border-radius:4px;background:#3a2939;color:#ffe3a5;letter-spacing:.04em;font-weight:900;text-shadow:0 1px #2a1729;box-shadow:0 1px 4px #1c0c1f}
.world-role-patch[hidden],.world-stage.map-mode .world-role-patch{display:none!important}
html[data-experience=student] .world-role-patch{background:#244f58;border-color:#b9ece0;color:#f0fffa}
.world-avatar-swatch.teacherClassic{background-image:url('assets/world-v2/teacher-classic.webp')!important}
.world-avatar-swatch.teacherScholar{background-image:url('assets/world-v2/teacher-scholar.webp')!important}
.world-avatar-swatch.studentTeal{background-image:url('assets/world-v2/student-teal.webp')!important}
@media(max-width:800px){.world-stage .world-entrance-label{min-width:97px;min-height:44px;padding:5px 22px 5px 6px!important}.world-stage .world-entrance-label::after{width:8px;height:8px;right:7px}.world-stage .world-door-prompt{min-height:51px;gap:7px}.world-stage .world-door-prompt .world-prompt-label{font-size:12px}.world-stage .world-door-prompt strong{font-size:10px;padding:6px}.world-prompt-handle{width:21px;height:21px}.world-role-patch{padding:2px 3px;letter-spacing:0}}
.world-stage .world-door-prompt[hidden]{display:none!important}
.world-stage .world-direction-open>*{pointer-events:none}
