/* Elsoor Diwaniya: one light illustrated world, with distinct materials for each game. */
:root{--dw-ink:#183E46;--dw-teal:#176C65;--dw-coral:#BE3B20;--dw-sand:#FFF4DE;--dw-line:#D9C7A9;--dw-shadow:0 5px 0 #183e4618,0 12px 28px #183e4612}
.v2-tone-blue{--v2-tone:#315DAA}.v2-tone-violet{--v2-tone:#805181}.v2-tone-rose{--v2-tone:#BE5477}.v2-tone-sand{--v2-tone:#9A764B}
.v2-metro-roads{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.v2-metro-touch-board{position:relative;height:340px;direction:ltr;border:3px solid #bca370;border-radius:24px;background:linear-gradient(150deg,#d2ece5,#fff4d8);overflow:hidden}
.v2-metro-station{position:absolute;transform:translate(-50%,-50%);width:72px;display:grid;justify-items:center;gap:3px;pointer-events:none;color:#183e46}
.v2-metro-station-icon{width:28px;height:22px;border:3px solid #176c65;border-radius:7px;background:#fff8e9;box-shadow:0 3px 0 #183e4622}
.v2-metro-station-name{font-size:12px;text-align:center;line-height:1.15;unicode-bidi:plaintext}
.v2-metro-route-handle{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%;display:grid;place-items:center;background:#f4c764;color:#183e46;border:3px solid #9a6700;z-index:3}
.v2-metro-route-handle .v2-action-label{font-size:26px;place-self:center}
html .v2-game-surface .v2-metro-route-handle:hover:not(:disabled),html .v2-game-surface .v2-metro-route-handle:active:not(:disabled){transform:translate(-50%,-50%);box-shadow:inset 0 2px 4px #9a670055}
.v2-metro-new-line{stroke-dasharray:1200;animation:metro-line-build .35s ease-out both}
@keyframes metro-line-build{from{stroke-dashoffset:1200}to{stroke-dashoffset:0}}
.v2-metro-passengers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
.v2-metro-passenger{padding:7px;border:1px solid #c9b994;border-radius:10px;background:#fff9e9;color:#183e46;font-size:clamp(13px,1.1vw,22px);text-align:center;unicode-bidi:plaintext}
html .v2-game-surface[data-mode=tv][data-game=kuwait_metro] .v2-economy-map{min-block-size:0;block-size:100%;direction:ltr;background:linear-gradient(150deg,#d3e9df,#fceac8);border:4px solid #bca370}
html .v2-game-surface[data-game=kuwait_metro] .v2-economy-map::before{display:none}
html .v2-game-surface[data-game=kuwait_metro] .v2-map-node{inset-inline-start:auto;left:var(--v2-x);transform:translate(-50%,-50%);min-width:80px;max-width:130px;background:#fff9e9;border:3px solid #176c65;z-index:2}
html .v2-game-surface[data-game=kuwait_metro] .v2-map-node-label{font-size:clamp(15px,1.4vw,25px);unicode-bidi:plaintext}
.v2-fleet-boards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:0}
.v2-fleet-board-panel{display:flex;flex-direction:column;gap:8px;min-height:0;min-width:0}
.v2-fleet-board-panel .v2-hidden-grid{min-height:0;max-height:100%;flex:1;background:#d1eceb;border:5px solid #b49760}
.v2-fleet-board-label{font-size:clamp(16px,1.7vw,30px);text-align:center}
.v2-fleet-private-inspect summary{cursor:pointer;margin-bottom:12px}
html .v2-game-surface[data-mode=tv] .v2-code-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
html .v2-game-surface[data-mode=tv] .v2-code-row{grid-template-columns:1fr;padding:8px;gap:4px}
html .v2-game-surface[data-mode=tv] .v2-code-pegs{flex-wrap:nowrap;justify-content:center;gap:6px}
html .v2-game-surface[data-mode=tv] .v2-code-feedback{justify-content:center}
html .v2-game-surface[data-mode=tv] .v2-code-row .v2-badge{min-block-size:24px;padding:4px 8px;font-size:clamp(12px,1vw,18px)}
html .v2-game-surface[data-mode=tv] .v2-code-reveal{display:flex;align-items:center;justify-content:center;padding:8px;gap:20px}
html .v2-game-surface[data-mode=tv] .v2-code-peg .v2-code-glyph{inline-size:clamp(24px,2vw,60px);block-size:clamp(24px,2vw,60px)}
html .v2-game-surface[data-mode=tv] .v2-code-peg{min-block-size:44px;border-width:2px;padding:2px}
html .v2-game-surface[data-mode=tv] .v2-code-peg-label{font-size:clamp(9px,.8vw,22px);line-height:1.1}
html .v2-game-surface[data-mode=tv] .v2-code-reveal{margin-block-end:4px;padding:6px}
html .v2-game-surface[data-mode=tv][data-family=codeBoard]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;gap:8px}
html .v2-game-surface[data-mode=tv][data-family=codeBoard] .v2-code-wall{display:flex;flex-direction:column;min-height:0;gap:6px}
html .v2-game-surface[data-mode=tv][data-family=codeBoard] .v2-code-board{flex:1;min-height:0;grid-template-columns:repeat(var(--code-clue-columns,3),minmax(0,1fr));grid-template-rows:repeat(var(--code-clue-rows),minmax(0,1fr));align-content:stretch}
html .v2-game-surface[data-mode=tv][data-family=codeBoard] .v2-code-row{min-height:0;grid-template-rows:auto minmax(0,1fr) auto}
html .v2-game-surface[data-mode=tv][data-family=codeBoard] .v2-code-pegs{align-items:center;min-height:0}
html .v2-game-surface[data-mode=tv][data-family=codeBoard] .v2-code-peg .v2-code-glyph{inline-size:clamp(24px,4vh,96px);block-size:clamp(24px,4vh,96px)}
html .v2-game-surface[data-mode=tv][data-family=codeBoard] .v2-code-row-number{font-size:clamp(14px,1.4vw,42px)}
html .v2-game-surface[data-mode=tv][data-family=codeBoard] .v2-code-row .v2-badge{font-size:clamp(12px,1.2vw,36px)}
html .v2-game-surface[data-mode=controller-context][data-family=codeBoard] .v2-code-board{max-block-size:220px;overflow:auto;overscroll-behavior:contain}
html .v2-game-surface[data-mode=controller-context][data-family=codeBoard] .v2-code-row{grid-template-columns:1fr;gap:4px;padding:8px}
html .v2-game-surface[data-mode=controller-context][data-family=codeBoard] .v2-code-pegs{flex-wrap:nowrap;gap:4px}
html .v2-game-surface[data-mode=controller-context][data-family=codeBoard] .v2-code-peg{flex:1 1 0;min-inline-size:30px;min-block-size:42px;border-width:2px}
html .v2-game-surface[data-mode=controller-context][data-family=codeBoard] .v2-code-glyph{inline-size:24px;block-size:24px}
html .v2-game-surface[data-mode=controller-context][data-family=codeBoard] .v2-code-peg-label{font-size:9px;line-height:1.1}
html .v2-game-surface[data-mode=controller-context][data-family=codeBoard] .v2-code-feedback{justify-content:flex-start}
.v2-code-idle{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;padding:20px;font-size:clamp(18px,2.5vw,72px)}
.v2-code-sealed{display:flex;justify-content:center;gap:clamp(8px,1.5vw,44px)}
.v2-code-seal{display:grid;place-items:center;inline-size:clamp(40px,7vw,180px);block-size:clamp(48px,8vw,200px);border:3px solid #a58b5f;border-radius:20px;color:#a58b5f;background:#fff4de;animation:code-secret-breathe 2s ease-in-out infinite alternate}
@keyframes code-secret-breathe{from{transform:translateY(0);opacity:.65}to{transform:translateY(-3px);opacity:1}}
@media(prefers-reduced-motion:reduce){.v2-code-seal{animation:none}}
#liveHostConsent{max-width:min(680px,90vw);padding:32px;border:2px solid #d9c7a9;border-radius:24px;background:#fffaf0;color:#183e46;font-size:20px;line-height:1.5}#liveHostConsent::backdrop{background:#183e4688}#liveHostConsent h2{font-size:30px;margin-bottom:16px}#liveHostConsent .host-actions{margin-top:24px}
html body{background:#FFF4DE;color:var(--dw-ink)}
html body.host-page{background:linear-gradient(#fff8e9d9,#e7f2e5c9),url('/diwaniya-courtyard.jpg') center/cover;isolation:isolate}
html body.host-page[data-world=sea]{background:linear-gradient(#dff8f1d9,#cae8e3de),url('/diwaniya-courtyard.jpg') center/cover}
html .host-brand b,html .controller-brand b{color:var(--dw-ink)}
html .host-topbar{min-height:40px;flex-shrink:0}
html .host-topbar .fullscreen{position:static;flex:0 0 44px;width:44px;height:44px;min-width:44px;padding:0}
html .host-topbar .lang-toggle{border-color:var(--dw-line);border-radius:14px;background:#fffdf3}
html .host-grid{flex:1;min-height:0}
html .host-grid>.stage{border:2px solid #fffaf0;border-radius:30px;background:#fffdf5ec;box-shadow:0 12px 40px #153f4920;position:relative;isolation:isolate}
html .host-grid>.stage::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 65px #ddb56a16;z-index:-1}
html .host-page #stage{container-type:size}
/* Rule text must fit inside its card, not merely keep the outer cards inside
   the stage. Omit redundant preamble so the actual three rules stay readable. */
html .host-page #stage .basra-rules{grid-template-rows:auto auto minmax(0,1fr) auto;gap:clamp(6px,1.2cqh,18px)}
html .host-page #stage .basra-rules>.eyebrow,html .host-page #stage .basra-rules>.stage-copy{display:none}
html .host-page #stage .basra-rules>h1{font-size:clamp(26px,5cqh,90px);line-height:1.05}
html .host-page #stage .basra-rules>.response-meter{font-size:clamp(12px,2.5cqh,36px);line-height:1.15}
html .host-page #stage .basra-rules .tv-rule-list{gap:clamp(8px,1.2cqw,30px)}
html .host-page #stage .basra-rules .tv-rule{padding:clamp(8px,1cqw,28px);gap:clamp(6px,1.2cqh,20px)}
html .host-page #stage .basra-rules .tv-rule b{width:clamp(24px,5cqh,72px);height:clamp(24px,5cqh,72px);flex-basis:clamp(24px,5cqh,72px);font-size:clamp(14px,3cqh,40px)}
html .host-page #stage .basra-rules .tv-rule span{font-size:clamp(14px,2.9cqh,38px);line-height:1.15}
/* Basra is a landscape table even on compact TV receivers, never a phone
   column stretched vertically. All public cards share the available floor. */
html .host-page[data-game=basra] #stage .basra-show{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:center;gap:clamp(14px,2.5cqw,64px);height:auto;min-height:0;flex:1}
html .host-page[data-game=basra] #stage .basra-table{box-sizing:border-box;width:100%;height:calc(100cqh - 62px);max-height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;justify-items:center;gap:clamp(6px,1.4cqh,26px);padding:clamp(12px,1.8cqw,44px)}
html .host-page[data-game=basra] #stage .basra-floor{--floor-height:calc(100cqh - 154px);height:100%;min-height:0;gap:6px}
html .host-page[data-game=basra] #stage .basra-floor .tv-playing-card{width:min(100%,calc((var(--floor-height) - (var(--floor-rows) - 1) * 6px) / var(--floor-rows) * .7),180px);max-height:100%}
html .host-page[data-game=basra] #stage .basra-floor>strong{font-size:clamp(24px,4cqw,100px);line-height:1.05}
html .host-page[data-game=basra] #stage .basra-floor>strong small{font-size:clamp(12px,1.3cqw,32px)}
html .host-page[data-game=basra] #stage .basra-deck{padding:clamp(5px,.5cqw,14px) clamp(8px,.9cqw,24px);font-size:clamp(12px,1.4cqw,36px)}
html .host-page[data-game=basra] #stage .basra-copy{display:flex;flex-direction:column;justify-content:center;gap:clamp(7px,1.5cqh,30px);min-width:0;min-height:0;text-align:start}
html .host-page[data-game=basra] #stage .basra-copy :is(h1,p){margin:0;max-width:none;overflow-wrap:anywhere}
html .host-page[data-game=basra] #stage .basra-copy h1{font-size:clamp(26px,4cqw,100px);line-height:1.08}
html .host-page[data-game=basra] #stage .basra-copy .stage-copy{font-size:clamp(15px,1.8cqw,44px);line-height:1.2}
html .host-page[data-game=basra] #stage .eyebrow{font-size:clamp(12px,1.25cqw,30px);margin:0}
html .host-page[data-game=basra] #stage .dama-rule-chips{gap:clamp(5px,.65cqw,16px);margin:0}
html .host-page[data-game=basra] #stage .dama-rule-chips span{font-size:clamp(9px,1cqw,25px);padding:clamp(4px,.5cqw,12px)}
html .host-page[data-game=basra] #stage .connect-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(6px,1cqw,24px);margin:0}
html .host-page[data-game=basra] #stage .basra-team{padding:clamp(7px,.9cqw,22px);min-width:0;overflow-wrap:anywhere}
html .host-page[data-game=basra] #stage .basra-team span{font-size:clamp(12px,1.4cqw,34px)}
html .host-page[data-game=basra] #stage .basra-team b{font-size:clamp(20px,2.5cqw,62px)}
html .host-page[data-game=basra] #stage .basra-team small{font-size:clamp(9px,.9cqw,23px)}
html .host-page[data-game=basra] #stage .basra-roster{white-space:normal;font-size:clamp(12px,1.2cqw,30px);line-height:1.2}
/* Dama is a TV playfield, not the narrow-phone stacked breakpoint. Keep the
   public board and turn/score panel in the same height-bounded composition. */
html .host-page #stage>.dama-show{grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);gap:clamp(16px,3cqw,72px);align-items:center}
html .host-page .tv-dama-board{width:min(100%,calc(100cqh - 70px));height:auto;max-width:100%;max-height:calc(100cqh - 70px);margin:0;justify-self:center;aspect-ratio:1}
html .host-page .dama-copy{min-width:0;text-align:start}
html .host-page .dama-copy h1{font-size:clamp(24px,7cqh,112px);line-height:1.05;margin:8px 0}
html .host-page .dama-copy .stage-copy{font-size:clamp(16px,3.6cqh,56px);line-height:1.2;margin:8px 0}
html .host-page .dama-copy .eyebrow{font-size:clamp(11px,2.6cqh,36px);margin:0}
html .host-page .dama-rule-chips{gap:5px;margin:10px 0}
html .host-page .dama-rule-chips span{font-size:clamp(9px,1.9cqh,28px);padding:5px 8px}
html .host-page .dama-player{min-width:0;padding:clamp(8px,2cqh,28px);font-size:clamp(12px,2.7cqh,42px)}
html .host-page .dama-player b{font-size:clamp(20px,4cqh,62px)}
html .host-page .dama-player small{font-size:clamp(10px,2cqh,30px)}
@media(max-height:540px){html[lang=ar] .host-page .dama-copy .stage-copy{margin:6px 0}html[lang=ar] .host-page .dama-rule-chips{margin:6px 0}html[lang=ar] .host-page .dama-player{padding:6px}}
html .host-page #stage>[class$="-show"]{height:auto;flex:1;min-height:0}
html .host-page :is(.connect-board,.tv-dama-board,.carrom-tv-board,.royal-tv-board,.world-tv-board,.nine-tv-board){max-height:calc(100cqh - 60px);max-width:calc(100cqh - 60px);width:100%;min-height:0;justify-self:center}
html .host-page .connect-board{max-width:calc((100cqh - 60px) * 7 / 6)}
html .host-page .domna-quiet-snapshot .tv-domino{animation:none}
html .host-page[data-game=domna] .domna-chain{min-width:0;min-height:0;flex-shrink:0}
html .host-page[data-game=domna] .domna-chain .tv-domino{min-width:0;min-height:0;max-width:none;max-height:none}
html .host-page[data-game=domna] .tv-domna-fragment{grid-template-rows:auto auto minmax(0,1fr) auto;gap:clamp(6px,1.2cqh,24px)}
html .host-page[data-game=domna] .tv-domna-fragment .stage-head{margin:0;min-height:0}
html .host-page[data-game=domna] .domna-heading{height:auto;min-height:0;gap:16px}
html .host-page[data-game=domna] .domna-heading .eyebrow{display:none}
html .host-page[data-game=domna] .domna-heading h1{margin:0;font-size:clamp(26px,4cqw,100px);line-height:1.05}
html .host-page[data-game=domna] .domna-heading .stage-copy{margin:4px 0 0;font-size:clamp(15px,1.8cqw,44px);line-height:1.2}
html .host-page[data-game=domna] .domna-boneyard{flex-basis:auto;grid-template-columns:auto;gap:2px;padding:6px 12px;border-radius:12px;text-align:center}
html .host-page[data-game=domna] .domna-boneyard>span{display:none}
html .host-page[data-game=domna] .domna-boneyard>b{font-size:clamp(24px,3cqw,72px)}
html .host-page[data-game=domna] .domna-boneyard>small{font-size:clamp(9px,.9cqw,22px)}
html .host-page[data-game=domna] .domna-scores{display:grid;grid-template-columns:repeat(var(--domna-players,2),minmax(0,1fr));gap:clamp(6px,1cqw,24px);min-height:0}
html .host-page[data-game=domna] .domna-player{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:'avatar name score' 'avatar tiles score';align-items:center;gap:2px 8px;min-height:0;padding:clamp(6px,.8cqw,20px)}
html .host-page[data-game=domna] .domna-seat-avatar{grid-area:avatar;width:clamp(30px,4cqh,64px);height:clamp(30px,4cqh,64px)}
html .host-page[data-game=domna] .domna-seat-avatar svg{width:100%;height:100%}
html .host-page[data-game=domna] .domna-player>span{grid-area:name;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(13px,1.5cqw,38px)}
html .host-page[data-game=domna] .domna-player>b{grid-area:score;font-size:clamp(18px,2cqw,52px);line-height:1.1;white-space:nowrap}
html .host-page[data-game=domna] .domna-player>small{grid-area:tiles;font-size:clamp(10px,1.1cqw,28px)}
/* Four is a landscape table at every TV tier. The generic <900px phone
   breakpoint must not stack its board and copy inside a fixed-height stage. */
html .host-page[data-game=four_in_a_row] #stage .connect-show{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:center;gap:clamp(16px,3cqw,80px);height:auto;min-height:0;flex:1}
html .host-page[data-game=four_in_a_row] #stage .connect-board{box-sizing:border-box;width:min(100%,calc((100cqh - 66px) * 7 / 6));height:auto;aspect-ratio:7/6;max-height:100%;max-width:100%;grid-template-rows:repeat(6,minmax(0,1fr));gap:clamp(5px,.8cqw,24px);padding:clamp(10px,1.3cqw,36px);margin:0;align-self:center;justify-self:center}
html .host-page[data-game=four_in_a_row] #stage .connect-copy{display:flex;flex-direction:column;justify-content:center;gap:clamp(6px,1.4cqh,28px);min-height:0;text-align:start}
html .host-page[data-game=four_in_a_row] #stage .connect-copy :is(h1,p){margin:0;max-width:none;overflow-wrap:anywhere}
html .host-page[data-game=four_in_a_row] #stage .connect-copy h1{font-size:clamp(26px,4.4cqw,116px);line-height:1.08}
html .host-page[data-game=four_in_a_row] #stage .connect-copy .stage-copy{font-size:clamp(16px,2cqw,52px);line-height:1.2}
html .host-page[data-game=four_in_a_row] #stage .connect-copy .eyebrow{font-size:clamp(12px,1.3cqw,32px)}
html .host-page[data-game=four_in_a_row] #stage .connect-mark{display:none}
html .host-page[data-game=four_in_a_row] #stage .connect-scores{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(6px,1cqw,24px)}
html .host-page[data-game=four_in_a_row] #stage .connect-player{padding:clamp(6px,.9cqw,22px);min-width:0;overflow-wrap:anywhere}
html .host-page[data-game=four_in_a_row] #stage .connect-player span{font-size:clamp(14px,1.6cqw,42px)}
html .host-page[data-game=four_in_a_row] #stage .connect-player b{font-size:clamp(20px,2.6cqw,68px)}
html .host-page[data-game=four_in_a_row] #stage .connect-player small{font-size:clamp(9px,.9cqw,24px)}
html .host-page[data-game=four_in_a_row] #stage .connect-slot{animation:none}
html .host-page[data-game=four_in_a_row] #stage .connect-slot.fresh-drop{animation:disc-drop .32s cubic-bezier(.2,.9,.35,1.2) both}
html .host-page[data-game=four_in_a_row] #stage .connect-board.fresh-win .connect-slot.winner{animation:winner-pulse .7s ease-in-out 2 alternate}
@media(prefers-reduced-motion:reduce){html .host-page[data-game=four_in_a_row] #stage .connect-slot.fresh-drop,html .host-page[data-game=four_in_a_row] #stage .connect-board.fresh-win .connect-slot.winner{animation:none}}
html .host-page .souq-board{width:min(100%,calc((100cqh - 60px) * 1.46));max-height:calc(100cqh - 60px);justify-self:center}
html .host-page :is(.hand-table,.baraziliya-tv-table,.basra-table,.kout-table){min-height:0;height:100%;max-height:calc(100cqh - 48px)}
html .host-page .phase-pill{background:#FCE2BF;color:#80420E;border-radius:10px;font-weight:850;letter-spacing:.05em}
html .host-page .stage h1{font-weight:800;letter-spacing:-.045em;color:var(--dw-ink)}
html .host-page .tv-narrator{background:#fff9eadb;border:1px solid var(--dw-line);border-radius:14px;padding:10px 16px;min-height:40px}
html .host-page .response-meter{background:#e8f2e5;border-radius:14px;color:#245B51;font-weight:650}
.diwaniya-cast{display:flex;order:3;justify-content:center;gap:10px;flex:0 0 auto;min-height:62px;max-height:88px;overflow:auto;scrollbar-width:thin}
.diwaniya-cast[hidden]{display:none}
/* Dense-roster :has() rules below must never override an explicitly hidden
   duplicate roster owned by a dedicated game's public stage. */
html .host-page .diwaniya-cast[hidden]{display:none}
.diwaniya-seat{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:8px;align-items:center;min-width:100px;max-width:200px;padding:5px 12px 5px 5px;background:#fffdf3;border:2px solid #d5dfd4;border-radius:18px;box-shadow:0 3px 0 #183e4612}
.diwaniya-seat>span{grid-row:1/3}.diwaniya-avatar{width:48px;height:48px;display:block}
.diwaniya-seat strong{font-size:clamp(13px,1.25vw,22px);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.diwaniya-seat>b{font-size:clamp(13px,1.2vw,20px);font-variant-numeric:tabular-nums;color:#38685c}
.diwaniya-seat[data-active=true]{border-color:#c55729;background:#fff0d7}
.diwaniya-seat[data-connected=false]{opacity:.55}
.diwaniya-beat{position:fixed;left:50%;bottom:13%;transform:translateX(-50%);opacity:0;pointer-events:none;z-index:100;padding:12px 24px;border-radius:18px;background:#173f46;color:#fff7e6;font-weight:900;font-size:clamp(22px,3vw,48px);box-shadow:0 8px 0 #0c22292b;white-space:nowrap}
.diwaniya-reactions{position:fixed;right:4%;bottom:12%;display:flex;gap:10px;pointer-events:none;z-index:90}
.diwaniya-reactions span{font-size:48px;background:#fff7de;border-radius:50%;padding:12px;box-shadow:var(--dw-shadow)}
.show-urgent #stage{outline:3px solid #bc4b27;outline-offset:4px}.show-finale #stage{border-color:#DCA339!important}
html .join-panel{background:#fffaf0e8;border:2px solid white;border-radius:30px;box-shadow:var(--dw-shadow)}
html .qr-frame{border:10px solid white;border-radius:20px;box-shadow:0 5px 0 #143f4612}
html .tv-lobby .roster{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
html .roster-player{background:#fffdf3;border:1px solid #dfcba9;border-radius:12px;padding:7px 10px;font-weight:700}
html .lobby-instructions{background:linear-gradient(0deg,#fff8e9f5,#fff8e988),url('/diwaniya-courtyard.jpg') center/cover;border-radius:24px;padding:clamp(20px,3vw,48px);height:100%;justify-content:center}
html .join-steps>div{background:#fffdf3dd;border:1px solid #dccdaf;border-radius:16px;box-shadow:0 3px 0 #153f4910}
html .lobby-count{background:#176c65;color:#fff9e9;border-radius:18px}
html .tv-rule-list{gap:16px}.tv-rule{background:#fff2dc!important;border:1px solid #e8cfa8;border-radius:18px!important;box-shadow:0 4px 0 #183e4610}
html .tv-rule>b{background:#176c65;color:#fff9e9;border-radius:50%}
html .host-page .tv-options>div,html .host-page .tv-option,html .host-page .bluff-option{border-radius:20px;background:#fff6e7;border:2px solid #d9c9b0;box-shadow:0 5px 0 #183e4612}
html .host-page .answer-tile{display:flex;align-items:center;gap:18px;border-radius:22px;border:2px solid #dbc8a5;box-shadow:0 5px 0 #183e4612;background:#fff6e7;font-weight:700;color:#183e46}
.diwaniya-answer-letter{display:grid;place-items:center;flex:0 0 auto;width:clamp(40px,4vw,90px);aspect-ratio:1;border-radius:35%;background:#176c65;color:#fff9e9;font-weight:900}
.answer-tile:nth-child(2) .diwaniya-answer-letter{background:#315DAA}.answer-tile:nth-child(3) .diwaniya-answer-letter{background:#984618}.answer-tile:nth-child(4) .diwaniya-answer-letter{background:#805181}
html .host-page .answer-tile.correct{background:#d4edda;border-color:#176c65}
.diwaniya-bluff-desk{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;align-content:center;flex:1;min-height:0;padding:12px}
.diwaniya-envelope{width:clamp(90px,12vw,220px);aspect-ratio:1.4;position:relative;background:#fff4de;border:2px solid #b99759;border-radius:12px;box-shadow:0 5px 0 #cbbd9f;overflow:hidden;display:grid;place-items:center}
.diwaniya-envelope::before{content:'';position:absolute;inset:-65% 10% 40%;border:2px solid #b99759;background:#f5e2b7;transform:rotate(45deg);border-radius:10px}
.diwaniya-envelope span{z-index:1;border-radius:50%;background:#e1d1ad;color:#655431;padding:8px;font-size:clamp(22px,2vw,46px);line-height:1}
.diwaniya-envelope.sealed span{background:#176c65;color:#fff9e9}
html .host-page .result-row{border-radius:18px;background:#fff0d4;border:2px solid #d3b67c;box-shadow:0 4px 0 #183e4612}
html .v2-game-surface{--v2-bg:#fff4de;--v2-surface:#fffdf4;--v2-surface-raised:#fffaf0;--v2-ink:#183e46;--v2-muted:#4f6264;--v2-line:#d9c7a9;--v2-line-strong:#9c8662;--v2-gold:#8b580d;--v2-cyan:#176c65;--v2-shadow:0 5px 0 #183e4612;}
html .v2-game-surface::before,html .v2-game-surface::after{display:none}
html .v2-surface-title{font-family:inherit;font-size:clamp(22px,3vw,38px);letter-spacing:-.03em}
html .v2-game-surface[data-mode=tv] .v2-surface-title{font-size:clamp(28px,3vw,54px)}
html .v2-game-surface[data-mode=tv] .v2-surface-header{gap:8px}
html .v2-game-surface[data-mode=tv]{padding:18px;background:transparent;gap:12px;min-height:0}
html .v2-race-board{background:linear-gradient(#f7efc9b0,#e4edc8c0),url('/diwaniya-courtyard.jpg') center/cover;border:3px solid #c4ac75;border-radius:28px;padding:14px;box-shadow:inset 0 0 0 5px #fff7e988}
html .v2-race-track{gap:14px 8px;position:relative}
html .v2-race-track[data-winding=true]{grid-template-columns:repeat(5,minmax(0,1fr));direction:ltr}
html .v2-game-surface[data-mode=tv][data-rapid] .v2-race-track[data-winding=true]{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(var(--route-rows),minmax(0,1fr));height:calc(100cqh - 200px)}
html .v2-game-surface[data-mode=tv][data-rapid] .v2-race-track[data-winding=true] .v2-race-node{min-block-size:0;min-height:0;padding:3px}
html .v2-game-surface[data-mode=tv][data-rapid] .v2-race-node-tokens{position:absolute;right:10%;bottom:8%}
html .v2-race-track[data-winding=true] .v2-race-node[data-direction=left]::after{right:auto;left:-15px}
html .v2-race-track[data-winding=true] .v2-race-node[data-bend=true]::after{left:50%;right:auto;top:-18px;width:7px;height:18px}
html .v2-race-node{background:#fff8e9;border:2px solid #c9b891;border-radius:40%;box-shadow:0 4px 0 #7b815e45;position:relative;min-height:56px;isolation:isolate}
html .v2-race-node:not(:last-child)::after{content:'';position:absolute;width:18px;height:7px;background:#c9a96c;right:-15px;top:50%;z-index:-1}
html .v2-race-node-number{font-size:clamp(14px,1.3vw,25px);font-weight:900}
html .v2-race-node-label{font-size:clamp(10px,.8vw,15px)}
html .v2-race-node[data-kind=step]{background:#d1efe1;border-color:#267b63}.v2-race-node[data-kind=step]::before{content:'↗';position:absolute;right:5px;top:3px;color:#216852;font-weight:900}
html .v2-race-node[data-kind=slide]{background:#fbd6bf;border-color:#bd4a32}.v2-race-node[data-kind=slide]::before{content:'↙';position:absolute;right:5px;top:3px;color:#96331e;font-weight:900}
html .v2-race-node[data-kind=finish]{background:#f6d879;border-color:#815515}
html .v2-token-mark{border-width:3px;border-color:#fff9e9;box-shadow:0 3px 0 #183e4644;background:#226e72;color:#fff9e9;font-weight:900}
html .v2-card-material{border:2px solid #c4b497;border-radius:12px;box-shadow:0 4px 0 #a9a494,0 8px 15px #183e4618;background:#fffbed}
html .v2-game-surface[data-game=pearl_divers] .v2-economy-map{background:linear-gradient(180deg,#d8f5ec18,#17475930),url('/pearl-sea-world.jpg') center/cover;border:5px solid #d1af76;border-radius:26px;box-shadow:inset 0 0 0 5px #fff9e766,0 8px 0 #16444b30}
html .v2-game-surface[data-game=pearl_divers] .v2-economy-map::after{content:'';position:absolute;inset:18% 0 0;pointer-events:none;background:radial-gradient(circle at 15% 18%,#fff9e7aa 0 5px,transparent 6px),radial-gradient(circle at 81% 37%,#fff9e777 0 8px,transparent 9px),radial-gradient(circle at 24% 76%,#fff9e777 0 5px,transparent 6px);background-size:90px 150px;opacity:.7}
html .v2-game-surface[data-game=pearl_divers] .v2-map-node{min-width:110px;max-width:165px;background:#fff7e9ee;border:2px solid #168078;box-shadow:0 5px 0 #113f4944}
html .v2-game-surface[data-game=pearl_divers] .v2-map-node[data-state=active]{background:#fae7b4;border-color:#a06122;z-index:3}
html .v2-game-surface[data-game=sandstorm] .v2-economy-map{background:linear-gradient(180deg,#fff5db25,#b5765425),url('/sandstorm-world.jpg') center/cover;border:5px solid #d1af76;border-radius:26px;box-shadow:inset 0 0 0 5px #fff9e766,0 8px 0 #7c573730}
html .v2-game-surface[data-game=sandstorm] .v2-economy-map::before{content:'';position:absolute;left:4%;right:4%;top:57%;height:8px;background:#fff7df;border-radius:999px;box-shadow:0 3px 0 #b5795033}
html .v2-game-surface[data-game=sandstorm] .v2-map-node{min-width:0;max-width:118px;padding:6px;background:#fff9ec;border:2px solid #a47447;box-shadow:0 5px 0 #8e5b4233}
html .v2-game-surface[data-game=sandstorm] .v2-map-node[data-state=active]{background:#d7eee0;border-color:#176c65;z-index:3}
/* Expedition worlds fill the TV's actual stage, rather than enforcing the generic
   720px map minimum that clips their lower route on a 1080p television. */
html .v2-game-surface[data-mode=tv]:is([data-game=pearl_divers],[data-game=sandstorm]) .v2-economy-map{min-block-size:0;block-size:100%}
html .v2-game-surface[data-mode=tv]:is([data-game=pearl_divers],[data-game=sandstorm]) .v2-map-layout{position:relative;grid-template-columns:minmax(0,1fr)}
html .v2-game-surface[data-mode=tv]:is([data-game=pearl_divers],[data-game=sandstorm]) .v2-board-sidebar{position:absolute;z-index:4;inset-block-start:18px;inset-inline-end:18px;inline-size:clamp(190px,22%,320px);padding:12px;border:2px solid #d1af76;border-radius:18px;background:#fff9e9ee;box-shadow:0 6px 0 #183e4629;backdrop-filter:blur(6px)}
html .v2-game-surface[data-mode=tv]:is([data-game=pearl_divers],[data-game=sandstorm]) .v2-board-sidebar .v2-badge{font-size:clamp(12px,1.15vw,20px);white-space:normal}
html :is(.domna-table,.kout-table,.basra-table,.tarneeb-table,.spades-tv-table,.trix-table,.baloot-table,.concan-table,.baraziliya-tv-table,.hand-table){background:#183e46;border-color:#cfb078;box-shadow:inset 0 0 0 4px #ffffff12,0 7px 0 #bfa98255}
html .v2-card-suit{font-size:clamp(26px,4vw,52px)}
html .v2-interactive-dice-tray{background:#176c65;border:8px solid #d4ad67;border-radius:24px;min-height:140px;padding:18px;box-shadow:inset 0 5px 20px #093c3a50}
html .v2-die{background:#fffae9;box-shadow:0 5px 0 #c7b48f;border-radius:16px}
html .v2-action{font-family:inherit;border-radius:16px;box-shadow:0 4px 0 #9f8c6840;background:#fff9e9;border:2px solid #bdae90}
html .v2-action:active:not(:disabled){transform:translateY(3px)}
html body.controller-page{background:#fff4de;padding:10px 10px max(12px,env(safe-area-inset-bottom))}
html .controller-shell{border:0;background:#fffcf4;border-radius:24px;padding:18px;box-shadow:0 8px 30px #183e4610;min-height:calc(100svh - 22px)}
html .controller-brand{margin-bottom:12px}
html .controller-page .eyebrow{margin-block:8px;font-size:11px;color:#98401e}
html .controller-page .prompt{font-size:24px;line-height:1.2}
html .join-art{background:url('/diwaniya-courtyard.jpg') center/cover;height:160px}
html .controller-page .button.primary{background:#BE3B20;border-radius:16px;box-shadow:0 4px 0 #8d2a14}
html .controller-page .hand-card-rack{padding:14px 5px 20px;min-height:130px;background:#e2ede1;border-radius:20px}
html .controller-page .hand-card-rack .playing-card{min-width:62px;min-height:94px}
html .controller-page .hand-sort{margin-block:8px}
html .game-context.v2-context-active{max-height:none!important;overflow:visible!important}
html .v2-game-surface[data-mode=controller-context]{padding:10px;border-radius:20px}
html .v2-game-surface[data-mode=controller-context] .v2-surface-title{font-size:20px}
html .v2-game-surface[data-mode=controller-context] .v2-race-board{padding:8px}
html .v2-game-surface[data-mode=controller-context] .v2-race-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 5px}
html .v2-game-surface[data-mode=controller-context] .v2-race-node{min-width:0;min-height:44px;padding:3px}
html .v2-game-surface[data-mode=controller-context] .v2-race-node-label{display:none}
html .v2-game-surface[data-mode=controller-context] .v2-race-node-number{font-size:14px}
html .v2-game-surface[data-mode=controller-context] .v2-surface-footer:empty{display:none}
html .controller-page .v2-interaction-header .v2-interaction-title{font-size:20px}
.diwaniya-destination{appearance:none;width:100%;min-height:44px;border:3px solid #b74b22;border-radius:16px;background:#fff1c9;color:#67320e;font-size:18px;font-weight:900;cursor:pointer;box-shadow:0 4px 0 #a96f3540}
.diwaniya-destination:focus-visible{outline:3px solid #1957a0;outline-offset:3px}
.diwaniya-destination:disabled{opacity:.65;cursor:default}
.diwaniya-branches{display:flex;flex-wrap:wrap;gap:8px;padding:10px}.diwaniya-branches button{min-height:48px;flex:1;border:2px solid #9c8662;border-radius:12px;background:#fff8df;font-weight:700;color:#183e46}
.diwaniya-branches[hidden],.diwaniya-reaction-bar[hidden]{display:none}
.diwaniya-reaction-bar{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:20px;border-top:1px solid #e3d5bb;padding-top:12px}
.diwaniya-reaction-bar button{min-width:44px;min-height:44px;background:#fff3d6;border:1px solid #bca87c;border-radius:50%;font-size:22px;color:#805112}
.diwaniya-reaction-bar small{font-size:12px;color:#54656a}
html .controller-page .v2-map-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.controller-page .v2-map-actions .v2-action{word-break:normal;min-width:0;font-size:15px;padding:10px 6px}.controller-page .v2-map-actions .v2-token{display:none}
@media(max-width:360px){html .controller-shell{padding:12px}.diwaniya-reaction-bar{gap:5px}}
@media(min-width:900px) and (max-height:800px){
  html .host-shell{gap:8px}
  html .host-page{padding-block:14px}
  html .host-page .tv-narrator{padding:4px 12px;min-height:28px}
  html .host-grid.tv-live .stage{padding:12px 22px}
  html .v2-game-surface[data-mode=tv]{padding:6px;gap:6px}
  html .v2-game-surface[data-mode=tv] .v2-race-node{min-height:48px;padding:4px}
  html .v2-game-surface[data-mode=tv] .v2-race-track{gap:10px 8px}
}
@media(prefers-reduced-motion:reduce){.diwaniya-beat,.diwaniya-reactions{display:none!important}.v2-action:active{transform:none!important}}
/* Caravan keeps every camp, shared stop, private home lane and finish visible
   above its scores. This is a diagram of independent tracks, not one chain
   through the other players' camps. Phone controllers retain their scroll. */
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;overflow:hidden;gap:8px}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-surface-footer{margin-top:0;min-height:0}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-score-strip{display:grid;grid-template-columns:repeat(var(--caravan-seat-count),minmax(0,1fr));gap:6px}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-score-item{padding:5px 7px}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-surface-body{display:grid;grid-template-columns:minmax(0,1fr) clamp(72px,9vw,140px);gap:10px}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-board{height:100%;padding:8px;overflow:hidden}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-track{height:100%;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(var(--route-rows),minmax(0,1fr));gap:5px}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-node{min-height:0;min-block-size:0;min-width:0;padding:2px;overflow:hidden;align-content:start}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-node::after{display:none}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-node-number{font-size:clamp(14px,1.4vw,30px);line-height:1.1}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-node-label{font-size:clamp(9px,.85vw,18px);line-height:1.1}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-node-tokens{position:absolute;bottom:1px;inset-inline-end:4px}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-token-mark{min-width:20px;min-height:20px;min-inline-size:20px;min-block-size:20px;font-size:clamp(9px,.8vw,16px);padding:0}
html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-race-node-tokens .v2-token{gap:0}
@media(min-width:1800px){html .v2-game-surface[data-mode=tv][data-package-id^="caravanRace"] .v2-token-mark{min-inline-size:36px;min-block-size:36px}}
/* A phone's public overview is bounded above the private touch pieces. Its
   footer must never float over the bottom of the board. No legal commands are
   added to this display-only diagram. */
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:clamp(280px,46svh,440px);max-height:none;min-height:0;padding:10px;overflow:hidden;gap:6px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-surface-body{min-height:0}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-race-board{height:100%;padding:5px;overflow:hidden}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-race-track{height:100%;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(var(--route-rows),minmax(0,1fr));gap:3px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-race-node{min-height:0;min-block-size:0;padding:0;min-width:0;overflow:hidden}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-race-node::after{display:none}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-race-node-number{font-size:11px;line-height:1}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-race-node-tokens{position:absolute;bottom:0;inset-inline-end:0}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-token-mark{min-inline-size:14px;min-block-size:14px;padding:0;font-size:8px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-token{gap:0}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-surface-footer{margin-top:0}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-score-strip{display:grid;grid-template-columns:repeat(var(--caravan-seat-count),minmax(0,1fr));gap:3px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-score-item{padding:3px;gap:1px;border-inline-start-width:3px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-score-name{font-size:10px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-score-value{font-size:12px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="caravanRace"] .v2-score-detail{font-size:9px}
.controller-page:has(.v2-private-piecePicker) .private-action-head{display:none}
.controller-page:has(#controls>.v2-game-surface) .private-action-head{display:none}
.v2-piece-picker .v2-action-label,.v2-piece-picker .v2-token-label{display:none}
.v2-piece-picker .v2-token{grid-row:1;grid-template-columns:1fr;justify-items:center;gap:0}
.v2-piece-picker .v2-token-mark{min-inline-size:52px;min-block-size:52px;font-size:20px;border-width:3px}
.v2-piece-picker .v2-action-detail{grid-row:2;font-size:13px}
/* Both full (49 scenes) and sprint journeys keep the real start/finish visible. */
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;overflow:hidden;gap:8px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-surface-body{display:grid;grid-template-columns:minmax(0,1fr) clamp(72px,10vw,160px);grid-template-rows:minmax(0,1fr);gap:10px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-board-sidebar{min-height:0;overflow:hidden;gap:6px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-board-sidebar .v2-badge{min-block-size:0;white-space:normal;max-width:100%;font-size:clamp(10px,1.5vw,36px);padding:4px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-material-callout{padding:6px;gap:4px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-material-callout-label{font-size:clamp(10px,1.5vw,36px)}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-die{inline-size:clamp(42px,7vw,100px);padding:6px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-die-pip{inline-size:clamp(4px,.7vw,14px)}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-race-board{height:100%;padding:8px;overflow:hidden}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-race-track{height:100%;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(var(--route-rows),minmax(0,1fr));gap:5px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-race-node{min-height:0;min-block-size:0;padding:2px;min-width:0;overflow:hidden;align-content:start}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-race-node::after{display:none}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-race-node-number{font-size:clamp(14px,1.5vw,32px);line-height:1.1}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-race-node-label{font-size:clamp(9px,.8vw,18px);line-height:1.1}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-race-node-tokens{position:absolute;bottom:1px;inset-inline-end:2px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-token-mark{min-inline-size:20px;min-block-size:20px;padding:0;font-size:10px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-surface-footer{margin-top:0}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-score-strip{display:grid;grid-template-columns:repeat(var(--journey-seat-count),minmax(0,1fr));gap:5px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-score-item{padding:5px;gap:1px}
html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-score-name{white-space:normal;overflow-wrap:anywhere;font-size:clamp(10px,1.2vw,24px);line-height:1.1}
@media(min-width:1800px){html .v2-game-surface[data-mode=tv][data-package-id^="stepsAndSlides"] .v2-token-mark{min-inline-size:36px;min-block-size:36px;font-size:18px}}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"]{--journey-phone-columns:4;display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:clamp(320px,48svh,460px);max-height:none;min-height:0;overflow:hidden;padding:10px;gap:6px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-surface-body{min-height:0}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-race-board{height:100%;padding:5px;overflow:auto;overscroll-behavior:contain}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-race-track{height:auto;grid-template-columns:repeat(var(--journey-phone-columns),minmax(52px,1fr));grid-template-rows:none;grid-auto-rows:56px;gap:5px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-race-node{min-height:56px;min-block-size:56px;padding:2px;min-width:52px;overflow:visible}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-race-node::after{display:none}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-race-node-tokens{position:absolute;bottom:0;inset-inline-end:0;pointer-events:none}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-surface-footer{margin-top:0}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-score-strip{display:grid;grid-template-columns:repeat(var(--journey-phone-score-columns),minmax(0,1fr));gap:3px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-score-item{padding:3px;gap:1px;border-inline-start-width:3px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-score-name{font-size:10px;white-space:normal;overflow-wrap:anywhere;line-height:1.1}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-score-value{font-size:12px}
html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"] .v2-score-detail{font-size:9px}
@media(min-width:380px){html .v2-game-surface[data-mode=controller-context][data-package-id^="stepsAndSlides"]{--journey-phone-columns:5}}
/* Word Souq: tactile shared tray, private street construction, end-only gallery. */
.v2-word-draft-grid { overflow-x: auto; grid-template-columns: repeat(var(--v2-grid-columns, 7), minmax(44px, 1fr)); }
html .v2-word-viewport .v2-word-draft-grid{grid-template-columns:repeat(var(--v2-grid-columns),44px);overflow:visible;gap:4px}
html .v2-word-composer .v2-word-viewport{background:#FFF4DE;border-color:#18212B}
html .v2-word-composer .v2-word-draft-grid{background:transparent;border:0;border-radius:0;box-shadow:none}
html .v2-word-composer .v2-word-draft-grid button{background:rgba(69,102,166,.26);color:#18212B;border:2px solid #18212B;border-radius:12px}
html .v2-word-composer .v2-word-draft-grid button[data-state=selected]{background:#FBE6A8;border-color:#18212B}
html .v2-word-composer .v2-word-accepted-tile{background:rgba(25,140,115,.2);color:#18212B;border:2px solid #18212B;border-radius:12px}
.v2-word-grid .v2-word-void{visibility:hidden;pointer-events:none}
.v2-word-overview{font-size:13px;line-height:1.3;margin:0}
html .v2-public-wordBoard[data-mode=tv]:not(.v2-market-rush-show){display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;gap:8px}
html .v2-public-wordBoard[data-mode=tv]{padding:clamp(8px,1.2vw,28px)}
html .v2-public-wordBoard[data-mode=tv] .v2-surface-title{font-size:clamp(24px,3vw,64px)}
html .v2-public-wordBoard[data-mode=tv] .v2-surface-prompt{font-size:clamp(14px,1.7vw,32px);line-height:1.2;margin:0}
html .v2-public-wordBoard[data-mode=tv] .v2-score-strip{display:grid;grid-template-columns:repeat(var(--word-score-columns),minmax(0,1fr));gap:5px}
html .v2-public-wordBoard[data-mode=tv] .v2-score-item{padding:4px;grid-template-columns:minmax(0,1fr);gap:2px;border-inline-start-width:3px}
html .v2-public-wordBoard[data-mode=tv] .v2-score-name{font-size:clamp(12px,1.4vw,36px);line-height:1.1}
html .v2-public-wordBoard[data-mode=tv] .v2-score-value{font-size:clamp(18px,2vw,54px);line-height:1.1}
html .v2-public-wordBoard[data-mode=tv] .v2-board-sidebar{min-height:0;gap:6px}
html .v2-public-wordBoard[data-mode=tv] .v2-word-result{padding:4px;gap:3px;flex:0 0 auto}
html .v2-public-wordBoard[data-mode=tv]:not(.v2-market-rush-show) .v2-surface-body{min-height:0}
html .v2-public-wordBoard[data-mode=tv] .v2-grid-layout{height:100%;min-height:0;grid-template-columns:minmax(0,1fr) clamp(160px,25%,600px);grid-template-rows:minmax(0,1fr);gap:8px}
html .v2-public-wordBoard[data-mode=tv] .v2-word-grid{height:100%;inline-size:auto;aspect-ratio:var(--v2-grid-columns)/var(--v2-grid-rows);max-inline-size:100%;justify-self:center;grid-template-rows:repeat(var(--v2-grid-rows),minmax(0,1fr));gap:2px;min-height:0}
html .v2-public-wordBoard[data-mode=tv] .v2-word-grid .v2-board-cell{min-block-size:0;min-inline-size:0;padding:1px;aspect-ratio:1}
html .v2-public-wordBoard[data-mode=tv] .v2-word-grid .v2-cell-mark{font-size:clamp(18px,2.5vw,84px);line-height:1.1}
html .v2-public-wordBoard[data-mode=tv] .v2-word-grid .v2-cell-coordinate{display:none}
html .v2-public-wordBoard[data-mode=tv] .v2-word-grid{background:#FFF4DE;border-color:#18212B}
html .v2-public-wordBoard[data-mode=tv] .v2-word-grid .v2-board-cell:not(.v2-word-void){background:rgba(69,102,166,.26);color:#18212B;border:1px solid #18212B;border-radius:8px}
html .v2-public-wordBoard[data-mode=tv] .v2-word-grid .v2-board-cell:has(.v2-cell-mark:not(:empty)){background:rgba(25,140,115,.2)}
html .v2-public-wordBoard[data-mode=tv] .v2-market-revealed-grid .v2-board-cell:has(.v2-cell-mark:not(:empty)){background:rgba(231,170,20,.3)}
body[data-game=word_souq].show-finale .diwaniya-beat{display:none}
html .v2-public-wordBoard[data-mode=tv] .v2-word-result-word{font-size:clamp(18px,1.9vw,48px)}
html .v2-public-wordBoard[data-mode=tv] .v2-board-sidebar .v2-badge{font-size:clamp(14px,1.4vw,36px)}
.v2-market-words{font-size:clamp(18px,1.5vw,38px);font-weight:800;margin:4px 0 0}
.v2-word-thumbnail{min-width:0;min-height:0;display:grid;place-items:center;container-type:size}
html .v2-public-wordBoard .v2-word-thumbnail .v2-market-revealed-grid{inline-size:min(100cqw,calc(100cqh*var(--v2-grid-columns)/var(--v2-grid-rows)));height:auto;aspect-ratio:var(--v2-grid-columns)/var(--v2-grid-rows);max-height:100%;grid-template-rows:repeat(var(--v2-grid-rows),minmax(0,1fr));container-type:size;padding:0;border:0;box-shadow:none;background:transparent}
html .v2-public-wordBoard .v2-word-thumbnail .v2-market-revealed-grid .v2-cell-mark{font-size:clamp(6px,calc(min(100cqw/var(--v2-grid-columns),100cqh/var(--v2-grid-rows))*.62),84px);line-height:1}
@media(max-width:600px){.v2-word-thumbnail{block-size:120px}}
@media(max-height:540px){
 body[data-game=word_souq] .diwaniya-cast{display:none}
 html .v2-public-wordBoard[data-mode=tv] .v2-word-result:not([data-word-rank="1"]):not([data-word-rank="2"]){display:none}
}
@media(min-height:541px) and (max-height:900px){html .v2-public-wordBoard[data-mode=tv] .v2-word-result:not([data-word-rank="1"]):not([data-word-rank="2"]):not([data-word-rank="3"]){display:none}}
.v2-word-accepted-tile { display: grid; place-items: center; background: #d0e9db; color: #153c32; font-weight: 800; min-height: 44px; border-radius: 10px; }
.v2-market-public-tray { display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(8px, 1vw, 18px); }
.v2-market-letter { display: grid; place-items: center; background: #fff5d8; color: #243a35; border: 2px solid #d5b76e; border-radius: 14px; width: clamp(44px, 5vw, 92px); aspect-ratio: 1; font-size: clamp(24px, 3vw, 60px); font-weight: 800; box-shadow: 0 4px 0 #cbb582; }
.v2-market-builders { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 20px 0; }
.v2-market-builder { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: clamp(14px, 2vw, 32px); border: 2px solid #dacbb6; border-radius: 18px; background: #fff8ec; font-size: clamp(20px, 2.3vw, 42px); }
.v2-market-builder-mark { color: #2c7b63; }
.v2-market-hint { text-align: center; font-size: clamp(20px, 2vw, 36px); }
.v2-market-street-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.v2-market-street-card { min-width: 0; border-radius: 16px; background: #fff8ec; border: 2px solid #dacbb6; padding: 10px; }
.v2-market-street-title { margin: 0 0 6px; font-size: clamp(18px, 1.7vw, 32px); }
.v2-market-revealed-grid { gap: 2px; min-height: 0; inline-size: 100%; height: clamp(80px, 13vh, 300px); aspect-ratio: auto; padding: 4px; }
.v2-market-revealed-grid .v2-board-cell { min-block-size: 0; min-inline-size: 0; padding: 1px; aspect-ratio: auto; }
.v2-market-revealed-grid .v2-cell-mark { font-size: clamp(14px, 1.6vw, 32px); line-height: 1; }
html .v2-market-rush-show[data-mode=tv]{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}
html .v2-market-rush-show[data-mode=tv] .v2-surface-body{display:flex;flex-direction:column;min-height:0;gap:8px}
html .v2-market-rush-show[data-mode=tv] .v2-market-street-gallery{flex:1;min-height:0;grid-template-columns:repeat(var(--market-columns),minmax(0,1fr));grid-template-rows:repeat(var(--market-rows),minmax(0,1fr))}
html .v2-market-rush-show[data-mode=tv] .v2-market-street-card{display:grid;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;gap:4px}
html .v2-market-rush-show[data-mode=tv] .v2-market-revealed-grid{height:auto;inline-size:min(100cqw,calc(100cqh*var(--v2-grid-columns)/var(--v2-grid-rows)));aspect-ratio:var(--v2-grid-columns)/var(--v2-grid-rows);max-inline-size:100%;justify-self:center;grid-template-rows:repeat(var(--v2-grid-rows),minmax(0,1fr))}
html .v2-market-rush-show[data-mode=tv] .v2-market-revealed-grid .v2-board-cell{aspect-ratio:1}
@media(max-width:600px){.v2-market-street-gallery{grid-template-columns:1fr}.v2-market-revealed-grid .v2-board-cell{aspect-ratio:1}}
.v2-market-words { margin: 4px 0 0; font-size: clamp(14px, 1.25vw, 26px); }
.v2-market-rush-show .v2-surface-footer { display: none; }
@media (max-width: 700px) {
  .v2-market-builders, .v2-market-street-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Color Clash retains the room's paper/ink materials; the four inks are game stimuli. */
.colour-world { box-sizing: border-box; width: 100%; min-width: 0; display: flex; flex-direction: column; gap: 14px; padding: 18px; border: 1px solid #d9c7a9; border-radius: 24px; background: #fffcf4; color: #183e46; }
.colour-world p,.colour-world h2 { margin: 0; }
.colour-world-heading { text-align: center; }
.colour-progress { font-size: 13px; font-weight: 800; color: #a93810; letter-spacing: .06em; }
.colour-player { font-size: 24px; overflow-wrap: anywhere; }
.colour-cue-stage { display: grid; place-items: center; min-height: 140px; padding: 14px 4px; border: 2px solid #d9c7a9; border-radius: 22px; background: #fff4de; }
.colour-word { font-size: clamp(38px, 12vw, 66px); line-height: 1.2; font-weight: 900; text-align: center; }
.colour-instruction { text-align: center; font-size: 16px; line-height: 1.4; }
.colour-outcome { padding: 12px; border-radius: 14px; text-align: center; font-size: 22px; font-weight: 800; }
.colour-outcome.correct { background: #d8eee3; color: #155a42; }
.colour-outcome.miss { background: #f8ddd7; color: #932c27; }
.colour-score-ribbon { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.colour-score { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px; background: #ffead7; border-radius: 12px; font-size: 14px; overflow-wrap: anywhere; }
.colour-answer-arena { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.colour-ink-tile { min-height: 112px; min-width: 0; border-radius: 20px; padding: 16px 10px; border: 2px solid var(--colour-ink); background: #fffcf4; color: #183e46; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; font: inherit; cursor: pointer; transition: transform 120ms ease-out, background 120ms ease-out; }
.colour-ink-mark { display: block; width: 36px; height: 36px; background: var(--colour-ink); border-radius: 50% 50% 45% 55%; }
.colour-ink-tile:active { transform: scale(.97); }
.colour-ink-tile:focus-visible { outline: 3px solid #183e46; outline-offset: 3px; }
.colour-ink-tile:disabled { opacity: .65; cursor: default; }
body[data-game=color_clash] #stage .colour-world { height: 100%; justify-content: center; padding: 24px; gap: 18px; }
body[data-game=color_clash] #stage .colour-player { font-size: clamp(28px,3vw,56px); }
body[data-game=color_clash] #stage .colour-progress { font-size: clamp(20px,1.8vw,34px); }
body[data-game=color_clash] #stage .colour-word { font-size: clamp(72px,8vw,156px); }
body[data-game=color_clash] #stage .colour-cue-stage { min-height: 0; flex: 1; }
body[data-game=color_clash] #stage .colour-instruction { font-size: clamp(22px,2vw,38px); }
body[data-game=color_clash] #stage .colour-score-ribbon { grid-template-columns: repeat(6,minmax(0,1fr)); }
body[data-game=color_clash] #stage .colour-score { font-size: clamp(20px,1.7vw,34px); }
@keyframes colour-state-entry { from { opacity: .65; transform: scale(.985); } to { opacity: 1; transform: scale(1); } }
.colour-state-enter { animation: colour-state-entry 180ms ease-out; }
@media(prefers-reduced-motion:reduce) { .colour-state-enter { animation: none; }.colour-ink-tile { transition: none; }.colour-ink-tile:active { transform: none; } }
/* Pattern Pulse: the same four named/symbol pads on phones and the public TV. */
.pulse-world{box-sizing:border-box;width:100%;min-width:0;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid #d9c7a9;border-radius:24px;background:#fffcf4;color:#183e46;text-align:center}
.pulse-world p,.pulse-world h2{margin:0}.pulse-progress{font-size:13px;font-weight:800;color:#a93810}.pulse-player{font-size:24px;overflow-wrap:anywhere}.pulse-instruction{font-size:17px;line-height:1.4}
.pulse-pad-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pulse-pad{min-width:0;min-height:112px;display:flex;flex-direction:column;gap:10px;justify-content:center;align-items:center;background:#183e46;border:2px solid var(--pulse-ink);border-radius:20px;color:#fff4de;font:inherit;box-sizing:border-box;padding:12px}
.pulse-pad svg{width:44px;height:44px}.pulse-pad.lit{background:var(--pulse-ink);border-color:#fff4de;box-shadow:0 0 0 3px var(--pulse-ink)}button.pulse-pad{cursor:pointer}button.pulse-pad:active{transform:scale(.97)}button.pulse-pad:focus-visible{outline:3px solid #a93810;outline-offset:3px}button.pulse-pad:disabled{opacity:.6;cursor:default}
.pulse-entry,.pulse-result{font-size:22px;font-weight:800}.pulse-result.perfect{color:#155a42;background:#d8eee3;padding:10px;border-radius:14px}.pulse-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pulse-score{display:flex;justify-content:space-between;gap:8px;padding:10px;background:#ffead7;border-radius:12px;font-size:14px;overflow-wrap:anywhere}
body[data-game=pattern_pulse] #stage .pulse-world{height:100%;padding:24px;gap:16px}body[data-game=pattern_pulse] #stage .pulse-pad-board{flex:1;min-height:0}body[data-game=pattern_pulse] #stage .pulse-pad{min-height:0;font-size:clamp(20px,2vw,38px)}body[data-game=pattern_pulse] #stage .pulse-pad svg{width:clamp(48px,6vw,110px);height:clamp(48px,6vw,110px)}body[data-game=pattern_pulse] #stage .pulse-player{font-size:clamp(28px,3vw,54px)}body[data-game=pattern_pulse] #stage .pulse-progress,body[data-game=pattern_pulse] #stage .pulse-instruction{font-size:clamp(20px,2vw,36px)}body[data-game=pattern_pulse] #stage .pulse-scores{grid-template-columns:repeat(6,minmax(0,1fr))}body[data-game=pattern_pulse] #stage .pulse-score{font-size:clamp(20px,1.6vw,34px)}
@media(prefers-reduced-motion:reduce){button.pulse-pad:active{transform:none}.pulse-pad.lit{box-shadow:none}}

.emoji-world{box-sizing:border-box;width:100%;min-width:0;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid #d9c7a9;border-radius:24px;background:#fffcf4;color:#183e46;text-align:center}
.emoji-world p,.emoji-world h2{margin:0}.emoji-progress{font-size:13px;font-weight:800;color:#a93810}.emoji-player{font-size:24px;overflow-wrap:anywhere}.emoji-instruction{font-size:16px;line-height:1.4}
.emoji-clue{font-family:system-ui,"Apple Color Emoji","Segoe UI Emoji";font-size:clamp(48px,17vw,76px);line-height:1.4;min-height:108px;display:grid;place-items:center;background:#fff4de;border:1px solid #d9c7a9;border-radius:20px}
.emoji-answer-arena{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.emoji-answer-tile{min-height:100px;min-width:0;box-sizing:border-box;border:1px solid #d9c7a9;border-radius:20px;background:#fff4de;color:#183e46;padding:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;font:inherit;font-size:18px;overflow-wrap:anywhere}
.emoji-answer-badge{color:#a93810;font-size:17px;font-weight:800}.emoji-answer-tile.correct{border:2px solid #155a42;background:#d8eee3}.emoji-answer-tile.miss{border:2px solid #932c27;background:#f8ddd7}button.emoji-answer-tile{cursor:pointer;transition:transform 120ms ease-out}button.emoji-answer-tile:active{transform:scale(.97)}button.emoji-answer-tile:focus-visible{outline:3px solid #a93810;outline-offset:3px}button.emoji-answer-tile:disabled{opacity:.65;cursor:default}
.emoji-result{font-size:22px;font-weight:800;overflow-wrap:anywhere}.emoji-result.correct{color:#155a42}.emoji-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.emoji-score{display:flex;justify-content:space-between;gap:8px;padding:10px;border-radius:12px;background:#ffead7;font-size:14px;overflow-wrap:anywhere}
body[data-game=emoji_decode] #stage .emoji-world{height:100%;padding:18px;gap:12px}body[data-game=emoji_decode] #stage .emoji-clue{flex:1;min-height:108px;font-size:clamp(64px,6vw,128px);line-height:1.2;overflow:hidden}body[data-game=emoji_decode] #stage .emoji-player{font-size:clamp(28px,3vw,54px)}body[data-game=emoji_decode] #stage .emoji-progress,body[data-game=emoji_decode] #stage .emoji-instruction{font-size:clamp(20px,2vw,36px)}
body[data-game=emoji_decode] #stage .emoji-answer-arena{grid-template-columns:repeat(4,minmax(0,1fr))}body[data-game=emoji_decode] #stage .emoji-answer-tile{font-size:clamp(24px,2.4vw,44px);min-height:116px}body[data-game=emoji_decode] #stage .emoji-answer-badge{font-size:clamp(22px,2vw,36px)}body[data-game=emoji_decode] #stage .emoji-scores{grid-template-columns:repeat(6,minmax(0,1fr))}body[data-game=emoji_decode] #stage .emoji-score{font-size:clamp(20px,1.6vw,34px)}
@media(prefers-reduced-motion:reduce){button.emoji-answer-tile{transition:none}button.emoji-answer-tile:active{transform:none}}

.dirah-world{box-sizing:border-box;min-width:0;width:100%;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid #d9c7a9;border-radius:24px;background:#fffcf4;color:#183e46;text-align:center}
.dirah-world p,.dirah-world h2{margin:0}.dirah-progress{font-size:13px;font-weight:800;color:#a93810}.dirah-question{font-size:24px;line-height:1.25;overflow-wrap:anywhere}.dirah-ballots{display:flex;justify-content:center;gap:6px;min-height:28px}.dirah-ballots svg{width:36px;height:28px;min-width:0}
.dirah-arena{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;touch-action:pan-y}.dirah-plate{box-sizing:border-box;min-width:0;min-height:180px;padding:18px;border:2px solid #a93810;border-radius:22px;background:#fff4de;color:#183e46;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font:inherit;font-size:24px}
.dirah-mark{font-size:44px;color:#183e46;line-height:1}.dirah-plate.selected{border-width:4px}.dirah-tally{font-size:28px}.dirah-track{width:100%;height:14px;border-radius:7px;background:#e5dbc7;overflow:hidden;display:block}.dirah-fill{display:block;height:100%;background:#a93810}.dirah-new-reveal .dirah-fill{animation:dirah-reveal .23s ease-out}
button.dirah-plate{cursor:pointer;transition:transform 120ms ease-out}button.dirah-plate:active{transform:scale(.97)}button.dirah-plate:focus-visible,.dirah-pass:focus-visible{outline:3px solid #183e46;outline-offset:3px}button.dirah-plate:disabled{opacity:.65;cursor:default}
.dirah-pass{min-height:44px;border:1px solid #d9c7a9;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;padding:10px;cursor:pointer}.dirah-own{font-weight:800;font-size:16px}.dirah-detail,.dirah-npc{font-size:16px;line-height:1.4;overflow-wrap:anywhere}.dirah-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dirah-score{display:flex;justify-content:space-between;gap:8px;padding:10px;border-radius:12px;background:#ffead7;font-size:14px;overflow-wrap:anywhere}
body[data-game=dirah_survey] #stage .dirah-world{height:100%;padding:20px;gap:12px}body[data-game=dirah_survey] #stage .dirah-question{font-size:clamp(28px,2.6vw,48px)}body[data-game=dirah_survey] #stage .dirah-progress{font-size:clamp(20px,1.8vw,32px)}body[data-game=dirah_survey] #stage .dirah-arena{flex:1;min-height:0}body[data-game=dirah_survey] #stage .dirah-plate{min-height:0;font-size:clamp(28px,3vw,48px)}body[data-game=dirah_survey] #stage .dirah-mark{font-size:clamp(48px,6vw,92px)}body[data-game=dirah_survey] #stage .dirah-tally{font-size:clamp(40px,4.4vw,80px)}
body[data-game=dirah_survey] #stage .dirah-detail,body[data-game=dirah_survey] #stage .dirah-npc{font-size:clamp(18px,1.5vw,28px)}body[data-game=dirah_survey] #stage .dirah-scores{grid-template-columns:repeat(6,minmax(0,1fr))}body[data-game=dirah_survey] #stage .dirah-score{font-size:clamp(20px,1.6vw,32px)}body[data-game=dirah_survey] #stage .dirah-ballots svg{width:48px;height:36px}
@keyframes dirah-reveal{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
@media(prefers-reduced-motion:reduce){.dirah-new-reveal .dirah-fill{animation:none}button.dirah-plate{transition:none}button.dirah-plate:active{transform:none}}

.dirah-info{display:flex;flex-direction:column;gap:12px;justify-content:center}
.dirah-info p{white-space:pre-line}
body[data-game=dirah_survey] #stage .dirah-world{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto}
body[data-game=dirah_survey] #stage .dirah-progress{grid-area:1/1/2/3}body[data-game=dirah_survey] #stage .dirah-question{grid-area:2/1/3/3}
body[data-game=dirah_survey] #stage .dirah-ballots{grid-area:3/1/4/3}body[data-game=dirah_survey] #stage .dirah-arena{grid-area:4/1/5/2}
body[data-game=dirah_survey] #stage .dirah-info{grid-area:4/2/5/3;padding:10px;background:#fff4de;border:1px solid #d9c7a9;border-radius:18px}
body[data-game=dirah_survey] #stage .dirah-scores{grid-area:5/1/6/3}body[data-game=dirah_survey] #stage .dirah-world[data-phase=reveal] .dirah-mark,body[data-game=dirah_survey] #stage .dirah-world[data-phase=final] .dirah-mark{display:none}
body[data-game=dirah_survey] #stage .long-question .dirah-question{font-size:clamp(20px,1.5vw,30px)}

/* Large rooms need two complete TV cast rows, not an inaccessible centred scroll strip. */
.diwaniya-cast:has(>.diwaniya-seat:nth-child(9)){display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;min-height:clamp(96px,8vw,144px);max-height:none;overflow:visible}
.diwaniya-cast:has(>.diwaniya-seat:nth-child(9)) .diwaniya-seat{grid-template-columns:32px minmax(0,1fr);min-width:0;max-width:none;padding:2px 6px;border-radius:14px}
.diwaniya-cast:has(>.diwaniya-seat:nth-child(9)) .diwaniya-avatar{width:32px;height:32px}
.diwaniya-cast:has(>.diwaniya-seat:nth-child(9)) .diwaniya-seat strong,.diwaniya-cast:has(>.diwaniya-seat:nth-child(9)) .diwaniya-seat>b{font-size:clamp(18px,1.2vw,28px);line-height:1}

@media(max-height:800px){
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-world{padding:14px;gap:8px}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-question{font-size:26px;line-height:1.2}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-progress{font-size:20px;line-height:1.2}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-ballots svg{height:28px;width:38px}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-info{padding:6px;gap:6px}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-detail,body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-npc{font-size:18px;line-height:1.25}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-plate{padding:12px;gap:8px;font-size:28px}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-tally{font-size:40px}
 body[data-game=dirah_survey]:has(.diwaniya-cast>.diwaniya-seat:nth-child(9)) #stage .dirah-score{padding:6px;font-size:18px;line-height:1.2}
}

.never-world{box-sizing:border-box;width:100%;min-width:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}
.never-world p,.never-world h2{margin:0}.never-progress{font-size:13px;font-weight:800;color:#a93810}.never-prompt-card{padding:24px 18px;min-height:180px;box-sizing:border-box;display:grid;place-items:center;border:2px solid #d9c7a9;border-radius:22px;background:#fff4de;box-shadow:0 4px 0 #183e4615}.never-question{font-size:25px;line-height:1.3;overflow-wrap:anywhere}
.never-arena{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.never-choice{box-sizing:border-box;min-width:0;min-height:124px;padding:18px;border:2px solid #a93810;border-radius:20px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;background:#fff4de;color:#183e46;font:inherit;font-size:22px}
.never-choice.selected{border-width:4px}.never-mark{font-size:36px;line-height:1}.never-count{font-size:32px}button.never-choice{cursor:pointer;transition:transform 120ms ease-out}button.never-choice:active{transform:scale(.97)}button.never-choice:focus-visible,.never-pass:focus-visible{outline:3px solid #183e46;outline-offset:3px}button.never-choice:disabled{opacity:.65;cursor:default}
.never-pass{min-height:44px;padding:10px;border:1px solid #d9c7a9;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;cursor:pointer}.never-own{font-size:16px;font-weight:800}.never-result{font-size:22px;font-weight:800}.never-detail,.never-npc{font-size:16px;line-height:1.4;overflow-wrap:anywhere}.never-footer{font-size:14px;font-weight:800;color:#a93810}
body[data-game=never_ever] #stage .never-world{height:100%;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto auto auto auto;padding:20px;gap:12px}
body[data-game=never_ever] #stage .never-progress{grid-area:1/1/2/3;font-size:clamp(20px,1.8vw,32px)}body[data-game=never_ever] #stage .never-prompt-card{grid-area:2/1/3/2;min-height:0}body[data-game=never_ever] #stage .never-arena{grid-area:2/2/3/3;grid-template-columns:minmax(0,1fr);min-height:0}
body[data-game=never_ever] #stage .never-question{font-size:clamp(28px,3.2vw,58px)}body[data-game=never_ever] #stage .never-choice{min-height:0;padding:12px;font-size:clamp(24px,2.3vw,40px)}body[data-game=never_ever] #stage .never-mark{display:none}
body[data-game=never_ever] #stage .never-result,body[data-game=never_ever] #stage .never-detail,body[data-game=never_ever] #stage .never-npc,body[data-game=never_ever] #stage .never-footer{grid-column:1/-1;font-size:clamp(20px,1.7vw,32px)}
.never-new-prompt .never-prompt-card{animation:never-card-change .2s ease-out}
@keyframes never-card-change{from{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-height:800px){body[data-game=never_ever] #stage .never-world{padding:14px;gap:8px}body[data-game=never_ever] #stage .never-progress{font-size:20px}body[data-game=never_ever] #stage .never-question{font-size:28px}body[data-game=never_ever] #stage .never-detail,body[data-game=never_ever] #stage .never-npc,body[data-game=never_ever] #stage .never-footer{font-size:18px;line-height:1.2}}
@media(prefers-reduced-motion:reduce){.never-new-prompt .never-prompt-card{animation:none}button.never-choice{transition:none}button.never-choice:active{transform:none}}

/* Original one-line paper/ink stage. The public geometry is never a private clue. */
.doodle-world{box-sizing:border-box;width:100%;min-width:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}
.doodle-world p,.doodle-world h2{margin:0;overflow-wrap:anywhere}.doodle-progress{font-size:13px;font-weight:800;color:#a93810}.doodle-people{font-size:20px;line-height:1.3}.doodle-clue{padding:12px;border-radius:14px;background:#fff4de;font-size:20px;font-weight:800;color:#a93810}
.doodle-info{display:contents}.doodle-clue{order:2}.doodle-paper{order:3;position:relative;width:100%;aspect-ratio:1;min-height:240px}.doodle-controls{order:4}.doodle-result{order:5}.doodle-detail{order:6}.doodle-scores{order:7}
.doodle-canvas{position:absolute;inset:0;display:block;box-sizing:border-box;width:100%;height:100%;min-height:0;direction:ltr;background:#fff4de;border:2px solid #d9c7a9;border-radius:20px;user-select:none;-webkit-user-select:none}
.doodle-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.doodle-controls[hidden]{display:none}.doodle-controls button{box-sizing:border-box;min-width:0;min-height:48px;padding:12px;border:1px solid #a93810;border-radius:14px;font:inherit;font-size:16px;font-weight:700;background:#fffcf4;color:#a93810;cursor:pointer;white-space:normal}.doodle-controls .doodle-guessed{background:#a93810;color:#fff}.doodle-controls button:disabled{opacity:.55;cursor:default}.doodle-controls button:focus-visible{outline:3px solid #183e46;outline-offset:3px}
.doodle-result{font-size:22px;font-weight:800}.doodle-detail{font-size:16px;line-height:1.4;white-space:pre-line}.doodle-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.doodle-score{min-width:0;padding:10px;border-radius:12px;background:#fff4de;display:flex;flex-direction:column;gap:4px;font-size:14px;overflow-wrap:anywhere}.doodle-score strong{font-size:22px;font-variant-numeric:tabular-nums}
body[data-game=one_line_doodle] #stage .doodle-world{height:100%;padding:20px;gap:12px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto}
body[data-game=one_line_doodle] #stage .doodle-progress{grid-area:1/1/2/3;font-size:clamp(20px,1.8vw,32px)}body[data-game=one_line_doodle] #stage .doodle-people{grid-area:2/1/3/3;font-size:clamp(24px,2.3vw,42px)}body[data-game=one_line_doodle] #stage .doodle-paper{grid-area:3/1/4/2;min-height:0;aspect-ratio:auto}
body[data-game=one_line_doodle] #stage .doodle-detail{grid-area:3/2/4/3;align-self:center;font-size:clamp(20px,1.8vw,32px)}body[data-game=one_line_doodle] #stage .doodle-clue,body[data-game=one_line_doodle] #stage .doodle-result{grid-column:1/-1;font-size:clamp(24px,2.3vw,40px)}body[data-game=one_line_doodle] #stage .doodle-scores{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr))}body[data-game=one_line_doodle] #stage .doodle-score{font-size:clamp(18px,1.6vw,30px)}body[data-game=one_line_doodle] #stage .doodle-score strong{font-size:clamp(24px,2vw,40px)}
@media(max-height:800px){body[data-game=one_line_doodle] #stage .doodle-world{padding:14px;gap:8px}body[data-game=one_line_doodle] #stage .doodle-people{font-size:24px;line-height:1.2}body[data-game=one_line_doodle] #stage .doodle-detail{font-size:18px;line-height:1.25}body[data-game=one_line_doodle] #stage .doodle-score{padding:6px;font-size:18px}body[data-game=one_line_doodle] #stage .doodle-score strong{font-size:24px}}
body[data-game=one_line_doodle] #stage .doodle-info{grid-area:3/2/4/3;display:flex;flex-direction:column;justify-content:center;gap:18px;min-width:0;min-height:0;order:0}
body[data-game=one_line_doodle] #stage .doodle-info>*{order:0;grid-area:auto}
body[data-game=one_line_doodle].has-cast #stage .doodle-scores{display:none}
body[data-game=one_line_doodle] #stage .doodle-canvas polyline{stroke-width:clamp(4px,.32vw,10px)}

/* Same warm stage, a private acting card and an authoritative public countdown. */
.charades-world{box-sizing:border-box;width:100%;min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}
.charades-world p,.charades-world h2{margin:0;overflow-wrap:anywhere}.charades-progress{font-size:13px;font-weight:800;color:#a93810}.charades-people{font-size:20px;line-height:1.3}.charades-category{font-size:16px;color:#596d6a}
.charades-stage{display:flex;flex-direction:column-reverse;align-items:center;gap:16px;min-width:0;min-height:0}.charades-cue{box-sizing:border-box;min-width:0;width:100%;min-height:140px;padding:20px;border:2px solid #d9c7a9;border-radius:20px;background:#fff4de;display:grid;place-items:center;font-size:30px;font-weight:800;line-height:1.2;white-space:pre-line;overflow-wrap:anywhere}
.charades-clock{display:block;flex:none;width:160px;height:160px;direction:ltr}.charades-clock-track{stroke:#dfd1b7}.charades-clock-ring{stroke:#c74412;stroke-linecap:round;transition:stroke-dashoffset .2s ease-out}.charades-clock text{fill:#183e46;font:700 32px system-ui,sans-serif}
.charades-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.charades-controls[hidden]{display:none}.charades-controls button{box-sizing:border-box;min-width:0;min-height:48px;padding:12px;border:1px solid #a93810;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;font-size:16px;font-weight:700;cursor:pointer;white-space:normal}.charades-controls .charades-correct,.charades-controls .charades-ready{background:#a93810;color:#fff}.charades-controls button:disabled{opacity:.55;cursor:default}.charades-controls button:focus-visible{outline:3px solid #183e46;outline-offset:3px}
.charades-detail{font-size:16px;line-height:1.4;white-space:pre-line}.charades-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.charades-score{min-width:0;padding:10px;border-radius:12px;background:#fff4de;display:flex;flex-direction:column;gap:4px;font-size:14px;overflow-wrap:anywhere}.charades-score strong{font-size:22px;font-variant-numeric:tabular-nums}
body[data-game=charades] #stage .charades-world{height:100%;padding:20px;gap:12px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto auto}
body[data-game=charades] #stage .charades-progress{font-size:clamp(20px,1.8vw,32px)}body[data-game=charades] #stage .charades-people{font-size:clamp(24px,2.3vw,42px)}body[data-game=charades] #stage .charades-category{font-size:clamp(20px,1.7vw,30px)}
body[data-game=charades] #stage .charades-stage{display:grid;grid-template-columns:minmax(0,3fr) minmax(160px,1fr);align-items:center;min-height:0}body[data-game=charades] #stage .charades-cue{height:100%;min-height:0;font-size:clamp(32px,3.3vw,64px)}body[data-game=charades] #stage .charades-clock{width:min(100%,32vh);height:auto;aspect-ratio:1;justify-self:center}
body[data-game=charades] #stage .charades-detail{font-size:clamp(20px,1.8vw,32px)}body[data-game=charades] #stage .charades-scores{grid-template-columns:repeat(6,minmax(0,1fr))}body[data-game=charades].has-cast #stage .charades-scores{display:none}
body[data-game=charades] #stage .charades-world:is([data-phase=reveal],[data-phase=final]) .charades-stage{grid-template-columns:1fr}
@media(max-height:800px){body[data-game=charades] #stage .charades-world{padding:14px;gap:8px}body[data-game=charades] #stage .charades-people{font-size:24px}body[data-game=charades] #stage .charades-detail{font-size:18px;line-height:1.25}}
@media(prefers-reduced-motion:reduce){.charades-clock-ring{transition:none}}

/* The guesser sees a sealed tactile card; clue-givers own the actual subject. */
.challenge-world{box-sizing:border-box;width:100%;min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}.challenge-world [hidden]{display:none}.challenge-world p,.challenge-world h2{margin:0;overflow-wrap:anywhere}.challenge-progress{font-size:13px;font-weight:800;color:#a93810;line-height:1.3}.challenge-people{font-size:22px;line-height:1.3}.challenge-vibe{font-size:14px;color:#a93810;font-weight:700}
.challenge-card{box-sizing:border-box;min-width:0;min-height:260px;padding:20px;border:2px solid #d9c7a9;border-radius:20px;background:#fff4de;display:grid;place-items:center;transition:transform .18s ease-out;user-select:none;-webkit-user-select:none}.challenge-cue{font-size:28px;line-height:1.2;white-space:pre-line}.challenge-moods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.challenge-mood{box-sizing:border-box;min-height:112px;min-width:0;padding:16px;border:1px solid #d9c7a9;border-radius:20px;background:#fff4de;color:#a93810;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;overflow-wrap:anywhere}.challenge-mood-icon{width:44px;height:44px;flex:none;direction:ltr}.challenge-mood strong{font-size:18px}.challenge-mood:focus-visible{outline:3px solid #183e46;outline-offset:3px}
.challenge-controls{display:flex;flex-direction:column;gap:10px}.challenge-controls button{box-sizing:border-box;min-width:0;min-height:48px;padding:12px;border:1px solid #a93810;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;font-size:16px;font-weight:700;cursor:pointer;white-space:normal}.challenge-controls .challenge-next{background:#a93810;color:#fff}.challenge-world button:disabled{opacity:.55;cursor:default}.challenge-controls button:focus-visible{outline:3px solid #183e46;outline-offset:3px}.challenge-detail{font-size:16px;line-height:1.4;white-space:pre-line}
body[data-game=challenge] #stage .challenge-world{height:100%;padding:20px;gap:12px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto}body[data-game=challenge] #stage .challenge-world[data-phase=picking]{grid-template-rows:auto auto minmax(0,1fr) auto}body[data-game=challenge] #stage .challenge-progress{font-size:clamp(20px,1.8vw,32px)}body[data-game=challenge] #stage .challenge-people{font-size:clamp(28px,2.6vw,46px)}body[data-game=challenge] #stage .challenge-vibe{font-size:clamp(20px,1.8vw,32px)}body[data-game=challenge] #stage .challenge-card{min-height:0;height:auto;padding:24px}body[data-game=challenge] #stage .challenge-cue{font-size:clamp(32px,3.3vw,64px)}body[data-game=challenge] #stage .challenge-world.challenge-long-card .challenge-cue{font-size:clamp(24px,2.1vw,46px);line-height:1.15}body[data-game=challenge] #stage .challenge-moods{grid-template-columns:repeat(5,minmax(0,1fr))}body[data-game=challenge] #stage .challenge-mood{min-height:140px}body[data-game=challenge] #stage .challenge-mood-icon{width:clamp(44px,4.5vw,90px);height:clamp(44px,4.5vw,90px)}body[data-game=challenge] #stage .challenge-mood strong{font-size:clamp(24px,2.2vw,42px)}body[data-game=challenge] #stage .challenge-detail{font-size:clamp(20px,1.8vw,32px)}
@media(max-height:800px){body[data-game=challenge] #stage .challenge-world{padding:14px;gap:8px}body[data-game=challenge] #stage .challenge-people{font-size:28px}body[data-game=challenge] #stage .challenge-detail{font-size:18px;line-height:1.25}body[data-game=challenge] #stage .challenge-card{padding:18px}}
@media(prefers-reduced-motion:reduce){.challenge-card{transition:none}}
.missions-world{box-sizing:border-box;width:100%;min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}.missions-world [hidden]{display:none}.missions-world p,.missions-world h2{margin:0;overflow-wrap:anywhere}.missions-progress{font-size:13px;font-weight:800;color:#a93810;line-height:1.3}.missions-people{font-size:20px;line-height:1.3}
.missions-card{box-sizing:border-box;min-width:0;min-height:200px;padding:20px;border:2px solid #d9c7a9;border-radius:20px;background:#fff4de;display:grid;place-items:center;transition:transform .18s ease-out;user-select:none;-webkit-user-select:none}.missions-cue{font-size:28px;line-height:1.2;white-space:pre-line}.missions-secret{box-sizing:border-box;min-height:264px;width:100%;padding:24px;border:2px solid #d9c7a9;border-radius:24px;background:#fff4de;color:#183e46;font:inherit;font-size:28px;font-weight:700;line-height:1.3;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:pointer;overflow-wrap:anywhere}.missions-secret[data-revealed=true]{background:#fff0d0;border-color:#187c75}.missions-secret:focus-visible{outline:3px solid #183e46;outline-offset:3px}
.missions-controls{display:flex;flex-direction:column;gap:10px}.missions-controls[hidden]{display:none}.missions-controls button{box-sizing:border-box;min-width:0;min-height:48px;padding:12px;border:1px solid #a93810;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;font-size:16px;font-weight:700;cursor:pointer;white-space:normal}.missions-controls .missions-received{background:#a93810;color:#fff}.missions-controls button:disabled{opacity:.55;cursor:default}.missions-controls button:focus-visible{outline:3px solid #183e46;outline-offset:3px}.missions-verdict-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.missions-controls .missions-verdict-grid button{min-height:112px;font-size:22px;background:#fff4de}.missions-detail{font-size:16px;line-height:1.4;white-space:pre-line}.missions-result{padding:12px;border-radius:12px;background:#fff4de;color:#a93810;font-size:18px;font-weight:800;line-height:1.35}
body[data-game=missions] #stage .missions-world{height:100%;padding:20px;gap:12px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto}body[data-game=missions] #stage .missions-progress{font-size:clamp(20px,1.8vw,32px)}body[data-game=missions] #stage .missions-people{font-size:clamp(26px,2.6vw,46px)}body[data-game=missions] #stage .missions-card{min-height:0;height:auto;padding:24px}body[data-game=missions] #stage .missions-cue{font-size:clamp(32px,3.3vw,64px)}body[data-game=missions] #stage .missions-world.missions-long-card .missions-cue{font-size:clamp(24px,2.1vw,46px);line-height:1.15}body[data-game=missions] #stage .missions-detail{font-size:clamp(20px,1.8vw,32px)}body[data-game=missions] #stage .missions-result{font-size:clamp(22px,2.2vw,40px)}
@media(max-height:800px){body[data-game=missions] #stage .missions-world{padding:14px;gap:8px}body[data-game=missions] #stage .missions-people{font-size:26px}body[data-game=missions] #stage .missions-detail{font-size:18px;line-height:1.25}body[data-game=missions] #stage .missions-card{padding:18px}body[data-game=missions] #stage .missions-result{font-size:22px;padding:8px}}
@media(prefers-reduced-motion:reduce){.missions-card{transition:none}}
.truth-world{box-sizing:border-box;width:100%;min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}.truth-world p,.truth-world h2{margin:0;overflow-wrap:anywhere}.truth-progress{font-size:13px;font-weight:800;color:#a93810}.truth-people{font-size:20px;line-height:1.3}.truth-scope{font-size:14px;color:#596d6a;line-height:1.4}
.truth-card{box-sizing:border-box;min-width:0;min-height:200px;padding:20px;border:2px solid #d9c7a9;border-radius:20px;background:#fff4de;display:flex;flex-direction:column;justify-content:center;gap:14px;transition:transform .18s ease-out}.truth-privacy{font-size:14px;font-weight:800;color:#a93810;line-height:1.4}.truth-cue{font-size:28px;line-height:1.2;white-space:pre-line}.truth-controls{display:flex;flex-direction:column;gap:10px}.truth-controls[hidden]{display:none}.truth-controls button{box-sizing:border-box;min-width:0;min-height:48px;padding:12px;border:1px solid #a93810;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;font-size:16px;font-weight:700;cursor:pointer;white-space:normal}.truth-controls .truth-share,.truth-controls .truth-volunteer{background:#a93810;color:#fff}.truth-controls button:disabled{opacity:.55;cursor:default}.truth-controls button:focus-visible{outline:3px solid #183e46;outline-offset:3px}.truth-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.truth-controls .truth-choice-grid button{min-height:112px;font-size:26px;background:#fff4de}.truth-detail{font-size:16px;line-height:1.4;white-space:pre-line}
body[data-game=truth_or_dare] #stage .truth-world{height:100%;padding:20px;gap:12px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto}body[data-game=truth_or_dare] #stage .truth-progress{font-size:clamp(20px,1.8vw,32px)}body[data-game=truth_or_dare] #stage .truth-people{font-size:clamp(26px,2.6vw,46px)}body[data-game=truth_or_dare] #stage .truth-scope,body[data-game=truth_or_dare] #stage .truth-privacy{font-size:clamp(20px,1.8vw,32px)}body[data-game=truth_or_dare] #stage .truth-card{min-height:0;height:auto;padding:24px}body[data-game=truth_or_dare] #stage .truth-cue{font-size:clamp(32px,3.3vw,64px)}body[data-game=truth_or_dare] #stage .truth-detail{font-size:clamp(20px,1.8vw,32px)}
@media(max-height:800px){body[data-game=truth_or_dare] #stage .truth-world{padding:14px;gap:8px}body[data-game=truth_or_dare] #stage .truth-people{font-size:26px}body[data-game=truth_or_dare] #stage .truth-detail{font-size:18px;line-height:1.25}body[data-game=truth_or_dare] #stage .truth-card{padding:18px}}
@media(prefers-reduced-motion:reduce){.truth-card{transition:none}}
.truth-card{user-select:none;-webkit-user-select:none}
body[data-game=truth_or_dare] #stage .truth-world.truth-long-card .truth-cue{font-size:clamp(24px,2.1vw,46px);line-height:1.15}
.impressions-world{box-sizing:border-box;width:100%;min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}
.impressions-world p,.impressions-world h2{margin:0;overflow-wrap:anywhere}.impressions-progress{font-size:13px;font-weight:800;color:#a93810}.impressions-people{font-size:19px;line-height:1.3}
.impressions-card{box-sizing:border-box;min-width:0;min-height:160px;padding:18px;border:2px solid #d9c7a9;border-radius:20px;background:#fff4de;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px}.impressions-cue{font-size:28px;line-height:1.2;white-space:pre-line}.impressions-mark{display:block;flex:none;height:56px;width:56px;direction:ltr}
.impressions-result{padding:12px;border-radius:12px;background:#fff4de;color:#a93810;font-size:22px;font-weight:800;line-height:1.3}.impressions-controls{display:flex;flex-direction:column;gap:10px}.impressions-controls[hidden]{display:none}.impressions-controls button{box-sizing:border-box;min-width:0;min-height:48px;padding:12px;border:1px solid #a93810;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;font-size:16px;font-weight:700;cursor:pointer;white-space:normal}.impressions-controls .impressions-lock,.impressions-controls .impressions-done{background:#a93810;color:#fff}.impressions-controls button:disabled{opacity:.55;cursor:default}.impressions-controls button:focus-visible{outline:3px solid #183e46;outline-offset:3px}
.impressions-star-arc{display:flex;justify-content:space-between;align-items:center;min-height:96px;gap:2px;padding:8px 0;direction:ltr}.impressions-controls .impressions-star{flex:1;max-width:52px;min-width:44px;min-height:52px;padding:0;font-size:32px;background:#fff0d0;color:#805007;border-color:#96620b;border-radius:26px}.impressions-star:nth-child(2),.impressions-star:nth-child(4){transform:translateY(-12px)}.impressions-star:nth-child(3){transform:translateY(-20px)}.impressions-star[aria-pressed=true]{box-shadow:0 0 0 3px #183e46}
.impressions-detail{font-size:16px;line-height:1.4;white-space:pre-line}.impressions-suggestion{font-size:14px;line-height:1.4}.impressions-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.impressions-score{min-width:0;padding:10px;border-radius:12px;background:#fff4de;display:flex;flex-direction:column;gap:4px;font-size:14px;overflow-wrap:anywhere}.impressions-score strong{font-size:22px;font-variant-numeric:tabular-nums}
.impressions-world[data-phase=reveal] .impressions-mark{animation:impressions-settle .45s ease-out}.impressions-controls .impressions-star{transition:background-color .12s,box-shadow .12s}.impressions-star:active{background:#eeb74c}
@keyframes impressions-settle{0%{opacity:.45;transform:scale(.85) rotate(-8deg)}65%{opacity:1;transform:scale(1.08) rotate(3deg)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.impressions-world[data-phase=reveal] .impressions-mark{animation:none}.impressions-controls .impressions-star{transition:none}}
body[data-game=impressions] #stage .impressions-world{height:100%;padding:20px;gap:12px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto}
body[data-game=impressions] #stage .impressions-progress{font-size:clamp(20px,1.8vw,32px)}body[data-game=impressions] #stage .impressions-people{font-size:clamp(24px,2.3vw,42px)}body[data-game=impressions] #stage .impressions-card{min-height:0;height:auto;flex-direction:row;gap:28px}body[data-game=impressions] #stage .impressions-mark{height:clamp(68px,8vw,160px);width:clamp(68px,8vw,160px)}body[data-game=impressions] #stage .impressions-cue{font-size:clamp(30px,3vw,60px)}
body[data-game=impressions] #stage .impressions-result{font-size:clamp(24px,2.5vw,46px)}body[data-game=impressions] #stage .impressions-detail{font-size:clamp(20px,1.8vw,32px)}body[data-game=impressions] #stage .impressions-scores{grid-template-columns:repeat(6,minmax(0,1fr))}body[data-game=impressions].has-cast #stage .impressions-scores{display:none}
@media(max-height:800px){body[data-game=impressions] #stage .impressions-world{padding:14px;gap:8px}body[data-game=impressions] #stage .impressions-people{font-size:24px}body[data-game=impressions] #stage .impressions-detail{font-size:18px;line-height:1.25}body[data-game=impressions] #stage .impressions-result{font-size:24px;padding:8px}}
.forehead-world{box-sizing:border-box;width:100%;min-width:0;min-height:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}
.forehead-world p,.forehead-world h2{margin:0;overflow-wrap:anywhere}.forehead-progress{font-size:13px;font-weight:800;color:#a93810}.forehead-people{font-size:20px;line-height:1.3}
.forehead-card{box-sizing:border-box;min-width:0;min-height:200px;padding:20px;border:2px solid #d9c7a9;border-radius:20px;background:#fff4de;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px}.forehead-cue{font-size:30px;line-height:1.2;white-space:pre-line}.forehead-mark{display:block;flex:none;height:64px;width:64px;direction:ltr}
.forehead-request{padding:12px;border-radius:12px;background:#fff4de;color:#a93810;font-size:17px;font-weight:800;line-height:1.35}.forehead-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.forehead-controls[hidden]{display:none}.forehead-controls button{box-sizing:border-box;min-width:0;min-height:48px;padding:12px;border:1px solid #a93810;border-radius:14px;background:#fffcf4;color:#a93810;font:inherit;font-size:16px;font-weight:700;cursor:pointer;white-space:normal}.forehead-controls .forehead-correct,.forehead-controls .forehead-ready{background:#a93810;color:#fff}.forehead-controls .forehead-tilt,.forehead-controls .forehead-not_yet{grid-column:1/-1}.forehead-controls button:disabled{opacity:.55;cursor:default}.forehead-controls button:focus-visible{outline:3px solid #183e46;outline-offset:3px}
.forehead-detail,.forehead-motion-status{font-size:16px;line-height:1.4;white-space:pre-line}.forehead-motion-status{font-size:14px;color:#596d6a}.forehead-scores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.forehead-score{min-width:0;padding:10px;border-radius:12px;background:#fff4de;display:flex;flex-direction:column;gap:4px;font-size:14px;overflow-wrap:anywhere}.forehead-score strong{font-size:22px;font-variant-numeric:tabular-nums}
body[data-game=forehead_kw] #stage .forehead-world{height:100%;padding:20px;gap:12px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto}
body[data-game=forehead_kw] #stage .forehead-progress{font-size:clamp(20px,1.8vw,32px)}body[data-game=forehead_kw] #stage .forehead-people{font-size:clamp(24px,2.3vw,42px)}body[data-game=forehead_kw] #stage .forehead-card{min-height:0;height:auto;flex-direction:row;gap:28px}body[data-game=forehead_kw] #stage .forehead-mark{height:clamp(72px,9vw,180px);width:clamp(72px,9vw,180px)}body[data-game=forehead_kw] #stage .forehead-cue{font-size:clamp(32px,3.3vw,64px)}
body[data-game=forehead_kw] #stage .forehead-request{font-size:clamp(22px,2vw,38px)}body[data-game=forehead_kw] #stage .forehead-detail{font-size:clamp(20px,1.8vw,32px)}body[data-game=forehead_kw] #stage .forehead-scores{grid-template-columns:repeat(6,minmax(0,1fr))}body[data-game=forehead_kw].has-cast #stage .forehead-scores{display:none}
@media(max-height:800px){body[data-game=forehead_kw] #stage .forehead-world{padding:14px;gap:8px}body[data-game=forehead_kw] #stage .forehead-people{font-size:24px}body[data-game=forehead_kw] #stage .forehead-detail{font-size:18px;line-height:1.25}body[data-game=forehead_kw] #stage .forehead-request{font-size:20px;padding:8px}}
.bottle-world{box-sizing:border-box;width:100%;min-width:0;padding:18px;display:flex;flex-direction:column;gap:12px;background:#fffcf4;color:#183e46;border:1px solid #d9c7a9;border-radius:24px;text-align:center}.bottle-world [hidden]{display:none}.bottle-world p,.bottle-world h2{margin:0;overflow-wrap:anywhere}.bottle-progress{font-size:13px;line-height:1.3;color:#a93810;font-weight:800}.bottle-result{font-size:25px;line-height:1.25}.bottle-detail{font-size:15px;line-height:1.4}
.bottle-table{position:relative;width:100%;aspect-ratio:1;min-height:280px;isolation:isolate;background:#fff4de;border-radius:24px;overflow:hidden}.bottle-ring{position:absolute;inset:20%;border:2px solid #d9c7a9;border-radius:50%;pointer-events:none}.bottle-object{position:absolute;left:36%;top:27.5%;width:28%;height:45%;padding:0;border:0;background:none;cursor:pointer;z-index:2;user-select:none;-webkit-user-select:none}.bottle-object svg{width:100%;height:100%;overflow:visible;transform-origin:center;filter:drop-shadow(0 3px 3px #183e4620)}.bottle-object:disabled{opacity:1;cursor:default}.bottle-seats{position:absolute;inset:0;pointer-events:none}.bottle-seat{position:absolute;transform:translate(-50%,-50%);box-sizing:border-box;width:23%;padding:5px 3px;background:#fffcf4;border:1px solid #d9c7a9;border-radius:10px;line-height:1.15}.bottle-name{font-size:12px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bottle-safe{display:block;font-size:10px;font-weight:800;margin-top:3px}.bottle-seat[data-selected=true]{background:#be3b20;color:white;border-color:#a93810}.bottle-spin{min-height:48px;border:0;border-radius:16px;background:#a93810;color:white;font:inherit;font-weight:800;cursor:pointer}.bottle-spin:disabled{opacity:.55}.bottle-world button:focus-visible{outline:3px solid #183e46;outline-offset:3px}
body[data-game=spin_bottle] #stage .bottle-world{height:100%;padding:20px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:24px;align-items:center}body[data-game=spin_bottle] #stage .bottle-table{grid-column:1;grid-row:1/4;height:100%;min-height:0;aspect-ratio:auto}body[data-game=spin_bottle] #stage .bottle-progress{grid-column:2;grid-row:1;font-size:clamp(20px,1.8vw,34px)}body[data-game=spin_bottle] #stage .bottle-result{grid-column:2;grid-row:2;font-size:clamp(32px,3vw,64px)}body[data-game=spin_bottle] #stage .bottle-detail{grid-column:2;grid-row:3;font-size:clamp(18px,1.7vw,32px)}body[data-game=spin_bottle] #stage .bottle-name{font-size:clamp(16px,1.5vw,28px)}body[data-game=spin_bottle] #stage .bottle-safe{font-size:clamp(14px,1.2vw,24px)}body[data-game=spin_bottle] #stage .bottle-seat{padding:8px 6px}body[data-game=spin_bottle] #stage .bottle-spin{display:none}
@media(max-height:800px){body[data-game=spin_bottle] #stage .bottle-world{padding:12px;gap:16px}body[data-game=spin_bottle] #stage .bottle-result{font-size:32px}body[data-game=spin_bottle] #stage .bottle-detail{font-size:18px}}
.bottle-art{position:absolute;inset:0;display:block;transform-origin:50% 50%}.bottle-art svg{display:block}.bottle-world[data-dense=true] .bottle-seat{width:17%}

/* Full-canvas Eights public stage; private hand never participates in this tree. */
html [data-eights-public][data-mode=tv]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;gap:8px;padding:clamp(10px,1.5vw,36px)}
html [data-eights-public][data-mode=tv] .v2-surface-body{min-height:0}
html [data-eights-public][data-mode=tv] .v2-surface-title{font-size:clamp(24px,3vw,80px)}
html [data-eights-public][data-mode=tv] .v2-eights-table{height:100%;grid-template-rows:minmax(0,1fr) auto}
html [data-eights-public][data-mode=tv] .v2-eights-piles{height:100%;min-height:0;padding:6px;background:#E7EEDC;border:2px solid #D3BC8F;border-radius:24px}
html [data-eights-public][data-mode=tv] .v2-eights-discard,
html [data-eights-public][data-mode=tv] .v2-eights-stock{height:100%;width:32%;grid-template-rows:minmax(0,1fr) auto}
html [data-eights-public][data-mode=tv] .v2-card-material,
html [data-eights-public][data-mode=tv] .v2-eights-card-back{height:100%;width:auto;inline-size:auto;aspect-ratio:.68;max-width:100%;min-height:0;container-type:size}
html [data-eights-public][data-mode=tv] .v2-eights-card-back{font-size:clamp(48px,9vh,180px)}
html [data-eights-public][data-mode=tv] .v2-card-rank{font-size:18cqh;line-height:1}
html [data-eights-public][data-mode=tv] .v2-card-suit{font-size:38cqh;line-height:1}
html [data-eights-public][data-mode=tv] .v2-card-suit-label{font-size:18cqh}
html [data-eights-public][data-mode=tv] .v2-eights-receipt{margin:0;font-size:clamp(14px,1.8vw,40px)}
html [data-eights-public] .v2-surface-footer:empty{display:none}
body[data-game=crazy_eights].show-finale .diwaniya-beat{display:none}
html [data-hearts-public][data-mode=tv]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;gap:8px;padding:clamp(10px,1.5vw,32px)}
html [data-hearts-public][data-mode=tv] .v2-surface-body{min-height:0}
html [data-hearts-public][data-mode=tv] .v2-surface-title{font-size:clamp(24px,3vw,80px)}
html [data-hearts-public][data-mode=tv] .v2-surface-prompt{display:none}
html [data-hearts-public][data-mode=tv] .v2-hearts-seat{padding:6px}
html [data-hearts-public][data-mode=tv] .v2-hearts-seat-name{font-size:clamp(14px,1.4vw,54px)}
html [data-hearts-public][data-mode=tv] .v2-hearts-seat-total{font-size:clamp(22px,1.9vw,72px)}
html [data-hearts-public][data-mode=tv] .v2-hearts-seat-detail,html [data-hearts-public][data-mode=tv] .v2-hearts-seat-ready{font-size:clamp(10px,1vw,28px)}
body[data-game=hearts] .diwaniya-cast{display:none}
html [data-hearts-public][data-mode=tv] .v2-hearts-table{height:100%;min-height:0}
html [data-hearts-public][data-mode=tv] .v2-hearts-face-well .v2-card-material{inline-size:min(100cqw,calc(100cqh*.68));block-size:auto;height:auto;aspect-ratio:.68;max-block-size:100%}
body[data-game=hearts].show-finale .diwaniya-beat{display:none}
@media(max-height:540px){body[data-game=hearts] .diwaniya-cast{display:none}html [data-hearts-public][data-mode=tv] .v2-surface-prompt{display:none}html [data-hearts-public][data-mode=tv] .v2-hearts-seat{padding:4px}html [data-hearts-public][data-mode=tv] .v2-hearts-seat-total{font-size:24px}html [data-hearts-public][data-mode=tv] .v2-hearts-seat-detail,html [data-hearts-public][data-mode=tv] .v2-hearts-seat-ready{font-size:11px}}
@media(max-height:540px){body[data-game=crazy_eights] .diwaniya-cast{display:none}html [data-eights-public][data-mode=tv] .v2-eights-seat{padding:4px;gap:2px}html [data-eights-public][data-mode=tv] .v2-eights-called,html [data-eights-public][data-mode=tv] .v2-eights-stock-label{font-size:14px}}
