/* V89 · compact manual layout switch, anchored to directory footer only. */
.journey-dock { position:relative; }
.journey-dock .layout-toggle {
  position:absolute;right:clamp(9px,2vw,16px);bottom:clamp(9px,1.5vw,15px);
  z-index:35;width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  padding:0;border:1.5px solid rgba(255,255,255,.9);border-radius:14px;
  background:linear-gradient(155deg,rgba(255,255,255,.94),rgba(220,208,250,.9));
  color:#503b78;box-shadow:0 3px 0 rgba(76,59,109,.55),0 6px 14px rgba(43,25,73,.28);
  -webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);
  cursor:pointer;touch-action:manipulation;
}
.journey-dock .layout-toggle:focus-visible{outline:3px solid #eafa87;outline-offset:2px}
.journey-dock .layout-toggle.layout-expanded {background:linear-gradient(150deg,#eafa92,#d0f4a9);color:#40335f}
.journey-dock .layout-toggle .layout-tooltip {position:absolute;right:0;bottom:calc(100% + 6px);white-space:nowrap;color:#fff9ed;background:rgba(57,42,82,.87);padding:4px 7px;border-radius:8px;font-size:10px;pointer-events:none;opacity:0;transition:opacity .15s}
.journey-dock .layout-toggle:focus-visible .layout-tooltip,.journey-dock .layout-toggle:hover .layout-tooltip {opacity:1}
/* Reserve the last 44px of the dock footer for the toggle. All primary game
   buttons and both play controls keep their original sizes and hit targets. */
/* Preserve the original listening/volume button sizes on phones. The short
   status text can truncate rather than sit behind the new corner icon. */
html[data-ui-mode="mobile"] .journey-dock .money-dock-caption {justify-content:flex-start;}
.journey-dock #audioTestStatus {max-width:calc(100% - 185px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
html[data-ui-mode="tablet"] .journey-dock #audioTestStatus {max-width:calc(100% - 205px);}
@media(max-width:380px){.journey-dock .layout-toggle {height:39px;width:39px;right:7px;bottom:7px}.journey-dock #audioTestStatus {max-width:calc(100% - 178px)}}
/* Uniform tablet scenes: every non-secret stage photo has a clear central area
   and soft/fading edges. Selection only changes the level card and node, never
   the sharpness of any other stage illustration. */
html[data-ui-mode="tablet"] .route-stage-band .stage-vignette.map-scene-wrap,
html[data-ui-mode="tablet"] .route-stage-band .money-gate-art {
  filter:none!important;
  opacity:1!important;
}
html[data-ui-mode="tablet"] .route-stage-band .stage-vignette.map-scene-wrap .map-scene-art.map-scene-focus,
html[data-ui-mode="tablet"] .route-stage-band .money-gate-art .map-scene-art.map-scene-focus {
  opacity:1!important;
  filter:none!important;
  transition:none!important;
}
html[data-ui-mode="tablet"] .route-stage-band .stage-vignette.map-scene-wrap .map-scene-art.map-scene-soft,
html[data-ui-mode="tablet"] .route-stage-band .money-gate-art .map-scene-art.map-scene-soft {
  opacity:1!important;
}
/* Avoid the original scroll-distance driven illustration shrink on tablets.
   The same constant-sized vignette treatment applies everywhere on the road. */
html[data-ui-mode="tablet"] .route-stage-band:not(.route-mystery):not(.route-money) .stage-vignette.map-scene-wrap {
  transform:rotate(-5deg)!important;
}
html[data-ui-mode="tablet"] .route-stage-band.side-right:not(.route-mystery):not(.route-money) .stage-vignette.map-scene-wrap {
  transform:rotate(5deg)!important;
}
