:root{--bg:#f3efe6;--surface:#fffdf8;--surface-2:#ebe5d8;--text:#22252b;--muted:#6b6f78;--line:#d9d1c1;--board:#d6cdbb;--cell:#f8f4ec;--accent:#22252b;--accent-text:#fffdf8;--err:#c0392b;--p0:#3d7be0;--p1:#e8594a;--p2:#ebae1f;--p3:#3a9d62;--p0-d:#2a5fb6;--p1-d:#be3f31;--p2-d:#b9860e;--p3-d:#2a7a4b;--radius:14px;--shadow:0 1px 2px #0000000f, 0 4px 16px #0000000f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#14161c;--surface:#1d2028;--surface-2:#272b35;--text:#eceef2;--muted:#9aa0ad;--line:#333845;--board:#0d0f14;--cell:#262a34;--accent:#eceef2;--accent-text:#14161c;--err:#ff7b6b;--p0:#5a93f0;--p1:#f26b5b;--p2:#f4c13d;--p3:#4fba7b;--p0-d:#3a6fc8;--p1-d:#c94b3d;--p2-d:#c4930f;--p3-d:#33925a;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);min-height:100dvh;margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input{font:inherit;color:inherit}h1,h2{letter-spacing:-.01em;margin:0 0 .5em;line-height:1.15}h1{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:750}h2{font-size:1.25rem;font-weight:700}.muted{color:var(--muted)}.note{color:var(--muted);margin:.5rem 0 0;font-size:.875rem}kbd{border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:1px 5px;font:600 .8em ui-monospace,monospace}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .25rem;font-size:.8rem;font-weight:600}.p0,.s0{--pc:var(--p0);--pd:var(--p0-d)}.p1,.s1{--pc:var(--p1);--pd:var(--p1-d)}.p2,.s2{--pc:var(--p2);--pd:var(--p2-d)}.p3,.s3{--pc:var(--p3);--pd:var(--p3-d)}.logo .p0{fill:var(--p0)}.logo .p1{fill:var(--p1)}button,.button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.4em;min-height:44px;padding:.55em 1em;font-weight:600;text-decoration:none;transition:background .15s,transform 50ms;display:inline-flex}button:hover:not(:disabled){background:var(--surface-2)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}a.button{color:inherit}button.primary,.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent);opacity:.88}button.big{min-height:52px;padding:.7em 1.4em;font-size:1.05rem}:focus-visible{outline:3px solid var(--p0);outline-offset:2px}input[type=text],input:not([type]){border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;min-height:44px;padding:.6em .8em}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.tag{text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);color:var(--muted);vertical-align:2px;border-radius:6px;padding:1px 6px;font-size:.7rem;font-weight:700;display:inline-block}.tag.you{background:var(--accent);color:var(--accent-text)}.swatch{background:var(--pc);border-radius:4px;flex:none;width:14px;height:14px;display:inline-block}.online{background:var(--muted);opacity:.5;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.online.on{background:var(--p3);opacity:1}.top{padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));align-items:center;gap:12px;max-width:1400px;margin:0 auto;display:flex}.top .spacer{flex:1}.top .eyebrow{margin:0}.top button.icon{min-height:36px;padding:.3em .8em;font-size:.875rem}.brand{color:inherit;letter-spacing:-.01em;align-items:center;gap:8px;font-size:1.1rem;font-weight:750;text-decoration:none;display:inline-flex}.logo{width:24px;height:24px}.conn{color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 8px;font-size:.8rem}.home,.lobby{gap:20px;max-width:760px;margin:0 auto;padding:8px 16px 48px;display:grid}.hero{padding:16px 0 4px}.hero p{color:var(--muted);max-width:60ch;margin:0;font-size:1.05rem}.create{gap:18px;display:grid}.field{gap:6px;font-weight:600;display:grid}.variants{border:0;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:0;padding:0;display:grid}.variants legend{margin-bottom:6px;padding:0;font-weight:600}.variant input{opacity:0;pointer-events:none;position:absolute}.vcard{border:2px solid var(--line);cursor:pointer;text-align:center;background:var(--bg);border-radius:12px;justify-items:center;gap:6px;height:100%;padding:12px 8px 10px;font-size:.85rem;font-weight:600;display:grid}.variant input:checked+.vcard{border-color:var(--accent);background:var(--surface)}.variant input:focus-visible+.vcard{outline:3px solid var(--p0);outline-offset:2px}.thumb{width:72px;height:72px}.thumb circle{fill:var(--board)}.thumb circle.st{fill:var(--text)}.seats{gap:3px;display:flex}.dot{background:var(--pc);border-radius:50%;width:8px;height:8px}.rules summary{cursor:pointer;font-weight:700}.rules ol{gap:.4em;margin:.75em 0 0;padding-left:1.2em;display:grid}.center{text-align:center;max-width:480px;margin:15vh auto 0;padding:16px}.center.card{justify-items:center;gap:12px;display:grid}.share{flex-wrap:wrap;gap:8px;display:flex}.share input{flex:220px;font-family:ui-monospace,monospace;font-size:.9rem}.seatlist{gap:8px;margin:0;padding:0;list-style:none;display:grid}.seatlist li{background:var(--bg);border-radius:10px;align-items:center;gap:10px;min-height:56px;padding:8px 10px;display:flex}.seatlist .swatch{border-radius:6px;width:22px;height:22px}.seatlist .who{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.seatlist button{min-height:38px;padding:.3em .8em;font-size:.875rem}.sit{gap:8px;margin-top:14px;display:flex}.actions{justify-items:start;gap:8px;display:grid}.game{grid-template:"board players""board panel"1fr/minmax(0,1fr) 340px;gap:14px;max-width:1400px;margin:0 auto;padding:0 16px 16px;display:grid}.players{grid-area:players;align-content:start;gap:8px;display:grid}.boardwrap{grid-area:board;align-self:start;place-items:start center;min-width:0;display:grid;position:sticky;top:8px}.panel{grid-area:panel;align-content:start;gap:12px;min-width:0;display:grid}.player{background:var(--surface);box-shadow:var(--shadow);border:2px solid #0000;border-radius:12px;grid-template-columns:auto 1fr auto;grid-template-areas:"sw name score""sw meta score";align-items:center;column-gap:10px;padding:8px 12px;transition:border-color .2s;display:grid}.player .swatch{border-radius:6px;grid-area:sw;width:22px;height:22px}.player .pname{white-space:nowrap;text-overflow:ellipsis;grid-area:name;min-width:0;font-weight:650;overflow:hidden}.player .pmeta{color:var(--muted);grid-area:meta;font-size:.8rem}.player .pscore{font-variant-numeric:tabular-nums;grid-area:score;font-size:1.4rem;font-weight:750}.player.turn{border-color:var(--pc)}.player.out{opacity:.6}.board{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:calc(100dvh - 80px);display:block}.board .backdrop polygon{fill:var(--board);stroke:var(--board);stroke-width:.12px;stroke-linejoin:round}.board .cell{fill:var(--cell);transition:fill .25s}.board .cell[class*=\ p]{fill:var(--pc);stroke:var(--pd);stroke-width:.05px}.board .cell.last{stroke:var(--text);stroke-width:.06px;animation:.6s ease-out pop}.board .start{fill:none;stroke:var(--muted);stroke-width:.07px}.board .start[class*=\ s]{stroke:var(--pc);stroke-width:.09px}.board .anchor{fill:var(--pc);opacity:.45;pointer-events:none}.board .marks,.board .ghost{pointer-events:none}.board .ghost polygon{fill:var(--pc);opacity:.75;stroke:var(--text);stroke-width:.06px}.board .ghost.invalid polygon{fill:var(--muted);opacity:.45;stroke:var(--err);stroke-dasharray:.15 .1}@keyframes pop{0%{fill:var(--surface)}}.status{min-height:1.5em;margin:0}.status .err{color:var(--err);font-weight:600}.status .why{color:var(--muted)}.controls{flex-wrap:wrap;gap:8px;display:flex}.controls button{flex:1 0 auto;font-size:1.15rem}.controls button[data-act=hint],.controls button[data-act=play]{font-size:1rem}.controls button[data-act=play]{flex:2 0 auto}.tray{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-content:flex-start;align-items:center;gap:6px;padding:10px;display:flex}.tpiece{background:0 0;border:2px solid #0000;border-radius:8px;min-height:0;padding:6px;line-height:0}.tpiece:hover:not(:disabled){background:var(--surface-2)}.tpiece.selected{border-color:var(--text);background:var(--surface-2)}.tpiece.stuck{opacity:.35}.piece polygon{fill:var(--pc);stroke:var(--pd);stroke-width:.06px}.result{z-index:10;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.result[hidden]{display:none}.result .card{width:min(440px,100%)}.ranking{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.ranking li{background:var(--bg);border-radius:10px;grid-template-columns:auto 1fr auto;grid-template-areas:"sw name pts""sw small pts";align-items:center;column-gap:10px;padding:8px 10px;display:grid}.ranking .swatch{grid-area:sw;width:22px;height:22px}.ranking span{grid-area:name;font-weight:650}.ranking b{font-variant-numeric:tabular-nums;grid-area:pts;font-size:1.4rem}.ranking small{color:var(--muted);grid-area:small}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.learn{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex;margin-top:16px!important}.learn .note{margin:0}.game.tutorial{grid-template-rows:auto auto 1fr;grid-template-areas:"board players""board coach""board panel"}.coach{border-color:var(--p0);border-width:2px;grid-area:coach;gap:10px;padding:14px 16px 0;display:grid;overflow:hidden}.coach p{margin:0}.coach>button{justify-self:start}.coach-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.coach-head .eyebrow{color:var(--p0-d);margin:0}.coach-bar{background:var(--surface-2);height:4px;margin:4px -16px 0}.coach-bar i{background:var(--p0);height:100%;transition:width .3s;display:block}button.link{min-height:0;color:var(--muted);background:0 0;border:0;padding:2px 0;font-size:.8rem;font-weight:500;text-decoration:underline}button.link:hover:not(:disabled){color:var(--text);background:0 0}.c0{color:var(--p0-d)}.c1{color:var(--p1-d)}.coach-hl{outline:3px solid var(--p0);outline-offset:3px;border-radius:10px;animation:1.4s ease-in-out infinite coach-pulse}svg.board.coach-hl{outline-offset:6px;border-radius:4px}@keyframes coach-pulse{50%{outline-color:#3d7be040}}.board.pulse-start .start{transform-box:fill-box;transform-origin:50%;animation:1s ease-in-out infinite start-pulse}@keyframes start-pulse{50%{stroke-width:.14px;transform:scale(1.8)}}@media (prefers-reduced-motion:reduce){.coach-hl,.board.pulse-start .start{animation:none}}@media (width<=860px){.game.tutorial{grid-template-rows:auto auto auto auto;grid-template-areas:"players""board""panel""coach"}.coach{bottom:max(8px, env(safe-area-inset-bottom));z-index:5;gap:8px;max-height:45dvh;padding:12px 14px 0;font-size:.95rem;position:sticky;overflow-y:auto;box-shadow:0 -4px 24px #0000002e}.coach>button{min-height:40px}.game{padding-bottom:max(16px, env(safe-area-inset-bottom));grid-template:"players""board""panel"/minmax(0,1fr);gap:10px}.players{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px}.player{box-shadow:none;column-gap:8px;padding:6px 8px}.player .swatch{width:16px;height:16px}.player .pscore{font-size:1.15rem}.board{max-height:62dvh}.boardwrap{position:static}.top .eyebrow{display:none}}
