:root{--bg:#f6f1e6;--surface:#fbf7ee;--well:#ece4d1;--ink:#1d1b1a;--muted:#5d5a44;--line:#e3dac4;--felt:#57602c;--felt-ink:#f6f1e6;--cell:#1d1b1a1a;--cell-line:#57602c;--star:#6e7a37;--rack:#f3c6a5;--tile:#fbf7ee;--tile-ink:#1d1b1a;--fresh:#fff0b3;--last:#fbf7ee;--last-ring:#f2d34b;--gold:#f2d34b;--accent:#2e5fc8;--accent-ink:#fff;--link:#2a56b5;--good:#4f5a22;--bad:#b3261e;--font:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Fraunces", Georgia, serif;--r-xs:4px;--r-sm:8px;--r:10px;--r-lg:16px;--r-pill:99px;--shadow-sm:0 2px 6px #0003;--shadow:0 6px 18px #00000045;--shadow-lg:0 8px 24px #0000004d;--z-pop:15;--z-sheet:20;--z-notice:30;--z-popover:35;--z-drag:40;--z-fx:45;--z-bar:60;--gold-ink:#1d1b1a;--pop-red:#c8341f;--pop-yellow:#ffd23f;--text-sm:14px;--text:16px;--text-lg:20px;--text-xl:28px;--tap:44px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17180f;--surface:#23251a;--well:#2c2e21;--ink:#f6f1e6;--muted:#b9b393;--line:#34372a;--felt:#2a2f15;--felt-ink:#f6f1e6;--cell:#0000002e;--cell-line:#2a2f15;--star:#40481f;--rack:#3a2c22;--tile:#f6f0e2;--tile-ink:#1d1b1a;--fresh:#ffe998;--last:#f6f0e2;--last-ring:#f2d34b;--gold:#f2d34b;--accent:#3d6fd8;--accent-ink:#fff;--link:#9cb8f2;--good:#c4cf7f;--bad:#f08a74;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#17180f;--surface:#23251a;--well:#2c2e21;--ink:#f6f1e6;--muted:#b9b393;--line:#34372a;--felt:#2a2f15;--felt-ink:#f6f1e6;--cell:#0000002e;--cell-line:#2a2f15;--star:#40481f;--rack:#3a2c22;--tile:#f6f0e2;--tile-ink:#1d1b1a;--fresh:#ffe998;--last:#f6f0e2;--last-ring:#f2d34b;--gold:#f2d34b;--accent:#3d6fd8;--accent-ink:#fff;--link:#9cb8f2;--good:#c4cf7f;--bad:#f08a74;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{font-family:var(--font);font-size:var(--text);-webkit-font-smoothing:antialiased;line-height:1.45}h1,h2,h3{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;text-wrap:balance;margin:0;font-weight:800;line-height:1.1}a{color:var(--link)}button{font:inherit;cursor:pointer;color:inherit}button,a,.btn,input,select{touch-action:manipulation}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:var(--text-sm)}.btn{background:var(--surface);color:var(--ink);border-radius:var(--r);border:0;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 14px;font-weight:650;text-decoration:none;display:inline-flex}.btn.small{min-height:34px;font-size:var(--text-sm);padding:6px 10px}.btn.primary{background:var(--accent);color:var(--accent-ink);font-weight:700}.btn.big{font-size:var(--text);padding:14px 24px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:default}.pill{font-size:var(--text-sm);border-radius:var(--r-pill);background:var(--well);color:var(--ink);letter-spacing:.02em;padding:2px 8px;font-weight:700;display:inline-block}.pill.turn{background:var(--gold);color:var(--gold-ink)}:where(.btn.small,.home,.zbtn){position:relative}:is(.btn.small,.home,.zbtn):after{content:"";inset:min(0px, calc((100% - var(--tap)) / 2));position:absolute}:root{--t-red:#cc333b;--t-blue:#2e5fc8;--t-gold:#a86a00;--t-ink:#1d1b1a;--tint-red:#f8d5d0;--tint-blue:#d6e1f7;--tint-gold:#f9dcae;--tint-ink:#f2d34b;--tile-back:#2e5fc8;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .11 0 0 0 0 .1 0 0 0 0 .1 0 0 0 1.4 -.55'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23g)'/%3E%3C/svg%3E")}.tile{--w:var(--cell-size,40px);--depth:calc(var(--w) * .12);box-sizing:border-box;padding-bottom:var(--depth);border-radius:calc(var(--w) * .2);background-color:var(--tile-back);color:var(--tile-ink);box-shadow:var(--state,0 0 #0000), var(--halo,0 0 #0000);font-family:var(--display);font-weight:800;font-size:calc(var(--w) * .54);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 72;letter-spacing:-.04em;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;place-items:center;line-height:1;display:grid;position:absolute;inset:0}.tile .face{top:0;left:0;right:0;bottom:var(--depth);border-radius:inherit;background:var(--face-bg,var(--tile));pointer-events:none;position:absolute;overflow:hidden}.tile .face svg{width:100%;height:100%;display:block}.tile .face:after{content:"";background:var(--grain);opacity:.25;mix-blend-mode:multiply;background-size:60px;position:absolute;inset:0}.tile .tint{fill:var(--tint)}.tile .n{color:var(--suit);margin-top:0;position:relative}.tile .sym{width:22%;fill:var(--suit);position:absolute;top:7%;left:9%;overflow:visible}.tile .sym.flip{top:auto;left:auto;right:9%;bottom:calc(var(--depth) + 7%);rotate:180deg}.tile .sym .halo{stroke:var(--face-bg,var(--tile));stroke-width:5px;stroke-linejoin:round}.tile .sym.big{width:60%;top:20%;left:50%;translate:-50%}.c-red{--suit:var(--t-red);--tint:var(--tint-red)}.c-blue{--suit:var(--t-blue);--tint:var(--tint-blue)}.c-gold{--suit:var(--t-gold);--tint:var(--tint-gold)}.c-ink{--suit:var(--t-ink);--tint:var(--tint-ink)}.joker .t-red{fill:var(--tint-red)}.joker .t-blue{fill:var(--tint-blue)}.joker .t-gold{fill:var(--tint-gold)}.joker .t-ink{fill:var(--tint-ink)}.j-star{--suit:var(--t-red)}.j-bloom{--suit:var(--t-blue)}.j-bloom .face svg{opacity:.75}.tile.fresh{--face-bg:var(--fresh)}.tile.last{--state:0 0 0 3px var(--last-ring)}.tile.bad{--state:0 0 0 3px var(--bad-ring,#e0533c)}.tile.sel{--state:0 0 0 3px var(--gold);z-index:2;transform:translateY(-6%)}.tile .face .shine{z-index:1;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(90deg,#0000,#ffffff8c 30%,#fff 48%,#ffffff8c 66%,#0000);width:60%;position:absolute;top:-10%;bottom:-10%;left:0;transform:translate(-120%)skew(-18deg)}:root{--bad-ring:#e0533c}html,body{height:100%}body{overscroll-behavior:none}.center{text-align:center;place-content:center;gap:12px;min-height:100dvh;padding:16px;display:grid}.link{color:var(--link);background:0 0;border:0;padding:4px;text-decoration:underline}a.semantic{color:inherit;text-decoration:none}.lobby{gap:18px;max-width:520px;margin:0 auto;padding:16px 16px 48px;display:grid}.page-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.brand{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;font-weight:800;font-size:var(--text-lg);color:var(--ink);text-decoration:none}.lobby-new{border-radius:var(--r-lg);background:var(--felt);color:var(--felt-ink);justify-items:start;gap:10px;padding:20px;display:grid}.lobby-new h1{font-size:var(--text-xl)}.lobby-new .muted{color:color-mix(in srgb, var(--felt-ink) 75%, transparent);margin:0}.open-link{gap:6px;display:grid}.open-link label{font-size:var(--text-sm);font-weight:500}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.open-link .row input,.join input,.linkbox{min-width:0;min-height:44px;font:inherit;border-radius:var(--r-sm);background:var(--well);color:var(--ink);border:0;flex:1;padding:8px 12px}.tabs{gap:4px;display:flex}.tabs button{border-radius:var(--r-pill);color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex}.tabs button.on{color:var(--ink);background:var(--well)}.note{border-radius:var(--r);background:var(--surface);font-size:var(--text-sm);margin:0;padding:10px 12px}.note.good{background:color-mix(in srgb, var(--good) 14%, var(--surface))}.games{gap:8px;margin:0;padding:0;list-style:none;display:grid}.games li{background:var(--surface);border-radius:var(--r);display:grid;position:relative}.games li.turn{background:color-mix(in srgb, var(--gold) 30%, var(--surface))}.games li.over{opacity:.8}.row-link{gap:2px;padding:12px 44px 12px 14px;display:grid}.game-name{font-family:var(--display);font-size:var(--text)}.game-meta{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.icon-btn{border-radius:var(--r-sm);width:36px;height:36px;color:var(--muted);background:0 0;border:0;font-size:20px;position:absolute;top:6px;right:6px}.confirm-remove{font-size:var(--text-sm);gap:8px;padding:0 14px 12px;display:grid}.confirm-remove p{margin:0}.btn.danger{color:var(--bad);background:color-mix(in srgb, var(--bad) 10%, var(--surface))}.stack{gap:8px;display:grid}.invite h2,.join h2{font-size:var(--text-lg)}.invite p{margin:0}.next-game{gap:8px;display:grid}.next-game p{margin:0}.game{background:var(--bg);flex-direction:column;height:100dvh;display:flex}.top{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));align-items:center;gap:8px;display:flex}.home{font-size:var(--text-lg);color:var(--ink);padding:4px 8px;text-decoration:none}.seats{scrollbar-width:none;flex:1;gap:6px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.seats li{border-radius:var(--r-pill);background:var(--surface);font-size:var(--text-sm);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-weight:600;display:flex}.seats li.up{background:var(--accent);color:var(--accent-ink)}.seats li.me b{text-underline-offset:3px;text-decoration:underline}.actions .poke{background:var(--gold);color:var(--gold-ink);text-overflow:ellipsis;white-space:nowrap;max-width:60%;font-weight:800;animation:.34s cubic-bezier(.3,1.5,.5,1) poke-in;overflow:hidden}.actions .poke:active{transform:scale(.94)}@keyframes poke-in{0%{opacity:0;transform:scale(.4)}}@media (prefers-reduced-motion:reduce){.actions .poke{animation:none}}.count{text-align:center;min-width:20px;font-weight:700}.pool{font-weight:700;font-size:var(--text-sm);border-radius:var(--r-sm);background:var(--gold);color:var(--gold-ink);padding:4px 10px}.fieldframe{flex:1;min-height:160px;margin:0 8px;position:relative}.fieldscroll{border-radius:var(--r-lg);background-color:var(--felt);--field-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .98 0 0 0 0 .93 0 0 0 0 .6 0 0 0 .65 -.3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E");background-image:var(--field-grain);overscroll-behavior:contain;scrollbar-width:thin;touch-action:none;background-repeat:repeat;background-attachment:local;position:absolute;inset:0;overflow:auto}.field-pan{width:max-content}.field{-webkit-user-select:none;user-select:none;position:relative}.cell{left:calc(3px + var(--x) * (var(--cell-size) + 2px));top:calc(3px + var(--y) * (var(--cell-h) + 2px));width:var(--cell-size);height:var(--cell-h);background:var(--cell);border-radius:calc(var(--cell-size) * .2);position:absolute}.cell[data-k="0,0"]:not(:has(.tile)):after{content:"";aspect-ratio:1;background:var(--star);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);width:50%;margin:auto;position:absolute;inset:0}.zoombar{z-index:5;border-radius:var(--r);background:color-mix(in srgb, var(--surface) 88%, transparent);box-shadow:var(--shadow-sm);gap:2px;padding:4px;display:flex;position:absolute;bottom:8px;right:8px}.zbtn{border-radius:var(--r-sm);min-width:36px;height:36px;color:var(--ink);background:0 0;border:0;font-size:20px;font-weight:500;line-height:1}.zbtn.fitbtn{font-size:var(--text-sm);padding:0 8px}.zbtn:disabled{opacity:.35}.cell.live .tile{cursor:grab}.cell.hl{z-index:3}.cell.hl .tile{animation:2.6s ease-out hl-pulse}@keyframes hl-pulse{12%,55%{outline:3px solid var(--gold);outline-offset:1px;filter:drop-shadow(0 0 8px color-mix(in srgb, var(--gold) 70%, transparent));transform:scale(1.06)}30%{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.cell.hl .tile{outline:3px solid var(--gold);animation:none}}.ghost{z-index:var(--z-drag);width:var(--cell-size);height:calc(var(--cell-size) * 1.3);pointer-events:none;filter:drop-shadow(var(--shadow));position:fixed;translate:-50% -60%}.ghost .tile{transform:scale(1.1)}.dock{padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));flex:none;gap:10px;display:grid}.status{min-height:1.45em;font-size:var(--text-sm);margin:0}.rack{--cell-size:40px;min-height:calc(var(--cell-size) * 1.3 + 16px);border-radius:var(--r-lg);background:var(--rack);flex-wrap:wrap;align-content:flex-start;gap:4px;padding:8px;display:flex}.rack .slot{width:var(--cell-size);height:calc(var(--cell-size) * 1.3);position:relative}.rack .tile{cursor:pointer}.rack .slot.drop-before:before,.rack .slot.drop-end:before{content:"";background:var(--gold);border-radius:2px;width:3px;position:absolute;top:2px;bottom:2px;left:-4px}.rack .slot.drop-end{width:6px}.actions{align-items:center;gap:8px;display:flex}.grow{flex:1}.join{gap:6px;display:grid}.err{color:var(--bad);font-size:var(--text-sm);margin:0}@media (min-width:900px){.game{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 380px;display:grid}.top{grid-column:1/-1}.fieldframe{margin:0 0 12px 12px}.dock{align-content:start}}.solo-offer{border-radius:var(--r);background:var(--surface);gap:6px;margin-top:4px;padding:12px;display:grid}.solo-offer p{margin:0}.achs{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.achs li{border-radius:var(--r);background:var(--well);color:var(--muted);align-items:center;gap:12px;padding:10px 12px;display:flex}.ach-text{gap:2px;min-width:0;display:grid}.ach-earned{align-items:center;gap:10px;display:flex}.achs li.got{background:var(--surface);color:var(--ink)}.toast{z-index:var(--z-notice);left:50%;top:calc(64px + env(safe-area-inset-top,0px));border-radius:var(--r);background:var(--felt);color:var(--felt-ink);box-shadow:var(--shadow);justify-items:center;gap:2px;padding:10px 18px;animation:.35s cubic-bezier(.3,1.5,.5,1) toast-in;display:grid;position:fixed;translate:-50%}.toast b{color:var(--gold);font-family:var(--display)}.eyebrow{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;opacity:.8;margin:0}@keyframes toast-in{0%{opacity:0;translate:-50% -12px}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.coach{border-radius:var(--r);background:var(--surface);font-size:var(--text-sm);gap:6px;padding:10px 12px;display:grid}.coach p{margin:0}.coach .row{gap:12px}.coach .btn{background:var(--well)}.btn.help{min-width:34px;font-weight:700}.overlay{z-index:var(--z-sheet);background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.howto{border-radius:var(--r-lg);background:var(--surface);width:min(420px,100%);box-shadow:var(--shadow-lg);gap:12px;padding:20px;display:grid}.howto h2{font-size:var(--text-xl)}.howto p,.howto ul{margin:0}.howto-list{gap:8px;padding-left:20px;display:grid}.howto-row{--cell-size:40px;border-radius:var(--r);background:var(--felt);gap:4px;width:max-content;padding:8px;display:flex}.howto-row .slot{width:var(--cell-size);height:calc(var(--cell-size) * 1.3);position:relative}.bottom-bars{z-index:var(--z-bar);left:0;right:0;bottom:calc(max(env(safe-area-inset-bottom,0px), 16px) + 28px);pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 12px;display:flex;position:fixed}.bottom-bars>*{pointer-events:auto}:is(.update-bar,.install-bar){border-radius:var(--r-lg);color:var(--ink);background:var(--surface);box-shadow:var(--shadow-lg);border:0}.update-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:max-content;max-width:100%;padding:8px 10px 8px 14px;animation:.26s cubic-bezier(.3,1.4,.5,1) backwards bar-up;display:flex}@keyframes bar-up{0%{opacity:0;transform:translateY(16px)}}.install-bar{flex-direction:column;gap:10px;width:100%;max-width:440px;padding:14px 16px;animation:.32s cubic-bezier(.3,1.4,.5,1) backwards bar-up;display:flex}.install-bar b{font-family:var(--display)}.install-bar p{font-size:var(--text-sm);color:var(--muted);margin:2px 0 0}.install-bar .install-steps{color:var(--ink)}.install-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.install-actions .link{margin-left:auto}@media (prefers-reduced-motion:reduce){.update-bar,.install-bar{animation:none}}.meter{border-radius:var(--r-pill);background:color-mix(in srgb, var(--line) 70%, transparent);height:18px;position:relative;overflow:hidden}.meter i{border-radius:inherit;background:var(--gold);transition:width .6s cubic-bezier(.3,1.4,.5,1);position:absolute;inset:0 auto 0 0}.meter i.full{background:var(--good)}.meter span{text-align:center;font-size:12px;font-weight:700;line-height:18px;display:block;position:relative}.cue-ghost{z-index:var(--z-fx);pointer-events:none;filter:drop-shadow(0 6px 10px #0000004d)}.howto-row{align-items:center;position:relative}.howto-row .slot{animation:row-in 4.5s calc(var(--row) * .5s) infinite both;animation-delay:calc(var(--row) * .5s + var(--i) * .18s)}@keyframes row-in{0%{opacity:0;transform:translate(40%,30%)rotate(8deg)}12%,85%{opacity:1;transform:none}to{opacity:0;transform:none}}.howto-ok{color:var(--good);animation:ok-in 4.5s calc(var(--row) * .5s + .9s) infinite both;font-size:22px;font-weight:800;position:absolute;top:50%;right:-28px;translate:0 -50%}@keyframes ok-in{0%,8%{opacity:0;scale:.4}14%,70%{opacity:1;scale:1}80%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.howto-row .slot,.howto-ok{animation:none}}.howto-goal{--cell-size:40px;--rise:calc(var(--cell-size) * 1.3 + 30px);border-radius:var(--r);background:var(--felt);gap:12px;width:max-content;padding:10px;display:grid;position:relative}.goal-table,.goal-rack{gap:4px;display:flex}.goal-spot{width:var(--cell-size);height:calc(var(--cell-size) * 1.3);border-radius:var(--r-xs);background:var(--cell)}.goal-rack{border-radius:var(--r-sm);background:var(--rack);margin:-4px;padding:4px}.goal-rack .slot{width:var(--cell-size);height:calc(var(--cell-size) * 1.3);animation:goal-rise 4.2s calc(var(--i) * .3s) both;position:relative}@keyframes goal-rise{0%,6%{transform:none}20%,86%{transform:translateY(calc(-1 * var(--rise)))}to{transform:translateY(calc(-1 * var(--rise)));opacity:0}}.goal-win{text-align:center;border-radius:var(--r-pill);background:var(--gold);width:max-content;max-width:calc(100% - 16px);color:var(--gold-ink);font-weight:700;font-size:var(--text-sm);padding:4px 10px;animation:4.2s both goal-win;position:absolute;bottom:14px;left:50%;translate:-50%}@keyframes goal-win{0%,46%{opacity:0;scale:.6}54%,86%{opacity:1;scale:1}to{opacity:0}}.howto-goal{min-width:calc(4 * var(--cell-size) + 3 * 4px + 20px);justify-items:start}@media (prefers-reduced-motion:reduce){.goal-rack .slot{transform:translateY(calc(-1 * var(--rise)));animation:none}.goal-win{animation:none}}.cue-demo{z-index:var(--z-fx);pointer-events:none;position:fixed;inset:0}.cue-ghost-tile{opacity:0;position:fixed}.cue-ghost-tile .tile{filter:saturate(.85)}.cue-finger{opacity:0;width:0;height:0;position:fixed;top:0;left:0}.cue-finger span{width:34px;height:34px;box-shadow:0 0 0 3px var(--gold), var(--shadow);background:#ffffffe0;border-radius:50%;position:absolute;top:-17px;left:-17px}.cue-label{opacity:0;white-space:nowrap;border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-size:var(--text-sm);box-shadow:var(--shadow-sm);padding:5px 10px;font-weight:600;position:fixed;transform:translate(-50%,-100%)}.coach-did{color:var(--good);align-items:center;gap:8px;font-weight:600;animation:.45s cubic-bezier(.3,1.5,.5,1) both did-in;display:flex}.coach-did .tick{background:var(--good);width:22px;height:22px;color:var(--bg);border-radius:50%;flex:none;place-items:center;font-size:13px;animation:.5s cubic-bezier(.3,1.8,.5,1) .1s both tick-pop;display:grid}@keyframes did-in{0%{opacity:0;transform:translateY(6px)}}@keyframes tick-pop{0%{transform:scale(0)rotate(-30deg)}}@media (prefers-reduced-motion:reduce){.coach-did,.coach-did .tick{animation:none}}.game{position:relative}.replay-banner{z-index:var(--z-notice);left:50%;top:calc(58px + env(safe-area-inset-top,0px));border-radius:var(--r-pill);white-space:nowrap;background:var(--felt);color:var(--felt-ink);box-shadow:var(--shadow-lg);font-size:var(--text);align-items:center;gap:10px;padding:8px 12px 8px 8px;animation:.35s cubic-bezier(.3,1.5,.5,1) both banner-in;display:flex;position:absolute;translate:-50%}.replay-banner.yours{background:var(--gold);color:var(--gold-ink);padding:12px 22px}.replay-yours{font-family:var(--display);font-size:var(--text-lg)}.replay-avatar{background:var(--gold);width:34px;height:34px;color:var(--gold-ink);font:800 16px/1 var(--display);border-radius:50%;flex:none;place-items:center;animation:1.2s ease-in-out infinite avatar-pulse;display:grid}@keyframes avatar-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--gold) 35%, transparent)}}.replay-dots{gap:4px;display:flex}.replay-dots i{background:color-mix(in srgb, var(--felt-ink) 30%, transparent);border-radius:50%;width:7px;height:7px}.replay-dots i.on{background:var(--gold)}.replay-banner .link{color:var(--felt-ink);opacity:.8}@keyframes banner-in{0%{opacity:0;translate:-50% -10px;scale:.9}}.seats li.playing{background:var(--gold);color:var(--gold-ink);animation:1s ease-in-out infinite seat-bob}@keyframes seat-bob{50%{box-shadow:0 4px 0 color-mix(in srgb, var(--gold) 50%, transparent);transform:translateY(-2px)}}.land-ring{border:3px solid var(--gold);pointer-events:none;z-index:5;border-radius:14%;position:absolute;inset:-6%}.draw-chip{z-index:var(--z-fx);background:var(--tile-back,#2f8f6c);width:28px;height:36px;box-shadow:inset 0 0 0 2px #ffffff59, var(--shadow);pointer-events:none;border-radius:6px;position:fixed}@media (prefers-reduced-motion:reduce){.replay-banner,.replay-avatar,.seats li.playing{animation:none}}.actor-tag{z-index:var(--z-fx);pointer-events:none;white-space:nowrap;border-radius:var(--r-pill);background:var(--gold);color:var(--gold-ink);box-shadow:var(--shadow);font-weight:700;font-size:var(--text-sm);align-items:center;gap:6px;padding:3px 10px 3px 3px;display:flex;position:fixed;top:0;left:0}.actor-tag:after{content:"";background:var(--gold);width:10px;height:10px;position:absolute;bottom:-5px;left:50%;translate:-50%;rotate:45deg}.actor-tag i{background:var(--felt);width:22px;height:22px;color:var(--felt-ink);font:800 12px/1 var(--display);border-radius:50%;place-items:center;font-style:normal;display:grid}.replay-skip{z-index:var(--z-notice);right:18px;top:calc(62px + env(safe-area-inset-top,0px));border-radius:var(--r-pill);background:color-mix(in srgb, var(--surface) 92%, transparent);color:var(--ink);font-size:var(--text-sm);box-shadow:var(--shadow-sm);border:0;padding:6px 12px;font-weight:600;position:absolute}.field-notes{z-index:var(--z-notice);pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:max-content;max-width:calc(100% - 24px);display:flex;position:absolute;bottom:60px;left:50%;translate:-50%}.notice{border-radius:var(--r);text-align:center;max-width:100%;color:var(--ink);background:var(--surface);box-shadow:var(--shadow-lg);font-size:var(--text-sm);border:0;align-items:center;gap:8px;padding:8px 14px;animation:.32s cubic-bezier(.3,1.5,.5,1) both notice-in;display:flex}.notice.n-bad{color:#fff;background:#b3261e;font-weight:600}.notice.n-turn{background:var(--gold);color:var(--gold-ink);font:800 var(--text-lg)/1.1 var(--display);padding:10px 22px}.notice.n-ach{color:#f6f1e6;background:#1d1b1a;flex-direction:column;gap:2px}.notice.n-ach b{color:var(--gold);font-family:var(--display)}.notice-avatar{background:var(--gold);width:24px;height:24px;color:var(--gold-ink);font:800 12px/1 var(--display);border-radius:50%;flex:none;place-items:center;display:grid}@keyframes notice-in{0%{opacity:0;transform:translateY(10px)scale(.96)}}.alerts-card{pointer-events:auto;border-radius:var(--r);background:var(--surface);width:min(380px,100vw - 48px);color:var(--ink);box-shadow:var(--shadow-lg);font-size:var(--text-sm);text-align:left;padding:12px 14px;animation:.32s cubic-bezier(.3,1.5,.5,1) both notice-in}.alerts-card p{margin:0 0 10px}.alerts-card-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (prefers-reduced-motion:reduce){.notice,.alerts-card{animation:none}}.ghost-count{border-radius:var(--r-pill);background:var(--accent);min-width:22px;height:22px;color:var(--accent-ink);font:800 12px/1 var(--font);box-shadow:var(--shadow-sm);place-items:center;padding:0 6px;display:grid;position:absolute;top:-8px;right:-8px}.confetti{z-index:var(--z-fx);pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti i{display:block;position:absolute}.notice.n-party{background:var(--gold);color:var(--gold-ink);padding:12px 24px;animation:.5s cubic-bezier(.3,1.7,.5,1) both party-in}.party{justify-items:center;gap:2px;display:grid}.party b{font:800 var(--text-xl)/1 var(--display);font-variation-settings:"SOFT" 100, "WONK" 1}.party span{font-weight:600}@keyframes party-in{0%{opacity:0;transform:scale(.5)rotate(-6deg)}60%{transform:scale(1.08)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.notice.n-party{animation:none}}.ia-icon{--ivory:#fbf7ee;--sky:#b3c8f3;--coral:#f4a59a;--gold:#f2d34b;--linec:#e2d8bf;--inkc:#1d1b1a;width:30px;height:30px;overflow:visible}.ia-icon .ia-shade{--ivory:#e2d8bf;--sky:#8fabe6;--coral:#ee978b;--gold:#d9b52f;--linec:#c9bd9c}.ia-icon path{fill:var(--ivory);stroke:none}.ia-icon path.sky{fill:var(--sky)}.ia-icon path.red{fill:var(--coral)}.ia-icon path:is(.gold,.spark){fill:var(--gold)}.ia-icon path.solid{fill:var(--inkc)}.ia-icon path.line{fill:none;stroke:var(--linec);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.ia-icon path.gold-line{fill:none;stroke:var(--gold);stroke-width:1.4px;stroke-linecap:round}.ia-icon path:is(.line,.gold-line).on{stroke:var(--inkc)}.ia-q{font:800 20px/1 var(--display);color:var(--muted)}.ach-art{background:var(--well);border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid;position:relative}.ach-face{background:#3f4620;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.ach-face[data-tile=ink]{background:#1d1b1a}.ach-art.got{background:linear-gradient(90deg,#f2d34b 50%,#d9b52f 50%)}.ach-art:not(.got) .ach-face{filter:grayscale()opacity(.5)}.ach-art.secret .ach-face{filter:none;background:var(--surface)}.ach-badge{z-index:2;border-radius:var(--r-pill);font:800 10px/1 var(--font);background:var(--accent);color:var(--accent-ink);padding:2px 5px;position:absolute;bottom:-2px;right:-4px}.ach-art:not(.got) .ach-badge{background:var(--muted);color:var(--bg)}.ach-art.play{animation:.8s cubic-bezier(.3,1.5,.45,1) both medal-drop}.ach-art.play:after{content:"";pointer-events:none;z-index:3;background:linear-gradient(110deg,#0000 30%,#fffc 48%,#0000 62%) 0 0/250% 100% no-repeat;border-radius:50%;animation:.9s ease-in-out .5s both medal-shine;position:absolute;inset:0}@keyframes medal-drop{0%{opacity:0;transform:translateY(-30%)rotateY(90deg)scale(.6)}50%{opacity:1;transform:translateY(4%)rotateY(-15deg)scale(1.08)}75%{transform:rotate(-6deg)}to{transform:none}}@keyframes medal-shine{0%{background-position:120% 0}to{background-position:-40% 0}}.ia-icon[class*=mo-]:not(.mo-blaze):not(.mo-shine){animation-duration:4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--delay,0s);transform-box:fill-box;transform-origin:50%}.ia-icon.mo-twinkle{animation-name:mo-twinkle;animation-duration:3s}.ia-icon.mo-shine{animation:mo-shine 3.5s ease-in-out infinite var(--delay,0s)}.ia-icon.mo-swing{transform-origin:50% 10%;animation-name:mo-swing}.ia-icon.mo-wave{transform-origin:50% 90%;animation-name:mo-wave}.ia-icon.mo-bob{animation-name:mo-bob;animation-duration:3s}.ia-icon.mo-hop{animation-name:mo-hop;animation-duration:3s}.ia-icon.mo-pulse{animation-name:mo-pulse;animation-duration:3s}.ia-icon.mo-shake{animation-name:mo-shake}.ia-icon.mo-wiggle{animation-name:mo-wiggle}.ia-icon.mo-creep{animation-name:mo-creep;animation-duration:3s}.ia-icon.mo-blaze .ig{transform-box:fill-box;transform-origin:50% 100%;animation:1.4s ease-in-out infinite mo-blaze}.ia-icon.mo-blaze .ig1{animation-delay:-.5s}.ia-icon.mo-blaze .ig2{animation-delay:-.9s}@keyframes mo-twinkle{0%,70%,to{transform:scale(1)rotate(0)}80%{transform:scale(1.14)rotate(12deg)}90%{transform:scale(.94)rotate(-4deg)}}@keyframes mo-shine{0%,to{filter:brightness()}50%{filter:brightness(1.18)drop-shadow(0 0 3px #ffe68ccc)}}@keyframes mo-swing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes mo-wave{0%,60%,to{transform:rotate(0)}70%{transform:rotate(-14deg)}80%{transform:rotate(10deg)}90%{transform:rotate(-6deg)}}@keyframes mo-bob{0%,to{transform:translateY(1px)}50%{transform:translateY(-1.5px)}}@keyframes mo-hop{0%,70%,to{transform:translateY(0)}80%{transform:translateY(-3px)scale(1.03,.97)}90%{transform:translateY(0)scale(1.04,.94)}}@keyframes mo-pulse{0%,to{transform:scale(1)}50%{transform:scale(.94)}}@keyframes mo-shake{0%,84%,to{transform:translate(0)}87%{transform:translate(-1px,1px)rotate(-4deg)}90%{transform:translate(1px,-1px)rotate(4deg)}93%{transform:translate(-1px)rotate(-2deg)}}@keyframes mo-wiggle{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-8deg)}90%{transform:rotate(7deg)}95%{transform:rotate(-3deg)}}@keyframes mo-creep{0%,to{transform:translate(-1.5px)}50%{transform:translate(1.5px)}}@keyframes mo-blaze{0%,to{transform:scale(1)}50%{transform:scale(.92,1.08)}}@media (prefers-reduced-motion:reduce){.ia-icon,.ia-icon *,.ach-art.play,.ach-art.play:after{animation:none!important}}
