*{box-sizing:border-box}:root{--hand-w: clamp(56px, min(7vw, 12vh), 108px);--table-w: clamp(46px, min(6vw, 11vh), 98px);--small-w: clamp(24px, min(3.2vw, 6vh), 54px);--team-a: #e0b84a;--team-b: #6fb8e0}html,body,#root{min-height:100%}body{margin:0;background:#0b3d2e;color:#f4f1e8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer}input{font-family:inherit;font-size:16px;padding:12px;border-radius:8px;border:1px solid #ccc;width:100%;margin-bottom:10px}.screen{min-height:100vh;display:flex;flex-direction:column;padding:12px;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.screen.centered{align-items:center;justify-content:center;text-align:center;gap:10px}.subtitle{color:#cfe8db;max-width:320px}.hint{color:#cfe8db;font-size:14px;margin:4px 0}.hint.error-text{color:#f0a0a0}.join-form{display:flex;gap:8px;width:100%;max-width:280px}.join-form input{margin-bottom:0;text-align:center;letter-spacing:1px;text-transform:uppercase}button.primary{background:#e0b84a;color:#222;font-weight:700;font-size:18px;padding:14px 24px;border:none;border-radius:10px;min-height:48px}button.primary:disabled{opacity:.5}button.secondary{background:transparent;border:1px solid #e0b84a;color:#e0b84a;padding:10px 18px;border-radius:10px;min-height:44px}.screen.home{align-items:center;gap:18px;padding-bottom:40px}.home-hero{text-align:center;max-width:420px}.home-card{width:100%;max-width:420px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px}.home-card-title{margin:0 0 4px;font-size:16px}.visibility-toggle{display:flex;gap:8px}.pill{flex:1;padding:10px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:transparent;color:inherit;font-weight:600;min-height:40px}.pill.active{background:#e0b84a;color:#1c1c1c;border-color:#e0b84a}.public-rooms{width:100%;max-width:760px}.room-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:8px}.room-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}.room-card-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;opacity:.85}.status-pill{padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;background:#ffffff26}.status-pill.waiting{background:#e0b84a40;color:#e0b84a}.status-pill.playing{background:#6fb8e040;color:#6fb8e0}.screen.lobby{align-items:center;gap:16px;padding-top:20px}.lobby-head{display:flex;flex-direction:column;align-items:center;gap:10px}.room-code-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.room-code{font-size:26px;font-weight:900;letter-spacing:.08em;background:#ffffff14;padding:4px 14px;border-radius:10px}.whatsapp{border-color:#3fbf60;color:#3fbf60}.lobby-table-wrap{width:100%;display:flex;justify-content:center;padding:6px 0}.lobby-table{display:grid;grid-template-columns:minmax(56px,1fr) minmax(140px,200px) minmax(56px,1fr);grid-template-rows:auto minmax(90px,150px) auto;grid-template-areas:".    top    ." "left center right" ".    bottom .";align-items:center;justify-items:center;gap:10px;width:100%;max-width:420px}.lobby-table-center{grid-area:center;width:100%;aspect-ratio:1.35;border-radius:50%;background:radial-gradient(ellipse at center,#1f6b4d,#0d3d2c 75%);border:clamp(3px,.8vw,8px) solid #5b3b1f;box-shadow:inset 0 0 30px #00000073;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:700}.lobby-team-tag.team-A{color:var(--team-a)}.lobby-team-tag.team-B{color:var(--team-b)}.lobby-table-divider{opacity:.6}.lobby-seat{width:100%;max-width:150px;min-height:64px;border-radius:14px;border:2px dashed rgba(255,255,255,.3);background:#ffffff0a;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;position:relative}.lobby-seat.pos-top{grid-area:top}.lobby-seat.pos-bottom{grid-area:bottom}.lobby-seat.pos-left{grid-area:left}.lobby-seat.pos-right{grid-area:right}.lobby-seat.taken{border-style:solid}.lobby-seat.team-A.taken{border-color:var(--team-a)}.lobby-seat.team-B.taken{border-color:var(--team-b)}.lobby-seat.mine{background:#e0b84a26}.lobby-seat:disabled{cursor:default}.lobby-seat-empty{font-size:12px;opacity:.6}.lobby-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:#1c1c1c}.lobby-seat.team-A .lobby-avatar{background:var(--team-a)}.lobby-seat.team-B .lobby-avatar{background:var(--team-b)}.lobby-seat-name{font-size:13px;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-host-badge{position:absolute;top:-8px;right:6px;font-size:9px;font-weight:800;letter-spacing:.05em;background:#e0b84a;color:#1c1c1c;padding:2px 6px;border-radius:999px}.lobby-status{font-size:15px;font-weight:600;text-align:center}@media (max-width: 400px){.lobby-table{grid-template-columns:minmax(48px,1fr) minmax(120px,160px) minmax(48px,1fr)}}.scorebar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:6px 2px 10px;font-size:13px}@media (min-width: 901px){.scorebar{flex-wrap:nowrap}}.score{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;max-width:38vw;font-weight:700}.score.team-A{color:#e0b84a}.score.team-B{color:#6fb8e0;align-items:flex-end;text-align:right}.score-label{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;opacity:.9}.score-total{font-size:17px}.score-sub{font-size:10px;font-weight:400;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media (max-width: 480px){.score{max-width:32vw}.score-label{font-size:10px}.score-total{font-size:15px}.score-sub{font-size:9px}}.link-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:inherit;padding:6px 10px;border-radius:8px;font-size:12px}.middle-row{display:flex;align-items:center;justify-content:center;gap:clamp(6px,1.5vw,28px);flex:1}.table-felt{flex:1;max-width:1100px;align-self:stretch;min-height:clamp(150px,34vh,420px);background:radial-gradient(ellipse at center,#1f6b4d,#0d3d2c 75%);border-radius:clamp(18px,6vw,120px);display:flex;flex-wrap:wrap;gap:clamp(8px,1.6vw,26px);align-items:center;align-content:center;justify-content:center;padding:clamp(8px,2vw,32px);border:clamp(4px,.8vw,12px) solid #5b3b1f;box-shadow:inset 0 0 40px #00000073,0 6px 18px #00000059;position:relative}.table-felt .card:not(.small){--cw: var(--table-w)}.seat{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:clamp(11px,.9vw,14px);min-width:clamp(76px,10vw,170px);padding:clamp(6px,.8vw,12px);border-radius:14px;background:#0000002e;border:2px solid transparent;transition:box-shadow .2s,border-color .2s}.seat.team-A{border-color:#e0b84a59}.seat.team-B{border-color:#6fb8e059}.seat.top{flex-direction:row;align-self:center;gap:14px;margin-bottom:8px}.seat-info{display:flex;flex-direction:column;align-items:center;gap:3px}.seat-stat{opacity:.8}.seat-stat-dim{font-size:.85em;opacity:.7}.name-chip{font-weight:700;padding:3px 10px;border-radius:999px;color:#1c1c1c;max-width:clamp(70px,10vw,160px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name-chip.team-A{background:var(--team-a)}.name-chip.team-B{background:var(--team-b)}.seat.turn{border-color:#fff2c4;box-shadow:0 0 0 2px #e0b84a,0 0 22px #e0b84a99;background:#e0b84a1f}.fan{position:relative;width:calc(var(--small-w) * 2.3);height:calc(var(--small-w) * 1.65)}.fan .card{position:absolute;top:0;left:calc(50% - var(--small-w) / 2);margin:0;transform-origin:50% 120%;transform:rotate(var(--a, 0deg));animation:none}.card{--cw: var(--hand-w);width:var(--cw);aspect-ratio:167 / 243;height:auto;position:relative;border-radius:calc(var(--cw) * .07);background:#fdfaf2;border:none;box-shadow:0 1px 3px #0006;display:block;padding:0;overflow:hidden;flex-shrink:0;transition:transform .15s ease-out,box-shadow .15s}.card img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.card.small{--cw: var(--small-w)}.card.small+.card.small{margin-left:calc(var(--small-w) * -.55)}.card.selected{outline:3px solid #e0b84a;transform:translateY(-14%);z-index:5}.my-hand .card.selected{transform:translateY(-18%) scale(1.25);transform-origin:50% 100%}@media (hover: hover){.my-hand .card:hover{transform:translateY(-12%) scale(1.5);transform-origin:50% 100%;z-index:10;box-shadow:0 8px 22px #0000008c}.table-felt .card:hover{transform:scale(1.5);z-index:10;box-shadow:0 8px 22px #0000008c}}.card.dimmed{opacity:.4}.card:disabled{cursor:default}.card.tappable:not(:disabled){cursor:pointer}@keyframes cardIn{0%{opacity:0;transform:translateY(-14px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}.card.deal-in{animation:cardIn .22s ease-out backwards}@keyframes flyAway{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--fly-x),var(--fly-y)) scale(.6)}}.flying{position:relative;animation:flyAway .42s ease-in both;pointer-events:none}.fly-bottom{--fly-x: 0px;--fly-y: 160px}.fly-top{--fly-x: 0px;--fly-y: -160px}.fly-left{--fly-x: -160px;--fly-y: 0px}.fly-right{--fly-x: 160px;--fly-y: 0px}@keyframes flyIn{0%{opacity:0;transform:translate(var(--fly-x),var(--fly-y)) scale(.6)}to{opacity:1;transform:translate(0) scale(1)}}.arriving{animation:flyIn .3s ease-out both}.capture-reveal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;pointer-events:none;z-index:45}.capture-reveal-items{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}@keyframes captureGlow{0%,to{box-shadow:0 0 #e0b84a00}50%{box-shadow:0 0 0 4px #e0b84af2,0 0 20px #e0b84abf}}.capture-highlight{animation:captureGlow .6s ease-in-out infinite;border-radius:10px}@keyframes captureFade{0%{opacity:0}to{opacity:1}}.capture-reveal.reduced{animation:captureFade .15s ease-out both}.build-reveal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:4%;gap:10px;pointer-events:none;z-index:44}.build-reveal-cards{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.build-reveal-card{transform:scale(.85)}.build-reveal-label{margin:0;padding:4px 10px;background:#141414d9;color:#f0d78c;border-radius:8px;font-size:13px;font-weight:600;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis;animation:captureFade .2s ease-out both}.build-reveal.reduced .build-reveal-label{animation:captureFade .15s ease-out both}@keyframes moverGlow{0%,to{box-shadow:none}40%{box-shadow:0 0 0 3px #e0b84ae6,0 0 18px #e0b84a99}}.seat.mover .seat-info,.my-area.mover .my-label{animation:moverGlow .7s ease-out;border-radius:10px}@media (prefers-reduced-motion: reduce){.card.deal-in{animation:none}.flying{animation:none;display:none}.arriving{animation:none}.seat.mover .seat-info,.my-area.mover .my-label,.capture-highlight{animation:none;outline:2px solid rgba(224,184,74,.9)}.deal-flight,.shuffle-anim,.deal-overlay-live{display:none}.deal-fade-pulse,.deal-overlay.deal-fade{animation:none}.card,.seat{transition:none}.my-hand .card:hover,.table-felt .card:hover,.my-hand .card.selected{transform:translateY(-8%)}}.house{display:flex;flex-direction:column;align-items:center;background:#00000040;border-radius:12px;padding:clamp(4px,.6vw,10px) clamp(6px,.9vw,14px);border:2px dashed #e0b84a;color:inherit}.house.cemented{border-style:solid;border-color:#6fb8e0}.house.selected{outline:3px solid #e0b84a}.house-value{font-size:clamp(16px,1.6vw,28px);font-weight:700;color:#e0b84a}.house-stack{--step: calc(var(--small-w) * .42);position:relative;margin-top:4px;width:calc(var(--small-w) + (var(--n, 1) - 1) * var(--step));height:calc(var(--small-w) * 243 / 167)}.house-stack-card{position:absolute;top:0;left:calc(var(--i, 0) * var(--step))}.house-tag{font-size:10px;opacity:.8;margin-top:2px;text-transform:uppercase;letter-spacing:.04em}.house-tag.pakka{color:#6fb8e0}.house-tag.kacha{color:#e0b84a}.house-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0009;display:flex;align-items:center;justify-content:center}.house-modal{background:#1d1d2e;border:1px solid #e0b84a;border-radius:14px;padding:18px;max-width:90vw;text-align:center}.house-modal-cards{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:10px 0}.action-bar{position:relative;z-index:20;padding:10px 4px;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}.chip-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.result-row{display:flex;gap:16px;justify-content:center}.result-col{background:#ffffff0f;border-radius:10px;padding:10px 14px;min-width:120px}.result-label{font-weight:700;margin-bottom:4px}.result-line{font-size:13px;opacity:.85}.result-total{font-size:22px;font-weight:700;color:#e0b84a;margin-top:4px}.chip{padding:10px 16px;border-radius:20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:inherit;font-size:15px;min-height:42px}.chip.primary{background:#e0b84a;color:#222;font-weight:700;border-color:#e0b84a}.chip.ghost{opacity:.7}.chip:disabled{opacity:.3}.my-area{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 0 10px;border-radius:16px;transition:box-shadow .2s}.my-label{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;width:100%;max-width:calc(var(--hand-w) * 12);font-size:clamp(11px,.9vw,14px);position:relative;z-index:15}.my-who{display:flex;align-items:center;gap:10px;flex-shrink:0}.sort-btn{display:flex;align-items:center;gap:5px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:inherit;padding:5px 9px;border-radius:8px;font-size:11px;flex-shrink:0}.sort-btn-label{white-space:nowrap}.turn-ring{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:conic-gradient(#e0b84a var(--pct),rgba(255,255,255,.18) var(--pct))}.turn-ring span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#123a2c;color:#fff;font-size:11px;font-weight:700}.turn-ring.danger{background:conic-gradient(#d04c4c var(--pct),rgba(255,255,255,.18) var(--pct))}.seat-name-row .turn-ring{width:26px;height:26px}.seat-name-row .turn-ring span{width:19px;height:19px;font-size:10px}.my-hand{--hand-gap: min(8px, calc((100vw - 40px - 12 * var(--hand-w)) / 11));display:flex;justify-content:center;padding:18px 4px 4px}.hand-card-wrap{touch-action:none}.hand-card-wrap+.hand-card-wrap{margin-left:var(--hand-gap)}.hand-insert-marker{width:3px;align-self:stretch;min-height:calc(var(--hand-w) * 1.4);background:#e0b84a;border-radius:2px;margin:0 2px;flex-shrink:0}.drag-ghost{position:fixed;z-index:90;transform:translate(-50%,-60%);pointer-events:none;opacity:.9}.drop-target .house,.drop-target .card{outline:3px solid #e0b84a}.toast.error{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#b23b3b;color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;max-width:90vw;z-index:50;text-align:center}.toast.info{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#2f6fb0;color:#fff;border:none;padding:8px 14px;border-radius:8px;font-size:13px;max-width:90vw;z-index:50;text-align:center;cursor:pointer}.deal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;pointer-events:none;background:#0a0a1440;color:#fff;font-size:15px}.deal-overlay .deal-label{position:fixed;left:50%;bottom:4%;transform:translate(-50%);margin:0;background:#0a0a14b3;padding:6px 14px;border-radius:999px;white-space:nowrap}.shuffle-anim{position:fixed;display:flex;gap:6px;transform:translate(-50%,-50%)}.shuffle-card{width:34px;height:48px;border-radius:6px;background:#1b3a63;border:1px solid #4a6fa5;animation:shuffle-jitter .5s ease-in-out infinite alternate}.shuffle-card:nth-child(2){animation-delay:.12s}.shuffle-card:nth-child(3){animation-delay:.24s}@keyframes shuffle-jitter{0%{transform:translateY(0) rotate(-6deg)}to{transform:translateY(-8px) rotate(6deg)}}.deal-flight{position:fixed;transform:translate(-50%,-50%);animation-name:deal-fly;animation-timing-function:ease-out;animation-fill-mode:forwards;will-change:transform}@keyframes deal-fly{0%{transform:translate(-50%,-50%) translate(0);opacity:0}10%{opacity:1}to{transform:translate(-50%,-50%) translate(var(--dx),var(--dy));opacity:1}}.deal-overlay.deal-fade{display:flex;align-items:flex-end;justify-content:center;padding-bottom:6%;background:transparent;animation:deal-fade-pulse .35s ease-out}@keyframes deal-fade-pulse{0%{opacity:0}to{opacity:1}}.rejoin-requests{position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:6px;width:min(92vw,420px)}.rejoin-request{background:#2a2a40;border:1px solid #e0b84a;border-radius:10px;padding:8px 10px;display:flex;align-items:center;gap:8px;font-size:13px;box-shadow:0 4px 14px #0006}.rejoin-request span{flex:1}.chat-panel{position:fixed;right:8px;bottom:8px;z-index:40;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.chat-toggle{position:relative;background:#0009;border:1px solid rgba(255,255,255,.3);color:inherit;padding:6px 12px;border-radius:16px;font-size:12px}.chat-badge{position:absolute;top:-6px;right:-6px;background:#b23b3b;color:#fff;font-size:10px;min-width:16px;height:16px;line-height:16px;border-radius:8px;padding:0 4px}.chat-bubble{position:absolute;top:6px;left:50%;transform:translate(-50%);max-width:min(80%,320px);background:#000c;border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:6px 10px;font-size:12px;z-index:30;animation:chat-bubble-pop .2s ease-out}@keyframes chat-bubble-pop{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.chat-body{width:min(240px,80vw);max-height:240px;background:#000000d9;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px}.chat-log{overflow-y:auto;max-height:150px;font-size:12px;display:flex;flex-direction:column;gap:4px}.chat-body form{display:flex;gap:6px}.chat-body input{margin-bottom:0;font-size:13px;padding:8px}.chat-body button{background:#e0b84a;border:none;border-radius:8px;padding:0 12px;font-weight:700}.screen.game{position:relative}.scorebar-mid{display:flex;gap:8px}.my-area.turn{box-shadow:0 0 0 2px #e0b84a,0 0 26px #e0b84a8c;background:#e0b84a14}.turn-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;text-align:right;min-width:0}.banner{margin:0;font-size:clamp(11px,.95vw,14px);font-weight:600}.turn-pill{padding:3px 12px;border-radius:999px;font-size:clamp(12px,.9vw,14px);font-weight:700;background:#ffffff24;border:1px solid rgba(255,255,255,.35);white-space:nowrap}.turn-pill.mine{background:#e0b84a;border-color:#e0b84a;color:#1c1c1c}.chip.off{opacity:.4;cursor:help}.hint.why{color:#ffd98a;font-weight:600}.move-log{position:absolute;top:64px;left:12px;width:clamp(180px,18vw,280px);margin:0;padding:8px 10px;list-style:none;background:#00000047;border-radius:10px;font-size:12px;display:flex;flex-direction:column;gap:3px;z-index:2}.move-log li{opacity:.7}.move-log li:last-child{opacity:1;font-weight:600}.move-log li.seep{color:#ffd98a}@media (max-width: 900px){.move-log{position:static;width:auto;margin-bottom:8px}.move-log li:nth-last-child(n+4){display:none}}@keyframes seepPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.seep-toast{position:fixed;top:42%;left:50%;transform:translate(-50%,-50%);z-index:60;background:#141414e0;border:3px solid #e0b84a;border-radius:18px;padding:18px 36px;text-align:center;pointer-events:none;animation:seepPop .25s ease-out}.seep-word{font-size:clamp(44px,7vw,96px);font-weight:900;letter-spacing:.08em;color:#e0b84a;line-height:1}.tips{position:fixed;left:50%;bottom:clamp(140px,30vh,280px);transform:translate(-50%);z-index:55;width:min(420px,92vw);background:#fdfaf2;color:#1c1c1c;border-radius:14px;padding:14px 18px;box-shadow:0 10px 30px #00000080}.tips h3{margin:0 0 6px}.tips ul{margin:0 0 12px;padding-left:18px;font-size:14px;line-height:1.4}.rules-sheet{width:min(560px,94vw);max-height:86vh;padding:0;border:none;border-radius:14px;background:#fdfaf2;color:#1c1c1c}.rules-sheet::backdrop{background:#0000008c}.rules-sheet form{padding:18px 22px;font-size:14px;line-height:1.45}.rules-sheet h2{margin:0 0 6px}.rules-sheet h3{margin:14px 0 4px;font-size:15px}.rules-sheet p,.rules-sheet ul{margin:0}.rules-sheet ul{padding-left:18px}.rules-sheet .primary{margin-top:16px;width:100%}@media (prefers-reduced-motion: reduce){.seep-toast{animation:none}.my-area{transition:none}}.presence-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#6b6b6b;box-shadow:0 0 0 2px #00000040}.presence-dot.online{background:#4caf6b}.lobby-seat .presence-dot{position:absolute;top:-4px;left:6px}.seat-info .presence-dot{margin-right:4px}.seat-name-row{display:flex;align-items:center;gap:4px}.voice-controls{display:inline-flex;gap:4px}.voice-indicator{display:inline-flex;align-items:center;gap:4px}.voice-bars{display:inline-flex;align-items:flex-end;gap:1.5px;height:12px;width:16px;flex-shrink:0}.voice-bar{width:2.5px;height:calc(3px + var(--lvl, 0) * 9px);background:#4a90d9;border-radius:1px;transition:height .1s ease-out}.voice-bars.muted{position:relative}.voice-bars.muted .voice-bar{background:#6b6b6b}.voice-bars.muted:after{content:"";position:absolute;right:-2px;bottom:-1px;left:-2px;border-top:1.5px solid #c0392b;transform:rotate(135deg);top:50%}.voice-status{font-size:10px;line-height:1;color:#ffffffa6;white-space:nowrap}.voice-status.err{color:#e06c6c}@media (max-width: 480px){.voice-status{display:none}}.seat-voice-btn{position:relative;display:inline-flex;align-items:center;gap:1px}.seat-voice-mute,.seat-voice-chevron{background:none;border:none;color:#ffffffbf;padding:2px;line-height:0;display:inline-flex;touch-action:manipulation}.seat-voice-mute svg{width:13px;height:13px}.seat-voice-chevron{padding:2px 0;opacity:.6}.seat-voice-popover{position:absolute;top:100%;left:50%;transform:translate(-50%);z-index:50;margin-top:6px;display:flex;flex-direction:column;gap:6px;background:#2a2a40;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:10px;width:max-content;max-width:calc(100vw - 16px);box-shadow:0 4px 14px #0006}.seat.left .seat-voice-popover{left:0;transform:none}.seat.right .seat-voice-popover{left:auto;right:0;transform:none}.seat.empty-seat{border-style:dashed;opacity:.85}.seat-empty-sit{background:none;border:1px dashed rgba(255,255,255,.4);color:inherit;border-radius:10px;padding:4px 10px;font-size:12px}.pause-banner{position:sticky;top:0;z-index:30;text-align:center;background:#b23b3b;color:#fff;font-weight:600;padding:8px 10px;border-radius:10px;margin:0 0 8px}.host-menu{position:relative}.host-menu-panel{position:absolute;top:100%;right:0;z-index:50;margin-top:6px;display:flex;flex-direction:column;gap:6px;background:#2a2a40;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:10px;width:max-content;box-shadow:0 4px 14px #0006}.host-menu-section{display:flex;flex-direction:column;gap:4px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.15)}.sound-volume{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#ffffffbf}.sound-volume input[type=range]{width:140px}.table-felt .action-bar{position:absolute;left:50%;bottom:clamp(6px,2vh,18px);transform:translate(-50%);width:min(94%,640px);max-height:60%;overflow-y:auto;background:#08081099;border-radius:14px;padding:8px 10px}.table-felt .action-bar.result-screen{top:50%;bottom:auto;transform:translate(-50%,-50%);background:none}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,.chat-panel,[contenteditable]{-webkit-user-select:text;user-select:text}.card img{-webkit-user-drag:none;user-drag:none;pointer-events:none}.table-felt.drop-throw{outline:3px dashed rgba(224,184,74,.8);outline-offset:-8px}.felt-drop-hint{position:absolute;top:10px;left:50%;transform:translate(-50%);background:#0000008c;color:#e0b84a;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;pointer-events:none;z-index:5}@keyframes spring-back{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}.hand-card-wrap.spring-back{animation:spring-back .4s ease}.drop-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95}.drop-popover{position:fixed;z-index:96;transform:translate(-50%,-110%);display:flex;flex-direction:column;gap:6px;background:#2a2a40;border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:8px;box-shadow:0 6px 18px #0006;max-width:80vw}@media (prefers-reduced-motion: reduce){.hand-card-wrap.spring-back{animation:none}}.house .house-stack{pointer-events:none}.house-owner{font-size:11px;font-weight:600;white-space:nowrap;color:#f3e3b5;max-width:9em;overflow:hidden;text-overflow:ellipsis}.captured-row{display:flex;align-items:flex-end;flex-wrap:wrap;justify-content:center;gap:4px 0;padding:10px 4px 4px}.captured-card{position:relative}.captured-card+.captured-card{margin-left:calc(var(--small-w) * -.45)}.my-hand .captured-card+.captured-card{margin-left:calc(var(--hand-w) * -.45)}.captured-card-pts{position:absolute;bottom:-4px;right:-4px;background:#e0b84a;color:#1c1c1c;font-size:10px;font-weight:700;border-radius:999px;padding:1px 5px;line-height:1.4;box-shadow:0 1px 3px #0006}.captured-other{margin-left:8px}.captured-pile{background:none;border:none;padding:0;min-height:calc(var(--small-w) * 1.65);display:flex;align-items:flex-end;justify-content:center}.pile-stack{position:relative;width:var(--small-w);height:calc(var(--small-w) * 1.45 + 15px)}.pile-back{position:absolute;left:0}.house.team-A,.house.team-A.cemented{border-color:var(--team-a)}.house.team-B,.house.team-B.cemented{border-color:var(--team-b)}.house.team-A .house-owner{color:var(--team-a)}.house.team-B .house-owner{color:var(--team-b)}.seat-avatar{display:none}@media (max-width: 600px){:root{--hand-w: min(17.5vw, 72px);--table-w: min(13.5vw, 56px);--small-w: 26px}.screen.game{min-height:100vh;min-height:100dvh;padding:max(4px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) 0 max(6px,env(safe-area-inset-left));gap:4px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:36px}.room-code-btn{font-size:13px;font-weight:700;letter-spacing:.06em;padding:6px 10px}.topbar-icons{display:flex;align-items:center;gap:4px}.topbar .chip{min-height:34px;min-width:36px;padding:6px 9px;font-size:13px;line-height:1}.topbar .chip svg{margin-right:0!important}.topbar .voice-controls{flex-wrap:nowrap;gap:4px}.host-menu-panel{max-width:calc(100vw - 16px)}.more-panel{min-width:190px}.more-panel .link-btn,.more-panel>.chip,.more-panel .host-menu>.chip{width:100%;min-height:40px;font-size:14px;text-align:left}.more-panel .host-menu-panel{position:static;margin-top:6px;box-shadow:none;width:auto;background:#ffffff0d}.scorestrip{display:flex;justify-content:space-between;gap:8px;padding:2px 4px;font-size:12px}.scorestrip .score{flex-direction:row;align-items:baseline;gap:6px;min-width:0;max-width:50%}.scorestrip .score.team-B{flex-direction:row-reverse}.scorestrip .score-label{font-size:11px;min-width:0}.scorestrip .score-total{font-size:16px;flex-shrink:0}.scorestrip .score-sub{font-size:10px;flex-shrink:2;min-width:0}.move-log-mini{position:relative;z-index:26}.move-log-toggle{width:100%;display:flex;align-items:center;gap:6px;background:#00000047;border:none;border-radius:8px;color:inherit;font-size:12px;padding:5px 10px;min-height:26px;text-align:left}.move-log-toggle span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.move-log-toggle .seep{color:#ffd98a}.move-log-list{position:absolute;top:calc(100% + 4px);left:0;right:0;margin:0;padding:8px 10px;list-style:none;background:#081410f2;border:1px solid rgba(255,255,255,.15);border-radius:10px;box-shadow:0 8px 20px #00000073;font-size:12px;display:flex;flex-direction:column;gap:4px}.move-log-list li{opacity:.75}.move-log-list li:last-child{opacity:1;font-weight:600}.move-log-list li.seep{color:#ffd98a}.seat{position:relative;min-width:0;padding:4px;gap:3px;font-size:10px;border-radius:12px;border-width:1.5px}.seat .fan,.seat .seat-stat-dim,.seat .seat-stat+.seat-stat,.seat-name-row>.presence-dot,.seat-name-row>.turn-ring,.bot-suffix,.you-suffix{display:none}.seat.left,.seat.right{width:54px;flex-shrink:0}.seat.top{gap:8px;margin-bottom:0;padding:4px 10px 4px 4px}.seat.top .seat-info{align-items:flex-start}.seat-avatar{position:relative;display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;font-weight:800;font-size:15px;color:#1c1c1c}.seat-avatar.team-A{background:var(--team-a)}.seat-avatar.team-B{background:var(--team-b)}.seat-avatar .presence-dot{position:absolute;top:-1px;left:-1px}.seat-count{position:absolute;right:-6px;bottom:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#12271f;border:1px solid rgba(255,255,255,.45);color:#fff;font-size:10px;font-weight:700;line-height:15px;text-align:center}.seat-avatar .turn-ring{position:absolute;top:-9px;right:-11px;width:22px;height:22px}.seat-avatar .turn-ring span{width:16px;height:16px;font-size:9px}.seat-name-row{flex-wrap:wrap;justify-content:center;gap:2px}.name-chip{max-width:50px;padding:1px 5px;font-size:10px}.seat.top .name-chip{max-width:120px;font-size:11px}.seat .seat-stat{opacity:.85;white-space:nowrap}.seat .captured-pile{min-height:0}.seat .captured-row{position:absolute;top:100%;z-index:30;width:max-content;max-width:70vw;background:#081410f2;border-radius:10px;padding:10px 14px 6px}.seat.left .captured-row{left:0}.seat.right .captured-row{right:0}.seat.top .captured-row{left:50%;transform:translate(-50%)}.middle-row{position:relative;gap:4px;align-items:center;min-height:0}.table-felt{align-self:stretch;min-width:0;min-height:220px;border-radius:22px;border-width:4px;padding:10px 6px;gap:8px}.house{padding:3px 5px;border-radius:9px}.house-value{font-size:15px}.house-owner{font-size:9px;max-width:6em}.house-tag{font-size:8px}.table-felt>.hint{font-size:12px}.felt-drop-hint{top:6px}.action-bar .chip{min-height:36px;padding:7px 12px;font-size:13px}.action-bar .chip-row{gap:6px}.table-felt .action-bar{width:calc(100% - 8px);bottom:6px;padding:6px}.table-felt .action-bar.result-screen{padding:4px}.result-screen h3{margin:0 0 8px;font-size:16px}.result-row{gap:8px}.result-col{min-width:0;flex:1;padding:8px}.result-label{font-size:12px}.result-line{font-size:11px}.result-screen .primary{margin-top:8px;font-size:16px;padding:10px 20px}.chat-panel.compact{position:absolute;right:0;bottom:2px;flex-direction:column-reverse;z-index:40}.chat-panel.compact .chat-toggle{width:40px;height:40px;padding:0;border-radius:50%;display:grid;place-items:center}.chat-panel.compact .chat-body{width:min(280px,calc(100vw - 20px))}.my-area{gap:2px;padding:4px 4px max(6px,env(safe-area-inset-bottom));border-radius:14px 14px 0 0}.my-label{flex-wrap:nowrap;align-items:flex-start;gap:6px;padding:0 2px;font-size:11px}.my-who{gap:5px}.my-who .name-chip{max-width:90px;font-size:11px}.turn-status{flex:1;gap:4px 6px}.turn-pill{padding:2px 9px;font-size:11px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.turn-ring{width:26px;height:26px}.turn-ring span{width:19px;height:19px;font-size:10px}.turn-status .banner,.turn-status .hint{flex-basis:100%;font-size:11px;margin:0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.turn-status .hint{-webkit-line-clamp:1;font-size:10px}.my-hand{--hand-gap: min(4px, calc((100vw - 20px - var(--n, 11) * var(--hand-w)) / max(var(--n, 11) - 1, 1)));padding:20px 0 2px;width:100%}.my-hand .card{box-shadow:-2px 0 4px #00000059}.my-hand .card.selected{transform:translateY(-24%) scale(1.08);box-shadow:0 6px 16px #0000008c}.my-hand .captured-card+.captured-card{margin-left:calc(var(--hand-w) * -.6)}.captured-other{font-size:12px;opacity:.8}.toast.error,.toast.info{top:calc(env(safe-area-inset-top) + 74px);bottom:auto}.tips{bottom:34vh}}.table-facedown{display:inline-block}.table-facedown .card-back,.table-facedown>*{width:var(--table-w, 64px)}.flip-in{animation:tableFlip .6s ease-out both}@keyframes tableFlip{0%{transform:rotateY(90deg)}to{transform:rotateY(0)}}@media (prefers-reduced-motion: reduce){.flip-in{animation:none}}
