:root{font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif;color:#fff;background:#142330;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{border:0;border-radius:9px;min-height:44px;padding:8px 12px;background:#ffffff19;color:inherit;font-size:15px;font-weight:650;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .12s,filter .12s}button:hover:not(:disabled){filter:brightness(1.13)}button:active:not(:disabled){transform:scale(.96)}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible{outline:3px solid #ffe07b;outline-offset:2px}[hidden]{display:none!important}.game-shell{min-height:100svh;padding:8px;display:flex;flex-direction:column;gap:6px}.toolbar{min-height:44px;display:flex;align-items:center;justify-content:flex-end}.toolbar nav{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.toolbar button{font-size:14px}.primary{background:#ffdc72;color:#26313a}.orientation{display:flex;align-items:center;gap:5px;min-height:44px;font-size:14px}.orientation input{width:17px;height:17px;accent-color:#ffdc72}#save-status{margin-right:auto;font-size:12px;color:#ffccae}.board{flex:1;position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(260px,1fr));gap:10px}.player{--panel:#275bbe;--ink:#214d9e;background:var(--panel);border-radius:16px;padding:11px 15px;position:relative;min-width:0;display:flex;box-shadow:inset 0 0 0 1px #ffffff16}.orange{--panel:#a65424;--ink:#8f431b}.green{--panel:#1c735e;--ink:#175f4f}.purple{--panel:#7144a8;--ink:#613691}.current{box-shadow:inset 0 0 0 3px #ffe393}.player-inner{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;min-height:0}.table-mode .player:nth-child(-n+2) .player-inner{transform:rotate(180deg)}.player-head{display:flex;align-items:center;gap:5px;min-height:36px}.player-name{width:40%;min-width:45px;max-width:180px;font-size:17px;font-weight:650;background:transparent;color:white;border:1px solid transparent;padding:4px;border-radius:7px}.player-name:focus,.player-name:hover{background:#ffffff15;border-color:#ffffff50}.peek-button{font-size:20px;padding:0;width:38px;min-height:36px;background:#ffffff13;z-index:15;position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.total{margin-left:auto;font-size:14px;white-space:nowrap}.total b{font-size:22px;font-variant-numeric:tabular-nums}.total small{font-size:12px;opacity:.75}.score-line{min-height:28px;display:flex;align-items:center;justify-content:flex-end;gap:5px;font-size:12px}.score-line>span{margin-right:auto}.score{font-size:22px;letter-spacing:0;font-weight:750;font-variant-numeric:tabular-nums}.score-line small{opacity:.8}.cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-content:center;flex:1;gap:6px;min-height:90px;margin:4px 0 6px}.card{display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;background:#fff;color:var(--ink);aspect-ratio:.65;max-height:160px;min-height:70px;border-radius:9px;box-shadow:0 3px 0 #0002;font-size:clamp(28px,4.2vw,58px);font-weight:750}.card b{font:inherit}.card small{font-size:10px;line-height:1.15;text-align:center}.card.empty{background:#ffffff09;color:#ffffff44;border:1px dashed #ffffff40;box-shadow:none;font-size:24px}.card.special-number{background:#ffe4a4;color:#5c3d0d}.card.duplicate{background:#ffb4ae;color:#80202a;outline:2px solid #ffd6d2}.extras{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;min-height:22px;margin-bottom:6px}.badge{font-size:12px;border-radius:5px;padding:3px 7px;background:#ffffff22}.badge.shield{background:#ffe296;color:#604518}.badge.negative{background:#ffe1db;color:#842c2c}.badge.pending{border:1px dashed #ffe28a;color:#ffe28a}.player-actions{display:flex;gap:8px;min-height:44px;margin-top:auto}.player-actions>button{flex:1}.draw{background:white;color:var(--ink)}.stay{border:1px solid #ffffff75}.wait-label{width:100%;align-self:center;text-align:center;font-size:14px}.resolving .player-actions{pointer-events:none}.resolving .player-actions>button{opacity:.55}.choosing-owner .player-actions{position:absolute;inset:38px 0 0;z-index:3;background:var(--panel);border-radius:10px;margin:0;overflow:hidden}.local-choice{padding:6px;width:100%;align-self:center}.local-choice>strong{display:block;text-align:center;font-size:18px}.local-choice>p{text-align:center;font-size:13px;margin:7px 0 10px}.choice-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.target{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:62px;background:#ffdc72;color:#26313a}.target small{font-size:12px;font-weight:400}.target:disabled{background:#ffffff1a;color:white}.card-choice{height:100%;display:flex;flex-direction:column;min-height:0;padding:3px}.choice-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:27px}.choice-heading strong{font-size:15px}.pick-back{padding:2px 8px;min-height:28px;font-size:12px}.selected-label{font-size:11px!important;text-align:left!important;margin:1px 0 4px!important}.pick-matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;flex:1;min-height:0;overflow:hidden}.pick-group{border:1px solid #ffffff45;border-radius:8px;padding:4px;background:#00000012;display:flex;flex-direction:column;min-height:0;min-width:0}.pick-group>strong{font-size:12px;line-height:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick-cards{display:grid;grid-template-columns:repeat(var(--pick-cols),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:3px;min-height:0;flex:1}.pick-card{padding:2px;min-height:0;min-width:0;border-radius:5px;font-size:clamp(13px,1.65vw,23px);line-height:1.1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:white;color:var(--ink);overflow:hidden}.pick-card b{font-weight:750;overflow-wrap:anywhere}.pick-card small{font-size:9px;line-height:1.05}.pick-card.special-pick{background:#ffe4a4}.pick-card:disabled{opacity:.25}.pick-card.selected{outline:2px solid #ffe078;opacity:.7}.pick-card.danger-pick{background:#ffe1df;color:#8e1721;box-shadow:inset 0 0 0 2px #f75058}.pick-card.attack-pick{box-shadow:inset 0 0 0 2px #ff9959}.empty-pick{font-size:12px;opacity:.65;align-self:center;grid-column:1/-1;text-align:center}.risk-confirm{position:absolute;inset:38px 0 0;z-index:8;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#5b172cf5;border:2px solid #ff9b9e;border-radius:10px;text-align:center;padding:16px}.risk-confirm>strong{font-size:23px;color:#ffd8d8}.risk-confirm p{font-size:14px;line-height:1.5}.risk-confirm>div{display:flex;gap:8px}.danger{background:#ffd3d2;color:#85202b}.peeking .player-actions,.peeking .risk-confirm,.peeking .effect-layer,.peeking .tally-label{visibility:hidden!important;pointer-events:none!important}.peeking .peek-button{background:#ffe391;color:#26313a}.peeking .cards{filter:none}.tally-label{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);background:#162d43ed;padding:7px 16px;border-radius:9px;color:#ffe391;white-space:nowrap;font-size:20px;z-index:6}.counting .score{font-size:32px;color:#ffe391}.adding{outline:3px solid #ffe077;transform:translateY(-7px);transition:transform .1s}.effect-layer{position:absolute;inset:0;z-index:7;pointer-events:none;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}.effect-layer>strong{font-size:clamp(27px,4vw,46px);position:relative;z-index:3;text-align:center;max-width:90%;padding:16px 23px;border-radius:13px}.deal-effect>strong{background:white;color:var(--ink);box-shadow:0 10px 35px #0005;animation:deal .5s both;min-height:110px;display:flex;align-items:center;justify-content:center}.loss-effect>strong{background:#ffd9c9;color:#7d351d;animation:pop .5s both}.seven-effect{background:#a47a1330}.seven-effect>strong{background:#ffe491;color:#644510;box-shadow:0 0 55px #ffd76ab0;animation:pop .9s both}.freeze-effect{background:#97daff40}.freeze-effect>strong{background:#dbf5ff;color:#255e83;animation:pop .65s both}.bust-effect{animation:blast-bg 1s both}.bust-effect>strong{background:#9d1f34;color:#fff4e0;border:2px solid #ffb794;animation:shake 1s both}.blast-ring{position:absolute;width:90px;height:90px;border:10px solid #ffd17c;border-radius:50%;animation:blast-ring .85s ease-out both}.spark{position:absolute;width:12px;height:8px;background:#ffc863;box-shadow:0 0 10px #ff8d35;border-radius:2px;animation:spark .95s ease-out both}.spark:nth-child(3n){background:#ff594b;width:8px;height:13px}.shuffle-overlay{position:absolute;inset:0;z-index:25;background:#13223135;pointer-events:none;display:flex;align-items:center;justify-content:center;overflow:hidden}.shuffle-card{position:absolute;width:92px;height:130px;border:3px solid #ffe292;border-radius:11px;background:#233d62;color:#ffe292;display:flex;align-items:center;justify-content:center;font-size:50px;font-weight:800;box-shadow:0 8px 22px #0005;animation:shuffle 3s both;animation-delay:calc(var(--i)*.018s)}
dialog{border:0;border-radius:18px;background:#f6f8fb;color:#263748;box-shadow:0 25px 100px #0007;padding:20px;width:min(570px,calc(100vw - 24px));max-height:92svh}dialog::backdrop{background:#0e1d31b8;backdrop-filter:blur(3px)}#summary{width:min(760px,96vw);height:min(700px,94svh);padding:12px;overflow:hidden;display:none;flex-direction:column;gap:8px}#summary[open]{display:flex}.summary-face{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px 18px;background:white;border-radius:12px}.summary-face.reverse{transform:rotate(180deg)}.summary-face h2{font-size:21px;text-align:center;margin:0 0 6px}.summary-rows{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0}.result-row{display:grid;grid-template-columns:1fr auto 60px;align-items:center;gap:12px;padding:6px 4px;border-bottom:1px solid #e1e8ef;font-size:15px}.result-row>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-row span{color:#6c7d8e;font-size:13px}.result-row small{color:#24785d;font-size:14px}.result-row>strong{font-size:22px;text-align:right}.summary-buttons{display:flex;gap:8px;margin-top:8px}.summary-buttons button{flex:1;background:#e7ecf3;color:#344657}.summary-buttons .primary{background:#ffdc72}.rules-header{display:flex;align-items:center;justify-content:space-between}.rules-header h2{font-size:24px;margin:8px 0}.rules-header button{background:#e7ecf3;color:#32495f;font-size:24px}.rules-copy{max-height:70svh;overflow:auto;font-size:15px;line-height:1.65}.rules-copy p{margin:14px 0}
@keyframes deal{0%{opacity:0;transform:translateY(-30px) rotate(-12deg) scale(.6)}40%{opacity:1;transform:translateY(0) rotate(2deg) scale(1.05)}70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.85)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}25%{opacity:1;transform:scale(1.08)}75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.03)}}@keyframes blast-bg{0%,100%{background:#ff481000}20%{background:#ffc86980}50%{background:#d52f2550}}@keyframes blast-ring{0%{opacity:1;transform:scale(.3)}100%{opacity:0;transform:scale(5)}}@keyframes spark{0%{opacity:1;transform:translate(0,0) scale(.4)}65%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(.4)}}@keyframes shake{0%{opacity:0;transform:scale(1.5)}20%,40%{opacity:1;transform:translateX(-8px)}30%,50%{transform:translateX(8px)}65%,85%{opacity:1;transform:translateX(0)}100%{opacity:0}}@keyframes shuffle{0%{opacity:0;transform:translateX(0) rotate(0)}15%{opacity:1}30%{transform:translateX(calc((var(--i) - 2.5)*28px)) rotate(calc((var(--i) - 2.5)*8deg))}55%{transform:translateX(calc((2.5 - var(--i))*20px)) rotate(calc((2.5 - var(--i))*6deg))}80%{opacity:1;transform:translateX(calc(var(--i)*2px)) rotate(0)}100%{opacity:0;transform:scale(.8)}}
@media(max-width:760px){.game-shell{padding:5px}.board{gap:6px}.player{padding:8px}.player-name{font-size:15px}.total b{font-size:18px}.total small{font-size:10px}.peek-button{width:30px;font-size:18px}.cards{gap:4px}.card{min-height:52px;font-size:28px}.player-actions>button{font-size:14px;padding:7px}.pick-matrix{gap:4px}.pick-group{padding:2px}.pick-card{font-size:15px}.pick-card small{font-size:8px}.pick-group>strong{font-size:10px}.choice-heading strong{font-size:13px}.target{min-height:56px}.summary-face{padding:6px 8px}.summary-face h2{font-size:18px}.result-row{font-size:14px;padding:4px}.risk-confirm{padding:8px}.risk-confirm>strong{font-size:18px}}
@media(max-height:650px){.board{grid-template-rows:repeat(2,minmax(235px,1fr))}.card{min-height:55px;max-height:100px}.player-head{min-height:32px}.peek-button{min-height:32px}.summary-face h2{font-size:17px}.result-row{padding:3px;font-size:13px}.result-row>strong{font-size:18px}.summary-buttons{margin-top:4px}.summary-buttons button{min-height:38px;padding:6px}.summary-face{padding:4px 10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.spark,.blast-ring{display:none}.adding{transform:none}}

/* Score projections stay in the header, visible even during card selection. */
.total{position:relative}.score-forecast{position:absolute;right:0;top:100%;z-index:16;display:block;white-space:nowrap;background:#ffdf7d;color:#57380c;border-radius:6px;padding:3px 7px;font-size:12px;box-shadow:0 2px 9px #0002;animation:forecast-in .35s ease-out}.score-forecast b{font-size:16px}.extras{gap:5px;min-height:36px}.badge{min-width:43px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:23px;font-weight:750;padding:3px 8px;border:1px solid #ffffff35;border-radius:7px}.badge.pending{font-size:15px}.badge.shield{font-size:25px}.tally-label{bottom:49px;display:flex;flex-direction:column;align-items:center;gap:4px;max-width:98%;padding:10px 18px;border:1px solid #ffe39b;font-size:22px;box-shadow:0 8px 28px #0004}.tally-label>small{font-size:13px;color:#fff6d8}.tally-label>strong{font-size:clamp(18px,2.4vw,29px)}.tally-final{bottom:50%;transform:translate(-50%,50%);padding:16px 22px;background:#fff4cb;color:#583c11;animation:deposit .45s ease-out}.tally-final>small{color:#76551c}.tally-final em{font-style:normal;font-size:1.5em;color:#246b45}.score-banked{display:inline-block;animation:deposit .5s ease-out}.result-math{display:flex;flex-direction:column;gap:2px}.result-math b{font-size:15px;color:#267555}.result-math small{font-size:11px;color:#74818b}.result-row>strong>small{display:block;font-size:10px;color:#74818b;font-weight:400}.adding{box-shadow:0 0 22px #ffe077;outline:4px solid #ffe077}.result-row .rank{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;background:#e8edf2;border-radius:50%;font-size:13px;color:#536273}
@keyframes forecast-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes deposit{0%{filter:brightness(1.6)}45%{filter:brightness(1.15)}100%{filter:brightness(1)}}
@media(max-height:650px){.extras{min-height:30px}.badge{min-height:29px;font-size:20px;min-width:37px}.result-row{padding:2px 4px}.result-math{gap:0}.tally-label{padding:7px 12px}}
.seat-handle{touch-action:none;user-select:none;-webkit-user-select:none;width:28px;min-width:28px;padding:0;min-height:36px;font-size:25px;background:transparent}.seat-dragging{opacity:.65}.seat-drop{outline:4px dashed #ffe18a;outline-offset:-5px}.player-name{width:31%}#stats-dialog{width:min(1050px,96vw);max-height:94svh;padding:16px}#stats-dialog button{color:#294258;background:#e3eaf1}.stats-head{display:flex;align-items:center;gap:10px;position:sticky;top:-16px;background:#f6f8fb;z-index:2;padding:5px 0}.stats-head h2{margin-right:auto;font-size:22px}.stats-note{font-size:12px;color:#63758a;line-height:1.6}.career-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.career-card{padding:14px;background:white;border:1px solid #dfe7ef;border-radius:12px}.career-card h3{margin:0 0 12px}.career-card h3 small{font-weight:400;font-size:13px;color:#65758a}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.stat-metric small{display:block;color:#65758a;font-size:11px}.stat-metric b{display:block;font-size:21px;margin-top:3px}.career-card>small{display:block;margin-top:12px;color:#876626}.game-review{margin:10px 0;border:1px solid #d8e2ec;border-radius:10px;padding:12px;background:white}#stats-content summary{cursor:pointer;padding:10px 0;font-weight:600}#stats-content table{width:100%;border-collapse:collapse;font-size:13px}#stats-content td,#stats-content th{padding:9px;text-align:left;border-bottom:1px solid #e2e8ef}#stats-content td small{display:block;color:#65758a}.stats-table-wrap{overflow:auto}.score-chart{width:100%;max-height:260px}.score-chart text{font-size:12px;fill:#6c7b8d}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:14px}.replay{padding-left:24px}.replay summary{font-size:13px;font-weight:400!important}.replay-hands{display:grid;grid-template-columns:1fr 1fr;background:#edf2f7;padding:10px;gap:8px}.replay-hands p{font-size:12px;line-height:1.6;margin:3px}@media(max-width:700px){.career-grid{grid-template-columns:1fr}.seat-handle{width:23px;min-width:23px}.metric-grid{gap:8px}}

#sound-status{font-size:12px;max-width:280px;padding:4px 8px;color:#ffe6a4} .toolbar{flex-wrap:wrap}

.sitting-out{filter:saturate(.25);opacity:.68}.roster-label{font-size:10px;max-width:55px;color:#ffe29b}.roster-label:empty{display:none}.avatar-toggle{padding:0;background:transparent;min-width:38px;width:38px;height:38px;min-height:38px;flex-shrink:0}.avatar-toggle img{width:38px;height:38px;object-fit:cover;border:2px solid #ffffff88;border-radius:50%;pointer-events:none}

.profile-dialog{width:min(440px,94vw);padding:20px}.profile-dialog header{display:flex;align-items:center;justify-content:space-between}.profile-tabs{display:flex;gap:6px;margin:12px 0}.profile-tabs button{flex:1;min-width:0;padding:5px;font-size:12px;overflow:hidden;text-overflow:ellipsis}.profile-tabs .selected{background:#e9c576;color:#263b34}.profile-editor{display:grid;gap:12px}.profile-editor img{width:90px;height:90px;border-radius:50%;object-fit:cover;justify-self:center}.profile-editor input[type=text]{width:100%;padding:12px;border:1px solid #aaa;border-radius:8px;color:#263b34;background:#fff;font-size:18px}.profile-editor label{display:grid;gap:8px}.profile-editor input[type=file]{width:100%;font-size:14px}.profile-note{font-size:12px;color:#6e796f;margin:0}.profile-error{color:#a22;font-size:13px}.duo .sitting-out{display:none!important}
.board.duo{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}.board.duo .player[data-duo-seat="0"]{grid-area:1/1}.board.duo .player[data-duo-seat="1"]{grid-area:1/2}.board.duo .player .player-inner{transform:none}.board.duo.table-mode .player[data-duo-seat="0"] .player-inner{transform:rotate(180deg)}.board.duo .cards{align-content:center;grid-template-columns:repeat(4,minmax(0,1fr))}.board.duo .player-actions{min-height:60px}

/* Controls at the table intersection leave the full viewport for play. */
.game-shell{height:100svh;min-height:580px;padding:6px;gap:0}.table-center-controls{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:30;display:flex;align-items:center;gap:5px}.table-center-controls #table-settings-open{width:44px;height:44px;padding:10px;border-radius:50%;background:#142330;color:#d4e1e9;box-shadow:0 2px 12px #0005}.table-center-controls svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.table-center-controls #main-action{position:absolute;left:50%;top:50px;transform:translateX(-50%);white-space:nowrap;box-shadow:0 3px 15px #0003;font-size:13px}#table-settings{width:min(420px,94vw)}#table-settings header{display:flex;justify-content:space-between;align-items:center}#table-settings h2{font-size:22px}.table-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.table-settings-grid button,.table-settings-grid .orientation{min-height:50px;justify-content:center;background:#e4dfd4;color:#273e37;border-radius:9px}.table-settings-grid #new-game{background:#ead69e}#save-status:not([hidden]){position:fixed;top:6px;left:50%;transform:translateX(-50%);z-index:31;background:#142330;padding:6px 10px;border-radius:8px}#table-settings #sound-status{display:block;margin-top:12px;font-size:12px}

/* Center the hand, including the shorter second row in two-player mode. */
.board .cards{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;align-items:center;gap:6px}.board .cards .card{flex:0 0 calc((100% - 36px)/7);width:calc((100% - 36px)/7);max-width:100px}.board.duo .cards .card{flex-basis:calc((100% - 18px)/4);width:calc((100% - 18px)/4);max-width:118px}
/* A brief card-back pause, then a fast reveal; effects never intercept input. */
.flip-effect{perspective:800px}.flip-effect>strong{padding:0;width:100px;height:140px;min-height:0;transform-style:preserve-3d;animation:quick-reveal .36s ease-out both;background:none;overflow:visible}.quick-flip-back,.quick-flip-front{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:12px;border:3px solid #f5d794;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 8px 22px #0005;font-size:30px;padding:7px}.quick-flip-back{background:repeating-linear-gradient(45deg,#294c71 0 6px,#203e5e 6px 12px);color:#ffe294;font-size:60px}.quick-flip-front{transform:rotateY(180deg);background:#fff6df;color:#284457}@keyframes quick-reveal{0%{transform:rotateY(0) scale(.85);opacity:0}12%,27%{transform:rotateY(0) scale(1);opacity:1}65%,85%{transform:rotateY(180deg) scale(1);opacity:1}100%{transform:rotateY(180deg) scale(.92);opacity:0}}
/* Persistent, non-interactive materials make each stopped state distinct. */
.player.status-bust{--panel:#222326;--ink:#36383b;background:radial-gradient(ellipse at 15% 80%,#9b431c38,transparent 37%),repeating-linear-gradient(125deg,#ffffff06 0 1px,transparent 1px 23px),linear-gradient(145deg,#363637,#101114 70%);box-shadow:inset 0 0 35px #000b,inset 0 0 0 2px #62605c}.status-bust .card{background:#bbb7ae;color:#393735;box-shadow:0 3px 0 #0007}.status-bust .score-line>span{font-weight:800;color:#ffc292}.player.status-frozen{--panel:#37677d;--ink:#245068;background:linear-gradient(125deg,#c9f8ff70 0 2%,transparent 3% 32%,#e6fdff33 33% 34%,transparent 35%),linear-gradient(35deg,#26536b,#6db4c9 55%,#356a87);box-shadow:inset 0 0 0 4px #d8faffbb,inset 0 0 38px #e4fcff99,0 0 12px #8cdfff44}.status-frozen .card{background:#e3faff;color:#275c75;border:1px solid #fff;box-shadow:0 0 12px #dcffff55}.player.status-frozen:before{content:'';position:absolute;inset:5px;border-radius:12px;pointer-events:none;background:linear-gradient(65deg,transparent 48%,#eaffff88 49%,transparent 50%),linear-gradient(145deg,transparent 67%,#f0ffff77 68%,transparent 69%);border:2px solid #ecffff66}.player.status-stayed{--panel:#655724;background:linear-gradient(140deg,#736336,#403a24);box-shadow:inset 0 0 0 2px #e1c35c}.player.status-stayed:before,.player.status-stayed:after{content:'';position:absolute;left:6px;right:6px;height:8px;border-radius:5px;background:repeating-linear-gradient(125deg,#f7d548 0 12px,#292923 12px 24px);pointer-events:none}.player.status-stayed:before{top:3px}.player.status-stayed:after{bottom:3px}.status-stayed .wait-label{color:#ffe27e;font-weight:800;letter-spacing:3px}.status-frozen .wait-label{color:#e4fcff;font-weight:800}.status-bust .wait-label{color:#ffc292;font-weight:800}
@media(prefers-reduced-motion:reduce){.flip-effect>strong{transform:rotateY(180deg)}}

#draw-deck{position:absolute;right:53px;top:3px;width:27px;height:38px;border:2px solid #e9cc8b;border-radius:5px;background:repeating-linear-gradient(45deg,#294c71 0 4px,#203e5e 4px 8px);box-shadow:-3px -3px 0 #203e5e,-4px -4px 0 #b79d68,-6px -6px 0 #203e5e;pointer-events:none}.awaiting-card{visibility:hidden}.card-flight{position:fixed;left:0;top:0;z-index:35;pointer-events:none;perspective:800px;animation:fly-to-hand .44s ease-out both}.card-flight-flip{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:reveal-in-hand .44s ease-out both}.card-flight .quick-flip-front,.card-flight .quick-flip-back{font-size:clamp(22px,3.5vw,48px);border-width:2px;padding:4px}.card-flight .quick-flip-back:after{content:'';position:absolute;inset:7px;border:1px solid #dcc48a99;border-radius:5px}@keyframes fly-to-hand{0%{transform:translate(var(--from-x),var(--from-y)) translate(-50%,-50%) rotate(var(--card-rotation)) scale(.45)}52%,100%{transform:translate(var(--to-x),var(--to-y)) translate(-50%,-50%) rotate(var(--card-rotation)) scale(1)}}@keyframes reveal-in-hand{0%,52%{transform:rotateY(0)}92%,100%{transform:rotateY(180deg)}}

.suspense-flight{animation:slow-card-arrival .9s ease-out both}.suspense-flight .card-flight-flip{animation:none;transform:rotateY(0)}.suspense-flight.shaking .card-flight-flip{animation:suspense-shiver .1s linear infinite}.suspense-flight.revealing .card-flight-flip{animation:suspense-turn .3s ease-out both}.card-flight.skill-hold .card-flight-flip{transform:rotateY(180deg)}.card-flight.reveal-glow:after{content:'';position:absolute;inset:-18px;border:4px solid #fff6bb;border-radius:20px;box-shadow:0 0 30px #ffe584,0 0 65px #fff0bd,inset 0 0 25px #ffe895;animation:reveal-rays .42s ease-out both;pointer-events:none}.player.achieved-seven{background:linear-gradient(120deg,#a32b88,#7136c7,#146ea4,#1b936c,#b78724,#bd4275);background-size:400% 400%;animation:seven-rainbow 3s linear infinite;box-shadow:inset 0 0 0 4px #fff1b0,0 0 28px #ffdf8299}.achieved-seven .score-line>span{font-size:20px;font-weight:900;color:#fff4b4;text-shadow:0 0 12px #ffe582}.achieved-seven .card{box-shadow:0 0 12px #ffefa580}.seven-effect>strong{font-size:clamp(38px,6vw,76px);box-shadow:0 0 75px #ffe77c;animation:pop .9s both}@keyframes slow-card-arrival{from{transform:translate(var(--from-x),var(--from-y)) translate(-50%,-50%) rotate(var(--card-rotation)) scale(.45)}to{transform:translate(var(--to-x),var(--to-y)) translate(-50%,-50%) rotate(var(--card-rotation)) scale(1)}}@keyframes suspense-shiver{0%,100%{transform:translateX(-3px) rotate(-2deg)}50%{transform:translateX(3px) rotate(2deg)}}@keyframes suspense-turn{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes reveal-rays{from{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.35)}}@keyframes seven-rainbow{0%{background-position:0% 50%}100%{background-position:100% 50%}}

.skill-flight{position:fixed;left:0;top:0;width:78px;height:104px;z-index:36;pointer-events:none;display:flex;align-items:center;justify-content:center;text-align:center;padding:7px;background:linear-gradient(145deg,#fff3ce,#f6cb74);color:#624321;border:3px solid #fff0be;border-radius:12px;font-size:25px;font-weight:850;box-shadow:0 0 18px #ffe59b99,0 8px 20px #0004;animation:skill-delivery .38s ease-in-out both}@keyframes skill-delivery{0%{transform:translate(var(--from-x),var(--from-y)) translate(-50%,-50%) rotate(var(--card-rotation)) scale(.7);opacity:.7}75%{transform:translate(var(--to-x),var(--to-y)) translate(-50%,-50%) rotate(var(--card-rotation)) scale(1.08);opacity:1}100%{transform:translate(var(--to-x),var(--to-y)) translate(-50%,-50%) rotate(var(--card-rotation)) scale(.85);opacity:1}}

/* Skill names wrap inside the card while number cards retain large numerals. */
.card-flight .quick-flip-front.skill-card-face{font-size:clamp(13px,1.6vw,20px);line-height:1.2;padding:5px;overflow-wrap:anywhere;word-break:normal;overflow:hidden;text-align:center}.skill-flight{font-size:18px;line-height:1.25;padding:7px;overflow-wrap:anywhere;overflow:hidden}.deal-effect>strong,.loss-effect>strong{overflow-wrap:anywhere;font-size:clamp(18px,2.3vw,28px);line-height:1.25}

.card-flight .quick-flip-front:not(.skill-card-face){font-family:inherit;font-weight:750;font-size:clamp(28px,4.2vw,58px);font-variant-numeric:tabular-nums}

.random-target{display:block;margin:8px auto 0;background:#fff0b7;color:#634c18;min-height:40px}.random-target-lit{outline:5px solid #fff0a0;outline-offset:3px;border-radius:12px;box-shadow:0 0 30px #ffe578,inset 0 0 25px #ffe57866}

/* Keep the iPad table fixed; scrolling remains available inside dialogs. */
html{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}.game-shell,.app{height:100%;min-height:0;overflow:hidden;overscroll-behavior:none;touch-action:none}.board,.table{min-height:0;overscroll-behavior:none}dialog{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}dialog input,dialog button{touch-action:manipulation}

.player-count{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:12px}.player-count button{min-width:46px;font-size:24px}.profile-tabs{flex-wrap:wrap}.profile-tabs button{flex:1 0 21%}.many .player{grid-column:var(--seat-col);grid-row:var(--seat-row)}.many .player input{font-size:13px}.many .player header{gap:3px}.many .player{padding:8px}.many .player .inner,.many .player .player-inner{transform:none}.many.facing .player[data-upper="true"] .inner,.many.table-mode .player[data-upper="true"] .player-inner{transform:rotate(180deg)}.many .avatar,.many .handle,.many .avatar-toggle,.many .avatar-toggle img{width:30px;height:30px;min-width:30px;min-height:30px}.many .turn-mark{font-size:9px}.solo .player{grid-area:1/1/3/-1}.solo .player .player-inner,.solo .player .inner{transform:none}
.board.many:not(.duo){grid-template-columns:repeat(var(--seat-cols),minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.many .player-name{max-width:85px;min-width:25px}.many .total b{font-size:17px}.many .peek-button{width:26px;font-size:16px}.many .cards .card{font-size:24px;min-height:48px}.many .player-actions{gap:4px}.many .player-actions button{font-size:12px;padding:5px}.many .local-choice{overflow:auto;max-height:100%}.many .target{min-height:38px;padding:4px;font-size:12px}.many .local-choice>strong{font-size:13px}.many .local-choice>p{font-size:10px;margin:3px}.many .pick-matrix{grid-template-rows:repeat(4,minmax(0,1fr))}.many .choice-heading strong{font-size:12px}.many .random-target{margin:3px auto;min-height:30px}
