:root{--bg: #f1ece3;--panel: #ffffff;--panel-2: #f7f2e8;--text: #16161a;--muted: #9a988f;--accent: #e86b3a;--accent-hover: #d75c2c;--danger: #d9483b;--navy: #17263f;--border: #16161a;--shadow: 4px 4px 0 var(--border);--shadow-sm: 3px 3px 0 var(--border);--felt: #1d6b4b;--felt-dark: #0f3f2c;--rail: #5c3a24;--rail-light: #7b5232;--gold: #e3b45a;--cw-lg: 3.4rem;--cw-md: 2.6rem;--cw-sm: 2.1rem;--cw-xs: 1.2rem;--card-bg: #fdfbf6;--card-red: #c62b23;--card-ink: #17171b;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme]){--bg: #1b1917;--panel: #262320;--panel-2: #302c27;--text: #f1ece3;--muted: #a29d90;--accent: #f07a45;--accent-hover: #ff8a54;--danger: #e8615a;--navy: #223a5e;--border: #e7ddc7;--felt: #185a3f;--felt-dark: #0b3323;--rail: #43291a;--rail-light: #5e3c25;color-scheme:dark}}:root[data-theme=dark]{--bg: #1b1917;--panel: #262320;--panel-2: #302c27;--text: #f1ece3;--muted: #a29d90;--accent: #f07a45;--accent-hover: #ff8a54;--danger: #e8615a;--navy: #223a5e;--border: #e7ddc7;--felt: #185a3f;--felt-dark: #0b3323;--rail: #43291a;--rail-light: #5e3c25;color-scheme:dark}@media(min-width:560px){:root{--cw-lg: 4.2rem;--cw-md: 3.2rem;--cw-sm: 2.6rem;--cw-xs: 1.8rem}}*{box-sizing:border-box}body{margin:0;font-family:Arial Narrow,Helvetica Neue,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:clip}.app{max-width:900px;margin:0 auto;padding:1.25rem .75rem calc(4rem + env(safe-area-inset-bottom))}@media(min-width:600px){.app{padding:2rem 1rem 3rem}}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem .9rem;margin-bottom:1.5rem}.header-actions{display:flex;align-items:center;gap:.5rem}.icon-btn{width:2rem;height:2rem;border-radius:50%;border:2px solid var(--border);background:var(--panel);color:var(--text);font-weight:800;font-size:1rem;cursor:pointer;box-shadow:2px 2px 0 var(--border);line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon-btn:hover{background:var(--accent);color:#fff}.app-header h1{margin:0;font-size:1.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}@media(min-width:600px){.app-header{margin-bottom:2rem}.app-header h1{font-size:2rem}}.app-header h1 .accent{color:var(--accent)}.momo-link{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:999px;border:2px solid var(--border);background:var(--panel);color:var(--text);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;box-shadow:2px 2px 0 var(--border);white-space:nowrap;transition:transform .05s ease}.momo-link:hover{background:var(--accent);color:#fff;transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border)}.auth-gate{max-width:440px;margin:2.5rem auto 0}.auth-card{display:flex;flex-direction:column;gap:.85rem;text-align:center}.auth-card h2{margin-bottom:0}.auth-note{font-size:.75rem;margin:0}.btn-google{display:inline-flex;align-items:center;justify-content:center;gap:.55rem}.btn-google .g-mark{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:999px;background:#fff;color:#4285f4;border:2px solid var(--border);font-weight:900;font-size:.8rem;line-height:1}.username-form{display:flex;flex-direction:column;gap:.6rem;text-align:left}.username-form .name-input,.username-form .btn{width:100%}.username-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.username-error{margin:0;text-align:left}.auth-signout{align-self:center;background:transparent;box-shadow:none}.identity-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .35rem .3rem .6rem;border:2px solid var(--border);border-radius:999px;background:var(--panel);box-shadow:2px 2px 0 var(--border);max-width:12rem}.identity-name{font-weight:700;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity-signout{border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:.9rem;line-height:1;padding:0 .15rem}.identity-signout:hover{color:var(--danger)}.playing-as{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem}.playing-as-btn{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;transition:transform .05s ease,box-shadow .05s ease}.playing-as-btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--border)}.playing-as-btn:hover .playing-as-chevron{color:var(--accent)}.playing-as-chevron{margin-left:auto;flex-shrink:0;color:var(--muted);font-size:1.6rem;line-height:1}.playing-as-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.6rem;height:2.6rem;border-radius:999px;border:2px solid var(--border);background:var(--accent);color:#fff;font-weight:800;font-size:1.25rem;line-height:1;box-shadow:2px 2px 0 var(--border)}.playing-as-info{display:flex;flex-direction:column;gap:.1rem;min-width:0;line-height:1.2}.playing-as-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.playing-as-name{font-size:1.25rem;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.install-banner{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:.75rem;width:calc(100% - 2rem);max-width:460px;padding:.7rem .85rem;background:var(--panel);border:2px solid var(--border);border-radius:10px;box-shadow:var(--shadow);animation:install-rise .25s ease}@keyframes install-rise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.install-icon{font-size:1.6rem;line-height:1}.install-text{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0;font-size:.78rem;color:var(--muted)}.install-text strong{font-size:.9rem;color:var(--text)}.install-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.install-close{width:1.9rem;height:1.9rem;font-size:.85rem}.home{display:grid;gap:1.5rem;grid-template-columns:1fr;max-width:440px;margin:0 auto}.card{background:var(--panel);border:2px solid var(--border);border-radius:6px;padding:1.5rem;box-shadow:var(--shadow);min-width:0}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.mode-tab{padding:.7rem .5rem;border:2px solid var(--border);border-radius:6px;background:var(--panel);color:var(--muted);font-family:inherit;font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;box-shadow:var(--shadow-sm)}.mode-tab-active{background:var(--accent);color:#fff}.card h2{margin:0 0 .3rem;font-size:1.25rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.muted{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:.25rem 0 1.1rem}.time-controls{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.1rem}.chip{padding:.6rem .5rem;border-radius:5px;border:2px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;transition:transform .05s ease}.chip-active{background:var(--accent);color:#fff}.btn{padding:.7rem 1rem;border-radius:5px;border:2px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;box-shadow:var(--shadow-sm);transition:transform .05s ease,box-shadow .05s ease}.btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--border)}.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--accent);color:#fff;width:100%}.btn-danger{background:var(--danger);color:#fff}.btn-leave-header{width:auto;padding:.4rem .8rem;font-size:.72rem;box-shadow:2px 2px 0 var(--border)}.leave-modal,.confirm-modal{background:var(--panel);border:2px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:1.5rem;width:min(340px,100%);text-align:center;display:flex;flex-direction:column;gap:.5rem}.leave-modal h2,.confirm-modal h2{margin:0;font-size:1.2rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.leave-modal .muted,.confirm-modal .muted{margin:0 0 .6rem}.leave-modal .btn-row .btn,.confirm-modal .btn-row .btn{flex:1;width:auto}.stepper{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.stepper-label{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.stepper-controls{display:inline-flex;align-items:center;gap:.5rem}.stepper-btn{width:2.1rem;height:2.1rem;border-radius:5px;border:2px solid var(--border);background:var(--panel);color:var(--text);font-size:1.2rem;font-weight:800;line-height:1;cursor:pointer;box-shadow:2px 2px 0 var(--border);display:inline-flex;align-items:center;justify-content:center}.stepper-btn:hover:not(:disabled){background:var(--accent);color:#fff}.stepper-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.stepper-value{min-width:1.6rem;text-align:center;font-size:1.2rem;font-weight:800;font-variant-numeric:tabular-nums}.stepper-note{margin:-.2rem 0 1.1rem;text-transform:none;letter-spacing:normal;font-size:.72rem}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.timer-chips{display:inline-flex;gap:.35rem}.chip-sm{padding:.35rem .55rem;font-size:.72rem}.lobby-setting{margin:0;color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:center}.lobby-setting b{color:var(--accent)}.join-form{display:flex;gap:.6rem}.code-input,.name-input{flex:1;min-width:0;width:100%;padding:.65rem .75rem;border-radius:5px;border:2px solid var(--border);background:var(--panel);color:var(--text);font-size:1.1rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.name-input{letter-spacing:.05em;text-transform:none}.code-input:focus,.name-input:focus{outline:none;border-color:var(--accent)}.error{color:var(--danger);text-align:center;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem}.game{display:flex;flex-direction:column;gap:.8rem;max-width:620px;margin:0 auto;position:relative}.table-bar{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .9rem;border-radius:999px;background:var(--navy);color:#fff;border:2px solid var(--border);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;box-shadow:var(--shadow-sm)}.bar-turn{color:#ffffffb3}.bar-turn-mine{color:var(--gold)}.turn-timer{margin-left:.4rem;padding:.05rem .4rem;border-radius:999px;background:#ffffff26;font-variant-numeric:tabular-nums;font-size:.68rem}.turn-timer-low{background:var(--danger);color:#fff;animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.turn-timer-low{animation:none}}.bar-score em{font-style:normal;opacity:.55}.pcard{--cw: var(--cw-md);position:relative;display:inline-block;width:var(--cw);height:calc(var(--cw) * 1.42);flex-shrink:0;padding:0;border:none;border-radius:calc(var(--cw) * .11);background:var(--card-bg);color:var(--card-ink);font-family:inherit;line-height:1;box-shadow:0 0 0 1px #00000047,0 2px 4px #0000004d;transition:transform .12s ease,box-shadow .12s ease}.pcard-lg{--cw: var(--cw-lg)}.pcard-sm{--cw: var(--cw-sm)}.pcard-xs{--cw: var(--cw-xs)}.pcard-red{color:var(--card-red)}.pcard-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:.95}.pcard-corner b{font-size:calc(var(--cw) * .3);font-weight:800;letter-spacing:-.03em}.pcard-corner i{font-style:normal;font-size:calc(var(--cw) * .24)}.pcard-tl{top:calc(var(--cw) * .07);left:calc(var(--cw) * .08)}.pcard-br{bottom:calc(var(--cw) * .07);right:calc(var(--cw) * .08);transform:rotate(180deg)}.pcard-pip{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:calc(var(--cw) * .52)}.pcard-xs .pcard-pip,.pcard-xs .pcard-br{display:none}.pcard-xs .pcard-tl{top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;gap:.05em}.pcard-xs .pcard-corner b{font-size:calc(var(--cw) * .42)}.pcard-xs .pcard-corner i{font-size:calc(var(--cw) * .38)}.pcard-joker{color:#7b3fa0}.pcard-clickable{cursor:pointer}.pcard-clickable:hover{filter:brightness(1.04)}.pcard-selected{box-shadow:0 0 0 2px var(--accent),0 8px 14px #00000059}.pcard-back{background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(255,255,255,.16) 3px,rgba(255,255,255,.16) 6px),linear-gradient(160deg,#b23a34,#7d211d);border:1px solid rgba(255,255,255,.35)}.table-wrap{padding:.4rem 0}.table-felt{position:relative;aspect-ratio:5 / 4.5;max-width:33rem;margin:0 auto;border-radius:46%/52%;background:radial-gradient(ellipse at 50% 44%,var(--felt) 0%,var(--felt-dark) 80%);border:clamp(7px,2.2vw,13px) solid var(--rail);box-shadow:inset 0 0 0 2px #00000059,inset 0 6px 26px #00000073,0 0 0 2px var(--rail-light),0 10px 24px #00000052}.felt-mark{position:absolute;left:50%;top:37%;transform:translate(-50%,-50%);color:#ffffff1a;font-size:clamp(.8rem,3.4vw,1.4rem);font-weight:800;letter-spacing:.42em;text-indent:.42em;pointer-events:none;white-space:nowrap}.table-center{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);display:flex;align-items:flex-start;justify-content:center;gap:clamp(.5rem,2.5vw,1.2rem)}.table-center-tight{--cw-sm: 1.7rem}.table-center-tight .slot{padding:.12rem;border-width:1px;border-radius:6px;gap:.18rem}.slot{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.3rem;border:2px dashed rgba(255,255,255,.22);border-radius:8px;background:transparent;font-family:inherit;cursor:default}button.slot-live{cursor:pointer}.slot-live,.slot-live .pcard{touch-action:none;user-select:none;-webkit-user-select:none}.slot-live{border-color:var(--gold);border-style:solid;background:#e3b45a24;animation:pulse-slot 1.6s ease-in-out infinite}.slot-live:hover{background:#e3b45a42}@keyframes pulse-slot{0%,to{box-shadow:0 0 #e3b45a80}50%{box-shadow:0 0 0 6px #e3b45a00}}@media(prefers-reduced-motion:reduce){.slot-live{animation:none}}.slot-cards{position:relative;display:flex;align-items:center;justify-content:center;min-width:var(--cw-sm);height:calc(var(--cw-sm) * 1.42)}.slot-empty{width:var(--cw-sm);height:calc(var(--cw-sm) * 1.42)}.slot-cards .pcard-selected{transform:translateY(-7px);z-index:30}.slot-label{color:#ffffffb8;font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.seat{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.2rem;width:max-content;padding:.25rem .4rem;border-radius:9px;background:#00000073;border:2px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.seat-self{background:#0000008c;border-color:#ffffff4d}.seat-turn{border-color:var(--gold);box-shadow:0 0 12px #e3b45a99}.seat-out{opacity:.45}.seat-offline{opacity:.7;border-style:dashed;border-color:var(--danger)}.seat-offline-tag{color:var(--danger);font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.seat-emote{position:absolute;bottom:100%;left:50%;font-size:1.9rem;pointer-events:none;z-index:12;transform-origin:bottom center;animation:emote-pop 2.6s ease-out forwards;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}@keyframes emote-pop{0%{opacity:0;transform:translate(-50%,6px) scale(.4)}12%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}22%{transform:translate(-50%,-10px) scale(1)}75%{opacity:1;transform:translate(-50%,-18px) scale(1)}to{opacity:0;transform:translate(-50%,-34px) scale(.9)}}@media(prefers-reduced-motion:reduce){.seat-emote{animation:emote-fade 2.6s ease-out forwards}@keyframes emote-fade{0%,80%{opacity:1;transform:translate(-50%,-12px)}to{opacity:0;transform:translate(-50%,-12px)}}}.emote-bar{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:30;display:flex;flex-direction:column;align-items:center;gap:.5rem}.emote-toggle{width:3rem;height:3rem;border-radius:50%;border:2px solid var(--border);background:var(--panel);font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center}.emote-toggle:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--border)}.emote-tray{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:.5rem;border:2px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);animation:tray-in .12s ease-out}@keyframes tray-in{0%{opacity:0;transform:translateY(6px)}}.emote-pick{width:2.6rem;height:2.6rem;border:none;border-radius:8px;background:var(--panel-2);font-size:1.5rem;line-height:1;cursor:pointer}.emote-pick:hover{background:var(--accent);transform:scale(1.1)}.seat-right{border-style:dashed;border-color:#ffffff80}.seat-body{display:flex;align-items:center;gap:.35rem}.seat-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;background:hsl(var(--hue) 55% 45%);border:2px solid rgba(255,255,255,.75);color:#fff;font-size:.6rem;font-weight:800;flex-shrink:0}.seat-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}.seat-name{color:#fff;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;max-width:5.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-chips{display:inline-flex;align-items:center;gap:.2rem;color:var(--gold);font-size:.62rem;font-weight:800;font-variant-numeric:tabular-nums}.chip-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--gold);border:1px solid rgba(0,0,0,.4);box-shadow:inset 0 0 0 1px #ffffff80}.seat-cards{display:flex;align-items:center;gap:.3rem}.seat-stack,.seat-discard{display:flex;align-items:center;justify-content:center;min-height:calc(var(--cw-xs) * 1.42)}.seat-discard{padding-left:.3rem;border-left:1px solid rgba(255,255,255,.2);min-width:var(--cw-xs)}.seat-discard-solo{padding-left:0;border-left:none}.seat-note{color:#ffffff73;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.seat-tag{color:var(--gold);font-size:.52rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}@media(max-width:559px){.seat{padding:.2rem .3rem;gap:.12rem}.seat-body{gap:.25rem}.seat-avatar{width:1rem;height:1rem;font-size:.48rem;border-width:1px}.seat-name{font-size:.5rem;max-width:2.5rem}.seat-chips{font-size:.52rem}.chip-dot{width:.38rem;height:.38rem}.seat-tag{font-size:.44rem}.seat-cards{gap:.2rem}}.hand-rail{background:linear-gradient(180deg,var(--felt-dark),var(--felt));border:2px solid var(--border);border-radius:10px;padding:.6rem .8rem .9rem;box-shadow:var(--shadow)}.hand-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;color:#ffffffd1;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.hand-header-right{display:inline-flex;align-items:center;gap:.45rem}.hand-sort{padding:.2rem .55rem;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:#00000047;color:#fff;font-family:inherit;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.hand-sort:hover{background:#00000073;border-color:var(--gold)}.hand-value{background:#00000059;border-radius:999px;padding:.2rem .6rem;color:#fff;font-variant-numeric:tabular-nums}.hand-value-low{background:var(--gold);color:#16161a}.hand-fan{display:flex;align-items:flex-end;justify-content:center;min-height:calc(var(--cw-lg) * 1.62);padding-top:.6rem}.hand-fan .pcard{touch-action:none;user-select:none;-webkit-user-select:none}.hand-fan .pcard-clickable:hover{transform:translateY(-8px)!important;z-index:50!important}.hand-fan .pcard-selected{transform:translateY(-16px)!important;z-index:40!important}.hand-fan .pcard-dragging{transform:translateY(-20px) scale(1.06)!important;box-shadow:0 12px 20px #00000073;cursor:grabbing}.hand-fan .pcard-swiping-up{box-shadow:0 16px 28px #0000008c!important;cursor:grabbing!important}.drag-count-badge{position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:.58rem;font-weight:800;padding:.15rem .4rem;border-radius:999px;border:1.5px solid #fff;box-shadow:0 2px 5px #00000059;pointer-events:none;z-index:10}.drag-floating-card{pointer-events:none;z-index:250;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 14px 28px rgba(0,0,0,.55));will-change:transform,left,top}.drag-floating-badge{margin-top:.35rem;padding:.2rem .55rem;border-radius:999px;background:#000000d9;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.drag-floating-badge-ready{background:var(--gold);color:#16161a;border-color:#fff;box-shadow:0 0 10px #e3b45acc;transform:scale(1.05)}.table-draw-drop{position:absolute;bottom:.9rem;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;padding:.35rem .9rem;border-radius:999px;border:2px dashed rgba(255,255,255,.4);background:#0000008c;color:#ffffffe6;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;z-index:120;pointer-events:none;animation:pulse-drop 1.4s ease-in-out infinite;white-space:nowrap}.table-draw-drop-ready{border-color:var(--gold);border-style:solid;background:#e3b45a52;color:#fff;box-shadow:0 0 14px #e3b45ab3;transform:translate(-50%) scale(1.04)}@keyframes pulse-drop{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.03)}}.hand-tip{margin:.75rem 0 0;text-align:center;color:#fff6;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em}.action-bar{background:var(--panel);border:2px solid var(--border);border-radius:10px;padding:.8rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.6rem}.action-bar-idle{opacity:.8}.challenge-bar{border-color:var(--gold);box-shadow:3px 3px 0 var(--gold)}.prompt{margin:0;text-align:center;color:var(--muted);font-size:.74rem;line-height:1.4;font-weight:700}.prompt b{color:var(--text)}.action-row{display:flex;gap:.6rem}.act{flex:1;padding:.75rem .6rem;border-radius:999px;border:2px solid var(--border);background:var(--panel-2);color:var(--text);font-family:inherit;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .05s ease,box-shadow .05s ease}.act:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--border)}.act:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}.act:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.act-go{background:var(--accent);color:#fff}.act-call{background:var(--gold);color:#16161a}.waiting-view{display:flex;justify-content:center;padding-top:.5rem}.invite-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:.75rem;text-align:center}.invite-card h2{margin:0}.big-code{font-size:2rem;font-weight:800;letter-spacing:.25em;text-indent:.25em;color:var(--accent);background:var(--panel-2);border:2px dashed var(--border);border-radius:8px;padding:.6rem .4rem}.btn-block{width:100%}.btn-small{padding:.4rem .6rem;font-size:.72rem;box-shadow:2px 2px 0 var(--border)}.invite-link{width:100%;padding:.55rem .6rem;border-radius:5px;border:2px solid var(--border);background:var(--panel-2);color:var(--muted);font-size:.78rem;font-weight:600}.lobby-players{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.lobby-players li{display:flex;justify-content:space-between;align-items:center;padding:.45rem .65rem;border:2px solid var(--border);border-radius:5px;background:var(--panel-2);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}.lobby-host{color:var(--accent);font-size:.65rem;letter-spacing:.08em}.lobby-diff{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:capitalize}.add-bot{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.add-bot-btns{display:inline-flex;gap:.35rem}.add-bot-btns .chip-sm{text-transform:capitalize}.lobby-remove{width:1.4rem;height:1.4rem;border-radius:50%;border:2px solid var(--border);background:var(--panel);color:var(--danger);font-size:.9rem;font-weight:800;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.lobby-remove:hover{background:var(--danger);color:#fff}.lobby-offline{opacity:.6}.lobby-reconnecting{color:var(--danger);font-weight:700}.restoring{text-align:center;padding:3rem 1rem;color:var(--muted);font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.seat-you{color:var(--muted);font-weight:700}.waiting-note{margin:.25rem 0 0;color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.toast{background:var(--navy);color:#fff;border:2px solid var(--border);border-radius:6px;padding:.65rem .8rem;text-align:center;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.result-card{background:var(--panel);border:2px solid var(--border);border-radius:10px;padding:1rem;text-align:center;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.6rem}.result-headline{font-size:1.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.result-won .result-headline{color:var(--accent)}.result-lost .result-headline{color:var(--danger)}.result-reason{color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.score-table{width:100%;border-collapse:collapse;font-size:.8rem}.score-table th{color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:.3rem .35rem}.score-table td{padding:.35rem;border-top:2px solid var(--border);font-weight:700;text-align:left;vertical-align:middle}.score-table .num{font-variant-numeric:tabular-nums;text-align:right}.row-winner{color:var(--accent)}.result-actions{display:flex;flex-direction:column;gap:.5rem}.row-cards{display:inline-flex;gap:.15rem;flex-wrap:wrap}.hint{margin:0;text-align:center;color:var(--muted);font-size:.75rem;line-height:1.4;font-weight:600}.hint b{color:var(--text)}.hint-dim{opacity:.75;font-size:.7rem}.log{display:flex;flex-direction:column;gap:.15rem;background:var(--panel-2);border:2px solid var(--border);border-radius:8px;padding:.6rem .75rem;max-height:7rem;overflow-y:auto}.log-line{color:var(--muted);font-size:.75rem;font-weight:600}.log-latest{color:var(--text);font-weight:800}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#16161a8c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20;overflow-y:auto}.help-modal{position:relative;background:var(--panel);border:2px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:1.5rem;width:min(440px,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.help-modal h2{margin:0;font-size:1.3rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.help-intro{margin:-.5rem 0 0;color:var(--muted);font-size:.85rem;font-weight:600}.modal-close{position:absolute;top:.6rem;right:.6rem;width:1.9rem;height:1.9rem;border-radius:50%;border:2px solid var(--border);background:var(--panel);color:var(--text);font-size:1.2rem;line-height:1;cursor:pointer}.modal-close:hover{background:var(--danger);color:#fff}.help-step{display:flex;align-items:center;gap:1rem}.help-visual{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.help-card{display:inline-flex;align-items:baseline;justify-content:center;gap:.05rem;width:1.9rem;height:2.7rem;border-radius:5px;border:2px solid var(--border);background:#fdfbf6;color:#16161a;font-size:.75rem;font-weight:700}.help-card-red{color:var(--card-red)}.help-card-dim{opacity:.5}.arrow{color:var(--muted);font-weight:800;font-size:1.1rem}.help-text strong{display:block;font-size:.9rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem}.help-text p{margin:0;font-size:.85rem;line-height:1.45;color:var(--muted)}.help-text b{color:var(--text)}@media(max-width:420px){.help-step{flex-direction:column;align-items:flex-start;gap:.5rem}}@media(max-width:559px){.app{padding:.85rem .6rem calc(1rem + env(safe-area-inset-bottom))}.app-header{flex-direction:column;align-items:center;gap:.45rem;margin-bottom:.6rem}.app-header h1{width:100%;text-align:center;font-size:1.4rem}.header-actions{justify-content:center;flex-wrap:wrap;gap:.28rem}.momo-link{padding:.28rem .45rem;font-size:.55rem;gap:.25rem;letter-spacing:.02em}.icon-btn{width:1.72rem;height:1.72rem;font-size:.88rem}.identity-chip{padding:.22rem .28rem .22rem .45rem;gap:.3rem;max-width:8.5rem}.identity-name{font-size:.66rem}.game{gap:.45rem}.table-bar{padding:.4rem .8rem}.table-wrap{padding:.15rem 0}:root{--cw-lg: 3rem}.table-felt{max-width:28.5rem}.hand-rail{padding:.4rem .6rem .5rem}.hand-header{margin-bottom:.3rem}.hand-fan{min-height:calc(var(--cw-lg) * 1.42);padding-top:.3rem}.hand-tip{margin-top:.35rem}.action-bar{padding:.5rem .6rem;gap:.4rem}.prompt{font-size:.68rem;line-height:1.3}.act{padding:.6rem .5rem}.log{max-height:4.6rem;padding:.4rem .7rem;gap:.08rem}.log-line{font-size:.68rem}.waiting-view{padding-top:0}.invite-card{gap:.5rem;padding:1rem}.invite-card h2{font-size:1.2rem}.invite-card>.muted{font-size:.72rem;margin:0}.big-code{font-size:1.5rem;padding:.4rem .3rem;letter-spacing:.18em;text-indent:.18em}.invite-card .btn{padding:.55rem .8rem}.invite-link{padding:.45rem .55rem;font-size:.72rem}.lobby-players{gap:.25rem}.lobby-players li{padding:.35rem .55rem;font-size:.75rem}}.identity-name-btn{border:none;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0}.identity-name-btn:hover{color:var(--accent);text-decoration:underline}.profile-modal{position:relative;background:var(--panel);border:2px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:1.4rem;width:min(420px,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.profile-head{display:flex;align-items:center;gap:.85rem}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:3rem;height:3rem;border-radius:999px;border:2px solid var(--border);background:var(--accent);color:#fff;font-weight:800;font-size:1.4rem;box-shadow:2px 2px 0 var(--border)}.profile-id{display:flex;flex-direction:column;gap:.15rem;min-width:0}.profile-name{font-size:1.3rem}.profile-since{font-size:.72rem}.profile-empty{text-align:center;font-size:.85rem;margin:.5rem 0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.stat-tile{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.7rem .4rem;border:2px solid var(--border);border-radius:8px;background:var(--panel-2);box-shadow:2px 2px 0 var(--border)}.stat-tile-accent{background:var(--accent)}.stat-tile-accent .stat-num,.stat-tile-accent .stat-label{color:#fff}.stat-num{font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.stat-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.stat-rows,.stat-split{display:flex;flex-direction:column;gap:.4rem}.stat-rows{list-style:none;margin:0;padding:0}.stat-rows li,.stat-split-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.85rem;font-weight:700}.stat-val{color:var(--text);font-variant-numeric:tabular-nums}.stat-val em,.stat-split-row em{font-style:normal;color:var(--muted);font-weight:700}.stat-split{border-top:2px solid var(--border);padding-top:.8rem}.stat-split-title{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.stat-recent{display:flex;flex-direction:column;gap:.4rem}.recent-chips{display:flex;flex-wrap:wrap;gap:.35rem}.recent-chip{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:6px;border:2px solid var(--border);font-size:.72rem;font-weight:800;font-variant-numeric:tabular-nums}.recent-win{background:var(--felt);color:#fff}.recent-loss{background:var(--panel-2);color:var(--muted)}.profile-signout{align-self:center}.leaderboard-modal{position:relative;background:var(--panel);border:2px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:1.4rem;width:min(420px,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem}.leaderboard-title{margin:0;font-size:1.3rem}.lb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.lb-row{display:grid;grid-template-columns:1.8rem 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:.6rem;padding:.4rem .6rem;border:2px solid var(--border);border-radius:6px;background:var(--panel-2)}.lb-row-me{background:var(--accent);border-color:var(--border)}.lb-row-me .lb-name,.lb-row-me .lb-rank,.lb-row-me .lb-stat,.lb-row-me .lb-sub,.lb-row-me .lb-stat em{color:#fff}.lb-rank{grid-row:1 / span 2;font-size:1rem;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}.lb-name{font-weight:800;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-stat{grid-row:1 / span 2;font-size:.95rem;font-variant-numeric:tabular-nums;text-align:right}.lb-stat em{font-style:normal;font-size:.66rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.lb-sub{grid-column:2;grid-row:2;font-size:.7rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.tip-card{display:flex;align-items:center;gap:.7rem;padding:.7rem .85rem;border:2px dashed var(--border);border-radius:10px;background:var(--panel-2);text-decoration:none;color:var(--text)}.tip-card:hover{border-style:solid}.tip-emoji{font-size:1.5rem;line-height:1}.tip-text{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0;font-size:.78rem;color:var(--muted)}.tip-text strong{color:var(--text);font-size:.85rem}.tip-cta{flex-shrink:0;padding:.3rem .7rem;border-radius:999px;border:2px solid var(--border);background:var(--accent);color:#fff;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.lb-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.lb-tab{padding:.45rem .5rem;border:2px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--text);font-family:inherit;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;box-shadow:2px 2px 0 var(--border)}.lb-tab-active{background:var(--accent);color:#fff}.lb-note{margin:0;text-align:center;font-size:.68rem}.profile-name-row{display:inline-flex;align-items:center;gap:.4rem}.rename-btn{border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:.9rem;line-height:1;padding:.1rem}.rename-btn:hover{color:var(--accent)}.rename-form{display:flex;flex-direction:column;gap:.4rem;width:100%}.rename-actions{display:flex;gap:.4rem}.update-toast{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);z-index:250;display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;max-width:calc(100% - 2rem);background:var(--navy);color:#fff;border:2px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.update-text{font-size:.82rem;font-weight:700}.update-dismiss{border:none;background:transparent;color:#ffffffb3;cursor:pointer;font-size:.9rem;line-height:1;padding:0 .15rem}.update-dismiss:hover{color:#fff}
