:root{--ink:#111;--paper:#fff;--panel:#f2f2f2;--border:#d9d9d9;--muted:#6b6b6b;--sq-light:#f5f5f5;--sq-dark:#a6a6a6;--overlay:#00000026;--board-ink:#111;--radius:4px;--font:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-pieces:"Noto Sans Symbols 2", "Segoe UI Symbol", "DejaVu Sans", "Apple Symbols", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ink:#eee;--paper:#111;--panel:#1d1d1d;--border:#333;--muted:#9a9a9a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.board{grid-template-columns:repeat(var(--files,8), 1fr);touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;display:grid;container-type:inline-size}.diagram{border:1px solid var(--ink)}.sq{aspect-ratio:1;background:var(--sq-light);color:var(--board-ink);border:0;place-items:center;padding:0;display:grid;position:relative}.sq.dark{background:var(--sq-dark)}.sq:focus-visible{outline:3px solid var(--board-ink);outline-offset:-3px;z-index:1}.sq.movable,.board.pen .sq{touch-action:none}.sq .coord{color:var(--board-ink);opacity:.55;pointer-events:none;font-size:2.4cqi;font-weight:700;position:absolute}.sq .coord.rank{top:2%;left:4%}.sq .coord.file{bottom:1%;left:5%}.sq.last:before,.sq.sel:before,.sq.peek:before{content:"";background:var(--overlay);position:absolute;inset:0}.sq.sel:before,.sq.peek:before{box-shadow:inset 0 0 0 .5cqi var(--board-ink)}.sq.lifted .piece{opacity:.3}.piece{font-family:var(--font-pieces);pointer-events:none;-webkit-user-select:none;user-select:none;paint-order:stroke fill;-webkit-text-stroke:.5cqi #111;font-size:9.2cqi;line-height:1;position:relative}.sq .piece{position:absolute;bottom:5%;left:50%;translate:-50%}.piece.w{color:#fff}.piece.b{color:#111}.die{aspect-ratio:1;pointer-events:none;background:#fff;border:1px solid #111;border-radius:2px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:36%;display:grid;position:absolute;bottom:10%;left:50%;translate:-50%}.die i{aspect-ratio:1;border-radius:50%;place-self:center;width:58%;display:block}.die i.on{background:#111}.die.big{flex:none;width:56px;position:static;translate:none}.die.roll{animation:.25s ease-out fade}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:no-preference){.die.roll{animation:.4s ease-out roll}@keyframes roll{0%{opacity:.3;transform:rotate(-120deg)scale(.5)}to{transform:none}}}.dot{aspect-ratio:1;pointer-events:none;background:#00000073;border-radius:50%;width:26%;position:absolute}.sq.cap:after,.sq.reachcap:after{content:"";pointer-events:none;border:.8cqi solid #0009;border-radius:50%;position:absolute;inset:5%}.sq.reach .dot{background:0 0;border:.6cqi solid #0009;width:30%}.sq.reachcap:after{border-style:dashed}.sq.danger{outline:.5cqi dashed var(--board-ink);outline-offset:-.9cqi}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--paper);color:var(--ink);margin:0}body{font-family:var(--font);padding-inline:max(16px, env(safe-area-inset-left,0px)) max(16px, env(safe-area-inset-right,0px));flex-direction:column;min-height:100vh;font-size:16px;line-height:1.5;display:flex}main{flex:1;width:100%;max-width:1120px;margin:0 auto}h1,h2,h3{margin:0;font-weight:700;line-height:1.15}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.btn{border:1px solid var(--ink);color:var(--ink);border-radius:var(--radius);background:0 0;align-items:center;gap:8px;padding:10px 18px;font-size:15px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{background:var(--panel)}.btn.primary{background:var(--ink);color:var(--paper)}.btn.primary:hover{background:var(--muted);border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:default}.btn svg{width:18px;height:18px}.btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}.link{text-underline-offset:3px;font-weight:700}.label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:12px;font-weight:700}.topbar{border-bottom:1px solid var(--border);align-items:center;gap:16px;width:100%;max-width:1120px;margin:0 auto 24px;padding-block:14px;display:flex}.wordmark{letter-spacing:-.02em;margin-right:auto;font-size:24px;font-weight:700;text-decoration:none}.nav{gap:4px;display:flex}.nav a{border-radius:var(--radius);align-items:center;gap:8px;padding:8px 12px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.nav a:hover,.nav a[aria-current=page]{background:var(--panel)}.nav svg,.menu-toggle svg{width:18px;height:18px}.menu-toggle{border:1px solid var(--border);border-radius:var(--radius);background:0 0;align-items:center;gap:8px;padding:8px 12px;font-weight:700;display:none}@media (width<=640px){.topbar{flex-wrap:wrap;margin-bottom:16px}.menu-toggle{display:inline-flex}.nav{flex-direction:column;flex-basis:100%;display:none}.nav.open{display:flex}}.footer{border-top:1px solid var(--border);width:100%;max-width:1120px;color:var(--muted);gap:20px;margin:48px auto 0;padding-block:20px;font-size:14px;display:flex}.start{align-content:start;justify-items:start;gap:24px;max-width:640px;padding-block:24px 48px;display:grid}.start h1{font-size:40px}.choices{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;width:100%;display:grid}.choice{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);align-content:start;justify-items:start;gap:12px;padding:20px;text-decoration:none;display:grid}.choice:hover{border-color:var(--ink)}.again{flex-wrap:wrap;justify-content:center;gap:12px;padding-block:24px;display:flex}.rules-page{max-width:720px}.rules-page h1{font-size:40px}.rules-page .lead{font-size:19px}.rules-page section{border-top:1px solid var(--border);padding-block:24px}.rules-page h2{margin-bottom:8px;font-size:24px}.rules-page figure{max-width:320px;margin:16px 0 0}.rules-page figcaption{color:var(--muted);margin-top:8px;font-size:14px}.key{flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;display:flex}.key-dot,.key-ring,.key-hollow,.key-danger{vertical-align:-2px;border-radius:50%;width:14px;height:14px;margin-right:6px;display:inline-block}.key-dot{background:var(--ink);opacity:.5}.key-ring{border:2px solid var(--ink)}.key-hollow{border:2px solid var(--ink);width:10px;height:10px}.key-danger{border:2px dashed var(--ink);border-radius:2px}.game{grid-template:"board top""board bottom""board dice""board room""board actions""board moves"1fr"legend legend"/minmax(0,1fr) minmax(260px,320px);align-items:start;gap:12px 24px;display:grid}.game .board-frame{grid-area:board;justify-self:end;width:min(100%,100dvh - 120px)}.player.top{grid-area:top}.player.bottom{grid-area:bottom}.dice-area{grid-area:dice}.room{grid-area:room}.actions{flex-wrap:wrap;grid-area:actions;gap:8px;display:flex}.moves{grid-area:moves}.legend{grid-area:legend}@media (width<=820px){.game{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"top""board""bottom""dice""actions""room""moves""legend";gap:8px}.game .board-frame{width:100%}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:14px 16px}.player{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:10px 14px;display:flex}.player .name{font-weight:700}.player .status{color:var(--muted);margin-left:auto;font-size:14px}.player.turn{border-color:var(--ink);box-shadow:inset 4px 0 0 var(--ink)}.player.turn .status{color:var(--ink);font-weight:700}.chip{border:1px solid var(--ink);border-radius:50%;flex:none;width:16px;height:16px}.chip.w{background:#fff}.chip.b{background:#111}.dice-row{align-items:center;gap:14px;display:flex}.rolled{font-size:22px;font-weight:700;line-height:1.1}.dice-area .sub{color:var(--muted);font-size:14px}.range{gap:4px;margin-top:6px;font-size:13px;display:flex}.range span{text-align:center;border:1px solid var(--border);width:22px;color:var(--muted);border-radius:2px}.range span.hit{border-color:var(--ink);color:var(--ink);font-weight:700}.hint{color:var(--muted);margin:0;font-size:14px}.msg{margin:10px 0 0;font-size:15px}.msg:empty{display:none}.warn{border-radius:var(--radius);border:2px dashed var(--ink);margin-top:10px;padding:10px 12px;font-size:14px}.room{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.room .label{flex-basis:100%}.room input{min-width:0;color:var(--ink);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:9px 10px;font:13px ui-monospace,Menlo,Consolas,monospace}.log{font-variant-numeric:tabular-nums;gap:2px;max-height:280px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:grid;overflow-y:auto}.log li{border-bottom:1px solid var(--border);grid-template-columns:1.6em 1fr;gap:6px;padding:3px 0;display:grid}.log .n{color:var(--muted)}.log li.current{background:var(--paper);outline:1px solid var(--ink);font-weight:700}.board-frame.history{outline:2px dashed var(--ink);outline-offset:4px}.log .kill{font-weight:700}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin:4px 0 0;font-size:13px;display:flex}.board-frame{border:1px solid var(--ink);position:relative}.ghost{pointer-events:none;z-index:10;place-items:center;display:grid;position:fixed;top:0;left:0}.ghost .piece{font-size:inherit;-webkit-text-stroke:.06em #111}.draw-layer{pointer-events:none;stroke-linecap:butt;width:100%;height:100%;position:absolute;inset:0}.board-overlay{background:#ffffffb3;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.overlay-card{background:var(--paper);border:1px solid var(--ink);border-radius:var(--radius);text-align:center;gap:12px;max-width:360px;padding:24px;display:grid}.overlay-card h2{text-wrap:balance;font-size:32px}.overlay-card p{color:var(--muted);margin:0}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}
