@font-face{font-family:Outfit;src:url(/fonts/Outfit-Regular.ttf) format("truetype");font-weight:400 500;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Bold.ttf) format("truetype");font-weight:600 800;font-display:swap}:root{font-family:Outfit,PingFang SC,Microsoft YaHei,sans-serif;color:#25332f;background:#e9e4d7;font-synthesis:none;--ink: #25332f;--muted: #77817a;--cream: #f5f1e7;--paper: rgba(250, 248, 240, .92);--line: rgba(37, 51, 47, .14);--coral: #e76f51;--coral-dark: #ca583d;--cyan: #52ddd4;--teal: #267d78;--pink: #ed70a5;--display: "Outfit", "PingFang SC", sans-serif}*{box-sizing:border-box}html,body{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}button{color:inherit}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#game-canvas{position:fixed;top:0;right:0;bottom:0;left:0}#game-canvas canvas{display:block;width:100%;height:100%}.scene-shade{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,#efebdef7,#efebded9 32%,#efebde1a 62%,#efebde0a);transition:opacity .5s ease}body:not([data-state=menu]) .scene-shade{opacity:0}#damage-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:16;pointer-events:none;opacity:0;background:radial-gradient(circle,transparent 45%,rgba(223,65,65,.52))}#damage-flash.flash{animation:damage .38s ease-out}@keyframes damage{0%{opacity:1}to{opacity:0}}.site-header{position:fixed;z-index:40;top:0;left:0;right:0;height:86px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}body:not([data-state=menu]) .site-header{height:68px;border-color:transparent;pointer-events:none}body:not([data-state=menu]) .brand,body:not([data-state=menu]) .header-edition{opacity:0}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-family:var(--display);font-size:13px;font-weight:700;letter-spacing:.09em}.brand-light{font-weight:500;color:var(--muted)}.brand-cubes{position:relative;width:30px;height:28px;transform:rotate(-8deg)}.brand-cubes i{position:absolute;top:0;left:0;width:17px;height:17px;border-radius:3px;background:var(--coral);box-shadow:inset -3px -3px #00000014}.brand-cubes i:last-child{top:11px;left:13px;background:var(--teal)}.header-actions{display:flex;align-items:center;gap:9px;pointer-events:auto}.header-edition{margin-right:18px;color:var(--muted);font-size:10px;letter-spacing:.14em}.icon-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#faf8f0a6;cursor:pointer;transition:background .16s ease,transform .16s ease}.icon-button:hover{background:var(--cream);transform:translateY(-1px)}.icon-button svg{width:17px;height:17px}.sound-off,body.sound-muted .sound-on{display:none}body.sound-muted .sound-off{display:block}body:not([data-state=menu]) .icon-button{background:var(--paper)}.screen{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .3s ease,visibility .3s}body[data-state=menu] #menu-screen,body[data-state=levelup] #upgrade-screen,body[data-state=paused] #pause-screen,body[data-state=gameover] #end-screen,body[data-state=victory] #end-screen{visibility:visible;opacity:1;pointer-events:auto}.menu-screen{padding:110px 6vw 30px;display:flex;flex-direction:column;justify-content:center}.menu-content{width:100%;max-width:1370px;margin:auto;display:grid;grid-template-columns:minmax(460px,1.15fr) minmax(320px,390px);gap:clamp(40px,8vw,130px);align-items:center}.menu-hero{padding-bottom:8px}.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 22px;color:var(--coral-dark);font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.16em}.eyebrow>span{display:inline-block;width:25px;height:2px;background:currentColor}.eyebrow.centered{justify-content:center}.menu-hero h1{margin:0;font-family:var(--display);font-size:clamp(76px,8.2vw,128px);font-weight:700;letter-spacing:-.08em;line-height:.88}.menu-hero h1 em{color:var(--coral);font-style:normal}.menu-lead{margin:28px 0 0;color:#66716b;font-size:16px;line-height:1.85}.start-row{display:flex;align-items:center;gap:24px;margin-top:34px}.primary-button{min-height:58px;padding:0 23px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;border:0;border-radius:5px;background:var(--ink);color:#fffdf5;font-weight:600;font-size:15px;cursor:pointer;box-shadow:0 9px 24px #25332f2e;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.primary-button:hover{transform:translateY(-2px);background:#344740;box-shadow:0 12px 30px #25332f3b}.primary-button:active{transform:translateY(0)}.primary-button svg{width:19px;height:19px}.start-note{color:var(--muted);font-size:11px;line-height:1.75}.best-score{margin-top:26px;color:var(--muted);font-family:var(--display);font-size:10px;letter-spacing:.14em}.best-score strong{margin-left:12px;color:var(--ink);font-size:13px}.mission-card{position:relative;padding:30px;border:1px solid rgba(255,255,255,.65);border-radius:8px;background:#f9f7efc7;box-shadow:0 28px 65px #36413821;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mission-card:before{content:"";position:absolute;top:-1px;left:30px;width:58px;height:3px;background:var(--coral)}.mission-top{display:flex;justify-content:space-between;color:var(--coral-dark);font-family:var(--display);font-size:9px;font-weight:700;letter-spacing:.13em}.mission-number{color:var(--muted)}.mission-card h2{margin:22px 0 14px;font-family:var(--display);font-size:28px;line-height:1.35;letter-spacing:-.04em}.mission-card>p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.mission-rule{height:1px;margin:23px 0;background:var(--line)}.control-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:10px}.control-grid>div{min-height:78px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.control-grid p{margin:10px 0 0;color:var(--muted);font-size:10px}kbd{min-width:21px;height:20px;padding:0 4px;display:inline-grid;place-items:center;border:1px solid #b9bdb4;border-bottom-width:2px;border-radius:3px;background:#fffdf6;font-family:var(--display);font-size:8px;box-shadow:0 1px #fff inset}.key-group{display:flex;flex-direction:column;align-items:center;gap:2px}.key-group>span{display:flex;gap:2px}.wide-key{width:63px;height:25px;margin-top:12px;font-size:7px;letter-spacing:.06em}.auto-icon{position:relative;width:34px;height:34px;margin:4px 0 0 7px;border:1px solid var(--teal);border-radius:50%}.auto-icon:before,.auto-icon:after{content:"";position:absolute;background:var(--teal)}.auto-icon:before{width:44px;height:1px;left:-6px;top:16px}.auto-icon:after{width:1px;height:44px;left:16px;top:-6px}.mission-tip{margin-top:23px;padding:12px;background:#267d7812;color:var(--muted);font-size:10px;line-height:1.5}.mission-tip span{margin-right:8px;color:var(--teal);font-weight:700}.menu-footer{width:100%;max-width:1370px;margin:30px auto 0;display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:.11em}.hud{position:fixed;z-index:12;top:0;right:0;bottom:0;left:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .25s}body[data-state=playing] .hud,body[data-state=paused] .hud,body[data-state=levelup] .hud{visibility:visible;opacity:1}.hud-left{position:absolute;top:28px;left:32px;display:flex;gap:13px;align-items:center}.level-badge{width:56px;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.7);border-radius:6px;background:var(--paper);box-shadow:0 5px 20px #25332f14}.level-badge span{color:var(--muted);font-size:8px;letter-spacing:.1em}.level-badge strong{font-family:var(--display);font-size:23px;line-height:1.05}.vitals{width:210px}.bar-label{display:flex;justify-content:space-between;margin-bottom:6px;color:var(--ink);font-size:9px}.bar-label strong{font-family:var(--display);font-size:10px}.bar{overflow:hidden;background:#25332f24}.bar i{display:block;width:100%;height:100%;transform-origin:left center;transition:transform .16s linear}.health-bar{height:10px;padding:2px;border-radius:3px;background:var(--paper);box-shadow:0 2px 10px #25332f17}.health-bar i{border-radius:1px;background:var(--coral)}.xp-bar{height:3px;margin-top:6px;border-radius:2px;background:#25332f26}.xp-bar i{background:var(--teal)}.hud-center{position:absolute;top:26px;left:50%;display:flex;flex-direction:column;align-items:center;transform:translate(-50%);text-shadow:0 1px 10px var(--cream)}.wave-label{color:var(--coral-dark);font-family:var(--display);font-size:8px;font-weight:700;letter-spacing:.2em}.timer{margin-top:2px;font-family:var(--display);font-size:32px;letter-spacing:.02em;line-height:1.15}.wave-name{color:var(--muted);font-size:9px;letter-spacing:.15em}.hud-right{position:absolute;top:28px;right:150px;display:flex;gap:24px;align-items:center}.score-box,.kills-box{display:flex;flex-direction:column}.score-box span,.kills-box span{color:var(--muted);font-size:8px;letter-spacing:.14em}.score-box strong{font-family:var(--display);font-size:22px;letter-spacing:.04em}.kills-box strong{font-family:var(--display);font-size:20px}.pause-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid var(--line);border-radius:50%;background:var(--paper);cursor:pointer;pointer-events:auto}.pause-button i{width:3px;height:12px;border-radius:1px;background:var(--ink)}.boss-hud{position:absolute;top:108px;left:50%;width:min(460px,45vw);padding:12px 16px;border-radius:4px;background:#281c2adb;color:#fff5ed;transform:translate(-50%) translateY(-15px);opacity:0;transition:opacity .3s,transform .3s}.boss-hud.visible{opacity:1;transform:translate(-50%) translateY(0)}.boss-hud>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.boss-hud span{color:var(--pink);font-size:8px;letter-spacing:.16em}.boss-hud strong{font-size:11px}.boss-bar{height:5px;background:#ffffff24}.boss-bar i{background:linear-gradient(90deg,var(--pink),#aa76ef)}.hud-bottom-left{position:absolute;bottom:28px;left:32px;display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid rgba(255,255,255,.65);border-radius:4px;background:var(--paper)}.weapon-dot{width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.hud-bottom-left div{display:flex;flex-direction:column}.hud-bottom-left strong{font-size:10px}.hud-bottom-left div span{color:var(--muted);font-size:7px;letter-spacing:.1em}.dash-hud{position:absolute;left:50%;bottom:23px;display:flex;flex-direction:column;align-items:center;gap:5px;transform:translate(-50%)}.dash-ring{--dash: 100%;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--teal) var(--dash),rgba(37,51,47,.16) 0);position:relative}.dash-ring:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--paper)}.dash-ring span{position:relative;z-index:1;font-family:var(--display);font-size:7px;font-weight:700}.dash-hud>span{color:var(--muted);font-size:8px}.hud-help{position:absolute;right:32px;bottom:30px;color:var(--muted);font-size:9px}.hud-help span{margin:0 8px}.wave-toast{position:fixed;z-index:18;top:25%;left:50%;display:flex;flex-direction:column;align-items:center;padding:20px 35px;color:var(--ink);text-align:center;text-shadow:0 2px 20px var(--cream);transform:translate(-50%,-12px);opacity:0;pointer-events:none}.wave-toast.show{animation:toast 3.2s ease both}.wave-toast span{color:var(--coral-dark);font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.22em}.wave-toast strong{margin-top:5px;font-family:var(--display);font-size:34px;letter-spacing:-.04em}.wave-toast p{margin:5px 0 0;color:var(--muted);font-size:11px}@keyframes toast{0%{opacity:0;transform:translate(-50%,10px)}15%,70%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-12px)}}.combo-toast{position:fixed;z-index:15;right:35px;top:120px;color:var(--coral-dark);font-family:var(--display);font-size:14px;font-weight:700;opacity:0;transform:translateY(5px);transition:opacity .16s,transform .16s}.combo-toast.visible{opacity:1;transform:translateY(0)}.modal-screen{display:grid;place-items:center;padding:90px 24px 24px;background:#1f28245c;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.modal-panel{width:min(960px,100%);padding:38px;border:1px solid rgba(255,255,255,.65);border-radius:9px;background:#f7f4eaf7;box-shadow:0 35px 100px #17231e3d;text-align:center}.modal-panel h2{margin:0;font-family:var(--display);font-size:34px;letter-spacing:-.04em}.modal-subtitle{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.7}.upgrade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}.upgrade-card{position:relative;min-height:250px;padding:25px 22px 20px;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:6px;background:#fffdf6cc;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.upgrade-card:hover{transform:translateY(-6px);border-color:var(--teal);box-shadow:0 16px 35px #267d781f}.upgrade-card .card-number{position:absolute;top:14px;right:15px;color:#a2aaa4;font-family:var(--display);font-size:10px}.upgrade-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#267d7817;color:var(--teal)}.upgrade-icon svg{width:25px;height:25px}.upgrade-tag{margin-top:20px;color:var(--coral-dark);font-size:9px;font-weight:700;letter-spacing:.15em}.upgrade-card h3{margin:5px 0 8px;font-family:var(--display);font-size:20px}.upgrade-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.7}.upgrade-level{margin-top:auto;padding-top:16px;color:var(--teal);font-size:9px}.keyboard-hint{margin:20px 0 0;color:var(--muted);font-size:9px;letter-spacing:.08em}.compact-panel{width:min(390px,100%);padding:40px}.compact-panel .eyebrow{justify-content:center}.compact-panel h2{font-size:40px}.full-button{width:100%;margin-top:26px}.secondary-button{min-height:50px;border:1px solid var(--line);border-radius:5px;background:transparent;cursor:pointer}.secondary-button:hover{background:#25332f0d}.compact-panel .secondary-button{margin-top:10px}.text-button{margin-top:18px;border:0;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.text-button:hover{color:var(--ink);text-decoration:underline}.end-panel{width:min(470px,100%);padding:30px 40px}.end-emblem{position:relative;width:58px;height:58px;margin:0 auto 15px;border:2px solid var(--teal);border-radius:50%}.end-emblem span{position:absolute;left:16px;top:13px;width:22px;height:12px;border-left:3px solid var(--teal);border-bottom:3px solid var(--teal);transform:rotate(-45deg)}body[data-state=gameover] .end-emblem{border-color:var(--coral)}body[data-state=gameover] .end-emblem span{left:26px;top:12px;width:3px;height:32px;border:0;background:var(--coral);transform:rotate(45deg)}body[data-state=gameover] .end-emblem i{position:absolute;left:26px;top:12px;width:3px;height:32px;background:var(--coral);transform:rotate(-45deg)}.end-score{position:relative;margin-top:22px;display:flex;flex-direction:column}.end-score span{color:var(--muted);font-size:8px;letter-spacing:.18em}.end-score strong{font-family:var(--display);font-size:46px;line-height:1.2}.end-score em{position:absolute;right:28px;top:26px;padding:3px 6px;background:var(--coral);color:#fff;font-size:8px;font-style:normal;transform:rotate(5deg)}.end-score em.hidden{display:none}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:20px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats-grid>div{display:flex;flex-direction:column;border-right:1px solid var(--line)}.stats-grid>div:last-child{border:0}.stats-grid strong{font-family:var(--display);font-size:20px}.stats-grid span{color:var(--muted);font-size:9px}.end-panel .full-button{margin-top:22px}.rotate-notice{display:none}@media(max-width:1100px){.menu-screen{padding-left:4vw;padding-right:4vw}.menu-content{grid-template-columns:minmax(390px,1fr) 330px;gap:35px}.menu-hero h1{font-size:82px}.mission-card{padding:24px}.hud-right{right:125px;gap:15px}}@media(max-width:800px){.site-header{height:70px;padding:0 20px}.header-edition,.brand-light{display:none}.menu-screen{overflow-y:auto;padding:90px 24px 25px;justify-content:flex-start}.menu-content{grid-template-columns:1fr;gap:28px}.menu-hero h1{font-size:72px}.menu-lead{margin-top:20px}.mission-card{max-width:480px}.menu-footer{display:none}.scene-shade{background:#efebdec7}.hud-left{left:16px;top:16px}.vitals{width:135px}.hud-right{right:100px;top:18px}.kills-box{display:none}.hud-center{top:90px}.hud-help,.hud-bottom-left{display:none}.upgrade-grid{grid-template-columns:1fr;max-height:55vh;overflow-y:auto}.upgrade-card{min-height:160px}.upgrade-panel{padding:25px}.rotate-notice{position:fixed;z-index:45;left:50%;bottom:8px;display:block;color:var(--muted);font-size:8px;transform:translate(-50%);white-space:nowrap;pointer-events:none}body:not([data-state=menu]) .rotate-notice{display:none}}@media(max-height:720px)and (min-width:801px){.site-header{height:68px}.menu-screen{padding-top:80px;padding-bottom:15px}.menu-hero h1{font-size:78px}.menu-lead{margin-top:18px;font-size:13px}.start-row{margin-top:20px}.best-score{margin-top:15px}.mission-card{padding:23px}.mission-card h2{margin-top:16px;font-size:24px}.mission-rule{margin:16px 0}.menu-footer{margin-top:12px}.modal-panel{padding-top:25px;padding-bottom:25px}.upgrade-card{min-height:215px}.upgrade-grid{margin-top:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
