:root,.skin-defaults{--felt: #15603e;--felt-dark: #0e4a2f;--bg: #0b3522;--card-face: #ffffff;--card-back-1: #2b4c8c;--card-back-2: #16284a;--card-back-image: repeating-linear-gradient( 45deg, var(--card-back-1), var(--card-back-1) 6px, var(--card-back-2) 6px, var(--card-back-2) 12px );--card-ink: #1b1f24;--card-radius: 10px}:root{--panel: #ffffff;--panel-2: #f3f5f7;--ink: #1b1f24;--muted: #6b7682;--line: #d8dee4;--accent: #e0a82e;--accent-ink: #3a2c05;--danger: #d64545;--good: #2f9e6e;--info: #3b82c4;--card-w: 64px;--card-h: 92px;--radius: 12px;--shadow: 0 6px 18px rgba(0, 0, 0, .28);font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:radial-gradient(circle at 50% 25%,var(--felt) 0%,var(--bg) 80%);min-height:100vh;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}input,textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1.1rem;background:var(--panel-2);color:var(--ink);font-weight:600;transition:transform .08s ease,filter .12s ease,box-shadow .12s ease}button:hover:not(:disabled){filter:brightness(1.04);box-shadow:var(--shadow)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-ink)}button.danger{background:var(--danger);color:#fff}button.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left))}.screen{width:100%;max-width:1100px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border-radius:0;background:#fff;padding:.45rem .8rem}.seg button.on{background:var(--accent);color:var(--accent-ink)}.seg.ai-difficulty button{padding:.45rem .55rem;font-size:.86rem}.lobby-screen{min-height:calc(100vh - 2rem);display:flex;align-items:center;justify-content:center}.lobby-card{width:min(560px,100%);background:var(--panel);border-radius:18px;box-shadow:0 20px 55px #00000061;padding:1.9rem 1.9rem 1.6rem;position:relative;overflow:hidden}.lobby-card:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--accent),#f3cf6c)}.lobby-room{width:min(660px,100%)}.lobby-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.lobby-header h1{margin:0;font-size:1.7rem;letter-spacing:.16em;text-transform:uppercase}.lobby-header p{margin:.6rem 0 0;color:var(--muted);font-size:.92rem;line-height:1.45}.language-picker{display:inline-flex;gap:2px;border-radius:999px;background:var(--panel-2);padding:3px;flex:0 0 auto}.language-picker button{border-radius:999px;background:transparent;color:var(--muted);padding:.35rem .7rem;font-size:.82rem;font-weight:700;box-shadow:none}.language-picker button:hover:not(:disabled){box-shadow:none}.language-picker button.on{background:var(--accent);color:var(--accent-ink)}.field{display:grid;gap:.4rem;margin:1.1rem 0 0}.field>span{font-weight:700;font-size:.85rem}.field input,.lobby-player input{width:100%;border:1.5px solid var(--line);border-radius:11px;background:var(--panel-2);color:var(--ink);font:inherit;padding:.82rem .95rem;outline:none;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.field input:focus,.lobby-player input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #e0a82e38}.field input::placeholder{color:#aab3bd}.room-code-input{text-transform:uppercase;letter-spacing:.3em;font-weight:800;text-align:center;font-size:1.1rem}.lobby-actions{display:flex;margin-top:.9rem}.lobby-actions button{width:100%;padding:.82rem;font-size:1rem}.lobby-divider{height:1px;background:var(--line);margin:1.5rem 0 .25rem}.room-code{display:inline-flex;align-items:center;gap:.6rem;margin-top:.65rem}.room-code span{border-radius:10px;background:var(--felt-dark);color:#fff;padding:.45rem .85rem;font-weight:900;letter-spacing:.22em;font-size:1.05rem}button.ghost-dark{background:var(--panel-2);color:var(--ink);border:1px solid var(--line)}button.small{padding:.42rem .62rem;font-size:.82rem}.lobby-section-title{color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:1.4rem 0 .55rem}.player-list{display:grid;gap:.5rem}.lobby-player{display:grid;grid-template-columns:42px minmax(110px,1fr) auto auto;align-items:center;gap:.65rem;border:1px solid var(--line);border-radius:12px;background:#fff;padding:.5rem .6rem}.lobby-player input{padding:.55rem .65rem;border-radius:9px}.player-kind{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:#fff;font-size:.74rem;font-weight:900;letter-spacing:.02em}.player-kind.human{background:linear-gradient(160deg,#34a979,#1d7350)}.player-kind.ai{background:linear-gradient(160deg,#5d79c2,#38508f)}.lobby-player input:disabled{background:var(--panel-2);color:var(--ink);border-color:transparent}.player-badges{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end}.player-badges span{border-radius:999px;background:var(--panel-2);color:var(--muted);padding:.14rem .5rem;font-size:.7rem;font-weight:800;white-space:nowrap}.player-badges .warn{background:#ffe1e1;color:var(--danger)}.ai-add-panel{display:flex;align-items:center;gap:.7rem;border:1.5px dashed var(--line);border-radius:12px;margin-top:.9rem;padding:.7rem .8rem;flex-wrap:wrap}.ai-add-label{font-weight:800;font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.seg.ai-difficulty{border:none;border-radius:999px;background:var(--panel-2);padding:3px}.seg.ai-difficulty button{border-radius:999px;background:transparent;color:var(--muted);padding:.4rem .72rem;font-size:.82rem;font-weight:700}.seg.ai-difficulty button.on{background:var(--accent);color:var(--accent-ink)}.ai-add-panel>button{margin-left:auto;background:var(--felt);color:#fff}.lobby-footer{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:1.3rem;color:var(--muted);font-weight:700;font-size:.88rem}.lobby-footer button.primary{padding:.8rem 1.5rem}.topbar{display:flex;justify-content:space-between;align-items:center;color:#fff;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.topbar .turn-info{font-size:1.05rem}.topbar .turn-info b{color:var(--accent)}.board{background:linear-gradient(160deg,var(--felt) 0%,var(--felt-dark) 100%);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);border:2px solid rgba(255,255,255,.08)}.opponents{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.piles{display:flex;gap:2rem;justify-content:center;align-items:center;margin:1.25rem 0}.pile{text-align:center;color:#fff}.pile .label{font-size:.78rem;opacity:.85;margin-bottom:.3rem}.pile.clickable .card-slot{cursor:pointer}.pile.clickable:hover .card{box-shadow:0 0 0 3px var(--accent),var(--shadow)}.player-area{position:relative;background:#0000002e;border-radius:var(--radius);padding:.6rem .75rem;color:#fff;border:2px solid transparent;min-width:190px}.player-area.active{border-color:var(--accent);box-shadow:0 0 14px #e0a82e80}.player-area.viewer{background:#ffffff1a}.player-area.eliminated{opacity:.5}.player-area .pa-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.45rem}.player-area .pa-head{width:0;min-width:100%}.player-area .pa-name{display:flex;align-items:baseline;gap:.3rem;min-width:0;font-weight:700}.player-area .pa-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-area .pa-tag,.player-area .pa-caller,.player-area .pa-score{flex-shrink:0;white-space:nowrap}.rt-name{display:inline-block;max-width:11rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.player-area .pa-tag{font-size:.7rem;background:#fff3;padding:.05rem .4rem;border-radius:999px}.player-area .pa-caller{margin-left:.35rem;border-radius:999px;background:var(--danger);color:#fff;padding:.06rem .42rem;font-size:.7rem;font-weight:800}.player-area .pa-score{font-size:.82rem;opacity:.9}.hand{display:flex;--hand-gap: .4rem;gap:var(--hand-gap);min-width:calc(4 * var(--card-w) + 3 * var(--hand-gap));justify-content:center}.viewer-self{margin-top:1.25rem;display:flex;justify-content:center}.card-slot{width:var(--card-w);height:var(--card-h);position:relative}.card{width:var(--card-w);height:var(--card-h);border-radius:var(--card-radius);display:flex;align-items:center;justify-content:center;font-size:1.7rem;font-weight:800;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow);position:relative;transition:box-shadow .12s ease}.card.face{background:var(--card-face);color:var(--card-ink);border:1px solid var(--line)}.card-value-group{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.08rem;line-height:1}.card-value{font-size:1.7rem;font-weight:800}.card-action{color:var(--info);font-size:.62rem;font-weight:800;text-transform:lowercase;letter-spacing:0}.card.back{background:var(--card-back-image);color:transparent}.card .slot-num{position:absolute;bottom:3px;right:5px;font-size:.62rem;font-weight:700;opacity:.4;color:#000}.card.back .slot-num{color:#fff;opacity:.55}.card.selectable{cursor:pointer}.card.selectable:hover{box-shadow:0 0 0 2px #ffffff8c,var(--shadow)}.card.selected{box-shadow:0 0 0 3px var(--accent),0 0 12px #e0a82e99,var(--shadow)}.card:has(.action-mark){box-shadow:0 0 0 3px var(--info),0 0 16px #3b82c4b3,var(--shadow)}.card .action-mark{position:absolute;top:5px;left:50%;transform:translate(-50%);max-width:calc(100% - 8px);border-radius:999px;background:var(--info);color:#fff;padding:.08rem .34rem;font-size:.52rem;line-height:1.1;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}.card.known-dot:after{content:"";position:absolute;top:4px;left:5px;width:7px;height:7px;border-radius:50%;background:var(--good)}.card.highlight-royale{box-shadow:0 0 0 3px var(--accent),0 0 20px var(--accent)}.log{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:70vh}.log h3{margin:0;padding:.7rem 1rem;border-bottom:1px solid var(--line);font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}.log .entries{overflow-y:auto;padding:.5rem 1rem}.log .entry{font-size:.85rem;padding:.28rem 0;border-bottom:1px solid var(--panel-2);color:var(--ink)}.log .entry .t{color:var(--muted);font-size:.72rem;margin-right:.4rem}.controls{background:#00000040;border-radius:var(--radius);padding:.85rem 1rem;margin-top:1rem;color:#fff;display:flex;flex-direction:column;gap:.6rem;align-items:center}.controls .prompt{font-size:1rem;text-align:center}.controls .btn-row{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}.drawn-card-panel{display:flex;align-items:center;gap:.8rem}.activity-line{margin:.75rem auto 0;max-width:900px;border-radius:8px;background:#fffffff0;color:var(--ink);padding:.55rem .8rem;display:flex;gap:.45rem;justify-content:center;align-items:baseline;text-align:center;box-shadow:var(--shadow)}.activity-line span{color:var(--muted);font-size:.82rem;font-weight:700}.activity-line b{font-size:.92rem;font-weight:700}.overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.overlay-modal{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.8rem;max-width:520px;text-align:center}.overlay-modal h2{margin-top:0}.overlay-modal .reveal-cards{display:flex;gap:.6rem;justify-content:center;margin:1.2rem 0}.leave-modal{width:min(420px,100%)}.modal-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.35rem;flex-wrap:wrap}.modal-actions button{min-width:120px}.call-toast{position:fixed;left:50%;top:48%;transform:translate(-50%,-50%);z-index:60;pointer-events:none;max-width:min(440px,calc(100vw - 2rem));border:3px solid rgba(255,255,255,.92);border-radius:12px;background:var(--danger);color:#fff;box-shadow:0 18px 50px #0000006b;padding:1.1rem 1.5rem;font-size:clamp(1.45rem,4vw,2.4rem);line-height:1.1;font-weight:950;text-align:center;text-transform:uppercase;animation:call-toast-pop 2.4s ease forwards}@keyframes call-toast-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.82)}12%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}.countdown-bar{height:4px;border-radius:2px;background:#00000073;overflow:hidden}.countdown-fill{height:100%;background:var(--accent);transform-origin:left center;will-change:transform}.countdown-bar.urgent .countdown-fill{background:var(--danger)}.player-area>.countdown-bar{position:absolute;left:10px;right:10px;bottom:-2px}.player-area.urgent{border-color:var(--danger);animation:countdown-pulse 1s ease-in-out infinite}.countdown-badge{position:absolute;top:-11px;right:-9px;z-index:2;min-width:26px;height:26px;padding:0 6px;border-radius:999px;border:2px solid #fff;background:var(--danger);color:#fff;font-size:.9rem;font-weight:900;line-height:22px;text-align:center;box-shadow:var(--shadow);pointer-events:none}@keyframes countdown-pulse{0%,to{box-shadow:0 0 6px #d6454573}50%{box-shadow:0 0 20px #d64545f2}}.controls{position:relative}.countdown-hint{position:absolute;top:0;left:50%;z-index:3;transform:translate(-50%,-60%);white-space:nowrap;border-radius:999px;background:var(--danger);color:#fff;box-shadow:var(--shadow);padding:.2rem .75rem;font-size:.9rem;font-weight:800;pointer-events:none}.roundend-countdown{display:flex;flex-direction:column;gap:.35rem;margin:.2rem 0 .9rem;color:var(--muted);font-weight:700}.roundend-countdown .countdown-bar{background:var(--line)}.roundend-countdown.urgent{color:var(--danger)}.auto-toast{position:fixed;left:50%;top:max(12px,env(safe-area-inset-top));z-index:60;pointer-events:none;max-width:calc(100vw - 2rem);border-left:4px solid var(--danger);border-radius:8px;background:#14181cf0;color:#fff;box-shadow:var(--shadow);padding:.55rem .9rem;font-weight:700;text-align:center;transform:translate(-50%);animation:auto-toast 3s ease forwards}@keyframes auto-toast{0%{opacity:0;transform:translate(-50%,-8px)}10%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.notice-toast{position:fixed;left:50%;top:max(12px,env(safe-area-inset-top));z-index:70;pointer-events:none;width:max-content;max-width:calc(100vw - 2rem);border-left:4px solid var(--accent);border-radius:8px;background:#14181cf0;color:#fff;box-shadow:var(--shadow);padding:.6rem .95rem;font-weight:700;text-align:center;transform:translate(-50%);animation:auto-toast 4.5s ease forwards}@media (prefers-reduced-motion: reduce){.player-area.urgent{animation:none;box-shadow:0 0 16px #d64545d9}.auto-toast,.notice-toast{animation:none}}.roundend{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;overflow:hidden}.roundend h2{margin-top:0}.score-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1rem 0}.score-table{width:100%;min-width:640px;border-collapse:collapse;margin:0}.score-table th,.score-table td{padding:.5rem .6rem;border-bottom:1px solid var(--line);text-align:left}.score-table .badge{display:inline-block;font-size:.7rem;padding:.1rem .45rem;border-radius:999px;margin-left:.35rem;margin-top:.18rem;color:#fff;white-space:nowrap}.badge.royale{background:var(--accent);color:var(--accent-ink)}.badge.caller{background:var(--info)}.badge.reset{background:var(--good)}.badge.elim{background:var(--danger)}.reveal-hand{display:flex;gap:.25rem}.reveal-hand .mini{width:26px;height:36px;border-radius:5px;background:var(--card-face);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}.roundend-actions{display:flex;gap:.6rem;justify-content:flex-end;align-items:center;flex-wrap:wrap}.roundend-note{color:var(--muted);font-weight:700;margin:.4rem 0}@media (max-width: 640px){.app{padding:.65rem}.lobby-card,.roundend{padding:1rem}.lobby-header{flex-direction:column}.room-code{flex-wrap:wrap}.lobby-player{grid-template-columns:42px minmax(0,1fr)}.lobby-player .player-badges,.lobby-player button.small{grid-column:2;justify-self:start}.score-table{min-width:580px;font-size:.86rem}.score-table th,.score-table td{padding:.42rem}.roundend-actions{justify-content:stretch}.roundend-actions button{flex:1 1 180px}}.play-block{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;margin:.4rem 0 .2rem}.play-button{font-size:1.35rem;padding:.85rem 1.2rem;letter-spacing:.04em}.play-hint{text-align:center;font-size:.85rem;color:var(--muted)}.lobby-notice{margin:.6rem 0 0;font-size:.9rem;color:var(--muted)}.spectator-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem}.spectator-chip{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;font-size:.85rem;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spectate-banner{margin-top:.6rem;padding:.6rem .9rem;border-radius:var(--radius);background:#00000059;color:#fff;text-align:center;font-weight:600}.ad-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0000008c;opacity:0;animation:ad-overlay-in .2s ease .3s forwards}@keyframes ad-overlay-in{to{opacity:1}}.ad-overlay-box{display:flex;align-items:center;gap:.7rem;padding:.9rem 1.3rem;border-radius:var(--radius);background:var(--panel);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}.spinner{width:1.1rem;height:1.1rem;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}body[data-touch] button,body[data-touch] .field input,body[data-touch] .lobby-player input{min-height:44px}body[data-touch] .link-button{display:inline-flex;align-items:center;justify-content:center;padding:0 .9rem}button,.card,.pile{touch-action:manipulation}@media (max-height: 620px) and (orientation: landscape){:root{--card-w: 46px;--card-h: 66px;--card-radius: 8px}.app{padding-top:max(.4rem,env(safe-area-inset-top));padding-bottom:max(.4rem,env(safe-area-inset-bottom))}.topbar{margin-bottom:.35rem}.topbar .turn-info{font-size:.9rem}.topbar button{padding:.3rem .8rem;min-height:0}.board{padding:.45rem .6rem;display:grid;grid-template-columns:auto auto;grid-template-areas:"opponents opponents" "self piles";justify-content:center;align-items:center;column-gap:2rem;row-gap:.45rem}.opponents{grid-area:opponents;gap:.45rem}.piles{grid-area:piles;margin:0;gap:1rem}.viewer-self{grid-area:self;margin-top:0}.player-area{padding:.3rem .5rem;min-width:0}.player-area .pa-head{margin-bottom:.2rem;font-size:.85rem}.hand{--hand-gap: .3rem}.pile .label{margin-bottom:.15rem}.controls{margin-top:.4rem;padding:.4rem .7rem;gap:.35rem}.controls .prompt{font-size:.9rem}.controls button{padding:.35rem .9rem}.activity-line{margin-top:.35rem;padding:.3rem .6rem}.spectate-banner{margin-top:.35rem;padding:.35rem .7rem}.lobby-screen{min-height:0}.lobby-card{padding:.9rem 1.2rem}.lobby-header h1{font-size:1.25rem}.lobby-header p{display:none}.lobby-header{margin-bottom:.2rem}.lobby-divider{margin:.5rem 0}.play-button{font-size:1.15rem;padding:.55rem 1rem}.skin-menu{padding:.8rem 1rem}.skin-menu h2{margin:0;font-size:1.15rem}.skin-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:.5rem 0;gap:.5rem}.skin-option{padding:.4rem;gap:.25rem}.skin-menu .modal-actions{margin-top:.5rem}.field{margin-top:.5rem;gap:.2rem}.field input,.lobby-player input{padding-top:.45rem;padding-bottom:.45rem}.lobby-actions{margin-top:.45rem}.lobby-actions button{padding-top:.45rem;padding-bottom:.45rem}}@media (min-width: 1500px) and (min-height: 900px){:root{--card-w: 82px;--card-h: 118px}.app{font-size:1.12rem}.screen{max-width:1400px}.card-value{font-size:2.1rem}}.link-button{align-self:center;background:transparent;color:var(--muted);text-decoration:underline;padding:.2rem .5rem;font-weight:600;font-size:.88rem}.link-button:hover:not(:disabled){box-shadow:none;color:var(--ink)}.skin-menu{width:min(680px,100%);max-width:680px;max-height:calc(100vh - 2rem);overflow-y:auto}.skin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem;margin:.75rem 0}.skin-option{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.6rem;border-radius:var(--radius);border:2px solid var(--line);text-align:center}.skin-option.active{border-color:var(--accent)}.skin-preview{display:flex;gap:.35rem;padding:.5rem .6rem;border-radius:10px;background:linear-gradient(160deg,var(--felt),var(--felt-dark));--card-w: 40px;--card-h: 58px}.skin-preview .card-value{font-size:1.1rem}.skin-name{font-weight:700}.skin-state{font-size:.85rem;color:var(--muted);font-weight:600}.skin-locked{display:flex;flex-direction:column;align-items:center;gap:.3rem}.skin-hint{font-size:.78rem;color:var(--muted)}.video-button{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem}.skin-note{margin:.3rem 0;font-size:.88rem;color:var(--muted)}.skin-note.strong{color:var(--ink);font-weight:700}@media (max-height: 740px) and (orientation: portrait){:root{--card-w: 50px;--card-h: 72px}.app{padding:.5rem}.topbar{margin-bottom:.35rem}.topbar button{padding:.3rem .8rem}.board{padding:.5rem}.opponents{gap:.4rem}.player-area{padding:.3rem .5rem}.player-area .pa-head{margin-bottom:.2rem}.piles{margin:.5rem 0}.viewer-self{margin-top:.5rem}.controls{margin-top:.4rem;padding:.45rem .7rem}}@media (max-height: 620px) and (orientation: landscape){.opponents:has(>:nth-child(4)){--card-w: 40px;--card-h: 58px}}@media (orientation: portrait) and (max-width: 520px){.opponents:has(>:nth-child(3)){--card-w: 30px;--card-h: 43px;gap:.35rem}.opponents:has(>:nth-child(3)) .player-area{min-width:0;padding:.25rem .4rem}.opponents:has(>:nth-child(3)) .pa-head{font-size:.78rem}.opponents:has(>:nth-child(3)) .card-value{font-size:1rem}.opponents:has(>:nth-child(3)) .hand{--hand-gap: 3px}.opponents:has(>:nth-child(3)) .card .slot-num{display:none}}.controls-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1rem}.controls-head .prompt{max-width:34rem;text-align:left}.prompt-short{display:none}body,.app{min-height:100dvh}.lobby-screen{min-height:0;flex:1 0 auto}.overlay-modal{max-height:calc(100dvh - 1.5rem);overflow-y:auto}@media (orientation: portrait) and (max-width: 520px){:root{--card-h: clamp(63px, 9.4dvh, 96px);--card-w: calc(var(--card-h) / 1.43)}.app{padding:max(.4rem,env(safe-area-inset-top)) max(.45rem,env(safe-area-inset-right)) max(.4rem,env(safe-area-inset-bottom)) max(.45rem,env(safe-area-inset-left))}.card,.card-value{font-size:calc(var(--card-w) * .5)}.screen.game-screen{display:flex;flex-direction:column;height:calc(100dvh - max(.4rem,env(safe-area-inset-top)) - max(.4rem,env(safe-area-inset-bottom)))}.game-screen .topbar{flex:none;flex-wrap:nowrap;margin-bottom:.35rem}.game-screen .topbar .turn-info{font-size:.9rem}.game-screen .topbar button{padding:0 .8rem;font-size:.88rem}.game-screen .board{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:space-evenly;gap:.35rem;padding:.35rem .3rem}.game-screen .opponents{gap:.3rem}.game-screen .opponents:has(>:nth-child(2)){--card-w: min( calc(12.5vw - 11px) , 52px);--card-h: calc(var(--card-w) * 1.43);display:grid;grid-template-columns:repeat(2,auto);justify-content:center;gap:.3rem}.game-screen .opponents:has(>:nth-child(2)) .player-area,.game-screen .opponents .player-area{min-width:0;padding:.2rem .3rem .3rem}.game-screen .opponents:has(>:nth-child(2)) .pa-head,.game-screen .opponents .pa-head{font-size:.8rem;margin-bottom:.15rem}.game-screen .opponents .pa-tag{display:none}.game-screen .opponents:has(>:nth-child(2)) .card-value{font-size:calc(var(--card-w) * .5)}.game-screen .opponents:has(>:nth-child(2)) .hand{--hand-gap: 2px}.game-screen .opponents .card .slot-num{display:none}.game-screen .piles{margin:0;gap:1.5rem}.game-screen .pile .label{font-size:.72rem;margin-bottom:.15rem}.game-screen .viewer-self{margin-top:0}.game-screen .viewer-self .player-area{padding:.3rem .45rem .4rem;min-width:0}.game-screen .player-area .pa-head{margin-bottom:.2rem}.game-screen .controls{flex:none;margin-top:.4rem;padding:.45rem .55rem;gap:.4rem}.game-screen .controls .prompt{font-size:.86rem;line-height:1.3;text-align:center}.controls-head{flex-direction:row;flex-wrap:nowrap;gap:.6rem}.controls-head .prompt{flex:1 1 0;min-width:0;text-align:left}.prompt-long{display:none}.prompt-short{display:inline}.drawn-card-panel>span{display:none}.drawn-card-panel{--card-w: 40px;--card-h: 57px;flex:none}.game-screen .controls .btn-row{width:100%;gap:.4rem}.game-screen .controls .btn-row{flex-wrap:nowrap}.game-screen .controls .btn-row button{flex:1 1 0;min-width:0;padding:.4rem .45rem;font-size:.88rem;line-height:1.15}.game-screen .activity-line{flex:none;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:.35rem;padding:.3rem .55rem;text-align:left;font-size:.78rem;line-height:1.3}.game-screen .activity-line span,.game-screen .activity-line b{font-size:inherit}.game-screen .activity-line span{margin-right:.3rem}.game-screen .spectate-banner{flex:none;margin-top:.35rem;padding:.4rem .6rem;font-size:.85rem}.roundend{display:flex;flex-direction:column;max-height:calc(100dvh - 1rem);padding:.8rem .75rem}.roundend h2{font-size:1.15rem;margin-bottom:.2rem}.roundend>p{margin:.15rem 0;font-size:.85rem}.score-table-wrap{flex:1 1 auto;min-height:0;overflow:auto;margin:.5rem 0}.score-table{min-width:0;font-size:.84rem}.score-table th,.score-table td{padding:.32rem .2rem}.score-table th{font-size:.78rem}.score-table .col-handtotal{display:none}.rt-name{max-width:5.6rem}.reveal-hand{gap:2px}.reveal-hand .mini{width:20px;height:28px;font-size:.76rem}.roundend-actions{flex:none}.lobby-card{padding:.9rem .85rem;border-radius:14px}.lobby-header h1{font-size:1.2rem;letter-spacing:.12em}.lobby-header p{margin-top:.3rem;font-size:.82rem;line-height:1.35}.field{margin-top:.6rem;gap:.25rem}.field input{padding:.5rem .75rem}.play-block{margin:.5rem 0 0;gap:.2rem}.play-button{padding:.6rem 1rem;font-size:1.2rem}.lobby-divider{margin:.7rem 0 .1rem}.lobby-section-title{margin:.6rem 0 .35rem}.lobby-actions{margin-top:.4rem}.lobby-actions button{padding:.5rem}.join-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:end}.join-row .lobby-actions{margin-top:0}.join-row .lobby-actions button{width:auto;padding:.5rem 1.1rem}.lobby-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.5rem;margin-bottom:.2rem}.lobby-header>div:not(.language-picker){display:contents}.lobby-header h1{grid-column:1;grid-row:1;font-size:1.05rem;letter-spacing:.08em}.lobby-header .language-picker{grid-column:2;grid-row:1}.lobby-header p,.lobby-header .room-code{grid-column:1 / -1}.language-picker button{padding:0 .55rem;font-size:.78rem}.lobby-card{max-height:calc(100dvh - .8rem);overflow-y:auto}.room-code{display:flex;flex-wrap:nowrap;gap:.35rem;margin-top:.45rem}.room-code span{padding:.4rem .55rem;letter-spacing:.14em;font-size:.95rem}.room-code button{padding:0 .65rem;font-size:.85rem;white-space:nowrap}.player-list{gap:.35rem}.lobby-player{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"kind name remove" "kind badges remove";gap:.15rem .45rem;padding:.3rem .4rem}.player-kind{grid-area:kind;width:34px;height:34px;border-radius:9px}.lobby-player input{grid-area:name;padding:.35rem .55rem}.lobby-player .player-badges{grid-area:badges;justify-self:start;justify-content:flex-start}.lobby-player button.small{grid-area:remove;justify-self:end}.ai-add-panel{margin-top:.6rem;padding:.45rem .5rem;gap:.4rem}.ai-add-label{display:none}.lobby-footer{margin-top:.5rem}.lobby-room .lobby-section-title{margin:.45rem 0 .3rem}.lobby-room{padding:.75rem .75rem .7rem}.lobby-player{padding:.25rem .4rem}}@media (orientation: landscape) and (max-height: 500px){:root{--card-w: clamp(36px, min(calc((100dvh - 130px) / 4.7), calc((100vw - 290px) / 8.4)), 64px);--card-h: calc(var(--card-w) * 1.43)}.app{padding:max(.35rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.35rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left))}.card,.card-value,.opponents:has(>:nth-child(4)) .card-value{font-size:calc(var(--card-w) * .5)}.opponents:has(>:nth-child(4)){--card-w: clamp(36px, min(calc((100dvh - 130px) / 4.7), calc((100vw - 290px) / 8.4)), 64px);--card-h: calc(var(--card-w) * 1.43)}.screen.game-screen{max-width:none;height:calc(100dvh - max(.35rem,env(safe-area-inset-top)) - max(.35rem,env(safe-area-inset-bottom)));display:grid;grid-template-columns:minmax(0,1fr) clamp(190px,27vw,260px);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"board top" "board controls" "board activity";column-gap:.5rem;row-gap:.4rem}.game-screen .topbar{grid-area:top;margin:0;flex-wrap:nowrap;gap:.4rem}.game-screen .topbar .turn-info{font-size:.8rem;line-height:1.2}.game-screen .topbar button{padding:0 .6rem;font-size:.82rem;white-space:nowrap}.game-screen .board{grid-area:board;min-height:0;padding:.35rem .5rem;display:grid;grid-template-columns:auto auto;grid-template-areas:"opponents opponents" "self piles";align-content:space-evenly;justify-content:center;align-items:center;column-gap:1.2rem;row-gap:.35rem}.game-screen .opponents{grid-area:opponents;gap:.35rem}.game-screen .opponents:has(>:nth-child(3)){display:grid;grid-template-columns:repeat(2,auto);justify-content:center}.game-screen .player-area{min-width:0;padding:.2rem .35rem .3rem}.game-screen .player-area .pa-head{font-size:.78rem;margin-bottom:.15rem}.game-screen .opponents .pa-tag{display:none}.game-screen .hand{--hand-gap: 3px}.game-screen .card .slot-num{display:none}.game-screen .piles{grid-area:piles;margin:0;gap:.8rem}.game-screen .pile .label{font-size:.7rem;margin-bottom:.1rem}.game-screen .viewer-self{grid-area:self;margin:0}.game-screen .controls{grid-area:controls;margin:0;padding:.45rem .5rem;gap:.35rem;align-items:stretch}.game-screen .controls .prompt{font-size:.8rem;line-height:1.3;text-align:center}.controls-head{flex-direction:row;flex-wrap:nowrap;gap:.5rem}.controls-head .prompt{flex:1 1 0;min-width:0;text-align:left}.prompt-long{display:none}.prompt-short{display:inline}.drawn-card-panel>span{display:none}.drawn-card-panel{--card-w: 38px;--card-h: 54px;flex:none}.game-screen .controls .btn-row{flex-direction:column;gap:.35rem}.game-screen .controls button{width:100%;padding:.35rem .6rem;font-size:.86rem}.game-screen .activity-line{grid-area:activity;align-self:start;max-height:100%;overflow:hidden;margin:0;display:block;padding:.3rem .5rem;text-align:left;font-size:.74rem;line-height:1.3}.game-screen .activity-line span,.game-screen .activity-line b{font-size:inherit}.game-screen .activity-line span{margin-right:.3rem}.game-screen .spectate-banner{grid-area:controls;margin:0;font-size:.8rem}.roundend{display:flex;flex-direction:column;max-height:calc(100dvh - .7rem);padding:.5rem .9rem}.roundend h2{font-size:1.05rem;margin-bottom:.1rem}.roundend>p{margin:.1rem 0;font-size:.8rem}.score-table-wrap{flex:1 1 auto;min-height:0;overflow:auto;margin:.3rem 0}.score-table{min-width:0;font-size:.8rem}.score-table th,.score-table td{padding:.18rem .45rem}.reveal-hand .mini{width:20px;height:26px;font-size:.74rem}.roundend-countdown{margin:.1rem 0 .35rem}.roundend-actions{flex:none}.lobby-card{max-height:calc(100dvh - .7rem);overflow-y:auto;padding:.7rem 1rem}.lobby-entry,.lobby-room{width:min(860px,100%)}.lobby-header h1{font-size:1.15rem}.lobby-header p{display:none}.entry-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.2rem;align-items:start}.entry-friends .lobby-divider{display:none}.entry-friends .lobby-section-title{margin:.45rem 0 .2rem}.field{margin-top:.4rem;gap:.2rem}.field input{padding:.4rem .7rem}.play-block{margin:.45rem 0 0;gap:.15rem}.play-button{padding:.5rem 1rem;font-size:1.1rem}.play-hint{font-size:.78rem}.lobby-actions{margin-top:.4rem}.lobby-actions button{padding:.4rem}.join-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:end}.join-row .lobby-actions{margin-top:0}.join-row .lobby-actions button{width:auto;padding:.4rem 1rem}.lobby-room .lobby-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:.8rem}.lobby-room .lobby-header>div:not(.language-picker){display:contents}.room-code{margin-top:0}.room-players .lobby-section-title{margin:.35rem 0 .25rem}.player-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .5rem}.room-side{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .8rem;margin-top:.45rem}.lobby-player{grid-template-columns:30px minmax(0,1fr) auto auto;gap:.4rem;padding:.2rem .35rem}.player-kind{width:30px;height:30px;border-radius:8px}.lobby-player input{padding:.25rem .5rem}.lobby-player .player-badges,.lobby-player button.small{grid-column:auto;justify-self:auto}.room-side .ai-add-panel{flex:1 1 320px;margin-top:0;padding:.35rem .5rem;gap:.4rem}.ai-add-label{display:none}.ai-add-panel>button{margin-left:0;flex:1 1 auto}.room-side .lobby-footer{flex:1 1 200px;margin-top:0;flex-wrap:wrap}.lobby-footer button.primary{flex:1 1 auto}}@media (min-width: 900px) and (min-height: 621px){.opponents:has(>:nth-child(4)){--card-w: min(50px, calc((min(100vw, 1100px) - 130px) / 17.8));--card-h: calc(var(--card-w) * 1.43);flex-wrap:nowrap}.opponents:has(>:nth-child(4)) .player-area{min-width:0}.opponents:has(>:nth-child(4)) .card-value{font-size:calc(var(--card-w) * .5)}}html{scrollbar-gutter:stable}.activity-line{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.92rem;line-height:1.35;height:calc(2.7em + 1.1rem)}.activity-line span{margin-right:.45rem}.activity-line,.game-screen .activity-line{text-align:left}.activity-line.empty{visibility:hidden}.activity-line{box-sizing:border-box;width:min(900px,100%)}.pile{width:8.5rem}.pile .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.pile>:last-child{margin:0 auto}.player-area .pa-head{height:1.5em;align-items:center;white-space:nowrap;overflow:hidden}.player-area .pa-name{align-items:center}.game-screen .topbar{flex-wrap:nowrap}.game-screen .topbar .turn-info{min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.game-screen .topbar button{flex:none}.game-screen .controls .prompt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}@media (orientation: portrait) and (max-width: 520px){.game-screen .controls{height:7.8rem;justify-content:center}.game-screen .activity-line{font-size:.78rem;line-height:1.3;height:calc(2.6em + .6rem)}.game-screen .pile{width:6.6rem}}@media (orientation: landscape) and (max-height: 500px){.screen.game-screen{grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"board top" "board activity" "board controls"}.game-screen .topbar{height:44px}.game-screen .activity-line{-webkit-line-clamp:3;font-size:.74rem;line-height:1.3;height:calc(3 * 1.3em + .6rem);max-height:none;align-self:stretch}.game-screen .controls{align-self:start}.game-screen .pile{width:6.2rem}}.game-screen .controls .prompt{align-self:stretch;text-align:center}.game-screen .controls-head .prompt{text-align:left}.game-screen .topbar .turn-info{height:2.6em;line-height:1.3;display:-webkit-box}.player-area .pa-caller{position:absolute;top:-9px;left:10px;margin:0;z-index:2;pointer-events:none}.screen.game-screen{display:flex;flex-direction:column}.game-screen .activity-line{order:1;margin:.75rem auto 0}.game-screen .controls{order:2}@media (orientation: portrait) and (max-width: 520px){.game-screen .controls{justify-content:flex-start}.game-screen .activity-line{order:3;margin:.35rem 0 0}}@media (orientation: landscape) and (max-height: 500px){.screen.game-screen{display:grid}.game-screen .activity-line{margin:0}}.game-screen .controls{--controls-head-h: var(--card-h)}.game-screen .controls>.prompt{display:flex;align-items:center;justify-content:center;height:var(--controls-head-h);overflow:hidden}.game-screen .controls-head{height:var(--controls-head-h)}@media (orientation: portrait) and (max-width: 520px){.game-screen .controls{--controls-head-h: 57px}}@media (orientation: landscape) and (max-height: 500px){.game-screen .controls>.prompt,.game-screen .controls-head{height:auto;min-height:54px}}.game-screen .controls>.prompt,.game-screen .controls .btn-row,.game-screen .controls-head{align-self:stretch;width:auto;max-width:none}.game-screen .controls .btn-row{justify-content:center}@media (orientation: landscape) and (max-height: 500px){.game-screen .controls-head .prompt{display:block;-webkit-line-clamp:none;overflow:visible}}
