@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/path-guard/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2) format("woff2"),url(/play/path-guard/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/path-guard/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2) format("woff2"),url(/play/path-guard/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/path-guard/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2) format("woff2"),url(/play/path-guard/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/path-guard/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(/play/path-guard/assets/nunito-latin-ext-600-normal-BKUpuB78.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/play/path-guard/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/play/path-guard/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/path-guard/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(/play/path-guard/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/path-guard/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(/play/path-guard/assets/nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/path-guard/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(/play/path-guard/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/path-guard/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(/play/path-guard/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/play/path-guard/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/play/path-guard/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--field: #79c267;--field-blotch: #8dcf78;--field-outside: #5fa552;--meadow: var(--field-outside);--path: #e6c88a;--path-edge: #b9955a;--path-edge-width: .12;--spot: #cdbfae;--spot-rim: #9a8b7a;--spot-rim-width: 2px;--tower-archer: #a0623a;--tower-cannon: #5b6472;--tower-mage: #8f5bd6;--tower-frost: #5ac8e6;--enemy-runner: #f06a4a;--enemy-soldier: #d64561;--enemy-brute: #6b4a3a;--enemy-boss: #2b2f3a;--enemy-mark: #ffffff;--enemy-outline-width: 2px;--health-full: #58d26a;--health-empty: #e24c4c;--health-w: .5;--health-h: .08;--slow-tint: .4;--range-line: rgba(255, 255, 255, .35);--range-fill: rgba(255, 255, 255, .1);--shell: #2b2f3a;--shard: #d8f4ff;--panel: #2f3b2a;--panel-glass: rgba(47, 59, 42, .92);--text: #eaf2ff;--text-dim: #b7c4b0;--accent: #f5b942;--accent-ink: #2a1d00;--danger: #e24c4c;--button-line: rgba(255, 255, 255, .14);--panel-raised: #3b4a35;--scrim: rgba(18, 24, 15, .55);--star-off: rgba(255, 255, 255, .22);--switch-off: rgba(255, 255, 255, .18);--radius: 18px;--map-w: 9;--map-h: 16;--hud-h: 56px;--control-min: 48px;--spot-tap: .6;--spot-tap-min: 24px;--column-w: 412px;--sheet-w: 400px;--lost-delay: .5s;--heart-break: .3s;--menu-pop: .15s;--menu-stagger: 30ms;--won-delay: .6s;--overlay-in: .26s;--star-pop: .25s;--star-gap: .2s;--wave-banner: 1.6s;--mark-lift: -6px;font-family:Nunito,system-ui,sans-serif;font-weight:600;color:var(--text);color-scheme:dark;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--meadow);background-color:var(--field-outside);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation}.screen{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.home{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;max-width:var(--column-w);margin:0 auto}.home-mark{width:96px;height:96px}.home-title{margin:0;font-size:40px;font-weight:800}.home-version{position:absolute;right:calc(16px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));margin:0;font-size:12px;color:var(--text-dim)}button{font:inherit;color:inherit}.primary,.overlay-card button,.level-card,.hud-button{min-height:var(--control-min);min-width:var(--control-min);border:1px solid var(--button-line);border-radius:var(--radius);background:var(--panel);cursor:pointer}.overlay-card button.primary,.primary{background:var(--accent);color:var(--accent-ink);font-weight:800}.home-play{min-width:180px;font-size:20px}.levels{display:flex;flex-direction:column;max-width:var(--column-w);margin:0 auto;background:var(--panel)}.levels-header{display:flex;align-items:center;gap:12px;padding:8px 12px}.levels-header h1{margin:0;font-size:24px;font-weight:800}.levels-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;overflow-y:auto}.level-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 8px}.level-number{font-size:28px;font-weight:800;color:var(--accent)}.level-name{color:var(--text-dim)}.battle{position:relative;display:flex;flex-direction:column;max-width:max(var(--column-w),calc((100dvh - var(--hud-h)) * var(--map-w) / var(--map-h)));margin:0 auto;touch-action:none}.hud{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;height:var(--hud-h);padding:0 8px;background:var(--panel-glass)}.hud-group{display:flex;align-items:center;gap:12px}.hud-stat{display:inline-flex;align-items:center;gap:4px;font-size:18px;font-weight:800}.hud-stat.gold{color:var(--accent)}.hud-stat.lives.low,.hud-icon.heart{color:var(--danger)}.hud-icon.coin{width:16px;height:16px;border-radius:50%;background:var(--accent);box-shadow:inset 0 0 0 2px var(--accent-ink)}.hud-wave{font-size:18px;font-weight:800}.hud-button{padding:0 12px;font-weight:800}.pause-glyph{display:inline-block;width:14px;height:16px;border-left:5px solid currentColor;border-right:5px solid currentColor}.battlefield{position:relative;flex:1;min-height:0}.battlefield-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.tower-menu{position:absolute;inset:0;pointer-events:none}.menu-button{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:var(--control-min);height:var(--control-min);padding:0;transform:translate(-50%,-50%);border:2px solid var(--button-line);border-radius:50%;background:var(--panel-glass);pointer-events:auto;cursor:pointer}.menu-button.short{opacity:.55}.menu-button.short .menu-value{color:var(--danger)}.menu-button:disabled{opacity:.55;cursor:default}.menu-button.wiggle{animation:menu-pop var(--menu-pop) both,wiggle .3s ease-in-out}@keyframes wiggle{0%,to{transform:translate(-50%,-50%) rotate(0)}25%{transform:translate(-50%,-50%) rotate(-10deg)}75%{transform:translate(-50%,-50%) rotate(10deg)}}.menu-icon{width:16px;height:16px;border-radius:4px}.menu-icon.tower-archer{background:var(--tower-archer)}.menu-icon.tower-cannon{background:var(--tower-cannon);border-radius:50%}.menu-icon.tower-mage{background:var(--tower-mage);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.menu-icon.tower-frost{background:var(--tower-frost);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.menu-icon.sell{background:var(--accent);border-radius:50%}.menu-value{font-size:12px;font-weight:800;color:var(--accent)}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px}.overlay-card{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(100%,320px);padding:20px;border-radius:var(--radius);background:var(--panel-glass);text-align:center}.overlay-card h2{margin:0 0 4px;font-size:28px;font-weight:800}.overlay-card p{margin:0}.overlay-note{font-size:13px;color:var(--text-dim)}.overlay-stars{font-size:36px}.home-settings{position:absolute;top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));font-size:22px}.home-stars{margin:0;font-size:20px;font-weight:800}.star{color:var(--star-off)}.star.on{color:var(--accent)}.levels-header h1{flex:1}.levels-total{font-weight:800;color:var(--accent)}.level-card .stars{font-size:20px;letter-spacing:2px}.level-card.locked{cursor:default;opacity:.6}.level-card.locked .level-number{color:var(--text-dim)}.lock{position:relative;width:16px;height:13px;margin-top:9px;border-radius:3px;background:var(--text-dim)}.lock:before{content:"";position:absolute;left:3px;bottom:11px;width:6px;height:7px;border:2px solid var(--text-dim);border-bottom:none;border-radius:6px 6px 0 0}.hud-wave{display:inline-flex;align-items:center;gap:6px}.hud-wave-glyph{width:12px;height:14px;background:var(--danger);clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%)}.hud-button.speed{min-width:52px}.hud-button.speed.fast{border-color:var(--accent);color:var(--accent)}.hud-button:disabled{opacity:.5;cursor:default}.menu-icon.upgrade{position:relative;overflow:visible}.menu-icon.upgrade:after{content:"▲";position:absolute;inset:-6px 0 auto;font-size:10px;line-height:1;color:var(--accent);text-align:center}.overlay{background:var(--scrim)}.overlay-sub{color:var(--text-dim)}.overlay-lives .heart{color:var(--danger)}.overlay.lost{animation:fade-in .2s var(--lost-delay) ease-out both}.overlay.lost .overlay-card{animation:slide-up var(--overlay-in) var(--lost-delay) cubic-bezier(.2,.9,.3,1) both}.overlay.won{animation:fade-in .2s var(--won-delay) ease-out both}.overlay.won .overlay-card{animation:slide-up var(--overlay-in) var(--won-delay) cubic-bezier(.2,.9,.3,1) both}.overlay.won .star{display:inline-block;animation:star-pop var(--star-pop) calc(var(--won-delay) + var(--overlay-in) + var(--n) * var(--star-gap)) cubic-bezier(.3,1.6,.5,1) both}.overlay.won .overlay-lives{animation:fade-in .2s calc(var(--won-delay) + var(--overlay-in) + 3 * var(--star-gap)) ease-out both}@keyframes star-pop{0%{opacity:0;transform:scale(.2)}}.sheet{width:calc(100% - 32px);max-width:var(--sheet-w);max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:16px;border:1px solid var(--button-line);border-radius:var(--radius);background:var(--panel);color:var(--text);overflow-y:auto}.sheet[open]{animation:slide-up .26s cubic-bezier(.2,.9,.3,1) both}.sheet::backdrop{background:var(--scrim)}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:var(--control-min)}.sheet h2{margin:0;font-size:22px;font-weight:800}.sheet button{min-height:var(--control-min);border:1px solid var(--button-line);border-radius:var(--radius);background:var(--panel-raised);cursor:pointer}.sheet>button{display:block;width:100%;margin-top:8px}.sheet>button.danger{background:var(--danger);color:var(--text);font-weight:800}.sheet p{margin:8px 0}.sheet-version{font-size:12px;color:var(--text-dim);text-align:center}.languages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.language{display:flex;align-items:center;justify-content:center;gap:8px}.language img{width:28px;height:20px;border-radius:3px;object-fit:cover}.language.chosen{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.setting{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--control-min)}.setting input{appearance:none;position:relative;width:var(--control-min);height:var(--control-min);margin:0;background:none;cursor:pointer}.setting input:before{content:"";position:absolute;inset:13px 0;border-radius:11px;background:var(--switch-off)}.setting input:after{content:"";position:absolute;top:16px;left:4px;width:16px;height:16px;border-radius:50%;background:var(--text-dim);transition:transform .12s ease-out}.setting input:checked:before{background:var(--accent)}.setting input:checked:after{transform:translate(24px);background:var(--accent-ink)}@keyframes slide-up{0%{opacity:0;transform:translateY(40%)}}@keyframes fade-in{0%{opacity:0}}.hud-stat.gold.pop{animation:count-pop .18s ease-out}.hud-wave.pop{animation:count-pop .22s ease-out}.hud-stat.lives.hit{animation:shake var(--heart-break) ease-in-out}.hud-stat.lives.hit .heart{display:inline-block;animation:heart-break var(--heart-break) ease-out}@keyframes count-pop{40%{transform:scale(1.25)}}@keyframes shake{20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}@keyframes heart-break{30%{transform:scale(1.3) rotate(-12deg);opacity:.4}}.wave-banner{position:absolute;top:calc(var(--hud-h) + 16px);left:50%;margin:0;padding:6px 18px;border-radius:var(--radius);background:var(--panel-glass);color:var(--accent);font-size:20px;font-weight:800;white-space:nowrap;pointer-events:none;animation:banner var(--wave-banner) ease-in-out both}@keyframes banner{0%{opacity:0;transform:translate(-50%,-12px)}15%,80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}@keyframes banner-hold{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.menu-button{animation:menu-pop var(--menu-pop) calc(var(--i, 0) * var(--menu-stagger)) cubic-bezier(.3,1.5,.5,1) both}@keyframes menu-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}}.menu-button:active:not(:disabled){transform:translate(-50%,-50%) scale(.92)}button:not(.menu-button){transition:transform 80ms ease-out}button:not(.menu-button):active:not(:disabled){transform:scale(.96)}.home-mark{animation:float 3s ease-in-out infinite}@keyframes float{50%{transform:translateY(var(--mark-lift))}}@media(prefers-reduced-motion:reduce){*,*::backdrop{animation:none!important;transition:none!important}.wave-banner{animation:banner-hold var(--wave-banner) step-end both!important}}
