:root{color-scheme:dark;font-family:Segoe UI,system-ui,sans-serif;color:#edf5f9;background:#0b141c;font-size:16px;--muted:#aebfc9;--accent:#c8f582}*{box-sizing:border-box}body{margin:0}header{position:sticky;top:0;z-index:5;background:#101d27f5;backdrop-filter:blur(12px);padding:12px max(16px,calc((100vw - 1200px)/2));border-bottom:1px solid #344551}.brand{font-size:24px;font-weight:900;letter-spacing:2px;display:inline-block}.brand span{font-size:11px;font-weight:600;color:var(--accent);letter-spacing:2px;margin-left:10px}#connection{float:right;font-size:12px;color:var(--muted);max-width:48%;text-align:right}main{max-width:1200px;margin:auto;padding:24px 16px}h1{font-size:clamp(32px,6vw,56px);line-height:1.08;margin:14px 0 24px;letter-spacing:-1.5px}h2{font-size:22px;margin:0 0 12px}h3{font-size:18px}p{line-height:1.6;color:var(--muted)}button,input{font:inherit}button{border:1px solid transparent;border-radius:9px;background:var(--accent);color:#152117;padding:12px 17px;cursor:pointer;font-weight:650;min-height:44px}button.secondary{background:#253642;color:#f0f7fb;border-color:#496170}button.quiet{background:transparent;color:#d6e5ec;text-decoration:underline;font-size:14px;padding:8px}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid white;outline-offset:3px}input{display:block;width:100%;background:#0b1720;border:1px solid #5c727f;color:white;border-radius:7px;padding:12px;margin:8px 0 16px;font-size:17px}label{display:block;font-weight:600;line-height:1.5}label small{display:block;color:var(--muted);font-weight:400}.panel{background:#14232d;border:1px solid #30424e;border-radius:15px;padding:24px;margin-bottom:20px}#entry{max-width:680px;margin:30px auto}#entry-form{max-width:460px}.eyebrow{color:var(--accent);font-size:12px;letter-spacing:2px;font-weight:700}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px}.roomline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}#room-code{font-size:22px;letter-spacing:2px}#identity{color:var(--muted)}#scores{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.score{border-left:4px solid var(--player);background:#1a2c38;border-radius:5px;padding:7px 12px;flex:1;min-width:120px;font-size:13px}.score strong{color:var(--player);display:block;font-size:15px}.score.current{outline:1px solid var(--player)}#turn{font-size:14px;margin-top:9px;color:#e8f5dc}#views{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}#views button{color:var(--player,#e3edf4);background:#182935;border:2px solid #344956}#views button[aria-pressed=true]{border-color:var(--player,#e3edf4);background:#2b404d}#lines{margin-top:15px}.line{border-left:5px solid var(--player);background:#11222e;border-radius:8px;padding:15px;margin-bottom:20px}.line h3{color:var(--player);margin:0 0 13px}.cards{display:flex;gap:12px;overflow-x:auto;padding:5px 0 14px;align-items:stretch}.card{flex:0 0 255px;border:1px solid #455c6a;background:#203340;border-radius:10px;padding:15px}.single .card{flex-basis:300px}.card time{color:var(--accent);font-weight:750}.card h4{margin:12px 0;font-size:17px;line-height:1.4}.card p{margin:0;font-size:14px}.card small{float:right;color:var(--muted)}.slot{flex:0 0 125px;background:#1a3441;color:#d4e4ec;border:2px dashed #608496;font-size:14px}.slot[aria-pressed=true]{background:#385a32;border:2px solid var(--accent)}.video-title{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}video{width:100%;max-height:420px;background:black;margin-top:16px;display:block;border-radius:8px}#video-message{font-size:13px}.score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:420px}input[type=checkbox]{display:inline;width:auto;margin-right:10px}#error{background:#562d2b;color:#fff;padding:16px;border:1px solid #ef978a;border-radius:10px;margin-bottom:16px}#controls ul{line-height:1.8}.waiting{color:#ffcf8a}.rules{margin-top:26px}.rules summary{cursor:pointer;font-weight:600}.accepted{color:var(--accent)}footer{text-align:center;color:var(--muted);padding:20px;font-size:12px}[hidden]{display:none!important}@media(max-width:600px){.panel{padding:17px}main{padding:16px 12px}.score{min-width:90px;padding:5px 8px;font-size:12px}.score strong{font-size:13px}header{padding:10px 12px}.brand span{display:none}.single .card{flex-basis:260px}.video-title h2{font-size:18px}#views button{padding:10px}.line{padding:12px}}

#entry{max-width:100%;margin:12px auto}#entry h1{font-size:clamp(28px,5vw,42px)}#profile-form,#join-code-form{max-width:480px}#join-code-form{margin-top:24px}#lobby-rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px;margin-bottom:28px}.lobby-room{border:1px solid #496170;border-radius:12px;padding:18px;background:#182e3b}.lobby-room h3{margin:0 0 12px}.notice{border-left:4px solid var(--accent);padding:14px 18px;margin-bottom:20px;background:#20333d}.notice p{margin:6px 0}a{color:#c8f582}.help{font-size:13px}#share-note{flex-basis:100%;margin:0}.lobby-room small{color:var(--muted)}

/* A stable border remains when motion is off or the OS requests reduced motion. */
.action-group{border:2px solid transparent;border-radius:10px;padding:14px}
.action-group.needs-action{border-color:#96b8d3;background:#192d3d}
.task-message{color:#edf5f9;font-weight:650;margin-top:0}
.card.provisional{border:2px dashed #96b8d3;background:#192d3d;color:#edf5f9}
.provisional strong{color:#d8eafb}
.pulse-enabled:not(.sending) .needs-action{animation:task-pulse 1.5s ease-in-out infinite}
@keyframes task-pulse{0%,100%{border-color:#526c81;box-shadow:inset 0 0 0 1px #77d5ff10;background-color:#14232d}50%{border-color:#d5f6ff;box-shadow:0 0 18px 3px #77d5ff80,inset 0 0 0 2px #b5ebff90;background-color:#30516a}}
@media(prefers-reduced-motion:reduce){.pulse-enabled:not(.sending) .needs-action{animation:none}}
.pulse-setting{font-size:14px;margin-bottom:18px}.pulse-setting input{margin-bottom:0}
/* Shared countdown stays visible even after this player's answer or with motion off. */
.hourglass-panel.countdown-active{border-color:#a7e8a9;background:#1a302b;box-shadow:inset 0 0 0 1px #a7e8a930}
.pulse-enabled .hourglass-panel.countdown-active{animation:hourglass-pulse 1.5s ease-in-out infinite}
.pulse-enabled .hourglass-panel.countdown-active:not(.countdown-running){animation-play-state:paused}
.pulse-enabled #controls.countdown-expired .needs-action,.pulse-enabled #controls.countdown-paused .needs-action{animation:none}
@keyframes hourglass-pulse{0%,100%{border-color:#709c81;background-color:#182b27;box-shadow:0 0 4px #a7e8a915}50%{border-color:#c5f3cb;background-color:#264237;box-shadow:0 0 14px #a7e8a945}}
@media(prefers-reduced-motion:reduce){.pulse-enabled .hourglass-panel.countdown-active{animation:none}}
.card-context{border-left:4px solid #96b8d3}.card-context p{margin-bottom:0}
#controls{padding:10px}.provisional{scroll-margin-top:230px}
@media(max-width:600px){.single .card,.card{flex-basis:220px}.action-group{padding:10px}.slot{flex-basis:105px}.provisional{scroll-margin-top:250px}}
.preview-neighbours{border-top:1px solid #496170;padding-top:10px;margin-top:12px!important;font-size:12px!important}

/* Player colors belong to stable server seat indexes; pending markers never animate. */
.line{border:1px solid var(--player);border-left-width:5px;background:color-mix(in srgb,var(--player) 7%,#11222e)}
.line .card{border-color:color-mix(in srgb,var(--player) 55%,#455c6a);background:color-mix(in srgb,var(--player) 10%,#172731)}
.line .card time{color:var(--player)}
.line .cards{padding:22px 4px 18px;align-items:stretch}
.line .card.provisional{transform:translateY(-12px);border:2px dashed var(--player);background:color-mix(in srgb,var(--player) 20%,#172731);animation:none}
.pending-person{border-left:5px solid var(--marker);border-radius:5px;padding:9px;margin-bottom:8px;color:var(--marker);background:#10202e;font-weight:750;line-height:1.5;overflow-wrap:anywhere}
.buttons [data-command=challenge],.buttons [data-command=passChallenge]{background:var(--accent);color:#152117}
.challenge-help{color:#edf5f9;font-weight:650}
/* Room tools stay in normal document flow on phones. */
#room{min-width:0}#room-chat{min-width:0}#room-chat summary{cursor:pointer;font-weight:700;min-height:44px;padding:10px 0}
#chat-messages{max-height:340px;overflow-y:auto;overscroll-behavior:contain;overflow-wrap:anywhere}
#chat-messages article{border-bottom:1px solid #3c5260;padding:10px 0}#chat-messages p{white-space:pre-wrap;margin:6px 0;color:#ecf3f7}#chat-messages time{font-size:11px;color:var(--muted)}
textarea{font:inherit;width:100%;background:#0b1720;color:white;border:1px solid #5c727f;border-radius:8px;padding:10px;resize:vertical}
#chat-unread{color:#ffcf8a}.presence-person{display:block;font-size:13px;margin:4px 0}
dialog{color:#edf5f9;background:#14232d;border:1px solid #607f90;border-radius:12px;max-width:min(600px,92vw);max-height:90vh;overflow:auto}dialog::backdrop{background:#0009}dialog .buttons{margin-bottom:18px}.danger{background:#71393c;color:white}
#saved-rooms article{padding:14px;border:1px solid #3c5260;border-radius:8px;margin-bottom:12px}
@media(min-width:1100px){#room{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0 20px;align-items:start}#room>*{grid-column:1}#room>#room-chat{grid-column:2;grid-row:1 / span 20;position:sticky;top:180px;padding:18px}#chat-messages{max-height:40vh}}
@media(max-width:600px){#room-chat{padding:10px 16px}#chat-messages{max-height:230px}#room-actions button{width:100%}}
.hourglass-buttons{display:flex;gap:12px;align-items:center}.hourglass-button{background:#294d3c;color:#e5f4e8;border:2px solid #6a9975;touch-action:manipulation;user-select:none;-webkit-touch-callout:none;min-height:48px}.hourglass-button.available{background:#a7e8a9;color:#123421;border-color:#d1f7c9}.hourglass-button[aria-disabled=true]{cursor:default}#hourglass-info{font-size:24px;min-width:48px;min-height:48px}#hourglass-voters span{display:inline-block;margin-right:14px;font-weight:700}#hourglass-status{font-weight:700;font-variant-numeric:tabular-nums;min-height:1.5em}#hourglass-help{width:min(680px,92vw);line-height:1.65}#hourglass-help h3{margin-top:24px}#hourglass-help li{margin:10px 0}#hourglass-close{position:sticky;bottom:0;min-height:44px;box-shadow:0 0 14px #14232d}
.rules{line-height:1.7}.rules h3{margin-top:28px}.rules h4{font-size:1.05em;margin-top:24px}.rules p{max-width:78ch}.rules-table{overflow-x:auto;margin:18px 0}.rules table{border-collapse:collapse;width:100%;font-size:14px}.rules th,.rules td{padding:10px;text-align:left;border:1px solid #536c7a}.rules th{background:#203d48}.rules-version{color:var(--muted)}

#mode-status{margin:2px 0;font-size:12px;line-height:1.3;color:#d4e7bc;overflow-wrap:anywhere}#mode-status:empty{display:none}.owned-card{border:2px solid var(--player);border-top:5px solid var(--player)}.card-owner{color:var(--player);font-size:11px}.card.provisional{transform:translateY(-7px);border-color:var(--player);background:color-mix(in srgb,var(--player) 22%,#17252e)}.pending-person{border-left:4px solid var(--marker);padding:3px 6px;margin:3px 0;color:var(--marker)}
.card .card-owner{display:block}.card.reference-card{background:#f7f8f5;color:#17251d;border-color:#fff}.card.reference-card .card-owner,.card.reference-card time{color:#263d2c}

/* Roundtable presentation. All gameplay decisions come from the stable server. */
:root{color-scheme:dark;--table-bg:#071a1a;--table-line:#294b43;--table-accent:#c8ed97}
body.roundtable{background:#091316;color:#edf1e7;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px}
.roundtable *{box-sizing:border-box}
.roundtable [hidden]{display:none!important}
.roundtable button,.roundtable input,.roundtable textarea{font:inherit}
.roundtable button{min-height:40px;border-radius:10px;cursor:pointer}
.roundtable button:focus-visible,.roundtable input:focus-visible{outline:3px solid #f5d589;outline-offset:3px}
.roundtable header{position:relative;inset:auto;min-height:56px;padding:10px 24px;background:#0c1a1f;border-bottom:1px solid #2c3e40;display:flex;align-items:center;gap:20px;z-index:2}
.roundtable .brand{font-size:25px;letter-spacing:.08em;white-space:nowrap}
.roundtable .brand span{font-size:10px;display:block;letter-spacing:.18em;color:#c8ed97}
.roundtable #connection{font-size:11px;order:3;margin-left:auto;max-width:230px;color:#9aaeb0;text-align:right}
.roundtable #turn{font-size:13px;margin:0;color:#e4eadc;max-width:650px}
.roundtable main{max-width:1400px;margin:0 auto;padding:14px 24px 30px}
.roundtable .panel{border-radius:12px;background:#102227;border-color:#294047;padding:16px}
.roundtable #access-panel,.roundtable #entry{max-width:720px;margin:30px auto}
.roundtable.in-game main{max-width:none;padding:0 22px 8px}
.roundtable.in-game #room{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;grid-template-rows:40px minmax(250px,1fr) 160px auto;height:calc(100dvh - 77px);gap:8px;max-width:1440px;margin:0 auto;min-height:630px}
.roundtable .roomline{margin:0;display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:nowrap;font-size:11px}
.roundtable .roomline>p:empty,.roundtable .roomline>input[hidden]{display:none}
.roundtable .roomline button{font-size:11px;min-height:32px;padding:5px 10px}
.roundtable #room-code{letter-spacing:.08em;color:#c8ed97;white-space:nowrap}
.roundtable #identity{color:#9cb0ad;flex:1;min-width:0}
.roundtable #table-arena{position:relative;isolation:isolate;min-height:0;border-radius:46%;background:radial-gradient(ellipse at center,#174439 0,#102d29 60%,#0b2222 76%);border:1px solid #365346;box-shadow:inset 0 0 0 8px #0d2424,inset 0 0 0 10px #345046;margin:0 30px}
.roundtable #table-arena:before{content:'';position:absolute;inset:20px;border-radius:48%;border:1px dashed #68816255;z-index:-1}
.roundtable #table-center{position:absolute;inset:12px 27% 85px;display:flex;align-items:center;justify-content:center;min-width:0}
.roundtable #video-panel{display:flex;flex-direction:column;max-height:100%;background:#050b0c;padding:0;margin:0;border:1px solid #526d61;border-radius:12px;overflow:hidden;width:100%;max-width:440px;box-shadow:0 8px 35px #0005}
.roundtable #video{min-height:0;flex:1;width:100%;max-height:225px;aspect-ratio:16/9;object-fit:contain;display:block;background:#03090b;border-radius:0;margin:0}
.roundtable .video-title{flex:none;margin:0;padding:4px 10px;display:flex;align-items:center}
.roundtable .video-title h2{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;margin:0;color:#b0c7bd}
.roundtable #replay{margin-left:auto;font-size:10px;min-height:26px;padding:3px 8px;background:transparent;border:0;color:#d2e6ca}
.roundtable #video-message{flex:none;font-size:10px;margin:0;padding:4px 8px;color:#a6b9b0;line-height:1.3}
.roundtable #table-empty{display:flex;flex-direction:column;align-items:center;text-align:center;color:#a6c7b8;gap:10px;max-width:280px}
.roundtable #table-empty .ball-mark{font-size:36px;opacity:.6}.roundtable #table-empty strong{font-size:19px}.roundtable #table-empty p{font-size:12px;margin:0}
.roundtable #scores{display:contents}
.roundtable .seat{position:absolute;min-height:80px;width:188px;padding:8px 12px;text-align:left;color:#eaf0e5;background:#102329;border:1px solid #45605e;border-left:4px solid var(--player);box-shadow:0 5px 18px #0005;border-radius:12px;display:grid;gap:3px;z-index:1;font-weight:400;touch-action:manipulation}
.roundtable .seat[data-seat="0"]{left:1%;top:9%}.roundtable .seat[data-seat="1"]{right:1%;top:9%}.roundtable .seat[data-seat="2"]{right:3%;bottom:10%}.roundtable .seat[data-seat="3"]{left:50%;bottom:-3px;transform:translateX(-50%);min-height:64px}.roundtable .seat[data-seat="4"]{left:3%;bottom:10%}
.roundtable .seat-name{font-size:15px;color:var(--player);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roundtable .regular-turn .seat-name{font-weight:850}
.roundtable .seat-name small{font-size:8px;color:#bac8be;margin-left:4px;letter-spacing:.1em}
.roundtable .seat-numbers{display:flex;align-items:center;gap:8px;font-size:17px;font-variant-numeric:tabular-nums}.roundtable .seat-numbers small{font-size:10px;color:#a4b7b4;font-weight:400}.roundtable .token-dot{font-size:9px;color:#d9bd72}
.roundtable .seat-state{font-size:10px;color:#afc1b9;line-height:1.2}.roundtable .seat-hourglass{font-size:12px;color:#ffd58a;font-weight:700;font-variant-numeric:tabular-nums}
.roundtable .seat[aria-pressed="true"]{outline:1px solid var(--player);outline-offset:3px}
.roundtable .waiting-seat{border-color:var(--player);background:#1b3437}.roundtable .waiting-seat .seat-state{color:#fff}.roundtable.pulse-enabled .waiting-seat{animation:seat-pulse 1.8s ease-in-out infinite}
@keyframes seat-pulse{50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--player) 40%,transparent),0 0 25px color-mix(in srgb,var(--player) 18%,transparent)}}
.roundtable #timelines{min-width:0;max-width:100%;display:flex;flex-direction:column;gap:4px;margin:0;padding:0;overflow:hidden}
.roundtable #table-timeline-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:29px}.roundtable #table-timeline-heading>div{display:flex;gap:10px;align-items:center;min-width:0}.roundtable #table-timeline-heading small{font-size:9px;letter-spacing:.16em;color:#869e97}.roundtable #table-view-label{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roundtable #follow{font-size:11px;min-height:28px;padding:3px 9px;white-space:nowrap;margin:0}
.roundtable #views{display:none}.roundtable #lines{min-width:0;min-height:0;flex:1;margin-top:0}.roundtable .line{padding:0;border:0;background:transparent;margin:0;min-width:0}.roundtable .line>h3,.roundtable .line>p{display:none}
.roundtable .cards{display:flex!important;flex-wrap:nowrap!important;gap:8px;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:3px 3px 8px;scrollbar-width:thin;touch-action:pan-x pan-y;overscroll-behavior-x:contain;scroll-snap-type:none}
.roundtable .card{flex:0 0 180px;width:180px;min-width:180px;padding:9px 11px;min-height:88px;max-height:109px;border-radius:9px;background:#173037;border:1px solid #31505a}
.roundtable .card small{font-size:9px}.roundtable .card time{font-size:13px;color:#c8ed97}.roundtable .card h4{font-size:12px;line-height:1.25;margin:5px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.roundtable .card p{font-size:10px;margin:3px 0;line-height:1.2}
.roundtable .card.provisional{border:1px dashed #d7c278;background:#3c3523;max-height:109px}.roundtable .pending-person{font-size:10px}.roundtable .preview-neighbours{display:none}
.roundtable .slot{flex:0 0 62px;min-width:62px;max-width:62px;min-height:88px;white-space:normal;padding:5px;font-size:10px;border:1px dashed #9eaf8e;background:#163029;color:#cee6bc}.roundtable .slot[aria-pressed="true"]{background:#c8ed97;color:#16251b;border-style:solid}
.roundtable #table-outcome{align-self:flex-start;font-size:10px;min-height:22px;padding:0 2px;text-align:left;background:transparent;border:0;color:#b1c4b9;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roundtable #table-dock{text-align:left;display:grid;grid-template-columns:minmax(0,1fr) 285px;align-items:stretch;gap:12px;position:relative;z-index:3;border:1px solid #3a5049;background:#11232a;border-radius:14px;padding:10px 14px;box-shadow:0 -5px 25px #0002;min-width:0}
.roundtable #controls{border:0;margin:0;padding:0;background:transparent;min-width:0;box-shadow:none}
.roundtable .action-group{padding:0!important;border-radius:7px;min-width:0}.roundtable .task-message{font-size:13px;line-height:1.35;margin:0 0 7px;font-weight:650}.roundtable .action-group>h2,.roundtable .action-group>.eyebrow{display:none}.roundtable .action-group>p:not(.task-message):not(.accepted):not(.challenge-help):not(.tip-result):not(.shootout-progress):not(.bolond-offer-note){display:none}
.roundtable .action-group .buttons{display:flex;gap:7px;flex-wrap:wrap;margin:6px 0 0}.roundtable .action-group button{padding:7px 12px;font-size:12px;min-height:38px}.roundtable .action-group [data-show-active]{font-size:10px;min-height:28px;padding:3px 8px}.roundtable .challenge-help{margin:0;font-size:11px}
.roundtable .action-group ul{margin:4px 0;padding-left:20px;font-size:12px}
.roundtable #tip-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.roundtable #tip-form .score-inputs{display:flex;gap:8px;max-width:185px}.roundtable #tip-form label{font-size:10px;margin:0;line-height:1.4}.roundtable #tip-form input[type=number]{width:78px;min-height:38px;margin:2px 0 0;padding:5px 9px;font-size:18px}.roundtable #tip-form input[type=checkbox]{width:auto;margin:0 5px 0 0}.roundtable #tip-form .buttons{margin:0}.roundtable #tip-form>.waiting{display:none}
.roundtable #date-form{display:flex;gap:10px;align-items:end}.roundtable #date-form label{font-size:11px;margin:0}.roundtable #date-form input{margin:3px 0 0;min-height:40px;padding:5px}.roundtable #date-form button{margin:0}
.roundtable #hourglass-panel{background:transparent;border:0;border-left:1px solid #3a5049;padding:0 0 0 12px;margin:0;min-width:0;box-shadow:none}.roundtable .hourglass-buttons{display:flex;gap:6px;margin:0}.roundtable #hourglass-signal{flex:1;font-size:11px;padding:6px 8px;min-height:38px;white-space:normal}.roundtable #hourglass-info{min-height:38px;padding:4px 10px;font-size:13px}.roundtable #hourglass-decision,.roundtable #hourglass-panel>p:has(#hourglass-voters){display:none}.roundtable #hourglass-status{font-size:10px;margin:5px 0 0;line-height:1.35;color:#aebdb5}.roundtable #hourglass-expiry{font-size:10px;margin:2px 0}
.roundtable .needs-action{outline:1px solid #c8ed97;outline-offset:5px}.roundtable:not(.pulse-enabled) .needs-action{animation:none}.roundtable .accepted{font-size:12px;margin:3px 0;color:#c8ed97}
.roundtable.in-game>.rules,.roundtable.in-game main>.rules{display:none}.roundtable.in-game main>#logout-access{display:none}
.roundtable dialog{background:#102227;color:#e9efe7;border:1px solid #45615b;border-radius:16px;max-width:min(680px,calc(100vw - 24px));width:620px;max-height:85dvh;overflow-y:auto;padding:20px}.roundtable dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}.roundtable .dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.roundtable .dialog-head h2{font-size:18px}.roundtable .dialog-head button{background:transparent;color:#d5e6d4;font-size:25px;padding:2px 13px}
.roundtable #room-chat{position:static;max-width:none;width:auto;inset:auto}.roundtable #room-social{margin:10px 0}.roundtable #card-context{display:none!important}.roundtable #last-result .card{max-height:none;min-height:100px}.roundtable #last-result{padding:12px;margin:0}.roundtable #last-result>h2{display:none}
.roundtable #error:not([hidden]){position:fixed;top:60px;left:50%;transform:translateX(-50%);z-index:12;max-width:min(700px,94vw);font-size:13px}
.roundtable.in-game footer:not(#table-dock){display:none}
@media(max-width:1000px) and (min-width:701px){.roundtable .seat{width:158px}.roundtable #table-arena{margin:0 5px}.roundtable #table-center{inset:12px 25% 85px}.roundtable .seat-name{font-size:13px}.roundtable #table-dock{grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:700px){
 .roundtable{font-size:13px}.roundtable header{min-height:52px;padding:8px 12px;gap:12px;flex-wrap:wrap}.roundtable .brand{font-size:21px}.roundtable .brand span{font-size:8px}.roundtable #connection{font-size:9px;max-width:145px;line-height:1.2}.roundtable #turn{flex:1 0 100%;order:4;font-size:10px;margin-top:-2px;line-height:1.2;min-height:12px}.roundtable main{padding:12px}.roundtable.in-game main{padding:0 8px 6px;overflow-x:clip}
 .roundtable.in-game #room{display:flex;flex-direction:column;height:auto;min-height:calc(100dvh - 68px);gap:7px}.roundtable .roomline{height:32px;gap:5px;font-size:9px}.roundtable #identity{display:none}.roundtable .roomline button{font-size:9px;min-height:30px;padding:3px 6px}.roundtable #room-code{font-size:9px;margin-right:auto}.roundtable #share-note{display:none}
 .roundtable #table-arena{display:flex;flex-direction:column;margin:0;border-radius:16px;padding:7px;box-shadow:none;gap:7px;background:linear-gradient(150deg,#12352d,#0d2423);min-height:0}.roundtable #table-arena:before{display:none}.roundtable #scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;order:0;width:100%}.roundtable .seat{position:static!important;inset:auto!important;transform:none!important;width:auto;min-width:0;min-height:64px!important;padding:5px 6px;border-radius:8px;gap:1px;box-shadow:none;line-height:1.15}.roundtable .seat-name{font-size:12px}.roundtable .seat-name small{font-size:7px;margin-left:1px}.roundtable .seat-numbers{font-size:14px;gap:4px}.roundtable .seat-numbers small{font-size:8px}.roundtable .token-dot{display:none}.roundtable .seat-state{font-size:8px;min-height:10px}.roundtable .seat-hourglass{font-size:10px}.roundtable .seat[aria-pressed="true"]{outline-offset:0;outline-width:1px}
 .roundtable #table-center{position:static;display:flex;min-height:0;order:1}.roundtable #video-panel{max-width:none;border-radius:8px}.roundtable #video{max-height:190px;aspect-ratio:16/9;width:100%}.roundtable .video-title{padding:2px 6px}.roundtable .video-title h2{font-size:8px}.roundtable #replay{min-height:24px;font-size:9px}.roundtable #video-message{display:none}.roundtable #table-empty{padding:20px 5px;min-height:180px}
 .roundtable #timelines{height:143px;flex:none;gap:2px}.roundtable #table-timeline-heading{min-height:25px;gap:4px}.roundtable #table-timeline-heading small{display:none}.roundtable #table-view-label{font-size:10px}.roundtable #follow{font-size:9px;min-height:28px;padding:3px 5px}.roundtable .card{flex-basis:150px;width:150px;min-width:150px;max-height:92px;min-height:83px;padding:7px 9px}.roundtable .card time{font-size:12px}.roundtable .card h4{font-size:11px}.roundtable .card p{font-size:9px}.roundtable .slot{min-height:83px;max-width:52px;min-width:52px;flex-basis:52px;font-size:9px}.roundtable #table-outcome{font-size:9px;min-height:19px}
 .roundtable #table-dock{position:sticky;bottom:0;display:flex;flex-direction:column;margin-top:auto;gap:7px;padding:9px 10px;border-radius:12px;padding-bottom:max(9px,env(safe-area-inset-bottom));box-shadow:0 -5px 15px #0005}.roundtable .task-message{font-size:11px;margin:0 0 5px;line-height:1.25}.roundtable .action-group button{min-height:40px;font-size:11px;padding:6px 9px}.roundtable .action-group .buttons{margin:4px 0 0}.roundtable #tip-form{gap:6px;align-items:center}.roundtable #tip-form .score-inputs{max-width:140px;gap:6px}.roundtable #tip-form input[type=number]{width:61px;min-height:40px;font-size:18px}.roundtable #tip-form>label{max-width:150px;font-size:10px}.roundtable #tip-form .buttons{flex:1 0 100%;margin:0}.roundtable #tip-form .buttons button{flex:1}.roundtable #tip-form input[type=text]{max-width:150px}
 .roundtable #hourglass-panel{border-left:0;border-top:1px solid #3a5049;padding:6px 0 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:6px;align-items:center}.roundtable #hourglass-signal{font-size:9px;min-height:35px;padding:5px}.roundtable #hourglass-info{font-size:12px;min-height:35px;padding:4px 7px}.roundtable #hourglass-status{font-size:8px;margin:0;line-height:1.3}.roundtable #hourglass-expiry:empty{display:none}.roundtable #hourglass-expiry{grid-column:1/-1}.roundtable .hourglass-buttons{gap:4px}.roundtable .needs-action{outline-offset:3px}
 .roundtable.keyboard-open #table-dock{position:relative}.roundtable #date-form input{max-width:175px}.roundtable dialog{padding:12px}.roundtable #room-chat{padding:10px}
}
@media(prefers-reduced-motion:reduce){.roundtable *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.roundtable .waiting-seat{outline:2px solid var(--player);outline-offset:1px}.roundtable .needs-action{outline:2px solid #c8ed97}}

/* Stadium presentation; original player palette and rule controls are retained. */
.roundtable.in-game #room{height:auto;min-height:calc(100dvh - 78px);display:grid;grid-template-columns:minmax(0,1fr) 254px;grid-template-rows:36px auto auto auto auto;gap:8px 14px;max-width:1600px;align-content:start}
.roundtable .roomline{grid-column:1/-1}
.roundtable #table-arena{grid-column:1;grid-row:2;height:376px;border:0;border-radius:48px;margin:0;background:none;box-shadow:none;isolation:isolate}
.roundtable #table-arena:before{display:none}
.stadium-bowl{position:absolute;inset:0;border-radius:48px;overflow:hidden;border:1px solid #617667;background:#31463a;box-shadow:inset 0 0 0 7px #4c6151;pointer-events:none;z-index:-1}
.stadium-bowl canvas{position:absolute;inset:0;width:100%;height:100%}
.stadium-tier{position:absolute;inset:25px;border:2px solid #62776899;border-radius:37px}.stadium-tier.tier-two{inset:47px;border-radius:28px}.stadium-tier.tier-three{inset:70px;border-radius:18px}
.roundtable #table-center{inset:92px 164px 75px}
.roundtable #video-panel{max-width:430px;border-radius:7px;height:100%;max-height:100%}
.roundtable #video{max-height:none;aspect-ratio:auto;object-fit:contain;width:100%;flex:1;min-height:0}
.roundtable .seat{width:140px;min-height:78px;padding:8px 10px;background:#102329f5}
.roundtable .seat[data-seat="0"]{left:14px;top:18px;bottom:auto}.roundtable .seat[data-seat="1"]{left:14px;top:auto;bottom:84px;right:auto}
.roundtable .seat[data-seat="2"]{left:50%;right:auto;top:9px;bottom:auto;transform:translateX(-50%)}
.roundtable .seat[data-seat="3"]{left:auto;right:14px;top:18px;bottom:auto;transform:none;min-height:78px}
.roundtable .seat[data-seat="4"]{left:auto;right:14px;top:auto;bottom:84px}
.roundtable .seat-name{font-size:14px}.roundtable .seat-state{font-size:10px}.roundtable .seat-numbers{font-size:16px;gap:5px}
.roundtable.pulse-enabled .waiting-seat{animation:seat-pulse 1.5s ease-in-out infinite}
@keyframes seat-pulse{50%{box-shadow:0 0 0 2px color-mix(in srgb,var(--player) 38%,transparent),0 0 16px 3px color-mix(in srgb,var(--player) var(--pulse-strength,24%),transparent)}}
#stadium-steps{position:absolute;left:10px;right:10px;bottom:8px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8px;min-height:62px;overflow:hidden;border-radius:10px;background:#0f2024;z-index:2;isolation:isolate}
.stadium-step{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:9px 12px;background:color-mix(in srgb,var(--player,#c8ed97) 18%,#0c2026);border:1px solid color-mix(in srgb,var(--player,#c8ed97) 50%,#23383b);border-radius:9px}
.stadium-step small{font-size:9px;letter-spacing:.14em;color:#c0d1c9}.stadium-step strong{font-size:14px;line-height:1.3;overflow-wrap:anywhere;font-weight:600}
#stadium-previous{opacity:.85}#stadium-previous strong{font-size:12px}.step-ghost{position:absolute;top:0;bottom:0;left:0;z-index:3;pointer-events:none;animation:none!important}
.pulse-enabled .step-waiting{animation:step-pulse 1.5s ease-in-out infinite}
@keyframes step-pulse{50%{box-shadow:inset 0 0 16px 2px color-mix(in srgb,var(--player) var(--pulse-strength,24%),transparent),inset 0 0 0 2px color-mix(in srgb,var(--player) 60%,transparent)}}
@keyframes task-pulse{0%,100%{border-color:#526c81;box-shadow:inset 0 0 0 1px #77d5ff10;background-color:#14232d}50%{border-color:#d5f6ff;box-shadow:0 0 16px 3px color-mix(in srgb,#77d5ff var(--pulse-strength,24%),transparent),inset 0 0 0 2px #b5ebff70;background-color:#274656}}
.roundtable #timelines{grid-column:1;grid-row:3;height:auto;min-height:151px;border-radius:12px;padding:8px 10px;background:color-mix(in srgb,var(--owner,#c8ed97) 25%,#0c2026);border:1px solid color-mix(in srgb,var(--owner,#c8ed97) 65%,#23383b)}
.roundtable #table-view-label{color:var(--owner);font-size:13px}.roundtable #table-timeline-heading small{display:none}
.roundtable .cards{padding:5px 2px 9px;align-items:stretch}.roundtable .card{max-height:none;min-height:96px;flex:0 0 158px;min-width:158px;width:158px;background:#12262eee;border-bottom:3px solid var(--owner,#c8ed97)}
.roundtable .card.provisional{transform:none;max-height:none;min-height:96px;background:#393426;border:2px dashed var(--owner);padding:5px 8px}.roundtable .card.provisional h4{font-size:23px;line-height:1;margin:3px 0;text-align:center;color:#f3d794}.roundtable .card.provisional p{font-size:10px}.roundtable .slot{min-height:96px;min-width:48px;flex-basis:48px;max-width:48px}
.roundtable #table-outcome{font-size:11px;white-space:normal;padding:2px;min-height:24px}
.reward-flight{position:fixed;width:120px;padding:12px 8px;border:2px solid var(--winner);border-radius:9px;z-index:20;pointer-events:none;font-size:12px;font-weight:700;text-align:center;color:#fff;box-shadow:0 4px 20px #0007}
.roundtable #table-dock{grid-column:1;grid-row:5;grid-template-columns:minmax(0,1fr) 240px;margin:0;position:static;min-width:0;z-index:1}
.roundtable #room>#room-chat{grid-column:2;grid-row:2/6;align-self:stretch;position:sticky;top:8px;height:calc(100dvh - 125px);min-height:300px;max-height:760px;display:flex;flex-direction:column;overflow:hidden;margin:0;padding:0;background:#102227;border:1px solid #38534b;border-radius:12px}
.roundtable #room>#room-chat:not([open]){height:auto;min-height:0;align-self:start}.roundtable #room-chat>summary{padding:13px 12px;min-height:48px;font-size:14px;color:#d3e6c4;background:#162d2d;cursor:pointer;flex:none}
.roundtable #room>#room-chat[open]{display:block}.stadium-chat-body{height:clamp(252px,calc(100dvh - 173px),712px);display:flex;flex-direction:column;min-height:0}.roundtable #room-chat #chat-messages{flex:1;min-height:0}.roundtable #chat-form,.roundtable #chat-status{flex:none}
.roundtable .action-group [data-show-active]{display:none}
.roundtable #chat-messages{height:auto;min-height:0;max-height:none;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain;scrollbar-width:thin}
.roundtable #chat-messages article{padding:8px;background:#183038;border:0;border-radius:8px;font-size:12px;overflow-wrap:anywhere;flex:none}.roundtable #chat-messages article:first-child{margin-top:auto}.roundtable #chat-messages time{font-size:9px;display:block;margin:3px 0;color:#9eb0ab}.roundtable #chat-messages p{font-size:13px;line-height:1.4;white-space:pre-wrap;margin:4px 0 0}
.roundtable #chat-form{display:flex;align-items:end;gap:6px;padding:9px;border-top:1px solid #345147;margin:0;min-width:0}.roundtable #chat-form label{flex:1;min-width:0;margin:0;font-size:10px;color:#b5cbbd}.roundtable #chat-text{display:block;resize:vertical;min-height:50px;max-height:120px;height:50px;width:100%;font-size:16px;padding:7px;margin:4px 0 0;line-height:1.25}.roundtable #chat-send{font-size:11px;min-height:44px;padding:7px;flex:none}.roundtable #chat-status{font-size:10px;line-height:1.2;margin:0;padding:0 9px 7px;color:#b7c9bc;min-height:18px}
.roundtable #chat-unread{display:inline-block;background:#c8ed97;border-radius:99px;padding:2px 7px;color:#142624;font-size:12px;margin-left:6px}
@media(min-width:761px) and (max-width:1150px){.roundtable.in-game main{padding:0 12px 8px}.roundtable.in-game #room{grid-template-columns:minmax(0,1fr) 220px;gap:8px}.roundtable .seat{width:115px;padding:7px}.roundtable #table-center{left:139px;right:139px}.stadium-pitch{left:130px;right:130px}.roundtable #table-dock{grid-template-columns:minmax(0,1fr) 210px}.roundtable .seat-numbers{gap:3px;font-size:15px}.roundtable .seat-numbers small{font-size:9px}}
@media(max-width:760px){
 .roundtable.in-game main{padding:0 8px 8px;overflow-x:clip}.roundtable.in-game #room{display:flex;height:auto;min-height:0;gap:7px}.roundtable header{padding:7px 12px}.roundtable #table-arena{height:auto;min-height:0;display:flex;flex-direction:column;gap:7px;padding:0;border:0;border-radius:0;background:none}.stadium-bowl{display:none}
 .roundtable #scores{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;order:0}.roundtable .seat{position:static!important;inset:auto!important;transform:none!important;width:100%;min-width:0;min-height:82px!important;padding:6px 4px;gap:3px;border-radius:7px;border-left-width:3px}.roundtable .seat-name{font-size:11px}.roundtable .seat-name small{display:none}.roundtable .seat-numbers{font-size:14px;display:flex;flex-wrap:wrap;gap:2px 5px;line-height:1.2}.roundtable .seat-numbers>span{white-space:nowrap}.roundtable .seat-numbers small{font-size:9px}.roundtable .seat .token-dot{display:none}.roundtable .seat-state{font-size:9px;line-height:1.15;min-height:20px}.roundtable .seat-hourglass{font-size:10px}
 .roundtable #table-center{position:static;order:1;min-height:0;width:100%}.roundtable #video-panel{height:auto;max-height:none;max-width:100%;width:100%;border-radius:8px}.roundtable #video{height:190px;max-height:190px;min-height:0;flex:none;aspect-ratio:auto}.roundtable #video-message{display:none}.roundtable .video-title{padding:2px 6px}.roundtable #replay{min-height:30px;font-size:10px}
 #stadium-steps{position:relative;inset:auto;order:2;min-height:80px;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8px;width:100%;flex:none;border-radius:8px}.stadium-step{padding:8px;gap:4px}.stadium-step strong{font-size:13px}.stadium-step small{font-size:8px}#stadium-previous strong{font-size:11px}
 .roundtable #timelines{height:auto;min-height:153px;padding:6px 7px;flex:none}.roundtable #table-view-label{font-size:11px}.roundtable #follow{font-size:10px;min-height:40px;white-space:normal;max-width:115px}.roundtable #table-timeline-heading{min-height:28px}.roundtable .card{min-width:146px;flex-basis:146px;width:146px;min-height:96px}.roundtable .card h4{font-size:12px}.roundtable .card p{font-size:10px}.roundtable .slot{font-size:10px;min-height:96px;min-width:46px;flex-basis:46px}.roundtable .pending-person{font-size:10px}.roundtable #table-outcome{font-size:10px}
 .roundtable #table-dock{position:static;margin:0;display:flex;flex-direction:column;padding:9px 10px;gap:7px}.roundtable .task-message{font-size:12px}.roundtable .action-group button{min-height:44px;font-size:12px}.roundtable #hourglass-signal{min-height:44px;font-size:10px}.roundtable #hourglass-info{min-height:44px}.roundtable #hourglass-status{font-size:10px}.roundtable #hourglass-panel{border:0;border-top:1px solid #3a5049;padding:6px 0 0}
 .roundtable #room>#room-chat{position:static;height:160px;min-height:0;max-height:none;width:100%;flex:none;border-radius:10px}.roundtable #room>#room-chat:not([open]){height:auto;min-height:0}.roundtable #room-chat>summary{min-height:44px;padding:11px;font-size:13px}.roundtable #chat-messages{padding:3px 8px;gap:4px}.roundtable #chat-messages article{padding:3px 6px;font-size:11px}.roundtable #chat-messages time{display:none}.roundtable #chat-messages p{display:inline;margin-left:5px;font-size:12px}.roundtable #chat-form{padding:5px 7px;gap:6px}.roundtable #chat-form label{font-size:0}.roundtable #chat-text{height:44px;min-height:44px;margin:0;font-size:16px}.roundtable #chat-send{min-height:44px;font-size:12px}.roundtable #chat-status{font-size:9px;min-height:14px;padding-bottom:3px}.stadium-chat-body{height:114px}.roundtable #scores{margin-top:0}
}
@media(prefers-reduced-motion:reduce){.roundtable *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.roundtable .waiting-seat{outline:2px solid var(--player)}#stadium-current.step-waiting{box-shadow:inset 0 0 0 2px var(--player)}}

/* The recording is the pitch. Stand sizes stay compact as its width grows. */
body.roundtable{background:#0b1912}
.roundtable.in-game #room{grid-template-rows:36px auto auto auto;min-height:0;max-width:none;position:relative}
.roundtable #table-dock{grid-row:4}
.roundtable #room>#room-chat{grid-row:2/5}
.roundtable .card{background:color-mix(in srgb,var(--owner,#c8ed97) 22%,#17251d)}
.roundtable .card.provisional{background:color-mix(in srgb,var(--owner,#c8ed97) 30%,#17251d)}
@media(min-width:761px){
 .roundtable.in-game #room:has(>#room-chat:not([open])){grid-template-columns:minmax(0,1fr);column-gap:0}
 .roundtable #room>#room-chat:not([open]){grid-column:auto;grid-row:auto;position:absolute;right:0;bottom:auto;top:0;width:auto;min-height:0;max-height:none;z-index:10;box-shadow:0 2px 10px #0007}
 .roundtable #room:has(>#room-chat:not([open])) .roomline{padding-right:110px}
 .roundtable #room>#room-chat:not([open])>summary{min-height:32px;padding:6px 10px}
 .roundtable #table-arena{--stand-side:140px;--stand-top:108px;--video-ratio:1.7777777778;display:grid;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;padding:var(--stand-top) var(--stand-side) 8px;gap:8px}
 .roundtable #table-center{position:relative;inset:auto;display:flex;width:100%;aspect-ratio:var(--video-ratio);min-height:0;align-items:stretch}
 .roundtable #video-panel{position:relative;width:100%;height:100%;max-height:none;max-width:none;border:0;border-radius:0;overflow:visible;box-shadow:0 0 0 4px #526950;display:block}
 .roundtable #video{display:block;width:100%;height:100%;max-height:none;min-height:0;flex:none;aspect-ratio:var(--video-ratio);object-fit:contain}
 .roundtable .video-title{position:absolute;bottom:calc(100% + 8px);right:0;padding:0;gap:8px;white-space:nowrap}
 .roundtable .video-title h2{display:none}.roundtable #video-message{display:none}
 .roundtable #table-empty{width:100%;max-width:none;align-self:center}
 .roundtable .seat{width:124px;min-height:78px;padding:8px;background:#102219f5}
 .roundtable .seat[data-seat="0"]{left:8px;top:calc(var(--stand-top) + (100% - var(--stand-top) - 86px)/2);bottom:auto;transform:translateY(-50%)}
 .roundtable .seat[data-seat="1"]{left:8px;top:12px;bottom:auto;right:auto;transform:none}
 .roundtable .seat[data-seat="2"]{left:50%;top:12px;bottom:auto;right:auto;transform:translateX(-50%)}
 .roundtable .seat[data-seat="3"]{left:auto;right:8px;top:12px;bottom:auto;transform:none}
 .roundtable .seat[data-seat="4"]{left:auto;right:8px;top:calc(var(--stand-top) + (100% - var(--stand-top) - 86px)/2);bottom:auto;transform:translateY(-50%)}
 #stadium-steps{position:relative;inset:auto;width:calc(100% + 2 * var(--stand-side) - 20px);margin:0 calc(10px - var(--stand-side));min-height:70px;align-self:end}
 .roundtable #timelines{min-height:0}
 .roundtable .seat-numbers{font-size:15px;flex-wrap:wrap;gap:3px}
}
@media(min-width:761px) and (max-width:1000px){
 .roundtable #table-arena{--stand-side:104px;--stand-top:106px}
 .roundtable .seat{width:92px;padding:6px}.roundtable .seat-name{font-size:12px}.roundtable .seat-numbers{font-size:13px}.roundtable .seat-numbers small{font-size:9px}
}

/* V2: bound the game by both dimensions of the visible browser viewport. */
@media(min-width:761px){
 .roundtable.in-game header{min-height:50px;padding:5px 18px;gap:16px}
 .roundtable.in-game .brand{font-size:22px}.roundtable.in-game .brand span{font-size:8px}
 .roundtable.in-game main{padding:0 16px 6px}
 .roundtable.in-game #room{height:var(--room-height,calc(100dvh - 56px));min-height:0;grid-template-rows:30px minmax(0,1fr) 128px auto;gap:6px 12px;align-content:stretch}
 .roundtable .roomline{min-height:0;gap:8px}.roundtable .roomline button{min-height:28px;padding:3px 8px}
 .roundtable #table-arena{--stand-side:126px;--stand-top:76px;width:var(--stadium-width,100%);max-width:100%;justify-self:center;align-self:end;padding:var(--stand-top) var(--stand-side) 6px;gap:6px;border-radius:30px}
 .roundtable #table-center{aspect-ratio:auto;height:var(--video-height,120px)}
 .roundtable #video-panel,.roundtable #video{height:100%;aspect-ratio:auto}
 .stadium-bowl{border-radius:30px}.stadium-tier{inset:16px;border-radius:22px}.stadium-tier.tier-two{inset:34px;border-radius:16px}.stadium-tier.tier-three{inset:52px;border-radius:10px}
 .roundtable .seat{width:112px;min-height:60px!important;padding:5px 7px;gap:1px;border-radius:8px}
 .roundtable .seat-name{font-size:12px;line-height:1.2;white-space:normal;overflow:visible;overflow-wrap:anywhere}
 .roundtable .seat-numbers{font-size:14px;gap:3px;line-height:1.15}.roundtable .seat-numbers small{font-size:9px}.roundtable .seat-state{font-size:9px;line-height:1.2}.roundtable .seat-hourglass{font-size:11px;line-height:1.2}
 .roundtable .seat[data-seat="1"],.roundtable .seat[data-seat="2"],.roundtable .seat[data-seat="3"]{top:8px}
 .roundtable .seat[data-seat="0"],.roundtable .seat[data-seat="4"]{top:calc(var(--stand-top) + var(--video-height,120px)/2)}
 .roundtable .video-title{bottom:calc(100% + 3px);right:0}.roundtable #replay{min-height:24px;padding:2px 5px;font-size:10px;background:#102219e8}
 #stadium-steps{min-height:54px;gap:6px;width:calc(100% + 2 * var(--stand-side) - 12px);margin:0 calc(6px - var(--stand-side))}
 .stadium-step{padding:6px 8px;gap:3px}.stadium-step strong{font-size:12px;line-height:1.2}#stadium-previous strong{font-size:11px}.stadium-step small{font-size:8px}
 .roundtable #timelines{height:128px;min-height:0;max-height:128px;padding:4px 8px;gap:2px}
 .roundtable #table-timeline-heading{min-height:24px;flex:none}.roundtable #table-view-label{font-size:12px}.roundtable #follow{min-height:24px;font-size:10px}
 .roundtable #lines{min-height:0;overflow:auto;overscroll-behavior:contain}
 .roundtable .cards{padding:2px 2px 6px;min-height:0}.roundtable .card,.roundtable .card.provisional,.roundtable .slot{min-height:82px}
 .roundtable .card{padding:6px 8px}.roundtable .card h4{margin:3px 0}.roundtable .card p{margin:2px 0}.roundtable .card.provisional p{font-size:9px}
 .roundtable #table-dock{min-height:0;padding:7px 10px;gap:10px;grid-template-columns:minmax(0,1fr) 228px}
 .roundtable .action-group{display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;row-gap:4px}
 .roundtable .task-message{flex:1 0 100%;margin:0;font-size:12px;line-height:1.25}
 .roundtable .action-group .buttons{margin:0}.roundtable .action-group button{min-height:34px;padding:5px 10px}
 .roundtable .challenge-help{font-size:10px;margin:0}.roundtable #hourglass-signal,.roundtable #hourglass-info{min-height:34px}
 .roundtable #hourglass-status{font-size:10px;margin:3px 0 0}
 .roundtable #room>#room-chat[open]{height:100%;min-height:0;max-height:none;position:relative;top:0;align-self:stretch}
 .roundtable #room-chat>summary{height:40px;min-height:40px;padding:10px 12px}
 .stadium-chat-body{height:calc(100% - 40px);min-height:0}
 .roundtable #chat-form{padding:6px 8px}.roundtable #chat-text{resize:none;height:44px;min-height:44px;max-height:44px}.roundtable #chat-status{padding-bottom:4px;min-height:16px}
 .roundtable #room>#room-chat:not([open])>summary{min-height:28px;height:28px;padding:4px 10px}
}

@media(min-width:761px){.stadium-chat-body{height:var(--chat-body-height,300px)}}

@media(min-width:761px){.roundtable .roomline #replay{margin:0;min-height:28px;padding:3px 8px;font-size:11px}}
/* Shared cards keep their owner's colour independently of the selected seat. */
.roundtable .card.owned-card{border:2px solid var(--player);border-bottom-width:4px;background:color-mix(in srgb,var(--player) 17%,#17251d)}
.roundtable .card .card-owner{display:block;line-height:1.2;margin-bottom:3px;font-size:11px}
.roundtable .card.reference-card{background:#f7f8f5;color:#17251d;border-color:#fff}
.roundtable .card.reference-card .card-owner,.roundtable .card.reference-card time{color:#263d2c}
.roundtable.shared-game .card.provisional{transform:translateY(-6px);border-color:var(--player);background:color-mix(in srgb,var(--player) 25%,#17251d)}
.roundtable.shared-game .cards{padding-top:9px}
@media(min-width:761px){.roundtable.shared-game #room{grid-template-rows:30px minmax(0,1fr)176px auto}.roundtable.shared-game #timelines{height:176px;max-height:176px}}

.tip-price,.tip-result{font-size:12px;line-height:1.4;color:#e5f5d0;margin:4px 0}.roundtable .action-group>p.tip-result{display:block;flex:1 0 100%;font-size:11px}.roundtable #tip-form>.tip-price{flex:1 0 100%;font-size:11px}

/* The waiting pitch occupies the same responsive surface as the recording. */
.roundtable #table-empty{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;min-height:0;max-width:none;padding:0;border-radius:4px;overflow:hidden;background:#226f31;box-shadow:0 0 0 4px #526950}
.lobby-pitch{position:absolute;inset:0;width:100%;height:100%;display:block}
.lobby-pitch-caption{position:relative;z-index:1;max-width:76%;padding:12px 18px;border-radius:8px;background:#071f14c7;color:#f3ffe8;box-shadow:0 4px 18px #07190d33}
.roundtable #table-empty strong{display:block;font-size:clamp(14px,1.7vw,24px);line-height:1.25;text-wrap:balance}
.roundtable #table-empty p{margin:6px 0 0;font-size:clamp(10px,1vw,13px);line-height:1.35;color:#d6e9d1}
@media(max-width:760px){.roundtable #table-center:has(#table-empty:not([hidden])){position:relative;aspect-ratio:16/9;width:100%;min-height:0}.roundtable #table-empty{padding:0;min-height:0}.lobby-pitch-caption{padding:8px 11px;max-width:76%}.roundtable #table-empty strong{font-size:15px}.roundtable #table-empty p{font-size:10px}}

/* Keep the start button and the next stage in the same measured layout. */
.roundtable.room-lobby #controls ul{display:none}
#stadium-steps.lobby-steps{visibility:hidden}
@media(min-width:761px){.roundtable.room-lobby #table-dock{min-height:73px}}
@media(max-width:760px){
 .roundtable #table-center{position:relative;height:224px;aspect-ratio:auto!important}
 .roundtable #video-panel{height:100%;display:flex;flex-direction:column}
 .roundtable #video{height:190px;max-height:190px;object-fit:contain}
 .roundtable #table-empty{inset:34px 0 0;height:190px}
}

@media(max-width:760px){.roundtable #table-center{inset:auto}}
/* Fixed mobile header rows keep the pitch in place when round order appears. */
@media(max-width:760px){
 html{scrollbar-gutter:stable}
 .roundtable.in-game header{display:grid;grid-template-columns:110px minmax(0,1fr);grid-template-rows:34px 32px 24px;gap:4px 10px}
 .roundtable .brand{grid-column:1;grid-row:1}
 .roundtable #connection{grid-column:2;grid-row:1;max-width:none;margin:0}
 .roundtable #mode-status{grid-column:1/-1;grid-row:2;max-height:32px;overflow:auto;font-size:11px;margin:0}
 .roundtable #turn{grid-column:1/-1;grid-row:3;max-height:24px;overflow:auto;margin:0}
}

.auto-pass-message{font-size:11px;line-height:1.35;margin:4px 0;color:#e1e9d5}

/* Scoreboard and side stands: the lower stand belongs to the action strip. */
#stadium-scoreboard{position:absolute;top:4px;left:50%;transform:translateX(-50%);width:min(360px,calc(100% - 2 * var(--stand-side)));box-sizing:border-box;display:grid;grid-template-rows:12px minmax(26px,auto) 24px;gap:1px;align-items:center;text-align:center;padding:3px 12px;color:#f6f4df;background:linear-gradient(135deg,#142023,#030806 55%,#101a16);border:1px solid #63766b;border-radius:3px;box-shadow:0 3px 9px #000b,inset 0 0 10px #a6bfbd12;z-index:1;pointer-events:none;font-variant-numeric:tabular-nums}
#stadium-scoreboard:before{content:'';position:absolute;top:-2px;left:8%;right:8%;height:3px;background:radial-gradient(ellipse,#c4e7db 10%,transparent 55%) 0 0/25% 100% repeat-x;opacity:.8}
.scoreboard-date{font-size:11px;line-height:12px;letter-spacing:.08em}.scoreboard-teams{font-size:13px;font-weight:650;line-height:13px;overflow-wrap:anywhere;text-wrap:balance}.scoreboard-score{font-size:26px;line-height:24px;font-weight:800;letter-spacing:.05em}
@media(min-width:761px){
 .roundtable #scores{position:absolute;inset:8px 7px var(--stand-bottom,66px);display:flex;justify-content:space-between;pointer-events:none;margin:0;z-index:2}
 .roundtable .stadium-seats{width:calc(var(--stand-side) - 14px);display:flex;flex-direction:column;justify-content:space-around;gap:8px;pointer-events:none}
 .roundtable #scores .seat{position:relative;inset:auto;transform:none;flex:none;width:100%;pointer-events:auto}
}
@media(max-width:760px){
 #stadium-scoreboard{position:relative;inset:auto;transform:none;width:100%;order:1;grid-template-rows:12px minmax(26px,auto) 24px;padding:5px 10px}
 .roundtable .stadium-seats{display:contents}
 .roundtable #table-center{order:2}#stadium-steps{order:3}
 .roundtable #scores .seat-name small{display:inline;font-size:7px;margin-left:2px}
}

@media(min-width:761px){.roundtable.in-game #room{grid-template-rows:30px minmax(var(--arena-min-height,280px),1fr) 128px auto}.roundtable.shared-game #room{grid-template-rows:30px minmax(var(--arena-min-height,280px),1fr) 176px auto}}
/* Last completed action remains readable during the next video and decision. */
#stadium-scoreboard{grid-template-rows:auto auto minmax(26px,auto) 24px auto}
#stadium-scoreboard>small{font-size:10px;line-height:12px;color:#ccd7cc}
.scoreboard-outcome{font-size:11px;line-height:14px;overflow-wrap:anywhere}
.seat:disabled{cursor:default;opacity:1}

.roundtable .action-group>p.shootout-progress{display:block;flex:1 0 100%;font-size:11px;line-height:1.3;margin:3px 0;color:#d6e6ce}

.bolond-options,.bolond-offer,.bolond-catalog{display:flex;flex-wrap:wrap;gap:.5rem}.bolond-offer article{flex:1 1 200px;min-width:0;background:#153a26;padding:.75rem;border-radius:.6rem}.bolond-offer p{font-size:.88rem}.bolond-rule{font-size:.84rem;padding:.35rem .55rem;white-space:normal}.bolond-hand-card{display:inline-flex;flex-wrap:wrap;gap:.35rem;margin:.25rem}.bolond-reason{display:block;color:#cee0cc}.bolond-event{border-left:3px solid #b8f683;padding-left:.6rem}.bolond-supplement{font-size:.85rem;margin-top:.6rem}.bolond-supplement section{margin:.5rem 0}.bolond-buy form,#bolond-play-form{padding:.6rem;border:1px solid #4b7954;border-radius:.5rem;margin:.5rem 0}#bolond-rule-dialog{max-width:720px;width:calc(100% - 2rem);max-height:85dvh;overflow:auto}#bolond-rule-dialog p{line-height:1.5}.bolond-claim{display:block;margin:.6rem 0}.bolond-claim input{width:auto}#controls input,#controls select{max-width:100%}#controls button:disabled{background:#234b32;color:#abc0af;opacity:1}@media(max-width:760px){.bolond-offer{display:grid;grid-template-columns:1fr}.bolond-options button{white-space:normal}.bolond-buy summary{padding:.6rem}#bolond-play-form .buttons{display:grid}}
.bolond-seat-cards{display:flex;flex-direction:column;gap:2px;font-size:.7rem;max-height:7rem;overflow:auto}.bolond-seat-cards [data-bolond-rule]{text-decoration:underline;cursor:pointer}

#bolond-book-dialog{box-sizing:border-box;width:calc(100vw - 24px);max-width:1020px;height:94dvh;max-height:94dvh;padding:0;overflow:hidden}#bolond-book-dialog[open]{display:flex;flex-direction:column}.book-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;flex-shrink:0;background:#14232d;position:sticky;top:0;z-index:1}.book-dialog-head h2{font-size:1.1rem;margin:0}.book-dialog-head button{min-height:44px;flex-shrink:0;margin:0}#bolond-book-dialog iframe{display:block;border:0;background:white;flex:1;min-height:0;width:100%}#bolond-rule-dialog{padding:0;overflow:auto}#bolond-rule-dialog .bolond-rule-content{padding:4px 20px 20px}#bolond-rule-dialog a{color:#c9efa6}#bolond-rule-dialog .card-body{line-height:1.65}.card-instance-status{border-bottom:1px solid #607f90;padding-bottom:8px}#rulebook-choice{max-width:100%}#bolond-rulebook-menu [data-bolond-rule]{min-height:44px}#bolond-rulebook-menu p{line-height:1.8}@media(max-width:500px){.book-dialog-head{padding:8px 10px}.book-dialog-head h2{font-size:1rem}#bolond-rule-dialog .bolond-rule-content{padding:4px 14px 16px}}

#bolond-rule-dialog .card-body,#bolond-rule-dialog .card-instance-status{font-size:16px}

/* Committed action presentation uses precisely the recording's stage. */
#pitch-bank{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #f1fbe49c;border-radius:50%;padding:8px;font-size:9px;color:#fbffe8;background:#153f2180;pointer-events:none}
.lobby-pitch-caption{max-height:90%;overflow:auto;text-align:center}
.lobby-pitch-caption strong{overflow-wrap:anywhere}
.explanation-fade .lobby-pitch-caption{opacity:.15;transition:opacity .3s}
.action-flight{position:fixed;z-index:35;pointer-events:none;max-width:170px;padding:8px 12px;font-weight:800;border:2px solid;border-radius:9px;box-shadow:0 3px 10px #0009;text-align:center;font-size:14px}
.token-flight{border-radius:22px;font-size:20px;white-space:nowrap}.card-flight{font-size:12px;min-width:100px}
#action-journal{grid-column:1/-1;border:1px solid #3c5a4b;border-radius:8px;padding:4px 8px;min-width:0;background:#102219}
.journal-heading{display:flex;gap:8px;align-items:center;justify-content:space-between;height:24px;font-size:12px}
#journal-new{font-size:11px;min-height:22px;padding:2px 6px}
#journal-entries{height:80px;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;scrollbar-width:thin}
#journal-entries article{border-top:1px solid #304c3c;padding:4px 2px;font-size:11px}
#journal-entries summary{cursor:pointer;line-height:1.35}#journal-entries summary span{display:block;color:#d7e2d3;margin-left:14px}
#journal-entries p{font-size:11px;margin:4px 14px;line-height:1.35;color:#d9e6d5}#journal-entries time{margin-left:14px;font-size:9px;color:#a8beb0}
#journal-entries .journal-empty{margin:4px 0}
@media(min-width:761px){
 .roundtable #table-dock{row-gap:5px}
 .roundtable #controls{max-height:152px;overflow-y:auto;overscroll-behavior:contain}
 .roundtable .task-message{position:sticky;top:0;z-index:2;background:#19332b;padding:3px 0}
 .roundtable #table-empty .lobby-pitch-caption strong{font-size:clamp(13px,1.35vw,21px)}
}
@media(max-width:760px){
 #action-journal{width:100%}#journal-entries{height:112px}
 .roundtable #table-empty{inset:34px 0 0;height:190px}
 .roundtable #table-empty .lobby-pitch-caption{padding:7px 10px;max-width:90%}
 .roundtable #table-empty .lobby-pitch-caption strong{font-size:14px}.roundtable #table-empty .lobby-pitch-caption p{font-size:10px;line-height:1.3;margin-top:4px}
}

.movement-active .lobby-pitch-caption{align-self:start;margin-top:6px}.movement-active #pitch-bank{z-index:3}

@media(min-width:761px){#journal-entries{height:64px}.roundtable #controls{max-height:136px}#stadium-previous strong,#stadium-current strong{max-height:3.6em;overflow-y:auto}}
@media(min-width:761px) and (max-height:720px){#journal-entries{height:48px}.roundtable #controls{max-height:104px}.roundtable #timelines{height:116px;max-height:116px}}

@media(min-width:761px){.roundtable #table-empty .lobby-pitch-caption{max-width:92%;padding:7px 10px}.roundtable #table-empty .lobby-pitch-caption strong{font-size:clamp(14px,1.1vw,17px)}}

/* Lobby rulebooks and party-specific luck-card help. */
.lobby-rulebooks{display:flex;gap:12px;flex-wrap:wrap;margin:-8px 0 24px}.lobby-rulebooks button{flex:1;min-height:48px}.book-dialog-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.rulebook-dialog .book-dialog-head{gap:12px;flex-wrap:wrap}.rulebook-dialog .book-dialog-head h2{flex:1;min-width:180px}#original-book-dialog{box-sizing:border-box;width:calc(100vw - 24px);max-width:1020px;height:94dvh;max-height:94dvh;padding:0;overflow:hidden}#original-book-dialog[open]{display:flex;flex-direction:column}.original-book-scroll{overflow:auto;overscroll-behavior:contain;padding:20px 28px;min-height:0;line-height:1.7}.original-book-scroll p{max-width:78ch}.original-book-scroll h2,.original-book-scroll h3,.original-book-scroll h4{scroll-margin-top:12px}.original-book-scroll a{color:#c9efa6}.original-book-toc{border:1px solid #607f90;padding:14px 18px;border-radius:8px;margin-bottom:24px}.original-book-toc li{margin:8px 0}.rulebook-subchapter{margin-left:18px!important}.card-help-brief{margin:12px 0;line-height:1.55}.card-help-brief>div{margin:12px 0}.card-help-brief dt{font-weight:750;color:#eaf6d5}.card-help-brief dd{margin:3px 0 0;color:#d6e5ec;overflow-wrap:anywhere}.card-help-details{border:1px solid #607f90;border-radius:7px;margin:12px 0}.card-help-details>summary{padding:12px;min-height:44px;cursor:pointer;font-weight:650}.card-help-details>div{padding:0 14px 10px}.card-help-details p{line-height:1.65;overflow-wrap:anywhere}.bolond-knowledge-field{border-left:3px solid #607f90;padding:4px 12px;margin:14px 0}.card-summary-effect{font-size:.95rem;margin:4px 0 8px}.bolond-hand-card{display:block}.bolond-rule-content .card-instance-status{margin:12px 0;border-top:1px solid #607f90;padding-top:12px}.bolond-rule-content .book-dialog-head{position:sticky;top:0}.card-help-details summary:focus-visible{outline:3px solid white;outline-offset:3px}@media(max-width:600px){.lobby-rulebooks{flex-direction:column}.lobby-rulebooks button{width:100%}.rulebook-dialog .book-dialog-head{align-items:flex-start}.book-dialog-actions{width:100%;justify-content:flex-start}.book-dialog-actions button{flex:1;padding:10px}.original-book-scroll{padding:16px}.original-book-toc{padding:12px}.original-book-scroll table{font-size:14px}.bolond-knowledge-field{padding-left:9px}}


/* Concise luck offers keep choosing and opening the full book separate. */
.bolond-offer article.bolond-offer-card{display:flex;flex-direction:column;gap:12px;padding:14px}
.bolond-offer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.bolond-offer-head h3{margin:0;padding-top:8px;font-size:1.05rem;line-height:1.4;overflow-wrap:anywhere}
.bolond-offer .bolond-offer-book{display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;margin:0;padding:9px;touch-action:manipulation}
.bolond-offer-book svg{display:block;width:24px;height:24px;pointer-events:none}
.bolond-offer .bolond-offer-copy{margin:0;line-height:1.6;font-size:1rem;white-space:pre-line;overflow-wrap:anywhere;color:#edf5f9}
.bolond-offer-card>button[data-bolond]{margin-top:auto;min-height:44px}
.rulebook-dialog .book-dialog-actions .book-dialog-close{display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:30px;line-height:1}
.rulebook-dialog .book-dialog-head{position:relative;padding-right:72px}
.rulebook-dialog .book-dialog-close{position:absolute;right:14px;top:10px}
@media(max-width:600px){.bolond-offer article.bolond-offer-card{padding:12px}.rulebook-dialog .book-dialog-head{padding-right:66px}.rulebook-dialog .book-dialog-close{right:10px;top:8px}.rulebook-dialog .book-dialog-head h2{min-width:0;overflow-wrap:anywhere}}

/* Give only the secret card choice enough room for its short descriptions. */
.roundtable .action-group>.bolond-offer-note{display:block;flex:1 0 100%;font-size:12px;line-height:1.45;margin:3px 0 7px;color:#d6e5ec}
@media(min-width:761px){
 .roundtable #controls:has(.bolond-offer){position:fixed;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1040px,calc(100vw - 48px));height:auto;min-height:0;max-height:calc(100dvh - 64px);padding:20px;overflow-y:auto;overscroll-behavior:contain;background:#11232a;border:1px solid #607f70;border-radius:14px;box-shadow:0 0 0 100vmax #0009,0 12px 40px #0008}
 .roundtable #controls:has(.bolond-offer) .action-group>h2{display:block;font-size:20px;margin:4px 0 12px}
 .roundtable #controls:has(.bolond-offer) .bolond-offer{flex:1 0 100%;width:100%}
}
