/* A deliberately quiet game HUD for the illustrated campus. */
.world-stage.rescue-active .world-hud-top,.world-stage.rescue-active .world-hud-side,.world-stage.rescue-active .world-minimap,.world-stage.rescue-active .world-hud-bottom,.world-stage.rescue-active .world-view-controls,.world-stage.rescue-active .campus-stick-wrap,.world-stage.rescue-active .campus-how,.world-stage.rescue-active .world-camera-pick,.world-stage.rescue-active .world-character-button,.world-stage.rescue-active .world-room-board,.world-stage.rescue-active .game-room-entry,.world-stage.rescue-active .pc-entry,.world-stage.rescue-active .pc-hall-intro,.world-stage.rescue-active .world-door-prompt,.world-stage.rescue-active .world-touch,.world-stage.rescue-active .campus-travel-status{display:none!important}
.world-stage.rescue-active .rescue-scene{z-index:1;touch-action:none}
.world-stage.rescue-active .rescue-environment{inset:-12%;transform:translate(var(--scene-shift-x,0px),var(--scene-shift-y,0px)) scale(1.04)}
.world-stage.rescue-active .rescue-vignette{background:linear-gradient(180deg,#092321b0,transparent 17%,transparent 70%,#061e23a6)}
.world-stage.rescue-active .rescue-room-name{top:16px;left:50%;max-width:52%;padding:5px 15px;border:1px solid #e7cb984f;border-radius:20px;background:#123b3acc;backdrop-filter:blur(8px)}
.world-stage.rescue-active .rescue-room-name strong{font:700 clamp(18px,2.2vw,30px)/1.1 Georgia,serif;white-space:nowrap}
.world-stage.rescue-active .rescue-hotspot{min-width:80px;max-width:140px;min-height:40px;padding:5px 9px!important;border-radius:10px!important;background:#163d36e6!important;border:1px solid #efcf98!important;box-shadow:0 5px 15px #0017149c;color:#fff8df!important;text-align:center;font:800 11px/1.15 system-ui;justify-content:center}
.world-stage.rescue-active .rescue-hotspot .rescue-hot-name{overflow-wrap:normal}
.world-stage.rescue-active .rescue-hotspot:hover,.world-stage.rescue-active .rescue-hotspot:focus-visible,.world-stage.rescue-active .rescue-hotspot.rescue-near{background:#ffe0aa!important;color:#1b302d!important;box-shadow:0 0 0 4px #ffe7a37c,0 10px 22px #082b29}
.world-stage.rescue-active .campus-hotspot:nth-child(n+10){display:none}
.world-stage.rescue-active .rescue-avatar{bottom:auto;transform:translate(-50%,-100%) scale(var(--avatar-scale,1));transform-origin:bottom center;transition:left .05s linear,top .05s linear,transform .08s linear}
.world-stage.rescue-active .rescue-avatar-sprite{width:105px;height:210px}
.world-stage.rescue-active .rescue-avatar small{font:800 10px system-ui}
.rescue-quick{position:absolute;z-index:12;top:15px;left:13px;display:flex;gap:5px}
.rescue-quick button,.rescue-nav>button{min-height:44px;padding:7px 10px!important;border:1px solid #f0d49f!important;border-radius:12px!important;background:#173a36e8!important;color:#fff9e6!important;font:800 11px system-ui;box-shadow:0 6px 18px #061b1a8c;cursor:pointer}
.rescue-quick button:focus-visible,.rescue-nav button:focus-visible,.rescue-joystick:focus-visible,.rescue-enter:focus-visible{outline:3px solid #ffe2a1!important;outline-offset:3px}
.rescue-nav{position:absolute;z-index:12;right:13px;top:15px;display:flex;gap:5px}
.rescue-destination:not([hidden]){position:absolute;top:53px;right:0;width:min(255px,82vw);display:grid;gap:7px;padding:12px;border:1px solid #f4d4a0;border-radius:14px;background:#133735f4;box-shadow:0 15px 38px #061d20bd}
.rescue-destination label{font:800 11px system-ui;color:#ffde9f}
.rescue-destination select{width:100%;min-height:43px;border-radius:9px;background:#f8ecd3;color:#1d3935;padding:7px;font-size:13px}
.rescue-destination button{min-height:43px;border:1px solid #ffe2b2;border-radius:9px;background:#f8c184;color:#192e2b;font-weight:850}
.rescue-destination .rescue-nav-close{position:absolute;right:5px;top:4px;width:26px;min-height:26px;padding:0;background:transparent;color:#fff4da;border:0;font-size:20px}
.rescue-joystick{position:absolute;z-index:11;bottom:15px;width:98px;height:98px;border:2px solid #ffddaa;border-radius:50%;background:radial-gradient(circle,#40605b88,#173c3acb 70%);box-shadow:0 5px 18px #081d1dac,inset 0 0 0 9px #d0b08022;touch-action:none;cursor:grab;user-select:none}
.rescue-joystick:active{cursor:grabbing}.rescue-look-stick{left:15px}.rescue-walk-stick{right:15px}
.rescue-knob{position:absolute;left:50%;top:50%;width:39px;height:39px;border:3px solid #fff0c8;border-radius:50%;transform:translate(-50%,-50%);background:#edb872;box-shadow:0 3px 8px #0b2225a6;pointer-events:none}
.rescue-joystick small{position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);color:#fff2d1;font:900 9px system-ui;letter-spacing:.17em;text-shadow:0 2px 5px #0b2725;pointer-events:none}
.rescue-enter:not([hidden]){position:absolute;z-index:13;left:50%;bottom:135px;transform:translateX(-50%);min-height:48px;max-width:70%;padding:8px 18px!important;border:2px solid #fff1cf!important;border-radius:14px!important;background:#ffcf8b!important;color:#193633!important;font-weight:900;box-shadow:0 0 0 5px #ffc87780,0 12px 25px #001b20ac;cursor:pointer}
.world-stage.rescue-active .rescue-door-home{left:9px;bottom:auto;top:70px;min-width:44px;min-height:44px;background:#173c39!important}
.world-stage.rescue-active .campus-wheel-overlay:not([hidden]),.world-stage.rescue-active .world-activity-panel:not([hidden]),.world-stage.rescue-active .world-guide:not([hidden]){z-index:40}
@media(max-width:800px){.world-stage.rescue-active .rescue-room-name{top:14px;max-width:48%}.world-stage.rescue-active .rescue-room-name strong{font-size:18px}.rescue-quick{top:9px;left:8px}.rescue-nav{top:9px;right:8px}.rescue-quick button,.rescue-nav>button{width:44px;height:44px;overflow:hidden;white-space:nowrap;font-size:17px}.rescue-quick button span,.rescue-nav>button span{display:none}.world-stage.rescue-active .rescue-joystick{bottom:calc(var(--phone-main-nav-height,68px) + 10px);width:76px;height:76px}.world-stage.rescue-active .rescue-look-stick{left:8px}.world-stage.rescue-active .rescue-walk-stick{right:8px}.rescue-knob{width:30px;height:30px}.world-stage.rescue-active .rescue-hotspot{min-width:72px;max-width:100px;min-height:38px;font-size:10px}.world-stage.rescue-active .rescue-avatar-sprite{width:72px;height:145px}.rescue-enter:not([hidden]){bottom:calc(var(--phone-main-nav-height,68px) + 98px);font-size:12px}.world-stage.rescue-active .rescue-door-home{top:58px}}
@media(max-width:520px){.world-stage.rescue-active .rescue-hotspots{inset:0;display:block}.world-stage.rescue-active .rescue-hotspot{position:absolute;left:var(--hot-x);top:var(--hot-y);width:auto;transform:translate(-50%,-50%)}.world-stage.rescue-active .rescue-hotspot:hover,.world-stage.rescue-active .rescue-hotspot:focus-visible,.world-stage.rescue-active .rescue-hotspot.rescue-near{transform:translate(-50%,-50%) scale(1.05)}.world-stage.rescue-active .campus-hotspot:nth-child(n+6){display:none}.world-stage.rescue-active .rescue-room-name{top:56px;max-width:80%}.world-stage.rescue-active .rescue-avatar{bottom:auto}.world-stage.rescue-active .rescue-hotspot.room-hotspot{max-width:92px}}
@media(prefers-reduced-motion:reduce){.world-stage.rescue-active .rescue-avatar,.world-stage.rescue-active .rescue-environment{transition:none}}
/* Every room entry is a brief opening-door transition. */
.experience-arrival{background:transparent;overflow:hidden}
.experience-arrival:before,.experience-arrival:after{content:'';position:absolute;top:0;bottom:0;width:51%;z-index:0;background:linear-gradient(90deg,#143934,#31574b 83%,#b58d54);box-shadow:inset 0 0 0 5px #d9b67a66,0 0 45px #061d1c}
.experience-arrival:before{left:0;animation:hesabu-door-left 1.1s .12s ease-in forwards}
.experience-arrival:after{right:0;transform:scaleX(-1);animation:hesabu-door-right 1.1s .12s ease-in forwards}
.experience-arrival-inner{z-index:1;text-shadow:0 2px 15px #061b1a}
@keyframes hesabu-door-left{to{transform:translateX(-105%)}}
@keyframes hesabu-door-right{to{transform:translateX(105%) scaleX(-1)}}
@media(prefers-reduced-motion:reduce){.experience-arrival:before,.experience-arrival:after{animation:none}}
@media(max-width:800px){
 :root{--phone-main-nav-height:64px}
 .simple-shell .sidebar .nav{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;grid-template-rows:1fr!important;height:calc(64px + env(safe-area-inset-bottom))!important;padding:5px 3px calc(5px + env(safe-area-inset-bottom))!important;gap:2px!important;overflow:hidden!important}
 html[data-experience=teacher] .simple-shell .sidebar .nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}
 html[data-experience=teacher] .simple-shell .sidebar .nav button:nth-child(6),html[data-experience=teacher] .simple-shell .sidebar .nav button:nth-child(8),html[data-experience=student] .simple-shell .sidebar .nav button:nth-child(n+7){display:none!important}
 .simple-shell .sidebar .nav button{min-width:0!important;padding:3px 1px!important;font-size:9px!important;line-height:1.05!important}
 .simple-shell .sidebar .nav .nav-label-phone{font-size:9px!important}
}
