:root{color-scheme:dark;--felt:#123d33;--cream:#f7f2e6;--gold:#d6bd81;--muted:#aec4b8;--card-width:82px;--card-height:116px;font-family:'DM Sans',system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#102b25;color:var(--cream);min-width:320px}button,a,select{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:none;border:0}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}.game-shell{max-width:1440px;margin:auto;padding:0 40px}.topbar{height:88px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff12}.wordmark{font-family:Manrope,system-ui,sans-serif;font-size:27px;letter-spacing:-1.2px;font-weight:700;white-space:nowrap}.wordmark>span:first-child{color:var(--gold);margin-right:9px;font-size:30px}.wordmark small{font:500 12px 'DM Sans',sans-serif;letter-spacing:0;color:var(--muted)}.brand-separator{font-size:15px;color:#829c8c;margin:0 10px}.topbar nav{display:flex;gap:24px;align-items:center;font-size:13px}.topbar nav button{padding:12px 0}.topbar .new-game{border:1px solid #d6bd813b;border-radius:5px;padding:11px 17px;color:var(--gold)}.new-game span{padding-left:12px}.scorebar{display:flex;justify-content:center;align-items:center;gap:62px;height:110px}.team-score{display:grid;grid-template-columns:auto auto;column-gap:20px;align-items:center;min-width:165px}.team-score>span{font-size:12px;font-weight:600;letter-spacing:.2px}.team-score>strong{grid-row:1/3;grid-column:2;font-family:Manrope,sans-serif;font-size:35px;letter-spacing:-1px}.team-score>small{color:var(--muted);font-size:11px;margin-top:4px}.your-team>strong{color:var(--gold)}.match-info{display:grid;text-align:center;gap:7px;color:var(--muted);font-size:10px;letter-spacing:2px}.match-info span:first-child{color:var(--cream);font-weight:600}.table{position:relative;min-height:550px;height:calc(100svh - 246px);max-height:750px;background:radial-gradient(ellipse at 50% 32%,#205b46 0,#174735 47%,#143e30 80%);border-radius:26px;box-shadow:inset 0 0 0 1px #ffffff08,0 10px 50px #00000020;overflow:hidden}.table:before{content:'';position:absolute;inset:0;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.35' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.table-ring{position:absolute;left:11%;right:11%;top:15%;bottom:27%;border:1px solid #d6bd811c;border-radius:50%;pointer-events:none}.player{position:absolute;display:flex;align-items:center;gap:12px;z-index:2}.north{top:22px;left:50%;transform:translateX(-50%)}.west{left:36px;top:38%}.east{right:36px;top:38%;flex-direction:row-reverse;text-align:right}.south{left:50%;transform:translateX(-50%);bottom:182px}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--gold);background:#0b2b24;border:1px solid #d6bd8140;font:500 15px Manrope,sans-serif}.player.active .avatar{border:2px solid var(--gold);box-shadow:0 0 0 4px #d6bd8111}.player-name{font-size:12px;font-weight:600}.player-stats{font-size:11px;color:#c0d2c5;margin-top:5px;white-space:nowrap}.player-stats strong{color:var(--cream);font-weight:500}.player-tag{font-size:9px;text-transform:uppercase;letter-spacing:1.3px;color:var(--gold);margin-left:7px}.table-center{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);width:300px;height:210px}.trick-cards{position:absolute;inset:0;z-index:2}.trick-card{position:absolute;width:66px;height:94px;animation:card-arrive .18s ease-out}.trick-card.seat-0{left:117px;top:101px;transform:rotate(4deg)}.trick-card.seat-1{left:63px;top:50px;transform:rotate(-10deg)}.trick-card.seat-2{left:115px;top:2px;transform:rotate(-4deg)}.trick-card.seat-3{left:170px;top:51px;transform:rotate(10deg)}.trick-card.winning{box-shadow:0 0 0 2px var(--gold),0 4px 15px #0005}#table-watermark{position:absolute;inset:0;display:grid;place-items:center;font-size:120px;color:#d6bd810b;pointer-events:none}.turn-message{position:absolute;top:225px;left:-35px;width:370px;text-align:center;font-size:12px;color:#e8eee7;letter-spacing:.2px}.thinking:after{content:' ';display:inline-block;width:16px;height:3px;margin-left:6px;vertical-align:middle;background:radial-gradient(circle at 2px 1.5px,var(--gold) 1.5px,transparent 2px),radial-gradient(circle at 8px 1.5px,var(--gold) 1.5px,transparent 2px),radial-gradient(circle at 14px 1.5px,var(--gold) 1.5px,transparent 2px);animation:pulse 1s infinite}.hand-area{position:absolute;bottom:25px;left:24px;right:24px}.hand-label{display:flex;justify-content:space-between;max-width:740px;margin:0 auto 13px;color:var(--muted);font-size:10px}.hand-label span:first-child{color:var(--cream)}.hand{display:flex;justify-content:center;min-height:var(--card-height);padding-top:9px}.card{position:relative;background:linear-gradient(125deg,#fffef9,#efece3);color:#1b2428;border-radius:7px;width:var(--card-width);height:var(--card-height);box-shadow:0 3px 9px #0003;flex-shrink:0;user-select:none}.card.red{color:#b8373c}.card-corner{position:absolute;left:8px;top:6px;display:grid;text-align:center;line-height:1;font-family:Manrope,sans-serif;font-weight:700;font-size:19px;letter-spacing:-1px}.card-corner span{font-family:Georgia,serif;font-size:20px;margin-top:3px;letter-spacing:0}.card-center{position:absolute;inset:0;display:grid;place-items:center;font:40px Georgia,serif}.card-bottom{position:absolute;right:7px;bottom:5px;transform:rotate(180deg);font-size:14px;line-height:1}.hand .card{margin-left:-29px;transition:transform .14s,filter .14s;transform-origin:50% 100%;border:1px solid #0000000c;text-align:left;padding:0}.hand .card:first-child{margin-left:0}.hand .card:disabled{cursor:default}.hand.playing .card:disabled{filter:brightness(.77)}.hand .card.playable:hover,.hand .card.playable:focus-visible{transform:translateY(-15px);z-index:15!important;box-shadow:0 8px 20px #0005}.hand .card.playable{cursor:pointer}.hand .card.playable:after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 -3px 0 #c6ad73;pointer-events:none}.trick-card .card-corner{font-size:16px;left:6px;top:5px}.trick-card .card-corner span{font-size:16px}.trick-card .card-center{font-size:32px}.bid-panel,.result-panel{position:absolute;z-index:4;background:#133b30ee;backdrop-filter:blur(12px);border:1px solid #c6ad7330;border-radius:12px;padding:24px;width:370px;left:50%;top:27%;transform:translate(-50%,-28%);box-shadow:0 15px 45px #0002;text-align:center}.bid-panel[hidden],.result-panel[hidden]{display:none}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--gold)}h1{font-family:Manrope,sans-serif;font-weight:500;font-size:25px;letter-spacing:-.6px;margin:9px 0} .bid-panel p{font-size:11px;line-height:1.5;color:#c0d2c5;margin:8px 0 18px}.bid-options{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:16px}.bid-options button{height:34px;font-size:13px;border:1px solid #ffffff18;border-radius:4px}.bid-options button.selected{background:var(--gold);color:#183329;border-color:var(--gold);font-weight:700}.primary{background:var(--gold);color:#183329;border-radius:5px;padding:12px 20px;font-weight:700;font-size:12px}.bid-panel .primary{width:100%}.bid-panel>small{display:block;font-size:10px;color:#aec4b8;margin-top:12px}.result-panel{top:32%;width:365px}.result-panel h2{font:500 25px Manrope,sans-serif;margin:5px 0 18px;letter-spacing:-.6px}.result-score{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:16px 0 21px}.result-score span{font-size:11px;color:var(--muted)}.result-score strong{font:600 30px Manrope,sans-serif;color:var(--gold);display:block;margin:5px}.result-score small{font-size:10px;color:#d6e0d5}.result-panel p{font-size:12px;color:var(--muted)}.game-footer{display:flex;justify-content:space-between;padding:22px 3px;color:var(--muted);font-size:11px}.game-footer button{color:var(--gold);font-size:11px}.game-footer button span{margin-left:7px}dialog{background:#f8f5ec;color:#273c33;border:0;border-radius:12px;padding:26px 30px;width:min(480px,calc(100vw - 32px));box-shadow:0 25px 100px #0006}dialog::backdrop{background:#061712b3;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.dialog-heading h2{font:600 23px Manrope,sans-serif;margin:0;letter-spacing:-.6px}.dialog-heading .close-dialog{font-size:25px;padding:0 5px;color:#748477}dialog p,dialog li{font-size:12px;line-height:1.65}dialog ol{padding-left:19px}dialog li{padding-left:5px;margin:11px 0}.fine-print{border-top:1px solid #d5ddd2;padding-top:15px;color:#63766a;font-size:11px!important}dialog label{display:grid;gap:8px;font-size:12px;font-weight:600;margin-top:18px}dialog select{font:400 13px 'DM Sans',sans-serif;background:#eeeee4;color:#273c33;border:1px solid #cbd5c7;border-radius:5px;padding:11px;color-scheme:light}.setting-note{color:#65796b;font-size:11px;margin:7px 0 20px}#settings-done{width:100%;margin-top:24px}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:22px}.dialog-actions>.close-dialog{color:#58705e;font-size:12px}.score-table{width:100%;border-collapse:collapse;font-size:12px}.score-table th,.score-table td{padding:10px 7px;text-align:right;border-bottom:1px solid #dde2d6}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table th{font-size:10px;color:#65776c;font-weight:500}#history-content>p{color:#65776c}.toast-error{color:#f5c598}@keyframes pulse{50%{opacity:.35}}@keyframes card-arrive{from{opacity:0;scale:.9}to{opacity:1;scale:1}}@media(min-width:1500px){.game-shell{padding:0 64px}.table{min-height:610px}}@media(max-width:850px){.game-shell{padding:0 20px}.topbar{height:70px}.topbar nav{gap:15px}.wordmark small,.brand-separator{display:none}.scorebar{height:95px;gap:28px}.team-score{min-width:130px;column-gap:12px}.table{min-height:540px;height:calc(100svh - 216px)}.west{left:18px}.east{right:18px}.player{gap:8px}.avatar{width:30px;height:30px}.table-ring{left:7%;right:7%}.hand .card{margin-left:-39px}.hand-label{max-width:600px}.south{bottom:182px}}@media(max-width:580px){:root{--card-width:62px;--card-height:91px}.game-shell{padding:0 10px}.topbar{height:64px}.wordmark{font-size:23px}.wordmark>span:first-child{font-size:25px;margin-right:6px}.topbar nav{gap:13px;font-size:11px}.topbar .new-game{padding:9px 10px}.new-game span{display:none}.topbar nav button:first-child{font-size:0}.topbar nav button:first-child:after{content:'Rules';font-size:11px}.scorebar{height:90px;gap:18px}.team-score{min-width:102px;column-gap:10px}.team-score>span{font-size:10px}.team-score>strong{font-size:27px}.team-score>small{font-size:9px}.match-info{font-size:8px;letter-spacing:1.3px;gap:5px}.table{border-radius:18px;min-height:540px;height:calc(100svh - 205px);max-height:760px}.north{top:20px}.west{top:26%;left:15px;display:block;text-align:left}.east{top:26%;right:15px;display:block;text-align:right}.west .avatar,.east .avatar{display:none}.player-name{font-size:11px}.player-stats{font-size:10px;margin-top:5px}.player-tag{display:none}.table-center{top:40%;scale:.9;width:280px}.trick-card.seat-0{left:107px}.trick-card.seat-1{left:53px}.trick-card.seat-2{left:105px}.trick-card.seat-3{left:160px}.turn-message{left:-45px;top:219px}.south{bottom:144px}.south .avatar{width:27px;height:27px;font-size:12px}.hand-area{left:10px;right:10px;bottom:25px}.hand-label{font-size:9px;margin-bottom:13px}.hand .card{margin-left:calc((100vw - 109px)/12 - 62px)}.card-corner{font-size:16px;left:5px;top:5px}.card-corner span{font-size:16px;margin-top:2px}.card-center{font-size:31px}.card-bottom{font-size:11px;right:5px;bottom:5px}.hand .card.playable:hover{transform:none}.hand .card.playable:active{transform:translateY(-12px)}.bid-panel{top:31%;width:min(335px,calc(100% - 28px));padding:21px 18px}.bid-panel h1{font-size:23px}.bid-panel p{font-size:10px;margin-bottom:13px}.bid-options button{height:32px}.bid-options{gap:4px;margin-bottom:13px}.result-panel{top:33%;width:min(335px,calc(100% - 28px));padding:22px}.game-footer{padding:18px 3px;font-size:9px}.game-footer button{font-size:10px}.table-ring{top:18%;bottom:29%;left:6%;right:6%}dialog{padding:24px;max-height:88svh;overflow:auto}.dialog-heading h2{font-size:21px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

@media(min-width:851px) and (max-height:800px){.topbar{height:68px}.scorebar{height:84px}.table{min-height:460px;height:calc(100svh - 203px)}.game-footer{padding:17px 3px}.south{bottom:174px}.hand-area{bottom:21px}.north{top:18px}}
.fine-print a{text-decoration:underline;text-underline-offset:3px;display:inline-block;margin-top:7px}

.player[hidden]{display:none}

.trick-cards .trick-card{position:absolute;width:66px;height:94px}.turn-message{top:205px}@media(max-width:580px){.turn-message{top:219px}}

@media(max-width:580px){.table.human-bidding .west,.table.human-bidding .east{display:none}}@media(max-width:360px){.hand .card-corner{font-size:13px;left:3px}.hand .card-corner span{font-size:15px}}
