:root{--r304-gold:#f5bd28;--r304-gold-soft:#ffe39a;--r304-dark:#080a0d;--r304-panel:#11151b;--r304-panel-2:#181d25;--r304-felt:#0d613c;--r304-felt-dark:#073b27;--r304-red:#e64a4a;--r304-green:#43d18b;--r304-text:#f7f7f7;--r304-muted:#a9b0bc;--r304-border:rgba(255,255,255,.12)}
.r304-app,.r304-rules,.r304-login-required{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--r304-text);box-sizing:border-box}
.r304-app *,.r304-rules *,.r304-login-required *{box-sizing:border-box}
.r304-app button,.r304-app input,.r304-app select{font:inherit}
.r304-app button{cursor:pointer}
.r304-app{position:relative;max-width:1500px;margin:0 auto;background:#080a0d;border:1px solid rgba(255,255,255,.08);border-radius:26px;overflow:hidden;min-height:720px}
.r304-connection{position:absolute;z-index:100;left:50%;top:10px;transform:translateX(-50%);padding:8px 16px;border-radius:999px;background:#d44747;color:#fff;font-size:13px;font-weight:800;letter-spacing:.05em}
.r304-lobby{padding:34px;background:radial-gradient(circle at 25% 0%,rgba(245,189,40,.11),transparent 34%),linear-gradient(180deg,#11151a 0,#080a0d 65%);min-height:720px}
.r304-lobby-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}
.r304-kicker,.r304-section-title span,.r304-join-code>div>span{color:var(--r304-gold);font-size:12px;font-weight:900;letter-spacing:.19em}
.r304-lobby-head h1,.r304-rules h1{margin:6px 0 6px;font-size:clamp(32px,5vw,62px);line-height:.95;letter-spacing:-.04em}
.r304-lobby-head p{margin:0;color:var(--r304-muted);font-size:16px}
.r304-head-actions{display:flex;gap:9px}
.r304-icon-button,.r304-game-tools button{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;border:1px solid var(--r304-border);background:rgba(255,255,255,.055);color:#fff;text-decoration:none;font-size:19px}
.r304-icon-button:hover,.r304-game-tools button:hover{border-color:rgba(245,189,40,.65);background:rgba(245,189,40,.1)}
.r304-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:34px}
.r304-mode-card{border:1px solid var(--r304-border);border-radius:22px;padding:25px;background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.025));position:relative;overflow:hidden}
.r304-mode-card:after{content:"";position:absolute;right:-35px;bottom:-55px;width:170px;height:170px;border-radius:50%;border:26px solid rgba(245,189,40,.055)}
.r304-mode-icon{position:relative;z-index:1;width:58px;height:58px;border-radius:18px;background:var(--r304-gold);color:#18130a;display:grid;place-items:center;font-weight:950;font-size:18px;margin-bottom:32px}
.r304-mode-card h2{position:relative;z-index:1;margin:0 0 7px;font-size:25px}.r304-mode-card p{position:relative;z-index:1;color:var(--r304-muted);margin:0 0 20px}.r304-mode-card button{position:relative;z-index:1}
.r304-primary,.r304-secondary{border:0;border-radius:13px;padding:12px 18px;font-weight:850;transition:transform .15s ease,filter .15s ease}.r304-primary{background:var(--r304-gold);color:#171207}.r304-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.r304-secondary{background:rgba(255,255,255,.075);color:#fff;border:1px solid var(--r304-border)}.r304-secondary:hover{background:rgba(255,255,255,.12)}.r304-wide{width:100%}
.r304-public-section,.r304-join-code{border-top:1px solid var(--r304-border);padding-top:24px;margin-top:22px}.r304-section-title,.r304-join-code{display:flex;align-items:center;justify-content:space-between;gap:16px}.r304-section-title h2,.r304-join-code h2{margin:3px 0 0;font-size:22px}
.r304-table-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.r304-table-item{background:rgba(255,255,255,.045);border:1px solid var(--r304-border);border-radius:16px;padding:15px;display:flex;flex-direction:column;gap:12px}.r304-table-item header{display:flex;justify-content:space-between;gap:8px}.r304-table-item header strong{color:var(--r304-gold);letter-spacing:.08em}.r304-table-item header span{font-size:12px;color:var(--r304-green)}.r304-table-item p{margin:0;color:var(--r304-muted);font-size:13px}.r304-table-meta{display:flex;gap:6px;flex-wrap:wrap}.r304-table-meta span{background:rgba(255,255,255,.065);padding:5px 8px;border-radius:999px;font-size:11px}.r304-table-item button{margin-top:auto}
.r304-empty{color:var(--r304-muted);padding:20px;text-align:center;border:1px dashed rgba(255,255,255,.14);border-radius:14px;grid-column:1/-1}
.r304-join-code{margin-top:28px}.r304-code-row{display:grid;grid-template-columns:150px 210px auto;gap:9px;max-width:600px}.r304-code-row input,.r304-modal input,.r304-modal select,.r304-chat-compose input{width:100%;border:1px solid var(--r304-border);background:#0d1116;color:#fff;border-radius:12px;padding:12px 13px;outline:none}.r304-code-row input:focus,.r304-modal input:focus,.r304-modal select:focus,.r304-chat-compose input:focus{border-color:var(--r304-gold)}
.r304-game-shell{background:#050607;min-height:720px}.r304-topbar{height:72px;padding:0 16px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);background:#101318;position:relative;z-index:25}.r304-table-identity{display:flex;flex-direction:column}.r304-table-identity strong{color:var(--r304-gold);font-size:15px;letter-spacing:.12em}.r304-table-identity small{color:var(--r304-muted)}
.r304-score-strip{display:grid;grid-template-columns:repeat(3,minmax(80px,120px));gap:5px;text-align:center}.r304-score-strip div{padding:7px 13px;border-radius:12px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07)}.r304-score-strip span{display:block;color:var(--r304-muted);font-size:9px;font-weight:900;letter-spacing:.12em}.r304-score-strip strong{font-size:22px;line-height:1.1}.r304-score-strip div:nth-child(2) strong{color:var(--r304-gold)}
.r304-game-tools{display:flex;justify-content:flex-end;gap:7px}.r304-game-tools button{width:38px;height:38px;border-radius:11px;position:relative}.r304-game-tools button span{position:absolute;right:4px;top:4px;width:7px;height:7px;border-radius:50%;background:var(--r304-red)}
.r304-board-wrap{padding:16px;background:radial-gradient(circle at 50% 20%,#282023,#0d0e11 65%)}
.r304-board{position:relative;min-height:630px;border:17px solid #552e18;border-radius:48% 48% 16% 16%/24% 24% 12% 12%;background:radial-gradient(ellipse at center,#16734b 0,#0b5b39 55%,#063823 100%);box-shadow:inset 0 0 0 5px #a66b34,inset 0 0 0 9px rgba(24,10,2,.75),0 18px 50px rgba(0,0,0,.6);overflow:hidden;isolation:isolate}
.r304-board:before{content:"304";position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);font-size:150px;font-weight:950;color:rgba(255,255,255,.035);letter-spacing:-.08em}.r304-board:after{content:"POINT • TRICK • PARTNERSHIP";position:absolute;left:50%;top:61%;transform:translateX(-50%);font-size:12px;letter-spacing:.55em;color:rgba(255,255,255,.16);white-space:nowrap}
.r304-felt-lines:before,.r304-felt-lines:after{content:"";position:absolute;left:13%;right:13%;height:1px;background:rgba(255,255,255,.08);border-radius:50%}.r304-felt-lines:before{top:30%;box-shadow:0 270px 0 rgba(255,255,255,.08)}.r304-felt-lines:after{top:50%;left:28%;right:28%;border-top:1px dashed rgba(245,189,40,.28);background:none}
.r304-deck{position:absolute;right:8%;top:42%;width:64px;height:88px;border-radius:7px;background:repeating-linear-gradient(45deg,#691c28 0 5px,#f4d08e 5px 7px);border:3px solid #efe2c3;box-shadow:-5px 5px 0 #a8875c,-9px 9px 0 #6f563a;z-index:8}.r304-deck span{position:absolute;inset:7px;border:1px solid rgba(255,255,255,.7);border-radius:4px}.r304-deck small{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:10px;color:#fff;font-weight:900;background:rgba(0,0,0,.55);padding:3px 7px;border-radius:999px}
.r304-trump{position:absolute;left:8%;top:42%;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:8}.r304-trump-card{width:54px;height:76px;border-radius:7px;border:2px solid #f7e5b8;background:repeating-linear-gradient(45deg,#1d315f 0 5px,#d4b872 5px 7px);display:grid;place-items:center;color:#fff;font-size:26px;font-weight:950;box-shadow:0 8px 15px rgba(0,0,0,.35)}.r304-trump small{font-size:9px;font-weight:900;letter-spacing:.11em;color:var(--r304-gold-soft)}.r304-trump.is-revealed .r304-trump-card{background:#f8f4e9;color:#111;font-size:34px}.r304-trump.is-revealed small{color:#fff}
.r304-player-seat{position:absolute;z-index:12;display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:14px;background:rgba(4,8,7,.72);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(8px);min-width:155px}.r304-player-seat.is-turn{border-color:var(--r304-gold);box-shadow:0 0 0 3px rgba(245,189,40,.16)}.r304-player-seat.is-bidder .r304-avatar:after{content:"BID";position:absolute;right:-8px;top:-8px;background:var(--r304-gold);color:#111;font-size:8px;padding:3px 5px;border-radius:999px}.r304-avatar{position:relative;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#efc44e,#9e6918);color:#161007;display:grid;place-items:center;font-size:11px;font-weight:950;flex:0 0 auto}.r304-player-copy{min-width:0;display:flex;flex-direction:column}.r304-player-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r304-player-copy small{font-size:10px;color:var(--r304-muted)}.r304-player-copy small.is-online{color:var(--r304-green)}.r304-card-count{margin-left:auto;min-width:27px;height:27px;display:grid;place-items:center;background:rgba(255,255,255,.1);border-radius:9px;font-weight:900;font-size:12px}.seat-top{top:2%;left:50%;transform:translateX(-50%)}.seat-bottom{bottom:17%;left:50%;transform:translateX(-50%)}.seat-left{left:2%;top:18%}.seat-right{right:2%;top:18%}
.r304-timer{position:absolute;right:4%;bottom:17%;width:62px;height:62px;border-radius:50%;border:5px solid rgba(255,255,255,.12);background:rgba(0,0,0,.45);display:grid;place-items:center;z-index:10;text-align:center}.r304-timer span{font-size:8px;letter-spacing:.08em;color:var(--r304-muted);margin-bottom:-9px}.r304-timer strong{font-size:22px}.r304-timer.is-low{border-color:var(--r304-red);animation:r304Pulse .8s infinite}
.r304-round-info{position:absolute;left:50%;top:11%;transform:translateX(-50%);display:flex;gap:8px;z-index:10}.r304-round-info div{min-width:125px;text-align:center;padding:8px 12px;border-radius:12px;background:rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.11)}.r304-round-info span{display:block;font-size:8px;letter-spacing:.12em;color:var(--r304-muted)}.r304-round-info strong{font-size:15px}.r304-round-info div:last-child strong{color:var(--r304-gold)}
.r304-bid-banner{position:absolute;z-index:22;left:50%;top:31%;transform:translate(-50%,-50%);padding:10px 18px;border-radius:999px;background:#101318;border:1px solid var(--r304-gold);box-shadow:0 10px 24px rgba(0,0,0,.42);display:flex;align-items:center;gap:12px}.r304-bid-banner span{font-size:12px}.r304-bid-banner strong{font-size:19px;color:var(--r304-gold)}
.r304-trick-result{position:absolute;left:50%;top:35%;transform:translateX(-50%);z-index:23;background:rgba(9,12,13,.9);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:10px 18px;font-weight:900;color:var(--r304-gold);animation:r304Pop .35s ease both}
.r304-trick-zone{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:280px;height:220px;z-index:9}.r304-played-card{position:absolute;width:64px;height:92px;border-radius:8px;background:#f8f5ed;color:#161616;border:2px solid #eee2c9;box-shadow:0 10px 20px rgba(0,0,0,.35);padding:5px;font-weight:900;animation:r304PlayCard .32s cubic-bezier(.2,.8,.2,1) both}.r304-played-card.red{color:#d7263d}.r304-played-card strong{font-size:18px;display:block;line-height:1}.r304-played-card em{font-style:normal;font-size:22px;display:block}.r304-played-card.from-0{left:108px;bottom:0}.r304-played-card.from-2{left:108px;top:0;transform:rotate(180deg)}.r304-played-card.from-1{right:0;top:65px;transform:rotate(-90deg)}.r304-played-card.from-3{left:0;top:65px;transform:rotate(90deg)}
.r304-hand{position:absolute;z-index:18;left:50%;bottom:3%;transform:translateX(-50%);height:125px;display:flex;align-items:flex-end;justify-content:center;min-width:420px;max-width:74%;padding:0 20px}.r304-card{width:76px;height:108px;margin-left:-18px;border:2px solid #eee1c7;border-radius:9px;background:#faf7ef;color:#191919;box-shadow:0 7px 15px rgba(0,0,0,.38);padding:6px;text-align:left;position:relative;transition:transform .18s ease,filter .18s ease;animation:r304Deal .4s cubic-bezier(.2,.8,.2,1) both;transform-origin:50% 120%}.r304-card:first-child{margin-left:0}.r304-card.red{color:#d7243f}.r304-card strong{font-size:20px;line-height:1}.r304-card em{font-style:normal;font-size:26px;display:block}.r304-card .r304-card-center{position:absolute;inset:0;display:grid;place-items:center;font-size:38px;opacity:.88}.r304-card:hover,.r304-card.is-selectable:focus{transform:translateY(-14px);z-index:20}.r304-card.is-disabled{filter:brightness(.55);cursor:not-allowed}.r304-card.is-trump-choice{outline:3px solid var(--r304-gold);outline-offset:2px}
.r304-controls{position:absolute;z-index:21;left:50%;bottom:18%;transform:translateX(-50%);width:min(760px,82%);text-align:center}.r304-waiting-copy{font-size:13px;font-weight:750;color:#fff;text-shadow:0 2px 5px #000;margin-bottom:8px}.r304-action-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.r304-action-row button{min-width:74px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#14191f;color:#fff;padding:10px 13px;font-weight:900;box-shadow:0 8px 16px rgba(0,0,0,.22)}.r304-action-row button.is-primary{background:var(--r304-gold);color:#171107;border-color:var(--r304-gold)}.r304-action-row button.is-danger{background:#b42e39}.r304-action-row button:hover{transform:translateY(-1px);filter:brightness(1.08)}
.r304-landscape-notice{display:none}
.r304-modal-backdrop{position:absolute;z-index:60;inset:0;background:rgba(0,0,0,.74);backdrop-filter:blur(4px)}.r304-modal{position:absolute;z-index:61;top:50%;left:50%;transform:translate(-50%,-50%);width:min(580px,calc(100% - 28px));max-height:90%;overflow:auto;background:#12171d;border:1px solid var(--r304-border);border-radius:22px;padding:25px;box-shadow:0 25px 70px rgba(0,0,0,.65)}.r304-modal h2{margin:5px 0 20px;font-size:28px}.r304-modal-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:11px;border:1px solid var(--r304-border);background:rgba(255,255,255,.06);color:#fff;font-size:24px}.r304-option-group{margin:18px 0}.r304-option-group h3{font-size:13px;color:var(--r304-muted);letter-spacing:.09em;text-transform:uppercase}.r304-radio{display:flex;gap:11px;align-items:center;border:1px solid var(--r304-border);padding:12px;border-radius:13px;margin:8px 0;background:rgba(255,255,255,.03)}.r304-radio:has(input:checked){border-color:var(--r304-gold);background:rgba(245,189,40,.08)}.r304-radio input{accent-color:var(--r304-gold);width:20px;height:20px}.r304-radio span{display:flex;flex-direction:column}.r304-radio small{color:var(--r304-muted);font-size:11px}.r304-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}.r304-modal label{font-size:12px;font-weight:800;color:#dce0e6}.r304-modal label input,.r304-modal label select{margin-top:7px}
.r304-side-panel{position:absolute;z-index:70;right:0;top:0;bottom:0;width:min(390px,94%);background:#11161c;border-left:1px solid var(--r304-border);padding:20px;box-shadow:-20px 0 50px rgba(0,0,0,.45);overflow:auto;animation:r304Panel .25s ease both}.r304-side-panel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.r304-side-panel h2{margin:0}.r304-side-panel header button{width:38px;height:38px;border-radius:11px;border:1px solid var(--r304-border);background:rgba(255,255,255,.06);color:#fff;font-size:22px}.r304-switch{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}.r304-switch input{width:22px;height:22px;accent-color:var(--r304-gold)}.r304-side-panel>label:not(.r304-switch){display:block;margin:18px 0;color:var(--r304-muted)}.r304-side-panel input[type=range]{width:100%;accent-color:var(--r304-gold)}
.r304-chat-list{display:flex;flex-direction:column;gap:9px;min-height:360px}.r304-chat-message{padding:10px 12px;border-radius:13px;background:rgba(255,255,255,.055)}.r304-chat-message strong{display:block;color:var(--r304-gold);font-size:11px}.r304-chat-message p{margin:4px 0 0;font-size:13px}.r304-chat-compose{display:grid;grid-template-columns:1fr auto;gap:7px;position:sticky;bottom:0;background:#11161c;padding-top:12px}.r304-chat-compose button{border:0;border-radius:11px;padding:0 14px;background:var(--r304-gold);font-weight:900}
.r304-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.r304-stat-grid div{background:rgba(255,255,255,.055);border:1px solid var(--r304-border);border-radius:13px;padding:12px;text-align:center}.r304-stat-grid span{font-size:10px;color:var(--r304-muted);display:block}.r304-stat-grid strong{font-size:23px}.r304-history-list{margin-top:18px}.r304-history-item{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}.r304-history-item strong{font-size:13px}.r304-history-item strong.win{color:var(--r304-green)}.r304-history-item strong.loss{color:var(--r304-red)}.r304-history-item p{margin:4px 0;color:#dfe3e7;font-size:12px}.r304-history-item small{color:var(--r304-muted);font-size:10px}
.r304-rules,.r304-login-required{max-width:1100px;margin:30px auto;padding:35px;border-radius:24px;background:#11161c;border:1px solid rgba(255,255,255,.09)}.r304-rules h2{margin-top:30px;color:var(--r304-gold)}.r304-rules p{color:#c0c6ce;line-height:1.75}.r304-rule-table{overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:15px}.r304-rule-table>div{display:grid;grid-template-columns:100px repeat(8,minmax(54px,1fr));border-bottom:1px solid rgba(255,255,255,.08)}.r304-rule-table>div:last-child{border-bottom:0}.r304-rule-table span,.r304-rule-table strong{padding:10px;text-align:center}.r304-rule-table strong{background:rgba(245,189,40,.1);color:var(--r304-gold)}.r304-login-required{text-align:center}.r304-login-required a{display:inline-block;background:var(--r304-gold);color:#111;text-decoration:none;padding:12px 18px;border-radius:12px;font-weight:900}
.r304-toast{position:absolute;z-index:90;left:50%;top:88px;transform:translateX(-50%);background:#161c23;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 15px;box-shadow:0 12px 35px rgba(0,0,0,.4);animation:r304Pop .25s ease both}.r304-toast.is-error{border-color:#d94747;color:#ffd4d4}.r304-toast.is-success{border-color:#38c887;color:#d8ffed}
.r304-flying-card{position:absolute;z-index:50;width:52px;height:74px;border-radius:6px;background:repeating-linear-gradient(45deg,#6f2130 0 4px,#edcc82 4px 6px);border:2px solid #f1dfba;pointer-events:none;animation:r304Fly .42s cubic-bezier(.25,.8,.2,1) forwards}
@keyframes r304Deal{from{opacity:0;transform:translate(280px,-240px) rotate(18deg) scale(.7)}to{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
@keyframes r304PlayCard{from{opacity:0;filter:blur(2px);scale:.55}to{opacity:1;filter:none;scale:1}}
@keyframes r304Fly{to{transform:translate(var(--fly-x),var(--fly-y)) rotate(var(--fly-r));opacity:.4}}
@keyframes r304Pop{from{opacity:0;scale:.86}to{opacity:1;scale:1}}
@keyframes r304Panel{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes r304Pulse{50%{box-shadow:0 0 0 8px rgba(230,74,74,.15)}}
body.r304-fullscreen-active{overflow:hidden}.r304-app:fullscreen{max-width:none;width:100%;height:100%;border:0;border-radius:0}.r304-app:fullscreen .r304-game-shell{height:100%}.r304-app:fullscreen .r304-board-wrap{height:calc(100% - 72px)}.r304-app:fullscreen .r304-board{min-height:100%;height:100%}
@media(max-width:900px){.r304-app{border-radius:0;min-height:650px}.r304-lobby{padding:20px}.r304-table-list{grid-template-columns:repeat(2,minmax(0,1fr))}.r304-topbar{grid-template-columns:1fr auto}.r304-score-strip{order:3;grid-column:1/-1;width:100%;padding-bottom:8px}.r304-topbar{height:auto;min-height:72px;padding-top:8px}.r304-game-tools{grid-column:2}.r304-board-wrap{padding:8px}.r304-board{min-height:560px;border-width:11px;border-radius:36% 36% 12% 12%/18% 18% 10% 10%}.r304-hand{max-width:92%;min-width:0;width:92%;height:105px}.r304-card{width:65px;height:93px;margin-left:-20px}.r304-card strong{font-size:17px}.r304-card em{font-size:22px}.r304-card .r304-card-center{font-size:31px}.r304-controls{bottom:18%;width:92%}.r304-player-seat{min-width:125px;padding:5px 7px}.r304-avatar{width:31px;height:31px}.r304-round-info{top:10%}.r304-round-info div{min-width:105px;padding:6px}.r304-trick-zone{width:240px;height:190px}.r304-played-card{width:57px;height:82px}.r304-played-card.from-0,.r304-played-card.from-2{left:92px}.r304-played-card.from-1,.r304-played-card.from-3{top:55px}.r304-deck{right:5%;transform:scale(.85)}.r304-trump{left:5%;transform:scale(.85)}}
@media(max-width:650px){.r304-mode-grid{grid-template-columns:1fr}.r304-lobby-head{align-items:center}.r304-lobby-head p{font-size:14px}.r304-table-list{grid-template-columns:1fr}.r304-section-title,.r304-join-code{align-items:flex-start;flex-direction:column}.r304-code-row{width:100%;grid-template-columns:1fr}.r304-two-columns{grid-template-columns:1fr}.r304-rule-table>div{grid-template-columns:85px repeat(8,54px)}.r304-rules{padding:20px;margin:0;border-radius:0}}
@media(orientation:portrait) and (max-width:900px){.r304-game-shell .r304-landscape-notice{display:flex;position:absolute;z-index:55;inset:72px 0 0;background:rgba(5,7,8,.96);align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:8px}.r304-landscape-notice span{font-size:48px;color:var(--r304-gold)}.r304-landscape-notice small{color:var(--r304-muted)}}
@media(orientation:landscape) and (max-height:650px){.r304-app{min-height:100vh}.r304-game-shell{min-height:100vh}.r304-topbar{height:54px;min-height:54px;padding:4px 10px;grid-template-columns:1fr auto 1fr}.r304-score-strip{order:initial;grid-column:auto;padding:0}.r304-score-strip div{padding:3px 10px}.r304-score-strip strong{font-size:17px}.r304-game-tools{grid-column:auto}.r304-game-tools button{width:34px;height:34px}.r304-board-wrap{height:calc(100vh - 54px);padding:5px}.r304-board{min-height:100%;height:100%;border-width:9px;border-radius:42% 42% 12% 12%/20% 20% 9% 9%}.r304-player-seat{min-width:115px;padding:4px 6px}.r304-avatar{width:28px;height:28px}.seat-top{top:1%}.seat-left,.seat-right{top:16%}.seat-bottom{bottom:20%}.r304-hand{bottom:1%;height:88px}.r304-card{width:56px;height:80px;margin-left:-17px;padding:4px}.r304-card strong{font-size:14px}.r304-card em{font-size:18px}.r304-card .r304-card-center{font-size:26px}.r304-controls{bottom:20%;}.r304-action-row button{padding:7px 10px;font-size:12px}.r304-round-info{top:8%}.r304-trick-zone{top:48%;transform:translate(-50%,-50%) scale(.82)}.r304-timer{bottom:19%;width:48px;height:48px;border-width:3px}.r304-timer strong{font-size:17px}.r304-deck{top:40%;transform:scale(.72)}.r304-trump{top:40%;transform:scale(.72)}}

/* WordPress page integration: remove duplicate theme title and allow the game to use the full content width. */
body.reno-304-game-page .entry-header,
body.reno-304-game-page .page-header,
body.reno-304-game-page .entry-title,
body.reno-304-game-page main > h1:first-child {display:none!important}
body.reno-304-game-page .site-main,
body.reno-304-game-page .content-area,
body.reno-304-game-page .site-content,
body.reno-304-game-page .entry-content,
body.reno-304-game-page article.page {width:100%!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important}
body.reno-304-game-page .entry-content {margin-top:0!important}

/* Reno 304 v1.1 — immersive regional table */
body.reno-304-play-page,
body.reno-304-play-page.r304-immersive-active{overflow:hidden!important;background:#004d05!important}
body.reno-304-play-page #reno-304-app{position:fixed!important;inset:0!important;z-index:2147483000!important;width:100vw!important;height:100dvh!important;max-width:none!important;min-height:0!important;margin:0!important;border:0!important;border-radius:0!important;overflow:hidden!important;background:#003f05!important}
body.reno-304-play-page #wpadminbar{display:none!important}
.r304-app.is-immersive{width:100vw;height:100dvh;max-width:none;border:0;border-radius:0}
.r304-app.is-immersive .r304-lobby{height:100%;min-height:0;overflow:auto;padding:clamp(18px,3vw,42px);background:radial-gradient(circle at 18% 8%,rgba(255,204,43,.15),transparent 28%),linear-gradient(155deg,#0a3f13,#06180a 64%,#040806)}
.r304-app.is-immersive .r304-game-shell{height:100%;min-height:0;background:#003f05}
.r304-game-stage{display:grid;grid-template-columns:72px minmax(0,1fr);height:100%;min-height:0;background:#004f08}
.r304-rail{position:relative;z-index:80;display:flex;flex-direction:column;align-items:stretch;background:linear-gradient(180deg,#0a5a16,#073a0d);border-right:1px solid rgba(255,255,255,.16);box-shadow:7px 0 24px rgba(0,0,0,.18)}
.r304-rail button{position:relative;height:58px;border:0;border-bottom:1px solid rgba(255,255,255,.13);background:rgba(0,0,0,.08);color:#fff;font-size:24px;font-weight:800}
.r304-rail button:hover,.r304-rail button:focus-visible{background:rgba(255,255,255,.13)}
.r304-rail button:nth-last-child(2){margin-top:auto;border-top:1px solid rgba(255,255,255,.13)}
.r304-rail button span{position:absolute;right:9px;top:8px;width:8px;height:8px;border-radius:50%;background:#ffcf2f}
.r304-board-wrap{height:100%;min-height:0;padding:0!important;background:#005a08!important;overflow:hidden}
.r304-board{width:100%;height:100%;min-height:0!important;border:0!important;border-radius:0!important;background:radial-gradient(ellipse at 52% 47%,#087414 0,#03650d 52%,#004806 100%)!important;box-shadow:inset 0 0 90px rgba(0,0,0,.26)!important;overflow:hidden}
.r304-board:before{content:"304";top:47%;font-size:min(18vw,190px);color:rgba(255,255,255,.025)}
.r304-board:after{content:"SHORT REGIONAL BIDS • DECIMAL POINTS";top:58%;font-size:10px;letter-spacing:.42em;color:rgba(255,255,255,.12)}
.r304-table-identity{position:absolute;z-index:25;left:50%;top:10px;transform:translateX(-50%);text-align:center;display:flex;flex-direction:column;line-height:1.1}
.r304-table-identity strong{font-size:15px;color:#e7f7e8;letter-spacing:.08em}.r304-table-identity small{font-size:10px;color:rgba(255,255,255,.72)}
.r304-match-scoreboard{position:absolute;z-index:26;left:0;top:0;width:min(470px,47vw);background:rgba(15,26,18,.82);border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);box-shadow:0 8px 24px rgba(0,0,0,.24);font-variant-numeric:tabular-nums}
.r304-score-head,.r304-score-row{display:grid;grid-template-columns:1.2fr repeat(4,1fr);align-items:center;text-align:center}
.r304-score-head{height:30px;background:rgba(255,255,255,.08);color:#dcebdd;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.r304-score-head>div{height:100%;display:grid;place-items:center;border-right:1px solid rgba(255,255,255,.08)}
.r304-match-scoreboard .r304-timer{position:static!important;width:auto!important;height:100%!important;border:0!important;border-radius:0!important;background:transparent!important;display:grid!important;grid-template-columns:auto auto;place-content:center;gap:7px;animation:none!important}
.r304-match-scoreboard .r304-timer span{margin:0!important;font-size:9px!important;color:#dcebdd!important}.r304-match-scoreboard .r304-timer strong{font-size:12px!important;color:#fff}
.r304-match-scoreboard .r304-timer.is-low{background:#9e1919!important}
.r304-score-row{height:26px;color:#fff;font-size:12px;font-weight:800}.r304-score-row>*{height:100%;display:grid;place-items:center;border-right:1px solid rgba(255,255,255,.08)}
.r304-score-row.is-us{background:linear-gradient(90deg,#d01d16,#b91412)}.r304-score-row.is-them{background:linear-gradient(90deg,#2b4f78,#263f61)}
.r304-score-row strong{text-transform:uppercase;letter-spacing:.08em}.r304-score-rules{display:flex;gap:8px;align-items:center;padding:5px 8px;background:rgba(2,16,5,.9);color:#b8d8bc;font-size:8px;font-weight:800;letter-spacing:.05em}.r304-score-rules span{white-space:nowrap}.r304-score-rules span:last-child{margin-left:auto;color:#fff}
.r304-player-seat{min-width:0!important;padding:0!important;background:transparent!important;border:0!important;backdrop-filter:none!important;display:flex;align-items:center;gap:7px;box-shadow:none!important}
.r304-player-seat .r304-avatar{width:31px;height:31px;border-radius:50%;background:#fff;color:#17411b;border:2px solid rgba(255,255,255,.76);box-shadow:0 2px 8px rgba(0,0,0,.3)}
.r304-player-copy{padding:2px 6px;border-radius:4px;background:rgba(7,30,10,.82);max-width:145px}.r304-player-copy strong{font-size:12px}.r304-player-copy small{font-size:9px}.r304-card-count{height:24px;min-width:24px;border-radius:4px;background:rgba(0,0,0,.45)}
.r304-player-seat.is-turn:before{content:"↓";position:absolute;color:#fff;font-size:28px;line-height:1;filter:drop-shadow(0 2px 2px #000);animation:r304TurnArrow .75s ease-in-out infinite alternate}
.r304-player-seat.seat-top.is-turn:before{left:50%;top:100%;transform:translateX(-50%)}.r304-player-seat.seat-bottom.is-turn:before{left:50%;bottom:100%;transform:translateX(-50%) rotate(180deg)}.r304-player-seat.seat-left.is-turn:before{left:100%;top:50%;transform:translateY(-50%) rotate(-90deg)}.r304-player-seat.seat-right.is-turn:before{right:100%;top:50%;transform:translateY(-50%) rotate(90deg)}
.r304-seat-bid{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);padding:5px 9px;border-radius:4px;background:#46b8df;color:#09232d;font-size:12px;font-weight:950;box-shadow:0 4px 12px rgba(0,0,0,.28);white-space:nowrap}
.seat-top{top:13%!important;left:50%!important;transform:translateX(-50%)!important}.seat-left{left:27%!important;top:29%!important}.seat-right{right:14%!important;top:29%!important}.seat-bottom{bottom:17%!important;left:50%!important;transform:translateX(-50%)!important}
.r304-deck{right:11%!important;top:46%!important;width:54px;height:76px;transform:none!important;transition:transform .2s ease}.r304-deck.is-shuffling{animation:r304ShuffleDeck .68s ease both}.r304-deck small{margin-top:5px;font-size:9px}
.r304-trump{left:23%!important;top:45%!important;transform:none!important}.r304-trump-card{width:48px;height:68px}.r304-trump small{font-size:8px}
.r304-round-info{left:74%!important;top:11%!important;transform:none!important;flex-direction:column;gap:5px}.r304-round-info div{min-width:150px;padding:6px 9px;border-radius:3px;background:rgba(0,0,0,.28)}.r304-round-info span{font-size:8px}.r304-round-info strong{font-size:14px}
.r304-bid-banner{left:56%!important;top:26%!important;border-radius:4px;padding:6px 12px;background:#0d3512;border:1px solid rgba(255,255,255,.2)}.r304-bid-banner strong{color:#6ed6f3}
.r304-trick-zone{left:55%!important;top:49%!important;width:250px;height:190px}.r304-controls{left:63%!important;bottom:19%!important;width:min(620px,58%)!important}.r304-waiting-copy{font-size:12px;margin-bottom:7px}
.r304-action-row{gap:10px}.r304-action-row button{min-width:78px;padding:9px 13px;border-radius:3px;background:#b91c14;border:1px solid rgba(255,255,255,.13);font-size:12px;letter-spacing:.03em;text-transform:uppercase;box-shadow:0 5px 10px rgba(0,0,0,.28)}.r304-action-row button.is-primary{background:#bd1c14;color:#fff;border-color:#e02e24}.r304-action-row button.is-danger{background:#87110d}
.r304-hand{bottom:1.2%!important;left:58%!important;height:112px;min-width:0!important;width:min(720px,68%)!important;max-width:none!important;padding:0 8px}.r304-card{width:76px;height:108px;margin-left:-9px!important;border-radius:5px;box-shadow:0 5px 11px rgba(0,0,0,.45);animation:r304PacketReveal .28s ease both}.r304-card:first-child{margin-left:0!important}.r304-card.is-selectable:hover{transform:translateY(-12px)}
.r304-trick-result{z-index:50!important;border-radius:4px!important}
.r304-fixed-rules{display:grid;gap:8px;margin:15px 0 20px}.r304-fixed-rules>div{display:grid;grid-template-columns:95px 1fr;gap:2px 12px;padding:11px;border-radius:12px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1)}.r304-fixed-rules span{grid-row:1/3;color:#f5bd28;font-size:10px;font-weight:900;letter-spacing:.09em}.r304-fixed-rules strong{font-size:13px}.r304-fixed-rules small{color:#9da9a0;font-size:10px}.r304-modal #r304-online-options{display:grid;gap:12px}.r304-modal #r304-online-options label{display:block}
.r304-flying-packet{position:absolute;z-index:55;width:58px;height:80px;pointer-events:none;animation:r304FlyPacket .56s cubic-bezier(.2,.82,.22,1) forwards}.r304-flying-packet i{position:absolute;inset:0;border:2px solid #f2dfb7;border-radius:5px;background:repeating-linear-gradient(45deg,#7c1830 0 4px,#e0ba6f 4px 6px);box-shadow:0 4px 8px rgba(0,0,0,.35);transform:translate(calc(var(--packet-i) * 3px),calc(var(--packet-i) * -2px)) rotate(calc((var(--packet-i) - 1.5) * 2deg))}
@keyframes r304FlyPacket{0%{transform:translate(0,0) rotate(0) scale(.85)}75%{opacity:1}100%{transform:translate(var(--fly-x),var(--fly-y)) rotate(var(--fly-r)) scale(1);opacity:.88}}
@keyframes r304ShuffleDeck{0%,100%{transform:translateX(0) rotate(0)}20%{transform:translateX(-16px) rotate(-8deg)}40%{transform:translateX(15px) rotate(8deg)}60%{transform:translateX(-10px) rotate(-5deg)}80%{transform:translateX(8px) rotate(4deg)}}
@keyframes r304PacketReveal{from{opacity:0;transform:translateY(18px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes r304TurnArrow{to{translate:0 6px}}
.r304-side-panel{position:fixed!important;z-index:2147483100!important;height:100dvh}.r304-modal-backdrop{position:fixed!important;z-index:2147483050!important}.r304-modal{position:fixed!important;z-index:2147483060!important}
.r304-toast{position:fixed!important;z-index:2147483150!important}

@media(max-width:980px){
  .r304-game-stage{grid-template-columns:55px minmax(0,1fr)}.r304-rail button{height:48px;font-size:20px}.r304-match-scoreboard{width:47vw}.r304-score-head,.r304-score-row{grid-template-columns:1.25fr repeat(4,1fr)}.r304-score-head{font-size:8px}.r304-score-row{font-size:10px}.r304-score-rules{font-size:7px}
  .seat-left{left:20%!important}.seat-right{right:8%!important}.r304-round-info{left:auto!important;right:2%!important}.r304-round-info div{min-width:120px}.r304-controls{left:62%!important;width:62%!important}.r304-hand{left:57%!important;width:72%!important}.r304-card{width:64px;height:92px}.r304-trick-zone{left:56%!important;transform:translate(-50%,-50%) scale(.86)}
}
@media(orientation:landscape) and (max-height:650px){
  .r304-app{min-height:0!important}.r304-game-shell{min-height:0!important}.r304-board-wrap{height:100%!important}.r304-board{height:100%!important;min-height:0!important;border:0!important}.r304-match-scoreboard{width:min(440px,46vw)}.r304-score-head{height:25px}.r304-score-row{height:22px}.r304-score-rules{padding:3px 6px}.r304-table-identity{top:7px}.seat-top{top:16%!important}.seat-left,.seat-right{top:31%!important}.seat-bottom{bottom:18%!important}.r304-hand{bottom:1%!important;height:88px}.r304-card{width:58px;height:82px;padding:4px}.r304-controls{bottom:20%!important}.r304-round-info{top:17%!important}.r304-trick-zone{top:51%!important;transform:translate(-50%,-50%) scale(.72)}.r304-deck,.r304-trump{top:46%!important;transform:scale(.78)!important}.r304-action-row button{padding:7px 10px;font-size:10px}.r304-player-copy{max-width:110px}.r304-player-copy strong{font-size:10px}.r304-avatar{width:27px!important;height:27px!important}.r304-seat-bid{font-size:10px;padding:3px 7px}
}
@media(orientation:portrait) and (max-width:980px){.r304-game-shell .r304-landscape-notice{inset:0!important;z-index:2147483200!important;background:#003d06!important}.r304-game-stage{visibility:hidden}}

/* Reno 304 v1.3 — reference-style full-screen table */
.r304-game-shell{background:#005c08!important}
.r304-game-stage{grid-template-columns:64px minmax(0,1fr)!important;background:#005c08!important}
.r304-rail{background:#075713!important;box-shadow:none!important;border-right:1px solid rgba(255,255,255,.18)!important}
.r304-rail button{height:43px!important;background:rgba(0,0,0,.08)!important;font-size:20px!important;border:1px solid rgba(255,255,255,.13)!important;border-left:0!important;margin:0 0 1px!important}
.r304-rail button:nth-last-child(2){margin-top:auto!important}
.r304-board-wrap{padding:0!important;background:#005c08!important;height:100%!important}
.r304-board{height:100%!important;min-height:640px!important;border:0!important;border-radius:0!important;background:#005c08!important;box-shadow:none!important;overflow:hidden!important}
.r304-board:before,.r304-board:after{display:none!important}
.r304-table-identity{top:6px!important;left:64%!important;transform:translateX(-50%)!important}
.r304-table-identity strong{font-size:13px!important;color:#fff!important}.r304-table-identity small{display:none!important}
.r304-match-scoreboard{left:0!important;top:0!important;width:min(350px,43vw)!important;background:transparent!important;border:0!important;box-shadow:none!important}
.r304-score-head{height:20px!important;background:#0c5d13!important;font-size:11px!important;text-transform:none!important;letter-spacing:0!important}
.r304-score-head,.r304-score-row{grid-template-columns:1.15fr repeat(4,1fr)!important}
.r304-score-head>div,.r304-score-row>*{border:0!important}
.r304-match-scoreboard .r304-timer{display:grid!important;place-items:center!important;grid-template-columns:1fr!important;background:#0b6814!important}
.r304-match-scoreboard .r304-timer strong{font-size:12px!important;font-weight:500!important}
.r304-score-row{height:21px!important;font-size:12px!important;font-weight:500!important}
.r304-score-row.is-us{background:#c91c17!important}.r304-score-row.is-them{background:#24455f!important}
.r304-score-rules{display:none!important}
.r304-player-seat{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;padding:0!important;gap:5px!important;min-width:95px!important}
.r304-player-seat .r304-avatar{display:none!important}
.r304-player-copy{background:transparent!important;padding:0!important;max-width:125px!important;overflow:visible!important}
.r304-player-copy strong{display:inline-block!important;background:rgba(0,0,0,.74)!important;color:#fff!important;font-size:13px!important;font-weight:500!important;padding:1px 5px!important;border-radius:0!important;max-width:125px!important}
.r304-player-copy small{display:block!important;color:#00d8d8!important;font-size:13px!important;margin-top:5px!important;font-variant-numeric:tabular-nums!important}
.r304-card-count{display:none!important}
.r304-player-seat.is-turn:before{content:"↓"!important;font-size:28px!important;color:#fff!important;filter:none!important;animation:r304TurnArrow .8s ease-in-out infinite alternate!important}
.seat-top{top:4px!important;left:64%!important;transform:translateX(-50%)!important}
.seat-left{left:25%!important;top:21%!important}.seat-right{right:24%!important;top:21%!important}
.seat-bottom{bottom:28%!important;left:48%!important;transform:translateX(-50%)!important}
.seat-bottom .r304-player-copy strong:before{content:"★ ";color:#fff;font-size:18px;vertical-align:-1px}
.r304-seat-bid{left:100%!important;top:0!important;transform:none!important;background:#43c5e8!important;color:#08212a!important;font-size:13px!important;padding:5px 8px!important;border-radius:2px!important}
.r304-seat-ready{position:absolute;left:100%;top:28px;background:#20cf75;color:#fff;padding:3px 7px;font-size:10px;font-weight:900;white-space:nowrap}
.r304-deck{right:8%!important;top:40%!important;width:42px!important;height:60px!important;opacity:.75!important;box-shadow:-3px 3px 0 #a8875c!important}
.r304-deck small{display:none!important}.r304-trump{left:34%!important;top:54%!important;transform:scale(.8)!important}
.r304-round-info{display:none!important}
.r304-bid-banner{left:35%!important;top:23%!important;background:transparent!important;border:0!important;padding:0!important;gap:5px!important;align-items:center!important}
.r304-bid-banner span{background:rgba(0,0,0,.72);padding:2px 6px;color:#fff}.r304-bid-banner strong{background:#42c7e8;color:#05232b!important;padding:6px 8px;font-size:14px}
.r304-trick-zone{left:51%!important;top:48%!important;width:300px!important;height:255px!important;transform:translate(-50%,-50%)!important}
.r304-played-card{width:76px!important;height:106px!important;border-radius:5px!important;padding:5px!important}
.r304-played-card strong{font-size:22px!important}.r304-played-card em{font-size:28px!important}
.r304-played-card.from-0,.r304-played-card.from-2{left:112px!important}.r304-played-card.from-1,.r304-played-card.from-3{top:72px!important}
.r304-hand{left:50%!important;bottom:1%!important;width:min(760px,88%)!important;max-width:none!important;height:120px!important;padding:0!important}
.r304-card{width:82px!important;height:118px!important;margin-left:-5px!important;border-radius:5px!important;padding:6px!important;box-shadow:0 3px 7px rgba(0,0,0,.42)!important}
.r304-card:first-child{margin-left:0!important}.r304-card strong{font-size:24px!important}.r304-card em{font-size:29px!important}.r304-card .r304-card-center{font-size:42px!important}
.r304-controls{left:63%!important;bottom:24%!important;width:min(560px,57%)!important;text-align:left!important;transform:translateX(-50%)!important}
.r304-waiting-copy{font-size:13px!important;text-align:left!important;margin-bottom:5px!important}
.r304-action-row{justify-content:flex-start!important;align-items:end!important;gap:10px!important;flex-wrap:nowrap!important}
.r304-action-row button{min-width:84px!important;padding:10px 15px!important;border-radius:2px!important;background:#bd1b14!important;border:1px solid rgba(255,255,255,.1)!important;color:#fff!important;text-transform:uppercase!important;font-size:13px!important;box-shadow:0 4px 8px rgba(0,0,0,.28)!important;white-space:nowrap!important}
.r304-action-row button.is-primary{background:#bd1b14!important;color:#fff!important}.r304-action-row button.is-danger{background:#ad1712!important}.r304-action-row button.is-continue{background:#20cf75!important;color:#fff!important;font-size:14px!important}
.r304-ready-wait{display:inline-flex;align-items:center;min-height:39px;padding:0 12px;background:rgba(0,0,0,.35);color:#fff;font-size:12px}
.r304-bid-scroller{width:min(330px,40vw);display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;align-items:center;gap:0 8px;margin-right:2px}
.r304-bid-scroll-value{grid-row:1/3;width:44px;height:34px;display:grid;place-items:center;background:#bd1b14;color:#fff;font-weight:900;font-size:14px}
.r304-bid-scroller input[type=range]{grid-column:2;width:100%;height:22px;margin:0;accent-color:#bf1b14;background:transparent;cursor:ew-resize}
.r304-bid-scroller input[type=range]::-webkit-slider-runnable-track{height:2px;background:rgba(255,255,255,.72)}
.r304-bid-scroller input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#bd1b14;margin-top:-7px;border:0}
.r304-bid-scroller input[type=range]::-moz-range-track{height:2px;background:rgba(255,255,255,.72)}.r304-bid-scroller input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#bd1b14;border:0}
.r304-bid-marks{grid-column:2;display:flex;justify-content:space-between;color:rgba(255,255,255,.65);font-size:9px;margin-top:-2px}.r304-selected-bid{min-width:64px!important}
.r304-trick-result{border-radius:2px!important;background:rgba(0,0,0,.75)!important}
@media(orientation:landscape) and (max-height:650px){
 .r304-board{min-height:100%!important}.r304-match-scoreboard{width:min(350px,42vw)!important}.r304-score-head{height:18px!important}.r304-score-row{height:19px!important}
 .seat-top{top:2px!important}.seat-left,.seat-right{top:21%!important}.seat-bottom{bottom:27%!important}
 .r304-trick-zone{transform:translate(-50%,-50%) scale(.78)!important}.r304-hand{height:104px!important}.r304-card{width:70px!important;height:101px!important}
 .r304-controls{bottom:24%!important}.r304-bid-scroller{width:min(285px,38vw)}.r304-action-row button{padding:8px 11px!important;font-size:11px!important}
}
@media(max-width:820px){
 .r304-game-stage{grid-template-columns:48px minmax(0,1fr)!important}.r304-rail button{height:39px!important;font-size:18px!important}
 .r304-match-scoreboard{width:45vw!important}.r304-score-head,.r304-score-row{font-size:9px!important}.r304-table-identity{left:65%!important}
 .seat-left{left:18%!important}.seat-right{right:13%!important}.seat-bottom{bottom:29%!important}.r304-player-copy strong{font-size:10px!important}.r304-player-copy small{font-size:10px!important}
 .r304-controls{left:62%!important;width:66%!important}.r304-bid-scroller{width:32vw}.r304-action-row{gap:5px!important}.r304-action-row button{min-width:60px!important;padding:7px 8px!important;font-size:9px!important}
 .r304-hand{width:92%!important}.r304-card{width:62px!important;height:90px!important;margin-left:-5px!important}.r304-trick-zone{transform:translate(-50%,-50%) scale(.7)!important}
}

/* Reno 304 v1.4 — mobile, real cards, no deck */
.r304-deck{display:none!important}
.r304-real-card-image{display:block;width:100%;height:100%;object-fit:fill;border-radius:inherit;pointer-events:none}
.r304-card,.r304-played-card{padding:0!important;background:#fff!important;overflow:hidden!important}
.r304-card strong,.r304-card em,.r304-card-center,.r304-played-card strong,.r304-played-card em{display:none!important}
.r304-lobby-head{align-items:flex-start}.r304-head-actions{display:flex;gap:8px;flex-wrap:wrap}
#r304-install-game{background:#20cf75!important;color:#062b12!important}
#r304-reorder-cards{font-size:23px!important}
.r304-player-seat.is-turn:before{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);z-index:30}
.seat-bottom.is-turn:before{content:"↑"!important;top:auto!important;bottom:calc(100% + 5px)}
.seat-left.is-turn:before{content:"←"!important;left:auto!important;right:-30px!important;top:50%!important;transform:translateY(-50%)!important}
.seat-right.is-turn:before{content:"→"!important;left:-30px!important;top:50%!important;transform:translateY(-50%)!important}
@media(max-width:900px) and (orientation:landscape){
 .r304-game-stage{grid-template-columns:42px minmax(0,1fr)!important}.r304-rail button{height:34px!important;font-size:16px!important}
 .r304-match-scoreboard{width:47vw!important}.r304-table-identity{left:70%!important}
 .seat-left{left:12%!important}.seat-right{right:8%!important}.seat-top{left:68%!important}.seat-bottom{left:52%!important;bottom:24%!important}
 .r304-hand{width:94%!important;height:88px!important}.r304-card{width:60px!important;height:86px!important;margin-left:-7px!important}
 .r304-trick-zone{width:250px!important;height:205px!important;transform:translate(-50%,-50%) scale(.64)!important}
 .r304-controls{left:64%!important;bottom:20%!important;width:68%!important}.r304-action-row button{min-width:54px!important;padding:6px 7px!important}
 .r304-player-copy strong{max-width:92px!important;font-size:9px!important}.r304-player-copy small{font-size:9px!important}
}
@media(max-width:680px) and (orientation:landscape){
 .r304-match-scoreboard{width:52vw!important}.r304-score-head,.r304-score-row{font-size:8px!important}
 .r304-hand{height:76px!important}.r304-card{width:51px!important;height:74px!important}.r304-controls{bottom:18%!important}
}

.r304-manage-row,.r304-viewer-row{display:grid;grid-template-columns:70px 1fr;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.1)}.r304-manage-row select{grid-column:1/-1;width:100%;padding:8px;border-radius:6px}.r304-viewer-row small{justify-self:end;color:#45d9dc}.r304-admin-note{padding:9px;background:rgba(32,207,117,.14);border:1px solid rgba(32,207,117,.35);border-radius:8px}


/* Reno 304 v1.5 — supplied card art, collision-safe layout, bidder contract */
.r304-table-identity{
  left:auto!important;right:12px!important;top:8px!important;transform:none!important;
  align-items:flex-end!important;text-align:right!important;max-width:28vw!important;z-index:70!important;
}
.r304-table-identity strong{display:block!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:14px!important}
.r304-table-identity small{display:block!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:9px!important}
.r304-trump,.r304-bid-banner{display:none!important}
.r304-player-seat{z-index:46!important;max-width:190px!important}
.r304-player-copy{max-width:150px!important;min-width:0!important}
.r304-player-copy strong{max-width:150px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.r304-seat-contract{
  position:absolute;display:flex;align-items:stretch;gap:3px;z-index:65;left:calc(100% + 6px);top:-2px;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.35));
}
.r304-seat-contract[hidden]{display:none!important}
.r304-seat-bid{position:static!important;transform:none!important;display:grid!important;place-items:center!important;min-width:37px!important;height:38px!important;padding:0 7px!important;background:#42c7e8!important;color:#06252e!important;font-size:13px!important;font-weight:900!important;border-radius:2px!important;box-shadow:none!important}
.r304-seat-trump{display:grid;place-items:center;width:29px;height:42px;aspect-ratio:500/726;background:#fff;border:1px solid rgba(255,255,255,.8);border-radius:2px;overflow:hidden;font-size:21px;font-weight:900}
.r304-seat-trump .r304-real-card-image{width:100%!important;height:100%!important;object-fit:cover!important}
.r304-seat-trump.is-hidden-card{background:repeating-linear-gradient(45deg,#b51624 0 3px,#f4e4c2 3px 5px);border:2px solid #fff}
.r304-seat-trump.is-suit-only{background:#fff}
.seat-right .r304-seat-contract{left:auto!important;right:calc(100% + 6px)!important;flex-direction:row-reverse}
.seat-top .r304-seat-contract{left:50%!important;right:auto!important;top:calc(100% + 5px)!important;transform:translateX(-50%)!important}
.seat-bottom .r304-seat-contract{top:-3px!important}

/* Every card remains portrait/vertical. */
.r304-card,.r304-played-card,.r304-seat-trump{aspect-ratio:500/726!important;height:auto!important;transform-origin:center center!important}
.r304-card{width:clamp(50px,7vw,86px)!important;min-width:0!important;margin-left:clamp(-8px,-.55vw,-3px)!important;border-radius:5px!important}
.r304-card:first-child{margin-left:0!important}
.r304-played-card{width:clamp(58px,6.4vw,78px)!important;border-radius:5px!important}
.r304-real-card-image{object-fit:contain!important;background:#fff!important}
.r304-hand{height:auto!important;min-height:clamp(76px,16vh,126px)!important;bottom:1%!important;left:52%!important;transform:translateX(-50%)!important;width:min(820px,94%)!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;overflow:visible!important;padding:0 8px!important;z-index:52!important}
.r304-trick-zone{left:53%!important;top:49%!important;width:300px!important;height:245px!important;transform:translate(-50%,-50%)!important;z-index:40!important}
.r304-played-card.from-0{left:112px!important;bottom:0!important;top:auto!important}
.r304-played-card.from-2{left:112px!important;top:0!important;bottom:auto!important}
.r304-played-card.from-1{right:0!important;left:auto!important;top:70px!important}
.r304-played-card.from-3{left:0!important;right:auto!important;top:70px!important}
.r304-trick-result{max-width:min(340px,70vw)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}

/* Collision-safe player and control zones. */
.seat-top{top:8px!important;left:62%!important;transform:translateX(-50%)!important}
.seat-left{left:18%!important;top:27%!important}
.seat-right{right:8%!important;top:27%!important}
.seat-bottom{left:50%!important;bottom:27%!important;transform:translateX(-50%)!important}
.r304-controls{left:auto!important;right:4%!important;bottom:19%!important;transform:none!important;width:min(520px,53%)!important;z-index:58!important;text-align:left!important}
.r304-waiting-copy{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.r304-action-row{max-width:100%!important;flex-wrap:wrap!important;align-items:flex-end!important}
.r304-bid-scroller{min-width:170px!important;max-width:330px!important;width:min(330px,34vw)!important}
.r304-match-scoreboard{z-index:72!important}

@media(orientation:landscape) and (max-width:980px){
  .r304-game-stage{grid-template-columns:44px minmax(0,1fr)!important}
  .r304-rail button{height:36px!important;font-size:16px!important}
  .r304-match-scoreboard{width:min(380px,51vw)!important}
  .r304-score-head,.r304-score-row{font-size:8.5px!important}
  .r304-table-identity{right:7px!important;max-width:22vw!important}
  .r304-table-identity strong{font-size:11px!important}
  .seat-top{left:68%!important;top:5px!important}
  .seat-left{left:12%!important;top:28%!important}
  .seat-right{right:5%!important;top:28%!important}
  .seat-bottom{left:49%!important;bottom:27%!important}
  .r304-player-copy{max-width:96px!important}
  .r304-player-copy strong{max-width:96px!important;font-size:9px!important}
  .r304-player-copy small{font-size:9px!important;margin-top:2px!important}
  .r304-seat-contract{gap:2px!important;left:calc(100% + 3px)!important}
  .seat-right .r304-seat-contract{right:calc(100% + 3px)!important}
  .r304-seat-bid{min-width:31px!important;height:32px!important;font-size:10px!important}
  .r304-seat-trump{width:23px!important;height:auto!important}
  .r304-trick-zone{width:230px!important;height:184px!important;left:54%!important;top:48%!important;transform:translate(-50%,-50%)!important}
  .r304-played-card{width:55px!important}
  .r304-played-card.from-0,.r304-played-card.from-2{left:88px!important}
  .r304-played-card.from-1,.r304-played-card.from-3{top:50px!important}
  .r304-hand{width:96%!important;min-height:78px!important;left:51%!important;padding-left:4px!important;padding-right:4px!important}
  .r304-card{width:clamp(45px,7.7vw,61px)!important;margin-left:-6px!important}
  .r304-controls{right:2%!important;bottom:19%!important;width:58%!important}
  .r304-action-row{gap:5px!important}
  .r304-action-row button{min-width:54px!important;padding:7px 8px!important;font-size:9px!important}
  .r304-bid-scroller{width:31vw!important;min-width:140px!important}
}

@media(orientation:landscape) and (max-height:440px){
  .r304-match-scoreboard{width:52vw!important}
  .r304-score-head{height:16px!important}.r304-score-row{height:18px!important}
  .seat-top{top:2px!important}.seat-left,.seat-right{top:25%!important}.seat-bottom{bottom:26%!important}
  .r304-trick-zone{top:48%!important;transform:translate(-50%,-50%) scale(.82)!important}
  .r304-hand{min-height:68px!important}.r304-card{width:47px!important}
  .r304-controls{bottom:18%!important}
}

.r304-seat-trump[hidden]{display:none!important}

/* Reno 304 v1.6 — closed-trump review and stable right-side bidding. */
.r304-action-row.is-busy{pointer-events:none;opacity:.72}
.r304-card.is-pending-closed{transform:translateY(-14px)!important;outline:3px solid #38d98a!important;outline-offset:2px!important;filter:brightness(1.05)}
.r304-card-back{display:block;width:100%;height:100%;border-radius:inherit;background:
  linear-gradient(135deg,rgba(255,255,255,.18) 25%,transparent 25%) 0 0/10px 10px,
  linear-gradient(315deg,rgba(255,255,255,.18) 25%,transparent 25%) 0 0/10px 10px,
  repeating-linear-gradient(45deg,#a80f1b 0 4px,#f3dcc0 4px 6px);box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 6px #a80f1b}
.r304-played-card.is-face-down{padding:3px!important;background:#fff!important}
.r304-played-card.is-checkable-card{outline:3px solid #42c7e8!important;outline-offset:2px!important;z-index:55!important}
.r304-cut-choice-badge{position:absolute;left:50%;bottom:-21px;transform:translateX(-50%);background:#07190b;color:#fff;border:1px solid rgba(255,255,255,.35);padding:2px 6px;border-radius:3px;font-size:9px;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.35)}

/* Keep the entire bidding control stable while polling, matching the supplied right-side layout. */
.r304-controls{right:4%!important;left:auto!important;bottom:18%!important;width:min(570px,55%)!important;transform:none!important;text-align:left!important}
.r304-action-row{display:flex!important;justify-content:flex-start!important;align-items:flex-end!important;flex-wrap:wrap!important;gap:8px!important}
.r304-reference-slider{order:-1;flex:1 0 100%;width:min(540px,100%)!important;max-width:540px!important;min-width:220px!important;margin:0 0 2px!important;display:block!important}
.r304-bid-range-wrap{position:relative;height:72px;padding-top:31px;width:100%}
.r304-bid-scroll-value{position:absolute;top:0;transform:translateX(-50%);min-width:48px;height:39px;padding:0 8px;display:grid;place-items:center;background:#b71712;color:#fff;border-radius:50% 50% 50% 5px;font-size:14px;font-weight:900;line-height:1;box-shadow:0 4px 9px rgba(0,0,0,.36);pointer-events:none;z-index:4}
.r304-bid-scroll-value::after{content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid #b71712}
.r304-reference-slider input[type=range]{-webkit-appearance:none;appearance:none;position:absolute;left:0;right:0;top:43px;width:100%!important;height:24px!important;margin:0!important;padding:0!important;background:transparent!important;touch-action:pan-x;cursor:ew-resize;z-index:3;accent-color:transparent!important}
.r304-reference-slider input[type=range]::-webkit-slider-runnable-track{height:4px;background:linear-gradient(to right,#b71712 0 var(--bid-progress,0%),rgba(255,255,255,.72) var(--bid-progress,0%) 100%);border-radius:2px}
.r304-reference-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#b71712;border:2px solid #7a0906;margin-top:-8px;box-shadow:0 2px 5px rgba(0,0,0,.4)}
.r304-reference-slider input[type=range]::-moz-range-track{height:4px;background:rgba(255,255,255,.72);border-radius:2px}
.r304-reference-slider input[type=range]::-moz-range-progress{height:4px;background:#b71712;border-radius:2px}
.r304-reference-slider input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#b71712;border:2px solid #7a0906;box-shadow:0 2px 5px rgba(0,0,0,.4)}
.r304-bid-ticks{position:absolute;left:3px;right:3px;top:48px;height:7px;display:flex;justify-content:space-between;pointer-events:none;z-index:2}
.r304-bid-ticks i{display:block;width:2px;height:7px;background:rgba(255,255,255,.76)}
.r304-selected-bid{min-width:84px!important}

/* Separate board zones so prompts, cards and slider never overwrite each other. */
.r304-waiting-copy{display:block;max-width:100%!important;min-height:18px;margin-bottom:4px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r304-trick-zone{z-index:42!important}
.r304-hand{z-index:52!important}
.r304-controls{z-index:66!important}
.r304-player-seat{z-index:60!important}
.r304-match-scoreboard,.r304-table-identity{z-index:75!important}

@media(orientation:landscape) and (max-width:1000px){
  .r304-controls{right:1.5%!important;bottom:18%!important;width:61%!important}
  .r304-reference-slider{min-width:170px!important;max-width:100%!important}
  .r304-bid-range-wrap{height:58px;padding-top:24px}
  .r304-bid-scroll-value{height:32px;min-width:40px;font-size:11px}
  .r304-reference-slider input[type=range]{top:35px;height:20px!important}
  .r304-bid-ticks{top:40px}
  .r304-action-row button{min-width:54px!important;padding:7px 9px!important;font-size:9px!important}
  .r304-waiting-copy{font-size:10px!important}
}
@media(orientation:landscape) and (max-height:430px){
  .r304-controls{bottom:17%!important;width:63%!important}
  .r304-reference-slider{flex-basis:55%!important;max-width:55%!important;min-width:170px!important;margin-right:4px!important}
  .r304-bid-range-wrap{height:47px;padding-top:18px}
  .r304-bid-scroll-value{height:27px;min-width:35px;font-size:10px;top:-2px}
  .r304-reference-slider input[type=range]{top:27px}
  .r304-bid-ticks{top:32px}
  .r304-action-row{flex-wrap:nowrap!important;align-items:flex-end!important}
  .r304-action-row button{white-space:nowrap!important}
}
