/* One stable application viewport; long lists scroll inside their own workspace. */
html,body{height:100%;overflow:hidden;scroll-behavior:auto}
#app{height:100dvh;overflow:hidden}
#workspace{height:100%;display:flex;flex-direction:column;overflow:hidden;padding-top:0;padding-bottom:16px}
.department-label,.rail-caption,#primary-nav a>small,.site-footer,#journey{display:none!important}
.season-strip{flex:0 0 42px;height:42px;margin-bottom:14px}
#play-page{flex:1;min-height:0;display:flex;flex-direction:column}
.shift-masthead{flex-shrink:0;margin:0 0 12px;gap:18px}
.shift-masthead h1{font-size:clamp(36px,4.2vw,58px)}
.shift-masthead .eyebrow{display:none}
.cleanup-stamp{font-size:10px;padding:7px 10px}
.season-stamp strong{font-size:30px}
.arena-card:not(:fullscreen){flex:1;min-height:0;display:flex;flex-direction:column}
.arena-toolbar{flex:0 0 46px;height:46px}
.arena-card:not(:fullscreen) .stage{flex:1;min-height:0!important;height:0!important;aspect-ratio:auto!important}
.arena-card:not(:fullscreen) .stage:has(.start-screen:not([hidden])){display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.arena-card:not(:fullscreen) .stage #world{width:100%;height:100%!important;min-height:0!important;aspect-ratio:auto!important;align-self:stretch}
.arena-card:not(:fullscreen) .game-screen.start-screen{padding:18px 20px;overflow:auto;min-height:0;align-items:safe center}
.pass-label{padding-bottom:12px}
.pass-floor{margin:16px 0 8px}
.pass-floor>strong{font-size:62px}
.start-content h2{font-size:21px}
.pass-details{margin:16px 0;font-size:16px}
.start-actions{padding-top:16px;gap:10px}
.start-actions .primary{font-size:12px;padding:11px 8px;min-height:44px}
.pass-barcode,.arena-controls>b{display:none}
.arena-controls{min-height:32px;flex-shrink:0;font-size:10px}
.career-dock{flex:0 0 80px;min-height:0}
.career-dock>a,.career-dock>div{padding:11px 16px}
.dock-person .hero-portrait{width:46px}
.dock-person strong,.dock-balance>strong{font-size:25px}
.dock-person small,.dock-caption,.dock-balance>span:last-child{display:none}
.dock-xp .progress-label{margin:0 0 10px}
.dock-goal>small{margin:4px 0 7px}
#content-page{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 6px 10px}
.page-heading{margin:4px 0 18px;padding-bottom:16px;gap:16px}
.page-heading h1{font-size:clamp(32px,4vw,52px)}
.page-heading .eyebrow{display:none}
.page-heading>div>p:not(.eyebrow){margin-top:8px}
body[data-view=cleaners] #page-content{height:100%;display:flex;flex-direction:column;min-height:0}
body[data-view=cleaners] .page-heading{flex-shrink:0}
.cleaner-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;flex:1;min-height:0;padding:8px 4px 10px;align-items:stretch}
.cleaner-card,.exclusive-cleaner{display:flex;flex-direction:column;max-width:none;min-width:0;grid-template-columns:none;border-radius:10px;transform:none}
.cleaner-card:hover{transform:none}
.cleaner-card:before{height:4px;width:32px;margin-top:12px;flex-shrink:0}
.cleaner-card-top{padding:13px 12px 0;font-size:10px;gap:6px;min-height:35px;flex-shrink:0}
.cleaner-card .tag{font-size:9px;padding:4px 5px;white-space:nowrap}
.cleaner-art,.exclusive-cleaner .cleaner-art{margin:12px 10px 0;min-height:80px;flex:1;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;padding:8px;overflow:hidden}
.cleaner-art .hero-portrait{width:100%;height:100%;object-fit:contain;max-height:340px;aspect-ratio:1}
.cleaner-info,.exclusive-cleaner .cleaner-info{padding:16px 12px 14px;display:flex;flex-direction:column;justify-content:flex-end;flex:0 0 154px}
.cleaner-info h2,.exclusive-cleaner .cleaner-info h2{font-size:clamp(20px,1.6vw,28px);min-height:2.2em;display:flex;align-items:center}
.cleaner-info p{font-size:11px;min-height:16px;margin:5px 0 12px;line-height:1.35}
.cleaner-info button,.exclusive-cleaner .cleaner-info button{margin-top:auto;min-height:42px;padding:8px 4px;font-size:11px}
.exclusive-cleaner{background:linear-gradient(155deg,#213c53,#111f30);color:#f0f7ff;border:2px solid #a0dcff;box-shadow:0 0 0 2px #73caff20,0 0 24px #54baff28,inset 0 0 32px #8bcfff0b;animation:exclusive-light 4s ease-in-out infinite}
.exclusive-cleaner:before{background:#ead4a0;box-shadow:0 0 10px #ead4a04d}
.exclusive-cleaner .cleaner-card-top{color:#d7eaff}
.exclusive-cleaner .tag.accent{background:#ead4a0;color:#283144;border-color:#f7e8c5}
.exclusive-cleaner .cleaner-art{border-color:#639fc066;background:radial-gradient(ellipse at 50% 70%,#67caff2b,transparent 68%),#0c1b2a}
.exclusive-cleaner .cleaner-info p{color:#afc9df}
.exclusive-cleaner .cleaner-info button{background:linear-gradient(135deg,#bbf0ff,#88d9fb);color:#152d44;border-color:#c4f3ff}
.exclusive-cleaner .cleaner-info button:disabled{opacity:.65}
.exclusive-cleaner .cleaner-info .equipped{background:#29475f;color:#d5f2ff;border-color:#94ceee;opacity:1}
body[data-view=cleaners] .info-line{flex-shrink:0;margin:8px 0 0;font-size:11px}
@keyframes exclusive-light{50%{box-shadow:0 0 0 2px #73caff30,0 0 30px #54baff42,inset 0 0 32px #8bcfff10}}
@media(min-width:1001px){.app-rail .header-inner{padding-bottom:28px;gap:0}.app-rail .navigation-bar{margin-top:8px}.app-rail #primary-nav a{font-size:14px}.app-rail{overflow:hidden}.rail-footer .wallet-button{font-size:10px}#workspace{max-width:1680px;padding-left:28px;padding-right:28px}}
@media(max-width:1000px){#app{display:flex;flex-direction:column}.app-rail{position:relative;flex-shrink:0}#workspace{height:0;flex:1;width:100%;padding:0 16px 12px}.season-strip{flex-basis:34px;height:34px;margin-bottom:10px}.shift-masthead h1{font-size:38px}.career-dock{flex-basis:64px}.dock-goal{display:none}.cleaner-grid{gap:10px;grid-template-columns:repeat(5,minmax(160px,1fr));overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding-bottom:12px}.cleaner-card{scroll-snap-align:center}.cleaner-info,.exclusive-cleaner .cleaner-info{flex-basis:150px}.cleaner-info h2,.exclusive-cleaner .cleaner-info h2{font-size:22px}.cleaner-card .tag{font-size:8px}.page-heading h1{font-size:34px}.app-rail .header-inner{height:52px}.app-rail #primary-nav,.app-rail #primary-nav a{min-height:46px}}
@media(max-width:600px){.season-strip{flex-basis:30px;height:30px}.connection-status{display:none}.shift-masthead{margin-bottom:8px}.shift-masthead h1{font-size:30px}.cleanup-stamp{font-size:7px;padding:5px}.season-stamp{display:none}.arena-toolbar{flex-basis:40px;height:40px;padding:0 12px}.arena-character h2{font-size:13px}.arena-character>div>span{display:none}.arena-card:not(:fullscreen) .stage:has(.start-screen:not([hidden])){display:flex;flex-direction:column}.arena-card:not(:fullscreen) .stage:has(.start-screen:not([hidden])) #world{flex:1;height:0!important;min-height:70px!important;order:0}.arena-card:not(:fullscreen) .game-screen.start-screen{position:relative;flex:0 0 auto;order:1;width:100%;padding:12px 14px;display:block;border-right:0}.start-content{display:grid;grid-template-columns:1fr;gap:0}.pass-label,.pass-floor,.pass-details,.start-content h2,.pass-ranked{display:none}.start-actions{padding:0;border:0;margin:0;grid-column:auto;grid-row:auto;gap:0}.start-actions .primary{min-height:42px;font-size:13px}.arena-controls{padding:0 12px;gap:12px;font-size:8px;min-height:26px}.arena-controls span:last-of-type{display:none}.career-dock{flex:0 0 58px;grid-template-columns:1fr 1fr}.career-dock>a,.career-dock>div{padding:8px 12px}.dock-xp{display:none}.dock-person,.dock-balance{border-bottom:0}.dock-person .eyebrow,.dock-balance .eyebrow{font-size:8px}.dock-person strong,.dock-balance>strong{font-size:21px}.dock-person .hero-portrait{width:35px}.page-heading{margin:0 0 8px;padding-bottom:10px;gap:8px;flex-wrap:nowrap}.page-heading h1{font-size:27px}.page-heading>div>p:not(.eyebrow){font-size:10px}.balance-pill,.status-pill{font-size:9px;padding:8px}.cleaner-grid{grid-template-columns:repeat(5,minmax(185px,1fr));gap:12px}.cleaner-art,.exclusive-cleaner .cleaner-art{min-height:70px;margin-top:8px}.cleaner-info,.exclusive-cleaner .cleaner-info{padding:10px 12px;flex-basis:140px}.cleaner-info h2,.exclusive-cleaner .cleaner-info h2{font-size:23px;min-height:2.2em}.cleaner-info button,.exclusive-cleaner .cleaner-info button{font-size:11px}.cleaner-info p{font-size:11px;min-height:16px}.page-heading>div>p:not(.eyebrow){display:none}body[data-view=cleaners] .info-line{display:none}.hud{padding:8px 14px}.hud strong{font-size:22px}.progress{padding-bottom:8px}.touch{min-height:78px;padding:8px 14px}#joystick{width:64px;height:64px}#action{width:78px;height:58px}}
@media(max-height:650px) and (min-width:1001px){.season-strip{flex-basis:32px;height:32px;margin-bottom:8px}.shift-masthead h1{font-size:36px}.shift-masthead{margin-bottom:8px}.career-dock{flex-basis:64px}.pass-floor>strong{font-size:42px}.pass-floor,.pass-details{margin:10px 0}.pass-label{display:none}.game-screen.start-screen{padding:10px 16px!important}.page-heading{margin-bottom:8px;padding-bottom:10px}.page-heading h1{font-size:34px}.cleaner-info,.exclusive-cleaner .cleaner-info{flex-basis:128px;padding:8px 12px}.cleaner-info h2,.exclusive-cleaner .cleaner-info h2{font-size:22px}.cleaner-card-top{padding-top:6px;min-height:28px}.cleaner-art{margin-top:5px}}
@media(prefers-reduced-motion:reduce){.exclusive-cleaner{animation:none}}

.cleaner-grid{align-items:center}.cleaner-card,.exclusive-cleaner{height:min(100%,600px)} .cleaner-art .hero-portrait{max-height:none}
