:root{--bg: #0d2b26;--bg-2: #14453c;--panel: rgba(255, 255, 255, .06);--panel-border: rgba(255, 255, 255, .14);--text: #f0fff9;--muted: #a8cfc2;--accent: #2fbf8f;--accent-2: #ffd166;--good: #54e3a0;--danger: #ff4d4d;--card-w: 72px;--card-h: 101px;--card-w-sm: 52px;--card-h-sm: 73px;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:radial-gradient(1200px 800px at 20% -10%,var(--bg-2),var(--bg));background-attachment:fixed;overflow-x:hidden}button{font:inherit;cursor:pointer;border:none;border-radius:12px;padding:.6em 1.1em;font-weight:700;color:#fff;background:linear-gradient(180deg,var(--accent),#1d8f6a);box-shadow:0 5px #14614a,0 10px 20px #0000004d;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease;touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.08)}button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #14614a,0 6px 12px #0000004d}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.secondary{background:linear-gradient(180deg,#3d6b60,#2b4c44);box-shadow:0 5px #1c332d,0 10px 20px #0000004d}button.ghost{background:transparent;box-shadow:none;border:2px solid var(--panel-border)}button.small-button{padding:.25em .7em;font-size:13px}input{font:inherit;padding:.6em .9em;border-radius:12px;border:2px solid var(--panel-border);background:#00000040;color:var(--text);outline:none;min-width:0}input:focus{border-color:var(--accent-2)}.center-page{min-height:100%;display:grid;place-items:center;padding:24px}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:20px;padding:24px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 24px 60px #0006}.title{font-size:clamp(32px,6vw,60px);font-weight:900;letter-spacing:-1px;background:linear-gradient(90deg,#f06595,var(--accent-2),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;text-align:center;margin:0 0 4px}.subtitle{text-align:center;color:var(--muted);margin:0 0 18px}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;align-items:center;gap:10px}.muted{color:var(--muted)}.error{color:var(--danger);font-weight:700}.badge{display:inline-block;background:#0000004d;border:1px solid var(--panel-border);padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}.badge.ready-badge{background:#54e3a02e;border-color:var(--good);color:var(--good)}.badge.offline-badge{color:var(--danger);border-color:var(--danger)}.badge.turn-badge{background:#ffd16633;border-color:var(--accent-2);color:var(--accent-2)}.badge.host-badge{background:transparent;border:none;padding:0}.error-toast{position:fixed;top:16px;left:50%;z-index:100;background:var(--danger);padding:10px 18px;border-radius:12px;font-weight:800}.top-fabs{position:fixed;top:10px;right:10px;z-index:96;display:flex;gap:6px}.fab{width:40px;height:36px;padding:0;display:grid;place-items:center;background:#00000059;box-shadow:none;border:1px solid var(--panel-border)}@media(max-width:640px){.fab{width:34px;height:32px;font-size:14px}}.mcard{width:var(--card-w);height:var(--card-h);border:3px solid #000;border-radius:12px;position:relative;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0;box-shadow:0 4px 10px #00000059}.mcard.small{width:var(--card-w-sm);height:var(--card-h-sm);border-width:2px;border-radius:9px}.mcard.score-pile{background:#000;color:#fff}.mcard.empty{background:#ffffff0f;color:var(--muted)}.mcard-band{flex:1 1 0;display:grid;place-items:center}.mcard-initial{font-weight:900;font-size:14px;opacity:.9;text-shadow:0 1px 2px rgba(0,0,0,.35)}.mcard.small .mcard-initial{font-size:11px}.mcard-count{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:26px;font-weight:900;text-shadow:0 0 6px rgba(0,0,0,.55),0 2px 3px rgba(0,0,0,.45);color:#fff;pointer-events:none}.mcard.small .mcard-count{font-size:19px}.player-area{border:2px solid var(--panel-border);border-radius:18px;background:var(--panel);padding:10px 14px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:150px;max-width:100%;transition:box-shadow .25s ease,border-color .25s ease}.player-area.active{border-color:var(--accent-2);box-shadow:0 0 0 2px var(--accent-2),0 0 24px #ffd16673}.player-area.compact{padding:6px 10px 8px;min-width:120px}.player-name{display:flex;align-items:center;justify-content:center;gap:6px;font-weight:800;width:100%;flex-wrap:wrap;text-align:center}.player-emoji{font-size:20px}.stacks{display:flex;gap:6px;align-items:flex-start;justify-content:center;flex-wrap:nowrap;max-width:100%}.stack-group{position:relative;display:flex;flex-direction:column;align-items:center;padding-bottom:15px}.tank-row{display:flex;gap:6px;align-items:flex-start;min-width:var(--card-w);min-height:var(--card-h)}.player-area.compact .tank-row{min-width:var(--card-w-sm);min-height:var(--card-h-sm)}.score-group{margin-left:8px}.area-label{position:absolute;bottom:0;left:50%;transform:translate(-50%);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.steal-button{padding:.35em 1em;font-size:14px}.table-page{min-height:100%;display:flex;flex-direction:column;justify-content:flex-start;gap:10px;padding:12px;max-width:1280px;margin:0 auto}.goal-badge{position:fixed;top:54px;right:10px;z-index:90;background:var(--panel);border:1px solid var(--panel-border);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.table-ring{position:relative;flex:0 0 auto;height:clamp(480px,60vh,560px);margin-top:44px}.table-ring>.seat,.table-ring>.deck-zone{position:absolute;transform:translate(-50%,-50%)}.table-ring>.deck-zone{left:50%;top:50%}.table-ring.crowded{--card-w-sm: 38px;--card-h-sm: 54px}.table-ring.crowded .player-area.compact{min-width:0;padding:4px 8px 6px;gap:5px;font-size:13px}.deck-zone{display:flex;flex-direction:column;align-items:center;gap:10px}.deck-card{filter:drop-shadow(0 8px 14px rgba(0,0,0,.4))}.turn-hint{font-size:13px;text-align:center;max-width:220px}.turn-timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:15px;padding:2px 10px;border-radius:999px;background:#0000004d;border:1px solid var(--panel-border)}.turn-timer.low{color:#ffb4b4;border-color:#ff6b6b}.table-bottom{display:flex;justify-content:center}.leave-button{position:fixed;bottom:10px;right:10px;z-index:60;padding:6px 12px;font-size:13px}@media(max-width:640px){.leave-button{top:50px;right:10px;bottom:auto}}.spectating-note{padding:14px 20px;font-weight:700}.fly-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:80}.fly-card{position:fixed;top:0;left:0}.fly-card .mcard{box-shadow:0 0 0 3px #fff9,0 8px 18px #00000073}.fly-card .mcard{width:100%;height:100%}.fly-flip{position:relative;width:100%;height:100%}.fly-face{position:absolute;top:0;right:0;bottom:0;left:0}.lobby-panel{width:min(520px,100%)}.name-input{flex:1 1 0}.player-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:6px}.player-list li{display:flex;align-items:center;gap:8px;background:#0003;border:1px solid var(--panel-border);border-radius:12px;padding:8px 12px}.player-list li .player-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-list li.ready{border-color:var(--good)}.house-rules{justify-content:space-between;flex-wrap:wrap}.house-rules input{width:88px}.timer-rule{gap:6px;align-items:center}.timer-rule .small-button[aria-pressed=true]{color:var(--text);border-color:var(--accent)}.your-emoji{font-size:22px;vertical-align:middle}.emoji-picker{display:flex;flex-wrap:wrap;gap:6px}.emoji-option{font-size:22px;line-height:1;padding:6px 8px;background:#00000040;border:2px solid var(--panel-border);box-shadow:none;border-radius:12px}.emoji-option:active:not(:disabled){transform:none;box-shadow:none}.emoji-option.chosen{border-color:var(--accent-2);background:#ffd1662e}.emoji-option.taken{opacity:.4}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:95;padding:16px}.modal{background:linear-gradient(180deg,#17342e,#0f251f);border:1px solid var(--panel-border);border-radius:20px;padding:24px;width:min(440px,100%);box-shadow:0 30px 80px #0009}.doc-overlay{z-index:97}.doc-modal{width:min(620px,100%);max-height:min(80vh,720px);display:flex;flex-direction:column;padding:20px 22px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-close{padding:4px 10px;font-size:15px}.modal-body{overflow-y:auto;margin-top:10px;padding-right:6px;line-height:1.5}.modal-body h3{margin:16px 0 6px;font-size:16px;color:var(--accent-2)}.modal-body h4{margin:12px 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.modal-body p{margin:0 0 8px}.modal-body ul{margin:0;padding-left:20px}.modal-body li{margin-bottom:6px}.score-list{list-style:none;margin:14px 0 18px;padding:0;display:flex;flex-direction:column;gap:6px}.score-list li{display:flex;justify-content:space-between;gap:12px;background:#00000040;border-radius:10px;padding:8px 12px}@media(max-width:900px){:root{--card-w: 56px;--card-h: 78px;--card-w-sm: 40px;--card-h-sm: 56px}.mcard-count{font-size:20px}.mcard.small .mcard-count{font-size:15px}.player-area{min-width:120px}.player-area.compact{min-width:100px}}@media(min-width:861px)and (min-height:820px){.table-page{justify-content:center}}@media(max-width:860px){.table-ring{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;height:auto;margin-top:0;padding-top:40px}.table-ring>.seat,.table-ring>.deck-zone{position:static;transform:none}.table-ring>.deck-zone{order:1;flex-basis:100%}.goal-badge{top:10px;left:10px;right:auto}}@media(max-width:640px){:root{--card-w: 44px;--card-h: 62px;--card-w-sm: 30px;--card-h-sm: 42px}.mcard{border-width:2px;border-radius:8px}.mcard-count{font-size:16px}.mcard.small .mcard-count{font-size:12px}.mcard-initial{font-size:9px}.mcard.small .mcard-initial{font-size:7px}.stacks{flex-wrap:wrap;justify-content:center}.player-area,.player-area.compact{min-width:0}.player-emoji{font-size:15px}.player-name{font-size:13px}.table-page{padding:8px}}
