/* A bounded workspace: prose scrolls inside its dock, never sizes the scene.
   No zoom/transform scaling, no changes to combat actors or combat styles. */
.workspace135-navigation{position:relative;flex:none;color:#e4d8b8}
.workspace135-navigation>summary{list-style:none;cursor:pointer;min-height:34px;display:flex;align-items:center;gap:12px;padding:6px 13px;border:1px solid #9d8659;background:linear-gradient(110deg,#55472e,#29372a);font-size:13px;box-sizing:border-box}
.workspace135-navigation>summary::after{content:'⌄';color:#cdb67e}.workspace135-navigation[open]>summary{border-color:#dec28b;background:#554d32}.workspace135-navigation>summary::-webkit-details-marker{display:none}
.workspace135-links{position:absolute;z-index:75;right:0;top:calc(100% + 9px);width:min(330px,calc(100vw - 28px));max-height:calc(100dvh - 90px);overflow:auto;display:grid;grid-template-columns:1fr;gap:7px;padding:13px;border:1px solid #a68d5e;background:linear-gradient(135deg,#30382a,#15251c);box-shadow:0 14px 35px #000b}
.workspace135-navigation:not([open])>.workspace135-links{display:none}
body.workspace135-live .hero-header .workspace135-links>:is(button,a){width:100%;min-height:42px;text-align:left;white-space:normal!important;padding:10px 12px!important;background:#26372a;border:1px solid #766c4b;box-sizing:border-box}
.workspace135-links>[hidden]{display:none!important}
.workspace135-links>.career-trial-strip{display:block!important;margin:0;padding:10px;background:#26372a;border:1px solid #89774d}.workspace135-links>.career-trial-strip p{font-size:12px;line-height:1.6}.workspace135-links>.career-trial-strip button{min-height:36px;margin:5px 3px 0 0}.workspace135-alert>summary{color:#ffe0a3;border-color:#c69260}
.workspace135-navigation :is(summary,button,a):focus-visible{outline:2px solid #edce87;outline-offset:3px}
@media(min-width:1100px) and (min-height:650px){
 body.arrival-mode:not(.intro-101){display:flow-root;height:100dvh;overflow:hidden}
 body.workspace135-live.workspace135-live{height:100dvh!important;min-height:0!important;overflow:hidden!important}
 body.workspace135-live.workspace135-live main.app-shell{height:calc(100dvh - 20px)!important;min-height:0!important;width:calc(100% - 24px)!important;max-width:1800px;margin:10px auto!important;display:flex;flex-direction:column;gap:6px}
 body.workspace135-live.workspace135-live .hero-header{position:relative;top:auto;height:44px!important;min-height:44px!important;flex:none;flex-wrap:nowrap!important;overflow:visible;padding:5px 12px!important;gap:12px!important;margin:0!important;border-bottom:1px solid #a18a554f;background:linear-gradient(100deg,#24271e,#18251d)}
 body.workspace135-live.workspace135-live .hero-header .header-actions{flex-wrap:nowrap!important;gap:7px!important;margin-left:auto;min-width:0}
 body.workspace135-live.workspace135-live #game-panel:not([hidden]){flex:1 1 0!important;min-height:0!important;overflow:visible;display:flex;flex-direction:column;gap:6px}
 body.workspace135-live.workspace135-live .session-bar{height:34px!important;min-height:34px!important;flex:none;margin:0!important}
 body.workspace135-live.workspace135-live .career-growth-panel{display:none!important}
 body.workspace135-live.workspace135-live #map-stage-page#map-stage-page{flex:1 1 0!important;height:auto!important;min-height:0!important;max-height:100%;grid-template-rows:32px 60px minmax(0,1fr)!important;overflow:hidden;padding:8px!important;margin:0!important}
 body.workspace135-live.workspace135-live #map-stage-page#map-stage-page:has(>.route132-support){grid-template-rows:32px 60px minmax(0,100px) minmax(0,1fr)!important}
 body.workspace135-live.workspace135-live #map-stage-page>.route132-support{min-height:0;max-height:100px!important;overflow:auto}
 body.workspace135-live.workspace135-live #map-stage-page>:is(#exploration-view,#event-scene,#floor-progress,#loot-workspace,#boss-preparation,#core-gate-stage){min-height:0!important;height:100%!important;max-height:100%!important;box-sizing:border-box}
 body.workspace135-live.workspace135-live #event-scene#event-scene#event-scene#event-scene:not(.combat-scene):not([hidden]){display:grid!important;grid-template-columns:minmax(0,1fr) 460px!important;grid-template-rows:36px minmax(0,1fr)!important;min-height:0!important;height:100%!important;overflow:hidden!important;contain:size layout}
 body.workspace135-live.workspace135-live #event-scene#event-scene#event-scene#event-scene:not(.combat-scene) #event-vignette{grid-column:1!important;grid-row:2!important;min-height:0!important;height:100%!important;width:100%!important;max-height:100%!important;overflow:hidden!important;margin:0!important;contain:size layout}
 body.workspace135-live.workspace135-live #event-scene#event-scene#event-scene#event-scene:not(.combat-scene) .event-scene-copy{grid-column:2!important;grid-row:2!important;min-height:0!important;height:100%!important;max-height:100%!important;overflow:auto!important;scrollbar-gutter:stable;padding:12px!important;display:flex!important;flex-direction:column;gap:9px!important;contain:layout}
 body.workspace135-live #event-scene:not(.combat-scene) :is(.event-interaction-heading,.station-heading){grid-column:1/-1!important;grid-row:1!important}
 body.workspace135-live #event-scene:not(.combat-scene) .event-scene-copy>*{flex-shrink:0}
 body.workspace135-live #event-scene:not(.combat-scene) .event-loot-selection-134{flex:1 0 220px;min-height:220px}
 body.workspace135-live #event-scene:not(.combat-scene) .event-loot-cards-134{min-height:80px}
 body.workspace135-live #event-scene:not(.combat-scene) .event-scene-copy #event-scene-story{font-size:15px!important;line-height:1.8!important;margin:0 0 8px!important;padding-bottom:10px;max-height:none}
 body.workspace135-live #event-scene:not(.combat-scene) :is(.event-decision-card,.station-service-card,.convoy-observation){min-height:0!important;flex:none}
 body.workspace135-live #event-scene:not(.combat-scene) .story-stage{position:static!important}
 body.workspace135-live #event-scene:not(.combat-scene) :is(.event-interaction-utilities,.station-utilities){position:static!important;flex:none;isolation:isolate}
 body.workspace135-live #event-scene:not(.combat-scene) #event-story-details{position:static!important}
 body.workspace135-live #floor-progress#floor-progress:not([hidden]){display:block!important;overflow:auto!important;padding:16px!important;min-height:0!important}
 body.workspace135-live #floor-progress .floor-cards{flex:none!important;min-height:auto;overflow:visible!important;margin:12px 0!important;gap:10px!important}
 body.workspace135-live #floor-progress .floor-cards>article{padding:12px!important}
 body.workspace135-live #exploration-view#exploration-view{overflow:auto!important;display:flex;flex-direction:column;flex-wrap:nowrap;align-content:stretch;gap:6px}
 body.workspace135-live #exploration-view>#event-message{flex:none!important;margin:0;min-height:0}
 body.workspace135-live .map107-stage #route-guide{display:none!important}
 body.workspace135-live #exploration-view .map-stage{height:auto!important;min-height:0!important;flex:1 1 0!important;overflow:hidden;margin:0}
 body.workspace135-live .map107-frame.map107-frame{height:auto!important;min-height:0!important;flex:1 1 0!important;grid-template-rows:minmax(0,1fr);overflow:hidden!important;container-type:size}
 body.workspace135-live .map107-frame.map107-frame:has(.route130-regions){grid-template-rows:auto minmax(0,1fr)}
 body.workspace135-live #board#board#board.map107{height:100%!important;width:auto!important;max-width:100%!important;min-width:0!important;justify-self:center;min-height:0!important;max-height:100%!important;aspect-ratio:2/1!important}
 body.workspace135-live #board#board.map107 .pieces{top:calc(-34px + var(--workspace135-pin-shift,0px))!important}
 body.workspace135-live #board#board#board.map107 .map107-cell{pointer-events:none}
 body.workspace135-live #board#board#board.map107 .map107-cell>:is(.route-step-button,.map107-observe){pointer-events:auto;inset:auto!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%);width:44px!important;height:40px!important}
 body.workspace135-live .map107-notes{min-height:0;max-height:100%;overflow:auto}
 body.workspace135-live .workspace135-route{display:block;margin:0 0 12px;padding:9px;border-color:#94815a}
 body.workspace135-live .workspace135-route .route130-copy strong{font-size:15px;line-height:1.5}
 body.workspace135-live .workspace135-route summary{font-size:12px;cursor:pointer;padding:5px 0;color:#ccc3a9}
 body.workspace135-live .workspace135-route .route130-controls{display:grid;max-width:100%;width:100%;margin-top:6px}
 body.workspace135-live .workspace135-route .route130-controls button{font-size:13px;padding:7px;min-width:0}
 body.workspace135-live .route130-destination{flex:none;padding:8px 12px;gap:12px}
 body.workspace135-live .route130-copy p{font-size:12px;line-height:1.5;margin:3px 0}
 body.workspace135-live .route130-controls button{padding:7px 10px;min-height:38px}
 body.workspace135-live .route130-controls small{max-height:42px;overflow:auto;scrollbar-width:thin}
 body.workspace135-live .route130-regions>span{padding:5px 8px;font-size:13px}
 body.workspace135-live #ai-observation{min-height:0;max-height:100%;overflow:auto}
}
/* Smaller windows retain normal page scrolling; navigation remains bounded. */
@media(max-width:1099px),(max-height:649px){body.workspace135-live .hero-header .header-actions{gap:6px!important}.workspace135-navigation>summary{font-size:12px;padding:6px 9px}}
/* The signed-out desktop entry uses the same viewport budget. Long error text
   scrolls inside the desk; small windows keep the existing document flow. */
@media(min-width:1100px) and (min-height:650px){
 body.arrival-mode:not(.intro-101) main.app-shell{height:calc(100dvh - 24px);min-height:0;margin:12px auto!important;display:flex;flex-direction:column;gap:10px}
 body.arrival-mode .hero-header{height:58px;min-height:58px;box-sizing:border-box;padding:4px 0!important;margin:0;gap:12px;flex:none}
 body.arrival-mode .hero-header :is(.eyebrow,.brand-subtitle){display:none}
 body.arrival-mode .hero-header h1{font-size:22px}.arrival-mode .hero-header .header-actions{gap:7px;flex-wrap:nowrap}
 body.arrival-mode .hero-header :is(button,.button-link){font-size:12px;padding:7px 10px}
 body.arrival-mode #identity-panel{min-height:0;flex:1 1 0;overflow:hidden;grid-template-columns:1.1fr 1fr}
 body.arrival-mode .arrival-art{padding:34px}.arrival-mode .arrival-story h2{font-size:clamp(36px,4vw,58px)}
 body.arrival-mode .arrival-desk{min-height:0;overflow:auto;padding:22px 32px;justify-content:center}
 body.arrival-mode .arrival-desk h2{font-size:25px;margin:6px 0}.arrival-mode .arrival-intro{margin:6px 0 14px}
 body.arrival-mode .auth-tabs{margin-bottom:12px}.arrival-mode .auth-fields{gap:10px}.arrival-mode .auth-fields input{padding:10px}
 body.arrival-mode .arrival-desk .auth-actions{margin-top:14px}.arrival-mode .arrival-desk .auth-actions button{padding:11px}
 body.arrival-mode .arrival-training{padding-top:12px;gap:5px;font-size:13px}.arrival-mode .arrival-note{margin:12px 0 0}
 body.arrival-mode #connection-error{max-height:68px;overflow:auto;flex:none}
}
