:root{--red:#d3202a;--red-dark:#a3141d;--yellow:#ffe21a;--blue:#1f78c8;--blue-dark:#155a9a;--ink:#2b2118;--muted:#6f6253;--table:#f4ecd4;--table-dark:#eadfbf;--paper:#fffdf6;--line:#d9cba6;--glow:#ff9d00;--card-w:104px;--mini-w:46px;--my-mini-w:64px;--recipe-w:150px;--my-recipe-w:210px;color:var(--ink);-webkit-text-size-adjust:100%;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background-color:var(--table);background-image:linear-gradient(45deg, var(--table-dark) 25%, transparent 25%, transparent 75%, var(--table-dark) 75%), linear-gradient(45deg, var(--table-dark) 25%, transparent 25%, transparent 75%, var(--table-dark) 75%);background-position:0 0,28px 28px;background-size:56px 56px;background-attachment:fixed}h2,h3,.seat-name,.btn,.prompt strong,legend,.actions-label{letter-spacing:.02em;font-family:Chewy,Nunito,system-ui,sans-serif;font-weight:400}img{max-width:100%;display:block}button{font:inherit;color:inherit}.btn{border:2px solid var(--ink);background:var(--paper);cursor:pointer;box-shadow:0 3px 0 var(--ink);white-space:nowrap;border-radius:999px;padding:8px 18px;font-size:1.05rem;transition:transform 80ms,box-shadow 80ms}.btn:hover:not(:disabled){box-shadow:0 4px 0 var(--ink);transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--red);color:#fff}.btn.ghost{box-shadow:none;text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.btn.ghost:hover:not(:disabled){box-shadow:none;background:#0000000f}.btn.small{padding:4px 10px;font-size:.95rem}.btn.big{padding:12px 34px;font-size:1.5rem}.btn-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.menu{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100dvh;padding:24px 16px;display:flex}.menu-logo{filter:drop-shadow(0 6px #0000001f);width:min(420px,86vw)}.tagline{color:var(--muted);margin:0;font-size:1.15rem}.menu-cards{justify-content:center;padding:8px 0 4px;display:flex}.menu-cards img{border-radius:8px;width:min(92px,17vw);margin:0 -8px;box-shadow:0 4px 10px #00000040}.menu-cards img:first-child{transform:rotate(-12deg)translateY(10px)}.menu-cards img:nth-child(2){transform:rotate(-6deg)translateY(2px)}.menu-cards img:nth-child(4){transform:rotate(6deg)translateY(2px)}.menu-cards img:nth-child(5){transform:rotate(12deg)translateY(10px)}.opponent-pick{border:0;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:6px 0 0;padding:0;display:flex}.opponent-pick legend{width:100%;padding:0 0 8px;font-size:1.2rem}.opponent-pick .btn{min-width:52px}.fine{color:var(--muted);font-size:.85rem}.table{flex-direction:column;gap:10px;max-width:1480px;min-height:100dvh;margin:0 auto;padding:8px 12px 12px;display:flex}.board-wrap{flex:1;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:14px;display:grid}.board{flex-direction:column;gap:10px;min-width:0;min-height:calc(100dvh - 76px);display:flex}.topbar{align-items:center;gap:12px;display:flex}.topbar .logo{width:auto;height:44px}.top-buttons{margin-left:auto;display:flex}.actions{background:var(--paper);border:2px solid var(--ink);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;display:flex}.actions.off{opacity:.5}.actions-label{margin-right:2px;font-size:.95rem}.pip{border:2px solid var(--ink);background:0 0;border-radius:50%;width:14px;height:14px}.pip.on{background:var(--yellow)}.p0{--pc:#fff1b3;--pc-strong:#e3b700}.p1{--pc:#f7d9cb;--pc-strong:#d0714c}.p2{--pc:#d8e7f6;--pc-strong:#4f88c2}.p3{--pc:#dcecd0;--pc-strong:#659447}.seat .avatar{box-shadow:0 0 0 3px var(--pc-strong)}.opponents{grid-template-columns:repeat(var(--cols,1), minmax(0, 1fr));gap:10px;display:grid}.opponents.n1{--cols:1;justify-items:center}.opponents.n1 .seat{width:min(100%,520px)}.opponents.n2{--cols:2}.opponents.n3{--cols:3}.seat{background:var(--paper);border:2px solid var(--line);border-radius:14px;min-width:0;padding:8px 10px 10px;transition:border-color .2s,box-shadow .2s;box-shadow:0 2px 6px #00000014}.seat.active{border-color:var(--red);box-shadow:0 0 0 3px #d3202a2e}.seat.pickable{cursor:pointer;border-color:var(--glow);animation:1s ease-in-out infinite alternate glow}@keyframes glow{0%{box-shadow:0 0 0 2px #ff9d0059}to{box-shadow:0 0 0 7px #ff9d008c}}.seat-head{align-items:center;gap:8px;min-width:0;margin-bottom:6px;display:flex}.avatar{object-fit:cover;object-position:50% 4%;border:2px solid var(--ink);background:#cfe6f7;border-radius:50%;flex:none;width:34px;height:34px}.seat-name{white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;overflow:hidden}.stars{white-space:nowrap;letter-spacing:1px}.star{color:#d8cdb0;font-size:1.05rem}.star.on{color:#f2a900;text-shadow:0 1px #00000040}.hand-count{align-items:center;gap:4px;margin-left:auto;font-size:.95rem;font-weight:800;display:flex}.hand-count img{border-radius:2px;width:15px}.seat-body{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.recipe-wrap{width:var(--recipe-w);flex:none;position:relative}.seat.me .recipe-wrap{width:var(--my-recipe-w)}.recipe{border:1px solid #c9c2ae;border-radius:6px;width:100%;box-shadow:0 2px 5px #0000002e}.recipe.none{aspect-ratio:720/513;color:var(--muted);background:#f0ead8;place-items:center;font-size:.8rem;display:grid}.bonuses{gap:2px;display:flex;position:absolute;bottom:-6px;right:-8px}.bonuses img{width:calc(var(--recipe-w) * .24);border-radius:3px;transform:rotate(6deg);box-shadow:0 2px 4px #00000059}.seat.me .bonuses img{width:calc(var(--my-recipe-w) * .24)}.slots{grid-template-columns:repeat(4, var(--mini-w));gap:5px;display:grid}.seat.me .slots{grid-template-columns:repeat(4, var(--my-mini-w));gap:7px}.slot{aspect-ratio:480/728;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;display:grid}.slot.empty{background:#ffffff80;border:2px dashed #cdbf9b}.slot.empty img{opacity:.45;filter:grayscale(.4);width:62%}.slot.filled img{border-radius:5px;width:100%;animation:.3s ease-out drop;box-shadow:0 1px 4px #0000004d}.slot.filled:disabled{cursor:default}.slot.stealable{cursor:pointer;border-radius:6px;animation:.8s ease-in-out infinite alternate glow}.slot.stealable:hover{transform:scale(1.08)}@keyframes drop{0%{opacity:0;transform:translateY(-14px)scale(1.15)}}.center{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.piles{align-items:flex-start;gap:12px;display:flex}.pile{color:var(--muted);flex-direction:column;align-items:center;gap:3px;font-size:.78rem;font-weight:800;display:flex}.pile img,.pile-empty{--pile-h:88px;height:var(--pile-h);aspect-ratio:480/728;border-radius:5px;width:auto;box-shadow:2px 2px #fff,3px 3px #bbb,0 3px 7px #00000040}.pile.recipe-pile img{aspect-ratio:480/670}.pile-empty{box-shadow:none;border:2px dashed #cdbf9b}.log{border:2px solid var(--line);background:#fffdf6e6;border-radius:14px;flex-direction:column;height:calc(100dvh - 76px);display:flex;position:sticky;top:8px;overflow:hidden}.log-spot{border-bottom:2px solid var(--line);align-items:center;gap:10px;min-height:96px;padding:10px;display:flex}.log-spot p{margin:0;font-weight:800;line-height:1.25}.news-card{border-radius:4px;flex:none;width:52px;animation:.35s ease-out pop;box-shadow:0 2px 6px #0000004d}.news-card.wide{width:104px}@keyframes pop{0%{opacity:0;transform:scale(1.6)rotate(-6deg)}}.log-list{overscroll-behavior:contain;flex-direction:column-reverse;flex:1;gap:6px;margin:0;padding:8px;list-style:none;display:flex;overflow-y:auto}.log-turn:first-child{margin-bottom:auto}.log-turn{background:var(--pc,transparent);border-left:5px solid var(--pc-strong,var(--line));border-radius:8px;padding:5px 8px 6px}.log-head{text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:6px;font-size:.85rem;font-weight:800;display:flex}.log-head .avatar{width:22px;height:22px;box-shadow:none}.log-turn ul{margin:2px 0 0;padding:0;font-size:.88rem;line-height:1.3;list-style:none}.log-turn li+li{margin-top:2px}.log-turn li.big{font-weight:700}.log-turn li.latest{font-weight:800}.mine{flex-direction:column;gap:8px;margin-top:auto;display:flex}.seat.me .seat-body{justify-content:center}.hand{min-height:calc(var(--card-w) * 1.517 + 18px);justify-content:center;padding:16px 4px 2px;display:flex}.hand-card{flex:0 1 calc(var(--card-w) + 6px);cursor:pointer;background:0 0;border:0;min-width:0;padding:0;transition:transform .12s;position:relative}.hand-card:last-child{flex-shrink:0;flex-basis:var(--card-w)}.hand-card img{width:var(--card-w);border-radius:8px;max-width:none;animation:.25s ease-out drop;box-shadow:0 2px 6px #00000059}.hand-card:hover:not(:disabled){z-index:2;transform:translateY(-8px)}.hand-card.selected{z-index:3;transform:translateY(-16px)}.hand-card.selected img{outline:4px solid var(--glow);outline-offset:0}.hand.off .hand-card{cursor:default}.hand.off img{filter:saturate(.75)brightness(.96)}.bar{background:var(--paper);border:2px solid var(--ink);min-height:58px;box-shadow:0 3px 0 var(--ink);border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;padding:8px 12px;display:flex}.prompt{text-align:center;flex:240px;margin:0;font-size:.98rem}.prompt strong{color:var(--red-dark);font-size:1.15rem}.prompt.waiting{color:var(--muted);font-style:italic}.spoil-grid{flex:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.spoil{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:1px;padding:6px 2px 4px;font-size:.82rem;font-weight:800;display:flex}.spoil:hover{border-color:var(--glow)}.spoil img{height:30px}.spoil em{color:var(--muted);font-size:.72rem;font-style:normal;font-weight:600}.overlay{z-index:20;background:#2b21188c;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--paper);border:3px solid var(--ink);border-radius:18px;width:min(560px,100%);padding:20px 22px;box-shadow:0 8px #00000059}.modal h2{color:var(--red-dark);margin:0 0 6px;font-size:2rem}.modal h3{margin:14px 0 2px;font-size:1.25rem}.modal p,.modal ol{margin:6px 0;line-height:1.4}.modal.rules{max-height:calc(100dvh - 32px);overflow-y:auto}.strategy-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px 14px;margin:8px 0;padding:0;list-style:none;display:grid}.strategy-list li{align-items:center;gap:8px;display:flex}.strategy-list img{border-radius:3px;flex:none;width:40px;box-shadow:0 1px 3px #0000004d}.strategy-list strong,.strategy-list span{font-size:.85rem;line-height:1.25;display:block}.modal.win{text-align:center;width:min(420px,100%)}.modal.win .logo{width:170px;margin:0 auto 6px}.scores{margin:12px 0 16px;padding:0;list-style:none}.scores li{border-bottom:1px dashed var(--line);align-items:center;gap:10px;padding:5px 4px;font-weight:800;display:flex}.scores li span:first-child{text-align:left;flex:1}@media (width<=999px){.board-wrap{grid-template-rows:auto auto 1fr auto;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:8px 12px}.board{display:contents}.opponents{grid-column:1/-1}.center{grid-area:2/1}.log{contain:size;flex-direction:row;grid-area:2/2/4;height:auto;min-height:120px;position:static}.log-spot{border-bottom:0;border-right:2px solid var(--line);flex:none;width:40%;max-width:260px;min-height:0;font-size:.9rem}.center{align-self:start}.mine{grid-area:4/1/auto/-1}}@media (width<=760px){:root{--card-w:76px;--my-mini-w:46px;--my-recipe-w:128px;--recipe-w:120px;--mini-w:38px}.table{gap:7px;padding:6px 8px 8px}.topbar .logo{height:32px}.seat{padding:6px 7px 8px}.seat-body{gap:8px}.opponents.n2,.opponents.n3{--recipe-w:100%;gap:6px}.opponents.n2 .seat-body,.opponents.n3 .seat-body{flex-direction:column;align-items:stretch;gap:6px}.opponents.n2 .slots,.opponents.n3 .slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.opponents.n2 .bonuses img,.opponents.n3 .bonuses img{width:24%}.opponents.n2 .bonuses,.opponents.n3 .bonuses{justify-content:flex-end;width:100%;left:auto;right:-3px}.opponents.n3 .seat-head{flex-wrap:wrap;gap:2px 5px}.opponents.n3 .avatar{width:24px;height:24px}.opponents.n3 .seat-name{flex:1;font-size:.95rem}.opponents.n3 .star{letter-spacing:0;font-size:.8rem}.opponents.n3 .hand-count{font-size:.8rem}.pile img,.pile-empty{--pile-h:62px}.pile{font-size:.68rem}.piles{gap:8px}.center{flex-wrap:nowrap;gap:8px}.log{min-height:104px}.log-spot{display:none}.log-list{gap:4px;padding:5px}.log-turn{padding:3px 6px 4px}.log-head{font-size:.72rem}.log-head .avatar{width:16px;height:16px}.log-turn ul{font-size:.74rem}.hand{padding-top:14px}.prompt{flex-basis:180px;font-size:.9rem}.btn{padding:7px 14px;font-size:.98rem}.actions-label{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
