@font-face{font-family:Nunito;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/nunito-latin.woff2) format("woff2")}:root{--bg-top: #2b2a27;--bg-bot: #1e1d1b;--card: #34322e;--card-line: #45423c;--text: #f3f1ea;--text-dim: #b7b2a6;--gold: #d8b25c;--gold-soft: #b9964a;--sel: rgba(255, 214, 92, .6);--hint: rgba(40, 45, 30, .3);--last: rgba(255, 214, 92, .48);--check: #d64b3f;--arrow: rgba(216, 178, 92, .75)}.theme-walnut{--cream: #e8d2a8;--green: #a4703f;--frame: #2e2116}.theme-green{--cream: #eeeed4;--green: #6f8f4f;--frame: #3a3a2a}.theme-blue{--cream: #e8ecf3;--green: #4a5a7a;--frame: #23293a}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(160deg,var(--bg-top),var(--bg-bot));color:var(--text);font-family:Nunito,system-ui,sans-serif;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:12px 16px 16px;gap:10px}h1{position:relative;font-weight:800;letter-spacing:4px;font-size:1.35rem;display:flex;align-items:center;gap:12px;padding-bottom:8px}h1:before{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:54px;height:3px;border-radius:3px;background:var(--gold)}.controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}button,select{background:var(--card);color:var(--text);border:1px solid var(--card-line);padding:9px 16px;border-radius:10px;font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:transform .08s,background .15s,border-color .15s}button:hover{background:var(--gold);color:#2b2a27;border-color:var(--gold)}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}button:disabled:hover{background:var(--card);color:var(--text);border-color:var(--card-line)}select{font-weight:600}select:hover{border-color:var(--gold-soft)}#gearBtn{padding:9px 12px;font-size:1rem}.status{font-size:1.1rem;font-weight:700;min-height:1.4em;text-align:center;color:var(--text)}.status.check{color:#ff9d92}.status.think{color:var(--gold);font-style:italic}.wrap{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;align-items:flex-start}.board-shell{position:relative}#board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);background:var(--green);border:12px solid var(--frame);border-radius:6px;overflow:hidden;box-shadow:0 16px 40px #00000080;touch-action:none}.sq{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none}.sq.light{background:var(--cream)}.sq.dark{background:var(--green)}.sq.sel{box-shadow:inset 0 0 0 100px var(--sel)}.sq.last{box-shadow:inset 0 0 0 100px var(--last)}.sq.chk{background:radial-gradient(circle,rgba(214,75,63,.55) 0%,transparent 72%),var(--green)}.sq.chk.light{background:radial-gradient(circle,rgba(214,75,63,.55) 0%,transparent 72%),var(--cream)}.piece{cursor:grab;font-size:calc(var(--sq, 60px) * .82);line-height:1;filter:drop-shadow(0 2px 1.5px rgba(0,0,0,.35))}.piece.w{color:#f7f6ef;-webkit-text-stroke:2px #3a3733;paint-order:stroke fill}.piece.b{color:#34322e;-webkit-text-stroke:2px #14130f;paint-order:stroke fill}.piece.dragging{opacity:0}#ghost{position:fixed;z-index:50;pointer-events:none;line-height:1;transform:translate(-50%,-50%);filter:drop-shadow(0 6px 6px rgba(0,0,0,.45))}.dot{position:absolute;width:30%;height:30%;border-radius:50%;background:var(--hint);pointer-events:none}.dot.cap{width:90%;height:90%;background:transparent;border:6px solid var(--hint)}.dot.hoverhint{opacity:.8}.arrow-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.arrow-layer line{stroke:var(--arrow)}.arrow-layer path{fill:var(--arrow)}.sq.hintfrom,.sq.hintto{box-shadow:inset 0 0 0 5px #5a965ae6}.coord{position:absolute;font-size:11px;font-weight:800;font-family:Nunito,sans-serif}.coord.f{bottom:2px;right:4px}.coord.r{top:3px;left:4px}.sq.light .coord{color:var(--green)}.sq.dark .coord{color:var(--cream)}.side{background:var(--card);color:var(--text);border:1px solid var(--card-line);border-radius:14px;padding:16px 18px;min-width:210px;max-width:240px;box-shadow:0 12px 30px #0006}.side h3{color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:2px;margin:12px 0 8px;text-transform:uppercase}.side h3:first-child{margin-top:0}.opening{font-size:.95rem;font-weight:800;line-height:1.35;color:var(--gold);background:#d8b25c1a;border:1px solid rgba(216,178,92,.3);border-radius:8px;padding:8px 10px}.plan{font-size:.8rem;line-height:1.45;color:var(--text-dim);margin-top:6px;min-height:1em}.clocks{margin-top:12px;display:flex;flex-direction:column;gap:6px}.clock{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-radius:8px;background:#2a2926;border:1px solid var(--card-line)}.clock .who{font-size:.72rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.clock .time{font-size:1.2rem;font-weight:800;font-variant-numeric:tabular-nums}.clock.active{border-color:var(--gold)}.clock.active .time{color:var(--gold)}.clock.low .time{color:#ff8a7d}.cap-row{font-size:1.4rem;min-height:1.5em;letter-spacing:-2px}.nav{display:flex;gap:4px;margin-bottom:6px}.nav button{padding:5px 8px;font-size:.8rem;flex:1}.moves{font-size:.86rem;line-height:1.7;max-height:200px;overflow:auto;color:var(--text-dim);font-weight:600}.moves .mv{cursor:pointer;padding:0 2px;border-radius:4px}.moves .mv:hover{background:#ffffff14}.moves .mv.current{background:var(--gold);color:#2b2a27}.moves .num{color:#6f6a5f}.pgn-row{display:flex;gap:6px;margin-top:12px}.pgn-row button{flex:1;font-size:.78rem;padding:7px 8px}dialog{background:var(--card);color:var(--text);border:1px solid var(--card-line);border-radius:14px;padding:20px 24px;font-weight:700;box-shadow:0 24px 60px #0000008c}dialog::backdrop{background:#0000008c}.dlg-title{color:var(--gold);font-size:.8rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}.row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:10px 0;font-size:.9rem;font-weight:600}.row select{padding:6px 10px}.row input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);cursor:pointer}.dlg-actions{margin-top:16px;text-align:right}.promo{display:flex;gap:10px;margin-top:14px}.promo span{font-size:46px;cursor:pointer;padding:4px 8px;border-radius:10px;transition:background .12s}.promo span:hover{background:var(--green)}@media (max-width: 760px){.wrap{flex-direction:column;align-items:center}.side{max-width:min(92vw,520px);width:min(92vw,520px)}.moves{max-height:140px}}
