.match-table-page{width:100%;max-width:min(56rem,calc(100vw - 1.25rem));margin:0 auto;box-sizing:border-box;padding:.75rem max(.75rem,env(safe-area-inset-left)) calc(.75rem + env(safe-area-inset-bottom,0px)) max(.75rem,env(safe-area-inset-right))}.match-table-page__topbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.match-table-page__topbar h1{font-size:1rem;font-weight:600;margin:0;color:var(--muted)}.match-table-page__topbar--ingame{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.match-hud-home{display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border-radius:999px;background:#0000000f;border:1px solid var(--border);color:var(--text);text-decoration:none;font-size:1.05rem;line-height:1}.match-hud-home:active{opacity:.88}.match-hud-coins{font-size:.78rem}.match-table-page--playing .match-play-shell{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.match-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.match-turn-bar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.35rem .55rem 0;padding:.35rem .55rem;border-radius:10px;background:#00000047;border:1px solid rgba(255,255,255,.1);font-size:.78rem;color:#ffffffeb}.match-turn-bar__who strong{font-weight:700}.match-turn-bar__timer{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.03em;color:#b4ebc8f2}.match-turn-bar__timer--warn{color:#ffb4a8;animation:matchTurnPulse 1s ease-in-out infinite}@keyframes matchTurnPulse{50%{opacity:.65}}@media(prefers-reduced-motion:reduce){.match-turn-bar__timer--warn{animation:none}}.match-table-felt{position:relative;border-radius:16px;width:100%;min-height:min(58vh,28rem);display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse 120% 80% at 50% 40%,#4a6f8a,#2d4a5e 45%,#1e3545);box-shadow:inset 0 1px #ffffff14,inset 0 -2px 8px #00000059,0 8px 24px #00000073;border:1px solid rgba(255,255,255,.06)}.match-table-felt:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(-12deg,transparent,transparent 3px,rgba(0,0,0,.03) 3px,rgba(0,0,0,.03) 6px);pointer-events:none;border-radius:16px}.match-arena{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.match-opponents{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:.75rem 1.25rem;padding:.65rem .5rem .35rem}.match-opponent{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:4.5rem}.match-opponent--turn{outline:2px solid var(--accent);outline-offset:3px;border-radius:12px;padding:.2rem}.match-opponent__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,#3a4a5c,#2a3542);border:2px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--text);text-transform:uppercase}.match-opponent__name{font-size:.78rem;font-weight:600;color:#ffffffeb;max-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.match-opponent__badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.72rem;color:#ffffffbf;background:#00000040;padding:.15rem .45rem;border-radius:999px}.match-board{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:stretch;padding:.35rem .65rem;min-height:9rem}.match-board__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"stock trick coins";align-items:start;gap:clamp(.5rem,2vw,1.25rem)}.match-board__row:not(:has(.match-board__coins)){grid-template-columns:auto minmax(0,1fr);grid-template-areas:"stock trick"}.match-board__stock-strip{display:contents}.match-stock{grid-area:stock}.match-board__coins{grid-area:coins;align-self:flex-start;margin-top:.15rem;font-size:.75rem}@media(min-width:720px){.match-board__trick{min-width:min(22rem,100%)}}@media(max-width:560px){.match-table-page{max-width:100%;padding-left:max(.5rem,env(safe-area-inset-left));padding-right:max(.5rem,env(safe-area-inset-right))}.match-turn-bar{flex-wrap:wrap;row-gap:.25rem;margin-left:.35rem;margin-right:.35rem;font-size:.72rem}.match-board{padding-left:.4rem;padding-right:.4rem}.match-board__row{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;grid-template-areas:"stock coins" "trick trick";column-gap:.35rem;row-gap:.65rem}.match-board__row:not(:has(.match-board__coins)){grid-template-columns:1fr;grid-template-areas:"stock" "trick"}.match-stock{justify-self:center;min-width:0}.match-board__coins{justify-self:end;align-self:end;margin-top:0}.match-board__trick{width:100%;max-width:100%;box-sizing:border-box;padding:0 .15rem}.match-stock__trump-hint{max-width:10rem;text-align:center;text-wrap:balance;font-size:.55rem;line-height:1.25;letter-spacing:.02em}.match-battle-pile__hint{max-width:100%;box-sizing:border-box;padding:0 .2rem;font-size:.64rem;line-height:1.32}.match-board__cards .playing-card--md{transform:scale(.9)}.match-board__score-pill{font-size:.62rem;max-width:100%;padding:0 .2rem;text-wrap:balance}}.match-stock{display:flex;align-items:flex-end;gap:.35rem;flex-shrink:0}.match-stock__deck{position:relative;width:2.5rem;height:3.4rem}.match-stock__deck-card{position:absolute;left:0;top:0;width:2.5rem;height:3.4rem;border-radius:6px;background:linear-gradient(145deg,#2a5a8a,#1a3a5c);border:1px solid rgba(255,255,255,.15);box-shadow:2px 2px #00000040}.match-stock__deck-card:nth-child(2){transform:translate(2px,-2px);opacity:.95}.match-stock__deck-card:nth-child(3){transform:translate(4px,-4px);opacity:.85}.match-stock__deck--dealing .match-stock__deck-card{animation:matchDeckDealPulse .55s ease-in-out infinite alternate}.match-stock__deck--dealing .match-stock__deck-card:nth-child(2){animation-delay:.08s}.match-stock__deck--dealing .match-stock__deck-card:nth-child(3){animation-delay:.16s}@keyframes matchDeckDealPulse{0%{box-shadow:2px 2px #00000040}to{box-shadow:2px 3px 6px #00000059;filter:brightness(1.08)}}.match-stock__count{position:absolute;top:-.35rem;right:-.35rem;font-size:.65rem;font-weight:700;background:#0000008c;color:#fff;padding:.1rem .35rem;border-radius:6px;z-index:2}.match-stock__trump{display:flex;flex-direction:column;align-items:center;gap:.15rem}.match-stock__trump-hint{font-size:.6rem;color:#ffffffb8;text-transform:uppercase;letter-spacing:.04em}.match-board__trick{grid-area:trick;flex:1;display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:0}.match-battle-pile{width:100%;display:flex;flex-direction:column;align-items:center;gap:.65rem;box-sizing:border-box}.match-battle-pile__layer{width:100%;max-width:min(22rem,100%);display:flex;flex-direction:column;align-items:stretch;gap:.35rem;box-sizing:border-box}.match-board__cards--stacked{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:flex-start;gap:0;padding:.2rem .75rem .6rem;max-width:100%;box-sizing:border-box}.match-board__cards--stacked>.playing-card{position:relative;flex-shrink:0;margin:0}.match-board__cards--stacked:not(.match-board__cards--stacked-sm)>.playing-card:not(:first-child){margin-left:-1.88rem}.match-board__cards--stacked-sm>.playing-card:not(:first-child){margin-left:-1.42rem}.match-board__cards--stacked>.playing-card:nth-child(1){z-index:1}.match-board__cards--stacked>.playing-card:nth-child(2){margin-top:.38rem;z-index:2}.match-board__cards--stacked>.playing-card:nth-child(3){margin-top:.76rem;z-index:3}.match-board__cards--stacked>.playing-card:nth-child(4){margin-top:1.14rem;z-index:4}.match-board__cards--stacked>.playing-card:nth-child(5){margin-top:1.52rem;z-index:5}.match-board__cards--stacked>.playing-card:nth-child(6){margin-top:1.9rem;z-index:6}.match-board__cards--stacked>.playing-card:nth-child(7){margin-top:2.28rem;z-index:7}.match-board__cards--stacked>.playing-card:nth-child(8){margin-top:2.66rem;z-index:8}.match-board__cards--stacked>.playing-card:nth-child(9){margin-top:3.04rem;z-index:9}.match-board__cards--stacked>.playing-card:nth-child(10){margin-top:3.42rem;z-index:10}.match-board__cards--stacked>.playing-card:nth-child(11){margin-top:3.8rem;z-index:11}.match-board__cards--stacked>.playing-card:nth-child(12){margin-top:4.18rem;z-index:12}.match-battle-pile__layer--buried{align-items:center;padding:.4rem .5rem;border-radius:10px;background:#0003;border:1px solid rgba(255,255,255,.08)}.match-battle-pile__layer--buried .playing-card{opacity:.88;flex-shrink:0}.match-battle-pile__layer--active{align-items:center;padding:.5rem .55rem .4rem;border-radius:12px;background:#00000042;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px #ffffff0f}.match-battle-pile__layer--active.match-battle-pile__layer--after-buried{margin-top:.1rem;padding-top:.55rem;border-top:1px solid rgba(255,255,255,.16)}.match-battle-pile__layer--active .playing-card--md{flex-shrink:0}.match-battle-pile__hint{margin:0;max-width:16rem;font-size:.72rem;line-height:1.35;color:#ffffffc7;text-align:center}.match-battle-pile__meta{margin:0;font-size:.65rem;color:#ffffff80;letter-spacing:.02em}.match-board__label--strong{color:#ffffffe0;font-weight:650}.match-board__label{font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:#ffffff8c;text-align:center}.match-board__cards{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;max-width:100%}.match-board__score-pill{font-size:.7rem;color:#ffffffa6;text-align:center;margin-top:.15rem}.playing-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;cursor:pointer;border-radius:7px;background:linear-gradient(180deg,#fdfdfd,#e8eaee);box-shadow:0 2px 4px #00000059,inset 0 1px #ffffffe6;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,box-shadow .12s ease;flex-shrink:0}.playing-card:disabled{cursor:default;opacity:.9}.playing-card:not(:disabled):active{transform:translateY(1px)}.playing-card--selected{transform:translateY(-6px);box-shadow:0 0 0 2px var(--accent),0 8px 16px #00000059}.playing-card__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:.25rem .35rem;color:#1a1a1a}.playing-card__inner--red{color:#c41e3a}.playing-card__rank{font-size:.75rem;font-weight:700;line-height:1}.playing-card__suit{font-size:.95rem;line-height:1}.playing-card--sm{min-width:2.15rem;height:2.95rem}.playing-card--sm .playing-card__rank{font-size:.62rem}.playing-card--sm .playing-card__suit{font-size:.72rem}.playing-card--sm .playing-card__inner{padding:.15rem .25rem}.playing-card--md{min-width:2.65rem;height:3.65rem}.playing-card--md .playing-card__rank{font-size:.8rem}.playing-card--md .playing-card__suit{font-size:1.05rem}.playing-card--lg{min-width:3rem;height:4.15rem}.playing-card--lg .playing-card__rank{font-size:.9rem}.playing-card--lg .playing-card__suit{font-size:1.15rem}@keyframes matchDealCardIn{0%{opacity:0;transform:translate3d(0,-8.25rem,0) scale(.86) rotate(-7deg)}55%{opacity:1}to{opacity:1;transform:translateZ(0) scale(1) rotate(0)}}.playing-card--deal-in{animation:matchDealCardIn .48s cubic-bezier(.22,1,.36,1) both}.match-hand--dealing{pointer-events:none}@media(prefers-reduced-motion:reduce){.playing-card--deal-in{animation:none;opacity:1;transform:none}.match-stock__deck--dealing .match-stock__deck-card{animation:none;filter:none}}.match-hand{position:relative;z-index:1;display:flex;justify-content:center;align-items:flex-end;padding:.65rem .35rem .75rem;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity}.match-hand__inner{display:flex;justify-content:center;align-items:flex-end;flex-wrap:nowrap;gap:.5rem;padding:.35rem .75rem;min-height:4.85rem;max-width:100%}.match-hand .playing-card--lg{flex-shrink:0;scroll-snap-align:center}.match-dock{position:relative;z-index:2;display:flex;flex-direction:column;margin:0 .5rem .5rem;padding:.65rem .75rem;border-radius:14px;background:#f5f7faf7;color:#1a2530;box-shadow:0 -4px 20px #0003}.match-dock__top-line{display:flex;flex-direction:row;align-items:center;gap:.65rem}.match-dock__avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,#5a8a6a,#3d9a6a);color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.match-dock__name{font-size:.85rem;font-weight:650;margin:0;color:#1a2530;flex:1;min-width:0}.match-dock__actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.match-dock .btn{min-height:40px;font-size:.85rem}.match-dock .btn-primary{background:#2d8f5a;color:#fff}.match-dock .btn-ghost{border-color:#c5cdd6;color:#3a4a5a}@media(min-width:640px){.match-table-page__topbar h1{font-size:1.1rem}.match-table-felt{min-height:min(65vh,32rem);border-radius:18px}.match-opponents{gap:1rem 2rem;padding:.85rem .75rem .45rem}.match-opponent__avatar{width:50px;height:50px;font-size:.9rem}.match-opponent__name{max-width:8rem;font-size:.82rem}.match-board{padding:.5rem 1rem;min-height:10rem}.match-hand__inner{gap:.55rem;padding:.45rem 1rem}.match-dock{margin:0 clamp(.65rem,4vw,2rem) .65rem;padding:.75rem 1rem}}@media(min-width:960px){.match-table-page{padding:1rem max(1rem,env(safe-area-inset-left)) calc(1rem + env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-right))}.match-table-felt{min-height:min(70vh,38rem)}.match-board__label{font-size:.72rem}.match-board__score-pill{font-size:.75rem}}@media(max-width:640px){.match-table-page--playing{min-height:100vh;min-height:100dvh;max-width:100%;padding:.4rem max(.45rem,env(safe-area-inset-left)) calc(.3rem + env(safe-area-inset-bottom,0px)) max(.45rem,env(safe-area-inset-right))}.match-table-page--playing .match-board__coins{display:none}.match-table-page--playing .match-table-felt{flex:1 1 auto;min-height:0;border-radius:14px}.match-turn-bar{margin-left:.35rem;margin-right:.35rem;padding:.3rem .45rem;font-size:.7rem}.match-arena{position:relative;flex:1 1 auto;min-height:12.5rem}.match-opponents.match-opponents--around-table{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block;padding:0;margin:0;pointer-events:none}.match-opponents.match-opponents--around-table .match-opponent{position:absolute;pointer-events:auto;min-width:0}.match-opponents.match-opponents--around-table .match-opponent:nth-child(1){top:.15rem;left:50%;transform:translate(-50%)}.match-opponents.match-opponents--around-table .match-opponent:nth-child(2){left:.1rem;top:38%;transform:translateY(-50%)}.match-opponents.match-opponents--around-table .match-opponent:nth-child(3){right:.1rem;top:38%;transform:translateY(-50%)}.match-opponents.match-opponents--around-table .match-opponent:nth-child(4){bottom:.2rem;left:50%;top:auto;transform:translate(-50%)}.match-opponent--turn{outline:none;padding:0}.match-opponent--turn .match-opponent__avatar{box-shadow:0 0 0 3px #3ecf6af2}.match-opponents.match-opponents--around-table .match-opponent__avatar{border-radius:11px}.match-board{position:relative;z-index:2;flex:1 1 auto;justify-content:center;min-height:8rem}.match-hand{z-index:3;margin-bottom:-.45rem;padding-bottom:.5rem}.match-hand__inner{gap:0;padding-left:max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right))}.match-hand__inner .playing-card--lg:not(:first-child){margin-left:-1.1rem}.match-hand__inner .playing-card--lg{z-index:0}.match-hand__inner .playing-card--lg:nth-child(n+1){position:relative}.match-hand__inner .playing-card--lg:nth-child(1){z-index:5}.match-hand__inner .playing-card--lg:nth-child(2){z-index:4}.match-hand__inner .playing-card--lg:nth-child(3){z-index:3}.match-hand__inner .playing-card--lg:nth-child(4){z-index:2}.match-hand__inner .playing-card--lg:nth-child(5){z-index:1}.match-hand__inner .playing-card--lg:nth-child(n+6){z-index:0}.match-dock{display:grid;grid-template-columns:1fr auto;grid-template-areas:"top actions";align-items:center;column-gap:.45rem;row-gap:.45rem;margin:0;margin-top:-.35rem;padding:.65rem .55rem calc(.65rem + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;box-shadow:0 -10px 28px #00000038}.match-dock__top-line{grid-area:top;flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem;min-width:0}.match-dock__avatar{width:50px;height:50px;border-radius:12px}.match-dock__avatar--my-turn{box-shadow:0 0 0 3px #e04555}.match-dock__name{flex:none;max-width:7rem;font-size:.78rem;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-dock__actions{grid-area:actions;display:flex;flex-direction:column;flex-wrap:nowrap;gap:.35rem;margin-top:0;align-self:stretch;justify-self:stretch;min-width:0}.match-dock__actions .btn{min-height:38px;font-size:.8rem;padding-left:.5rem;padding-right:.5rem}}.room-comms{margin:.5rem 0 0;border:1px solid var(--border, rgba(255, 255, 255, .12));border-radius:10px;background:#0003;overflow:hidden}.room-comms--sticky-top{position:sticky;top:calc(env(safe-area-inset-top,0px) + .2rem);z-index:30;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 18px #00000059}.room-comms--below-table{margin-top:.35rem}.room-comms__bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .55rem;background:#00000040;flex-wrap:wrap}.room-comms__title{font-size:.82rem;font-weight:600;margin:0;opacity:.92}.room-comms__actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.room-comms__btn{font-size:.75rem;padding:.25rem .5rem;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:inherit;cursor:pointer}.room-comms__btn:hover:not(:disabled){background:#ffffff1f}.room-comms__btn:disabled{opacity:.45;cursor:not-allowed}.room-comms__btn--on{border-color:#50c8788c;background:#28784659}.room-comms__body{padding:.45rem .55rem .55rem;border-top:1px solid rgba(255,255,255,.08)}.room-comms__hint{font-size:.72rem;opacity:.75;margin:0 0 .35rem;line-height:1.35}.room-comms__log{max-height:11rem;overflow-y:auto;font-size:.8rem;line-height:1.35;margin-bottom:.45rem;padding:.25rem;border-radius:6px;background:#0000002e}.room-comms__line{margin:.15rem 0;word-break:break-word}.room-comms__line--me{opacity:.95}.room-comms__meta{opacity:.65;font-size:.72rem}.room-comms__form{display:flex;gap:.35rem;align-items:stretch}.room-comms__input{flex:1;min-width:0;font-size:.82rem;padding:.35rem .5rem;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#00000040;color:inherit}.room-comms__audio-mount{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}:root{color-scheme:dark;--bg: #0f1419;--surface: #1a222c;--border: #2d3a47;--text: #e8eef4;--muted: #8b9bab;--accent: #3d9a6a;--accent-dim: #2d7a52;--danger: #c45c5c;--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:system-ui,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);padding-bottom:var(--safe-bottom)}#root{min-height:100dvh}a{color:var(--accent)}button{font:inherit;cursor:pointer}input{font:inherit}.layout{max-width:28rem;margin:0 auto;padding:1rem 1rem calc(1rem + var(--safe-bottom))}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.w-full{width:100%}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.title{font-size:1.35rem;font-weight:650;margin:0 0 .25rem}.sub{color:var(--muted);font-size:.9rem;margin:0}.field label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}.field input{width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1rem;border-radius:10px;border:none;font-weight:600;min-height:44px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-block{width:100%}.error{color:var(--danger);font-size:.9rem;margin:0}.coins-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-variant-numeric:tabular-nums}.ad-slot{min-height:120px;border:1px dashed var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem;text-align:center;padding:.75rem}
