.game-view.card-theme{--card-bg: #f4f0e8;--card-border: rgba(20, 24, 32, .18);--card-shadow: 0 2px 4px rgba(0, 0, 0, .35), 0 8px 20px rgba(0, 0, 0, .25);--card-shadow-hover: 0 6px 16px rgba(0, 0, 0, .45), 0 0 0 1px rgba(212, 168, 83, .35);--card-red: #c42b2b;--card-black: #1a1a1c;--back-primary: #2a3544;--back-secondary: #1e2630;--accent: #d4a853;--accent-soft: rgba(212, 168, 83, .2);--border: rgba(255, 255, 255, .12);--text-muted: rgba(232, 234, 237, .55);--warning: #e8a928;--warning-soft: rgba(232, 169, 40, .15);--bg-alt: rgba(0, 0, 0, .2)}.game-view .card{width:84px;height:120px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:1.0625rem;background:var(--card-bg);border:1px solid var(--card-border);box-shadow:var(--card-shadow);-webkit-user-select:none;user-select:none;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,border-color .2s ease,filter .2s ease;position:relative;overflow:hidden}.game-view .discard-pile .card{width:96px;height:136px;font-size:1.25rem;box-shadow:var(--card-shadow),0 0 32px #ffffff1a,0 0 64px #1535294d;position:relative;z-index:1}.game-view .discard-pile .card-rank{font-size:1.25rem}.game-view .discard-pile .card-suit{font-size:.9375rem}.game-view .discard-pile .card-suit-large{font-size:3.25rem}.game-view .discard-pile .card[data-card-id*=K-] .card-suit-large,.game-view .discard-pile .card[data-card-id*=Q-] .card-suit-large,.game-view .discard-pile .card[data-card-id*=J-] .card-suit-large,.game-view .discard-pile .card[data-card-id*=A-] .card-suit-large{font-size:3.75rem}.game-view .card:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid rgba(0,0,0,.03);border-radius:5px;pointer-events:none}.game-view .card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;gap:0;line-height:1;font-weight:700;pointer-events:none;z-index:2}.game-view .card-corner--top{top:5px;left:6px}.game-view .card-corner--bottom{bottom:5px;right:6px;transform:rotate(180deg)}.game-view .card-rank{font-size:1rem;font-weight:700;line-height:1}.game-view .card-suit{font-size:.75rem;line-height:1;margin-top:2px}.game-view .card-center{display:flex;align-items:center;justify-content:center;flex:1;width:100%;position:relative;z-index:1}.game-view .card-suit-large{font-size:2.375rem;line-height:1;opacity:1}.game-view .card[data-card-id*=K-] .card-suit-large,.game-view .card[data-card-id*=Q-] .card-suit-large,.game-view .card[data-card-id*=J-] .card-suit-large,.game-view .card[data-card-id*=A-] .card-suit-large{font-size:2.75rem}.game-view .card[data-card-id*="10-"] .card-rank{font-size:.75rem;letter-spacing:-.05em}.game-view .card.card--sm{width:48px;height:68px}.game-view .card.card--sm .card-corner--top{top:3px;left:4px}.game-view .card.card--sm .card-corner--bottom{bottom:3px;right:4px}.game-view .card.card--sm .card-rank{font-size:.625rem}.game-view .card.card--sm .card-suit{font-size:.5rem}.game-view .card.card--sm .card-suit-large{font-size:1.25rem}.game-view .card.card--sm:before{top:2px;right:2px;bottom:2px;left:2px}.game-view .card.card--sm[data-card-id*="10-"] .card-rank{font-size:.5625rem}.game-view .card.red .card-rank,.game-view .card.red .card-suit,.game-view .card.red .card-suit-large{color:var(--card-red)}.game-view .card.black .card-rank,.game-view .card.black .card-suit,.game-view .card.black .card-suit-large{color:var(--card-black)}.game-view .card--illegal{opacity:1;filter:grayscale(.35) brightness(.92)}.game-view .card--legal{cursor:pointer;outline:2px solid rgba(212,168,83,.55);outline-offset:4px;box-shadow:var(--card-shadow),0 0 0 1px #d4a85333}.game-view .card--selected{cursor:grab;outline:4px solid #4ade80;outline-offset:5px;filter:brightness(1.08) saturate(1.15);animation:hand-selected-pulse 1.8s ease-in-out infinite}@keyframes hand-selected-pulse{0%,to{outline-color:#4ade80;box-shadow:var(--card-shadow),0 0 20px #4ade8066}50%{outline-color:#6ee7b7;box-shadow:var(--card-shadow),0 0 36px #4ade80a6}}.game-view .card-hand-btn--dragging .card--selected{cursor:grabbing;animation:none;transform:none;box-shadow:0 16px 48px #00000073,0 0 40px #4ade8080;outline-color:#6ee7b7;filter:brightness(1.12) saturate(1.2)}.game-view .card-hand-btn:hover:not(:disabled):not(.card-hand-btn--dragging) .card--selected{transform:translateY(-12px);box-shadow:0 16px 48px #00000073,0 0 40px #4ade8080;outline-color:#6ee7b7;animation:none}.game-view .card.back{background:linear-gradient(135deg,var(--back-primary) 0%,var(--back-secondary) 100%);color:transparent;position:relative;overflow:hidden}.game-view .card.back:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid rgba(255,255,255,.1);border-radius:4px;pointer-events:none}.game-view .card.back:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(45deg,transparent 48%,rgba(255,255,255,.03) 50%,transparent 52%),linear-gradient(-45deg,transparent 48%,rgba(255,255,255,.03) 50%,transparent 52%);background-size:8px 8px;pointer-events:none}.game-view .card.back .card-corner,.game-view .card.back .card-center{display:none}.game-view .card.back>span{color:#ffffffd9;font-size:.75rem;font-weight:600;z-index:1;position:relative}.game-view .card.slot{background:var(--bg-alt);border-style:dashed;border-color:var(--border);color:transparent}.game-view .card.special-six.card--legal,.game-view .card.special-seven.card--legal{outline-color:#fbbf24a6}.game-view .card.special-six.card--selected,.game-view .card.special-seven.card--selected{outline-color:var(--warning)}.game-view .card.active-chain-six,.game-view .card.active-chain-seven{outline:3px solid var(--warning);outline-offset:4px;box-shadow:0 0 0 6px #fbbf2433,0 8px 32px #0006;animation:chain-pulse 1.5s ease-in-out infinite}@keyframes chain-pulse{0%,to{outline-color:var(--warning);box-shadow:0 0 0 6px #fbbf2433,0 8px 32px #0006}50%{outline-color:#fcd34d;box-shadow:0 0 0 8px #fbbf2459,0 8px 36px #fbbf2433}}.game-view .card.active-chain-seven{outline-color:var(--card-red);animation:chain-pulse-seven 1.5s ease-in-out infinite}@keyframes chain-pulse-seven{0%,to{outline-color:var(--card-red);box-shadow:0 0 0 6px #c42b2b33,0 8px 32px #0006}50%{outline-color:#ef4444;box-shadow:0 0 0 8px #ef444459,0 8px 36px #ef444433}}.game-view .chain-badge{position:absolute;top:-10px;right:-10px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1208;font-size:.875rem;font-weight:800;padding:4px 8px;border-radius:100px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #fbbf2480,inset 0 1px #ffffff4d;z-index:10;border:2px solid #fde68a}.game-view .chain-badge-seven{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 12px #ef444480,inset 0 1px #ffffff40;border-color:#fca5a5}.game-view .center-piles{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:32px;margin-top:8px;padding-top:12px}.game-view .deck-pile,.game-view .discard-pile{text-align:center;position:relative}.game-view .deck-pile{opacity:.75}.game-view .pile-label{font-size:.5625rem;color:#e8eaed66;margin-bottom:6px;font-weight:500;text-transform:uppercase;letter-spacing:.08em}.game-view .pile-label--row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.game-view .discard-slot-wrap{min-height:132px;display:flex;align-items:center;justify-content:center;perspective:1200px;overflow:visible}.game-view .discard-slot-wrap .discard-top.card:not(.slot){transform:rotate(var(--card-rotation, 0deg));transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease}.game-view .discard-slot-wrap .discard-top.card:not(.slot):hover{transform:rotate(0) translateY(-8px) scale(1.06);box-shadow:0 16px 40px #00000080,0 0 32px #ffffff26}.game-view .discard-slot-wrap--clickable{cursor:pointer;border-radius:12px;transition:box-shadow .18s ease,background .18s ease;padding:4px;margin:-4px}.game-view .discard-slot-wrap--clickable:hover{box-shadow:0 0 0 2px #d4a85373;background:#d4a8530d}.game-view .discard-top-wrap{position:relative;display:inline-block;animation:card-float 3s ease-in-out infinite}.game-view .discard-top-wrap .discard-previous-card.card{position:absolute;left:0;top:0;z-index:0;transform:rotate(-25deg);transform-origin:center center;pointer-events:none;filter:brightness(.92)}.game-view .discard-top-wrap .discard-top.card{position:relative;z-index:1;margin-left:10px;margin-top:8px}@keyframes card-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(1deg)}}.game-view .deck-stack{position:relative}.game-view .deck-stack:before,.game-view .deck-stack:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:inherit;border-radius:inherit;border:inherit;pointer-events:none;box-shadow:var(--card-shadow)}.game-view .deck-stack:before{transform:translate(-3px,-3px) rotate(-1deg);opacity:.7;z-index:-1}.game-view .deck-stack:after{transform:translate(-6px,-6px) rotate(-2deg);opacity:.4;z-index:-2}.game-view .discard-history{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;justify-content:flex-start;max-height:min(50vh,400px);overflow-y:auto;padding:12px;margin:12px 0;background:var(--bg-alt);border:1px solid var(--border);border-radius:10px}.game-view .discard-history .card.card--sm{width:48px;height:68px;font-size:.75rem;box-shadow:var(--card-shadow)}.game-view .discard-history .card.discard-history-top{outline:2px solid var(--accent);outline-offset:2px}.game-view .hand-scroll-outer{overflow:visible;flex:1;min-height:0;width:100%;max-width:100%;box-sizing:border-box;display:flex;flex-direction:column}.game-view .hand-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin:0 -4px 8px;padding:clamp(104px,18vh,168px) 16px 14px;flex:1;min-height:0;width:100%;max-width:100%;box-sizing:border-box}.game-view .game-play__hand .hand-scroll{margin-bottom:4px}.game-view .game-play__surface .hand-scroll{margin-left:0;margin-right:0;padding-left:12px;padding-right:12px}.game-view .game-play__surface .hand-scroll-outer{margin-left:0;margin-right:0}.game-view .hand{display:flex;flex-wrap:nowrap;justify-content:center;align-items:flex-end;min-height:248px;padding:72px 0 0;position:relative;width:max-content;min-width:100%;max-width:none;box-sizing:border-box;overflow:visible}.game-view .card-hand-btn{all:unset;display:block;cursor:pointer;position:relative;flex-shrink:0;touch-action:pan-x;transform-origin:center 170px;transform:translate(var(--swipe-x, 0px),calc(var(--arc-y, 0px) + var(--swipe-y, 0px))) rotate(var(--fan-angle, 0deg));transition:transform .26s cubic-bezier(.34,1.56,.64,1);z-index:var(--card-z, 1);margin-left:var(--card-overlap, -20px)}.game-view .card-hand-btn--selected:not(:disabled):not(:hover):not(.card-hand-btn--dragging){transform:translate(var(--swipe-x, 0px),calc(var(--arc-y, 0px) + var(--swipe-y, 0px) - 6px)) rotate(var(--fan-angle, 0deg)) scale(1.02);z-index:28}.game-view .card-hand-btn--dragging{transition:none!important;touch-action:none;transform:translate(var(--swipe-x, 0px),calc(var(--arc-y, 0px) + var(--swipe-y, 0px))) rotate(var(--fan-angle, 0deg))!important;z-index:35!important;isolation:isolate;will-change:transform}.game-view .card-hand-btn:active:not(:disabled):not(.card-hand-btn--dragging){transform:translate(var(--swipe-x, 0px),calc(var(--arc-y, 0px) + var(--swipe-y, 0px) - 48px)) rotate(0) scale(1.08)!important;transition:transform .14s ease-out}.game-view .card-hand-btn:first-child{margin-left:0}.game-view .card-hand-btn:hover:not(:disabled):not(.card-hand-btn--dragging){transform:translate(var(--swipe-x, 0px),calc(var(--arc-y, 0px) + var(--swipe-y, 0px) - 52px)) rotate(0) scale(1.14)!important;z-index:30!important}.game-view .card-hand-btn:disabled:hover{transform:translate(var(--swipe-x, 0px),calc(var(--arc-y, 0px) + var(--swipe-y, 0px))) rotate(var(--fan-angle, 0deg))!important;z-index:var(--card-z, 1)!important}.game-view .card-hand-btn .card{transition:box-shadow .22s cubic-bezier(.34,1.56,.64,1),filter .18s ease}.game-view .card-hand-btn:hover:not(.card-hand-btn--dragging) .card{box-shadow:0 24px 56px #0006}.game-view .card-hand-btn:not(:disabled):not(.card-hand-btn--dragging):hover .card--selected{box-shadow:0 32px 72px #00000080,0 0 0 4px #6ee7b7,0 0 56px #4ade8099;filter:brightness(1.12) saturate(1.2)}.game-view .card-hand-btn:not(:disabled):not(.card-hand-btn--dragging):active .card--selected{box-shadow:0 20px 48px #00000080,0 0 0 3px #4ade80,0 0 48px #4ade80b3;filter:brightness(1.15) saturate(1.25)}.game-view .card-hand-btn:disabled .card{filter:brightness(.5) saturate(.3) grayscale(.6)}.game-view .card-hand-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;background:transparent;font:inherit}.game-view .card-hand-btn:disabled{cursor:not-allowed}.game-view .card-hand-btn:disabled .card{cursor:not-allowed}.game-view .hand-label{font-size:.6875rem;color:var(--text-muted);margin-bottom:8px;text-align:center;font-weight:500;text-transform:uppercase;letter-spacing:.05em;position:relative;z-index:2}.game-view .game-play__hand{margin-top:6px;padding:8px 6px 10px;border-radius:var(--radius-sm);background:transparent;border:none;overflow:visible;box-sizing:border-box;width:100%;gap:6px}@media(max-width:540px){.game-view .card{width:76px;height:108px}.game-view .card-rank{font-size:1rem}.game-view .card-suit{font-size:.75rem}.game-view .card-suit-large{font-size:2.25rem}.game-view .card[data-card-id*=K-] .card-suit-large,.game-view .card[data-card-id*=Q-] .card-suit-large,.game-view .card[data-card-id*=J-] .card-suit-large,.game-view .card[data-card-id*=A-] .card-suit-large{font-size:2.625rem}.game-view .discard-pile .card{width:88px;height:125px}.game-view .discard-pile .card-rank{font-size:1.1875rem}.game-view .discard-pile .card-suit{font-size:.9375rem}.game-view .discard-pile .card-suit-large{font-size:3rem}.game-view .discard-pile .card[data-card-id*=K-] .card-suit-large,.game-view .discard-pile .card[data-card-id*=Q-] .card-suit-large,.game-view .discard-pile .card[data-card-id*=J-] .card-suit-large,.game-view .discard-pile .card[data-card-id*=A-] .card-suit-large{font-size:3.5rem}.game-view .hand{min-height:220px;padding-top:84px}.game-view .hand-scroll{padding:clamp(88px,22vh,148px) 10px 12px}.game-view .discard-slot-wrap{min-height:130px}.game-view .center-piles{gap:24px}.game-view .pile-label{margin-bottom:5px;font-size:.5625rem}.game-view .card-hand-btn:hover:not(:disabled):not(.card-hand-btn--dragging){transform:translate(var(--swipe-x, 0px),calc(var(--arc-y, 0px) + var(--swipe-y, 0px) - 44px)) rotate(0) scale(1.12)!important}}@media(prefers-reduced-motion:reduce){.game-view .card,.game-view .hand .card{transition:none!important;animation:none!important}}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--shell-bg: #07090c;--felt: #153529;--felt-deep: #0c1814;--bg: #0e1218;--bg-alt: #141a22;--bg-elevated: #1a222c;--surface: #161d26;--surface-hover: #1c2630;--surface-muted: rgba(255, 255, 255, .04);--border: rgba(255, 255, 255, .1);--border-focus: rgba(212, 168, 83, .45);--border-gold: rgba(212, 168, 83, .35);--text: #e8eaed;--text-secondary: #a8b0ba;--text-muted: #6b7580;--muted: #6b7580;--accent: #d4a853;--accent-hover: #e4bc6a;--accent-soft: rgba(212, 168, 83, .14);--accent-ring: rgba(212, 168, 83, .35);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .12);--success: #4ade80;--success-soft: rgba(74, 222, 128, .12);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .12);--font-sans: "Rubik", system-ui, sans-serif;--font-display: "Unbounded", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35);--shadow-md: 0 8px 28px rgba(0, 0, 0, .45);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .55);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .06);--transition-fast: .12s ease;--transition: .2s ease;color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--text);background:var(--shell-bg);background-image:radial-gradient(ellipse 90% 60% at 50% 105%,rgba(21,53,41,.4),transparent 65%),linear-gradient(180deg,#0a0d11,#0e1419);min-height:100dvh;padding-left:var(--safe-left);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom);-webkit-tap-highlight-color:transparent}::selection{background:var(--accent-soft);color:#fff8e7}.skip-link{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:8px;left:8px;z-index:100;width:auto;height:auto;padding:8px 14px;overflow:visible;clip:auto;background:var(--surface);border:1px solid var(--border-gold);border-radius:var(--radius-sm);font-weight:500;color:var(--text);box-shadow:var(--shadow-md)}button,.btn,input,select,textarea{font:inherit;touch-action:manipulation}.app{max-width:480px;margin:0 auto;padding:calc(16px + var(--safe-top)) 16px calc(32px + var(--safe-bottom));min-height:100dvh;position:relative}.app:before{content:"";pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;max-width:480px;margin:0 auto;border-left:1px solid rgba(212,168,83,.08);border-right:1px solid rgba(212,168,83,.08);z-index:0}.app.app--in-game{display:flex;flex-direction:column;min-height:100dvh;max-width:100%;padding:calc(8px + var(--safe-top)) 10px calc(8px + var(--safe-bottom))}.app--in-game .tagline,.app--in-game .server-bar,.app--in-game .server-hint,.app--in-game .mode-switch,.app--in-game .mode-switch-hint,.app--in-game .conn-pill{display:none}.app--in-game .app-header{margin-bottom:10px;background:#0e1218a6;margin-left:-10px;margin-right:-10px;padding:8px 10px;border-radius:var(--radius);border:none;box-shadow:none}.app--in-game .header-top{align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:8px}.app--in-game .brand-title{font-size:1rem;line-height:1.2;text-align:center}.app--in-game .brand-num{display:none}.app--in-game .header-top{justify-content:center}.app--in-game .app-main{flex:1;display:flex;flex-direction:column;min-height:0;overflow:visible}.app--in-game .game-layout{flex:1;display:flex;flex-direction:column;min-height:0;gap:8px;overflow:visible}.app--in-game .room-chip{padding:4px 10px;font-size:.6875rem;align-self:stretch;justify-content:center}.app-header{display:flex;flex-direction:column;gap:16px;padding:16px 14px 18px;margin:0 -4px 20px;border-radius:var(--radius-lg);border:1px solid rgba(168,176,186,.15);background:#0e1218d9;box-shadow:0 2px 8px #0000004d;position:relative;z-index:1}.app-header:after{display:none}.header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.brand{display:flex;flex-direction:column;gap:2px}.brand-title{font-family:var(--font-display);font-size:1.625rem;font-weight:700;letter-spacing:.02em;color:#f0e6d4;line-height:1.15;text-shadow:0 1px 0 rgba(0,0,0,.45),0 0 24px rgba(212,168,83,.15)}.brand-num{color:var(--accent);font-weight:600;margin-left:6px;font-size:.72em;letter-spacing:.04em}.tagline{font-size:.75rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.12em}.conn-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:100px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:#00000059;color:var(--text-secondary);border:1px solid var(--border);flex-shrink:0}.conn-pill.on{background:#4ade801a;border-color:#4ade8059;color:var(--success);box-shadow:0 0 12px #4ade801f}.conn-pill.off{background:#f8717114;border-color:#f8717140;color:var(--danger)}.conn-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.mode-switch{display:flex;gap:4px;padding:5px;background:#00000059;border-radius:var(--radius);border:1px solid var(--border)}.mode-switch__btn{flex:1;padding:10px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-weight:600;font-size:.8125rem;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.mode-switch__btn:hover:not(:disabled){color:var(--text-secondary)}.mode-switch__btn--active{background:linear-gradient(180deg,#d4a85340,#d4a8531a);color:#fff8e7;box-shadow:inset 0 1px #ffffff1f;border:1px solid rgba(212,168,83,.35)}.mode-switch__btn:disabled{opacity:.55;cursor:not-allowed}.mode-switch-hint{font-size:.75rem;color:var(--text-muted);margin:0;line-height:1.35}.bot-lobby-panel{margin-top:4px}.server-bar{display:flex;flex-direction:column;gap:6px}.server-label{display:flex;flex-direction:column;gap:4px}.server-label-text{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.server-input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000059;color:var(--text);font-size:.875rem;font-family:var(--font-mono);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.server-input:hover:not(:disabled){border-color:var(--border-focus)}.server-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.server-input:disabled{background:#00000040;color:var(--text-muted);cursor:not-allowed}.server-hint{font-size:.75rem;color:var(--text-muted);line-height:1.4}.app-main:focus{outline:none}.panel{background:linear-gradient(165deg,#1c242ef2,#121820fa);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-gold);box-shadow:var(--shadow-md),var(--shadow-inset);position:relative;z-index:1}.lobby-panel h2{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:#f0e6d4;margin-bottom:8px;letter-spacing:.04em;text-transform:uppercase}.lobby-lead{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin-bottom:16px}.lobby-steps{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin-bottom:20px;padding-left:20px}.lobby-steps li{margin-bottom:6px}.lobby-steps li:last-child{margin-bottom:0}.hint{font-size:.8125rem;color:var(--text-secondary)}.hint.warn{color:#fcd34d;padding:10px 12px;background:var(--warning-soft);border-radius:var(--radius-sm);border:1px solid rgba(251,191,36,.25);font-weight:500}.flash.err{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 12px;margin-bottom:16px;border-radius:var(--radius-sm);background:var(--danger-soft);border:1px solid rgba(248,113,113,.25);font-size:.8125rem;color:#fecaca}.flash.err .btn-text{color:var(--text-muted);padding:2px 4px;line-height:1;flex-shrink:0}.lobby-actions{display:flex;flex-direction:column;gap:12px}.lobby-choice-stack{display:flex;flex-direction:column;gap:14px}.lobby-choice-card{padding:16px;border-radius:var(--radius);border:1px solid var(--border);background:#0000002e}.lobby-choice-card--primary{border-color:var(--border-gold);background:linear-gradient(180deg,#d4a85314,#0000002e)}.lobby-section-title{margin:0 0 6px;font-size:.9rem;font-weight:700;color:#f0e6d4}.lobby-section-copy{margin:0 0 12px;font-size:.8rem;line-height:1.45;color:var(--text-secondary)}.lobby-divider{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.lobby-divider:before,.lobby-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(212,168,83,.22),transparent)}.visibility-fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;margin:0;background:var(--bg-elevated)}.visibility-legend{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 4px}.visibility-option{display:flex;align-items:center;gap:8px;font-size:.9rem;margin:6px 0;cursor:pointer}.visibility-option input{accent-color:var(--accent)}.public-rooms{margin:0;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid rgba(212,168,83,.15);background:#00000040}.public-rooms-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.public-rooms-title{margin:0;font-family:var(--font-display);font-size:.9rem;font-weight:600;color:var(--text)}.public-rooms-copy{margin-top:4px;margin-bottom:0}.public-rooms-empty{margin:0;font-size:.88rem}.public-rooms-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.public-rooms-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 10px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid var(--border)}.public-rooms-code{font-family:ui-monospace,monospace;font-weight:700;letter-spacing:.1em}.public-rooms-meta{flex:1;font-size:.82rem;color:var(--muted)}.public-rooms-item .btn.sm{padding:6px 12px;font-size:.85rem}.join-by-code-label{margin:0 0 10px;font-size:.85rem;color:var(--muted)}.host-public-toggle{margin:8px 0 12px}.row.join-row{display:flex;gap:8px;align-items:stretch}.input-code{flex:1;max-width:140px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000059;color:#f0d78c;text-transform:uppercase;letter-spacing:.15em;font-size:.9375rem;font-weight:600;font-family:var(--font-mono)}.input-code:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff0f;color:var(--text);font-weight:600;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:hover:not(:disabled){background:#ffffff1a;border-color:#d4a85359}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,#e4bc6a,#b8893e 48%,#9a722f);border-color:#ffe6b459;color:#1a1208;text-shadow:0 1px 0 rgba(255,255,255,.25);box-shadow:0 2px 8px #00000059,inset 0 1px #ffffff40}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#f0cb7d,#c99a45 48%,#a67d32);border-color:#fff0c873}.btn.danger{background:#f871711f;border:1px solid rgba(248,113,113,.45);color:#fecaca;text-shadow:none;box-shadow:none}.btn.danger:hover:not(:disabled){background:#f8717138;border-color:#fca5a58c;color:#fff}.leave-confirm-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.game-actions__btn--leave{font-size:.8125rem;opacity:.92}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn.ghost:hover:not(:disabled){background:#ffffff0f;color:var(--text)}.btn.ghost.sm{padding:4px 8px;font-size:.75rem}.btn-text{padding:4px 8px;font-size:.75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.btn-text:hover{color:var(--accent);background:var(--accent-soft)}.touch-target{min-height:44px}.in-room .room-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.room-code{font-family:var(--font-mono);letter-spacing:.1em;font-size:1rem;font-weight:600;color:var(--text)}.meta{font-size:.8125rem;color:var(--text-secondary);margin-bottom:16px}.badge{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:100px;background:var(--bg-alt);font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.badge.host{background:#d4a8532e;color:#f0d78c}.badge.sm{margin-left:8px;font-size:.625rem;padding:1px 6px}.badge.ghost{background:transparent;border:1px solid var(--border)}.panel-inline{margin-bottom:20px;padding:16px;border-radius:var(--radius);border:1px solid var(--border);background:#0003}.lobby-profile .nickname-row{margin-bottom:16px}.nickname-label{display:flex;flex-direction:column;gap:6px}.nickname-label-text{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.input-nickname{max-width:20rem;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000059;color:var(--text);font-size:.9375rem}.input-nickname:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.nickname-hint{margin-top:8px}.auth-block{padding-top:12px;border-top:1px solid var(--border)}.auth-lead{font-size:.8125rem;color:var(--text-secondary);margin-bottom:10px;line-height:1.5}.auth-fields{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.input-auth{min-width:140px;flex:1;max-width:200px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000059;color:var(--text);font-size:.875rem}.input-auth:focus{outline:none;border-color:var(--accent)}.auth-status{font-size:.875rem;color:var(--text-secondary);display:flex;flex-wrap:wrap;align-items:center;gap:10px}.hint.ok{color:var(--success);margin-top:8px}.hint.err{color:var(--danger);margin-top:8px}.lobby-players{list-style:none;font-size:.8125rem;color:var(--text-secondary);margin-bottom:16px;padding:10px 12px;border-radius:var(--radius-sm);background:#0003;border:1px solid var(--border)}.lobby-players li{padding:4px 0}.start-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.start-grid label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;font-weight:500;color:var(--text-secondary)}.start-grid select{padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000059;color:var(--text);font-size:.875rem;cursor:pointer}.start-grid select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.start-grid .check{flex-direction:row;align-items:center;gap:8px;font-weight:400;color:var(--text)}.start-grid .check input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.start-btn{grid-column:1 / -1}.leave{margin-top:12px}.game-layout{display:flex;flex-direction:column;gap:12px}.game-play{display:flex;flex-direction:column;flex:1;min-height:0;gap:0;overflow:visible}.game-play__surface{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;margin-top:4px;border-radius:14px;background:radial-gradient(ellipse 100% 60% at 50% 0%,rgba(40,110,78,.28) 0%,transparent 52%),radial-gradient(ellipse 80% 45% at 50% 100%,rgba(0,0,0,.22) 0%,transparent 55%),linear-gradient(168deg,#14241cf5,#0c1612fa 38%,#070e0b);border:1px solid rgba(212,168,83,.16);box-shadow:inset 0 1px #ffffff12,inset 0 -2px 12px #00000059,0 12px 36px #0000006b;overflow:visible}.game-play__surface:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px #ffffff0a;z-index:0}.game-play__surface .game-play__table,.game-play__surface .game-play__hand{position:relative;z-index:1}.game-play__surface .table-ring{margin-bottom:0;padding-bottom:4px}.game-play__surface .game-play__hand{margin-top:0;padding:4px 8px 10px;border-top:1px solid rgba(0,0,0,.45);background:linear-gradient(180deg,#00000024,#00000052);box-shadow:inset 0 1px #ffffff0d;border-radius:0 0 12px 12px;overflow:visible}.game-play__table{flex-shrink:0;margin-bottom:0}.table-ring{position:relative;width:100%;padding-top:42px;margin-bottom:16px}.table-ring__seats{position:absolute;left:0;right:0;top:0;height:42px;pointer-events:none;z-index:2}.rival-seat{position:absolute;left:0;top:0;box-sizing:border-box;min-width:52px;max-width:72px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 6px 5px;border-radius:8px;background:#0e1218a6;border:1px solid transparent;font-size:.625rem;color:var(--text-secondary);pointer-events:auto;line-height:1.2;transition:border-color .18s ease,background .18s ease;isolation:isolate}.rival-seat__last-card{position:absolute;top:-8px;left:50%;transform:translate(-50%);z-index:0;opacity:.6;pointer-events:none}.rival-seat__last-card .card{width:32px;height:45px;font-size:.625rem}.rival-seat__last-card .card-rank,.rival-seat__last-card .card-suit{font-size:.5625rem}.rival-seat__last-card .card-suit-large{font-size:1rem}.rival-seat--turn{border-color:#4ade808c;background:#4ade8014}.rival-seat__avatar{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;background:linear-gradient(145deg,#a8b0ba59,#2a3544f2);border:2px solid rgba(168,176,186,.3);transition:border-color .18s ease}.rival-seat--turn .rival-seat__avatar{border-color:#4ade80a6;box-shadow:0 0 12px #4ade804d}.rival-seat__id{position:relative;z-index:1;font-weight:600;font-size:.625rem;color:var(--text-secondary)}.rival-seat--turn .rival-seat__id{color:#4ade80;font-weight:700}.rival-seat__meta{position:relative;z-index:1;display:inline-flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.6875rem;font-weight:700;color:var(--text)}.rival-seat__sep{color:var(--text-muted);font-weight:500}.rival-seat__score{color:var(--text-secondary);font-weight:700}.table-ring__felt{position:relative;z-index:1;margin:0 auto;max-width:100%;padding:0;background:transparent;border:none;box-shadow:none}.table-ring__felt.table-center{margin-bottom:0}.hand-label--you{display:inline-flex;align-items:center;gap:6px}.hand-label__you-score{font-size:.9375rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;padding:4px 8px;background:#00000040;border-radius:6px;border:1px solid rgba(168,176,186,.15)}.game-play__status{flex-shrink:0;margin-bottom:0;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;width:100%;max-width:100%;box-sizing:border-box;min-height:0}.game-play__status.meta-lines{text-align:initial;padding:8px 12px;min-height:46px;background:#0e1218b8;border:1px solid rgba(168,176,186,.12);border-radius:var(--radius);box-shadow:var(--shadow-inset),0 1px 3px #00000040;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-play__status>.player-last-card{grid-column:1;justify-self:start}.game-play__status>.suit-context-bar{grid-column:2;justify-self:center}.game-play__status>.status-compact{grid-column:3;justify-self:end;min-width:min-content}.game-play__status .suit-context-bar{padding:5px 12px;background:#ffffff0f;border-color:#a8b0ba29;box-shadow:none}.game-play__status .suit-context-bar__hint{max-width:min(160px,38vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-play__status .status-compact{gap:8px;white-space:nowrap}.game-play__status .status-pill{min-height:30px;padding:5px 11px;box-sizing:border-box;white-space:nowrap;flex-shrink:0}.game-play__status .status-pill--dir{min-width:34px;justify-content:center;background:#ffffff0d;border:1px solid rgba(168,176,186,.14);color:var(--text-secondary);font-size:.75rem}@media(max-width:420px){.game-play__status{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.game-play__status.meta-lines{padding-inline:10px;gap:8px}}.player-last-card{position:relative;flex-shrink:0;z-index:0;opacity:.6;pointer-events:none}.game-play__status .player-last-card{opacity:1;padding:3px;border-radius:var(--radius-sm);background:#00000047;border:1px solid rgba(168,176,186,.1);box-shadow:inset 0 1px #ffffff0a}.player-last-card .card{width:32px;height:45px;font-size:.625rem}.player-last-card .card-rank,.player-last-card .card-suit{font-size:.5625rem}.player-last-card .card-suit-large{font-size:1rem}.game-play__hand{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:8px;position:relative;overflow:visible}.status-compact{position:relative;z-index:1;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:6px;flex-shrink:0;font-size:.75rem;color:var(--text)}.game-play__status .status-compact{justify-content:flex-end}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid transparent;background:transparent;font-weight:500;color:var(--text-secondary)}.status-pill--turn:not(.status-pill--active){display:none}.status-pill--active{background:#4ade801f;border-color:#4ade8059;color:#4ade80;font-weight:700}.status-pill--dir{color:var(--text-muted);font-size:.6875rem}.status-pill--timer{background:#fbbf241a;border-color:#fbbf244d;color:#fde68a;font-weight:600}.status-pill--timer strong{color:#fbbf24;font-variant-numeric:tabular-nums}.status-pill--warn{color:#fecaca;background:#f871711f;border-color:#f8717166}.game-actions{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}.game-actions__btn{min-height:50px;padding:14px 28px;font-size:1rem;font-weight:700;letter-spacing:.01em}.game-actions__btn.primary{flex:1;max-width:220px}.game-actions__btn.ghost{padding:10px 20px;font-size:.9375rem;font-weight:600;min-height:44px;background:#ffffff14;border:1.5px solid rgba(168,176,186,.35);color:var(--text)}.game-actions__btn.ghost:hover:not(:disabled){background:#ffffff1f;border-color:#a8b0ba8c;color:var(--text);transform:translateY(-1px)}.game-actions__btn.ghost:active:not(:disabled){transform:translateY(0)}.action-hint{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 20px;font-size:.9375rem;font-weight:600;color:#6ee7b7;text-align:center;background:#4ade8014;border-radius:var(--radius);border:1.5px dashed rgba(74,222,128,.35)}.action-hint-icon{font-size:2rem;animation:bounce-hint 1.4s ease-in-out infinite;line-height:1}@keyframes bounce-hint{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(-8px);opacity:.75}}.room-chip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 12px;border-radius:100px;background:#00000059;border:1px solid rgba(212,168,83,.3);font-size:.75rem}.room-chip-label{text-transform:uppercase;letter-spacing:.05em;font-size:.625rem;font-weight:600;color:var(--text-muted)}.room-chip-code{font-family:var(--font-mono);letter-spacing:.1em;font-weight:600;color:#f0d78c}.game-view{background:#0a0e1280;border-radius:var(--radius-lg);padding:20px 16px 24px;border:1px solid rgba(168,176,186,.12);box-shadow:0 4px 16px #0000004d}.app--in-game .game-view.game-play{flex:1;display:flex;flex-direction:column;min-height:0;padding:12px 10px;border-radius:var(--radius);box-shadow:none;background:transparent;border:none;overflow:visible}.match-banner{text-align:center;padding:10px 14px;margin-bottom:16px;border-radius:var(--radius-sm);background:#f871711a;border:1px solid rgba(248,113,113,.3);font-size:.8125rem;font-weight:600;color:#fecaca}.scores-bar{display:flex;flex-wrap:nowrap;gap:6px;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:0;padding-bottom:2px}.score-pill{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-sm);background:var(--bg-alt);border:1px solid var(--border);font-size:.75rem;color:var(--text-secondary);transition:all var(--transition-fast);flex-shrink:0}.score-pill.you{background:#d4a8531f;border-color:#d4a85359;color:var(--text)}.score-pill.active-turn{box-shadow:inset 3px 0 0 0 var(--accent)}.score-pill .pn{font-weight:600;color:var(--text)}.score-pill .sc{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.table-center{margin-bottom:8px;display:flex;justify-content:center}.suit-context-bar{position:relative;z-index:10;padding:4px 10px;border-radius:100px;background:#000000d9;border:1px solid rgba(168,176,186,.3);font-size:.75rem;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0}.suit-context-bar__label{display:none}.suit-context-bar__value{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:6px;color:var(--text-secondary);font-weight:500}.suit-context-bar__value strong{font-size:1.125rem;line-height:1;font-weight:700}.suit-context-bar__hint{color:#e8eaeda6;font-size:.6875rem;font-weight:500;max-width:min(200px,55vw);text-align:left;line-height:1.25}.meta-lines{text-align:center;font-size:.8125rem;color:var(--text);margin-bottom:8px;line-height:1.35;padding:0;background:transparent;border:none}.app--in-game .meta-lines{padding:0;margin-bottom:6px}.app--in-game .game-play__status.meta-lines{margin-bottom:10px}.meta-lines p{margin:4px 0}.meta-lines .effect{color:var(--warning);font-weight:500;padding:6px 10px;background:var(--warning-soft);border-radius:var(--radius-sm);margin:8px 0;display:inline-block}.meta-lines .turn-timer{font-size:inherit;color:var(--text-secondary)}.meta-lines .turn-timer strong{color:#f0d78c;font-variant-numeric:tabular-nums}.row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.log-block{margin-top:12px;font-size:.75rem;color:var(--text-secondary);border-top:1px solid var(--border);padding-top:8px}.discard-history-btn{padding:4px 10px;border-color:#d4a85329;color:var(--text-secondary);background:#ffffff0a}.discard-history-btn:hover:not(:disabled){border-color:#d4a85359;color:var(--text)}.human-area__header{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin-bottom:4px;padding-left:8px}.human-area__header .hand-label{margin-bottom:0}.game-exit-btn,.game-scores-btn{position:fixed;top:12px;width:36px;height:36px;border-radius:50%;background:#0000004d;border:1px solid rgba(168,176,186,.15);color:#fff6;font-size:1.75rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .2s ease;padding:0}.game-exit-btn{left:12px;opacity:.5}.game-scores-btn{right:12px;font-size:1.125rem;font-weight:700;width:auto;min-width:36px;padding:0 10px;border-radius:18px;font-variant-numeric:tabular-nums}.game-scores-btn__value{display:block}.game-exit-btn:hover,.game-scores-btn:hover{background:#0009;border-color:#a8b0ba59;color:#fffc;transform:scale(1.05)}.game-exit-btn:hover{opacity:1}.log-block summary{cursor:pointer;font-weight:500;color:var(--text);padding:4px 0;-webkit-user-select:none;user-select:none}.log-block summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.log-block ul{margin:8px 0 0;padding-left:20px;max-height:160px;overflow-y:auto;font-size:.75rem;line-height:1.5}.log-block li{margin-bottom:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ab8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:max(16px,var(--safe-top)) max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left))}.modal{background:linear-gradient(165deg,#1a222c,#0e1218);border-radius:var(--radius-lg);padding:28px;max-width:420px;width:100%;max-height:min(90dvh,90vh);overflow-y:auto;-webkit-overflow-scrolling:touch;border:1px solid rgba(168,176,186,.2);box-shadow:0 24px 64px #0009}.modal.wide{max-width:540px}.modal h3{font-size:1.25rem;font-weight:700;color:var(--text);margin-bottom:8px;letter-spacing:-.01em;text-align:center}.modal-hint{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;margin:8px 0}.round-pre{white-space:pre-wrap;font-size:.8125rem;font-family:var(--font-mono);color:var(--text-secondary);max-height:240px;overflow-y:auto;line-height:1.5;background:#0006;padding:12px;border-radius:var(--radius-sm);margin-bottom:16px;border:1px solid var(--border)}.scores-table-wrap{overflow-x:auto;margin:16px 0;border-radius:8px;background:#0000004d;border:1px solid rgba(168,176,186,.2)}.scores-table{width:100%;border-collapse:collapse;font-size:.875rem}.scores-table th,.scores-table td{padding:10px 12px;text-align:center;border-bottom:1px solid rgba(168,176,186,.15)}.scores-table thead th{background:#0006;color:var(--text);font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid rgba(168,176,186,.3);position:sticky;top:0}.scores-table tbody tr:last-child td{border-bottom:none}.scores-table tbody tr.current-row{background:#66bb6a26}.scores-table tbody tr.current-row td{font-weight:600;color:var(--text);border-top:2px solid rgba(102,187,106,.4)}.scores-table td.you{background:#66bb6a1a;font-weight:500}.suit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:20px 0}.suit-btn{font-size:4rem;padding:28px;border-radius:var(--radius-lg);border:3px solid transparent;cursor:pointer;transition:all .22s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;box-shadow:0 4px 16px #0000004d}.suit-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .22s ease;border-radius:inherit}.suit-btn:hover:before{opacity:1}.suit-btn:hover{transform:scale(1.1);box-shadow:0 16px 48px #00000080}.suit-btn:active{transform:scale(1.04)}.suit-btn:focus-visible{outline:none;box-shadow:0 0 0 4px #fff6}.suit-btn:nth-child(1){background:linear-gradient(135deg,#f4f0e8,#e8e4dc);color:#1a1a1c;border-color:#1a1a1c26}.suit-btn:nth-child(1):before{background:radial-gradient(circle at 30% 30%,rgba(26,26,28,.08),transparent 65%)}.suit-btn:nth-child(1):hover{border-color:#1a1a1c;box-shadow:0 16px 48px #00000080,0 0 40px #1a1a1c4d}.suit-btn:nth-child(2){background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#c42b2b;border-color:#c42b2b33}.suit-btn:nth-child(2):before{background:radial-gradient(circle at 30% 30%,rgba(196,43,43,.12),transparent 65%)}.suit-btn:nth-child(2):hover{border-color:#dc2626;box-shadow:0 16px 48px #00000080,0 0 40px #c42b2b66}.suit-btn:nth-child(3){background:linear-gradient(135deg,#fff7ed,#fed7aa);color:#c42b2b;border-color:#c42b2b33}.suit-btn:nth-child(3):before{background:radial-gradient(circle at 30% 30%,rgba(196,43,43,.15),transparent 65%)}.suit-btn:nth-child(3):hover{border-color:#dc2626;box-shadow:0 16px 48px #00000080,0 0 40px #c42b2b66}.suit-btn:nth-child(4){background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#064e3b;border-color:#064e3b33}.suit-btn:nth-child(4):before{background:radial-gradient(circle at 30% 30%,rgba(6,78,59,.12),transparent 65%)}.suit-btn:nth-child(4):hover{border-color:#065f46;box-shadow:0 16px 48px #00000080,0 0 40px #064e3b4d}.fly-stack{display:flex;flex-direction:column;align-items:center;gap:4px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.2))}.play-caption{font-size:.6875rem;font-weight:700;color:#fff8e7;text-shadow:0 2px 8px rgba(0,0,0,.85),0 0 1px rgba(0,0,0,1);white-space:nowrap}.play-caption-sub{font-size:.75rem;font-weight:700;color:#fde68a;text-shadow:0 2px 8px rgba(0,0,0,.85)}.fly-stack .card.fly-card{box-shadow:0 8px 32px #00000040;margin:0}.fly-stack--throw .card.fly-card{transform-origin:50% 55%;box-shadow:0 12px 36px #00000061,0 2px #ffffff0f inset}.fly-stack--draw .play-caption-sub{font-size:.6875rem;opacity:.95}.card.fly-card--draw-bundle{display:flex;align-items:center;justify-content:center;min-width:56px;min-height:78px;position:relative}.card.fly-card--draw-bundle:before,.card.fly-card--draw-bundle:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:inherit;border-radius:inherit;border:inherit;pointer-events:none;z-index:-1}.card.fly-card--draw-bundle:before{transform:translate(-2px,-2px) rotate(-2deg);opacity:.6}.card.fly-card--draw-bundle:after{transform:translate(-4px,-4px) rotate(-4deg);opacity:.3}.draw-bundle-badge{color:#fffffff2;font-size:1.125rem;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.4);z-index:1;position:relative}@media(max-width:540px){.app-header{flex-direction:column;gap:12px}.header-top{flex-direction:column;gap:8px}.panel{padding:20px 16px}.row.join-row{flex-direction:column}.row.join-row .btn,.input-code{width:100%;max-width:none}.start-grid{grid-template-columns:1fr}.game-view{padding:16px 12px 20px}.table-ring{padding-top:40px}.table-ring__seats{height:40px}.rival-seat{min-width:48px;max-width:68px;padding:5px 5px 4px;gap:2px}.rival-seat__avatar{width:24px;height:24px}.table-ring__felt{padding:0}.scores-bar{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;margin:0 -4px 16px;padding-left:4px;padding-right:4px}.score-pill{flex-shrink:0}.row-actions{flex-direction:column}.row-actions .btn{width:100%}.human-area__header{flex-direction:column;align-items:stretch}.public-rooms-header{flex-direction:column}.suit-btn{min-height:80px;font-size:3.5rem;padding:24px}.game-actions__btn{font-size:.9375rem}.game-actions__btn.ghost{font-size:.875rem}}@media(max-width:380px){.opp{font-size:.6875rem;padding:6px 10px}}@media(max-width:540px){.input-code,.server-input,.lobby-panel select{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
