:root{--bg: #f6f1e7;--surface: #fffdf8;--ink: #2a2433;--muted: #6f6779;--line: #ddd3c2;--accent: #6b3fd4;--accent-ink: #ffffff;--danger: #c6283a;--art-line: #2a2433;--art-shine: rgba(255, 255, 255, .75);--art-shade: rgba(42, 36, 51, .18);--tile-a: #fbf6ec;--tile-b: #f1e6d3;--tile-finale: #ffd36b;--tile-last: #b9f0c9;--tile-target: #c9b6ff;--tile-ink: #9a8f80;--start: #e8dcc6;--ladder: #c98a4b;--ladder-deep: #8a5528;--ladder-active: #ffae3b;--snake: #4cb86a;--snake-deep: #23733d;--snake-belly: #d6f5a3;--snake-spot: #2a7a42;--snake-head: #2a7a42;--tongue: #e8445a;--pet: #7fd6d0;--pet-deep: #2f8f8a;--pet-belly: #fff1c9;--blush: #ff9eb0;--die-face: #fffdf8;--die-side: #d9cdb9;--die-pip: #2a2433;--die-black: #2a2433;--die-white: #fffdf8;--protection: #3fb6ff;--protection-deep: #1677c4;--killer: #e2364b;--killer-deep: #8e1526;--gold: #ffcb3d;--gold-deep: #c98a00;--gem: #e2364b;--telekinesis: #9b6bff;--telekinesis-deep: #5a2fc2;--seat-0: #e3434f;--seat-1: #2f7de1;--seat-2: #f2b31c;--seat-3: #2bb07f;--seat-4: #a54bd8;--seat-5: #f07a2b;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #17141d;--surface: #221e2a;--ink: #f1ecf7;--muted: #a69db3;--line: #3a3446;--accent: #9b7bff;--art-line: #120f17;--art-shine: rgba(255, 255, 255, .55);--art-shade: rgba(0, 0, 0, .35);--tile-a: #2a2533;--tile-b: #322c3d;--tile-finale: #8a6a12;--tile-last: #1f6b3a;--tile-target: #5a43a8;--tile-ink: #8a8198;--start: #2e2838;--ladder: #d39a5c;--ladder-deep: #6e421c;--snake: #5cc27a;--snake-head: #7fe09a;--die-face: #f1ecf7;--die-side: #9a8fab;--die-pip: #17141d;color-scheme:dark}}:root{--radius: 14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,Segoe UI,Noto Sans Arabic,Tahoma,sans-serif;line-height:1.4}h1,h2,h3{margin:0;line-height:1.15}h1{font-size:1.35rem}h2{font-size:1.2rem}h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-block-end:6px}.muted{color:var(--muted);margin:0;font-size:.85rem}button,input,select{font:inherit;color:inherit}button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding-block:8px;padding-inline:14px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:not-allowed}.app{max-inline-size:1280px;margin-inline:auto;padding-inline:16px;padding-block:12px 24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-block-end:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.setup{max-inline-size:560px;margin-inline:auto;display:grid;gap:14px}.setup fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:grid;gap:10px}.setup legend{padding-inline:6px;font-weight:600}.seat-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.seat{display:flex;align-items:center;gap:8px}.seat input{flex:1;min-inline-size:0}input,select{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding-block:6px;padding-inline:8px}.field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:4px 12px}.field output{grid-column:2;font-size:.8rem;color:var(--muted)}.field.check{grid-template-columns:auto 1fr}.error{color:var(--danger);margin:0}.swatch{inline-size:14px;block-size:14px;border-radius:50%;flex:none;background:var(--seat)}.seat-0{--seat: var(--seat-0)}.seat-1{--seat: var(--seat-1)}.seat-2{--seat: var(--seat-2)}.seat-3{--seat: var(--seat-3)}.seat-4{--seat: var(--seat-4)}.seat-5{--seat: var(--seat-5)}.game{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}@media(max-width:860px){.game{grid-template-columns:minmax(0,1fr)}}.board-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px}@media(min-width:861px){.board-wrap{position:sticky;inset-block-start:8px}}.board{display:block;inline-size:100%;block-size:auto;max-block-size:calc(100vh - 120px);direction:ltr}.panel{display:grid;gap:12px}.panel>section,.panel>header,.panel>ul{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin:0}.panel-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.turn{display:flex;align-items:center;gap:10px;border-inline-start:6px solid var(--seat)!important}.turn .swatch{inline-size:22px;block-size:22px}.badge{margin-inline-start:auto;font-size:.75rem;color:var(--muted)}.dice-row{display:flex;gap:10px;align-items:center;min-block-size:48px}.die{flex:none;animation:die-settle .52s cubic-bezier(.3,1.6,.5,1);transform-origin:50% 90%}@keyframes die-settle{0%{transform:translateY(-14px) scale(.7,1.25);opacity:0}45%{transform:translateY(0) scale(1.18,.82);opacity:1}70%{transform:scale(.94,1.06)}to{transform:none}}.big-die{margin-block:8px 0;font-weight:600;display:flex;align-items:center;gap:8px}.hint{margin-block:0 8px}.choice-row{display:flex;flex-wrap:wrap;gap:8px}.players{list-style:none;display:grid;gap:8px}.players>li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2px 8px;padding-inline-start:6px;border-inline-start:3px solid transparent}.players>li.is-current{border-inline-start-color:var(--seat)}.players .name{font-weight:600}.piece-status{grid-column:2 / span 2;list-style:none;margin:0;padding:0;font-size:.85rem}.feed ol{list-style:none;margin:0;padding:0;max-block-size:240px;overflow-y:auto;font-size:.85rem;display:grid;gap:3px}.feed-TurnStarted{font-weight:600;margin-block-start:4px}.feed-PieceKilled,.feed-PieceBanned{color:var(--danger)}.feed-GameWon,.feed-PieceFinished{color:var(--accent);font-weight:600}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px}.winner{display:grid;gap:16px;text-align:center;justify-items:center}.home{max-inline-size:560px;margin-inline:auto;display:grid;gap:14px}.home-options{display:grid;gap:10px}button.option{display:grid;gap:4px;text-align:start;border-radius:var(--radius);padding:14px 16px}.row-end{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}button.small{padding-block:2px;padding-inline:8px;font-size:.85rem}.code-input{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;letter-spacing:.25em;text-transform:uppercase}.lobby{max-inline-size:640px;margin-inline:auto;display:grid;gap:14px}.lobby-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.room-code{margin:0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:2rem;font-weight:700;letter-spacing:.2em}.seat .name{flex:1;min-inline-size:0}.badge{display:inline-block;font-size:.72rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding-inline:6px;margin-inline-start:6px}.turn .badge{margin-inline-start:auto}.turn-text{flex:1;min-inline-size:0}.countdown{position:relative;min-inline-size:64px;block-size:26px;border-radius:999px;border:1px solid var(--line);overflow:hidden;display:grid;place-items:center}.countdown-bar{position:absolute;inset-block:0;inset-inline-start:0;background:var(--seat);opacity:.35;transition:inline-size .1s linear}.countdown.is-low .countdown-bar{background:var(--danger);opacity:.55}.countdown-text{position:relative;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}.sidelined{border-color:var(--danger)!important;display:grid;gap:8px}.sidelined p{margin:0}.card-ish{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin:0}.banner{background:var(--danger);color:#fff;border-radius:var(--radius);padding-block:8px;padding-inline:12px;margin-block:0 12px}:root[data-motion=reduce] .countdown-bar{transition:none}.shop{display:grid;gap:8px}.shop-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.shop-points{font-weight:700;font-variant-numeric:tabular-nums}.shop-items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}button.shop-item{inline-size:100%;display:flex;justify-content:space-between;gap:6px;border-radius:10px;padding-block:6px;padding-inline:10px;text-align:start;font-size:.85rem}button.shop-item.is-open{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.shop-item .price{font-variant-numeric:tabular-nums;color:var(--muted)}.shop-picker{display:grid;gap:6px;border-block-start:1px solid var(--line);padding-block-start:8px}.picker-title{margin:0;font-weight:600;font-size:.85rem}.piece-items{display:inline-flex;flex-wrap:wrap;gap:4px}.points{margin-inline-start:auto;font-variant-numeric:tabular-nums;font-weight:600}.controlled{font-size:.8rem;color:var(--accent)}.bot-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;align-items:center;gap:8px}.coach{margin:0;padding-block:8px;padding-inline:12px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);animation:coach-in .3s ease-out}.coach-brilliant{border-color:#2fc1c9;color:#2fc1c9}.coach-great{border-color:#4f8ef7;color:#4f8ef7}.coach-good{border-color:var(--line)}.coach-inaccuracy{border-color:#e0b13a;color:#c99a20}.coach-mistake{border-color:#f08a3c;color:#e07425}.coach-blunder{border-color:var(--danger);color:var(--danger)}.coach .muted{margin-inline-start:6px}.feed-MoveLabeled{font-style:italic}@keyframes coach-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.piece{transition:transform .14s cubic-bezier(.3,1.4,.6,1)}.piece.is-banned{opacity:.55}.piece.is-active>g{animation:piece-bob 1.1s ease-in-out infinite alternate}@keyframes piece-bob{to{translate:0 -.6px}}.preview-ring{fill:none;stroke:var(--accent);stroke-width:5;stroke-dasharray:10 8}.snake.is-active{filter:drop-shadow(0 0 1.2px var(--gold))}.pet line{stroke:var(--pet-deep);stroke-width:.35;stroke-dasharray:.6 .6;stroke-linecap:round}.shop-icon{flex:none}button.shop-item{align-items:center}button.shop-item>span:first-of-type{margin-inline-end:auto}.topbar-logo{flex:none}.winner-crown{justify-self:center;animation:crown-drop .7s cubic-bezier(.3,1.6,.5,1)}@keyframes crown-drop{0%{transform:translateY(-30px) scale(.6,1.3);opacity:0}}.art-page{display:grid;gap:16px}.art-head{display:flex;align-items:center;gap:14px}.art-head>div{flex:1}.motion-switch{display:flex;flex-wrap:wrap;gap:16px;border:1px solid var(--line)}.motion-switch label{display:inline-flex;gap:6px;align-items:center}.art-section h3{margin-block-end:12px}.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.art-figure{margin:0;display:grid;gap:6px;justify-items:center;text-align:center;font-size:.85rem;color:var(--muted)}.art-figure.is-wide,.art-replay.is-wide{grid-column:span 2}.art-canvas{inline-size:100%;max-inline-size:120px;aspect-ratio:1;background:var(--bg);border-radius:12px;padding:10px;overflow:visible}.is-wide>.art-canvas,.is-wide .art-canvas{max-inline-size:260px;aspect-ratio:2}.art-replay{display:grid;gap:6px;justify-items:center}:root[data-motion=reduce] .piece,:root[data-motion=reduce] .winner-crown,:root[data-motion=reduce] .die{transition:none;animation:none}:root[data-motion=reduce] .piece.is-active>g,:root[data-motion=reduce] .coach{animation:none}.stage-wrap{display:grid;gap:6px}.stage{position:relative;inline-size:100%;margin-inline:auto}.stage-3d{position:absolute!important;top:0;right:0;bottom:0;left:0}.stage-2d{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface);border-radius:10px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease .26s,visibility 0s linear .6s}.stage.is-focus .stage-2d{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .32s ease .26s,visibility 0s}.stage-2d .board{inline-size:100%;block-size:100%;max-block-size:none}.focus-lock{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);justify-self:start}:root[data-motion=reduce] .stage-2d{transition:opacity .15s linear}.kill-feed{position:absolute;inset-block-start:8px;inset-inline-end:8px;z-index:3;display:grid;justify-items:end;gap:4px;margin:0;padding:0;list-style:none;max-inline-size:75%;pointer-events:none}.kf-entry{display:flex;align-items:center;gap:4px;padding-block:2px;padding-inline:6px 10px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,transparent);font-size:.75rem;animation:kf-in .46s cubic-bezier(.3,1.6,.5,1);transform-origin:100% 50%}.kf-kill,.kf-sweep,.kf-pet{border-color:var(--killer)}.kf-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes kf-in{0%{transform:scale(.4,1.4);opacity:0}}:root[data-motion=reduce] .kf-entry{animation:none}.topbar-tools{display:flex;align-items:center;gap:8px}.icon-button{display:inline-grid;place-items:center;padding:4px;background:transparent}@media(max-width:860px){.topbar h1{font-size:1.1rem}.topbar .muted{display:none}.app{padding-inline:10px}.board-wrap{padding:4px}.choices{position:sticky;inset-block-end:8px;z-index:5;box-shadow:0 6px 24px #00000040}.kf-text{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}}
