.town-bar{background:#ffffff1a;border-radius:4px;height:8px;display:block;position:relative;overflow:hidden}.town-bar-fill{border-radius:inherit;background:linear-gradient(90deg,#4fb48a,#9fdc7a);position:absolute;inset:0 auto 0 0}.town-bar--next{height:5px;margin-top:5px}.town-bar--next .town-bar-fill{background:linear-gradient(90deg, var(--info), #9ad7ff)}.town-bar--chip{height:5px;margin-top:4px}.town-toast{left:50%;top:calc(var(--sa-top) + 84px);z-index:13;border:1px solid color-mix(in srgb, #9fdc7a 55%, var(--line));max-width:calc(100% - 32px);color:var(--text);white-space:nowrap;pointer-events:none;background:#08120ee0;border-radius:999px;align-items:center;gap:8px;padding:8px 14px 8px 10px;font-size:15px;animation:2.4s both town-toast;display:flex;position:absolute;transform:translate(-50%)}.town-toast--landmark{border-color:#9fdc7a;font-size:17px;animation-duration:3.2s}.town-toast-icon{color:#9fdc7a;width:22px;height:22px}.town-toast-percent{color:var(--muted);font-size:13px}@keyframes town-toast{0%{opacity:0;transform:translate(-50%,-10px)scale(.92)}10%{opacity:1;transform:translate(-50%)scale(1.04)}16%{transform:translate(-50%)scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%,-6px)}}@media (prefers-reduced-motion:reduce){.town-toast{animation-name:town-toast-still}@keyframes town-toast-still{0%,to{opacity:0}8%,88%{opacity:1}}}.town-card{border-color:color-mix(in srgb, #9fdc7a 35%, var(--line));flex-direction:column;gap:6px;padding:12px 14px 14px;display:flex}.town-card-head{align-items:center;gap:8px;display:flex}.town-card-icon{color:#9fdc7a;width:22px;height:22px}.town-card-title{letter-spacing:2px;text-transform:uppercase;color:var(--muted);flex:1;font-size:13px}.town-card-percent{color:var(--text);font-size:18px}.town-card p{margin:0;font-size:14px;line-height:1.35}.town-card-built{color:var(--muted)}.town-card-built.is-new{color:var(--text)}.town-card:not(.is-still) .town-card-built.is-new{animation:.5s cubic-bezier(.2,1.6,.4,1) .9s both town-built}@keyframes town-built{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.town-card-earned,.town-card-note{color:var(--muted);font-size:13px!important}.town-card-next{color:var(--muted);font-size:13px}.town-card-next.is-complete{color:#9fdc7a}.town-chip{border:1px solid color-mix(in srgb, #9fdc7a 30%, var(--line));box-sizing:border-box;background:#080e189e;border-radius:14px;align-items:center;gap:10px;width:100%;max-width:340px;margin:0 auto;padding:8px 12px;display:flex}.town-chip-icon{color:#9fdc7a;flex:none;width:24px;height:24px}.town-chip-body{flex:1;min-width:0}.town-chip-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}@font-face{font-family:Russo One;font-style:normal;font-display:swap;font-weight:400;src:url(./russo-one-latin-400-normal-BfOuQF9V.woff2)format("woff2"),url(./russo-one-latin-400-normal-CosRecV9.woff)format("woff")}@font-face{font-family:Bangers;font-style:normal;font-display:swap;font-weight:400;src:url(./bangers-latin-400-normal-DeHY8Ncq.woff2)format("woff2"),url(./bangers-latin-400-normal-BAEm-Pv0.woff)format("woff")}.weapon-composition{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.weapon-group{border:1px solid var(--line);background:#0b1220e8;border-radius:9px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:2px 5px;min-width:0;padding:6px 8px;font-size:12px;display:grid}.weapon-group-icon{object-fit:contain;flex-shrink:0;grid-row:1/span 2;width:30px;height:25px}.weapon-group-copy{align-items:baseline;gap:5px;min-width:0;display:flex}.weapon-group-specialist{color:#fff;white-space:nowrap;line-height:1.1}.weapon-group-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.weapon-group-meta{color:var(--muted);align-items:baseline;gap:5px;font-size:10px;line-height:1.1;display:flex}.weapon-group-level{color:var(--accent);white-space:nowrap;font-size:10px}.weapon-group-count{white-space:nowrap}.weapon-composition--compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:5px;display:grid}.weapon-composition--compact .weapon-group{grid-template-columns:23px minmax(0,1fr);gap:3px;padding:3px 5px}.weapon-composition--compact .weapon-group-icon{width:23px;height:22px}.weapon-composition--compact .weapon-group-level{font-size:9px}.final-composition .section-label{margin-bottom:8px}.intro-armory{max-width:410px}.intro-weapon-pool{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.intro-weapon{flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.intro-weapon img{object-fit:contain;width:56px;height:42px}.intro-pool-hint{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.6}.intro-repair-hint{color:#d6e2ee;justify-content:center;align-items:center;gap:7px;margin:2px 0 0;font-size:12px;line-height:1.35;display:flex}.intro-repair-icon{width:16px;height:16px;color:var(--accent);flex:none}.intro-repair-icon svg{width:100%;height:100%}.armory{box-sizing:border-box;max-width:620px;padding:calc(var(--sa-top) + 12px) 14px calc(var(--sa-bottom) + 10px);pointer-events:auto;touch-action:pan-y;scrollbar-width:thin;flex-direction:column;gap:9px;margin:auto;display:flex;position:absolute;inset:0;overflow-y:auto}.armory-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.armory-heading h1{font-family:var(--font-title);letter-spacing:2px;color:var(--accent);margin:0;font-size:36px;line-height:1}.armory-heading p{color:var(--muted);margin:4px 0 0;font-size:11px}.armory-selectors{grid-template-columns:1fr 1fr;gap:10px;display:grid}.range-field{flex-direction:column;gap:4px;min-width:0;display:flex}.range-field>span{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-size:10px}.range-field select{box-sizing:border-box;width:100%;height:44px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);font-family:var(--font-ui);pointer-events:auto;border-radius:9px;padding:0 8px;font-size:12px}.range-field select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.armory-loadout{align-items:center;gap:8px;display:flex}.armory-loadout>.range-field{flex-shrink:0;width:88px}.armory-hero{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.armory-preview{flex-shrink:0;width:86px;height:83px;position:relative}.armory-soldier{object-fit:contain;width:66px;height:80px}.armory-weapon{object-fit:contain;width:40px;height:32px;position:absolute;bottom:0;right:0}.armory-description{min-width:0}.armory-description h2{margin:0 0 5px;font-size:15px;line-height:1.3}.armory-description p{color:var(--muted);margin:0 0 4px;font-size:11px;line-height:1.4}.armory-description .armory-upgrade-description{color:#c6d4df;margin:5px 0 0;font-size:10px;line-height:1.4}.armory-description small{color:var(--accent);font-size:9px;display:block}.range-options{grid-template-columns:1fr 1.3fr 1fr;gap:8px;display:grid}.range-stage{pointer-events:auto;touch-action:none;border:1px solid #405669;border-radius:12px;flex:1 0 230px;min-height:230px;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #05101b50}.range-drag-hint{color:#a8bdcc;text-align:center;pointer-events:none;font-size:9px;position:absolute;bottom:48px;left:0;right:0}.range-stage-top{text-align:right;text-shadow:0 1px 3px #000;grid-template-columns:auto 1fr;align-items:center;gap:6px;font-size:9px;display:grid;position:absolute;top:9px;left:10px;right:10px}.range-live-label{text-align:left;color:#6bdcad;letter-spacing:1px;font-size:9px}.range-stage progress{appearance:none;background:#080d18;border:0;border-radius:5px;grid-column:1/-1;width:100%;height:5px;overflow:hidden}.range-stage progress::-webkit-progress-bar{background:#080d18}.range-stage progress::-webkit-progress-value{background:#6bdcad}.range-stage progress::-moz-progress-bar{background:#6bdcad}.range-metrics{pointer-events:none;justify-content:space-between;display:flex;position:absolute;bottom:8px;left:10px;right:10px}.range-metrics>div{background:#0b101ada;border-radius:6px;min-width:45px;padding:4px 8px}.range-metrics small{color:var(--muted);margin-bottom:2px;font-size:8px;display:block}.range-metrics strong{font-variant-numeric:tabular-nums;font-size:12px;font-weight:400}.range-squad{min-height:29px}.range-squad .weapon-composition--compact{justify-content:center;margin:0}.range-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.range-actions .btn{letter-spacing:0;border-radius:10px;padding:9px 8px;font-size:13px}.range-actions .btn:first-child{color:var(--accent);border-color:var(--accent)}.range-secondary{grid-template-columns:1fr 1fr 1fr;gap:7px;display:grid}.range-secondary .btn{letter-spacing:0;min-height:44px;padding:5px;font-size:11px}.range-hint{color:var(--muted);text-align:center;margin:0;font-size:10px;line-height:1.5}.armory .btn:disabled{opacity:.45;cursor:default}@media (max-height:750px){.armory{padding-top:calc(var(--sa-top) + 7px);gap:6px}.armory-heading h1{font-size:29px}.armory-preview{width:65px;height:64px}.armory-soldier{width:50px;height:64px}.armory-weapon{width:30px;height:26px}.range-stage{flex-basis:205px;min-height:205px}.range-hint{font-size:9px}}:root{--bg:#0b0f1a;--panel:#131a2b;--panel-2:#1b2438;--line:#2a3550;--text:#e8eef7;--muted:#9fb3c8;--accent:#e9b44c;--good:#009e73;--bad:#d55e00;--info:#56b4e9;--warn:#f0e442;--violet:#cc79a7;--radius:16px;--tap:48px;--font-ui:"Russo One", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-title:"Bangers", "Russo One", system-ui, -apple-system, sans-serif}#ui{font-family:var(--font-ui);color:var(--text);-webkit-font-smoothing:antialiased}.screen{pointer-events:auto;padding:calc(var(--sa-top) + 12px) calc(var(--sa-right) + 16px) calc(var(--sa-bottom) + 12px) calc(var(--sa-left) + 16px);box-sizing:border-box;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;flex-direction:column;display:flex;position:absolute;inset:0;overflow-y:auto}.screen--dim{background:linear-gradient(#0b0f1ad1,#0b0f1af0)}.screen--menu{background:var(--bg);text-align:center;overflow:hidden}.hud{pointer-events:none;position:absolute;inset:0}.clickable{pointer-events:auto}.icon{justify-content:center;align-items:center;display:inline-flex}.icon svg{width:20px;height:20px}.logo svg{width:40px;height:40px;color:var(--menu-accent,var(--accent));filter:drop-shadow(0 2px 6px #0000008c);transition:color .9s}.big-icon svg{width:56px;height:56px;color:var(--accent)}.title{font-family:var(--font-title);letter-spacing:2px;color:#fff;text-shadow:0 3px 0 #0009, 0 0 26px var(--menu-accent-soft,#e9b44c59);margin:0;font-size:58px;line-height:1}.title em{color:var(--menu-accent,var(--accent));font-style:normal;transition:color .9s}.headline{font-family:var(--font-title);letter-spacing:1px;text-shadow:0 3px #000;margin:0;font-size:44px;line-height:1.05}.headline--good{color:var(--accent)}.headline--down{color:var(--info)}.subhead{color:var(--muted);margin:6px 0 0;font-size:16px}.muted{color:var(--muted)}.tiny{color:var(--muted);font-size:13px}.btn{min-height:var(--tap);min-width:var(--tap);border:2px solid var(--line);border-radius:var(--radius);background:var(--panel-2);color:var(--text);font-family:var(--font-ui);letter-spacing:1px;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-size:18px;transition:transform 80ms,filter .12s;display:inline-flex}.btn:active,.btn.is-pressed{filter:brightness(1.15);transform:scale(.96)}.btn--primary{background:linear-gradient(180deg, var(--accent), #c98c22);color:#23180a;border-color:#ffe6a8;width:100%;padding:20px 28px;font-size:26px;box-shadow:0 6px #7d550f,0 12px 24px #00000073}.btn--primary:active{box-shadow:0 3px #7d550f,0 6px 14px #00000073}.btn--ghost{background:0 0}.btn--icon{width:var(--tap);height:var(--tap);background:#0b0f1a9e;border-color:#e8eef747;border-radius:14px;padding:0}.btn--wide{width:100%}.btn svg{flex:none;width:22px;height:22px}.btn-row{gap:10px;width:100%;display:flex}.btn-row .btn{flex:1;padding:12px 10px;font-size:16px}.menu-top,.menu-body,.menu-foot{z-index:1;position:relative}.menu-top{justify-content:center;align-items:center;gap:10px;padding-top:3vh;display:flex}.menu-body{flex-direction:column;align-items:center;gap:clamp(18px,4vh,34px);width:100%;min-height:0;margin:auto 0;display:flex}.menu-sky{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.menu-sky-layer{background-color:var(--bg);animation:26s ease-in-out infinite alternate sky-drift;position:absolute;inset:-12%}.menu-sky-layer--top{opacity:0;transition:opacity .9s}.menu-sky-layer--top.is-on{opacity:1}.menu-sky-layer--top.is-instant{transition:none}.menu-sky-art,.theme-card-art{display:block;position:absolute;inset:0}.menu-sky-art svg,.theme-card-art svg{width:100%;height:100%;display:block}.menu-sky-vignette{background:radial-gradient(120% 82% at 50% 34%,#04070e00 46%,#04070e94 100%),linear-gradient(#04070e61,#04070e00 24%);position:absolute;inset:0}@keyframes sky-drift{0%{transform:translate(-2%,-1.2%)scale(1.04)}to{transform:translate(2%,1.2%)scale(1.1)}}.btn--play{letter-spacing:4px;width:100%;max-width:420px;min-height:80px;color:var(--menu-ink,#23180a);background-color:var(--menu-accent,var(--accent));box-shadow:0 6px 0 var(--menu-accent-deep,#7d550f), 0 14px 28px #00000080;background-image:linear-gradient(#ffffff4d,#0000002e);border-color:#ffffffb3;border-radius:20px;padding:18px 24px;font-size:32px;transition:background-color .9s,box-shadow .9s,color .9s,transform 80ms,filter .12s}.btn--play:active,.btn--play.is-pressed{box-shadow:0 3px 0 var(--menu-accent-deep,#7d550f), 0 7px 16px #00000080}.btn--armory{color:#fff;letter-spacing:1.5px;background:#0609106b;border-color:#ffffff4d;border-radius:14px;width:100%;max-width:420px;min-height:46px;padding:10px 18px;font-size:13px}.theme-picker{flex-direction:column;gap:4px;width:100%;display:flex}.theme-picker .rail-label{color:#fff9;text-shadow:0 1px 3px #0009;margin:0;font-size:11px}.theme-rail{box-sizing:content-box;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;gap:10px;width:100%;margin-inline:-16px;padding:8px 16px 12px;display:flex;overflow:auto hidden}.theme-rail::-webkit-scrollbar{display:none}.theme-card{background:var(--sky-bottom,var(--panel));scroll-snap-align:center;cursor:pointer;touch-action:pan-x;border:0;border-radius:18px;flex:0 0 164px;height:236px;padding:0;transition:transform .16s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 6px 16px #00000073,inset 0 0 0 1px #ffffff29}.theme-card[aria-checked=true]{box-shadow:0 12px 22px #00000080, inset 0 0 0 3px var(--card-accent,var(--accent)), 0 0 0 5px var(--card-ring,#e9b44c52);transform:translateY(-6px)}.theme-card.is-pressed{transform:scale(.97)}.theme-card-scene{background:linear-gradient(180deg, var(--sky-top,#16203a) 0%, var(--sky-bottom,#0b0f1a) 46%);display:block;position:absolute;inset:0}.theme-card--surprise .theme-card-arc{background:var(--card-arc,none);opacity:.85;position:absolute;inset:0 0 61%}.theme-card-emblem{color:#fff;filter:drop-shadow(0 2px 5px #000000bf);display:inline-flex;position:absolute;top:27%;left:50%;transform:translate(-50%,-50%)}.theme-card-emblem svg{width:38px;height:38px}.theme-card-body{text-align:left;background:linear-gradient(#05080e00,#05080ee6 52%);padding:20px 10px 11px;display:block;position:absolute;bottom:0;left:0;right:0}.theme-card-title{font-family:var(--font-title);letter-spacing:.5px;color:#fff;text-shadow:0 2px #0000008c;font-size:20px;line-height:1.05;display:block}.theme-card-tag{-webkit-line-clamp:2;line-clamp:2;color:#fffc;-webkit-box-orient:vertical;margin-top:4px;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.theme-card-check{background:var(--card-accent,var(--accent));color:#0b0f1a;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:opacity .16s,transform .16s;display:inline-flex;position:absolute;top:8px;right:8px;transform:scale(.6)}.theme-card-check svg{width:15px;height:15px}.theme-card[aria-checked=true] .theme-card-check{opacity:1;transform:scale(1)}.howto{border:1px solid var(--line);border-radius:var(--radius);box-sizing:border-box;background:#131a2bb8;gap:10px;width:100%;padding:14px;display:grid}.howto-row{text-align:left;color:var(--text);align-items:center;gap:12px;font-size:16px;display:flex}.howto-row svg{width:26px;height:26px;color:var(--accent);flex:none}.section-label{letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:13px}.menu-foot{color:#ffffff9e;border-top:1px solid #ffffff24;justify-content:space-between;align-items:center;gap:10px;width:100%;padding-top:10px;font-size:12px;display:flex}.menu-foot-meta{letter-spacing:.5px}.menu-foot-actions{gap:8px;display:flex}.stepper{justify-content:space-between;align-items:center;gap:10px;width:100%;font-size:15px;display:flex}.stepper-value{text-align:center;min-width:64px;color:var(--text);font-size:18px}.sheet{z-index:15;background:#04070eb8;justify-content:center;align-items:flex-end;animation:.16s both fade-in;display:flex;position:absolute;inset:0}.sheet-panel{box-sizing:border-box;width:min(460px,100%);max-height:84%;padding:14px 16px calc(var(--sa-bottom) + 18px);border-top:1px solid var(--line);text-align:left;overscroll-behavior:contain;touch-action:pan-y;background:#101828f5;border-radius:22px 22px 0 0;flex-direction:column;gap:14px;animation:.22s both sheet-rise;display:flex;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.sheet-title{font-family:var(--font-title);letter-spacing:1px;margin:0;font-size:30px}@keyframes sheet-rise{0%{opacity:.3;transform:translateY(26px)}}.level-chip{top:calc(var(--sa-top) + 10px);left:calc(var(--sa-left) + 10px);box-sizing:border-box;color:#ffda7a;pointer-events:none;font-variant-numeric:tabular-nums;background:#0d131cd1;border:1px solid #ffd16652;border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;width:clamp(150px,46vw,196px);padding:6px 10px 6px 6px;display:grid;position:absolute;box-shadow:0 4px 14px #00000059}.difficulty-panel~.level-chip{top:calc(var(--sa-top) + 154px)}.level-badge{color:#2a1700;background:linear-gradient(160deg,#ffe08a 0%,#f7b733 55%,#d98a12 100%);border-radius:11px;place-items:center;width:44px;height:44px;line-height:1;display:grid;box-shadow:inset 0 -3px #7842008c,inset 0 2px #ffffff80,0 2px 6px #0006}.level-badge-label{letter-spacing:1.5px;margin-top:3px;font-size:9px}.level-badge-num{font-family:var(--font-title);letter-spacing:.5px;margin-top:-3px;font-size:27px}.level-body{gap:5px;min-width:0;display:grid}.level-row{white-space:nowrap;justify-content:space-between;align-items:baseline;gap:6px;min-width:0;display:flex}.level-gold{align-items:baseline;gap:4px;display:inline-flex}.gold-symbol{font-size:13px}.gold-total{color:#ffe7a3;font-size:18px;line-height:1;display:inline-block}.level-kills{color:#d6dde8;align-items:center;gap:3px;min-width:0;font-size:12px;display:inline-flex}.level-kills-icon svg{color:#b9c3d3;width:13px;height:13px}.level-bar{background:#ffd77624;border-radius:6px;height:9px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #0009}.level-bar-fill{border-radius:inherit;transform-origin:0;background:linear-gradient(#ffffff73,#fff0 55%),linear-gradient(90deg,#f29a17,#ffd166);transition:transform .22s cubic-bezier(.3,1.3,.5,1);position:absolute;inset:0;transform:scaleX(0)}.level-bar-fill.is-instant{transition:none}.level-chip.is-hit{animation:.24s ease-out chip-hit}.gold-total.is-collected{animation:.26s ease-out gold-collect}@keyframes chip-hit{40%{border-color:#ffe08ae6;box-shadow:0 0 0 2px #ffd16659,0 0 16px #ffc44680}}@keyframes gold-collect{45%{color:#fff8dc;transform:scale(1.22)}}.level-up-flash{color:#2a1700;font-family:var(--font-title);letter-spacing:1px;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;background:linear-gradient(100deg,#ffb52e,#ffe48a 50%,#ffb52e);border-radius:999px;padding:2px 10px;font-size:17px;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)scale(.6);box-shadow:0 2px #8a5a00,0 0 14px #ffc446b3}.level-chip.is-leveled{animation:.9s ease-out chip-level}.level-chip.is-leveled .level-up-flash{animation:1.3s cubic-bezier(.2,1.5,.4,1) both level-up-stamp}.level-chip.is-leveled .level-bar-fill{animation:.52s ease-out bar-full}.level-badge.is-bumped{animation:.45s cubic-bezier(.2,1.6,.4,1) bump}@keyframes chip-level{20%{border-color:#fff2c4;box-shadow:0 0 0 3px #ffd1668c,0 0 26px #ffc446cc}}@keyframes level-up-stamp{0%{opacity:0;transform:translate(-50%)scale(.4)}18%{opacity:1;transform:translate(-50%)scale(1.15)}30%,78%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-6px)scale(1)}}@keyframes bar-full{0%,60%{filter:brightness(1.8)}}.level-chip-pop{font-family:var(--font-title);color:#ffe08a;text-shadow:0 2px #000,0 0 10px #ffc446b3;opacity:0;pointer-events:none;font-size:20px;position:absolute;top:-4px;right:8px}.level-chip-pop.is-on{animation:1.1s ease-out both reward-float}@keyframes reward-float{0%{opacity:0;transform:translateY(6px)scale(.6)}20%{opacity:1;transform:translateY(0)scale(1.15)}70%{opacity:1;transform:translateY(-10px)scale(1)}to{opacity:0;transform:translateY(-18px)scale(1)}}@media (max-width:340px){.level-chip{gap:6px;width:148px;padding-right:8px}.level-badge{width:40px;height:40px}.level-badge-num{font-size:24px}.gold-total{font-size:16px}.level-kills{font-size:11px}}@media (prefers-reduced-motion:reduce){.level-chip.is-hit,.level-chip.is-leveled,.gold-total.is-collected,.level-badge.is-bumped,.level-chip.is-leveled .level-bar-fill{animation:none}.level-chip.is-leveled .level-up-flash{animation:1.3s both fade-only;transform:translate(-50%)}.level-chip-pop.is-on{animation:1.1s both fade-only}.level-bar-fill{transition:none}}.difficulty-panel{top:calc(var(--sa-top) + 8px);left:calc(var(--sa-left) + 10px);width:min(310px, calc(100% - var(--sa-left) - var(--sa-right) - 74px));box-sizing:border-box;color:#f2f5fb;font-variant-numeric:tabular-nums;pointer-events:none;background:#0b0f1ad6;border:1px solid #e8eef738;border-radius:13px;padding:9px 11px 7px;font-size:10px;line-height:1.4;transition:border-color .2s,background-color .2s;position:absolute}.difficulty-heading,.difficulty-state{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.difficulty-level{letter-spacing:.35px;font-size:11px}.difficulty-pressure-label{color:#a9b7ca;white-space:nowrap;font-size:9px}.difficulty-pressure{color:#fff;font-size:17px}.difficulty-state{color:#c2cede;flex-wrap:wrap;margin:2px 0 6px}.difficulty-factors{table-layout:fixed;border-collapse:collapse;text-align:left;width:100%}.difficulty-factors th{color:#a9b7ca;font-size:9px;font-weight:400}.difficulty-caption{text-align:left;color:#a9b7ca;letter-spacing:.7px;margin-bottom:2px;font-size:8px}.difficulty-factors td{padding:0 0 4px;font-size:13px}.difficulty-notice{color:#b8c6d8;border-top:1px solid #e8eef721;min-height:14px;padding-top:5px}.difficulty-panel.is-adjusted[data-direction=up]{background:#301e0ee8;border-color:#ffbc6b}.difficulty-panel.is-adjusted[data-direction=down]{background:#0a2a26e8;border-color:#7cdac2}.difficulty-panel.is-adjusted[data-direction=mixed]{border-color:#a8beff}.difficulty-panel.is-adjusted .difficulty-notice{color:#fff}.hud-bottom{bottom:calc(var(--sa-bottom) + 8px);left:calc(var(--sa-left) + 12px);right:calc(var(--sa-right) + 12px);text-shadow:0 1px 3px #000000e6;flex-direction:column;gap:6px;max-width:460px;margin-inline:auto;display:flex;position:absolute}.hud-utility-row{pointer-events:none;grid-template-columns:minmax(118px,.42fr) minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.ram-status{pointer-events:none;min-width:0;position:relative}.ram-readout{box-sizing:border-box;background:#0b0f1a73;border:1px solid #e8eef729;border-radius:9px;grid-template-columns:14px auto minmax(0,1fr);align-items:center;gap:2px 3px;min-width:0;padding:4px 5px 5px;display:grid}.ram-icon{width:14px;height:14px;color:var(--accent);grid-row:1/span 2}.ram-icon svg{width:100%;height:100%}.ram-name{color:#dbe5ef;letter-spacing:.5px;text-transform:uppercase;font-size:9px;line-height:11px}.ram-value{color:#fff;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:11px;overflow:hidden}.ram-track{background:#ffffff29;border-radius:2px;grid-column:2/-1;height:3px;overflow:hidden}.ram-fill{border-radius:inherit;background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform .16s ease-out,background-color .16s ease-out;display:block}.ram-status[data-phase=worn] .ram-fill{background-color:#f2c96d}.ram-status[data-phase=worn] .ram-icon{color:#f2c96d}.ram-status[data-phase=critical] .ram-fill{background-color:var(--warn)}.ram-status[data-phase=critical] .ram-icon{color:var(--warn)}.ram-status[data-phase=broken] .ram-readout{border-color:#ff6b6b7a}.ram-status[data-phase=broken] .ram-fill{background-color:var(--bad)}.ram-status[data-phase=broken] .ram-icon{color:var(--bad)}.ram-status[data-phase=broken] .ram-value{color:#ffb0b0;letter-spacing:0;font-size:9px}.ram-repair-announcement{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ram-readout.is-repaired{border-color:color-mix(in srgb, var(--accent) 70%, white);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);animation:1.15s ease-out both ram-repaired}@keyframes ram-repaired{0%,55%{border-color:color-mix(in srgb, var(--accent) 70%, white);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent)}to{box-shadow:none;border-color:#e8eef729}}.hud-pause{z-index:12;top:calc(var(--sa-top) + 8px);right:calc(var(--sa-right) + 10px);width:44px;min-width:44px;height:44px;min-height:44px;box-shadow:none;background:#0b0f1a3d;border:1px solid #ffffff2e;border-radius:14px;padding:0;position:absolute}.hud-pause .icon{filter:drop-shadow(0 1px 2px #000c)}.steering-hint{z-index:3;color:#fff;letter-spacing:.3px;text-align:center;text-shadow:0 1px 3px #000000f2;pointer-events:none;visibility:hidden;opacity:0;justify-items:center;gap:4px;max-width:calc(100% - 48px);font-size:12px;font-weight:700;line-height:1.2;display:grid;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.steering-hint.is-visible{visibility:visible;opacity:1}.steering-hint-copy{white-space:nowrap}.steering-hint-arrow{width:18px;height:18px;color:var(--accent);filter:drop-shadow(0 1px 3px #000000f2)}.steering-hint-arrow svg{width:100%;height:100%}.road-progress{align-items:center;gap:8px;display:flex}.road-progress .wave-bar{flex:1;min-width:0}.wave-bar{background:#0b0f1a3d;border-radius:2px;height:3px;overflow:hidden}.wave-fill{background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform .1s linear}.wave-count{text-align:right;min-width:32px;color:var(--text);text-shadow:0 2px 3px #000c;letter-spacing:1px;font-size:11px;line-height:14px}@keyframes pulse{50%{opacity:.45}}.squad-status{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 8px;display:grid}.squad-chip{box-sizing:border-box;background:#0b0f1a3d;border:1px solid #e8eef71f;border-radius:12px;align-items:center;gap:4px;max-width:100%;padding:7px 8px;display:inline-flex}.squad-strength{justify-items:start;display:grid}.squad-chip svg{width:16px;height:16px;color:var(--accent);flex:none}.squad-count{color:#fff;text-shadow:0 2px 3px #000c;font-size:20px;line-height:1}.squad-strength-label{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;font-size:8px;line-height:1}.squad-weapon{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.squad-weapons{min-width:0;position:relative}.squad-weapons .weapon-composition{gap:4px;margin:0}.squad-weapons .weapon-group{background:#0b0f1a3d;border-color:#e8eef71f;border-radius:10px;grid-template-columns:20px minmax(0,1fr);gap:1px 4px;padding:3px 5px;font-size:12px;line-height:14px;display:grid}.squad-weapons .weapon-group-icon{width:20px;height:24px}.squad-weapons .weapon-group-copy,.squad-weapons .weapon-group-meta{overflow:hidden}.squad-weapons .weapon-group-level{font-size:10px;line-height:11px}.squad-weapons .weapon-composition--has-overflow>.weapon-group:nth-child(n+4){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.weapon-composition-overflow{min-width:0;color:var(--muted);white-space:nowrap;background:#0b0f1a3d;border:1px solid #e8eef71f;border-radius:10px;place-items:center;padding:3px 5px;font-size:10px;line-height:14px;display:grid}@media (max-width:360px){.hud-utility-row{grid-template-columns:minmax(118px,.42fr) minmax(0,1fr);gap:6px}.ram-readout{padding-inline:6px}.ram-name{letter-spacing:.4px}.squad-status{column-gap:6px}.squad-chip{padding-inline:6px}.squad-weapons .weapon-group{grid-template-columns:16px minmax(0,1fr);column-gap:2px;padding-inline:3px;font-size:11px}.squad-weapons .weapon-group-icon{width:16px}}.squad-chip.is-bump{animation:.28s bump}.squad-chip.is-bump-down{animation:.3s bump-down}@keyframes bump{40%{transform:scale(1.16)}}@keyframes bump-down{20%{transform:translate(-4px)}60%{transform:translate(4px)}}.badges{flex-wrap:wrap;grid-area:1/1/auto/-1;gap:6px;display:flex}.badges:empty{display:none}.badge{background:#0b0f1a3d;border:1px solid #e8eef72e;border-radius:12px;align-items:center;gap:4px;padding:4px 6px;font-size:12px;line-height:1;display:inline-flex}.badge svg{width:14px;height:14px}.badge--shield{color:var(--info)}.badge--freeze{color:#8fd3ff}.badge--overdrive{color:var(--warn)}.boss-bar{flex-direction:column;gap:3px;width:100%;display:none}.boss-bar.is-on{display:flex}.boss-name{letter-spacing:1px;text-transform:uppercase;color:#fff;text-shadow:0 2px 3px #000000e6;font-size:11px}.boss-track{background:#0b0f1a3d;border:1px solid #e8eef733;border-radius:4px;width:100%;height:6px;position:relative;overflow:hidden}.boss-ghost,.boss-fill{width:100%;position:absolute;inset:0 auto 0 0}.boss-ghost{background:#f0e4428c;transition:width .55s .3s}.boss-fill{background:linear-gradient(180deg, #ff8a4c, var(--bad));transition:width .12s linear}.boss-phase{background:#0b0f1acc;width:2px;position:absolute;top:0;bottom:0;left:50%}.boss-bar.is-phase .boss-track{border-color:var(--warn);animation:.4s bump}.hud-hurt{pointer-events:none;opacity:0;background:radial-gradient(120% 80% at 50% 100%,#d55e0000 45%,#d55e008c 100%);position:absolute;inset:0}.hud-hurt.is-on{animation:.42s ease-out hurt}@keyframes hurt{20%{opacity:1}to{opacity:0}}.wave-banner{top:26%;left:calc(var(--sa-left) + 14px);right:calc(var(--sa-right) + 14px);text-align:center;color:#fff;pointer-events:none;opacity:0;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;transform:translate(-24px)}.wave-banner-kicker{font-family:var(--font-ui);letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);background:#060910c7;border-radius:999px;padding:3px 11px;font-size:12px;line-height:1.2}.wave-banner-kicker[hidden]{display:none}.wave-banner-title{max-width:100%;font-family:var(--font-title);letter-spacing:1.5px;text-transform:uppercase;text-wrap:balance;overflow-wrap:anywhere;text-shadow:0 3px #000,0 0 20px #000c;font-size:clamp(30px,10.5vw,46px);line-height:1.02}.wave-banner.is-on{animation:banner var(--banner-ms,1.2s) ease both}.wave-banner[data-tone=boss] .wave-banner-kicker{color:#ffe2cf;background:#781608eb}.wave-banner[data-tone=boss] .wave-banner-title{color:#ff7448}.wave-banner[data-tone=boss].is-on{animation-name:banner-boss}.wave-banner[data-tone=elite] .wave-banner-kicker{color:#ffd6f0;background:#4e1e46eb}.wave-banner[data-tone=elite] .wave-banner-title{color:#ffc3e6;text-shadow:0 3px #000,0 0 18px #cc79a7d9}.wave-banner-hint{max-width:100%;font-family:var(--font-ui);letter-spacing:.5px;color:#f1f4ff;background:#06091099;border-radius:999px;padding:2px 10px;font-size:clamp(12px,3.6vw,15px);line-height:1.25}.wave-banner-hint[hidden]{display:none}.wave-banner[data-tone=wave]{top:20%}.wave-banner[data-tone=wave] .wave-banner-title{font-size:clamp(24px,7.8vw,36px)}.wave-banner[data-tone=wave][data-accent=calm] .wave-banner-title{color:#d9f3ff}.wave-banner[data-tone=wave][data-accent=hot] .wave-banner-kicker{color:#ffe1c4;background:#7a2c08e6}.wave-banner[data-tone=wave][data-accent=hot] .wave-banner-title{color:#ffb25e}.wave-banner[data-tone=wave][data-accent=horde] .wave-banner-kicker{color:#ffd9d0;background:#801010f0}.wave-banner[data-tone=wave][data-accent=horde] .wave-banner-title{color:#ff5a3c;text-shadow:0 3px #000,0 0 22px #ff4628bf;font-size:clamp(28px,9vw,42px)}.wave-banner[data-tone=wave][data-accent=horde].is-on{animation-name:banner-boss}@keyframes banner-boss{0%{opacity:0;transform:scale(1.35)}10%{opacity:1;transform:scale(.96)}16%,82%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}@keyframes banner-fade{10%,80%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes banner{12%{opacity:1;transform:translate(0)}74%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(24px)}}.intro{padding:calc(var(--sa-top) + 16px) 24px calc(var(--sa-bottom) + 16px);box-sizing:border-box;text-align:center;pointer-events:auto;background:radial-gradient(90% 55% at 50% 45%,#0b0f1adb,#0b0f1af7);flex-direction:column;justify-content:center;align-items:center;gap:10px;animation:.18s both fade-in;display:flex;position:absolute;inset:0}.intro.is-leaving{animation:.22s both fade-out}.intro-theme{font-family:var(--font-title);color:var(--accent);text-shadow:0 3px #000;margin:0;font-size:52px;line-height:1}.intro-scenario{color:#fff;margin:0;font-size:22px}.intro-level{color:var(--muted);margin:0;font-size:17px}.intro-squad{max-width:260px;color:var(--accent);flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;margin-top:6px;display:flex}.intro-squad svg{width:16px;height:16px}.intro-hint{letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:18px;font-size:15px;animation:1.4s ease-in-out infinite pulse}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.screen--end{overflow:hidden}.end-results{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;flex:1;width:100%;min-height:0;overflow-y:auto}.end-actions{border-top:1px solid var(--line);flex:none;gap:10px;width:100%;padding-top:10px;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);box-sizing:border-box;background:#131a2bdb;width:100%;max-width:420px;margin:0 auto;padding:16px}.end-body{flex-direction:column;align-items:center;gap:14px;width:100%;margin:0;padding:12px 0;display:flex}.stats{grid-template-columns:1fr auto;gap:10px 12px;width:100%;display:grid}.stat-label{color:var(--muted);align-items:center;gap:8px;font-size:15px;display:flex}.stat-label svg{width:18px;height:18px;color:var(--accent)}.stat-value{color:#fff;text-align:right;font-variant-numeric:tabular-nums;font-size:22px}.seed-row{width:100%;color:var(--muted);justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.seed-value{color:var(--text);letter-spacing:1px;font-size:15px}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{border-radius:2px;width:8px;height:14px;animation:linear forwards fall;position:absolute;top:-24px}@keyframes fall{to{opacity:.1;transform:translateY(110vh)rotate(720deg)}}.overlay{padding:calc(var(--sa-top) + 20px) 24px calc(var(--sa-bottom) + 20px);box-sizing:border-box;text-align:center;pointer-events:auto;z-index:20;background:#060910e0;flex-direction:column;justify-content:center;align-items:center;gap:16px;animation:.15s both fade-in;display:flex;position:absolute;inset:0}.overlay-title{font-family:var(--font-title);letter-spacing:1px;margin:0;font-size:40px}.overlay--rotate{z-index:21}.overlay-actions{flex-direction:column;gap:10px;width:min(320px,100%);display:flex}.overlay-list{text-align:left;color:var(--muted);max-width:340px;font-size:14px;line-height:1.6}.overlay-list b{color:var(--text);font-weight:400}.rotate-icon svg{width:64px;height:64px;color:var(--accent);animation:2s ease-in-out infinite rotate-hint}.stepper .btn-row{flex:none;align-items:center;width:auto}.stepper .btn-row .btn{flex:none;padding:12px 18px;font-size:22px}@keyframes rotate-hint{30%{transform:rotate(-90deg)}70%{transform:rotate(-90deg)}}.toast{left:50%;bottom:calc(var(--sa-bottom) + 24px);border:1px solid var(--line);color:var(--text);pointer-events:none;background:#060910eb;border-radius:20px;padding:10px 16px;font-size:14px;animation:1.8s both toast;position:absolute;transform:translate(-50%)}@keyframes toast{0%{opacity:0;transform:translate(-50%,12px)}15%,75%{opacity:1;transform:translate(-50%)}to{opacity:0}}@media (max-height:700px){.title{font-size:44px}.headline,.intro-theme{font-size:38px}.btn--primary{padding:16px 24px;font-size:22px}.btn--play{min-height:62px;padding:12px 20px;font-size:25px}.theme-card{flex-basis:144px;height:196px}}@media (prefers-reduced-motion:reduce){.intro-hint,.rotate-icon,.confetti i,.menu-sky-layer,.sheet,.sheet-panel{animation:none}.ram-fill{transition:none}.ram-readout.is-repaired{animation:none}.menu-sky-layer--top,.theme-card,.theme-card-check,.btn--play{transition:none}}.wave-mini-markers{pointer-events:none;position:absolute;inset:0}.wave-mini-marker{background:#fffc;border-radius:2px;width:3px;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%)}.wave-mini-marker--passed{background:var(--accent)}.wave-peak-marker{background:#ff9a3c;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000008c}.wave-peak-marker--horde{background:#ff4b32;width:9px;height:9px}.wave-peak-marker--passed{opacity:.4}.hud-callouts{z-index:2;top:calc(var(--sa-top) + 74px);left:calc(var(--sa-left) + 12px);right:calc(var(--sa-right) + 12px);pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute}.difficulty-panel~.hud-callouts{top:calc(var(--sa-top) + 216px)}.hud-callout{letter-spacing:1px;text-transform:uppercase;white-space:nowrap;color:#fff;text-shadow:0 1px 2px #000c;background:#0b0f1adb;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:7px;max-width:100%;padding:6px 14px 6px 9px;font-size:14px;line-height:1.2;animation:.24s cubic-bezier(.2,1.5,.4,1) both callout-in;display:inline-flex;box-shadow:0 4px 14px #00000073}.hud-callout-text{text-overflow:ellipsis;overflow:hidden}.hud-callout .icon svg{width:18px;height:18px}.hud-callout.is-leaving{animation:.18s both callout-out}.hud-callout--warn{color:#fff3e6;background:#801806eb;border-color:#ff8a4c;font-size:15px;animation:.24s cubic-bezier(.2,1.5,.4,1) both callout-in,.32s ease-in-out .24s infinite alternate callout-throb}.hud-callout--warn .icon{color:#ffd166}.hud-callout--reward{color:#ffe7a8;border-color:#ffd166a6}.hud-callout--reward .icon{color:#ffd166}.hud-callout--good{border-color:#3fd9a0b3}.hud-callout--good .icon{color:#3fd9a0}@keyframes callout-in{0%{opacity:0;transform:translateY(-8px)scale(.85)}}@keyframes callout-out{to{opacity:0;transform:translateY(-6px)}}@keyframes callout-throb{to{transform:scale(1.06);box-shadow:0 0 0 3px #ff8a4c59,0 4px 18px #ff501e8c}}.boss-bar.is-charging .boss-name{color:#ffb38a}.boss-bar.is-charging .boss-track{border-color:#ff8a4c;animation:.28s ease-in-out infinite alternate boss-charging}@keyframes boss-charging{to{box-shadow:0 0 0 2px #ff8a4c8c,0 0 12px #ff5a28bf}}.score-card{text-align:center;border-color:color-mix(in srgb, var(--accent) 40%, var(--line));background:radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%), #131a2be6;flex-direction:column;align-items:center;gap:2px;padding:12px 14px 14px;display:flex}.score-stars{justify-content:center;align-items:flex-end;gap:6px;margin-bottom:2px;display:flex}.score-star svg{color:#e8eef729;stroke:#e8eef752;stroke-width:1.2px;width:40px;height:40px}.score-star:nth-child(2) svg{width:50px;height:50px;transform:translateY(-6px)}.score-star.is-earned svg{color:#ffd166;stroke:#fff2c4;filter:drop-shadow(0 2px #8a5a00)drop-shadow(0 0 10px #ffd1668c)}.score-card:not(.is-still) .score-star.is-earned{animation:star-pop .46s cubic-bezier(.2, 1.6, .4, 1) var(--pop-delay,0s) both}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-40deg)}70%{opacity:1;transform:scale(1.25)rotate(6deg)}to{opacity:1;transform:scale(1)rotate(0)}}.score-total{font-family:var(--font-title);letter-spacing:1.5px;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 3px 0 #000, 0 0 18px color-mix(in srgb, var(--accent) 45%, transparent);font-size:48px;line-height:1}.score-label{letter-spacing:3px;text-transform:uppercase;color:var(--muted);font-size:11px}.score-best{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;margin-top:6px;font-size:13px;display:inline-flex}.score-best-stars{gap:1px;display:inline-flex}.score-best-stars svg,.star-rule-stars svg,.theme-card-stars svg{color:#e8eef747;width:13px;height:13px}.score-best-stars .is-earned svg,.star-rule.is-met .star-rule-stars svg,.theme-card-stars .is-earned svg{color:#ffd166}.score-best--new{flex-direction:column;gap:6px}.score-best-badge{color:#2a1700;font-family:var(--font-title);letter-spacing:1.5px;text-transform:uppercase;background:linear-gradient(100deg,#ffb52e 0%,#ffe48a 45%,#ffb52e 55%,#f29a17 100%) 0 0/220% 100%;border:2px solid #fff2c4;border-radius:999px;padding:3px 14px 2px;font-size:24px;box-shadow:0 3px #8a5a00,0 0 18px #ffc4468c}.score-card:not(.is-still) .score-best--new{animation:best-stamp .5s cubic-bezier(.2, 1.6, .4, 1) var(--reveal-delay,0s) both}.score-card:not(.is-still) .score-best-badge{animation:best-shine 1.6s ease-in-out calc(var(--reveal-delay,0s) + .5s) 3}@keyframes best-stamp{0%{opacity:0;transform:scale(2)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(-2deg)}}@keyframes best-shine{0%{background-position:100% 0}to{background-position:-120% 0}}.score-best-detail{color:var(--muted);font-size:12px}.star-rules{border-top:1px solid var(--line);text-align:left;gap:5px;width:100%;margin:10px 0 0;padding:10px 0 0;list-style:none;display:grid}.star-rule{color:var(--muted);grid-template-columns:44px 1fr auto;align-items:center;gap:8px;font-size:13px;display:grid}.star-rule.is-met{color:var(--text)}.star-rule-stars{justify-content:flex-end;gap:1px;display:inline-flex}.star-rule-miss{color:#ffb38a;font-size:11px}.star-rule-check svg{color:#3fd9a0;width:16px;height:16px}.score-breakdown{border-top:1px solid var(--line);text-align:left;width:100%;color:var(--muted);grid-template-columns:1fr auto;gap:3px 10px;margin:10px 0 0;padding-top:9px;font-size:12px;display:grid}.score-breakdown dt{gap:6px;min-width:0;display:flex}.score-breakdown-detail{color:#9fb3c8b3}.score-breakdown dd{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;margin:0}@media (max-height:700px){.end-body{gap:10px;padding:4px 0 10px}.screen--end .headline{font-size:34px}.screen--end .subhead{margin-top:2px;font-size:14px}.score-card{padding:8px 12px 12px}.score-total{font-size:40px}.score-star svg{width:32px;height:32px}.score-star:nth-child(2) svg{width:40px;height:40px}.score-best{margin-top:4px}}.theme-card-best{font-family:var(--font-ui);letter-spacing:.5px;color:#ffffffdb;font-variant-numeric:tabular-nums;background:#05080ea8;border-radius:999px;align-items:center;gap:5px;padding:3px 7px 3px 5px;font-size:10px;line-height:1;display:inline-flex;position:absolute;top:8px;left:8px}.theme-card-stars{gap:0;display:inline-flex}.theme-card-stars svg{width:11px;height:11px}@media (prefers-reduced-motion:reduce){.wave-banner.is-on,.wave-banner[data-tone=boss].is-on,.wave-banner[data-tone=wave][data-accent=horde].is-on{animation-name:banner-fade}.hud-callout,.hud-callout--warn,.hud-callout.is-leaving,.boss-bar.is-charging .boss-track,.score-card .score-star.is-earned,.score-card .score-best--new,.score-card .score-best-badge{animation:none}.score-best--new{transform:rotate(-2deg)}}@keyframes fade-only{0%{opacity:0}10%,80%{opacity:1}to{opacity:0}}.squad-chip{position:relative}.squad-chip.is-reward{animation:.36s ease-out chip-reward}@keyframes chip-reward{40%{border-color:#3fd9a0e6;transform:scale(1.12);box-shadow:0 0 14px #3fd9a08c}}.squad-gain{font-family:var(--font-title);color:#7dffc4;text-shadow:0 2px #000,0 0 10px #3fd9a0b3;white-space:nowrap;opacity:0;pointer-events:none;font-size:22px;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.squad-gain.is-on{animation:1s ease-out both gain-float}@keyframes gain-float{0%{opacity:0;transform:translate(-50%,8px)scale(.6)}20%{opacity:1;transform:translate(-50%,-4px)scale(1.2)}70%{opacity:1;transform:translate(-50%,-14px)scale(1)}to{opacity:0;transform:translate(-50%,-22px)scale(1)}}.squad-weapons .weapon-group{position:relative}.squad-weapons .weapon-group.is-improved{animation:card-improved 1.4s ease-out var(--flash-elapsed,0s) both}.squad-weapons .weapon-group.is-improved--level{--improve:#ffd166}.squad-weapons .weapon-group.is-improved--count,.squad-weapons .weapon-group.is-improved--new{--improve:#3fd9a0}@keyframes card-improved{0%{border-color:var(--improve,#ffd166);box-shadow:0 0 0 2px var(--improve,#ffd166), 0 0 18px var(--improve,#ffd166);background:#28220cd9}60%{border-color:var(--improve,#ffd166);box-shadow:0 0 10px color-mix(in srgb, var(--improve,#ffd166) 60%, transparent)}}.weapon-group-flash{color:#04170f;font-family:var(--font-title);letter-spacing:.5px;white-space:nowrap;pointer-events:none;text-shadow:none;animation:flash-tag 1.4s ease-out var(--flash-elapsed,0s) both;background:#3fd9a0;border-radius:999px;padding:1px 7px;font-size:15px;line-height:1.2;position:absolute;top:-12px;right:-4px;box-shadow:0 2px #00000080}.weapon-group-flash--level{color:#2a1700;background:linear-gradient(100deg,#ffb52e,#ffe48a)}@keyframes flash-tag{0%{opacity:0;transform:translateY(6px)scale(.5)}14%{opacity:1;transform:translateY(0)scale(1.2)}24%,80%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-6px)}}.wave-banner[data-tone=milestone] .wave-banner-kicker{color:#2a1700;background:linear-gradient(100deg,#ffb52e,#ffe48a)}.wave-banner[data-tone=milestone] .wave-banner-title{color:#ffe08a;text-shadow:0 3px #000,0 0 18px #ffc446bf;font-size:clamp(28px,9vw,40px)}.levelup{z-index:11;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;outline:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.levelup[hidden]{display:none}.levelup.is-suspended{visibility:hidden}.levelup-dim{background:radial-gradient(90% 55% at 50% 38%,#ffc4462e,#ffc44600 70%),#060910bd;animation:.2s both fade-in;position:absolute;inset:0}.levelup-panel{width:min(100%,420px);max-height:100%;padding:calc(var(--sa-top) + 58px) calc(var(--sa-right) + 14px) calc(var(--sa-bottom) + 14px) calc(var(--sa-left) + 14px);box-sizing:border-box;overscroll-behavior:contain;flex-direction:column;align-items:center;gap:12px;display:flex;position:relative;overflow-y:auto}.levelup-head{text-align:center;justify-items:center;gap:2px;display:grid;position:relative}.levelup-rays{pointer-events:none;background:repeating-conic-gradient(#ffd16638 0deg 9deg,#ffd16600 9deg 22deg);border-radius:50%;width:260px;height:260px;margin:-130px 0 0 -130px;animation:9s linear infinite rays-spin;position:absolute;top:50%;left:50%;-webkit-mask-image:radial-gradient(circle,#000 18%,#0000 68%);mask-image:radial-gradient(circle,#000 18%,#0000 68%)}.levelup-title{font-family:var(--font-title);letter-spacing:1.5px;text-transform:uppercase;color:#ffe08a;text-shadow:0 4px #6b3d00,0 0 26px #ffc446bf;margin:0;font-size:clamp(40px,13vw,56px);line-height:1;animation:.42s cubic-bezier(.2,1.6,.4,1) both levelup-title-in;position:relative}.levelup-sub{letter-spacing:2.5px;text-transform:uppercase;color:#e8eef7;margin:0;font-size:13px;position:relative}.levelup-cards{gap:10px;width:100%;display:grid}.levelup-card{border:2px solid var(--rarity,#e8eef766);width:100%;min-height:84px;box-shadow:0 6px 0 #00000073, 0 10px 22px #00000073, 0 0 18px var(--rarity-glow,transparent);color:var(--text);font-family:var(--font-ui);text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;animation:card-deal .36s cubic-bezier(.2, 1.4, .4, 1) calc(var(--deal,0) * 70ms) both;background:linear-gradient(#ffffff12,#fff0 45%),linear-gradient(160deg,#1d2740,#111827);border-radius:16px;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;padding:10px 14px 10px 10px;transition:transform 80ms,filter .12s,opacity .2s;display:grid;position:relative}.levelup:not(.is-armed):not(.is-choosing) .levelup-card{filter:saturate(.6)brightness(.85)}.levelup-card.is-pressed{filter:brightness(1.15);transform:scale(.97)}.levelup-card:focus-visible{outline-offset:3px;outline:3px solid #fff}.levelup-card--rare{--rarity:#56b4e9;--rarity-glow:#56b4e98c}.levelup-card--epic{--rarity:#ffd166;--rarity-glow:#ffc446b3;background:linear-gradient(#ffffff14,#fff0 45%),linear-gradient(160deg,#3a2a52,#1a1430 60%,#2a1d10)}.levelup-card-key{background:var(--rarity,#6b7a92);color:#0b0f1a;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;display:grid;position:absolute;top:-8px;left:-6px;box-shadow:0 2px #00000080}.levelup-card-icon{background:radial-gradient(circle at 50% 40%,#ffffff29,#ffffff08 70%);border-radius:12px;place-items:center;width:58px;height:58px;display:grid}.levelup-card-icon img{object-fit:contain;filter:drop-shadow(0 2px 2px #0009);width:44px;height:44px}.levelup-card-icon.is-weapon img{width:52px;height:46px}.levelup-card-copy{gap:2px;min-width:0;display:grid}.levelup-card-kind{letter-spacing:1.6px;text-transform:uppercase;color:var(--kind,#9fb3c8);font-size:10px}.levelup-card--recruit{--kind:#3fd9a0}.levelup-card--train{--kind:#ffd166}.levelup-card--specialist{--kind:#7cc8ff}.levelup-card--stat{--kind:#ffab70}.levelup-card--ammo{--kind:#e7a6d4}.levelup-card--defense{--kind:#7fe3ff}.levelup-card-title{color:#fff;overflow-wrap:anywhere;font-size:18px;line-height:1.15}.levelup-card-detail{color:#c9d6e6;font-size:13px;line-height:1.3}.levelup-hint{color:var(--muted);margin:0;font-size:11px}@media (hover:none){.levelup-hint{display:none}}.levelup.is-choosing .levelup-dim,.levelup.is-closing .levelup-dim{animation:.32s .18s both fade-out}.levelup.is-choosing .levelup-head,.levelup.is-choosing .levelup-hint{animation:.2s both fade-out}.levelup-card.is-chosen{z-index:1;animation:.56s cubic-bezier(.5,0,.6,1) both card-chosen}.levelup-card.is-dismissed{animation:.3s ease-in both card-dismissed}.levelup.is-closing .levelup-panel{animation:.16s both fade-out}.levelup-card:disabled{cursor:default}@keyframes card-deal{0%{opacity:0;transform:translateY(26px)scale(.92)}}@keyframes levelup-title-in{0%{opacity:0;transform:scale(1.6)}}@keyframes rays-spin{to{transform:rotate(360deg)}}@keyframes card-chosen{0%{transform:scale(1)}30%{box-shadow:0 0 0 3px #fff, 0 0 34px var(--rarity-glow,#ffd166cc);filter:brightness(1.25);transform:scale(1.06)}to{opacity:0;transform:translate(-30%,-60vh)scale(.3)}}@keyframes card-dismissed{to{opacity:0;transform:translateY(40px)scale(.94)}}@media (min-width:640px) and (min-height:600px){.levelup-panel{width:min(100%,760px)}.levelup-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.levelup-card{text-align:center;grid-template-columns:1fr;justify-items:center;min-height:200px}}@media (max-height:640px){.levelup-panel{padding-top:calc(var(--sa-top) + 56px);gap:8px}.levelup-title{font-size:38px}.levelup-rays{width:200px;height:200px;margin:-100px 0 0 -100px}.levelup-card{grid-template-columns:48px minmax(0,1fr);gap:10px;min-height:74px;padding:8px 12px 8px 8px}.levelup-card-icon{width:48px;height:48px}.levelup-card-icon img{width:38px;height:38px}.levelup-card-title{font-size:16px}.levelup-card-detail{font-size:12px}}@media (prefers-reduced-motion:reduce){.squad-chip.is-reward,.squad-weapons .weapon-group.is-improved,.levelup-rays,.levelup-title,.levelup-card,.levelup-card.is-chosen,.levelup-card.is-dismissed{animation:none}.squad-gain.is-on,.weapon-group-flash{animation:1.2s both fade-only}.levelup.is-choosing .levelup-panel{animation:.16s both fade-out}.levelup-card{transition:none}}.playtest-panel{display:none}@media (min-width:1100px){:root{--playtest-width:320px}.playtest-panel{z-index:20;box-sizing:border-box;width:320px;padding:28px 22px 20px;padding-top:max(28px, var(--sa-top));padding-bottom:max(20px, var(--sa-bottom));scrollbar-width:thin;overscroll-behavior:contain;touch-action:pan-y;color:#e8eef7;-webkit-font-smoothing:antialiased;background:#101724;border-left:1px solid #2b3649;flex-direction:column;gap:24px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;line-height:1.5;display:flex;position:fixed;inset:0 0 0 auto;overflow-y:auto}}.playtest-panel header,.playtest-panel footer{flex-shrink:0}.playtest-eyebrow{color:#78d6b5;letter-spacing:.18em;font-size:10px;font-weight:750}.playtest-panel h2{letter-spacing:-.6px;margin:5px 0 4px;font-size:22px;font-weight:650}.playtest-saved{color:#91a1b8;font-size:11px}.playtest-saved:before{content:"●";color:#78d6b5;margin-right:6px;font-size:8px}.playtest-panel p{color:#91a1b8;margin:7px 0 0;font-size:11px;line-height:1.5}.playtest-control-label{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;display:flex}.playtest-panel output{color:#89e7c5;font-variant-numeric:tabular-nums;background:#1b302f;border-radius:5px;padding:2px 7px}.playtest-panel input[type=range]{accent-color:#78d6b5;cursor:pointer;touch-action:none;width:100%;height:20px;margin:0;display:block}.playtest-weapons{border-top:1px solid #293345;border-bottom:1px solid #293345;padding:14px 0}.playtest-weapons summary{cursor:pointer;font-weight:600}.playtest-panel table{border-collapse:collapse;width:100%;margin-top:10px;font-size:11px}.playtest-panel th{text-align:left;font-weight:450}.playtest-panel thead th{color:#91a1b8;padding:0 0 5px;font-size:10px}.playtest-panel th:last-child,.playtest-panel td:last-child{text-align:right}.playtest-panel td,.playtest-panel tbody th{padding:3px 0}.playtest-panel input[type=number]{box-sizing:border-box;color:#e8eef7;width:67px;font:inherit;font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text;background:#0b111d;border:1px solid #354157;border-radius:5px;padding:4px 5px}.playtest-effective{color:#91a1b8;font-variant-numeric:tabular-nums}.playtest-panel footer{margin-top:auto}.playtest-panel .playtest-wave-status{margin:0 0 10px}.playtest-panel button{width:100%;min-height:36px;font:inherit;cursor:pointer;border-radius:7px;padding:8px 12px;font-weight:600}.playtest-replay{color:#0d201c;background:#78d6b5;border:1px solid #78d6b5}.playtest-reset{color:#b4c1d5;background:0 0;border:1px solid #354157;margin-top:8px}.playtest-panel button:hover{filter:brightness(1.12)}.playtest-panel :focus-visible{outline-offset:3px;outline:2px solid #a2ffe0}
