.mode-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.chatland-modes .mode-heading{grid-column:2;grid-row:1;align-self:end;margin-bottom:5px}
.chatland-modes .mode-heading h4{margin:0;font-size:17px!important}
body:not(.obs-page) .try-game{padding:6px 10px;font-size:11px!important;white-space:nowrap;border-color:#21c8d63d!important;color:#7de4e8!important;background:#21c8d60a!important}
body:not(.obs-page) .try-game:hover{background:#21c8d620!important;border-color:#21c8d67a!important}
.chatland-modes article{padding-right:15px!important}
body:not(.obs-page) .game-tab[aria-selected=true]{background:#21c8d617!important;border-color:#21c8d655!important;color:#7de4e8!important}
.game-panel[hidden],.demo-controls[hidden]{display:none!important}
.game-canvas[hidden]{display:none!important}
.game-panel{padding:14px 12px 22px}
.game-canvas{background:transparent;min-height:0!important}
.winner-card.wheel-active{align-self:start}
.wheel-active .game-panel{flex:none;justify-content:flex-start;padding:10px 12px 18px}
.wheel-active .game-description{display:none!important}
.wheel-active .game-canvas{aspect-ratio:1}
.wheel-active .game-status{margin-top:0}
.wheel-active .game-progress{margin:8px 0}
.game-description{border:1px solid #a2bdce15;border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:12px}
.game-result{font-weight:600;font-size:24px;line-height:1.4;color:#7de4e8;min-height:0}
.game-result:empty{display:none}
.demo-dialog{width:min(700px,calc(100vw - 24px));max-width:700px;padding:20px;border-radius:18px;max-height:calc(100dvh - 24px);overflow:auto}
.demo-dialog::backdrop{background:#020810cc;backdrop-filter:blur(8px)}
.demo-dialog .modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:12px}
.demo-dialog h2{font-size:20px;margin:0}
.demo-dialog .close{width:32px;height:32px;flex:none;font-size:22px!important;padding:0}
.demo-note{color:#94a9b9;font-size:12px;line-height:1.5;margin:2px 0 12px}
.demo-dialog iframe{display:block;width:100%;height:600px;border:0;background:transparent;border-radius:12px}
.demo-controls{padding:0 20px 22px;text-align:center}
.demo-controls p{color:#819bac;font-size:11px;margin:12px 0}
.demo-controls #demoOutcome{font-size:20px;font-weight:600;color:#7de4e8;margin:12px 0;overflow-wrap:anywhere}
.demo-controls button{padding:10px 18px}
body.raffle-demo{min-height:0;background:#111a22!important}
.raffle-demo .space-scene,.raffle-demo header,.raffle-demo .control-card,.raffle-demo .participants-card,.raffle-demo .site-footer{display:none!important}
.raffle-demo .dashboard{display:block;padding:0!important;margin:0!important;max-width:none;min-height:0!important}
body.raffle-demo .winner-card{border:0!important;background:transparent!important;min-height:0!important;box-shadow:none!important}
.raffle-demo .winner-card .card-head{display:none}
.raffle-demo .game-panel{padding:0 8px 0}
.raffle-demo .game-canvas{max-width:520px}
.raffle-demo .game-description{display:none}
.raffle-demo .game-progress{margin:4px 0}
.raffle-demo .premium-wheel{min-height:0;max-width:520px;aspect-ratio:1.14}
.raffle-demo .wheel-quality{margin-top:8px}
.raffle-demo .game-status{margin-top:0}
.raffle-demo .game-result{display:none}
@media(max-width:700px){
 .chatland-modes article{grid-template-columns:72px minmax(0,1fr)!important;column-gap:10px!important;padding:12px!important}
 .chatland-modes article .game-art{width:72px!important;height:90px!important;align-self:center}
 .chatland-modes .mode-heading{flex-wrap:wrap;gap:8px;align-self:center}
 .chatland-modes article p{font-size:11px!important;line-height:1.65}
 .chatland-modes .mode-heading h4{font-size:16px!important}
 .demo-dialog{padding:12px}
 
 .demo-controls #demoOutcome{font-size:17px}
}

/* The archipelago fills the panel; camera fitting uses the actual viewport. */
.winner-card:has(.island-scene:not([hidden])){align-self:start}
.premium-wheel.island-scene{aspect-ratio:1.08;min-height:0;background:#157e97;border:1px solid #89e3d333}
.island-scene[hidden]{display:none!important}
.raffle-demo .premium-wheel.island-scene{max-width:none;aspect-ratio:1.24}
@media(max-width:630px){.premium-wheel.island-scene{aspect-ratio:.94}}

/* The rocket flight stays in the existing game panel. */
.winner-card:has(.rocket-race:not([hidden])){align-self:start}
.premium-wheel.rocket-race{aspect-ratio:1000/880;min-height:0;border:1px solid #75d8e444;border-radius:18px;overflow:hidden;background:#8ec7d2}
.rocket-race canvas{width:100%;height:100%;display:block}
.rocket-race[hidden]{display:none!important}
.raffle-demo .premium-wheel.rocket-race{max-width:none;aspect-ratio:1000/880}

.roulette-dialog{width:min(900px,calc(100vw - 32px));box-sizing:border-box;padding:32px;border:1px solid #7697aa33;border-radius:20px;background:radial-gradient(ellipse at top,#18384355,transparent 70%),#141c24;color:#e8f3f7;max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 25px 100px #0009}.roulette-dialog::backdrop{background:#020810cf;backdrop-filter:blur(8px)}.roulette-dialog h2{text-align:center;font-size:28px;color:#86e5e9;margin:0 0 30px}.roulette-viewport{position:relative;overflow:hidden;border:1px solid #7195a440;border-radius:14px;background:#0c151e}.roulette-track{display:flex;width:max-content;will-change:transform}.roulette-card{flex:none;width:160px;height:180px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border-right:1px solid #7394a226;padding:14px}.roulette-avatar{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:linear-gradient(145deg,#268c9f,#164c62);border:2px solid #5ee0e675;box-shadow:0 0 22px #21c8d622;font-size:22px;font-weight:700}.roulette-card strong{font-size:13px;width:100%;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roulette-pointer{position:absolute;top:4px;left:50%;transform:translateX(-50%);color:#f1ae67;font-size:31px;font-weight:700;text-shadow:0 0 15px #f1ae6777;pointer-events:none}.roulette-result{text-align:center;color:#83e1e8;font-size:21px;font-weight:600;overflow-wrap:anywhere;margin:20px 0;min-height:28px}.roulette-actions{display:flex;justify-content:center;gap:12px}.roulette-actions button{padding:13px 20px!important;border-radius:10px!important}.roulette-actions #rouletteSpin{background:#1bbacb!important;color:#07212b!important;border-color:#40d4df!important;font-weight:600}.roulette-actions button:disabled{opacity:.5}.raffle-demo .roulette-dialog{width:calc(100vw - 20px);padding:20px}@media(max-width:600px){.roulette-dialog{padding:20px 12px}.roulette-dialog h2{font-size:24px}.roulette-actions{flex-wrap:wrap}}

/* Every demo uses the available dialog height, including its controls. */
.demo-dialog[open]{display:flex;flex-direction:column;box-sizing:border-box;height:min(760px,calc(100dvh - 24px));overflow:hidden}
.demo-dialog .modal-head,.demo-dialog .demo-note{flex:none}
.demo-dialog .modal-head h2{min-width:0}
.demo-dialog iframe{flex:1;min-height:0;height:100%!important}
body.raffle-demo{height:100dvh;overflow:hidden}
.raffle-demo .dashboard{height:100%}
body.raffle-demo .winner-card{height:100%;padding:0!important;box-sizing:border-box;overflow:hidden}
.raffle-demo .game-panel,.raffle-demo .winner-card.wheel-active .game-panel{flex:1;min-height:0;justify-content:center;padding:8px 8px 0}
.raffle-demo .game-canvas,.raffle-demo .premium-wheel.island-scene,.raffle-demo .premium-wheel.rocket-race{width:var(--demo-scene-width,240px)!important;max-width:100%!important;flex:none;margin:0 auto}
.raffle-demo .game-canvas{height:auto!important}
.raffle-demo .premium-wheel.island-scene{aspect-ratio:1.24!important}
.raffle-demo .game-status{margin:4px 0 0;min-height:18px}
.raffle-demo .demo-controls{flex:none;padding:4px 12px 12px}
.raffle-demo .demo-controls p{margin:4px 0}
.raffle-demo .demo-controls #demoOutcome{margin:4px 0;font-size:18px}
.raffle-demo .demo-controls #demoOutcome:empty{display:none}
.raffle-demo:has(.roulette-dialog[open]) .demo-controls{display:none}
.raffle-demo .roulette-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:18px 12px;margin:auto;overflow:hidden}
.raffle-demo .roulette-dialog h2{font-size:24px;margin:0 0 14px}
.raffle-demo .roulette-card{height:clamp(90px,32dvh,150px);gap:10px}
.raffle-demo .roulette-avatar{width:48px;height:48px;font-size:18px}
.raffle-demo .roulette-result{font-size:18px;margin:10px 0;min-height:24px}
.raffle-demo .roulette-actions button{padding:10px 14px!important}
@media(max-height:480px){.demo-dialog[open]{padding:10px}.demo-dialog h2{font-size:16px}.demo-dialog .modal-head{padding-bottom:6px}.demo-note{font-size:10px;margin-bottom:6px}.raffle-demo .roulette-dialog{padding:10px}.raffle-demo .roulette-dialog h2{font-size:20px;margin-bottom:8px}}
