:root{color:#f8f1dc;background:#102f2a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--felt: #123b34;--felt-deep: #0d2524;--ink: #16211f;--paper: #fffaf0;--paper-soft: #f8f1dc;--gold: #d7ae58;--red: #c7433c;--blue: #4f8a9b;--club: #168657;--diamond: #d26a35;--heart: #c7433c;--spade: #26354b;--line: rgba(248, 241, 220, .18);--shadow: 0 22px 60px rgba(5, 13, 14, .35);--card-w: 96px;--card-h: 140px;--op-card-w: 44px;--op-card-h: 64px}*{box-sizing:border-box}html,body,#root{min-height:100%}html{scrollbar-width:none}body{margin:0;min-width:320px;min-height:100vh;-ms-overflow-style:none;background:radial-gradient(circle at 26% 18%,rgba(30,132,97,.18),transparent 28%),radial-gradient(circle at 74% 82%,rgba(215,174,88,.14),transparent 30%),linear-gradient(135deg,rgba(79,138,155,.12),transparent 38%),var(--felt-deep)}body::-webkit-scrollbar{display:none;width:0;height:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.wide-result,.event-list,.journal-feed,.chat-messages,.score-cards,.hand-scroll{scrollbar-width:none;-ms-overflow-style:none}.wide-result::-webkit-scrollbar,.event-list::-webkit-scrollbar,.journal-feed::-webkit-scrollbar,.chat-messages::-webkit-scrollbar,.score-cards::-webkit-scrollbar,.hand-scroll::-webkit-scrollbar{display:none;width:0;height:0}.app-shell{width:min(100%,1540px);min-height:100vh;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) clamp(12px,2.4vw,28px) max(18px,env(safe-area-inset-bottom));animation:appFadeIn .36s ease-out both}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:12px 18px;border:1px solid rgba(248,241,220,.16);border-radius:12px;background:linear-gradient(90deg,#ffffff0e,#ffffff05),#07181685;box-shadow:0 16px 42px #050d0e42;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;flex-wrap:wrap}.topbar-stats{display:flex;align-items:stretch;gap:8px;min-width:0;flex-wrap:wrap}.topbar-stats span{display:grid;gap:2px;min-height:48px;padding:7px 12px;border:1px solid rgba(248,241,220,.14);border-radius:10px;color:#f8f1dcad;background:#ffffff0e;font-size:12px;line-height:1.15}.topbar-stats strong{color:var(--paper);font-size:19px;line-height:1}.leave-top-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 14px;border-radius:10px;color:#ffd9d0;background:#c7433c1f;border:1px solid rgba(199,67,60,.45);font-weight:800}.topbar h1{margin:2px 0 0;font-size:clamp(30px,4.2vw,48px);line-height:1;letter-spacing:0}.eyebrow,.muted{margin:0;color:#f8f1dcb8;font-size:13px}.connection-badge,.icon-button,.primary-button,.secondary-button,.segmented button,.card-button{min-height:44px;border:0;cursor:pointer}.connection-badge{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:116px;padding:10px 12px;border-radius:999px;color:var(--paper-soft);background:#ffffff14;border:1px solid var(--line);white-space:nowrap}.connection-badge small{padding-left:4px;color:inherit;opacity:.72;font-size:12px}.connection-badge.open{color:#0f2b25;background:var(--gold)}.connection-badge.closed{color:var(--paper);background:#c7433c40}.notice{margin-bottom:14px;padding:12px 14px;border-radius:8px;background:#c7433c38;border:1px solid rgba(199,67,60,.45)}.home-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.table-preview{position:relative;min-height:220px;border-radius:8px;background:radial-gradient(ellipse at center,rgba(215,174,88,.18),transparent 46%),linear-gradient(90deg,rgba(255,250,240,.08) 1px,transparent 1px),linear-gradient(rgba(255,250,240,.07) 1px,transparent 1px),var(--felt);background-size:auto,34px 34px,34px 34px,auto;overflow:hidden;box-shadow:var(--shadow)}.table-preview:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid rgba(215,174,88,.26);border-radius:8px;pointer-events:none}.preview-card{position:absolute;width:128px;height:176px;animation:previewFloat 5.2s ease-in-out infinite;transform-origin:center 90%}.preview-card .card-face{width:100%;height:100%;border-radius:9px}.preview-deck{position:absolute;right:24px;bottom:24px;width:84px;height:116px}.preview-deck .card-back{position:absolute;top:0;right:0;bottom:0;left:0}.preview-deck .card-back:first-child{transform:translate(-8px,-8px) rotate(-5deg)}.preview-table-chip{position:absolute;left:18px;bottom:18px;display:inline-flex;align-items:center;min-height:38px;padding:8px;border-radius:999px;color:var(--paper);background:#0818169e;border:1px solid rgba(215,174,88,.28)}.preview-table-chip .suit-icon{width:26px;height:26px;padding:3px;border-radius:999px;background:#fffaf0e6}.preview-card-one{left:14%;top:34px;transform:rotate(-13deg);animation-delay:.12s}.preview-card-two{left:calc(50% - 64px);top:20px;transform:rotate(3deg);animation-delay:.36s}.preview-card-three{right:14%;top:42px;transform:rotate(14deg);animation-delay:.62s}.panel,.hand-panel{border-radius:8px;border:1px solid var(--line);background:#102f2ac7;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.panel{padding:16px}.boot-error{display:grid;gap:12px;width:min(100%,420px);margin:20vh auto 0;text-align:center}.boot-error strong{font-size:24px}.boot-error span{color:#f8f1dcbd;line-height:1.45}.field{display:grid;gap:8px;width:100%}.field span{color:#f8f1dcc2;font-size:13px}.field input{width:100%;height:50px;border:1px solid var(--line);border-radius:8px;padding:0 14px;color:var(--paper);background:#ffffff14;outline:none}.field input:focus{border-color:var(--gold)}.compact-field input{height:44px}.auth-panel{display:grid;gap:10px;padding:12px;border:1px solid rgba(248,241,220,.14);border-radius:8px;background:#ffffff0e}.auth-heading,.account-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.auth-heading>div:first-child,.account-heading>div:first-child{display:flex;align-items:center;gap:9px;min-width:0}.auth-heading strong,.account-heading strong{color:var(--paper)}.account-heading span,.auth-error{color:#f8f1dcad;font-size:12px}.account-heading strong{display:block;overflow-wrap:anywhere}.account-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:var(--ink);background:var(--gold)}.auth-segmented{width:min(100%,230px);grid-template-columns:repeat(2,minmax(0,1fr))}.auth-segmented button{min-height:34px;padding:0 9px;font-size:12px}.auth-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(104px,auto);gap:10px;align-items:end}.auth-form .secondary-button{min-height:44px}.account-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.account-stats span{display:grid;gap:2px;min-width:0;padding:8px;border:1px solid rgba(248,241,220,.12);border-radius:8px;color:#f8f1dcad;background:#0718163d;font-size:11px;text-align:center}.account-stats strong{color:var(--gold);font-size:16px;line-height:1}.auth-error{color:#ffd9d0}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 12px;border:1px solid var(--line);border-radius:8px;color:var(--paper);background:#ffffff12}.toggle-row input{width:20px;height:20px;accent-color:var(--gold)}.action-block{display:grid;gap:12px;margin-top:16px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#ffffff12}.segmented button{border-radius:6px;color:var(--paper);background:transparent}.segmented button.selected{color:var(--ink);background:var(--gold);font-weight:800}.timer-segmented button{font-size:14px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;border-radius:8px;font-weight:800}.primary-button{color:var(--ink);background:var(--gold);transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.secondary-button{color:var(--paper);background:#ffffff1a;border:1px solid var(--line);transition:transform .16s ease,background .16s ease,border-color .16s ease}.primary-button:not(:disabled):active,.secondary-button:not(:disabled):active,.icon-button:not(:disabled):active{transform:translateY(1px) scale(.99)}.primary-button:not(:disabled):hover{filter:brightness(1.06);box-shadow:0 10px 24px #d7ae582e}.secondary-button:not(:disabled):hover,.icon-button:not(:disabled):hover{background:#ffffff26;border-color:#f8f1dc47}button:disabled{cursor:not-allowed;opacity:.48}.lobby{display:grid;gap:16px}.lobby-layout{display:grid;gap:14px;align-items:start}.lobby-layout .chat-panel{height:min(420px,calc(100dvh - 150px));max-height:min(420px,calc(100dvh - 150px))}.room-settings-row{display:flex;flex-wrap:wrap;gap:8px}.room-settings-row span,.spectator-list small{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border-radius:999px;color:#f8f1dcc7;background:#ffffff12;border:1px solid rgba(248,241,220,.14);font-size:12px}.spectator-list{display:grid;gap:8px}.spectator-list>span{color:#f8f1dcb8;font-size:13px}.spectator-list>div{display:flex;flex-wrap:wrap;gap:6px}.room-browser{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading span{color:#f8f1dcbd;font-size:13px}.section-heading strong{color:var(--paper)}.room-list{display:grid;gap:8px}.room-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:66px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#ffffff12}.room-list-item strong,.room-list-item span,.room-flags small{display:block}.room-list-item span,.room-flags small{color:#f8f1dcad;font-size:12px}.room-flags{display:grid;justify-items:end;gap:4px}.room-flags span{display:inline-flex;min-height:24px;align-items:center;padding:2px 8px;border-radius:999px;color:#ffe1cf;background:#d26a352e;border:1px solid rgba(210,106,53,.34);font-size:12px}.room-flags .watch-flag{color:#d5ffe9;background:#1686572e;border-color:#16865761}.room-actions{display:grid;grid-column:1 / -1;grid-template-columns:1fr 1fr;gap:8px}.compact-button{min-height:42px}.room-code-row,.button-row,.hand-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.room-code{display:block;margin-top:2px;color:var(--paper);font-size:34px;letter-spacing:0}.icon-button{display:inline-grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border-radius:8px;color:var(--paper);background:#ffffff1a;border:1px solid var(--line)}.seats{display:grid;gap:10px}.seat{display:flex;align-items:center;gap:10px;min-height:54px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#ffffff12}.seat span{flex:1}.seat small{color:#f8f1dca3;font-size:12px}.ready-seat{border-color:#60d3946b;background:#60d3941a}.host-seat{border-color:#d7ae586b}.button-row .secondary-button,.button-row .primary-button{flex:1}.game-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"table" "hand" "journal";grid-template-rows:auto auto minmax(300px,420px);gap:14px}.play-area{position:relative;z-index:10;display:grid;gap:10px;grid-area:table;min-width:0}.opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px;pointer-events:none}.opponent{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(118px,auto);gap:3px 8px;align-items:center;min-height:86px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#ffffff14;pointer-events:auto;transition:border-color .18s ease,background .18s ease,transform .18s ease}.opponent.eliminated{opacity:.62}.opponent.active-opponent{border-color:#d7ae58ad;background:linear-gradient(90deg,rgba(215,174,88,.18),transparent),#ffffff1a;animation:activePlayerPulse 1.5s ease-in-out infinite}.opponent strong,.opponent span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent span:last-child{grid-column:2;color:#f8f1dcb8;font-size:13px}.opponent-hand-fan{grid-column:3;grid-row:1 / span 2;position:relative;width:132px;height:74px;justify-self:end}.opponent-back-card{position:absolute;left:50%;bottom:8px;z-index:var(--card-z);width:var(--op-card-w);height:var(--op-card-h);transform:translate(calc(-50% + var(--fan-x))) rotate(var(--fan-rotate));transform-origin:center bottom}.opponent-back-card .card-back{width:100%;height:100%;border-radius:5px}.empty-opponent-hand{width:52px}.opponent-hand-fan small{position:absolute;right:0;bottom:0;display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;color:var(--ink);background:var(--gold);font-size:12px;font-weight:900}.online-dot,.offline-dot{width:9px;height:9px;border-radius:50%}.online-dot{background:#60d394}.offline-dot{background:#c7433c}.table{position:relative;z-index:1;display:grid;grid-template-rows:auto 1fr;min-height:300px;border-radius:16px;border:1px solid rgba(215,174,88,.36);background:radial-gradient(ellipse at center,rgba(215,174,88,.18),transparent 56%),linear-gradient(135deg,rgba(255,250,240,.025) 25%,transparent 25%,transparent 50%,rgba(255,250,240,.025) 50%,rgba(255,250,240,.025) 75%,transparent 75%,transparent),linear-gradient(90deg,rgba(255,250,240,.06) 1px,transparent 1px),linear-gradient(rgba(255,250,240,.05) 1px,transparent 1px),var(--felt);background-size:auto,58px 58px,36px 36px,36px 36px,auto;box-shadow:inset 0 0 0 8px #ffffff07,inset 0 0 80px #050d0e38,var(--shadow);overflow:hidden}.table:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid rgba(215,174,88,.22);border-radius:12px;pointer-events:none}.table-status{position:relative;z-index:1;display:grid;gap:8px;padding:14px;border-bottom:1px solid var(--line);background:#08181670}.table-meta-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.table-status span,.table-status small{color:#f8f1dcbd}.table-status strong{font-size:18px}.penalty-chip,.timer-chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;border-radius:999px;color:#f8f1dcd1;background:#08181675;border:1px solid rgba(248,241,220,.16)}.penalty-chip{color:#fff0ea;background:#c7433c3d;border-color:#c7433c6b;font-weight:900;animation:penaltyPulse 1s ease-in-out infinite}.timer-chip{--timer-progress: 1;position:relative;color:var(--paper);overflow:hidden;font-weight:900}.timer-chip:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(215,174,88,.28),transparent);transform:scaleX(var(--timer-progress));transform-origin:left;transition:transform .24s linear}.timer-chip{isolation:isolate}.timer-chip>*{position:relative}.suit-icon{display:inline-block;width:1em;height:1em;object-fit:contain;vertical-align:-.12em;pointer-events:none;-webkit-user-select:none;user-select:none}.inline-suit-icon{width:1.05em;height:1.05em;margin:0 .05em}.card-text{display:inline-flex;align-items:center;gap:4px;min-width:0}.card-text .suit-icon{width:1.15em;height:1.15em}.inline-suit-icon,.card-text .suit-icon,.suit-badge>.suit-icon,.table-suit-callout .suit-icon,.suit-choice .suit-icon{box-sizing:border-box;padding:2px;border-radius:999px;background:#fffaf0e6}.suit-choice .suit-icon{padding:6px}.card-face .suit-icon{padding:0;border-radius:0;background:transparent}.rank-text{display:inline-block;font-family:Inter,Arial Black,Segoe UI,system-ui,sans-serif;font-weight:950;letter-spacing:0;line-height:.95}.rank-suit-hearts,.rank-suit-diamonds{color:var(--red)}.rank-suit-clubs,.rank-suit-spades{color:var(--ink)}.suit-badge{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 9px;border-radius:8px;color:var(--paper);background:#ffffff1a;border:1px solid rgba(248,241,220,.2);animation:suitGlow 1.3s ease-out both}.suit-badge small{color:#f8f1dcad;font-size:11px}.suit-badge>.suit-icon{width:22px;height:22px;flex:0 0 auto}.red-suit-badge{color:#ffd9d0;border-color:#c7433c5c;background:#c7433c2e}.suit-badge-clubs{color:#d5ffe9;border-color:#1686576b;background:#1686572e}.suit-badge-diamonds{color:#ffe1cf;border-color:#d26a3570;background:#d26a352e}.suit-badge-hearts{color:#ffd9d0}.suit-badge-spades{color:#dfe9ff;border-color:#4f8a9b6b;background:#4f8a9b2e}.trick-zone{position:relative;z-index:1;display:grid;place-items:center;align-items:center;justify-content:center;gap:14px;min-height:260px;padding:32px;overflow:visible}.table-center-row{display:flex;align-items:center;justify-content:center;gap:clamp(24px,4vw,56px);width:min(100%,660px);min-height:calc(var(--card-h) + 86px);overflow:visible}.stack-focus,.result-panel{display:grid;justify-items:center;gap:12px;width:min(320px,88vw)}.table-suit-callout strong{display:inline-flex;align-items:center;justify-content:center;gap:7px}.table-suit-callout .suit-icon{width:26px;height:26px}.result-panel{padding:18px;border-radius:8px;border:1px solid rgba(215,174,88,.38);background:#08181694}.wide-result{width:min(100%,720px);max-height:min(62vh,620px);overflow:auto;overscroll-behavior:contain}.result-panel strong{text-align:center;font-size:18px}.round-result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:radial-gradient(circle at center,rgba(215,174,88,.12),transparent 54%),#030a0ac2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.round-result-window{display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;justify-items:stretch;width:min(1120px,calc(100vw - 32px));height:min(760px,calc(100dvh - 32px));max-height:none;gap:14px;padding:clamp(14px,2vw,22px);overflow:hidden}.round-result-heading{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;text-align:left}.round-result-heading>div{display:grid;gap:3px;min-width:0}.round-result-heading span{color:#f8f1dca8;font-size:13px;font-weight:800}.round-result-heading strong{overflow:hidden;font-size:clamp(22px,3vw,32px);line-height:1.04;text-align:left;text-overflow:ellipsis;white-space:nowrap}.round-result-window .score-summary{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-content:start;min-height:0;overflow:hidden}.round-result-window .score-player{align-content:start;gap:8px;min-height:0;padding:10px}.round-result-window .score-cards{flex-wrap:wrap;max-height:106px;overflow:hidden}.round-result-window .score-lines{gap:4px;overflow:hidden}.round-result-window .score-line{gap:3px 8px;font-size:12px}.round-result-window .score-line small{display:-webkit-box;overflow:hidden;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.empty-trick{display:grid;place-items:center;width:min(240px,72vw);min-height:120px;border-radius:8px;color:#f8f1dc9e;border:1px dashed rgba(248,241,220,.3)}.journal-chat-panel{position:relative;z-index:4;grid-area:journal;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:12px;min-height:0;padding:16px;border-radius:12px;border:1px solid rgba(248,241,220,.16);background:linear-gradient(180deg,#ffffff0d,#ffffff05),#071816a8;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden}.journal-feed{display:grid;align-content:start;gap:0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.journal-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:11px 2px;border-bottom:1px solid rgba(248,241,220,.1)}.journal-row time{color:#f8f1dc8f;font-size:12px;line-height:1.35}.journal-row div{display:grid;gap:4px;min-width:0}.journal-row strong,.journal-row div>span{color:#f8f1dc9e;font-size:12px;font-weight:700}.journal-row p{margin:0;color:#f8f1dce6;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.journal-chat-row{margin:7px 0;padding:10px;border:1px solid rgba(248,241,220,.11);border-radius:8px;background:#ffffff0e}.journal-chat-row strong{color:var(--paper);font-size:13px}.journal-spectator-row{border-color:#4f8a9b38;background:#4f8a9b1a}.journal-form{padding-top:2px}.event-log{display:grid;align-content:start;gap:10px;min-height:120px;padding:12px;border-radius:8px;border:1px solid var(--line);background:#08181680;box-shadow:var(--shadow)}.event-list{display:grid;gap:8px;max-height:220px;overflow:auto;padding-right:0;overscroll-behavior:contain}.event-item{display:grid;gap:3px;padding:8px;border-radius:8px;background:#ffffff0f;transition:background .18s ease,border-color .18s ease}.event-item time{color:#d7ae58c7;font-size:11px}.event-item span{color:#f8f1dcdb;font-size:13px;overflow-wrap:anywhere}.chat-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px;min-height:260px;padding:12px;border-radius:8px;border:1px solid var(--line);background:#0818168f;box-shadow:var(--shadow);min-width:0;overflow:hidden}.game-layout>.chat-panel{grid-row:4;max-height:min(360px,52dvh)}.chat-messages{display:flex;flex-direction:column;gap:8px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;min-height:0}.chat-message{display:grid;gap:5px;padding:9px;border-radius:8px;background:#ffffff0f;border:1px solid rgba(248,241,220,.08);transition:background .18s ease,border-color .18s ease}.chat-message>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.chat-message strong,.chat-message span{min-width:0;overflow-wrap:anywhere}.chat-message strong{color:var(--paper);font-size:13px}.chat-message time{flex:0 0 auto;color:#d7ae58c2;font-size:11px}.chat-message span{color:#f8f1dcd6;font-size:13px;line-height:1.35}.spectator-message{border-color:#4f8a9b38;background:#4f8a9b1a}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.chat-input-wrap{display:flex;align-items:center;gap:8px;min-width:0;min-height:46px;padding:0 11px;border-radius:8px;border:1px solid var(--line);background:#ffffff14;color:#f8f1dc9e}.chat-input-wrap input{min-width:0;width:100%;height:42px;border:0;outline:0;color:var(--paper);background:transparent}.chat-cooldown{color:#f8f1dc94;font-size:12px}.score-summary{display:grid;gap:10px;width:100%}.score-player{display:grid;gap:10px;padding:12px;border-radius:8px;border:1px solid rgba(248,241,220,.16);background:#ffffff0f;min-width:0;overflow:hidden}.score-winner{border-color:#d7ae5861;background:#d7ae581a}.score-player-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.score-player-head>div{min-width:0}.score-player-head strong{overflow-wrap:anywhere}.score-player-head span{display:block;margin-top:2px;color:#f8f1dca8;font-size:12px}.score-cards{display:flex;gap:6px;overflow-x:auto;padding:2px 0 4px;min-width:0;overscroll-behavior-x:contain}.score-lines{display:grid;gap:6px}.score-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;color:#f8f1dcdb;font-size:13px;min-width:0}.score-card-line{grid-template-columns:auto minmax(0,1fr)}.score-line small{grid-column:1 / -1;color:#f8f1dc94;overflow-wrap:anywhere}.score-line span,.score-line strong{min-width:0;overflow-wrap:anywhere}.total-line{padding-top:6px;border-top:1px solid rgba(248,241,220,.14);font-weight:900}.score-notes{display:flex;flex-wrap:wrap;gap:6px}.score-notes span{padding:4px 8px;border-radius:999px;color:#f8f1dcc7;background:#ffffff12;font-size:11px}.next-round-box{display:grid;gap:8px;width:100%}.next-round-box>span{color:#f8f1dcb8;text-align:center;font-size:13px}.played-card{display:grid;width:var(--card-w);height:var(--card-h);justify-items:center;gap:8px;max-width:none}.played-stack-wrap{display:grid;justify-items:center;gap:10px}.played-stack{position:relative;width:calc(var(--card-w) + 88px);height:calc(var(--card-h) + 60px);overflow:visible}.stack-card{position:absolute;left:50%;top:0;width:var(--card-w);height:var(--card-h);max-width:none;transform:translate3d(calc(-50% + var(--stack-x)),var(--stack-y),0) rotate(var(--stack-rotate));transition:transform .26s ease,filter .26s ease}.stack-card:not(.top-play){filter:saturate(.78) brightness(.84)}.stack-card.settling-hidden{opacity:0}.top-play{z-index:2}.played-stack-wrap>span{max-width:100%;overflow:hidden;color:#f8f1dcc2;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.table-suit-callout{display:grid;justify-items:center;gap:2px;min-width:122px;padding:9px 12px;border-radius:8px;border:1px solid rgba(215,174,88,.32);background:#0818167a;transition:background .18s ease,border-color .18s ease}.table-deck-visual{position:relative;z-index:2;display:grid;justify-items:center;gap:6px;width:var(--card-w);flex:0 0 var(--card-w);pointer-events:none}.table-deck-anchor{position:relative;width:1px;height:1px;opacity:0;pointer-events:none}.table-deck-card{display:grid;place-items:center;width:var(--card-w);height:var(--card-h);overflow:visible}.table-deck-visual img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(0,0,0,.34));-webkit-user-select:none;user-select:none}.table-deck-visual strong{display:grid;place-items:center;min-width:34px;height:26px;padding:0 8px;border-radius:999px;color:var(--ink);background:var(--gold);font-size:15px;line-height:1}.table-suit-callout span{color:#f8f1dcb8;font-size:12px}.table-suit-callout strong{color:var(--paper);font-size:18px}.hand-panel{position:relative;z-index:30;display:grid;grid-area:hand;gap:12px;padding:12px;overflow:visible}.turn-actions{position:relative;z-index:8;display:grid;grid-template-columns:1fr 1fr;gap:8px}.action-pending{opacity:.86;transition:opacity .18s ease}.hand-header strong{display:block;font-size:18px}.hand-header{position:relative;z-index:8}.spectator-panel{display:flex;align-items:center;gap:10px;min-height:74px;padding:12px;border-radius:8px;color:#f8f1dcd1;background:#4f8a9b1f;border:1px solid rgba(79,138,155,.28)}.spectator-panel span{overflow-wrap:anywhere}.hand-scroll{display:block;width:100%;min-width:0;min-height:280px;overflow-x:auto;overflow-y:visible;padding:142px 18px 30px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}.hand-fan{position:relative;width:var(--fan-width, var(--card-w));min-width:var(--fan-width, var(--card-w));height:184px;margin:0 auto;overflow:visible}.hand-card-slot{position:absolute;left:50%;bottom:18px;z-index:var(--card-z);width:var(--card-w);height:var(--card-h);overflow:visible;animation:handCardIn .22s ease-out both;transform:translate(calc(-50% + var(--fan-x))) translateY(var(--fan-y)) rotate(var(--fan-rotate));transform-origin:center bottom;transition:transform .18s ease,opacity .18s ease,filter .18s ease}.hand-card-slot:hover,.hand-card-slot:focus-within,.hand-card-slot.touch-tooltip-visible{z-index:90;transform:translate(calc(-50% + var(--fan-x))) translateY(calc(var(--fan-y) - 24px)) rotate(0) scale(1.08)}.hand-card-hidden{opacity:0;pointer-events:none}.card-tooltip{position:absolute;left:50%;bottom:calc(100% + 24px);z-index:120;display:grid;gap:9px;width:min(345px,calc(100vw - 28px));padding:18px 21px;border-radius:12px;border:1px solid rgba(215,174,88,.46);color:#f8f1dce6;background:linear-gradient(180deg,#0e2a24f5,#061412f5),#061412f5;box-shadow:0 22px 48px #00000061,0 0 0 1px #ffffff0a;opacity:0;pointer-events:none;transform:translate(-50%,10px) scale(.98);transition:opacity .16s ease,transform .16s ease}.card-tooltip:after{content:"";position:absolute;left:50%;bottom:-10px;width:18px;height:18px;border-right:1px solid rgba(215,174,88,.46);border-bottom:1px solid rgba(215,174,88,.46);background:#061412f5;transform:translate(-50%) rotate(45deg)}.hand-card-slot:hover .card-tooltip,.hand-card-slot:focus-within .card-tooltip,.hand-card-slot.touch-tooltip-visible .card-tooltip{opacity:1;transform:translate(-50%) scale(1)}.card-tooltip strong{color:var(--paper);font-size:22px;line-height:1.08}.card-tooltip>span{color:#67d79b;font-size:15px;font-weight:900}.card-tooltip p,.card-tooltip small,.card-tooltip em{margin:0;line-height:1.42}.card-tooltip p{font-size:16px}.card-tooltip small{padding-top:8px;border-top:1px solid rgba(248,241,220,.14);color:#f8f1dcd1;font-size:14px}.card-tooltip em{color:#d7ae58e6;font-size:14px;font-style:normal}.playable-tooltip em{color:#83e4ad}.card-tooltip-layer{position:fixed;z-index:240;max-width:calc(100vw - 24px);pointer-events:none;transform:translate(-50%,-100%)}.card-tooltip-layer .card-tooltip{position:relative;left:auto;bottom:auto;width:100%;max-height:min(360px,calc(100dvh - 24px));overflow:auto;opacity:1;transform:none}.card-button{width:100%;height:100%;min-height:0;padding:0;border-radius:8px;background:transparent;scroll-snap-align:start;transition:transform .17s ease,filter .17s ease,opacity .17s ease}.card-button:disabled{opacity:.78;pointer-events:none}.card-button:not(:disabled):hover,.card-button:not(:disabled):focus-visible{transform:none}.card-button:not(:disabled):active{transform:scale(.985)}.card-button.playable-card:not(:disabled) .card-face{animation:playablePulse 1.5s ease-in-out infinite}.card-button.playable-card:not(:disabled) .card-face{outline:2px solid rgba(215,174,88,.86);outline-offset:2px}.card-button.blocked-card:disabled{opacity:1}.card-button.blocked-card .card-face{color:#4a534f;background:linear-gradient(145deg,#c4cac4eb,#7a847ef5),#9ea8a1;box-shadow:0 6px 12px #00000024}.card-button.blocked-card .card-rank,.card-button.blocked-card .card-center-suit,.card-button.blocked-card .card-corner-suit{opacity:.56}.card-button.blocked-card{opacity:.58}.card-face{--suit-color: var(--ink);--rank-color: var(--ink);position:relative;display:block;width:var(--card-w);height:var(--card-h);padding:0;border-radius:8px;overflow:hidden;color:var(--ink);background:linear-gradient(145deg,#fffffff5,#f8f1dcfa),var(--paper);box-shadow:0 12px 24px #00000042,inset 0 0 0 1px #16211f14;font-weight:900;transition:transform .17s ease,box-shadow .17s ease}.suit-clubs{--suit-color: var(--club);--rank-color: var(--ink)}.suit-diamonds{--suit-color: var(--diamond);--rank-color: var(--red)}.suit-hearts{--suit-color: var(--heart);--rank-color: var(--red)}.suit-spades{--suit-color: var(--spade);--rank-color: var(--ink)}.card-corner{position:absolute;display:grid;gap:2px;color:var(--suit-color);line-height:1}.card-corner-top{top:10px;left:10px;justify-items:start}.card-corner-bottom{right:10px;bottom:10px;justify-items:end;transform:rotate(180deg)}.card-rank{display:grid;place-items:start;min-width:0;min-height:0;color:var(--rank-color)}.card-rank .rank-text{display:block;font-size:26px;line-height:.94}.card-center-suit{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:50px;height:50px;opacity:1;transform:translate(-50%,-50%)}.card-center-suit .suit-icon{width:100%;height:100%}.card-corner-suit{display:grid;place-items:center;width:20px;height:20px}.card-corner-suit .suit-icon{width:100%;height:100%}.card-face.compact{width:62px;height:72px;border-radius:7px}.card-face.compact .card-corner-top{top:7px;left:7px}.card-face.compact .card-rank .rank-text{font-size:16px}.card-face.compact .card-center-suit{width:28px;height:28px;opacity:1}.card-face.compact .card-corner-suit{width:13px;height:13px}.card-face.compact .card-corner-bottom{display:none}.table-card-face{box-shadow:0 16px 32px #0000004d,0 0 0 1px #16211f14}.table-card-face .card-center-suit{width:52px;height:52px;opacity:1}.table-card-face .card-rank .rank-text{font-size:26px}.red-suit,.black-suit{color:var(--suit-color)}.card-back{display:grid;place-items:center;width:var(--card-w);height:var(--card-h);border-radius:8px;background:transparent;box-shadow:0 12px 22px #00000047;overflow:hidden}.card-back img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.card-back.mini{width:26px;height:34px;border-radius:5px;box-shadow:0 6px 12px #0000003d}.flying-card{position:fixed;z-index:80;aspect-ratio:54 / 77;pointer-events:none;will-change:transform;animation:flyCardToTable var(--flight-ms, .52s) cubic-bezier(.16,.86,.2,1) both;transform-origin:center}.flying-card .card-face,.flying-card .card-back{width:100%;height:100%}.flying-card .card-rank .rank-text{font-size:clamp(17px,calc(var(--card-w) * .24),26px)}.flying-card .card-center-suit,.flying-card .table-card-face .card-center-suit{width:clamp(24px,calc(var(--card-w) * .44),52px);height:clamp(24px,calc(var(--card-w) * .44),52px)}.flying-card .card-corner-suit{width:clamp(12px,calc(var(--card-w) * .18),20px);height:clamp(12px,calc(var(--card-w) * .18),20px)}.reconnect-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:grid;place-items:center;padding:18px;background:#030a0a47;pointer-events:none}.reconnect-overlay>div{display:grid;justify-items:center;gap:8px;width:min(100%,360px);padding:18px;border-radius:8px;color:var(--paper);background:#081816e0;border:1px solid rgba(215,174,88,.42);box-shadow:var(--shadow);pointer-events:auto;animation:tableContentIn .22s ease-out both}.reconnect-overlay strong{text-align:center;font-size:20px}.reconnect-overlay span{color:#f8f1dcb8}.reconnect-overlay b{display:grid;place-items:center;min-width:68px;height:42px;border-radius:999px;color:var(--ink);background:var(--gold);font-size:20px}.suit-wait-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:78;display:grid;place-items:center;padding:18px;background:#030a0aa3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none}.suit-wait-overlay>div{display:grid;justify-items:center;gap:10px;width:min(100%,430px);padding:clamp(20px,5vw,34px);border-radius:8px;color:var(--paper);background:#081816f0;border:1px solid rgba(215,174,88,.48);box-shadow:var(--shadow);pointer-events:auto}.suit-wait-overlay strong{text-align:center;font-size:clamp(22px,5vw,32px);line-height:1.1}.suit-wait-overlay span:last-child{color:#f8f1dcb8;text-align:center}.queen-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:999px;color:var(--ink);background:var(--gold);font-size:30px;font-weight:900}@keyframes appFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tableContentIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardToTable{0%{opacity:0;transform:translateY(26px) rotate(-5deg) scale(.94)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes actionBreath{0%,to{opacity:1;transform:scale(1)}50%{opacity:.74;transform:scale(.995)}}@keyframes previewFloat{0%,to{translate:0 0}50%{translate:0 -8px}}@keyframes handCardIn{0%{opacity:0;transform:translate(calc(-50% + var(--fan-x))) translateY(calc(var(--fan-y) + 18px)) rotate(var(--fan-rotate))}to{opacity:1;transform:translate(calc(-50% + var(--fan-x))) translateY(var(--fan-y)) rotate(var(--fan-rotate))}}@keyframes playablePulse{0%,to{box-shadow:0 12px 24px #00000042}50%{box-shadow:0 12px 24px #00000042,0 0 0 3px #d7ae5847}}@keyframes flyCardToTable{0%{opacity:1;transform:translateZ(0) rotate(0) scale(1)}78%{opacity:1;transform:translate3d(var(--fly-dx),var(--fly-dy),0) rotate(-4deg) scale(.94)}to{opacity:1;transform:translate3d(var(--fly-dx),var(--fly-dy),0) rotate(0) scale(1)}}@keyframes suitGlow{0%{box-shadow:0 0 #d7ae5852}to{box-shadow:0 0 0 8px #d7ae5800}}@keyframes activePlayerPulse{0%,to{box-shadow:0 0 #d7ae5800}50%{box-shadow:0 0 0 3px #d7ae5829}}@keyframes penaltyPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));background:#030a0ab8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.suit-dialog{display:grid;gap:clamp(16px,4vw,24px);width:min(100%,560px);padding:clamp(20px,5vw,34px);border-radius:8px;border:1px solid rgba(215,174,88,.44);background:#102f2afa;box-shadow:var(--shadow)}.suit-dialog strong{display:block;margin-top:2px;font-size:clamp(28px,8vw,42px);line-height:1.05}.suit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.suit-choice{display:grid;justify-items:center;gap:8px;min-height:clamp(94px,20vw,124px);border:1px solid var(--line);border-radius:8px;color:var(--paper);background:#ffffff17;transition:transform .16s ease,background .16s ease,border-color .16s ease}.suit-choice:hover,.suit-choice:focus-visible{transform:translateY(-2px);border-color:#d7ae589e;background:#d7ae5829}.suit-choice .suit-icon{width:clamp(44px,9vw,58px);height:clamp(44px,9vw,58px)}@media (max-width: 560px){.topbar{align-items:flex-start;flex-direction:column}.auth-heading,.account-heading{align-items:stretch;flex-direction:column}.auth-segmented{width:100%}.auth-form{grid-template-columns:1fr}.account-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-actions{width:100%;justify-content:stretch}.topbar-stats,.topbar-stats span,.leave-top-button,.connection-badge{width:100%}.topbar-stats{display:grid;grid-template-columns:1fr}.table{min-height:280px}.trick-zone{min-height:230px;padding:18px 14px}.table-center-row{gap:14px;min-height:calc(var(--card-h) + 54px)}.turn-actions{grid-template-columns:1fr}.game-layout>.chat-panel{max-height:300px}.suit-dialog{width:min(100%,520px)}}@media (min-width: 900px){:root{--card-w: 108px;--card-h: 154px;--op-card-w: 48px;--op-card-h: 70px}.app-shell{padding:28px}.home-layout{grid-template-columns:minmax(360px,1.1fr) minmax(330px,.9fr);align-items:stretch}.table-preview{min-height:520px}.preview-card{width:174px;height:242px}.preview-card-one{left:17%;top:120px}.preview-card-two{left:calc(50% - 87px);top:96px}.preview-card-three{right:17%;top:132px}.panel{padding:22px}.game-layout{grid-template-columns:minmax(260px,330px) minmax(0,1fr);grid-template-areas:"journal table" "journal hand";grid-template-rows:auto auto;align-items:stretch}.opponents{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:block;margin:0;pointer-events:none}.play-area{grid-area:table;display:block;padding:92px 156px 0;min-height:610px}.opponent{position:absolute;width:min(280px,26vw);min-height:90px;pointer-events:auto}.opponent-seat-0{top:0;left:50%;transform:translate(-50%)}.opponent-seat-1{top:50%;left:0;transform:translateY(-50%)}.opponent-seat-2{top:50%;right:0;transform:translateY(-50%)}.hand-panel{grid-area:hand;grid-template-columns:minmax(170px,220px) minmax(0,1fr) minmax(240px,334px);grid-template-rows:auto minmax(210px,auto);align-items:start;padding:14px 18px}.hand-panel .hand-header{grid-column:1;grid-row:1;align-self:stretch;min-height:74px;padding:10px 12px;border:1px solid rgba(96,211,148,.34);border-radius:12px;background:#1686571f}.hand-panel .turn-actions{grid-column:3;grid-row:1;align-self:stretch;grid-template-columns:1fr}.hand-panel .hand-scroll{grid-column:1 / -1;grid-row:2;min-width:0;overflow-x:auto;overflow-y:visible;padding:90px 24px 30px}.hand-panel .spectator-panel{grid-column:2 / -1}.lobby-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.lobby-layout .chat-panel{grid-column:2;grid-row:1;height:min(640px,calc(100dvh - 180px));max-height:min(640px,calc(100dvh - 180px));min-height:320px;position:-webkit-sticky;position:sticky;top:16px}.event-list{max-height:520px}.journal-chat-panel{height:min(720px,calc(100dvh - 132px));position:-webkit-sticky;position:sticky;top:16px}.compact-button{grid-column:auto;width:auto;min-width:94px}.room-list-item{grid-template-columns:minmax(0,1fr) auto auto}.room-actions{grid-column:auto;grid-template-columns:auto auto}.hand-scroll{min-height:250px;padding-top:90px}.hand-fan{height:190px}.dialog-backdrop{place-items:center}}@media (min-width: 1320px){.game-layout{grid-template-columns:minmax(300px,340px) minmax(0,1fr);grid-template-rows:auto auto}.journal-chat-panel{height:min(760px,calc(100dvh - 132px))}.table{min-height:520px}.event-list{max-height:620px}.lobby-layout{grid-template-columns:minmax(0,1fr) 360px}}body:has(.room-shell){overflow:hidden}.room-shell{--card-w: clamp(54px, 15vw, 82px);--card-h: clamp(78px, 21.8vw, 120px);--op-card-w: clamp(22px, 6.6vw, 34px);--op-card-h: clamp(32px, 9.5vw, 50px);display:flex;flex-direction:column;width:min(100%,1540px);height:100dvh;min-height:0;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));overflow:hidden;animation:none}.room-shell .topbar{flex:0 0 auto;gap:8px;margin-bottom:6px;padding:7px 10px;border-radius:8px}.room-shell .topbar h1{margin:0;font-size:clamp(17px,4.2vw,28px);line-height:1.05}.room-shell .eyebrow{display:none}.room-shell .topbar-actions,.room-shell .topbar-stats{gap:6px}.room-shell .topbar-stats span{min-height:34px;padding:5px 8px;font-size:10px}.room-shell .topbar-stats strong{font-size:15px}.room-shell .leave-top-button,.room-shell .connection-badge{min-height:34px;padding:6px 9px;border-radius:8px;font-size:12px}.room-shell .notice{flex:0 0 auto;margin-bottom:6px;padding:7px 9px;border-radius:8px;font-size:12px}.room-shell .game-layout{flex:1 1 auto;display:grid;grid-template-columns:clamp(88px,24vw,150px) minmax(0,1fr);grid-template-areas:"journal table" "hand hand";grid-template-rows:minmax(0,1fr) clamp(178px,32dvh,252px);min-height:0;gap:clamp(5px,1.5vw,10px);overflow:hidden}.room-shell .journal-chat-panel{position:relative;top:auto;z-index:8;height:100%;min-height:0;padding:8px;border-radius:8px;gap:6px}.room-shell .journal-chat-panel .section-heading{gap:4px}.room-shell .section-heading span,.room-shell .section-heading strong{font-size:11px;line-height:1.1}.room-shell .journal-row{grid-template-columns:minmax(0,1fr);gap:2px;padding:6px 0}.room-shell .journal-row time{display:none}.room-shell .journal-row strong,.room-shell .journal-row div>span{font-size:10px}.room-shell .journal-row p{font-size:11px;line-height:1.24}.room-shell .journal-chat-row{margin:4px 0;padding:6px}.room-shell .journal-form{grid-template-columns:minmax(0,1fr) 32px;gap:4px}.room-shell .journal-form .chat-input-wrap{min-height:32px;padding:0 6px}.room-shell .journal-form .chat-input-wrap svg{display:none}.room-shell .journal-form input{height:30px;font-size:11px}.room-shell .journal-form .icon-button{width:32px;height:32px}.room-shell .chat-cooldown{font-size:10px}.room-shell .play-area{grid-area:table;position:relative;display:block;height:100%;min-height:0;padding:clamp(44px,11dvh,72px) clamp(50px,14vw,90px) 0}.room-shell .opponents{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:block;margin:0;pointer-events:none}.room-shell .opponent{position:absolute;grid-template-columns:7px minmax(0,1fr) minmax(38px,auto);width:clamp(92px,26vw,136px);min-height:42px;padding:5px 6px;gap:1px 5px;border-radius:8px;pointer-events:auto}.room-shell .opponent strong{font-size:11px;line-height:1.1}.room-shell .opponent span:last-child{font-size:10px;line-height:1.1}.room-shell .opponent-hand-fan{width:64px;height:34px}.room-shell .opponent-back-card{bottom:3px}.room-shell .opponent-hand-fan small{min-width:16px;height:16px;font-size:10px}.room-shell .online-dot,.room-shell .offline-dot{width:7px;height:7px}.room-shell .opponent-seat-0{top:0;left:50%;transform:translate(-50%)}.room-shell .opponent-seat-1{top:50%;left:0;transform:translateY(-50%)}.room-shell .opponent-seat-2{top:50%;right:0;transform:translateY(-50%)}.room-shell .table{height:100%;min-height:0;border-radius:12px}.room-shell .table:before{top:7px;right:7px;bottom:7px;left:7px;border-radius:9px}.room-shell .table-status{gap:4px;padding:7px 8px}.room-shell .table-status strong{font-size:clamp(12px,3.3vw,17px);line-height:1.1}.room-shell .table-status small{display:-webkit-box;overflow:hidden;font-size:10px;line-height:1.18;-webkit-box-orient:vertical;-webkit-line-clamp:2}.room-shell .penalty-chip,.room-shell .timer-chip{min-height:24px;padding:3px 7px;font-size:11px}.room-shell .trick-zone{min-height:0;height:100%;padding:6px}.room-shell .table-center-row{gap:clamp(8px,2.2vw,18px);width:100%;min-height:0}.room-shell .stack-focus{width:min(180px,100%);gap:6px}.room-shell .played-stack-wrap{gap:5px}.room-shell .played-stack{width:calc(var(--card-w) + 54px);height:calc(var(--card-h) + 34px)}.room-shell .played-stack-wrap>span,.room-shell .stack-focus>.muted{font-size:10px}.room-shell .table-suit-callout{min-width:0;padding:5px 7px}.room-shell .table-suit-callout span{font-size:10px}.room-shell .table-suit-callout .suit-icon{width:20px;height:20px}.room-shell .table-deck-visual{gap:4px}.room-shell .table-deck-visual strong{min-width:26px;height:20px;font-size:11px}.room-shell .empty-trick{width:min(150px,100%);min-height:70px;font-size:11px}.room-shell .hand-panel{z-index:20;grid-area:hand;grid-template-columns:minmax(94px,.78fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);align-items:stretch;height:100%;min-height:0;padding:6px;gap:6px}.room-shell .hand-header{grid-column:1;grid-row:1;min-width:0;min-height:38px}.room-shell .hand-header>div{min-width:0}.room-shell .hand-header .muted,.room-shell .hand-header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-shell .hand-header .muted{font-size:10px}.room-shell .hand-header strong{font-size:13px}.room-shell .hand-header .icon-button{width:34px;height:34px}.room-shell .turn-actions{z-index:2;grid-column:2;grid-row:1;grid-template-columns:1fr 1fr;gap:5px}.room-shell .turn-actions .secondary-button{min-height:38px;padding:0 7px;gap:4px;font-size:12px;line-height:1.08}.room-shell .turn-actions svg{width:16px;height:16px}.room-shell .hand-scroll{grid-column:1 / -1;grid-row:2;display:grid;align-items:end;min-height:0;height:100%;padding:4px 8px 12px;overflow-x:auto}.room-shell .hand-fan{height:calc(var(--card-h) + 34px)}.room-shell .hand-card-slot{bottom:6px}.room-shell .hand-card-slot:hover,.room-shell .hand-card-slot:focus-within,.room-shell .hand-card-slot.touch-tooltip-visible{transform:translate(calc(-50% + var(--fan-x))) translateY(calc(var(--fan-y) - 12px)) rotate(0) scale(1.05)}.room-shell .spectator-panel{grid-column:2;grid-row:1 / span 2;min-height:0;padding:8px;font-size:12px}.room-shell .wide-result{width:min(100%,560px);max-height:100%;padding:10px}.room-shell .score-summary,.room-shell .score-player,.room-shell .score-lines{gap:6px}.room-shell .score-player{padding:8px}.room-shell .round-result-window{width:min(1120px,calc(100vw - 32px));height:min(760px,calc(100dvh - 32px));max-height:none;padding:clamp(14px,2vw,22px);overflow:hidden}.room-shell .round-result-window .score-summary{gap:10px}.room-shell .round-result-window .score-player{padding:10px}@media (max-width: 899px){.room-shell .topbar{align-items:center;flex-direction:row}.room-shell .topbar-actions{width:auto;margin-left:auto;justify-content:flex-end}.room-shell .topbar-stats,.room-shell .leave-top-button{display:none}.room-shell .connection-badge{width:auto;min-width:0;white-space:nowrap}.room-shell .connection-badge small{display:none}.room-shell .stack-focus>.muted{display:none}}@media (max-width: 380px){.room-shell .game-layout{grid-template-columns:84px minmax(0,1fr);grid-template-rows:minmax(0,1fr) clamp(170px,31dvh,230px)}.room-shell .play-area{padding-right:44px;padding-left:44px}.room-shell .opponent{width:88px}.room-shell .opponent-hand-fan{display:none}.room-shell .hand-panel{grid-template-columns:minmax(82px,.64fr) minmax(0,1fr)}}@media (max-height: 620px){.room-shell{--card-w: clamp(50px, 12vw, 74px);--card-h: clamp(72px, 17.5vw, 108px)}.room-shell .topbar{padding-top:5px;padding-bottom:5px}.room-shell .game-layout{grid-template-rows:minmax(0,1fr) clamp(154px,30dvh,216px)}.room-shell .table-status small{-webkit-line-clamp:1}.room-shell .hand-scroll{padding-bottom:8px}}@media (min-width: 900px){.room-shell{--card-w: clamp(86px, 6.5vw, 108px);--card-h: clamp(124px, 9.4vw, 154px);--op-card-w: clamp(38px, 3vw, 48px);--op-card-h: clamp(55px, 4.35vw, 70px);padding:clamp(12px,1.6vw,24px)}.room-shell .game-layout{grid-template-columns:minmax(240px,320px) minmax(0,1fr);grid-template-areas:"journal table" "journal hand";grid-template-rows:minmax(0,1fr) clamp(224px,30dvh,318px)}.room-shell .play-area{min-height:0;padding:clamp(78px,10dvh,104px) clamp(124px,13vw,168px) 0}.room-shell .opponent{width:min(260px,25vw);min-height:82px;padding:9px;grid-template-columns:auto minmax(0,1fr) minmax(104px,auto);gap:3px 8px}.room-shell .opponent strong{font-size:15px}.room-shell .opponent span:last-child{font-size:12px}.room-shell .opponent-hand-fan{width:118px;height:66px}.room-shell .online-dot,.room-shell .offline-dot{width:9px;height:9px}.room-shell .hand-panel{grid-template-columns:minmax(168px,220px) minmax(0,1fr) minmax(220px,320px);grid-template-rows:auto minmax(0,1fr);padding:12px 16px;gap:10px}.room-shell .hand-panel .hand-header{grid-column:1;grid-row:1;min-height:68px;padding:9px 10px;border:1px solid rgba(96,211,148,.34);border-radius:8px;background:#1686571f}.room-shell .hand-header strong{font-size:17px}.room-shell .hand-header .muted{font-size:12px}.room-shell .hand-panel .turn-actions{grid-column:3;grid-row:1;grid-template-columns:1fr}.room-shell .turn-actions .secondary-button{min-height:42px;font-size:13px}.room-shell .hand-panel .hand-scroll{grid-column:1 / -1;grid-row:2;padding:8px 18px 18px}.room-shell .hand-fan{height:calc(var(--card-h) + 42px)}.room-shell .journal-chat-panel{height:100%;padding:12px;gap:10px}.room-shell .journal-row{grid-template-columns:38px minmax(0,1fr);gap:7px;padding:9px 0}.room-shell .journal-row time{display:block}.room-shell .journal-row p{font-size:13px;line-height:1.32}}@media (min-width: 1320px){.room-shell .game-layout{grid-template-columns:minmax(300px,340px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) clamp(238px,29dvh,330px)}}@media (max-width: 899px){.room-shell{--card-w: clamp(64px, 18vw, 82px);--card-h: clamp(92px, 25.4vw, 118px);--table-card-w: clamp(51px, 14.4vw, 66px);--table-card-h: clamp(74px, 20.3vw, 94px);--op-card-w: clamp(24px, 6.7vw, 34px);--op-card-h: clamp(36px, 9.8vw, 50px);padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.room-shell .topbar{min-height:48px;padding:7px 8px}.room-shell .topbar h1{max-width:48vw;overflow:hidden;font-size:clamp(20px,6vw,27px);text-overflow:ellipsis;white-space:nowrap}.room-shell .topbar-actions{display:grid;grid-template-columns:auto auto;gap:6px}.room-shell .topbar-stats{display:none}.room-shell .leave-top-button,.room-shell .connection-badge{display:inline-flex;width:auto;min-width:0;min-height:34px;padding:6px 9px;border-radius:8px;font-size:0}.room-shell .leave-top-button:after{content:"Выйти";font-size:12px}.room-shell .connection-badge span{font-size:12px}.room-shell .connection-badge svg,.room-shell .leave-top-button svg{width:17px;height:17px}.room-shell .game-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"journal" "table" "hand";grid-template-rows:clamp(143px,18dvh,162px) minmax(0,1fr) clamp(198px,31dvh,250px);gap:6px;overflow:hidden}.room-shell .journal-chat-panel{width:clamp(121px,34vw,143px);height:100%;justify-self:start;padding:7px;gap:5px}.room-shell .journal-chat-panel .section-heading span{font-size:0}.room-shell .journal-chat-panel .section-heading span:before{content:"Чат";font-size:12px}.room-shell .journal-chat-panel .section-heading strong{font-size:13px}.room-shell .journal-feed{-webkit-mask-image:none;mask-image:none}.room-shell .journal-row{padding:4px 0}.room-shell .journal-row strong,.room-shell .journal-row div>span{display:none}.room-shell .journal-row p{font-size:11px;line-height:1.22}.room-shell .journal-form{grid-template-columns:minmax(0,1fr) 26px;gap:4px}.room-shell .journal-form .chat-input-wrap{min-height:26px;padding:0 6px}.room-shell .journal-form input{height:24px;font-size:10px}.room-shell .journal-form input::placeholder{color:transparent}.room-shell .journal-form input{min-width:0}.room-shell .journal-form .icon-button{width:26px;height:26px;min-height:26px;padding:0}.room-shell .play-area{height:100%;padding:clamp(70px,9.2dvh,82px) 0 0}.room-shell .table{height:100%;min-height:0;border-radius:8px}.room-shell .table:before{top:8px;right:8px;bottom:8px;left:8px;border-radius:8px}.room-shell .opponent{background:#ffffff13;box-shadow:0 10px 24px #050d0e2e}.room-shell .opponent-seat-0{top:0;left:50%;width:clamp(116px,34vw,150px);min-height:48px;transform:translate(-50%)}.room-shell .opponent-seat-0 .opponent-hand-fan{display:block;width:72px;height:38px}.room-shell .opponent-seat-1,.room-shell .opponent-seat-2{top:calc(clamp(70px,9.2dvh,82px) + 44%);display:grid;grid-template-columns:1fr;justify-items:center;align-content:center;width:clamp(42px,12vw,54px);min-height:clamp(112px,30dvh,148px);padding:6px 4px;transform:translateY(-50%)}.room-shell .opponent-seat-1{left:0}.room-shell .opponent-seat-2{right:0}.room-shell .opponent-seat-1 .online-dot,.room-shell .opponent-seat-1 .offline-dot,.room-shell .opponent-seat-2 .online-dot,.room-shell .opponent-seat-2 .offline-dot{margin-bottom:4px}.room-shell .opponent-seat-1 strong,.room-shell .opponent-seat-1 span:last-child,.room-shell .opponent-seat-2 strong,.room-shell .opponent-seat-2 span:last-child{writing-mode:vertical-rl;-webkit-text-orientation:mixed;text-orientation:mixed;white-space:normal}.room-shell .opponent-seat-1 span:last-child,.room-shell .opponent-seat-2 span:last-child{display:none}.room-shell .opponent-seat-1 .opponent-hand-fan,.room-shell .opponent-seat-2 .opponent-hand-fan{display:none}.room-shell .table-status{min-height:78px;padding:12px 14px 8px}.room-shell .table-status strong{display:-webkit-box;overflow:hidden;font-size:clamp(16px,5vw,22px);line-height:1.08;-webkit-box-orient:vertical;-webkit-line-clamp:2}.room-shell .table-status small{font-size:12px;line-height:1.25}.room-shell .penalty-chip,.room-shell .timer-chip{min-height:30px;padding:5px 9px;font-size:13px}.room-shell .trick-zone{position:relative;height:100%;padding:0}.room-shell .table-center-row{position:relative;display:block;width:100%;height:100%}.room-shell .stack-focus{position:absolute;left:45%;top:56%;width:min(210px,62vw);transform:translate(-50%,-50%)}.room-shell .played-card,.room-shell .stack-card{--card-w: var(--table-card-w);--card-h: var(--table-card-h)}.room-shell .played-stack{width:calc(var(--table-card-w) + 54px);height:calc(var(--table-card-h) + 34px)}.room-shell .table-suit-callout{padding:7px 10px}.room-shell .table-suit-callout span{font-size:11px}.room-shell .table-suit-callout .suit-icon{width:26px;height:26px}.room-shell .table-deck-visual{position:absolute;left:calc(50% + clamp(84px,25vw,104px));right:auto;top:49%;width:clamp(46px,13vw,58px);transform:translate(-50%,-50%)}.room-shell .table-deck-card{width:clamp(46px,13vw,58px);height:clamp(66px,18vw,84px)}.room-shell .table-deck-visual strong{min-width:30px;height:24px;font-size:13px}.room-shell .empty-trick{position:absolute;left:50%;top:47%;min-height:84px;transform:translate(-50%,-50%)}.room-shell .hand-panel{grid-template-columns:minmax(112px,.78fr) minmax(0,1fr);grid-template-rows:48px minmax(0,1fr);padding:8px;gap:7px;border-radius:8px}.room-shell .hand-header{min-height:44px}.room-shell .hand-header .muted{font-size:12px}.room-shell .hand-header strong{font-size:17px;line-height:1.08}.room-shell .hand-header .icon-button{display:none}.room-shell .turn-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.room-shell .turn-actions .secondary-button{min-height:40px;padding:0 7px;font-size:13px;font-weight:900}.room-shell .hand-scroll{align-items:end;padding:8px 4px 12px}.room-shell .hand-fan{height:calc(var(--card-h) + 42px)}.room-shell .hand-card-slot{bottom:18px}.room-shell .card-corner-top{top:max(5px,calc(var(--card-w) * .1));left:max(5px,calc(var(--card-w) * .1))}.room-shell .card-corner-bottom{right:max(5px,calc(var(--card-w) * .1));bottom:max(5px,calc(var(--card-w) * .1))}.room-shell .card-rank .rank-text,.room-shell .table-card-face .card-rank .rank-text{font-size:clamp(17px,calc(var(--card-w) * .25),23px)}.room-shell .card-center-suit,.room-shell .table-card-face .card-center-suit{width:clamp(24px,calc(var(--card-w) * .44),38px);height:clamp(24px,calc(var(--card-w) * .44),38px)}.room-shell .card-corner-suit{width:clamp(12px,calc(var(--card-w) * .18),16px);height:clamp(12px,calc(var(--card-w) * .18),16px)}.room-shell .round-result-overlay{padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.room-shell .round-result-window{width:calc(100vw - 12px);height:calc(100dvh - 12px);gap:7px;padding:8px;border-radius:8px}.room-shell .round-result-heading{justify-content:start;gap:8px}.room-shell .round-result-heading svg{width:24px;height:24px}.room-shell .round-result-heading span{font-size:10px}.room-shell .round-result-heading strong{font-size:clamp(16px,5vw,21px)}.room-shell .round-result-window .score-summary{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px}.room-shell .round-result-window .score-player{gap:5px;padding:7px}.room-shell .round-result-window .score-player-head{grid-template-columns:minmax(0,1fr);gap:2px}.room-shell .round-result-window .score-player-head strong{font-size:12px;line-height:1.08}.room-shell .round-result-window .score-player-head span{font-size:9px}.room-shell .round-result-window .score-cards{gap:3px;max-height:50px;padding:0}.room-shell .round-result-window .card-face.compact{width:32px;height:42px;border-radius:5px}.room-shell .round-result-window .card-face.compact .card-corner-top{top:4px;left:4px}.room-shell .round-result-window .card-face.compact .card-rank .rank-text{font-size:11px}.room-shell .round-result-window .card-face.compact .card-center-suit{width:17px;height:17px}.room-shell .round-result-window .card-face.compact .card-corner-suit{width:8px;height:8px}.room-shell .round-result-window .score-lines{gap:3px}.room-shell .round-result-window .score-line{gap:2px 5px;font-size:10px;line-height:1.12}.room-shell .round-result-window .score-line small{font-size:9px;-webkit-line-clamp:1}.room-shell .round-result-window .score-notes{gap:3px}.room-shell .round-result-window .score-notes span{padding:2px 5px;font-size:9px}.room-shell .round-result-window .next-round-box{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.room-shell .round-result-window .next-round-box>span{text-align:left;font-size:11px}.room-shell .round-result-window .next-round-box .primary-button{min-height:38px;padding:8px 10px;font-size:12px}}
