:root{font-family:Segoe UI,Arial,sans-serif;color:#f8f2e7;background:#071610;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{color:inherit}svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.shell,.lobby-shell{min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 5%,rgb(33 105 72 / 43%),transparent 34%),radial-gradient(circle at 88% 90%,rgb(161 114 52 / 15%),transparent 28%),linear-gradient(145deg,#0a2118,#06130e 75%)}.shell{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:100px 20px 45px}.shell:before,.shell:after,.lobby-shell:before{content:"";position:absolute;border:1px solid rgb(228 195 132 / 10%);border-radius:50%;pointer-events:none}.shell:before{width:430px;height:430px;top:-280px;right:-160px}.shell:after{width:600px;height:600px;bottom:-470px;left:-250px}.home-nav,.lobby-header{position:absolute;z-index:3;top:0;left:0;width:100%;min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,72px);border-bottom:1px solid rgb(255 255 255 / 7%)}.home-nav>span{color:#769084;font-size:13px}.logo{display:flex;align-items:center;gap:11px}.logo>span{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;color:#173024;background:#efc978;font-family:Georgia,serif;font-size:22px;font-weight:700}.logo strong{font-size:13px;letter-spacing:.18em}.welcome,.setup-card{width:min(700px,100%);min-width:0;text-align:center;position:relative;z-index:1;animation:arrive .42s ease both}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}}.suit-row{width:150px;margin:0 auto 25px;display:flex;justify-content:space-between;color:#d5b66f;font-size:21px}.suit-row span:nth-child(2),.suit-row span:nth-child(3){color:#b85c50}.eyebrow{margin:0 0 12px;color:#e7c57e;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(43px,7vw,72px);line-height:1.04;letter-spacing:-.04em}.intro,.setup-copy{max-width:550px;margin:22px auto 0;color:#aabbb2;font-size:clamp(16px,2.2vw,19px);line-height:1.65}.actions{display:flex;justify-content:center;gap:12px;margin-top:36px}.actions button,.form-submit,.ready-button{min-height:54px;padding:0 25px;border-radius:13px;border:1px solid transparent;cursor:pointer;font-weight:700;transition:transform .16s ease,background .16s ease,opacity .16s ease}.actions button:hover,.form-submit:hover,.ready-button:hover{transform:translateY(-2px)}.primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;color:#17291f;background:#efc978;border:1px solid #efc978;box-shadow:0 12px 28px #efc97829}.primary:hover{background:#f8d88f}.secondary{color:#f8f2e7;background:#ffffff0d;border-color:#ffffff24!important}.secondary:hover{background:#ffffff17}.features{display:flex;justify-content:center;gap:30px;margin-top:42px;color:#718a7e;font-size:13px}.features span{display:flex;align-items:center;gap:8px}.features svg{width:17px}.setup-card{max-width:540px;padding:44px;text-align:left;background:#0a2319c2;border:1px solid rgb(255 255 255 / 10%);border-radius:24px;box-shadow:0 28px 70px #00000040;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.setup-card h1{font-size:clamp(37px,6vw,52px)}.setup-copy{margin:15px 0 30px;font-size:15px}.back-button{width:38px;height:38px;position:absolute;top:24px;right:24px;border:1px solid rgb(255 255 255 / 12%);border-radius:50%;color:#b8c8c0;background:#ffffff0d;cursor:pointer}.setup-card form{display:grid;gap:20px}.setup-card label{display:grid;gap:9px;color:#cfd9d4;font-size:13px;font-weight:600}.setup-card input{width:100%;height:53px;padding:0 16px;border:1px solid rgb(255 255 255 / 13%);border-radius:12px;outline:none;color:#fffaf0;background:#020c086b;transition:border-color .16s ease}.setup-card input:focus{border-color:#d9b86f}.setup-card input::placeholder{color:#5f786c}.setup-card .room-input{letter-spacing:.22em;font-weight:700;text-transform:uppercase}.form-submit{margin-top:4px}.form-submit:disabled{cursor:not-allowed;opacity:.42;transform:none}.form-error{margin:-6px 0 0;color:#f0a99e;font-size:13px;line-height:1.45}.lobby-shell:before{width:720px;height:720px;top:15%;left:calc(50% - 360px)}.lobby-header{position:relative}.room-actions{display:flex;align-items:center;gap:12px}.room-label{color:#738b80;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.player-identity{padding:7px 11px;border:1px solid rgb(255 255 255 / 9%);border-radius:9px;color:#789085;font-size:11px;white-space:nowrap}.player-identity strong{color:#f8f2e7;font-weight:700}.code-button,.leave-button{height:40px;border-radius:10px;cursor:pointer}.code-button{display:flex;align-items:center;gap:10px;padding:0 13px;color:#f3d68f;background:#efc97814;border:1px solid rgb(239 201 120 / 25%);font-weight:700;letter-spacing:.12em}.code-button svg{width:16px}.leave-button{padding:0 16px;color:#9cafaa;background:transparent;border:1px solid rgb(255 255 255 / 10%)}.lobby-content{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:42px 0 30px;position:relative;z-index:1}.match-scoreboard{width:min(460px,100%);min-height:54px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin:0 auto 22px;padding:7px 12px;border:1px solid rgb(255 255 255 / 9%);border-radius:14px;background:#081b14b8;box-shadow:0 12px 30px #00000029}.match-scoreboard>small{color:#6f887d;font-size:9px;letter-spacing:.08em;text-align:center;text-transform:uppercase;white-space:nowrap}.match-score-team{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:9px}.match-score-team>div{min-width:0;display:flex;flex-direction:column;gap:2px}.match-score-team span{color:#9bb1a7;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.match-score-team small{overflow:hidden;color:#667f74;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.match-score-team strong{font-family:Georgia,serif;font-size:24px;font-variant-numeric:tabular-nums}.team-one-score strong{color:#e9c774}.team-two-score strong{color:#78af9c}.lobby-title{text-align:center}.lobby-title h1{font-size:clamp(34px,5vw,48px)}.lobby-title>p:last-child{margin:12px 0 0;color:#80958b;font-size:14px}.turn-banner{width:min(820px,100%);min-height:66px;margin:20px auto 0;display:flex;align-items:center;gap:14px;padding:12px 18px;border:1px solid rgb(120 175 156 / 30%);border-radius:15px;background:#78af9c17;box-shadow:0 12px 28px #0000001f}.turn-banner.is-your-turn{border-color:#efc9788c;background:linear-gradient(90deg,#efc97824,#efc9780f);box-shadow:0 12px 34px #efc9781a}.turn-pulse{width:12px;height:12px;flex:0 0 auto;border-radius:50%;background:#78af9c;box-shadow:0 0 #78af9c73;animation:turn-pulse 1.5s ease-out infinite}.turn-banner.is-your-turn .turn-pulse{background:#efc978;box-shadow:0 0 #efc9787f}.turn-banner>div{display:grid;gap:2px}.media-room{width:min(900px,100%);margin:14px auto 0;padding:12px;border:1px solid rgb(255 255 255 / 9%);border-radius:16px;background:#04120db8;box-shadow:0 14px 34px #00000029}.media-room-loading{color:#789086;font-size:11px;text-align:center}.media-room-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.media-room-heading>div:first-child{display:grid;grid-template-columns:12px auto;align-items:center;column-gap:9px}.media-room-heading strong{font-size:13px}.media-room-heading small{grid-column:2;margin-top:2px;color:#789086;font-size:11px}.media-status{grid-row:1 / 3;width:9px;height:9px;border-radius:50%;background:#53665e}.media-status.is-live{background:#78cda8;box-shadow:0 0 0 4px #78cda81f}.media-controls{display:flex;align-items:center;gap:7px}.media-controls button,.media-camera-picker select{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 11%);border-radius:9px;color:#aebeb7;background:#ffffff0a;cursor:pointer;font-size:11px}.media-camera-picker{display:grid;gap:2px;color:#789086;font-size:8px;letter-spacing:.05em;text-transform:uppercase}.media-camera-picker select{max-width:180px;outline:none;color:#d8eee5;background:#10291e;cursor:pointer;text-transform:none}.media-controls button:hover:not(:disabled){border-color:#efc97859;color:#f3d68f}.media-controls button.is-on,.media-controls .media-join{border-color:#78af9c52;color:#d8eee5;background:#78af9c1f}.media-controls .media-leave{color:#c38d87}.media-controls button:disabled{cursor:wait;opacity:.65}.media-participants{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:11px}.media-participant{min-width:0;display:flex;align-items:center;gap:9px;padding:6px;border:1px solid rgb(255 255 255 / 7%);border-radius:11px;background:#ffffff08}.media-participant>div:last-child{min-width:0;display:grid}.media-participant strong,.media-participant small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-participant strong{color:#d6e3dd;font-size:11px}.media-participant small{margin-top:2px;color:#71877d;font-size:9px}.media-video{position:relative;width:52px;height:39px;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border-radius:8px;color:#efc978;background:linear-gradient(145deg,#173b2c,#0a2118);font-size:12px;font-weight:700}.media-video video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:none;object-fit:cover}.media-video.has-video video{display:block}.media-audio-root{display:none}.media-error{margin:9px 2px 0;color:#d9a09a;font-size:11px}.turn-banner small{color:#8fa69b;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.turn-banner strong{font-family:Georgia,serif;font-size:17px}.turn-banner p{margin:0 0 0 auto;color:#aebfb7;font-size:12px}@keyframes turn-pulse{70%{box-shadow:0 0 0 9px transparent}to{box-shadow:0 0 0 0 transparent}}.table-wrap{width:min(820px,100%);height:500px;margin:25px auto 0;position:relative}.card-table{width:60%;height:55%;position:absolute;top:22.5%;left:20%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:7px solid #3b2b1c;border-radius:42%;background:radial-gradient(circle at 50% 35%,rgb(255 255 255 / 5%),transparent 43%),#124b36;box-shadow:inset 0 0 0 2px #efc97824,inset 0 0 35px #0003,0 24px 45px #00000047}.table-line{position:absolute;top:13px;right:13px;bottom:13px;left:13px;border:1px solid rgb(239 201 120 / 22%);border-radius:inherit}.deck{width:46px;height:60px;position:relative;margin-bottom:14px}.deck>svg{width:42px;height:auto;position:absolute;display:block;border-radius:5px;box-shadow:0 5px 12px #0000003d;fill:initial;stroke:initial;stroke-width:initial;stroke-linecap:initial;stroke-linejoin:initial}.deck>svg:nth-child(1){transform:rotate(-9deg) translate(-5px,2px)}.deck>svg:nth-child(2){transform:rotate(7deg) translate(5px,2px)}.card-table strong{font-family:Georgia,serif;font-size:17px}.card-table small{margin-top:6px;color:#81a393}.table-status{width:145px;position:relative;z-index:2;display:grid;justify-items:center;text-align:center;pointer-events:none}.table-trick{position:absolute;z-index:3;top:16px;right:20px;bottom:16px;left:20px;pointer-events:none}.table-card-slot{min-width:72px;position:absolute;display:grid;justify-items:center;gap:2px;color:#7ca08f;font-size:8px;text-align:center;transition:transform .18s ease}.table-card-slot.slot-north{top:-7px;left:50%;transform:translate(-50%)}.table-card-slot.slot-south{bottom:-7px;left:50%;transform:translate(-50%)}.table-card-slot.slot-west{top:50%;left:12%;transform:translateY(-50%)}.table-card-slot.slot-east{top:50%;right:12%;transform:translateY(-50%)}.table-card-slot small{max-width:66px;margin:0;overflow:hidden;color:#81a393;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.table-played-card{width:clamp(54px,7vw,64px);aspect-ratio:5 / 7;display:block;overflow:hidden;padding:0;border:1px solid rgb(32 43 37 / 22%);border-radius:7px;background:#f7f0df;box-shadow:0 8px 18px #0000004d;animation:table-card-in .18s ease both}.card-waiting-dot{width:7px;height:7px;margin:34px 0 32px;border:1px solid rgb(239 201 120 / 32%);border-radius:50%;background:#efc97812}.table-team-tricks{position:absolute;right:0;bottom:0;left:0;display:flex;justify-content:space-between;color:#b7c7c0;font-size:8px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.table-action-error{width:min(920px,100%);margin:8px auto 0;text-align:center}@keyframes table-card-in{0%{opacity:0;transform:translateY(5px) scale(.92)}}.seat{min-width:115px;position:absolute;display:flex;flex-direction:column;align-items:center;z-index:2}.seat-north{top:0;left:calc(50% - 58px)}.seat-south{bottom:0;left:calc(50% - 58px)}.seat-west{top:calc(50% - 50px);left:3%}.seat-east{top:calc(50% - 50px);right:3%}.avatar{width:62px;height:62px;position:relative;display:grid;place-items:center;margin-bottom:8px;border:2px dashed;border-radius:50%;font-size:21px;font-weight:700}.avatar svg{width:21px}.avatar.is-selectable{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.avatar.is-selectable:hover{border-style:solid;transform:scale(1.08);background:#ffffff1a}.avatar.is-selectable:focus-visible{outline:3px solid rgb(239 201 120 / 55%);outline-offset:4px}.seat-camera-root{position:absolute;z-index:1;top:2px;right:2px;bottom:2px;left:2px;overflow:hidden;border-radius:50%;pointer-events:none}.seat-camera-video{width:100%;height:100%;display:block;object-fit:cover}.seat-camera-video.is-local{transform:scaleX(-1)}.seat-mic-status{width:18px;height:18px;position:absolute;z-index:3;bottom:1px;left:1px;display:grid;place-items:center;border:1px solid #071610;border-radius:50%;background:#263b33;box-shadow:0 2px 7px #00000061}.seat-mic-status svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.seat-mic-status.is-on{color:#10271c;background:#8bd1a3}.seat-mic-status.is-muted{color:#a8b4ae}.avatar.team-one{color:#e9c774;background:#e9c77414;border-color:#e9c77459}.avatar.team-two{color:#78af9c;background:#78af9c14;border-color:#78af9c59}.seat.is-active-turn .avatar{border-style:solid;transform:scale(1.12);box-shadow:0 0 0 5px #78af9c21,0 0 24px #78af9c52}.seat.is-your-turn .avatar{box-shadow:0 0 0 6px #efc9782b,0 0 28px #efc9786b}.ready-check{width:20px;height:20px;position:absolute;z-index:2;right:-2px;bottom:1px;display:grid;place-items:center;border:2px solid #071610;border-radius:50%;color:#10271c;background:#8bd1a3;font-size:11px}.seat strong{max-width:120px;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.seat small{margin-top:3px;color:#6b8378;font-size:11px}.seat.is-active-turn>strong{color:#fff4d5}.seat-turn-label{margin-top:5px;padding:3px 7px;border-radius:999px;color:#10271c;background:#78af9c;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.seat-bid-status{max-width:145px;margin-top:5px;padding:3px 8px;overflow:hidden;border:1px solid rgb(239 201 120 / 28%);border-radius:999px;color:#f3d894;background:#efc9781a;font-size:9px;font-weight:750;line-height:1.2;text-align:center;text-overflow:ellipsis;white-space:nowrap}.seat-bid-status.has-passed{border-color:#ffffff1f;color:#8da197;background:#ffffff0d}.seat.is-your-turn .seat-turn-label{background:#efc978}.seat.is-active-turn small{max-width:135px;text-align:center}.lobby-footer{width:min(820px,100%);min-height:68px;margin:18px auto 0;display:flex;align-items:center;justify-content:space-between;padding:12px 14px 12px 20px;border:1px solid rgb(255 255 255 / 8%);border-radius:16px;background:#ffffff08}.lobby-controls{display:flex;align-items:center;gap:9px}.bot-button{min-height:44px;padding:0 16px;border:1px solid rgb(239 201 120 / 24%);border-radius:11px;color:#e7c57e;background:#efc97812;cursor:pointer;font-size:12px;font-weight:700}.bot-button:hover{background:#efc9781f}.hand-panel{width:min(920px,100%);margin:14px auto 0;padding:16px;border:1px solid rgb(255 255 255 / 9%);border-radius:18px;background:#020c0857}.bidding-panel{width:min(920px,100%);min-height:82px;margin:12px auto 0;display:flex;align-items:center;gap:22px;padding:14px 16px;border:1px solid rgb(239 201 120 / 16%);border-radius:16px;background:#efc9780d}.bidding-summary{display:flex;align-items:center;gap:18px;margin-right:auto}.bidding-summary>div{min-width:76px;display:grid}.bidding-summary span{color:#879b92;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.bidding-summary strong{color:#efc978;font-family:Georgia,serif;font-size:26px}.bidding-summary p{margin:0;color:#a6b7af;font-size:13px}.bid-actions{display:flex;align-items:end;gap:8px}.bid-actions label{display:grid;gap:4px;color:#879b92;font-size:10px;text-transform:uppercase}.bid-actions select,.bid-button,.pass-button{height:42px;border-radius:10px}.bid-actions select{min-width:82px;padding:0 11px;border:1px solid rgb(255 255 255 / 13%);outline:none;color:#f8f2e7;background:#10291e}.bid-button,.pass-button{padding:0 16px;cursor:pointer;font-weight:700}.pass-button{border:1px solid rgb(255 255 255 / 12%);color:#a9bab2;background:transparent}.action-error{margin:0;color:#f0a99e;font-size:12px}.hand-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.hand-heading strong{font-family:Georgia,serif;font-size:17px}.hand-heading span,.match-status{color:#8ca197;font-size:12px}.hand-cards{min-height:145px;display:flex;align-items:flex-start;justify-content:center;padding:4px 24px 18px;overflow:visible}.playing-card{width:clamp(58px,7.2vw,82px);flex:0 0 clamp(58px,7.2vw,82px);aspect-ratio:.7;margin-left:-17px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgb(32 43 37 / 22%);border-radius:9px;background:#f7f0df;box-shadow:0 7px 18px #0000002e;padding:0;overflow:hidden;transform:translateY(var(--fan-drop, 0)) rotate(var(--fan-angle, 0deg));transform-origin:50% 135%;transition:border-color .15s ease,transform .15s ease}.playing-card:first-child{margin-left:0}.playing-card:not(:disabled){cursor:pointer}.playing-card:not(:disabled):hover{transform:translateY(calc(var(--fan-drop, 0px) - 12px)) rotate(var(--fan-angle, 0deg))}.playing-card:disabled{opacity:1}.playing-card.is-selected{border-color:#efc978;box-shadow:0 0 0 3px #efc97838,0 10px 24px #0000003d;transform:translateY(calc(var(--fan-drop, 0px) - 15px)) rotate(var(--fan-angle, 0deg))}.card-face{width:100%;height:100%;display:block;fill:initial;stroke:initial;stroke-width:initial;stroke-linecap:initial;stroke-linejoin:initial}.ground-reveal-panel{width:min(920px,100%);margin:12px auto 0;display:flex;align-items:center;gap:22px;padding:17px 20px;border:1px solid rgb(239 201 120 / 34%);border-radius:17px;background:linear-gradient(90deg,#efc9781c,#efc9780a)}.ground-reveal-panel>div:first-child{margin-right:auto;display:grid;gap:4px}.ground-reveal-panel>div:first-child>span{color:#efc978;font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.ground-reveal-panel>div:first-child>strong{font-family:Georgia,serif;font-size:17px}.ground-reveal-panel p{margin:0;color:#8fa49a;font-size:11px}.ground-reveal-cards{display:flex;gap:8px}.ground-card{width:54px;aspect-ratio:.7;display:block;overflow:hidden;border-radius:8px;background:#f7f0df;box-shadow:0 8px 18px #00000038}.ground-panel{width:min(920px,100%);margin:12px auto 0;display:flex;align-items:center;gap:18px;padding:15px 16px;border:1px solid rgb(120 175 156 / 24%);border-radius:16px;background:#78af9c12}.ground-panel>div{margin-right:auto}.ground-panel strong{font-family:Georgia,serif;font-size:16px}.ground-panel p{margin:4px 0 0;color:#8ea39a;font-size:12px}.ground-panel label{display:grid;gap:4px;color:#879b92;font-size:10px;text-transform:uppercase}.ground-panel select,.ground-submit{height:44px;border-radius:10px}.ground-panel select{min-width:128px;padding:0 11px;border:1px solid rgb(255 255 255 / 13%);color:#f8f2e7;background:#10291e}.ground-submit{padding-inline:17px;cursor:pointer;font-weight:700}.ground-submit:disabled{cursor:not-allowed;opacity:.45}.play-panel{width:min(920px,100%);margin:12px auto 0;display:grid;grid-template-columns:minmax(150px,.7fr) minmax(260px,1.4fr) minmax(180px,.9fr);align-items:center;gap:18px;padding:15px 16px;border:1px solid rgb(255 255 255 / 9%);border-radius:16px;background:#ffffff08}.trick-summary{display:grid;gap:3px}.trick-summary strong{font-family:Georgia,serif;font-size:17px}.trick-summary span,.trick-summary small{color:#8ca197;font-size:11px}.current-trick{min-height:65px;display:flex;align-items:center;justify-content:center;gap:7px}.trick-card{width:52px;height:65px;display:grid;place-items:center;align-content:center;border-radius:7px;color:#17271f;background:#f7f0df;box-shadow:0 6px 14px #0003}.trick-card>span{font-family:Georgia,serif;font-size:17px;font-weight:700}.trick-card small{max-width:46px;overflow:hidden;color:#58635e;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.trick-card.is-diamonds,.trick-card.is-hearts{color:#a43e39}.empty-trick{color:#6f857a;font-size:12px}.trick-score{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.trick-score span{display:grid;gap:3px;color:#9cafaa;font-size:11px}.trick-score strong{color:#f4d38b;font-family:Georgia,serif;font-size:13px}.play-panel>.action-error{grid-column:1 / -1}.result-panel{width:min(920px,100%);margin:12px auto 0;display:grid;grid-template-columns:minmax(210px,1fr) repeat(2,minmax(220px,1fr));gap:12px}.result-heading,.result-team{min-height:112px;padding:17px 18px;border:1px solid rgb(255 255 255 / 9%);border-radius:16px;background:#ffffff08}.result-heading{display:grid;align-content:center;gap:5px}.result-heading span,.result-heading small,.result-team small,.result-team dt{color:#8ca197;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.result-heading strong{font-family:Georgia,serif;font-size:18px}.result-heading small{color:#efc978}.result-team{display:grid;gap:14px}.result-team.is-bidding-team{border-color:#efc9786b;background:#efc97812}.result-team>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.result-team>div>span{font-family:Georgia,serif;font-weight:700}.result-team dl{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.result-team dl div{display:grid;gap:3px}.result-team dd{margin:0;color:#f4d38b;font-family:Georgia,serif;font-size:18px;font-weight:700}.next-hand-ready{grid-column:1 / -1;min-height:58px;display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:7px 8px 7px 17px;border:1px solid rgb(255 255 255 / 9%);border-radius:14px;background:#ffffff08}.next-hand-ready>span{margin-right:auto;color:#8ca197;font-size:12px}.next-hand-ready .action-error{width:100%}.forfeit-panel{width:min(920px,100%);margin:12px auto 0;display:grid;justify-items:center;gap:7px;padding:24px;border:1px solid rgb(239 201 120 / 32%);border-radius:16px;text-align:center;background:#efc97812}.forfeit-panel>span{color:#efc978;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.forfeit-panel strong{font-family:Georgia,serif;font-size:21px}.forfeit-panel p,.forfeit-panel div{margin:0;color:#9cafaa;font-size:12px}.connection-note{display:flex;align-items:center;gap:9px;color:#83998f;font-size:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:#75c18e;box-shadow:0 0 0 4px #75c18e1a}.status-dot.is-offline{background:#d4a45f;box-shadow:0 0 0 4px #d4a45f1a}.ready-button{min-height:44px;min-width:130px;color:#15291f;background:#efc978}.ready-button.is-ready{color:#d8f5e1;background:#276b4a}.toast{position:fixed;z-index:10;bottom:25px;left:50%;padding:11px 17px;border:1px solid rgb(255 255 255 / 12%);border-radius:10px;color:#e9f1ed;background:#163c2d;box-shadow:0 12px 30px #0000004d;font-size:13px;transform:translate(-50%);animation:toast-in .18s ease both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media(max-width:700px){.home-nav>span,.room-label{display:none}.home-nav,.lobby-header{padding-inline:18px}.logo strong{display:none}.features{gap:14px;flex-wrap:wrap}.setup-card{padding:34px 24px}.lobby-content{padding-top:28px}.is-match-active .match-scoreboard{width:calc(100% - 24px);min-height:48px;position:absolute;top:8px;left:12px;gap:9px;margin:0;padding:5px 9px}.is-match-active .match-score-team span{font-size:9px}.is-match-active .match-score-team strong{font-size:21px}.turn-banner{align-items:flex-start;flex-wrap:wrap;gap:9px 12px;padding:12px 14px}.turn-banner p{width:100%;margin-left:24px}.media-room-heading{align-items:stretch;flex-direction:column}.media-controls{display:grid;grid-template-columns:repeat(3,1fr)}.media-camera-picker{grid-column:1 / -1}.media-camera-picker select{width:100%;max-width:none}.media-controls .media-join{grid-column:1 / -1}.media-participants{grid-template-columns:repeat(2,minmax(0,1fr))}.table-wrap{height:440px}.card-table{width:78%;left:11%}.seat-west{left:-2%}.seat-east{right:-2%}.lobby-footer{gap:14px}.lobby-controls{width:100%;justify-content:flex-end}.hand-cards{min-height:125px;padding-inline:8px}.bidding-panel,.bidding-summary,.ground-reveal-panel,.ground-panel,.play-panel{align-items:stretch;flex-direction:column}.bidding-panel,.ground-panel{gap:12px}.ground-reveal-panel{gap:14px}.ground-reveal-panel>div:first-child{margin-right:0}.ground-panel>div{margin-right:0}.play-panel{display:flex}.result-panel{grid-template-columns:1fr}.result-heading,.result-team{min-height:auto}.next-hand-ready{align-items:stretch;flex-direction:column;padding:14px}.next-hand-ready .ready-button,.current-trick{width:100%}.bidding-summary{gap:8px}.bid-actions{flex-wrap:wrap}}@media(max-width:500px){.shell{padding-inline:18px}.player-identity{max-width:120px;overflow:hidden;text-overflow:ellipsis}.welcome h1{font-size:41px}.intro{font-size:16px}.actions{flex-direction:column}.actions button{width:100%}.features span{font-size:11px}.room-actions{gap:7px}.leave-button{padding-inline:11px}.lobby-title>p:last-child{padding-inline:25px}.lobby-content{width:calc(100% - 24px)}.table-wrap{height:390px}.card-table{width:70%;height:52%;left:15%;top:24%}.card-table strong{max-width:82%;text-align:center;font-size:14px}.card-table small{max-width:82%;text-align:center;font-size:10px}.seat-west,.seat-east{top:calc(50% - 42px)}.avatar{width:53px;height:53px}.seat{min-width:88px}.seat-west{left:-5%}.seat-east{right:-5%}.lobby-footer{flex-direction:column;text-align:center}.hand-panel{min-width:0;padding:13px 8px}.hand-cards{min-height:110px;width:100%;min-width:0;padding:3px 6px 14px}.playing-card{width:48px;flex-basis:48px;margin-left:-24px}.hand-cards.is-large-hand .playing-card{width:44px;flex-basis:44px}.ground-reveal-cards{width:100%;justify-content:center}.bid-actions label,.bid-actions select,.bid-actions button{flex:1}.ready-button{width:100%}.is-match-active .lobby-header{min-height:60px}.is-match-active .lobby-content{padding-top:68px;padding-bottom:14px}.is-match-active .lobby-title{display:none}.is-match-active .turn-banner{min-height:52px;margin-top:0;flex-wrap:nowrap;align-items:center;gap:8px;padding:8px 10px}.is-match-active .turn-banner strong{font-size:14px}.is-match-active .turn-banner p{width:auto;max-width:42%;margin:0 0 0 auto;font-size:10px;text-align:right}.is-match-active .media-room{margin-top:7px;padding:8px}.is-match-active .media-room-heading{align-items:center;flex-direction:row;gap:8px}.is-match-active .media-room-heading small,.is-match-active .media-participants{display:none}.is-match-active .media-controls{display:flex;flex-wrap:wrap;justify-content:flex-end}.is-match-active .media-camera-picker{grid-column:auto}.is-match-active .media-camera-picker select{width:auto;max-width:130px;min-height:30px;padding-inline:7px;font-size:10px}.is-match-active .media-controls button{min-height:30px;padding-inline:8px;font-size:10px}.is-match-active .table-wrap{height:340px;margin-top:8px}.is-match-active .hand-panel{margin-top:7px;padding-top:9px;padding-bottom:7px}.is-match-active .hand-heading{margin-bottom:6px}.is-match-active .hand-cards{min-height:100px;padding-bottom:8px}.is-match-active .bidding-panel,.is-match-active .ground-panel,.is-match-active .ground-reveal-panel,.is-match-active .play-panel{margin-top:7px;gap:8px;padding:10px}.is-match-active .bidding-summary{align-items:center;flex-direction:row;gap:10px}.is-match-active .bidding-summary strong{font-size:22px}.is-match-active .lobby-footer{min-height:36px;margin-top:7px;flex-direction:row;justify-content:center;padding:8px}.is-match-active .connection-note{display:none}}@media(max-width:360px){.playing-card{width:42px;flex-basis:42px}.hand-cards.is-large-hand .playing-card{width:38px;flex-basis:38px}}
