/* Size the scene to the task, keeping full-size controls and natural page scrolling. */
html.astra-refined #setup{min-height:calc(100svh - 48px)!important}
html.astra-refined body #setup[data-world] .stage-bg{padding:16px clamp(14px,3vw,48px) 24px!important;min-height:calc(100svh - 48px)}
html.astra-refined #setup .stage-header{margin-bottom:14px}
html.astra-refined #setup .stage-header__actions{display:flex;align-items:center;gap:8px;position:relative}
html.astra-refined #setup #kt-audio-dock{position:static;padding:0;flex-shrink:0;border-radius:6px;box-shadow:none}
html.astra-refined #setup #kt-audio-dock .kt-dock-toggle{width:44px;height:44px}
html.astra-refined #setup #kt-audio-dock.open{position:absolute;top:50px;right:0;left:auto;bottom:auto;padding:8px;max-width:min(280px,calc(100vw - 48px));width:max-content;flex-wrap:wrap;border-radius:8px;background:#181923}
html.astra-refined #setup .team-world{margin-top:0!important}
html.astra-refined #setup[data-rosters="closed"] .rng-col__list,
html.astra-refined #setup[data-rosters="closed"] .team-world__players-label,
html.astra-refined #setup[data-rosters="closed"] .rng-col>.btn,
html.astra-refined #setup[data-rosters="closed"] .team-roster-shuffle{display:none!important}
html.astra-refined #setup .team-roster-toggle{display:block;margin:14px auto 0;padding:10px 16px;min-height:44px;border:1px solid var(--world-line);border-radius:5px;background:var(--world-field);color:var(--world-ink);font:600 12px Archivo,Arial,sans-serif;cursor:pointer}
html.astra-refined body #setup[data-world] .setup-card{max-width:none!important}
html.astra-refined body #setup[data-world] .setup-card h3{font-size:28px!important;margin-bottom:6px!important}
html.astra-refined #setup .team-world__intro{font-size:13px;margin-bottom:22px!important}
html.astra-refined #setup .team-world__continue{margin-top:14px!important;padding-top:12px!important;gap:6px!important}
html.astra-refined body #setup[data-world] #toCatBtn{min-height:48px}
html.astra-refined body #setup[data-world="classic"] .team-world__art{height:210px}
html.astra-refined body #setup[data-world="classic"] .classic-billing{inset:12px 32px;padding:14px 20px}
.classic-billing>strong{font-size:46px;margin:9px 0}
.classic-billing__foot{margin-top:12px}
html.astra-refined body #setup[data-world="classic"] .setup-card{padding-top:20px!important}
html.astra-refined body #setup[data-world="classic"] .rng-col{padding:18px 22px}
html.astra-refined body #setup[data-world="classic"] .team-world__name-field label{margin-bottom:12px}
html.astra-refined body #setup[data-world="heist"] .team-world__art{min-height:420px;height:100%;max-height:560px;position:relative;top:0}
html.astra-refined body #setup[data-world="heist"] .team-world__poster{padding:22px}
html.astra-refined body #setup[data-world="heist"] .team-world__name{font-size:50px}
html.astra-refined body #setup[data-world="heist"] .team-vault{inset:130px 24px 18px;gap:12px}
html.astra-refined body #setup[data-world="heist"] .team-vault-door{max-height:220px}
html.astra-refined body #setup[data-world="heist"] .team-vault__caption{font-size:8px}
html.astra-refined body #setup[data-world="heist"] .team-rng__cols{grid-template-columns:1fr 1fr}
html.astra-refined body #setup[data-world="heist"] .setup-card{padding:20px 0!important}
html.astra-refined body #setup[data-world="heist"] .heist-file{margin-bottom:15px}
html.astra-refined body #setup[data-world="vegas"] .team-world__art{height:200px}
html.astra-refined body #setup[data-world="vegas"] .vegas-sign{padding-top:0}
.vegas-sign>strong{font-size:58px}
html.astra-refined body #setup[data-world="vegas"] .vegas-sign>.team-play-button{margin-top:8px}
.team-dealt-cards{inset:10px 30px 15px}.team-dealt-card{height:165px;width:130px}.team-card-face strong{font-size:18px}
html.astra-refined body #setup[data-world="vegas"] .setup-card{padding:22px 40px!important;border-radius:70px!important}
html.astra-refined body #setup[data-world="vegas"] .team-rng__cols{margin-top:35px}
html.astra-refined body #setup[data-world="vegas"] .rng-col{padding:25px 20px 16px}
html.astra-refined body #setup[data-world="carnival"] .team-world__art{height:185px}
html.astra-refined body #setup[data-world="carnival"] .team-world__poster{padding-top:34px}
html.astra-refined body #setup[data-world="carnival"] .team-world__name{font-size:52px;margin:10px 0 14px}
html.astra-refined body #setup[data-world="carnival"] .team-rng__cols{margin-top:20px;gap:24px}
html.astra-refined body #setup[data-world="carnival"] .setup-card{padding-top:20px!important}
html.astra-refined body #setup[data-world="carnival"] .rng-col{padding:48px 22px 18px;border-radius:30px 30px 6px 6px}
html.astra-refined body #setup[data-world="carnival"] .rng-col:before{height:25px}
html.astra-refined body #setup[data-world="carnival"] .carnival-admit{margin-bottom:12px;padding-bottom:8px}
html.astra-refined body #setup[data-world="hex"] .team-world__art{height:220px;margin-bottom:16px}
html.astra-refined body #setup[data-world="hex"] .team-world__poster{padding-top:20px}
html.astra-refined body #setup[data-world="hex"] .team-world__name{font-size:76px;margin:16px 0}
html.astra-refined body #setup[data-world="hex"] .hex-muster{height:225px;top:-15px}
html.astra-refined body #setup[data-world="hex"] .setup-card{padding-top:20px!important}
html.astra-refined body #setup[data-world="hex"] .rng-col{padding:18px 22px}
html.astra-refined body #setup[data-world="hex"] .team-world__name-field label{margin-bottom:12px}

