/* BatakGoo club collection. Geometry stays in the responsive base styles. */
:root,body[data-theme=saray]{--gold:#b8a078;--gold-light:#eadbbd;--purple:#31584b;--felt:#183f35;--club-tint:#153b3099;--text:#f1eee5;--muted:#b5beb5}
body[data-theme=teras]{--gold:#a9b5b7;--gold-light:#e4e9e7;--purple:#38494c;--felt:#233334;--club-tint:#142c35b3}
body[data-theme=obsidyen]{--gold:#bb9670;--gold-light:#e8d5ba;--purple:#65503d;--felt:#4a392b;--club-tint:#614125d9}
body,body[data-theme=teras],body[data-theme=obsidyen]{background:radial-gradient(ellipse at 25% 15%,#29382f 0,transparent 60%),linear-gradient(135deg,#171b19,#090e0c);color:var(--text)}
.splash{background:radial-gradient(ellipse at 50% 35%,#304c3b 0,#111b16 60%,#080e0b);background-color:#101a14}
.splash-veil{background:radial-gradient(ellipse,transparent,#070b0866)}
.topbar{background:linear-gradient(#101814ed,#10181480);border-color:#b8a07822}
.join-panel,.modal,.result-panel,.choice-panel,.online-shell{background:linear-gradient(145deg,#202b25f5,#111b16fa);border-color:#b8a07855;box-shadow:0 18px 48px #0005,inset 0 1px 0 #ffffff09}
.lobby-copy h1,.modal h2,.result-panel h1,.join-title h2{color:#f2ecde}
.lobby-copy p,.modal-lead,.rules,.setting-row,.join-note,.result-panel>p,.choice-panel>p{color:#b7c0b5}
.eyebrow,.collection-label{color:var(--gold);letter-spacing:2px}
.primary{background:linear-gradient(130deg,#d0b58b,#ae8e5e);color:#182019;border-color:#d9c3a0;box-shadow:0 5px 18px #0004,inset 0 1px 0 #fff4}
.secondary,.theme-choice,.deck-choice,.profile-avatars button,.bid-values button,.icon-button,.round-control,.online-shell button{background:#1a2921;color:#e5e7dc;border-color:#889e8d55;box-shadow:none}
.theme-choice.chosen,.deck-choice.chosen,.profile-avatars .chosen{background:#304439;border-color:var(--gold);box-shadow:inset 0 0 0 1px #cfb88e25}
.theme-choice small,.deck-choice>small,.profile-line small,.info-note{color:#a7b5a9}
.primary:hover,.bid-values button:not(:disabled):hover{background:#d9c3a0;color:#16241c;border-color:#f1e2c7;box-shadow:none}
.table-rim,body[data-theme=teras] .table-rim,body[data-theme=obsidyen] .table-rim{background:linear-gradient(145deg,#624630,#30271e 45%,#57412d);border:1px solid #977456;box-shadow:0 15px 36px #0009,inset 0 0 0 3px #211b15,inset 0 0 0 5px #987a5555;filter:none}
.table-felt{background:linear-gradient(var(--club-tint),var(--club-tint)),url('/assets/felt-club-v2.png') center/cover;background-color:var(--felt);border:1px solid #ab997a66;border-radius:inherit;box-shadow:inset 0 6px 20px #0006}
.felt-pattern{border:1px solid #e4dbbe12;border-radius:inherit;inset:12px}.felt-pattern::before,.felt-pattern::after{display:none}
.table-emblem{opacity:.18;border:0;background:none;box-shadow:none;color:#ddd4b6}.table-emblem>span{font-size:55px}.table-emblem small{letter-spacing:3px}.table-emblem::before,.table-emblem::after{display:none}
.table-name,.game-hud,.player-label,.turn-pill,.trick-card>.trick-name{background:#14241ee8;color:#e7e6d8;border-color:#b8a07855;box-shadow:0 3px 12px #0004}
.player-portrait{background:#2e3d31;border-color:#b8a07877;box-shadow:0 0 0 2px #111d16}
.player.active .player-portrait{animation:none;box-shadow:0 0 0 2px #142018,0 0 0 4px #cfb88e}
.your-turn{animation:none;border-color:#cfb88e;box-shadow:0 0 0 1px #cfb88e33}
:root,[data-deck=royal]{--court-art:url('/assets/court-classic-v2.png');--card-paper:#faf7ef;--card-outline:#cfc6b4;--card-ink:#252923;--card-shadow:0 3px 8px #0005;--back-paper:repeating-linear-gradient(45deg,transparent 0 5px,#bec7ab16 5px 6px),repeating-linear-gradient(-45deg,transparent 0 5px,#bec7ab16 5px 6px),#173b30;--back-edge:#b7ac87;--back-symbol:#d2ccb0;--back-ring:#c9c3a855;--back-transform:none;--back-icon-transform:none;--back-width:78%;--back-height:84%;--back-radius:3px;--back-glow:transparent}
[data-deck=amethyst]{--court-art:url('/assets/court-ink-v2.png');--card-paper:#faf7ef;--card-outline:#c6c6bf;--card-ink:#242824;--card-shadow:0 3px 8px #0005;--back-paper:repeating-linear-gradient(45deg,transparent 0 5px,#c7cbbb16 5px 6px),repeating-linear-gradient(-45deg,transparent 0 5px,#c7cbbb16 5px 6px),#283333;--back-edge:#b7b9ac;--back-symbol:#d7d9cd;--back-ring:#d5d7c555;--back-transform:none;--back-icon-transform:none;--back-width:78%;--back-height:84%;--back-radius:3px;--back-glow:transparent}
.card,.face-card{background:var(--card-paper);border:1px solid var(--card-outline);box-shadow:var(--card-shadow);color:var(--card-ink)}
.card.red{color:#b52c30}.card::before,.card::after{display:none}
.face-card .card-inner{inset:11% 19%}.court-art{inset:0;border:0;border-radius:0;background-color:#faf7ef;background-image:var(--court-art);background-size:300% 100%;background-position:calc(var(--portrait)*100%/2) center;box-shadow:none}
.court-half,.court-seal,.court-suit,.court-suit-mark{display:none}
.face-card .corner{padding:0;background:none;box-shadow:none}.card .corner b,.face-card .corner b{font-size:calc(var(--card-w)*.235);font-family:Georgia,'Times New Roman',serif;font-weight:700;line-height:1}
.card .corner>span,.face-card .corner>span{font-size:calc(var(--card-w)*.23);margin-top:1px;line-height:1}
.card .corner{left:6%;top:5%;z-index:3}.card .corner.opposite{left:auto;top:auto;right:6%;bottom:5%}
.ace-art::after,.ace-caption{display:none}.ace-art{font-size:calc(var(--card-w)*.6)}
.card-back{border:1px solid var(--back-edge);border-radius:5px;box-shadow:inset 0 0 0 3px #15271f,inset 0 0 0 4px #b7ac8755,0 2px 5px #0004}
.card-back>span{border-width:1px;font-size:18px;background:none}.hand .card:not(.unplayable){box-shadow:-2px 2px 6px #0006,0 6px 16px #0004}
.hand .card:not(.unplayable):hover,.hand .card:not(.unplayable):focus-visible{box-shadow:0 0 0 2px #eadbbd,0 8px 20px #0007}.hand .card.unplayable{filter:saturate(.7) brightness(.73);opacity:.75}
.deck-showcase .card .corner b{font-size:26px}.deck-showcase .card .corner>span{font-size:23px}.deck-showcase .ace-art{font-size:76px}
.online-shell{color:#e9e9de}.online-shell input,.online-shell select{background:#111e17;color:#e9e9de;border-color:#80908166}.online-felt{background:linear-gradient(var(--club-tint),var(--club-tint)),url('/assets/felt-club-v2.png') center/cover;border-color:#a38d6c;border-radius:18px;box-shadow:inset 0 4px 18px #0005,0 4px 0 #4a3828}
.online-seat,.online-chat{background:#15231c;border-color:#84948344}.online-seat.active{border-color:#d4bc8d;box-shadow:0 0 0 1px #d4bc8d55}.online-chat-message{background:#203529}.online-shell .primary{background:#c5aa80;color:#142018;border-color:#d9c3a0}
#toast{background:#183126ef;color:#e9e9da;border-color:#98aa9155}.modal-backdrop{background:#040b07dc}.score-row.you{background:linear-gradient(90deg,#466a4336,transparent)}
@media(max-width:700px){.deck-showcase .card .corner b{font-size:23px}.deck-showcase .card .corner>span{font-size:21px}}.table-rim,body[data-theme=teras] .table-rim,body[data-theme=obsidyen] .table-rim{padding:18px}
.online-welcome form,.online-packages article,.online-seats article,.online-messages p{background:#1b2b22;border-color:#b8a07844}.online-seats article.current{border-color:#cdb68d;box-shadow:0 0 0 1px #cdb68d44}
.online-shell textarea{background:#111e17;color:#e9e9de;border-color:#80908166}.online-shell small,.online-welcome p,.online-rule,.online-rules,.online-seats b{color:#bac6b8}
@media(orientation:landscape) and (max-height:650px){.table-stage .table-rim,body[data-theme=teras] .table-stage .table-rim,body[data-theme=obsidyen] .table-stage .table-rim{padding:10px}}
@media(min-height:651px) and (min-width:1000px){.table-stage .seat-0{left:0;bottom:-95px;transform:none}.table-stage .hand{bottom:-6px}}.player.active .player-label,.player.you .player-label{background:#1b3226;border-color:#cdb68d}.turn-pill::before{background:#cdb68d}.game-hud .red{color:#ed9390}.game-hud small{color:#b8c5b6}
@media(orientation:landscape) and (max-height:650px){.game-hud{z-index:20;background:#14241ef5}}
/* Reference collection: carved walnut, quilted velvet and antique brass. */
body,body[data-theme=teras],body[data-theme=obsidyen]{background:repeating-linear-gradient(0deg,#2d170e18 0 1px,transparent 1px 5px),radial-gradient(ellipse at 45% 20%,#482d1e,#140d09 80%);--gold:#c0a36c;--gold-light:#f0deb7}
.topbar{background:linear-gradient(#21140ee8,#20130bc2);border-bottom:1px solid #c0a36c38}.join-panel,.modal,.result-panel{background:linear-gradient(135deg,#392819f7,#161b13fb);border-color:#bb945c80}
.table-rim,body[data-theme=teras] .table-rim,body[data-theme=obsidyen] .table-rim{background: url('/assets/table-ornate-v3.png') center/100% 100% no-repeat;box-shadow:0 12px 28px #0008;border:0;border-radius:4px;padding:6% 9%}
.table-felt{background:transparent;border:0;box-shadow:none;border-radius:35px}.felt-pattern{display:none}.table-emblem{display:none}
.table-name{background:#181e14;border-color:#c0a36c88;color:#ead4a7;font-size:12px}.player-label,.player.active .player-label{background:linear-gradient(#2c2119,#110e09);border:1px solid #c0a36c88;box-shadow:0 0 0 2px #17120d,0 0 0 3px #c0a36c33}.player-portrait{background:linear-gradient(#e0c08c,#705536);box-shadow:0 0 0 2px #201811,0 0 0 3px #c0a36c77}.player.active .player-portrait{box-shadow:0 0 0 2px #201811,0 0 0 4px #e0c08c}
.game-hud,.turn-pill{background:linear-gradient(#302819f5,#111a13f5);border-color:#c0a36c88;backdrop-filter:none}.choice-panel{background:linear-gradient(#242d20f7,#111a12fb);backdrop-filter:none}.trick-card>.trick-name{backdrop-filter:none}
.card-back{background:url('/assets/back-engraved-v3.png') center/100% 100% no-repeat;border:1px solid #c0a36c;box-shadow:0 2px 4px #0007}.card-back>span{visibility:hidden}
.online-felt{background:url('/assets/table-ornate-v3.png') center/100% 100% no-repeat;border:0;box-shadow:none;padding:9% 10%;border-radius:4px}.online-shell{background:linear-gradient(#281a12f5,#141b13f7)}
@media(orientation:landscape) and (max-height:650px){.table-stage .table-rim,body[data-theme=teras] .table-stage .table-rim,body[data-theme=obsidyen] .table-stage .table-rim{padding:5% 8%}.table-stage .table-felt{border-radius:20px}.online-felt{padding:12px 9%}.choice-panel{border-radius:8px}}
/* Avoid per-card filter layers and animated shadows on mobile GPUs. */
.hand .card{transition:transform .16s ease-out;contain:layout paint}
.hand .card.unplayable{filter:none;opacity:1}
.hand .card.unplayable::after{content:'';display:block;position:absolute;inset:0;border:0;border-radius:inherit;background:#111a1647;pointer-events:none}
.turn-dot{background:#cbb17b}.your-turn .turn-dot{background:#ead5a3}.turn-pill small,.player-label small{color:#bcb6a1}
@media(orientation:landscape) and (max-height:650px) and (min-width:701px){
 .table-stage .opponent-hand{display:block;width:58px;height:30px;top:8px;left:70px;transform:none}
 .table-stage .seat-2 .opponent-hand{display:block;top:8px;left:145px;width:60px;transform:none}
 .table-stage .seat-3 .opponent-hand{left:-58px;transform:none}
 .table-stage .opponent-hand>span{width:20px;height:29px;left:calc(50% + (var(--i) - (var(--n) - 1)/2)*5px)}
 .table-stage .opponent-hand small{display:none}.table-stage .opponent-hand .card-back{padding:0}
}
/* Cache the static table separately from moving cards in Android WebView. */
.table-rim{transform:translateZ(0);backface-visibility:hidden}
.trick-card{will-change:transform,opacity;backface-visibility:hidden}
.hand .card{will-change:transform;backface-visibility:hidden}
