html{-webkit-text-size-adjust:100%}:root{--bg:#f3efe6;--surface:#e7dcc8;--ink:#2a241c;--muted:#5c5348;--line:#3a3228;--accent:#8a5a2b;--accent-soft:#8a5a2b47;--light-stone:#f7f1e6;--dark-stone:#2b2620;--focus:#1f6b5a;--card:#fffaf2;--shadow:0 10px 28px #2a241c1a;--radius:14px;color:var(--ink);background:radial-gradient(circle at top, #faf6ee 0%, var(--bg) 55%, #e8e0d2 100%);font-family:Segoe UI,Avenir Next,Georgia,serif}*{box-sizing:border-box}body{min-height:100svh;margin:0}#root{min-height:100svh}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-screen{gap:1rem;width:min(960px,100%);margin:0 auto;padding:1rem 1rem 2rem;display:grid}.game-screen--play{gap:.65rem;width:min(1120px,100%)}.game-screen--play .game-screen__header h1{font-size:clamp(1.55rem,3.2vw,2.1rem)}.game-screen--play .game-screen__header p{margin-top:.2rem;font-size:.95rem}.game-screen--play .game-status{padding:.55rem .85rem}.game-screen--play .game-status__action{font-size:1rem}.game-screen--play .player-card{padding:.55rem .8rem}.game-screen--play .player-card__name{margin-bottom:.3rem;font-size:1rem}.game-screen__header{text-align:center}.game-screen__header h1{letter-spacing:.02em;margin:0;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:650}.game-screen__header p,.game-screen__loading{color:var(--muted);margin:.35rem 0 0}.game-status,.player-card,.game-result,.resume-panel,.mode-card,.collapsible{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #3a32281f}.sr-live{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-status{text-align:center;padding:.9rem 1rem}.game-status p{margin:.2rem 0}.game-status__action{font-size:1.05rem;font-weight:600}.player-panel{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.player-card{border-left:5px solid #0000;padding:.85rem 1rem}.player-card--light{border-left-color:#d8c7a8}.player-card--dark{border-left-color:#3a3228}.player-card--active{outline:2px solid var(--accent);outline-offset:1px}.player-card__name{margin:0 0 .5rem;font-size:1.1rem}.player-card__stats{grid-template-columns:1fr auto;gap:.25rem .75rem;margin:0;display:grid}.player-card__stats dt{color:var(--muted)}.player-card__stats dd{text-align:right;margin:0;font-weight:650}.game-result{text-align:center;background:linear-gradient(#fff8ea,#f4ebda);padding:1rem}.game-result__headline{margin:0;font-size:1.4rem}.game-result__detail{color:var(--muted);margin:.4rem 0 0}.mill-board{aspect-ratio:1;width:min(100%,720px);margin:.25rem auto .35rem;position:relative}.mill-board__svg{width:100%;height:100%;box-shadow:var(--shadow);border-radius:18px;display:block}.mill-board__surface{fill:var(--surface);stroke:#3a32282e;stroke-width:.6px}.mill-board__line{stroke:var(--line);stroke-width:1.35px;stroke-linecap:round}.mill-board__empty{fill:#3a322842}.mill-board__empty--place{fill:#463a2d57}.mill-board__empty--target{fill:#8a5a2b8c}.mill-board__stone{stroke:#1a1612;stroke-width:.7px}.mill-board__stone--light{fill:var(--light-stone)}.mill-board__stone--dark{fill:var(--dark-stone);stroke:#0d0b09}.mill-board__marker--place{fill:none;stroke:#8a5a2b8c;stroke-width:.45px}.mill-board__marker--target{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:1.5 1.1}.mill-board__marker--selectable{fill:none;stroke:#8a5a2bd9;stroke-width:.85px}.mill-board__marker--selected{fill:none;stroke:var(--focus);stroke-width:1.45px}.mill-board__marker--capture{fill:none;stroke:#7a3b2e;stroke-width:1.2px;stroke-dasharray:.7 .7}.mill-board__hotspots{position:absolute;inset:0}.mill-board__hotspot{cursor:pointer;background:0 0;border:0;border-radius:999px;width:clamp(40px,12%,52px);height:clamp(40px,12%,52px);padding:0;position:absolute;transform:translate(-50%,-50%)}.mill-board__hotspot:disabled{cursor:default;pointer-events:none}.mill-board__hotspot--selected:not(:disabled){cursor:default}.mill-board__hotspot:focus-visible{outline:3px solid var(--focus);outline-offset:2px;background:#1f6b5a1f}.mill-board__hotspot--active:not(:disabled):not(.mill-board__hotspot--selected):hover{background:var(--accent-soft)}.mill-board__hotspot--selected:focus-visible{outline:3px solid var(--focus);outline-offset:3px;background:#1f6b5a29}.game-screen__actions,.resume-panel__actions{flex-wrap:wrap;justify-content:center;align-items:end;gap:.75rem;display:flex}.resume-panel{text-align:center;padding:1.25rem}.resume-panel p{margin:0 0 1rem}.mode-panel{gap:1rem;display:grid}.mode-card{text-align:left;padding:1.1rem 1.2rem}.mode-card--selected{border-color:#4a342073;box-shadow:0 0 0 2px #a67c5259}.mode-card h2{margin:0 0 .4rem;font-size:1.2rem}.mode-card p{color:var(--muted);margin:0 0 1rem;line-height:1.45}.game-screen__secondary{gap:.5rem;width:min(100%,720px);margin:0 auto;display:grid}.collapsible{padding:0}.collapsible__summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:.7rem 1rem;font-weight:650;list-style:none}.collapsible__summary::-webkit-details-marker{display:none}.collapsible__summary:before{content:"▶";margin-right:.45rem;font-size:.75em;transition:transform .12s;display:inline-block}.collapsible[open]>.collapsible__summary:before{transform:rotate(90deg)}.collapsible__summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--radius)}.collapsible__body{border-top:1px solid #3a322814;padding:0 1rem .85rem}.move-history__empty{color:var(--muted);margin:.65rem 0 0}.game-stats__grid{grid-template-columns:1fr auto;gap:.25rem .75rem;margin:.65rem 0 0;display:grid}.game-stats__grid dt{color:var(--muted)}.game-stats__grid dd{text-align:right;margin:0;font-weight:650}.game-stats__end{border-top:1px solid #3a32281f;margin-top:.75rem;padding-top:.65rem}.game-stats__end p{margin:.2rem 0}.game-stats__end-reason{color:var(--muted)}.move-history__list{font-variant-numeric:tabular-nums;max-height:12rem;margin:.65rem 0 0;padding:0;list-style:none;overflow:auto}.move-history__list li{border-bottom:1px solid #3a322814;padding:.28rem 0}.think-delay{gap:.35rem;min-width:11rem;display:grid}.think-delay__label{color:var(--muted);font-size:.95rem}.think-delay__select{font:inherit;background:var(--card);color:var(--ink);border:1px solid #2a241c59;border-radius:10px;padding:.55rem .75rem}.think-delay__select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.mill-board__highlight{fill:none;stroke-width:1.35px}.mill-board__highlight--from{stroke:#1f6b5ad9}.mill-board__highlight--to{stroke:#8a5a2bf2}.mill-board__highlight--capture{stroke:#7a3b2ef2}.btn{appearance:none;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;padding:.7rem 1.2rem;font-weight:650}.btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn--primary{background:var(--ink);color:#f7f1e6}.btn--secondary{color:var(--ink);background:0 0;border-color:#2a241c59}.game-screen--table{gap:.4rem;width:100%;max-width:1100px;padding-top:.5rem}.table-layout{flex-direction:column;align-items:stretch;gap:.35rem;width:100%;display:flex}.table-layout__center{flex-direction:column;flex:auto;align-items:center;gap:.3rem;width:100%;display:flex}.game-screen--table .table-layout__center .mill-board{width:min(100%,min(92vmin,980px));margin:0 auto}.table-seat{justify-content:center;width:100%;display:flex}.table-seat__inner{flex-direction:column;align-items:center;gap:.35rem;width:min(100%,32rem);display:flex}.table-seat--far{transform:rotate(180deg)}.table-turn-status{text-align:center;width:100%;box-shadow:var(--shadow);background:#fffaf2c7;border:1px solid #3a32281f;border-radius:10px;padding:.4rem .65rem}.table-turn-status p{margin:.12rem 0}.table-turn-status__phase{color:var(--muted);font-size:.9rem}.table-turn-status__action{font-size:1rem;font-weight:600}.table-seat__racks{grid-template-columns:1fr 1fr;gap:.45rem;width:100%;display:grid}.stone-rack{background:#fffaf2b8;border:1px solid #3a322824;border-radius:10px;min-height:3.1rem;padding:.4rem .5rem .5rem}.stone-rack__label{color:var(--muted);text-align:center;margin-bottom:.3rem;font-size:.75rem;font-weight:600;display:block}.stone-rack__stones{flex-wrap:wrap;justify-content:center;align-items:center;gap:.28rem;min-height:1.35rem;display:flex}.stone-rack__empty{color:var(--muted);opacity:.65;font-size:.8rem}.stone-rack__stone{border:1px solid #1a161259;border-radius:50%;width:.95rem;height:.95rem;box-shadow:inset 0 1px 2px #ffffff59,0 1px 2px #2a241c40}.stone-rack__stone--light{background:linear-gradient(145deg,#f3e6d0,#d4bc94)}.stone-rack__stone--dark{background:linear-gradient(145deg,#5c4030,#2a1c14);border-color:#0d0b098c}.mill-board--table .mill-board__svg{border-radius:12px;box-shadow:0 12px 32px #2a241c2e}.mill-board--table .mill-board__surface{stroke:#4a342073;stroke-width:.85px}.mill-board--table .mill-board__line{stroke:#4a3420;stroke-width:1.5px}.mill-board--table .mill-board__stone{stroke:#1a120c8c;stroke-width:.55px}.mill-board--table .mill-board__empty{fill:#4a342059}.mill-board--table .mill-board__mill-glow{stroke:#d4a048e6;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.mill-board--table .mill-board__mill-stone-glow{fill:#e8b45a59}.mill-board--mill-pulse .mill-board__mill-glow{animation:table-mill-pulse var(--table-motion-ms,.45s) ease-out}.mill-board--mill-pulse .mill-board__mill-stone-glow{animation:table-mill-stone-pulse var(--table-motion-ms,.45s) ease-out}.mill-board__motion-stone{pointer-events:none;stroke:#1a120c8c;stroke-width:.55px}.mill-board__motion-stone--place{animation:table-stone-place var(--table-motion-ms,.35s) ease-out;transform-box:fill-box;transform-origin:50%}.mill-board__motion-stone--capture{pointer-events:none}@keyframes table-stone-place{0%{opacity:.35;transform:translateY(-4px)scale(.85)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes table-mill-pulse{0%{stroke-opacity:.55;stroke-width:2px}45%{stroke-opacity:1;stroke-width:3.1px}to{stroke-opacity:.9;stroke-width:2.4px}}@keyframes table-mill-stone-pulse{0%{fill-opacity:.15}50%{fill-opacity:.55}to{fill-opacity:.35}}.table-menu{flex-direction:column;align-items:stretch;gap:.45rem;width:min(100%,18rem);margin-inline:auto;display:flex}.table-menu__toggle{width:100%}.table-menu__panel{box-shadow:var(--shadow);background:#fffaf2eb;border:1px solid #3a322829;border-radius:10px;flex-direction:column;gap:.55rem;padding:.75rem .85rem;display:flex}.table-menu__row{justify-content:space-between;align-items:center;gap:.75rem;font-size:.95rem;display:flex}.table-menu__select{min-width:7.5rem;color:inherit;font:inherit;background:#fffaf2;border:1px solid #3a322847;border-radius:6px;padding:.35rem .45rem}.table-menu__end,.table-menu__continue{width:100%}@media (prefers-reduced-motion:reduce){.mill-board__motion-stone--place,.mill-board--mill-pulse .mill-board__mill-glow,.mill-board--mill-pulse .mill-board__mill-stone-glow{animation:none}}@media (width<=640px){.game-screen{padding:.75rem .75rem 1.5rem}.player-panel{grid-template-columns:1fr}.game-screen__actions{flex-direction:column;align-items:stretch}.think-delay{min-width:0}.move-history__list{max-height:9rem}}
