:root{--board-bg:#1b1410;--square:#3a2f26;--square-stroke:#6b5744;--rosette:#cba62a;--piece-light:#e8dcc4;--piece-dark:#2b2b2b;--panel:#3a2f26;--panel-hover:#4a3a24;--text:#d9cbb0;--danger:#c4453a}html,body{height:100%}body{background:var(--board-bg);place-items:center;margin:0;display:grid;overflow:hidden}.board{flex:1;width:100%;min-height:0}.board-horizontal{max-width:900px}.board-vertical{max-width:min(100%,60vh)}.square{fill:var(--square);stroke:var(--square-stroke);stroke-width:1.5px}.square.rosette{fill:#4a3a24;stroke:var(--rosette)}.square-pattern{color:var(--square-stroke);pointer-events:none;opacity:.5}.rosette-mark{fill:var(--rosette);pointer-events:none}.piece{cursor:default}.piece-lift{transform-origin:0 0}.piece-body{stroke:#0005;stroke-width:1.5px}.piece-pip{stroke:none;pointer-events:none}.piece-light .piece-body{fill:var(--piece-light)}.piece-light .piece-pip{fill:#0006}.piece-dark .piece-body{fill:var(--piece-dark);stroke:#fff3}.piece-dark .piece-pip{fill:#fff6}.piece.selectable{cursor:pointer}.piece.selectable .piece-body{stroke:var(--rosette);stroke-width:3px}.piece.selectable:hover .piece-body{stroke-width:4.5px}.preview-catcher{fill:#0000}.preview-target{fill:#0000;cursor:pointer}.move-preview{pointer-events:none}.move-track{fill:none;stroke:var(--rosette);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;opacity:.22}.move-flow{fill:none;stroke:var(--rosette);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14 18;animation:.7s linear infinite dash-flow}@keyframes dash-flow{to{stroke-dashoffset:-32px}}.arrow-head{fill:var(--rosette)}.dest-ring{fill:none;stroke:var(--rosette);stroke-width:2.5px;transform-origin:50%;transform-box:fill-box;animation:1.4s ease-in-out infinite ring-pulse}@keyframes ring-pulse{50%{opacity:.45;transform:scale(1.12)}}.ghost{opacity:.45;animation:1.8s ease-in-out infinite ghost-breathe}.ghost .piece-body{stroke:var(--rosette);stroke-width:2px;stroke-dasharray:5 4}@keyframes ghost-breathe{50%{opacity:.7}}.move-preview.rosette .ghost .piece-body{filter:drop-shadow(0 0 6px var(--rosette))}.move-preview.capture .move-track,.move-preview.capture .move-flow,.move-preview.capture .dest-ring,.move-preview.capture .ghost .piece-body{stroke:var(--danger)}.arrow-head.capture{fill:var(--danger)}.piece.threatened .piece-body{stroke:var(--danger);stroke-width:3.5px}.piece.threatened .piece-lift{animation:.48s ease-in-out infinite threat-tremble}@keyframes threat-tremble{25%{transform:translate(-1.2px)rotate(-2.5deg)}75%{transform:translate(1.2px)rotate(2.5deg)}}@media (prefers-reduced-motion:reduce){.move-flow,.dest-ring,.ghost,.piece.threatened .piece-lift{animation:none}}#app{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100dvh;padding:1rem;display:flex}.controls{box-sizing:border-box;flex:none;align-items:stretch;gap:1rem;width:100%;max-width:900px;font:14px system-ui;display:flex}.dice-panel{flex:none;align-content:start;justify-items:center;gap:.75rem;display:grid}.dice-row{border:3px solid var(--square-stroke);background-color:var(--panel);cursor:pointer;border-radius:1rem;grid-template-columns:repeat(2,1fr);place-items:center;gap:.5rem;padding:.5rem;transition:background-color .12s;display:grid}.dice-row:hover:not(:disabled){background-color:var(--panel-hover);border-color:var(--rosette)}.dice-row:disabled{opacity:.4;cursor:default}.die svg{width:40px;height:36px}.die polygon{fill:#d9cbb0;stroke:#6b5744;stroke-width:2px}.die .pip{fill:#0000;transition:fill .12s}.die.marked .pip{fill:#7a1f1f}.die{transform-origin:50% 65%}.die.rolling{animation:.26s ease-in-out infinite die-tumble}.die.rolling:nth-child(2){animation-duration:.22s}.die.rolling:nth-child(3){animation-duration:.3s}.die.rolling:nth-child(4){animation-duration:.24s}.die.rolling .pip{transition:none}@keyframes die-tumble{0%{transform:translateY(0)rotate(0)}25%{transform:translateY(-6px)rotate(-14deg)}50%{transform:translateY(-9px)rotate(10deg)}75%{transform:translateY(-4px)rotate(16deg)}to{transform:translateY(0)rotate(0)}}@media (prefers-reduced-motion:reduce){.die.rolling{animation:.3s ease-in-out infinite die-pulse}@keyframes die-pulse{50%{opacity:.55}}}.dice-total{box-sizing:border-box;text-align:center;width:100%;min-height:2.5rem;color:var(--text);background-color:var(--panel);border:1px solid var(--square-stroke);border-radius:1rem;place-items:center;padding:.5rem .75rem;display:grid}.panel{box-sizing:border-box;color:var(--text);background-color:var(--panel);border:1px solid var(--square-stroke);border-radius:1rem;flex:1;justify-content:space-between;align-items:flex-start;gap:1.25rem;padding:.75rem .9rem;display:flex}.panel-main{align-content:start;gap:.6rem;min-width:0;display:grid}.panel-turn{letter-spacing:.02em;color:var(--rosette);align-items:center;gap:.45rem;font-size:larger;font-weight:600;display:flex}.panel-message{min-height:2.6em;color:var(--piece-light);line-height:1.3}.panel-scores{border-left:1px solid var(--square-stroke);flex:none;align-content:start;gap:.35rem;padding-left:1.25rem;display:grid}@media (width<=700px){.controls{align-items:stretch}.panel{flex-direction:column;align-items:stretch;gap:.6rem}.panel-scores{border-left:none;border-top:1px solid var(--square-stroke);padding-top:.6rem;padding-left:0}}.player-row{opacity:.55;align-items:center;gap:.45rem;transition:opacity .12s;display:flex}.player-row.active{opacity:1}.swatch{border:1px solid var(--square-stroke);border-radius:50%;flex:none;width:.75rem;height:.75rem}.swatch-light{background-color:var(--piece-light)}.swatch-dark{background-color:var(--piece-dark)}.player-name{flex:1}.player-counts{opacity:.85;white-space:nowrap;font-size:.85em}
