:root{--felt-1:#24382e;--felt-2:#16221d;--felt-edge:#0e1613;--ink:#f2e9db;--ink-dim:#b8ab97;--ink-faint:#8a7f6e;--red:#e04b3f;--red-deep:#a8241c;--black-pawn:#2c2e35;--gold:#e9b45c;--line:#f2e9db1f;--radius:14px;--shadow:0 18px 40px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{color:var(--ink);background:radial-gradient(120% 90% at 50% 0%, var(--felt-1) 0%, var(--felt-2) 55%, var(--felt-edge) 100%);-webkit-font-smoothing:antialiased;touch-action:manipulation;background-attachment:fixed;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:1080px;margin:0 auto;padding:clamp(1rem,3vw,2.5rem) clamp(.75rem,3vw,2rem) 3rem}.masthead{text-align:center;margin-bottom:clamp(1rem,3vw,2rem)}.masthead h1{letter-spacing:.06em;text-transform:uppercase;background:linear-gradient(180deg, #fff6e6, var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-family:ui-serif,Georgia,Times New Roman,serif;font-size:clamp(2.4rem,7vw,3.6rem);font-weight:600}.tagline{color:var(--ink-dim);margin:.35rem 0 0;font-size:.95rem}.layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(1rem,2.5vw,1.75rem);display:grid}@media (width>=860px){.layout{grid-template-columns:minmax(0,1fr) 300px}}.stage{flex-direction:column;gap:.75rem;min-width:0;display:flex}.status{text-align:center;border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000038;justify-content:center;align-items:center;gap:.4rem;min-height:3rem;margin:0;padding:.7rem 1rem;font-size:clamp(.95rem,2.4vw,1.05rem);display:flex}.status strong{font-weight:650}.status .is-red{color:var(--red)}.status .is-black{color:#aab0bd}.pip{border-radius:50%;flex:none;width:.7em;height:.7em;display:inline-block;box-shadow:inset 0 -.15em .25em #00000059}.pip--red{background:linear-gradient(180deg, #ef6a5c, var(--red-deep))}.pip--black{background:linear-gradient(#5c5f68,#1b1c21)}.board-frame{border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow), inset 0 1px 0 #ffffff0f;background:radial-gradient(80% 60% at 50% 30%,#ffffff12,#0000 70%),linear-gradient(#2b4136,#1a2a23);border:1px solid #ffffff14;padding:clamp(.5rem,2vw,1rem)}#board{width:100%;height:auto;max-height:68vh;display:block;overflow:visible}.disc{transition:transform .26s}.disc__shadow{fill:#0000004d;cy:.12}.disc__face{fill:url(#wood);stroke:#5a3c1e73;stroke-width:.035px}.disc__ring{fill:none;stroke:#ffffff38;stroke-width:.045px;r:.74}.disc__grain{fill:none;stroke:#78553224;stroke-width:.022px;stroke-linecap:round}.disc.is-lifted{opacity:0}.hit{fill:#0000;cursor:pointer}.hint{pointer-events:none}.hint--lift{fill:none;stroke:var(--gold);stroke-width:.07px;stroke-dasharray:.22 .2;opacity:.85;animation:9s linear infinite march}.hint--target{fill:#e9b45c42;stroke:#e9b45cbf;stroke-width:.05px}.hint--place{fill:url(#ghost);stroke:#ffe8be8c;stroke-width:.045px;stroke-dasharray:.16 .14}.hint.is-hovered{fill:#e9b45c8c;stroke:var(--gold);stroke-width:.085px}.hole{fill:#00000052;stroke:#ffffff40;stroke-width:.05px;stroke-dasharray:.14 .12}.arrow{stroke:var(--gold);stroke-width:.085px;stroke-linecap:round;stroke-dasharray:.3 .22;opacity:.95;marker-end:url(#arrowhead);animation:1.4s linear infinite crawl}#arrowhead path{fill:var(--gold)}.pawn{cursor:pointer;transition:transform .32s cubic-bezier(.34,1.2,.64,1)}.pawn__shadow{fill:#00000059}.pawn__body{stroke:#00000059;stroke-width:.04px}.pawn--red .pawn__body{fill:url(#pawn-red)}.pawn--black .pawn__body{fill:url(#pawn-black)}.pawn__gloss{fill:#ffffff4d}.pawn__foot{fill:#00000038}.pawn.is-selected .pawn__body{stroke:var(--gold);stroke-width:.09px}.pawn.is-winner .pawn__body{stroke:var(--gold);stroke-width:.11px;filter:drop-shadow(0 0 .35rem #e9b45cb3)}.cell-label{fill:#0000008c;pointer-events:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.3px}@keyframes march{to{stroke-dashoffset:-4.2px}}@keyframes crawl{to{stroke-dashoffset:-1.04px}}@media (prefers-reduced-motion:reduce){.disc,.pawn{transition:none}.arrow,.hint--lift{animation:none}}.setup{border:1px solid var(--line);background:#0003;border-radius:12px;flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.setup__row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.setup__row--stacked{flex-direction:column;align-items:stretch;gap:.4rem}.setup__label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);flex:none;font-size:.74rem;font-weight:600}.segmented{border:1px solid var(--line);background:#0000004d;border-radius:9px;gap:2px;margin-left:auto;padding:2px;display:flex}.segmented__btn{font:inherit;color:var(--ink-dim);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;flex:1;padding:.35rem .6rem;font-size:.82rem;transition:background .15s,color .15s}.segmented__btn:hover{color:var(--ink)}.segmented__btn.is-active{color:#2a1c08;background:linear-gradient(#f0c274,#d79b3f);font-weight:650}.levels{grid-template-columns:repeat(4,1fr);gap:.3rem;display:grid}.level{font:inherit;color:var(--ink-dim);border:1px solid var(--line);cursor:pointer;background:#00000047;border-radius:9px;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .25rem;font-size:.74rem;transition:background .15s,border-color .15s,color .15s;display:flex}.level:hover{color:var(--ink);border-color:#fff3}.level.is-active{color:var(--gold);background:#e9b45c1f;border-color:#e9b45c99}.level__bars{align-items:flex-end;gap:2px;height:12px;display:flex}.level__bars i{opacity:.3;background:currentColor;border-radius:1px;width:4px;height:5px;display:block}.level__bars i:nth-child(2){height:8px}.level__bars i:nth-child(3){height:10px}.level__bars i:nth-child(4){height:12px}.level__bars i.is-on{opacity:1}.level__name{line-height:1}.setup__blurb{color:var(--ink-faint);margin:0;font-size:.78rem;line-height:1.45}.thinking{color:var(--gold);border-radius:var(--radius);background:#e9b45c14;border:1px solid #e9b45c40;justify-content:center;align-items:center;gap:.55rem;margin:0;padding:.45rem 1rem;font-size:.85rem;display:flex}.thinking[hidden]{display:none}.thinking__dots{gap:3px;display:inline-flex}.thinking__dots i{background:var(--gold);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite pulse}.thinking__dots i:nth-child(2){animation-delay:.15s}.thinking__dots i:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.thinking__dots i{opacity:.7;animation:none}}.sidebar{flex-direction:column;gap:1rem;min-width:0;display:flex}.scoreboard{flex-direction:column;gap:.5rem;display:flex}.player{border:1px solid var(--line);background:#0003;border-radius:12px;align-items:center;gap:.6rem;padding:.6rem .85rem;transition:border-color .2s,background .2s;display:flex}.player__pip{border-radius:50%;flex:none;width:1.1rem;height:1.1rem;box-shadow:inset 0 -.2em .3em #0006}.player--red .player__pip{background:linear-gradient(180deg, #ef6a5c, var(--red-deep))}.player--black .player__pip{background:linear-gradient(#5c5f68,#1b1c21)}.player__name{font-weight:600}.player__note{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-left:auto;font-size:.78rem}.player.is-active{background:#e9b45c1a;border-color:#e9b45c99}.player.is-active .player__note{color:var(--gold)}.player.is-winner{border-color:var(--gold)}.player.is-winner .player__note{color:var(--gold)}.controls{flex-wrap:wrap;gap:.5rem;display:flex}.button{min-width:7rem;font:inherit;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#ffffff14;border-radius:10px;flex:auto;padding:.6rem 1rem;font-size:.92rem;transition:background .16s,border-color .16s,transform 80ms}.button:hover:not(:disabled){background:#ffffff24;border-color:#ffffff38}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.4;cursor:not-allowed}.button--primary{color:#2a1c08;background:linear-gradient(#f0c274,#d79b3f);border-color:#fff3;font-weight:650}.button--primary:hover:not(:disabled){background:linear-gradient(#ffd089,#e5a94a)}.button:focus-visible,.hit:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.log-panel{border:1px solid var(--line);background:#0003;border-radius:12px;min-height:0;padding:.75rem}.log-panel__title{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);margin:0 0 .5rem;font-size:.74rem;font-weight:600}.log{max-height:15rem;color:var(--ink-dim);margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;line-height:1.9;list-style:none;overflow-y:auto}.log__empty{color:var(--ink-faint);font-style:italic}.log li{white-space:nowrap;border-bottom:1px solid #ffffff0d;grid-template-columns:.9rem 2rem 1.6rem 1fr;align-items:center;gap:.35rem;display:grid}.log__who{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-size:.68rem}.log li:last-child{border-bottom:0}.log__turn{color:var(--ink-faint)}.log__disc{color:var(--ink-faint);grid-column:3}.rules{border:1px solid var(--line);width:calc(100% - 2rem);max-width:34rem;color:var(--ink);box-shadow:var(--shadow);background:linear-gradient(#24352c,#182722);border-radius:16px;padding:0}.rules::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050a08b3}.rules form{padding:1.5rem}.rules h2{margin:0 0 .75rem;font-family:ui-serif,Georgia,serif;font-size:1.6rem}.rules h3{text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin:1.25rem 0 .35rem;font-size:.78rem}.rules p,.rules li{color:var(--ink-dim);font-size:.93rem;line-height:1.6}.rules ol,.rules ul{padding-left:1.2rem}.rules strong{color:var(--ink)}.rules__aside{border-left:3px solid #e9b45c66;padding-left:.8rem;font-style:italic}.rules__credit{color:var(--ink-faint);margin-top:1.25rem;font-size:.8rem}.rules .button{width:100%;margin-top:.5rem}
