:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f1ebe0;--bg-accent:#e7dfd0;--surface:#fcfcfb;--surface-2:#f3f1ec;--border:#e1e0d9;--text:#0b0b0b;--text-2:#52514e;--muted:#6f6d67;--accent:#8a4b1d;--accent-ink:#fff;--accent-soft:#f3e3d3;--danger:#b3261e;--danger-soft:#fbe9e7;--ok:#1d6b3a;--focus:#2a78d6;--wood-1:#d9a868;--wood-2:#b9824a;--wood-inset:#fff4dc33;--line:#4a2d16;--coord:#3c220ebf;--hint:#1b6fd0;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--shadow:0 1px 2px #281e0f0f, 0 6px 20px #281e0f12;--radius:14px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121211;--bg-accent:#1b1a18;--surface:#1a1a19;--surface-2:#232321;--border:#2c2c2a;--text:#f0efec;--text-2:#c3c2b7;--muted:#a09e96;--accent:#e0a264;--accent-ink:#1b1206;--accent-soft:#33271b;--danger:#f2877f;--danger-soft:#3a1f1d;--ok:#74c895;--focus:#6aa9f2;--wood-1:#a87a48;--wood-2:#7d5630;--wood-inset:#fff0d21f;--line:#2a190b;--coord:#1e1006d9;--hint:#9cc8ff;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--shadow:0 1px 2px #0006, 0 6px 20px #0000004d}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{min-height:100vh;-webkit-text-size-adjust:100%;min-height:100dvh;line-height:1.5}h1,h2,h3{text-wrap:balance;margin:0 0 .5rem;line-height:1.2}h1{font-size:1.9rem}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0 0 .75rem}code{background:var(--surface-2);border-radius:5px;padding:.05em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.muted{color:var(--muted)}.small{font-size:.85rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:.6rem clamp(.75rem,3vw,2rem);display:flex;position:sticky;top:0}.brand{color:var(--accent);letter-spacing:.01em;align-items:center;gap:.55rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.brand span{color:var(--text)}.topbar nav{flex-wrap:wrap;gap:.25rem;display:flex}.topbar nav a{color:var(--text-2);border-radius:999px;padding:.4rem .75rem;font-size:.93rem;font-weight:600;text-decoration:none}.topbar nav a:hover{background:var(--surface-2)}.topbar nav a.current{background:var(--accent-soft);color:var(--accent)}.page{max-width:1180px;margin:0 auto;padding:clamp(.75rem,2.5vw,1.75rem)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.btn{-webkit-appearance:none;appearance:none;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;min-height:40px;padding:.5rem .9rem;font-size:.93rem;font-weight:600;text-decoration:none;transition:background .12s,transform 50ms;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--surface)}.btn.ghost{background:0 0}.btn.big{min-height:50px;padding:.75rem 1.4rem;font-size:1.05rem}.btn.tiny{min-height:30px;padding:.15rem .6rem;font-size:.8rem}.swatch{vertical-align:-.15em;border:1px solid #00000059;border-radius:50%;flex:none;width:1.05rem;height:1.05rem;display:inline-block}.swatch.white{background:radial-gradient(circle at 35% 30%,#fff,#e6dcc6 70%,#c9bc9d)}.swatch.black{background:radial-gradient(circle at 35% 30%,#6a6660,#24221f 60%,#0d0c0b);border-color:#ffffff40}.swatch.draw{background:linear-gradient(90deg,#efe6d2 50%,#24221f 50%)}.swatch.tiny{width:.75rem;height:.75rem}.chip{letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700}.chip-flying{background:var(--accent);color:var(--accent-ink)}.chip-win{background:var(--ok);color:var(--surface)}.setup{gap:1rem;max-width:760px;margin:0 auto;display:grid}.hero{padding:.75rem .25rem 0}.hero h1{letter-spacing:-.01em;font-size:clamp(1.9rem,5vw,2.6rem)}.hero p{color:var(--text-2);max-width:60ch;font-size:1.05rem}.resume{border-color:var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.resume p{margin:0}.setup-form{gap:1.1rem;display:grid}.setup-form h2{margin:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{align-items:center;gap:.4rem;margin-bottom:.45rem;padding:0;font-size:.9rem;font-weight:700;display:flex}.segmented{background:var(--surface-2);border-radius:12px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented label{text-align:center;cursor:pointer;color:var(--text-2);border-radius:9px;justify-content:center;align-items:center;padding:.6rem .5rem;font-size:.95rem;font-weight:600;display:flex}.segmented.small label{padding:.45rem .4rem;font-size:.9rem}.segmented label.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000024}.segmented input,.level input{opacity:0;pointer-events:none;position:absolute}.segmented label:has(:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.level:has(:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.levels{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;display:grid}.level{border:2px solid var(--border);cursor:pointer;background:var(--surface);border-radius:12px;flex-direction:column;gap:.25rem;padding:.7rem .75rem;display:flex}.level.on{border-color:var(--accent);background:var(--accent-soft)}.levels.compact .level{align-items:center;padding:.5rem}input[type=text]{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;max-width:22rem;color:var(--text);border-radius:10px;min-height:40px;padding:.5rem .7rem}.names{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.5rem;display:grid}.names label{gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.names label .swatch{margin-right:.3rem}.game{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:1.1rem;display:grid}.board-col{justify-items:center;gap:.6rem;min-width:0;display:grid}.status{background:var(--surface);border:1px solid var(--border);width:100%;min-width:min(100%,300px);max-width:min(100%,100dvh - 190px);min-height:48px;box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:.6rem;padding:.6rem .9rem;font-weight:600;display:flex}.status.over{border-color:var(--accent);background:var(--accent-soft)}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex:none;width:1rem;height:1rem;margin-left:auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.board-wrap{width:100%;min-width:min(100%,300px);max-width:min(100%,100dvh - 190px)}.notice{border-radius:10px;width:100%;min-width:min(100%,300px);max-width:min(100%,100dvh - 190px);min-height:2.6rem;padding:.5rem .8rem;font-size:.93rem;font-weight:600}.notice.idle{visibility:hidden}.notice.error{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);animation:.3s nudge}.notice.info{background:var(--surface-2)}@keyframes nudge{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.board{filter:drop-shadow(0 8px 18px #28190a47);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:5%;width:100%;height:auto;display:block}.board-inset{fill:var(--wood-inset)}.lines line{stroke:var(--line);stroke-width:6px;stroke-linecap:round}.dots circle{fill:var(--line)}.coords text{fill:var(--coord);text-anchor:middle;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:19px;font-weight:700}.piece{transition:transform .32s cubic-bezier(.3,.9,.3,1)}.piece.dragging{transition:none}.piece.dragging .piece-body{transform:scale(1.14)}.hit.draggable{cursor:grab}.piece-body{animation:.22s ease-out drop-in}@keyframes drop-in{0%{opacity:0;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}.piece.leaving .piece-body{animation:.42s ease-in forwards capture-out}@keyframes capture-out{to{opacity:0;transform:scale(.2)}}.piece .shadow{fill:#1e0f0052}.piece.white .disc{stroke:#a39678;stroke-width:1.5px}.piece.black .disc{stroke:#000;stroke-width:1.5px}.piece .groove{fill:none;stroke-width:2px}.piece.white .groove{stroke:#78643c47}.piece.black .groove{stroke:#ffffff21}.piece .ring{fill:none;stroke:#0000;stroke-width:5px}.piece.last .ring{stroke:#ffffff8c;stroke-width:3px;stroke-dasharray:5 6}.piece.selected .ring{stroke:var(--hint);stroke-width:6px;stroke-dasharray:none}.piece.selected .piece-body{transition:transform .12s;transform:scale(1.08)}.last-from{fill:none;stroke:#fff9;stroke-width:3px;stroke-dasharray:4 5}.last-capture line{stroke:#b3261e;stroke-width:5px;stroke-linecap:round;opacity:.75}.mill-glow circle{fill:#ffdd788c;stroke:#ffd24a;stroke-width:4px;animation:.9s ease-in-out infinite alternate pulse}.hints.go circle{fill:var(--hint);opacity:.85;stroke:#fff;stroke-width:3px;animation:.9s ease-in-out infinite alternate pulse}.hints.remove circle{fill:none;stroke:#d92d20;stroke-width:6px;stroke-dasharray:9 7;animation:.7s ease-in-out infinite alternate pulse}@keyframes pulse{0%{opacity:.45}to{opacity:1}}.reject{fill:#d92d2047;stroke:#d92d20;stroke-width:5px;pointer-events:none;animation:.7s ease-out forwards reject}@keyframes reject{0%{opacity:1}to{opacity:0}}.hit{fill:#0000;cursor:default;outline:none}.board.interactive .hit{cursor:pointer}.board.interactive.placing .hit[data-occupant=empty]:hover{fill:#ffffff38}.hit:focus-visible{stroke:var(--focus);stroke-width:5px}.side{gap:.7rem;min-width:0;display:grid}.player-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:.5rem;padding:.7rem .85rem;display:grid}.player-card.active{border-color:var(--accent)}.player-card.won{border-color:var(--ok)}.player-card header{align-items:center;gap:.6rem;display:flex}.player-card .swatch{width:1.5rem;height:1.5rem}.player-card .who{flex:1;min-width:0;line-height:1.2;display:grid}.player-card .who strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-card .who .muted{font-size:.8rem}.hand{gap:4px;min-height:16px;display:flex}.mini{border:1px solid #00000059;border-radius:50%;width:16px;height:16px}.mini.white{background:radial-gradient(circle at 35% 30%,#fff,#e6dcc6 70%,#c9bc9d)}.mini.black{background:radial-gradient(circle at 35% 30%,#6a6660,#24221f 60%,#0d0c0b);border-color:#ffffff40}.mini.gone{border:1px dashed var(--border);background:0 0}.counts,.draw-watch{gap:1rem;margin:0;display:flex}.counts div,.draw-watch div{display:grid}.counts dt,.draw-watch dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.counts dd,.draw-watch dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.side .card{padding:.7rem .85rem}.side .card p{margin:0}.moves ol{font-variant-numeric:tabular-nums;max-height:11.5rem;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem;list-style:none;overflow-y:auto}.moves li{border-radius:6px;grid-template-columns:2.6rem 1fr 1fr;padding:.1rem .25rem;display:grid}.moves li:nth-child(odd){background:var(--surface-2)}.moves .num{color:var(--muted)}.moves .notation-key{margin-top:.5rem}.controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.confirm-text{width:100%;font-weight:700}.toggles{flex-wrap:wrap;gap:1rem;width:100%;font-size:.9rem;display:flex}.toggles label{cursor:pointer;align-items:center;gap:.4rem;min-height:32px;display:inline-flex}.toggles input{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.sync{width:100%;color:var(--muted)}.sync.offline,.sync.rejected{color:var(--danger)}.overlay{z-index:20;background:#0f0a058c;place-items:center;padding:1rem;animation:.25s fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fade{0%{opacity:0}}.dialog{background:var(--surface);text-align:center;border:1px solid var(--border);border-radius:18px;width:100%;max-width:440px;padding:1.5rem 1.5rem 1.25rem;box-shadow:0 20px 60px #0006}.dialog h2{font-size:1.6rem}.dialog .actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.medal{border:2px solid #0000004d;border-radius:50%;width:64px;height:64px;margin:0 auto .75rem;box-shadow:0 4px 10px #00000040}.medal.white{background:radial-gradient(circle at 35% 30%,#fff,#e6dcc6 70%,#c9bc9d)}.medal.black{background:radial-gradient(circle at 35% 30%,#6a6660,#24221f 60%,#0d0c0b)}.medal.draw{background:linear-gradient(90deg,#efe6d2 50%,#24221f 50%)}.empty{text-align:center;max-width:420px;margin:3rem auto}.stats{gap:1rem;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-head p{max-width:60ch;margin:0}.head-actions{gap:.5rem;display:flex}.range{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.range .segmented{min-width:min(100%,24rem)}.tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:.1rem;padding:.8rem 1rem;display:grid}.tiles.small .tile{box-shadow:none;background:var(--surface-2);border:0;padding:.6rem .8rem}.tile-label{color:var(--text-2);font-size:.82rem}.tile-value{font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:650;line-height:1.15}.tiles.small .tile-value{font-size:1.35rem}.tile-note{color:var(--muted);font-size:.78rem}.two-col{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}.error-card{color:var(--danger);border-color:var(--danger)}.chart{margin:.75rem 0 1rem;position:relative}.chart figcaption{margin-bottom:.4rem}.legend{color:var(--text-2);flex-wrap:wrap;gap:1.1rem;margin:0 0 .6rem;padding:0;font-size:.85rem;list-style:none;display:flex}.legend li{align-items:center;gap:.4rem;display:inline-flex}.key{border-radius:3px;width:12px;height:12px;display:inline-block}.s1{background:var(--series-1)}.s2{background:var(--series-2)}.s3{background:var(--series-3)}.bars{gap:.5rem;display:grid}.bar-row{grid-template-columns:4.5rem minmax(0,1fr) 5rem;align-items:center;gap:.6rem;display:grid}.bar-label{color:var(--text-2);font-size:.9rem;font-weight:600}.bar-total{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.82rem}.bar-track{gap:2px;min-width:0;height:22px;display:flex}.bar-empty{color:var(--muted);border-left:1px solid var(--border);padding-left:.5rem;font-size:.82rem;line-height:22px}.seg{cursor:default;flex-basis:0;justify-content:center;align-items:center;min-width:4px;display:flex}.seg:first-child{border-radius:4px 0 0 4px}.seg:last-child{border-radius:0 4px 4px 0}.seg:only-child{border-radius:4px}.seg:hover{filter:brightness(1.12)}.seg:focus-visible{filter:brightness(1.12)}.seg-label{color:#fff;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:700}.seg.s3 .seg-label{color:#0b0b0b}.tooltip{background:var(--text);color:var(--surface);white-space:nowrap;pointer-events:none;z-index:3;border-radius:6px;padding:.3rem .55rem;font-size:.8rem;position:absolute;transform:translate(-50%,30px)}.table-wrap{margin:0 -.25rem;position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .6rem}thead th{color:var(--text-2);font-size:.78rem;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}.moves-row td{white-space:normal;background:var(--surface-2)}.movetext{word-spacing:.15em;background:0 0;padding:0;line-height:1.7}.endings{margin:.6rem 0 0}.rules{max-width:760px;margin:0 auto;padding:1.5rem clamp(1rem,4vw,2rem)}.rules h2{margin-top:1.4rem}.rules ul{margin:0 0 .75rem;padding-left:1.2rem}.rules li{margin-bottom:.3rem}@media (max-width:900px){.game{grid-template-columns:minmax(0,1fr)}.notice.idle{display:none}.status,.board-wrap,.notice{max-width:min(100%,640px)}.side{grid-template-columns:1fr 1fr;width:100%;max-width:640px;margin:0 auto}.side>.card,.side>.moves{grid-column:1/-1}.two-col{grid-template-columns:1fr}}@media (max-width:560px){.status{min-height:4.1rem;font-size:.95rem}.levels{grid-template-columns:1fr 1fr}.segmented,.segmented.small{grid-auto-flow:row}.names{grid-template-columns:1fr}.topbar{position:static}.brand span{font-size:.98rem}.player-card{padding:.55rem .6rem}.player-card .chip{padding:.15rem .4rem;font-size:.62rem}.mini{width:11px;height:11px}.hand{gap:3px}.counts{gap:.6rem}.counts dt{font-size:.62rem}.bar-row{grid-template-columns:3.8rem minmax(0,1fr)}.bar-total{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.stats,.setup{grid-template-columns:minmax(0,1fr)}.stats>*,.two-col>*,.setup>*,.game>*,.side>*,.card{min-width:0}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.head-actions{flex-wrap:wrap}.movetext span{white-space:nowrap}.names label>span{align-items:center;gap:.35rem;display:inline-flex}.player-card .who strong{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}@media (prefers-color-scheme:dark){.swatch.black,.mini.black{border-color:#ffffff80}}@media (max-width:900px){.two-col{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.player-card header{flex-wrap:wrap;gap:.35rem .5rem}.player-card .swatch{width:1.2rem;height:1.2rem}.player-card .who{flex:calc(100% - 1.8rem)}.page-head{align-items:flex-start}th,td{padding:.4rem .45rem}}
