@font-face{font-family:Russo One;font-style:normal;font-weight:400;font-display:swap;src:url(./russo-one-cyrillic-DMmgNeda.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Russo One;font-style:normal;font-weight:400;font-display:swap;src:url(./russo-one-latin-ext-T-hmcwzj.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Russo One;font-style:normal;font-weight:400;font-display:swap;src:url(./russo-one-latin-DIqih8p-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#ece6d3;--surface:#f8f4e8;--text:#22251a;--muted:#62654f;--accent:#56692a;--accent-contrast:#fff;--blue:#2f6fd6;--red:#d6453b;--green:#1c9c58;--yellow:#b8830a;--danger:#c43d2f;--border:#22251a24;--shadow:0 6px 18px #1e201424;--toast-bg:#181c10e6;--radius:14px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-display:"Russo One", var(--font)}@media (prefers-color-scheme:dark){:root{--bg:#141910;--surface:#1e2518;--text:#edf0e2;--muted:#a3a88e;--accent:#9bb35a;--accent-contrast:#141910;--blue:#5b92f0;--red:#f06a5f;--green:#46c47f;--yellow:#f0c23c;--danger:#ff6b5c;--border:#edf0e21f;--shadow:0 6px 22px #00000073;--toast-bg:#080a06e6}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0}#app{max-width:520px;min-height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);margin:0 auto}.screen{padding:12px 14px 20px}[hidden]{display:none!important}h2{margin:0 0 10px;font-size:20px}p{margin:6px 0}.menu .logo{font-family:var(--font-display);letter-spacing:.02em;margin:16px 0 0;font-size:36px;font-weight:400}h2,.bar-title,.result-title{font-family:var(--font-display);font-weight:400}.logo-sub{color:var(--muted);font-size:15px;font-weight:500;display:block}.tagline{color:var(--muted);margin:4px 0 14px}.me-row{gap:8px;margin-bottom:10px;display:flex}.rank-badge{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 10px;font-size:13px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;margin-bottom:12px;padding:14px;display:flex}.label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 2px;font-size:12px}.segmented{flex-wrap:wrap;gap:6px;display:flex}.segmented button{border:1px solid var(--border);color:var(--text);font:inherit;background:0 0;border-radius:10px;flex:auto;padding:8px 10px}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn{font:inherit;border:1px solid var(--border);color:var(--text);background:0 0;border-radius:12px;padding:10px 14px}.btn.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn.big{margin-top:4px;padding:14px;font-size:18px}.btn.wide{width:100%;margin-top:8px}.btn:disabled,.act:disabled{opacity:.5}.rules-summary,.note{color:var(--muted);margin:2px 0;font-size:13px}.row{justify-content:center;gap:8px;display:flex}.row .btn{flex:1 1 0}.fields{grid-template-columns:1fr 1fr;gap:8px;margin:6px 0;display:grid}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.field input,.code-row input{font:inherit;border:1px solid var(--border);color:var(--text);background:0 0;border-radius:8px;width:100%;padding:8px 10px;font-size:16px}.check{align-items:center;gap:8px;margin:8px 0;display:flex}.code-row input{text-transform:uppercase;letter-spacing:.1em}.code-row .btn{flex:none}.rules-list{color:var(--text);padding-left:18px;font-size:15px;line-height:1.4}.bar{background:var(--surface);border-radius:12px;align-items:center;gap:8px;padding:6px 8px;display:flex}.bar-title{font-size:17px}.bar .who{flex-direction:column;min-width:0;line-height:1.1;display:flex}.bar .who b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar .who small{color:var(--muted);font-size:12px}.bar .side{text-align:right;flex-direction:column;flex:none;margin-left:auto;font-size:12px;display:flex}.bar .status{color:var(--accent);min-height:1em;font-weight:600}.bar.active{outline:2px solid var(--accent)}.bar.hurry .status{color:var(--danger)}.dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.dot.blue{background:var(--blue)}.dot.red{background:var(--red)}.icon-btn{font:inherit;width:36px;height:36px;color:var(--text);background:0 0;border:none;border-radius:10px;flex:none;font-size:24px;line-height:1}.game{flex-direction:column;gap:6px;padding-top:6px;display:flex}.board-wrap{width:100%;position:relative}.board-wrap canvas{touch-action:manipulation;border-radius:14px;width:100%;display:block}.toast{background:var(--toast-bg);color:#fff;opacity:0;pointer-events:none;text-align:center;z-index:5;border-radius:10px;max-width:90%;padding:8px 12px;font-size:14px;transition:opacity .2s;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.app-toast{z-index:30;position:fixed;bottom:24px}.hint{color:var(--muted);text-align:center;min-height:1.2em;font-size:13px}.actions{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.act{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:10px 4px;position:relative}.act[aria-pressed=true],.act.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.act .badge{background:var(--yellow);color:#fff;border-radius:10px;padding:1px 6px;font-size:11px;position:absolute;top:-6px;right:-4px}.log h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 4px;font-size:13px}.log ol{max-height:120px;color:var(--muted);margin:0;padding-left:22px;font-size:13px;overflow:auto}.log li.me{color:var(--text)}.lobby-body{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:24px 6px;display:flex}.radar{width:72px;height:72px;margin:6px auto;position:relative}.radar span{border:2px solid var(--accent);opacity:0;border-radius:50%;animation:2.4s ease-out infinite ping;position:absolute;inset:0}.radar span:nth-child(2){animation-delay:.8s}.radar span:nth-child(3){animation-delay:1.6s}.radar i{background:var(--accent);border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%}@keyframes ping{0%{opacity:.9;transform:scale(.2)}to{opacity:0;transform:scale(1)}}.invite{flex-direction:column;align-items:stretch;gap:6px;width:100%;display:flex}.invite input.code{font:inherit;letter-spacing:.18em;text-align:center;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:10px;font-size:28px}.lobby-rules,.lobby-status{color:var(--muted);font-size:14px}.modal{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:520px;max-height:88dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:18px 18px 0 0;overflow:auto}@media (min-width:600px){.modal{align-items:center}.sheet{border-radius:18px}}.result-title{text-align:center;font-size:26px}.result-title.win{color:var(--green)}.result-title.lose{color:var(--danger)}.result-vs{text-align:center;color:var(--muted)}.result-line{text-align:center;margin:4px 0}.sheet .row{margin-top:10px}.leaders,.history,.ranks{margin:0;padding:0;list-style:none}.leaders li,.ranks li{border-bottom:1px solid var(--border);align-items:baseline;gap:8px;padding:6px 4px;display:flex}.leaders li.me{background:#56692a1f;border-radius:8px}.leaders .place{width:26px;color:var(--muted)}.leaders small{color:var(--muted);margin-left:auto}.leaders .rating{font-variant-numeric:tabular-nums;text-align:right;width:44px}.ranks li span{color:var(--muted);margin-left:auto}.history li .game{text-align:left;width:100%;font:inherit;border:1px solid var(--border);color:var(--text);background:0 0;border-radius:10px;flex-direction:column;gap:2px;margin:4px 0;padding:8px 10px;display:flex}.history .game.win b{color:var(--green)}.history .game.lose b{color:var(--danger)}.history .game span{font-size:13px}.history .game small{color:var(--muted);font-size:12px}details summary{cursor:pointer;color:var(--muted);margin:8px 0}.replay-players,.replay-caption{text-align:center;min-height:1.4em;font-size:14px}.replay-caption{color:var(--muted)}.replay-seek{align-items:center;gap:8px;display:flex}.replay-seek input{flex:1}.replay-seek span{color:var(--muted);text-align:right;min-width:56px;font-size:12px}.replay-controls{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.replay-controls .act{padding:10px 2px;font-size:12px}.coach{background:var(--surface);color:var(--text);box-shadow:var(--shadow);z-index:6;border-radius:14px;padding:12px 14px;position:absolute;bottom:10px;left:10px;right:10px}.coach-title{font-family:var(--font-display);margin-bottom:4px;font-weight:400;display:block}.coach-text{margin:0 0 8px;font-size:14px;line-height:1.35}.coach-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.coach-off{font:inherit;color:var(--muted);background:0 0;border:none;padding:6px 0;font-size:12px}