/* Phones and small tablets use shallow scenes and two always-visible team names. */
@media(max-width:800px){
 html.astra-refined body #setup[data-world] .stage-bg{padding:12px 12px 18px!important}
 html.astra-refined #setup .stage-header{margin-bottom:10px}
 html.astra-refined #setup .stage-header .btn{padding:8px 12px!important;min-height:44px}
 html.astra-refined body #setup[data-world] .team-world{display:block;max-width:650px}
 html.astra-refined body #setup[data-world] .setup-card{padding:16px 0 0!important}
 html.astra-refined body #setup[data-world] .setup-card h3{font-size:23px!important;text-align:center!important}
 html.astra-refined #setup .team-world__intro{font-size:12px!important;text-align:center;max-width:none;line-height:1.4;margin-bottom:16px!important}
 html.astra-refined body #setup[data-world] .team-rng__cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px!important;margin-top:0}
 html.astra-refined body #setup[data-world] .rng-col{min-width:0;padding:14px 12px!important}
 html.astra-refined body #setup[data-world] .team-world__name-field input{font-size:16px!important;min-height:46px!important;padding:10px!important}
 html.astra-refined #setup .team-world__name-field label{font-size:10px!important;margin:0 0 10px!important;padding-right:0!important}
 html.astra-refined #setup .team-roster-toggle{margin-top:10px}
 html.astra-refined #setup .team-world__continue{position:sticky;bottom:0;background:var(--world-bg);padding:10px 0 max(8px,env(safe-area-inset-bottom))!important;z-index:3;margin-top:6px!important;max-width:none;border-top:0}
 html.astra-refined #setup .team-world__continue>span{display:none}
 html.astra-refined #setup .rng-del{width:44px}
 html.astra-refined #setup[data-rosters="open"] .team-rng__cols{grid-template-columns:1fr 1fr!important}
 html.astra-refined #setup .team-world__players-label{margin:12px 0 8px}
 html.astra-refined #setup .classic-number,html.astra-refined #setup .hex-faction-crest{display:none!important}
 html.astra-refined body #setup[data-world="classic"] .team-world__art{height:155px;border-radius:65px 65px 0 0}
 html.astra-refined body #setup[data-world="classic"] .classic-billing{inset:8px;padding:10px 12px;border-radius:56px 56px 0 0}
 .classic-billing__top{font-size:8px}.classic-billing>strong{font-size:32px;margin:7px 0}.classic-billing__names{gap:10px}.classic-billing__foot{display:none}
 html.astra-refined #setup .billing-light{font-size:14px;padding:8px 5px}
 html.astra-refined body #setup[data-world="heist"] .team-world__art{height:150px;min-height:0;max-height:none;position:relative;top:0}
 html.astra-refined body #setup[data-world="heist"] .team-world__poster{padding:25px 16px;max-width:56%}
 html.astra-refined body #setup[data-world="heist"] .team-world__edition{font-size:8px}
 html.astra-refined body #setup[data-world="heist"] .team-world__name{font-size:38px;margin:14px 0}
 html.astra-refined body #setup[data-world="heist"] .team-vault{inset:8px 10px 8px auto;width:38%;gap:5px}
 html.astra-refined body #setup[data-world="heist"] .team-vault-door{height:110px;width:100%;max-height:110px}
 html.astra-refined body #setup[data-world="heist"] .team-vault__caption,html.astra-refined body #setup[data-world="heist"] .team-vault__crews{display:none}
 html.astra-refined body #setup[data-world="heist"] .heist-file{font-size:8px;letter-spacing:.04em;padding:8px 12px;margin:-14px -12px 12px}
 html.astra-refined body #setup[data-world="vegas"] .team-world__art{height:180px}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign{padding-top:8px}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign>span{font-size:8px;letter-spacing:.12em}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign>strong{font-size:38px;margin-top:4px}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign>.team-play-button{font-size:10px;padding:8px;min-height:44px;margin-top:10px}
 .vegas-sign__suits{display:none}.team-dealt-cards{inset:20px 3px 15px;justify-content:space-between;gap:0}.team-dealt-card{width:76px;height:123px}.team-card-back{font-size:36px}.team-card-face{padding:8px}.team-card-face strong{font-size:13px}.team-card-face>span,.team-card-face small{font-size:8px}.team-card-face>span b{font-size:13px}
 html.astra-refined body #setup[data-world="vegas"] .setup-card{padding:16px 14px 0!important;border-radius:32px!important;border-width:3px!important}
 html.astra-refined body #setup[data-world="vegas"] .team-rng__cols{margin-top:30px}
 html.astra-refined body #setup[data-world="vegas"] .rng-col{padding-top:22px!important}
 html.astra-refined body #setup[data-world="vegas"] .vegas-chip{width:34px;height:34px;border-width:3px;outline-width:2px;font-size:13px;left:calc(50% - 17px);top:-19px}
 html.astra-refined body #setup[data-world="vegas"] .team-world__continue{background:var(--world-panel);border-radius:0 0 20px 20px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__art{height:155px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__poster{padding:26px 2px 0;max-width:100%}
 html.astra-refined body #setup[data-world="carnival"] .team-world__edition{font-size:7px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__name{font-size:34px;margin:9px 0}
 html.astra-refined body #setup[data-world="carnival"] .team-world__tagline{display:none}
 html.astra-refined body #setup[data-world="carnival"] .carnival-bunting{height:20px}.carnival-bunting i{height:18px;width:24px}
 html.astra-refined body #setup[data-world="carnival"] .rng-col{padding-top:32px!important;border-radius:22px 22px 5px 5px}
 html.astra-refined body #setup[data-world="carnival"] .rng-col:before{height:18px}
 html.astra-refined body #setup[data-world="carnival"] .carnival-admit{display:none}
 html.astra-refined body #setup[data-world="hex"] .team-world__art{height:170px;margin-bottom:12px}
 html.astra-refined body #setup[data-world="hex"] .team-world__poster{padding:15px 0;max-width:40%;display:flex}
 html.astra-refined body #setup[data-world="hex"] .team-world__edition{font-size:7px}
 html.astra-refined body #setup[data-world="hex"] .team-world__name{font-size:48px;margin:12px 0}
 html.astra-refined body #setup[data-world="hex"] .team-world__tagline{display:none}
 html.astra-refined body #setup[data-world="hex"] .hex-muster{height:170px;top:0;right:0;width:63%}
 html.astra-refined body #setup[data-world="hex"] .hex-muster__versus{gap:5px;left:0;right:0;padding-inline:0;bottom:0}
 html.astra-refined #setup .hex-team-selector{font-size:10px;padding:5px;min-height:44px}
 .hex-team-hint{display:none}
 html.astra-refined body #setup[data-world="hex"] .team-rng__cols:before{display:none}
}
@media(max-width:360px){
 html.astra-refined body #setup[data-world] .rng-col{padding-inline:9px!important}
 html.astra-refined body #setup[data-world] .setup-card h3{font-size:21px!important}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign>strong{font-size:30px}
 .team-dealt-card{width:63px;height:112px}.team-card-face strong{font-size:11px}
 html.astra-refined body #setup[data-world="classic"] .classic-billing{padding-inline:8px}
 html.astra-refined #setup .billing-light{font-size:12px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__name{font-size:30px}
 html.astra-refined body #setup[data-world="heist"] .team-world__name{font-size:32px}
}
@media(max-width:540px){html.astra-refined #setup[data-rosters="open"] .team-rng__cols{grid-template-columns:1fr!important}}
@media(max-width:800px) and (max-height:700px){
 html.astra-refined #setup .team-world__intro{display:none}
 html.astra-refined body #setup[data-world="classic"] .team-world__art{height:125px}
 .classic-billing__top{display:none}
 html.astra-refined body #setup[data-world="vegas"] .team-world__art{height:130px}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign{padding-top:0}
 .team-dealt-cards{inset-block:3px 10px}.team-dealt-card{height:104px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__art{height:140px}
 html.astra-refined body #setup[data-world="hex"] .team-world__art{height:135px}
 html.astra-refined body #setup[data-world="hex"] .hex-muster{height:140px}
 html.astra-refined body #setup[data-world="heist"] .team-world__art{height:135px}
 html.astra-refined body #setup[data-world="heist"] .team-vault-door{height:100px}
 html.astra-refined body #setup[data-world] .setup-card h3{margin-bottom:14px!important}
}
/* Short desktop windows retain the wide layout without oversized decoration. */
@media(min-width:801px) and (max-height:760px){
 html.astra-refined body #setup[data-world] .stage-bg{padding-top:10px!important}
 html.astra-refined body #setup[data-world="classic"] .team-world__art{height:165px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__art{height:150px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__name{font-size:44px}
 html.astra-refined body #setup[data-world="hex"] .team-world__art{height:165px}
 html.astra-refined body #setup[data-world="hex"] .hex-muster{height:175px}
 html.astra-refined body #setup[data-world="vegas"] .team-world__art{height:170px}
 .team-dealt-card{height:145px}
 html.astra-refined body #setup[data-world="heist"] .team-world__art{min-height:360px}
 html.astra-refined body #setup[data-world] .setup-card h3{font-size:25px!important}
}
@media(min-width:701px) and (max-height:500px){
 html.astra-refined body #setup[data-world] .stage-bg{padding:8px 16px 12px!important}
 html.astra-refined #setup .stage-header{margin-bottom:8px}
 html.astra-refined body #setup[data-world] .team-world{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:22px;max-width:1100px}
 html.astra-refined body #setup[data-world] .team-world__art{height:255px!important;min-height:0!important;margin:0!important;max-height:none}
 html.astra-refined body #setup[data-world] .setup-card{padding:10px 0 0!important;border:0!important;border-radius:0!important;outline:0;box-shadow:none!important;background:transparent!important}
 html.astra-refined #setup .team-world__intro{display:none}
 html.astra-refined body #setup[data-world] .setup-card h3{font-size:21px!important;margin-bottom:16px!important;text-align:center}
 html.astra-refined body #setup[data-world] .team-rng__cols{gap:12px!important;grid-template-columns:1fr 1fr!important}
 html.astra-refined body #setup[data-world] .rng-col{padding:14px 12px!important}
 html.astra-refined body #setup[data-world] .team-world__name-field input{font-size:16px!important;min-height:44px!important}
 html.astra-refined #setup .team-world__name-field label{font-size:10px;margin-bottom:8px!important}
 html.astra-refined #setup .team-world__continue{background:var(--world-bg)!important;position:static;margin-top:6px!important;padding-top:8px!important;border:0}
 html.astra-refined #setup .team-world__continue>span{display:none}
 html.astra-refined #setup .classic-number,html.astra-refined #setup .hex-faction-crest{display:none!important}
 html.astra-refined #setup .classic-billing{inset:8px!important;padding:25px 8px!important}
 .classic-billing>strong{font-size:30px}.classic-billing__names{grid-template-columns:1fr;gap:4px}.classic-billing__names i{font-size:11px}.classic-billing__foot{display:none}
 html.astra-refined #setup .billing-light{font-size:14px;min-height:44px;padding:8px}
 html.astra-refined body #setup[data-world="heist"] .team-world__poster{padding:16px}
 html.astra-refined body #setup[data-world="heist"] .team-world__name{font-size:36px;margin:10px 0}
 html.astra-refined body #setup[data-world="heist"] .team-vault{inset:100px 40px 12px;width:auto;gap:5px}
 html.astra-refined body #setup[data-world="heist"] .team-vault-door{height:135px;max-height:135px}
 .team-vault__caption,.team-vault__crews{display:none}
 html.astra-refined body #setup[data-world="heist"] .heist-file{margin:-14px -12px 12px;padding:8px;font-size:8px}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign>strong{font-size:36px}.vegas-sign__suits{display:none}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign>span{font-size:8px}
 html.astra-refined body #setup[data-world="vegas"] .vegas-sign>.team-play-button{margin-top:5px;min-height:44px;padding:8px;font-size:10px}
 .team-dealt-cards{inset:120px 18px 5px;justify-content:space-between}.team-dealt-card{width:74px;height:120px}.team-card-face{padding:8px}.team-card-face strong{font-size:12px}.team-card-face small{font-size:8px}
 html.astra-refined body #setup[data-world="vegas"] .team-rng__cols{margin-top:30px}
 html.astra-refined body #setup[data-world="vegas"] .vegas-chip{width:30px;height:30px;top:-20px;left:calc(50% - 15px);font-size:12px;border-width:3px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__poster{padding:45px 8px 0;max-width:100%}
 html.astra-refined body #setup[data-world="carnival"] .team-world__name{font-size:30px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__tagline{display:none}
 html.astra-refined body #setup[data-world="carnival"] .rng-col{padding-top:32px!important}.carnival-admit{display:none!important}
 html.astra-refined body #setup[data-world="hex"] .team-world__poster{padding:10px 0;max-width:100%}
 html.astra-refined body #setup[data-world="hex"] .team-world__name{font-size:40px;margin:8px 0}
 html.astra-refined body #setup[data-world="hex"] .team-world__tagline{display:none}
 html.astra-refined body #setup[data-world="hex"] .hex-muster{top:85px;height:165px;width:100%}
 .hex-team-hint{display:none}
 html.astra-refined #setup .hex-team-selector{font-size:11px}
 html.astra-refined #setup[data-rosters="open"] .team-world{align-items:start}
 html.astra-refined #setup .team-roster-toggle{margin-top:8px}
 html.astra-refined #setup .team-world__continue{padding-top:4px!important}
}

/* The midway wheel stays inside the existing scene, including compact phone layouts. */
.carnival-midway{display:none}
html.astra-refined body #setup[data-world="carnival"] .carnival-midway{display:flex;position:absolute;right:4%;top:22px;bottom:6px;width:180px;flex-direction:column;align-items:center;justify-content:center;gap:4px;z-index:2}
html.astra-refined body #setup[data-world="carnival"] .team-world__image{opacity:.16}
html.astra-refined body #setup[data-world="carnival"] .team-world__poster{max-width:65%}
html.astra-refined body #setup .carnival-wheel{position:relative;display:block;flex-shrink:1;width:auto;height:calc(100% - 35px);max-height:132px;min-height:70px;aspect-ratio:1;border:0;padding:0;background:transparent;pointer-events:none;isolation:isolate}
.carnival-wheel__rim{position:absolute;inset:0;border-radius:50%;border:5px solid #f1d891;outline:2px solid #41274d;box-shadow:0 5px 0 #130e1d,0 0 0 5px #714581;overflow:hidden}
.carnival-wheel__disc{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from -22.5deg,#c6fc6a 0deg 45deg,#9656c7 45deg 90deg)}
.carnival-wheel__disc:after{content:'';position:absolute;inset:6px;border:2px dashed #351d47;border-radius:50%}
.carnival-wheel__hub{position:absolute;inset:33%;display:grid;place-items:center;border-radius:50%;background:#29183e;color:#f1d891;border:2px solid #f1d891;font:700 22px Georgia,serif}
.carnival-wheel__pointer{position:absolute;top:-4px;left:calc(50% - 7px);width:14px;height:22px;background:#fff0be;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 2px 1px #241430)}
.carnival-wheel__caption{font:600 8px Archivo,Arial,sans-serif;letter-spacing:.15em;color:#eee0f4;margin-top:3px}
.carnival-wheel__team{font:700 12px Archivo,Arial,sans-serif;color:#c6fc6a;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.carnival-midway[data-team="1"] .carnival-wheel__team{color:#e2bdff}
@media(max-width:800px){
 html.astra-refined body #setup[data-world="carnival"] .carnival-midway{width:112px;right:8px;top:26px;bottom:8px}
 html.astra-refined body #setup[data-world="carnival"] .team-world__poster{max-width:calc(100% - 130px)}
 html.astra-refined body #setup[data-world="carnival"] .team-world__name{font-size:clamp(24px,5.2vw,34px)}
 .carnival-wheel__team{font-size:10px}
}
@media(min-width:701px) and (max-height:500px){
 html.astra-refined body #setup[data-world="carnival"] .team-world__poster{max-width:100%;padding-top:24px}
 html.astra-refined body #setup[data-world="carnival"] .carnival-midway{top:96px;bottom:8px;right:calc(50% - 65px);width:130px}
 html.astra-refined body #setup .carnival-wheel{max-height:103px}
}
