@font-face{font-family:Manrope;src:url('./fonts/manrope-cyrillic.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap;unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;src:url('./fonts/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{color-scheme:dark;--bg:#0c0c0c;--text:#f5f4f1;--muted:#9d9b96;--line:#272624;--accent:#ff6a00;--accent-text:#ff812b;--hover:#1c1b19;--coin-size:228px}
:root[data-theme=light]{color-scheme:light;--bg:#faf9f6;--text:#1c1b18;--muted:#6e6a63;--line:#dedbd5;--accent-text:#b84a00;--hover:#edeae4}
*{box-sizing:border-box}body{margin:0;min-width:280px;min-height:100svh;background:var(--bg);color:var(--text);font:15px/1.5 Manrope,Arial,sans-serif;display:flex;flex-direction:column;-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-text);outline-offset:5px}[hidden]{display:none!important}
.site-header{width:calc(100% - 80px);max-width:1120px;margin:0 auto;height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:16px;flex:none}.brand{font-size:19px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand span{color:var(--accent)}nav{display:flex;align-items:center;gap:25px}.back-link{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);transition:color .15s}.back-link:hover{color:var(--text)}.back-link svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.theme-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:none;color:var(--muted);transition:color .15s,background .15s}.theme-button:hover{background:var(--hover);color:var(--text)}.theme-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.moon{display:none}:root[data-theme=light] .sun{display:none}:root[data-theme=light] .moon{display:block}
.game{width:min(100% - 40px,540px);margin:auto;display:flex;align-items:center;flex-direction:column;padding:38px 0 28px}.intro{text-align:center}.intro h1{font-size:clamp(30px,4vw,48px);font-weight:800;line-height:1.15;letter-spacing:-2px;margin:0;overflow-wrap:normal}.intro h1 span{color:var(--accent-text)}.intro p{color:var(--muted);margin:10px 0 0;font-size:15px;letter-spacing:-.2px}
.coin-stage{position:relative;display:grid;place-items:center;width:100%;height:288px;perspective:1100px}.coin-lift{width:var(--coin-size);height:var(--coin-size);position:relative;z-index:1;transform:rotate(-9deg);transform-style:preserve-3d;filter:drop-shadow(0 8px 4px #0003)}.coin{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateY(0deg)}.coin-face{position:absolute;inset:0;display:block;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;user-select:none;object-fit:contain;transform:translateZ(4px)}.coin-tails{transform:rotateY(180deg) translateZ(4px)}.coin-shadow{position:absolute;bottom:17px;width:168px;height:15px;border-radius:50%;background:#0008;filter:blur(8px);opacity:.8}:root[data-theme=light] .coin-shadow{opacity:.28}
.coin-stage.is-tossing .coin-lift{animation:lift var(--duration) cubic-bezier(.25,.05,.3,1) both;will-change:transform}.coin-stage.is-tossing .coin{animation:flip var(--duration) cubic-bezier(.15,.38,.3,1) both;will-change:transform}.coin-stage.is-tossing .coin-shadow{animation:shadow var(--duration) ease-in-out both}
@keyframes flip{from{transform:rotateY(var(--from))}to{transform:rotateY(var(--to))}}@keyframes lift{0%,100%{transform:translateY(0) rotate(-9deg)}45%{transform:translateY(-32px) rotate(9deg)}86%{transform:translateY(3px) rotate(-11deg)}}@keyframes shadow{0%,100%{transform:scaleX(1);opacity:.8}45%{transform:scaleX(.6);opacity:.25}}
.result{min-height:67px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.result-label{font-size:12px;line-height:19px;color:var(--muted)}.result strong{font-size:27px;line-height:1.3;letter-spacing:-.8px;font-weight:800}.result.has-result strong{animation:reveal .2s ease-out}@keyframes reveal{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.toss-button{width:248px;min-height:56px;border:0;border-radius:10px;background:var(--accent);color:#1b1009;font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:11px;margin-top:16px;transition:background .15s,transform .15s;box-shadow:0 3px 0 #a33c00}.toss-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.toss-button:hover:enabled{background:#ff812b;transform:translateY(-1px)}.toss-button:active:enabled{transform:translateY(2px);box-shadow:0 1px 0 #a33c00}.toss-button:disabled{background:#d56719;color:#29180c}.keyboard-hint{color:var(--muted);font-size:11px;margin:13px 0 0}.keyboard-hint kbd{font:inherit;border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-left:2px}
.score{width:100%;max-width:390px;display:grid;grid-template-columns:1.4fr 1fr 1fr;border-top:1px solid var(--line);margin-top:29px;padding-top:20px}.score>div{display:flex;flex-direction:column;text-align:center;gap:3px;padding:0 10px;min-width:0}.score>div+div{border-left:1px solid var(--line)}.score-label{font-size:11px;color:var(--muted)}.score strong{font-size:24px;line-height:1.3;letter-spacing:-.8px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.reset-button{background:none;border:0;color:var(--muted);font-size:11px;padding:10px 15px;min-height:40px;margin-top:9px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}.reset-button:hover:enabled{text-decoration-color:currentColor;color:var(--text)}.reset-button:disabled{opacity:.4}.site-footer{max-width:1120px;width:calc(100% - 80px);margin:0 auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;min-height:55px;font-size:11px;color:var(--muted);gap:16px;flex:none}.site-footer>span:last-child{letter-spacing:1px;font-variant-numeric:tabular-nums}.noscript{font-size:13px;color:var(--accent-text)}
@media (max-width:600px){:root{--coin-size:208px}.site-header{width:calc(100% - 40px);height:70px}.brand{font-size:17px;letter-spacing:-.8px}nav{gap:14px}.back-link{font-size:11px;gap:4px}.back-link svg{width:14px;height:14px}.theme-button{width:34px;height:34px}.game{padding:28px 0 20px}.intro h1{font-size:34px;letter-spacing:-1.5px}.intro p{font-size:13px;margin-top:8px}.coin-stage{height:260px}.coin-shadow{bottom:14px;width:145px}.result{min-height:64px}.toss-button{margin-top:12px;width:min(100%,280px);min-height:54px}.keyboard-hint{display:none}.score{margin-top:30px;padding-top:18px;max-width:340px}.site-footer{width:calc(100% - 40px);min-height:48px;font-size:10px}}
@media (max-width:360px){:root{--coin-size:182px}.site-header{width:calc(100% - 32px)}.game{width:calc(100% - 32px)}nav{gap:9px}.brand{font-size:15px}.back-link{font-size:10px}.intro h1{font-size:29px;letter-spacing:-1.2px}.coin-stage{height:228px}.score-label{font-size:10px}.score>div{padding:0 6px}.site-footer{width:calc(100% - 32px)}}
@media (max-height:760px) and (min-width:601px){:root{--coin-size:192px}.game{padding:25px 0 15px}.intro h1{font-size:40px}.coin-stage{height:238px}.score{margin-top:22px}.site-header{height:72px}}
@media (max-width:600px){.coin-stage{height:238px}}
@media (max-height:760px) and (min-width:601px){.game{padding:18px 0 12px}.intro h1{font-size:36px}.coin-stage{height:218px}.result{min-height:58px}.keyboard-hint{display:none}.score{margin-top:23px}.site-footer{min-height:46px}}
@media (max-height:740px) and (max-width:600px){:root{--coin-size:178px}.game{padding:20px 0 12px}.coin-stage{height:210px}.score{margin-top:22px;padding-top:14px}.reset-button{margin-top:5px}.site-footer{min-height:40px}}
.mode-switch{width:248px;max-width:100%;display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:4px;border:1px solid var(--line);border-radius:10px;margin-top:20px;min-height:44px;flex:none}.mode-switch button{border:0;background:none;color:var(--muted);font-size:12px;font-weight:700;border-radius:6px;padding:7px 12px;transition:background .15s,color .15s}.mode-switch button[aria-pressed=true]{background:var(--text);color:var(--bg)}.mode-switch button:hover:enabled:not([aria-pressed=true]){color:var(--text);background:var(--hover)}.mode-switch button:disabled{cursor:default;opacity:.65}
.turn-label{font-size:12px;line-height:20px;color:var(--accent-text);text-align:center;margin:0;min-height:20px;font-weight:600}.result.is-finished strong{font-size:24px}.duel-score{width:100%;max-width:390px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.player{border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-width:0}.player.is-active,.player.is-winner{border-color:var(--accent-text)}.player-heading{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:12px;font-weight:700;min-height:18px}.player-badge{font-size:9px;font-weight:600;color:var(--accent-text)}.player-points{display:flex;align-items:baseline;gap:6px;margin:3px 0 8px}.player-points strong{font-size:28px;font-weight:800;line-height:1.25;letter-spacing:-1px;font-variant-numeric:tabular-nums}.player-points>span{font-size:10px;color:var(--muted)}.attempts{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.attempts span{aspect-ratio:1;max-height:8px;border:1px solid var(--line);border-radius:50%;width:100%;max-width:8px}.attempts span.heads{background:var(--accent-text);border-color:var(--accent-text)}.attempts span.tails{background:var(--muted);border-color:var(--muted)}.player-progress{display:block;color:var(--muted);font-size:10px;margin-top:7px}.game[data-mode=duel]{--coin-size:192px}.game[data-mode=duel] .coin-stage{height:234px}.game[data-mode=duel] .result{min-height:58px}.game[data-mode=duel] .keyboard-hint{display:none}
@media (max-width:600px){.mode-switch{margin-top:16px}.game[data-mode=duel]{--coin-size:176px}.game[data-mode=duel] .coin-stage{height:198px}.duel-score{margin-top:20px;max-width:340px;gap:10px}.player{padding:10px 12px}.player-points{margin-bottom:7px}}
@media (max-height:760px) and (min-width:601px){.game{padding-top:12px}.mode-switch{margin-top:14px}.coin-stage{height:184px}.game{--coin-size:164px}.game[data-mode=duel]{--coin-size:154px}.game[data-mode=duel] .coin-stage{height:174px}.duel-score{margin-top:18px}.player{padding:8px 12px}.player-points{margin:0 0 5px}.reset-button{margin-top:5px}.score{margin-top:20px}}
@media (max-height:740px) and (max-width:600px){.mode-switch{margin-top:12px;min-height:40px}.mode-switch button{padding:5px 12px}.game[data-mode=duel]{--coin-size:148px}.game[data-mode=duel] .coin-stage{height:168px}.game[data-mode=duel] .result{min-height:54px}.game[data-mode=duel] .toss-button{min-height:50px;margin-top:8px}.duel-score{margin-top:16px}.player{padding:8px 10px}.player-heading{font-size:11px}.player-points strong{font-size:24px}.player-points{margin:0 0 5px}.player-progress{margin-top:6px}.game[data-mode=duel] .reset-button{margin-top:4px}}
@media (max-height:760px) and (min-width:601px){.site-footer{display:none}}
@media (max-height:740px) and (max-width:600px){.game{padding-top:12px}.site-footer{min-height:32px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;transition-duration:1ms!important}.coin-stage.is-tossing .coin-lift{animation:none}}
