:root{--hat-violet:#a37bff;--hat-gold:#ffcf4d;--bg-dark:#070c17}*{box-sizing:border-box;margin:0;padding:0}body,html{background-color:var(--bg-dark);color:#fff;width:100%;min-height:100dvh;margin:0;font-family:Outfit,sans-serif;overflow:hidden}#game-container{margin:0 auto;position:relative;overflow:hidden}video{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}canvas{visibility:hidden;display:block;position:absolute;top:0;left:0;transform:scaleX(-1)}#ui-layer{pointer-events:none;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:2rem;display:flex;position:absolute;top:0;left:0}#hud-game{pointer-events:none;flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}#hud-game.is-hidden{visibility:hidden;opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}#score-display{text-shadow:0 0 10px var(--hat-violet), 0 0 20px var(--hat-violet);pointer-events:none;font-size:3rem;font-weight:900}.victory-overlay{z-index:60;pointer-events:none;letter-spacing:.08em;text-align:center;color:var(--hat-gold);text-shadow:0 0 16px #ffcf4df2,0 0 36px #a37bff8c,0 0 64px #7b4dff59;background:#0a06169e;justify-content:center;align-items:center;padding:1rem;font-size:clamp(2rem,9vw,4.4rem);font-weight:900;animation:.5s cubic-bezier(.22,1.1,.36,1) both victory-pop;display:flex;position:fixed;inset:0}.victory-overlay.is-hidden{display:none}.is-hidden{display:none!important}.catch-tutorial-overlay{z-index:58;pointer-events:auto;background:#080512db;justify-content:center;align-items:center;padding:1rem;animation:.35s cubic-bezier(.22,1.1,.36,1) both victory-pop;display:flex;position:fixed;inset:0}.catch-tutorial-overlay.is-hidden{display:none}.catch-tutorial-wrap{width:min(96vw,880px)}.catch-tutorial-figure{position:relative}.catch-tutorial-svg{background:linear-gradient(165deg,#1b1233f2 0%,#0a0714f2 100%);border:1px solid #a37bff4d;border-radius:12px;width:100%;height:auto;display:block;box-shadow:0 0 28px #a37bff47,0 8px 32px #00000073}.catch-tutorial-labels{pointer-events:none;grid-template-columns:1fr 1fr;align-items:end;display:grid;position:absolute;inset:0}.catch-tutorial-half{justify-content:center;align-items:flex-end;padding:0 .5rem 4%;display:flex}.catch-tutorial-label{text-align:center;letter-spacing:.02em;color:#fff;text-shadow:0 0 10px #000000f2,0 2px 10px #000000d9;background:#00000080;border:1px solid #ffffff24;border-radius:10px;max-width:92%;padding:.45rem .65rem;font-size:clamp(.8rem,3vw,1.2rem);font-weight:800;line-height:1.28}.catch-tutorial-countdown{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--hat-violet);text-shadow:0 0 14px #a37bffbf,0 0 28px #ffcf4d59;margin-top:.9rem;font-size:clamp(3rem,10vw,4.6rem);font-weight:900}.campaign-complete-overlay{z-index:65;pointer-events:auto;background:#080512d6;justify-content:center;align-items:center;padding:1rem;animation:.45s cubic-bezier(.22,1.1,.36,1) both victory-pop;display:flex;position:fixed;inset:0}.campaign-complete-overlay.is-hidden{display:none}.campaign-complete-panel{text-align:center;background:linear-gradient(165deg,#1a112ef5 0%,#0c0816fa 100%);border:1px solid #ffb21957;border-radius:18px;width:min(92vw,420px);max-height:min(92vh,92dvh);padding:1.5rem 1.35rem 1.25rem;overflow-y:auto;box-shadow:0 0 28px #ffb21940,0 0 48px #56c1fc2e}.campaign-complete-title{letter-spacing:.06em;color:var(--hat-gold);text-shadow:0 0 14px #ffb219e6,0 0 28px #56c1fc73;margin:0 0 .65rem;font-size:clamp(1.65rem,7vw,2.35rem);font-weight:900}.campaign-score-line,.campaign-rank-line{color:#ffffffeb;margin:.35rem 0;font-size:1.05rem;font-weight:700}.campaign-rank-line{color:var(--hat-violet);margin-bottom:1rem}.leaderboard-block{text-align:left;background:#00000047;border:1px solid #56c1fc38;border-radius:12px;margin:.5rem 0 1.1rem;padding:.85rem .95rem}.leaderboard-title{letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;margin-bottom:.55rem;font-size:.82rem;font-weight:800}.leaderboard-list{max-height:220px;margin:0;padding:0;list-style:none;overflow-y:auto}.leaderboard-list li{color:#ffffffe0;border-radius:8px;grid-template-columns:2rem 1fr auto;align-items:center;gap:.5rem;padding:.35rem .4rem;font-size:.95rem;font-weight:700;display:grid}.leaderboard-list li.is-highlight{color:#ffe6a3;background:#ffb2192e}.leaderboard-rank{color:#ffffff80;font-weight:800}.leaderboard-score{font-variant-numeric:tabular-nums}.leaderboard-date{color:#ffffff73;font-size:.78rem;font-weight:600}.leaderboard-empty{text-align:center;color:#ffffff73;justify-content:center;font-weight:600;grid-template-columns:1fr!important}.btn-campaign-menu{width:100%;margin-top:.25rem}@keyframes victory-pop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.hud-row{pointer-events:auto;flex-wrap:wrap;align-items:center;gap:1rem;display:flex}#level-display{color:#ffffffd9;text-shadow:0 0 8px var(--hat-gold);font-size:1.1rem;font-weight:700}.streak-display{letter-spacing:.04em;color:var(--hat-gold);text-shadow:0 0 10px #ffcf4d99;font-size:1.1rem;font-weight:800}#players-display{color:#ffffffad;font-size:.92rem;font-weight:600}.quota-display{letter-spacing:.02em;color:var(--hat-violet);text-shadow:0 0 10px #a37bff8c;pointer-events:none;font-size:1rem;font-weight:800}.btn-menu{color:#fff;cursor:pointer;background:#0f0c19bf;border:1px solid #ffffff40;border-radius:10px;padding:.5rem 1.1rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:border-color .2s,box-shadow .2s,background .2s}.btn-menu:hover{border-color:var(--hat-violet);box-shadow:0 0 14px #56c1fc59}.btn-back-menu{left:50%;bottom:max(1rem, env(safe-area-inset-bottom));pointer-events:auto;background:#0f0c19d1;padding:.55rem 1.4rem;position:absolute;transform:translate(-50%);box-shadow:0 0 14px #00000073}.menu-lang{gap:.4rem;width:100%;display:flex}.menu-lang-pill{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;position:relative}.menu-lang-pill input{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}.menu-lang-pill span{text-align:center;letter-spacing:.08em;color:var(--poster-muted);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;padding:.48rem .4rem;font-size:.82rem;font-weight:800;transition:border-color .18s,box-shadow .18s,background .18s,color .18s;display:block}.menu-lang-pill:hover span{color:var(--poster-ink);border-color:#56c1fc59}#opt-lang-ru:checked+span{background:linear-gradient(125deg, var(--poster-sky-soft) 0%, #56c1fc14 100%);color:#fff;box-shadow:0 0 16px var(--poster-sky-glow);border-color:#56c1fcb3}#opt-lang-en:checked+span{background:linear-gradient(125deg, var(--poster-amber-soft) 0%, #ffb21914 100%);color:#fff;box-shadow:0 0 16px var(--poster-amber-glow);border-color:#ffb219bf}.menu-lang-pill input:focus-visible+span{outline:2px solid var(--poster-sky);outline-offset:2px}.menu-player-quick{pointer-events:auto;flex-direction:row;gap:.4rem;width:100%;display:flex}.btn-player-count{min-width:0;color:var(--poster-muted);cursor:pointer;letter-spacing:.06em;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;flex:1;padding:.48rem .5rem;font-family:inherit;font-size:.88rem;font-weight:800;line-height:1;transition:border-color .18s,box-shadow .18s,background .18s,color .18s}.btn-player-count:hover{color:var(--poster-ink);border-color:#56c1fc59}#btn-players-1.is-selected{background:linear-gradient(125deg, var(--poster-sky-soft) 0%, #56c1fc14 100%);color:#fff;box-shadow:0 0 16px var(--poster-sky-glow);border-color:#56c1fcbf}#btn-players-2.is-selected{background:linear-gradient(125deg, var(--poster-amber-soft) 0%, #ffb21914 100%);color:#fff;box-shadow:0 0 16px var(--poster-amber-glow);border-color:#ffb219c7}.btn-player-count:focus-visible{outline:2px solid var(--poster-sky);outline-offset:2px}.menu-volume-row{margin-bottom:.9rem}.menu-volume-row:last-child{margin-bottom:0}.menu-volume-head{color:var(--poster-muted);justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.35rem;font-size:.8rem;font-weight:700;display:flex}.menu-volume-row:first-of-type .menu-volume-value{color:var(--poster-sky);text-shadow:0 0 10px var(--poster-sky-glow)}.menu-volume-row:last-of-type .menu-volume-value{color:var(--poster-amber);text-shadow:0 0 10px var(--poster-amber-glow)}.menu-volume-value{font-variant-numeric:tabular-nums;font-size:.78rem}.menu-volume-row:first-of-type .menu-volume-slider{accent-color:var(--poster-sky)}.menu-volume-row:last-of-type .menu-volume-slider{accent-color:var(--poster-amber)}.menu-volume-slider{cursor:pointer;border-radius:999px;width:100%;height:.45rem}.btn-fullscreen{text-align:center;flex-direction:column;justify-content:center;position:relative}.btn-fullscreen[hidden]{display:none}.btn-fullscreen:hover{border-color:#ffb21973}.btn-fullscreen.is-active{box-shadow:0 0 16px var(--poster-amber-glow);border-color:#ffb219a6}.btn-fullscreen:focus-visible{outline:2px solid var(--poster-sky);outline-offset:3px}.btn-fullscreen-on,.btn-fullscreen-off{opacity:.95;font-size:1.08rem;line-height:1}.btn-fullscreen.is-active .btn-fullscreen-on,.btn-fullscreen:not(.is-active) .btn-fullscreen-off{display:none}@media (width<=480px){.btn-fullscreen-label{display:none}}.btn-gallery{text-align:center;justify-content:center}.btn-gallery-icon{opacity:.95;font-size:1.08rem;line-height:1}@media (width<=520px){.menu-settings-grid{grid-template-columns:1fr}.menu-action-row{flex-wrap:wrap}.menu-action-play{flex:100%}.btn-menu-action{flex:calc(50% - .3rem);max-width:none}#ui-layer{padding:1rem}#score-display{font-size:2.1rem}}.menu-overlay{--poster-sky:#6cc5f7;--poster-sky-soft:#56c1fc42;--poster-sky-glow:#56c1fc57;--poster-amber:#ffb219;--poster-amber-soft:#ffb2193d;--poster-amber-glow:#ffb21957;--poster-ink:#eaf2fb;--poster-muted:#9db0c8d1;--poster-panel:#131d33f0;--poster-card:linear-gradient(165deg, #1a2844f0 0%, #090f1ceb 100%);padding:max(.75rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));z-index:5;pointer-events:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:radial-gradient(90% 55% at 12% 8%,#56c1fc24,#0000 58%),radial-gradient(85% 50% at 88% 92%,#ffb2191f,#0000 55%),#050912f5;justify-content:center;align-items:flex-start;display:flex;position:absolute;inset:0;overflow:hidden auto}.menu-overlay.is-hidden{display:none}.menu-panel{background:var(--poster-panel);width:100%;max-width:min(640px,94vw);box-shadow:0 0 36px var(--poster-sky-glow), 0 0 48px var(--poster-amber-glow), inset 0 1px 0 #ffffff0d;text-align:center;-webkit-overflow-scrolling:touch;border:1px solid #6cc5f738;border-radius:22px;flex-shrink:0;max-height:min(92vh,92dvh);margin:auto 0;padding:1.75rem 2rem;overflow:hidden auto;transform:translateZ(0)}.menu-poster-wrap{box-shadow:0 0 24px var(--poster-sky-glow), 0 0 32px var(--poster-amber-glow), inset 0 1px 0 #ffffff0f;background:#070510f2;border:1px solid #ffb21959;border-radius:18px;margin:0 auto 1.15rem;line-height:0;overflow:hidden}.menu-poster-img{object-fit:contain;width:100%;height:auto;max-height:min(40vh,320px);display:block}.menu-action-row{align-items:stretch;gap:.55rem;margin-bottom:1.15rem;display:flex}.menu-action-play{flex:auto;width:auto;min-width:0;padding-left:1.25rem;padding-right:1.25rem}.menu-settings-grid{grid-template-columns:1fr 1fr;align-items:start;gap:.75rem;display:grid}.menu-settings-right{flex-direction:column;gap:.55rem;display:flex}.menu-inline-panel{background:var(--poster-card);border:1px solid #56c1fc38;border-radius:16px;padding:.65rem .75rem .75rem;box-shadow:inset 0 1px #ffffff0a,0 0 18px #56c1fc14,0 0 20px #ffb2190f}.menu-inline-panel-title{text-align:center;letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(90deg, var(--poster-sky) 0%, var(--poster-amber) 100%);color:#0000;filter:drop-shadow(0 0 8px #56c1fc4d);-webkit-background-clip:text;background-clip:text;margin-bottom:.48rem;font-size:.65rem;font-weight:800}.btn-menu-action{background:var(--poster-card);min-width:5.5rem;max-width:7.5rem;color:var(--poster-ink);font:inherit;text-align:center;cursor:pointer;border:1px solid #56c1fc52;border-radius:14px;flex-direction:column;flex:0 auto;justify-content:center;align-items:center;gap:.2rem;padding:.55rem .65rem;font-size:.72rem;font-weight:700;line-height:1.2;text-decoration:none;transition:border-color .2s,box-shadow .2s,background .2s;display:inline-flex;box-shadow:inset 0 1px #ffffff0a,0 0 14px #56c1fc1a}.btn-menu-action:hover{box-shadow:0 0 16px var(--poster-sky-glow), 0 0 20px var(--poster-amber-glow);border-color:#ffb21973}.btn-menu-action:focus-visible{outline:2px solid var(--poster-sky);outline-offset:3px}.btn-start{letter-spacing:.06em;color:#0a1120;cursor:pointer;box-shadow:0 0 22px var(--poster-sky-glow), 0 0 28px var(--poster-amber-glow), 0 8px 24px #0006;background:linear-gradient(125deg,#56c1fc 0%,#8fd6ff 38%,#ffb219 100%);border:2px solid #ffb21980;border-radius:999px;padding:.95rem 2.75rem;font-family:inherit;font-size:1.15rem;font-weight:900;transition:transform .14s,box-shadow .14s,filter .14s}.btn-start:hover{filter:brightness(1.06);box-shadow:0 0 32px var(--poster-amber-glow), 0 0 40px var(--poster-sky-glow), 0 12px 28px #00000073;transform:translateY(-2px)scale(1.02)}.btn-start:active{transform:translateY(0)scale(.98)}.menu-options{text-align:left;background:var(--poster-card);border:1px solid #56c1fc38;border-radius:16px;padding:1rem 1.1rem;box-shadow:inset 0 1px #ffffff0a,0 0 20px #56c1fc14,0 0 24px #ffb2190f}.menu-options-title{letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(90deg, var(--poster-sky) 0%, var(--poster-amber) 100%);color:#0000;filter:drop-shadow(0 0 10px #56c1fc59);-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-size:.72rem;font-weight:800}#loading{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;background:#0f0c19f0;border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;align-items:center;gap:1.5rem;width:90%;max-width:min(560px,92vw);padding:2.5rem;font-size:1.5rem;font-weight:700;transition:opacity .5s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 30px #56c1fc52}#loading.visible{opacity:1}#loading-logo{filter:drop-shadow(0 0 18px #56c1fc99);-webkit-user-select:none;user-select:none;font-size:clamp(3rem,14vw,5rem);line-height:1}#progress-container{background:#ffffff1a;border-radius:10px;width:100%;height:10px;overflow:hidden}#progress-bar{background:var(--hat-violet);width:0%;height:100%;box-shadow:0 0 10px var(--hat-violet);transition:width .3s}@keyframes pulse{0%{text-shadow:0 0 5px var(--hat-gold)}50%{text-shadow:0 0 20px var(--hat-gold)}to{text-shadow:0 0 5px var(--hat-gold)}}#loading-text{animation:1.5s infinite pulse}
