:root{--sat: var(--discord-safe-area-inset-top, env(safe-area-inset-top, 0px));--sab: var(--discord-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--sal: var(--discord-safe-area-inset-left, env(safe-area-inset-left, 0px));--sar: var(--discord-safe-area-inset-right, env(safe-area-inset-right, 0px));--felt: #1d4636;--felt-deep: #12301f;--wood: #4a3526;--wood-lit: #6b4e39;--ivory: #f3ead6;--ivory-shade: #d9ccb0;--ink: #23201b;--red: #c4302b;--blue: #175ca8;--black: #23201b;--orange: #d9821a;--good: #5fc08a;--bad: #e8604c;--tile-w: clamp(26px, 4.6vw, 44px);--tile-h: calc(var(--tile-w) * 1.36);--radius: 6px;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#eae4d8;background:var(--felt-deep);user-select:none;-webkit-user-select:none;touch-action:manipulation}#app{height:100%}.table-frame{height:100%;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top side" "felt side" "rack side";padding:var(--sat) var(--sar) var(--sab) var(--sal);background:radial-gradient(120% 90% at 50% 0%,#27604a 0%,var(--felt) 45%,var(--felt-deep) 100%)}.topbar{grid-area:top;display:flex;align-items:center;gap:10px;padding:5px 10px;font-size:12px;background:#00000042;border-bottom:1px solid rgba(0,0,0,.3)}.who{display:flex;align-items:center;gap:6px;min-width:0}.who img,.who .pip{width:20px;height:20px;border-radius:50%;background:#ffffff26;flex:none}.who b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who.away{opacity:.45}.who.acting b{color:#ffe9a8}.count{font-variant-numeric:tabular-nums;opacity:.7;font-size:11px}.turnflag{margin-left:auto;display:flex;align-items:center;gap:6px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:11px}.turnflag .dot{width:7px;height:7px;border-radius:50%;background:#6b6b6b}.turnflag.mine{color:var(--good)}.turnflag.mine .dot{background:var(--good);box-shadow:0 0 8px var(--good)}.felt{grid-area:felt;overflow-y:auto;overflow-x:hidden;padding:8px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;-webkit-overflow-scrolling:touch}.felt:empty:after,.felt-hint{color:#ffffff4d;font-size:12px;align-self:center;margin:auto}.set{display:flex;gap:2px;padding:4px;border-radius:9px;background:#0003;box-shadow:inset 0 0 0 1px #ffffff0d;position:relative}.set.bad{box-shadow:inset 0 0 0 1.5px var(--bad),0 0 12px #e8604c4d}.set.bad:after{content:attr(data-why);position:absolute;left:4px;bottom:-13px;font-size:9px;color:var(--bad);white-space:nowrap}.set.fresh{box-shadow:inset 0 0 0 1.5px #ffe9a880}.set.target{background:#ffffff29}.newset{display:flex;align-items:center;justify-content:center;min-width:calc(var(--tile-w) * 1.5);height:calc(var(--tile-h) + 8px);border-radius:9px;border:1.5px dashed rgba(255,255,255,.22);color:#ffffff59;font-size:18px}.newset.target{border-color:var(--good);color:var(--good);background:#5fc08a1f}.tile{width:var(--tile-w);height:var(--tile-h);border-radius:var(--radius);background:linear-gradient(170deg,#fbf5e6 0%,var(--ivory) 48%,var(--ivory-shade) 100%);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-weight:800;font-size:calc(var(--tile-w) * .5);line-height:1;box-shadow:0 1px #ffffffb3 inset,0 -1.5px #0000002e inset,0 2px 3px #00000059;flex:none;position:relative}.tile:after{content:"";width:calc(var(--tile-w) * .16);height:calc(var(--tile-w) * .16);border-radius:50%;background:currentColor;opacity:.5}.tile.red{color:var(--red)}.tile.blue{color:var(--blue)}.tile.black{color:var(--black)}.tile.orange{color:var(--orange)}.tile.joker{font-size:calc(var(--tile-w) * .62);color:var(--red)}.tile.joker:after{display:none}.tile.lifted{opacity:.22}.tile.picked{transform:translateY(-6px);box-shadow:0 8px 12px #00000073}.tile.mine:before{content:"";position:absolute;inset:auto 0 2px;height:2px;margin:0 20%;border-radius:2px;background:#ffd264d9}.ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-50%) scale(1.14);box-shadow:0 10px 20px #00000080}.rack{grid-area:rack;display:flex;flex-wrap:wrap;align-content:flex-start;gap:3px;padding:6px 8px;max-height:calc(var(--tile-h) * 2 + 18px);overflow-y:auto;background:linear-gradient(180deg,var(--wood-lit) 0%,var(--wood) 26%,#33241a 100%);box-shadow:0 -3px 10px #0006,inset 0 2px #ffffff1f;border-top:1px solid rgba(0,0,0,.4)}.rack.target{background:linear-gradient(180deg,#7d5c42 0%,var(--wood) 26%,#33241a 100%)}.side{grid-area:side;display:flex;flex-direction:column;gap:5px;padding:6px;width:clamp(78px,13vw,104px);background:#00000042;border-left:1px solid rgba(0,0,0,.3)}button{font:inherit;font-size:11px;font-weight:700;letter-spacing:.02em;color:#f0e9da;background:#ffffff1a;border:1px solid rgba(255,255,255,.14);border-radius:7px;padding:7px 4px;cursor:pointer}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.3;cursor:default}button.go{background:linear-gradient(180deg,#4f9e72,#2f7150);border-color:#6fbf93;margin-top:auto;padding:10px 4px}button.warn{background:#e8604c33;border-color:#e8604c73}.reason{font-size:9.5px;line-height:1.25;color:#ffd9b0;opacity:.85;text-align:center;min-height:2.4em}.veil{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;text-align:center;background:#08140ee6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:40}.veil h1{font-size:19px;margin:0;font-weight:800;letter-spacing:.01em}.veil p{margin:0;font-size:12.5px;opacity:.75;max-width:34ch;line-height:1.45}.veil button{font-size:13px;padding:10px 22px}.veil .score{font-variant-numeric:tabular-nums;font-size:13px;opacity:.9}.toast{position:fixed;left:50%;top:calc(var(--sat) + 40px);transform:translate(-50%);background:#e8604cf2;color:#fff;font-size:12px;font-weight:600;padding:7px 14px;border-radius:20px;z-index:60;box-shadow:0 4px 14px #0006}@media(orientation:portrait){.rotate-nag{display:flex}}.rotate-nag{display:none}.tile.grab{touch-action:none}
