/* Cinematic campaign, scoped separately from the arena. */
.chapter-mission-summary{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0;color:#b9ce9f;font-size:9px}.chapter-mission-summary>span{display:flex;align-items:center;gap:5px}.chapter-mission-summary .icon{width:14px;height:14px}.chapter-enemies{display:flex;gap:7px;margin:14px -8px 20px}.chapter-enemies>div{display:flex;flex:1;min-width:0;align-items:center;flex-direction:column}.chapter-enemies .sprite{width:108px;height:108px;max-width:100%}.chapter-enemies small{font-size:8px;text-align:center;color:#a6b99f;line-height:1.6;max-width:100px}
.mission-modal{width:820px;background:linear-gradient(145deg,#20352f,#15252c);padding:27px}.mission-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.mission-top .eyebrow{margin:0;font-size:8px}.mission-top .text-btn{font-size:9px;color:#8fa693}.mission-top .icon{width:13px;height:13px}.mission-stages{display:flex;align-items:center;justify-content:center;gap:15px;margin:24px 0;color:#6e867d;font-size:9px;letter-spacing:.03em}.mission-stages>span{display:flex;align-items:center;gap:6px;white-space:nowrap}.mission-stages .icon{width:16px;height:16px}.mission-stages>i{width:35px;height:1px;background:#4b61515e}.mission-stages .active{color:var(--accent)}.mission-stages .done{color:#8fb999}.mission-modal>h2{text-align:center;font-size:29px;padding:0;margin:0 0 22px}.mission-scene{--scene-hue:0deg;--scene-shade:#09282099;position:relative;isolation:isolate;overflow:hidden;border:1px solid #759e4f6b;border-radius:12px;background:#10252b}.mission-scene:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#081a1de8,transparent 75%),linear-gradient(110deg,var(--scene-shade),#22422155),url('../../assets/story-map.webp') center/cover;filter:hue-rotate(var(--scene-hue));z-index:-2}.scene-1{--scene-hue:0deg;--scene-shade:#18251d88}.scene-2{--scene-hue:15deg;--scene-shade:#163b2188}.scene-3{--scene-hue:90deg;--scene-shade:#14344677}.scene-4{--scene-hue:155deg;--scene-shade:#43392477}.scene-5{--scene-hue:50deg;--scene-shade:#28254b77}.scene-6{--scene-hue:115deg;--scene-shade:#153e5877}.mission-travel.scene-1:before,.mission-battle.scene-1:before,.mission-battle.scene-4:before{background-image:linear-gradient(0deg,#081a1de8,transparent 75%),linear-gradient(110deg,var(--scene-shade),#22422155),url('../../assets/hangar.webp')}.scene-grid{position:absolute;left:0;right:0;bottom:-35px;height:130px;background-image:linear-gradient(#beed7933 1px,transparent 1px),linear-gradient(90deg,#beed7922 1px,transparent 1px);background-size:40px 30px;transform:perspective(250px) rotateX(45deg);mask-image:linear-gradient(transparent,#000);z-index:-1;pointer-events:none}.mission-travel{height:270px}.mission-location{position:absolute;top:18px;left:20px;display:flex;flex-direction:column;gap:5px}.mission-location>span{font-size:7px;letter-spacing:.18em;color:#b6cf9d}.mission-location>b{font-size:12px;font-weight:500;color:#edf3d8}.travel-trail{position:absolute;left:16%;right:14%;bottom:58px;height:1px;border-bottom:2px dashed #e1f5a470;transform:rotate(-4deg)}.travel-pilot{position:absolute;left:8%;bottom:23px;animation:mission-traverse 2.4s ease-in-out both;display:flex;flex-direction:column;align-items:center;z-index:2}.travel-sprite{width:185px;height:185px;animation-duration:.8s;filter:drop-shadow(0 12px 13px #0009)}.travel-pilot>span{font-size:8px;color:#d6e5b9;margin-top:-10px;background:#133421cc;border:1px solid #6c964e66;padding:4px 8px;border-radius:4px}.travel-destination{position:absolute;right:16%;bottom:43px;display:flex;flex-direction:column;align-items:center;color:var(--accent);gap:10px;animation:destination-pulse 1.4s ease-in-out infinite}.travel-destination>.icon{width:35px;height:35px;filter:drop-shadow(0 0 12px #d5ee87)}.travel-destination>span{font-size:8px;letter-spacing:.04em}.travel-progress{position:absolute;inset:auto 20px 11px;height:2px;background:#b2d68125}.travel-progress>i{display:block;height:2px;background:var(--accent);animation:mission-travel-progress 2.4s linear both}.mission-particles{position:absolute;inset:0;pointer-events:none}.mission-particles>i{position:absolute;left:calc(9% + var(--i)*10%);top:calc(20% + var(--i)*5%);width:3px;height:3px;border-radius:50%;background:#d9fca5;opacity:.6;box-shadow:0 0 7px #d9fca5;animation:mission-particle-float 3s ease-in-out infinite;animation-delay:calc(var(--i)*-.3s)}.mission-narration{font-size:11px!important;line-height:1.9!important;color:#b8cbb0!important;max-width:660px;margin:19px auto 25px!important;text-align:center}.mission-preview{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:15px 0 22px}.mission-preview>div:first-child{flex:1}.mission-preview small{font-size:7px;letter-spacing:.1em;color:#90a98b}.enemy-preview{display:flex;gap:12px;margin-top:5px}.enemy-preview>div{display:flex;flex-direction:column;align-items:center;max-width:130px;flex:1}.enemy-preview .sprite{width:95px;height:95px;max-width:100%}.enemy-preview span{font-size:8px;color:#a7bda0;text-align:center}.mission-prize-preview{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;max-width:180px;gap:8px;border:1px solid #81a95b58;background:#62853d15;border-radius:9px;padding:18px 14px}.mission-prize-preview strong{font-family:Manrope,sans-serif;font-size:20px;letter-spacing:-.04em;color:#e0eab7}.mission-prize-preview small{flex-basis:100%;text-align:center;font-size:8px;letter-spacing:0;color:#9eae91}
.mission-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.mission-title h2{font-size:25px;padding:0}.mission-title p{font-size:10px;color:#a8bda3;margin-top:5px}.mission-title>span{font-size:8px;letter-spacing:.12em;color:#a8be92;white-space:nowrap}.mission-waves{display:flex;align-items:center;justify-content:center;gap:7px;margin:20px 0}.mission-waves>span{width:25px;height:25px;border:1px solid #5e795357;border-radius:50%;background:#122620;color:#809776;font-size:9px;display:grid;place-items:center}.mission-waves>span.active{color:var(--accent);border-color:#d5ee8788;box-shadow:0 0 14px #bbeb7b15}.mission-waves>span.done{background:#c2de8e;color:#244023}.mission-waves>i{width:30px;height:1px;background:#8da76833}.mission-waves>small{font-size:8px;color:#91aa89;margin-left:10px}.mission-waves .icon{width:13px;height:13px}.mission-battle{height:300px;display:flex;align-items:center;justify-content:space-between;padding:22px 25px 45px}.mission-battle>.combatant{width:41%;position:relative;z-index:3;display:flex;flex-direction:column;align-items:center}.mission-battle .combat-sprite{width:220px;height:220px;max-width:135%}.mission-enemy .sprite{transform:scaleX(-1)}.mission-battle .hp>span{font-size:9px}.mission-battle .hp b{font-size:8px}.mission-battle .hp>div{height:7px}.mission-enemy .hp i{background:#c6a5df}.mission-battle .versus{font-size:17px;color:#d4e4ae44;margin-top:25px}.enemy-label{position:absolute;bottom:0;font-size:6px;letter-spacing:.1em;color:#c7b5cf;padding:3px 6px;border:1px solid #c2a7d844;border-radius:3px;background:#251835cc}.mission-battle .combat-log{z-index:8;bottom:11px;left:15px;right:15px;font-size:10px;min-height:29px}.action-player-attack .mission-player,.action-special .mission-player{animation:mission-lunge .6s ease-in-out both}.action-enemy-attack .mission-enemy{animation:mission-enemy-lunge .6s ease-in-out both}.mission-battle .taking-hit{animation:mission-hit-shake .45s ease-in-out both}.action-player-attack .mission-player .sprite,.action-special .mission-player .sprite,.action-shield .mission-player .sprite,.action-enemy-attack .mission-enemy .sprite{animation-duration:.55s}.energy-projectile{position:absolute;left:27%;top:54%;width:40px;height:12px;border-radius:100%;background:linear-gradient(90deg,transparent,#c7ed83,#f4ffb9);box-shadow:0 0 18px #bfef74,0 0 35px #e4ff7755;animation:mission-projectile .55s ease-in both;z-index:5;pointer-events:none}.energy-projectile.charged{height:26px;width:70px;background:linear-gradient(90deg,transparent,#b3f6a3,#fffac3);box-shadow:0 0 30px #c1ef74,0 0 60px #e4ff7766}.energy-projectile.reverse{left:70%;background:linear-gradient(270deg,transparent,#cbb0ee,#efe4fa);box-shadow:0 0 18px #cbaef4;animation-name:mission-projectile-reverse}.damage-number{position:absolute;top:39%;font-family:Manrope,sans-serif;font-weight:800;font-size:27px;color:#f4f6b7;text-shadow:0 2px 10px #122313;z-index:8;animation:mission-damage-float .7s ease-out both;pointer-events:none}.damage-enemy{right:20%}.damage-player{left:20%;color:#f3b69b}.hit-burst{position:absolute;top:47%;z-index:7;animation:mission-burst .6s ease-out both;color:#fff6bf;pointer-events:none}.hit-burst>.icon{width:47px;height:47px;stroke-width:1.3;filter:drop-shadow(0 0 13px #e3fa85)}.burst-enemy{right:24%}.burst-player{left:23%;color:#dabde5}.shield-field{position:absolute;top:22%;bottom:5%;left:3%;right:3%;border:2px solid #acdf8ecc;border-radius:50%;background:radial-gradient(ellipse,#b2ee7310,#c7f99530);box-shadow:0 0 30px #99e86944;animation:mission-shield .6s ease-in-out both;pointer-events:none}.mission-control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:19px 0}.mission-control-row .combat-energy{margin:0}.auto-toggle{background:#74974112;border:1px solid #6c8c4e66;border-radius:5px;color:#b0c59b;display:flex;align-items:center;gap:6px;padding:8px 10px;font-size:9px}.auto-toggle.on{color:#d1e8a0;border-color:#a0c36b66}.auto-toggle>.icon{width:14px;height:14px}.mission-modal .combat-controls .btn{min-height:43px}.mission-modal .combat-note{font-size:8px!important;line-height:1.7!important;margin-top:15px!important}.wave-cleared{text-align:center;padding:0 30px 10px}.wave-winner{width:220px;height:220px;margin:0 auto}.wave-cleared h2{font-size:30px;padding:0;margin:8px 0 12px;color:#ddecba}.wave-cleared p{font-size:12px;line-height:1.9;color:#adbf9f}.wave-healing{display:flex;align-items:center;justify-content:center;gap:6px;margin:15px 0 25px;font-size:10px;color:#bdd493}.wave-healing .icon{width:16px;height:16px}.next-wave-loading{position:relative;border-radius:6px;border:1px solid #73954f66;padding:12px;overflow:hidden;color:#b9cc9f;font-size:10px}.next-wave-loading i{position:absolute;inset:0;transform-origin:left;background:#abd87420;animation:mission-travel-progress 1.8s linear both}.next-wave-loading span{position:relative;z-index:1}
.mission-reward{position:relative;text-align:center;overflow:hidden;padding:20px 20px 10px}.reward-chest{position:relative;width:110px;height:110px;margin:13px auto 37px;display:grid;place-items:center;border:1px solid #c8e58970;border-radius:24px;background:radial-gradient(circle,#c7e99b33,#7b97381a);box-shadow:0 0 0 12px #d5ee8708,0 0 65px #c6f18725;color:#e6edae;animation:mission-reward-pop .75s cubic-bezier(.16,1,.3,1) both;z-index:2}.reward-chest>.icon{width:58px;height:58px;filter:drop-shadow(0 0 12px #d5ee8766)}.reward-sparkles{position:absolute;left:50%;top:90px;width:1px;height:1px;pointer-events:none;z-index:1}.reward-sparkles>i{position:absolute;left:0;top:0;animation:mission-coin-burst 1.5s ease-out both;animation-delay:calc(var(--i)*.025s)}.reward-sparkles .coin{width:20px;height:20px;font-size:10px;font-style:normal;background:#749344}.mission-reward h2{padding:0;font-size:31px;color:#e4edbe;max-width:560px;margin:auto}.mission-reward.lost h2{color:#e1c3a6}.mission-reward>p{font-size:11px;line-height:1.8;color:#a9be98;margin-top:14px}.mission-result-stats{display:grid;grid-template-columns:repeat(3,1fr);max-width:450px;margin:27px auto;border-top:1px solid #53714655;border-bottom:1px solid #53714655;padding:15px 0}.mission-result-stats>div{border-right:1px solid #53714655}.mission-result-stats>div:last-child{border:0}.mission-result-stats b{font-size:21px;font-family:Manrope,sans-serif;font-weight:650;display:block}.mission-result-stats small{display:block;font-size:8px;color:#90a588;margin-top:4px}.mission-prize{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:9px;margin:24px auto 18px;padding:22px;max-width:450px;border:1px solid #75944f50;border-radius:9px;background:#729a3714}.mission-prize strong{font-family:Manrope,sans-serif;font-weight:750;font-size:26px;color:var(--accent);letter-spacing:-.035em}.mission-prize>.coin{width:30px;height:30px;font-size:16px}.mission-prize>small{flex-basis:100%;font-size:9px;color:#9db08f}.mission-prize.collected{animation:mission-prize-shine 1.5s ease-in-out both}.mission-unlocked{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;color:#bed394;margin:21px 0}.mission-unlocked>.icon{width:15px;height:15px}.mission-result-buttons{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:26px}.mission-result-buttons>.btn{min-width:150px;font-size:11px}
@keyframes mission-traverse{from{transform:translateX(0)}to{transform:translateX(170px)}}@keyframes destination-pulse{0%,100%{opacity:.65;transform:scale(.94)}50%{opacity:1;transform:scale(1.05)}}@keyframes mission-travel-progress{from{width:0}to{width:100%}}@keyframes mission-particle-float{0%,100%{transform:translate(0,0);opacity:.2}50%{transform:translate(5px,-18px);opacity:.85}}@keyframes mission-lunge{0%,100%{transform:translateX(0)}30%{transform:translateX(25px)}55%{transform:translateX(16px)}}@keyframes mission-enemy-lunge{0%,100%{transform:translateX(0)}30%{transform:translateX(-25px)}55%{transform:translateX(-16px)}}@keyframes mission-hit-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}@keyframes mission-projectile{0%{opacity:0;transform:translateX(0) scale(.5)}20%{opacity:1}90%{opacity:1;transform:translateX(250px) scale(1)}100%{opacity:0;transform:translateX(280px) scale(.5)}}@keyframes mission-projectile-reverse{0%{opacity:0;transform:translateX(0) scale(.5)}20%{opacity:1}90%{opacity:1;transform:translateX(-250px) scale(1)}100%{opacity:0;transform:translateX(-280px) scale(.5)}}@keyframes mission-damage-float{0%{opacity:0;transform:translateY(10px) scale(.8)}30%{opacity:1;transform:translateY(-8px) scale(1.15)}100%{opacity:0;transform:translateY(-42px) scale(.9)}}@keyframes mission-burst{0%{opacity:0;transform:scale(.4)}30%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:scale(1.6)}}@keyframes mission-shield{0%{opacity:0;transform:scale(.8)}40%{opacity:1;transform:scale(1)}100%{opacity:.3;transform:scale(1.05)}}@keyframes mission-reward-pop{0%{opacity:0;transform:scale(.4) rotate(-12deg)}60%{opacity:1;transform:scale(1.1) rotate(3deg)}100%{transform:scale(1) rotate(0)}}@keyframes mission-coin-burst{0%{opacity:0;transform:rotate(calc(var(--i)*22.5deg)) translateY(-25px) rotate(calc(var(--i)*-22.5deg)) scale(.5)}25%{opacity:1}100%{opacity:0;transform:rotate(calc(var(--i)*22.5deg)) translateY(-150px) rotate(calc(var(--i)*-22.5deg)) scale(.9)}}@keyframes mission-prize-shine{0%,100%{box-shadow:0 0 0 transparent}40%{box-shadow:0 0 30px #bddd7940}}
@media(max-width:760px){.mission-modal{padding:22px}.mission-title h2{font-size:22px}.mission-title p{font-size:9px}.mission-battle{height:290px;padding:20px 14px 45px}.mission-battle .combat-sprite{width:200px;height:200px;max-width:155%}.mission-battle .hp>span{font-size:8px}.mission-battle .hp b{font-size:7px}.mission-stages{gap:10px;margin:22px 0;font-size:8px}.mission-stages>i{width:22px}.mission-top .eyebrow{font-size:7px}.mission-top .text-btn{font-size:8px}.mission-control-row{flex-wrap:wrap;gap:10px}.auto-toggle{font-size:8px;padding:8px}.mission-control-row .combat-energy{font-size:7px}.mission-control-row .combat-energy>i{width:17px}.mission-reward{padding:15px 0 8px}.mission-reward h2{font-size:27px}.mission-prize strong{font-size:24px}.mission-result-buttons>.btn{min-width:0;flex:1;font-size:10px}.mission-preview{gap:12px}.mission-prize-preview{max-width:135px;padding:13px}.mission-prize-preview strong{font-size:17px}.mission-prize-preview small{font-size:7px}.enemy-preview{gap:3px}.enemy-preview .sprite{width:76px;height:76px}.enemy-preview span{font-size:7px}.mission-travel{height:240px}.travel-sprite{width:155px;height:155px}.travel-pilot{left:1%;bottom:26px}.travel-destination{right:14%;bottom:42px}.chapter-enemies .sprite{width:95px;height:95px}.chapter-enemies small{font-size:7px}.wave-cleared{padding:5px 0}.mission-waves>small{font-size:7px}}
@media(max-width:440px){.mission-modal{padding:21px 16px}.mission-stages{gap:8px;margin:20px 0;font-size:7px}.mission-stages .icon{width:13px;height:13px}.mission-stages>i{width:16px}.mission-top .eyebrow{max-width:74%;font-size:6px;line-height:1.6}.mission-top .text-btn{font-size:7px}.mission-title h2{font-size:21px}.mission-title p{font-size:8px}.mission-title>span{font-size:7px}.mission-waves{gap:5px;margin:17px 0}.mission-waves>span{width:23px;height:23px}.mission-waves>i{width:21px}.mission-waves>small{font-size:6px;margin-left:5px}.mission-battle{height:250px;margin:0 -6px;padding:18px 9px 40px}.mission-battle .combat-sprite{width:155px;height:155px;max-width:160%}.mission-battle>.combatant{width:43%}.mission-battle .hp>span{font-size:6px;gap:2px}.mission-battle .hp b{font-size:6px}.mission-battle .hp>div{height:6px}.mission-battle .versus{font-size:12px}.mission-battle .combat-log{font-size:8px;min-height:26px;left:9px;right:9px;bottom:9px;padding:6px}.damage-number{font-size:23px}.energy-projectile{width:27px;height:9px;animation-name:mission-projectile-mobile}.energy-projectile.reverse{animation-name:mission-projectile-reverse-mobile}.energy-projectile.charged{width:45px;height:19px}.hit-burst>.icon{width:34px;height:34px}.mission-control-row{justify-content:center;margin:15px 0;gap:12px}.mission-control-row .combat-energy{margin-right:auto}.auto-toggle{font-size:7px;padding:7px;gap:4px}.auto-toggle>.icon{width:12px;height:12px}.mission-control-row .combat-energy{gap:5px}.mission-control-row .combat-energy>span{font-size:6px;margin-right:0}.mission-control-row .combat-energy>i{width:13px;height:6px}.mission-modal .combat-controls .btn{min-height:40px;font-size:8px;padding:9px 6px;gap:4px}.mission-modal .combat-controls .icon{width:13px;height:13px}.mission-modal .combat-note{font-size:7px!important}.mission-travel{height:215px}.mission-location{top:14px;left:15px}.mission-location>span{font-size:6px}.mission-location>b{font-size:10px}.travel-sprite{width:135px;height:135px}.travel-pilot{animation-name:mission-traverse-mobile;left:1%;bottom:25px}.travel-destination{right:12%;bottom:38px}.travel-destination>.icon{width:28px;height:28px}.mission-narration{font-size:10px!important;line-height:1.8!important;margin:17px auto!important}.mission-preview{flex-direction:column;align-items:stretch;margin-top:19px}.mission-preview>div:first-child>small{display:block;text-align:center}.enemy-preview{justify-content:center;margin-top:6px;gap:10px}.enemy-preview>div{max-width:90px}.enemy-preview .sprite{width:78px;height:78px}.enemy-preview span{font-size:6px}.mission-prize-preview{max-width:none;padding:12px;gap:7px;justify-content:center}.mission-prize-preview strong{font-size:17px}.mission-prize-preview>.coin{width:21px;height:21px;font-size:11px}.mission-prize-preview small{font-size:7px;flex-basis:auto;margin-left:2px}.wave-winner{width:190px;height:190px}.wave-cleared h2{font-size:27px}.wave-cleared p{font-size:10px}.wave-healing{font-size:9px}.reward-chest{width:90px;height:90px;border-radius:20px;margin:8px auto 32px}.reward-chest>.icon{width:46px;height:46px}.reward-sparkles{top:70px}.mission-reward h2{font-size:25px}.mission-reward>p{font-size:10px}.mission-result-stats{margin:22px auto;padding:13px 0}.mission-result-stats b{font-size:19px}.mission-result-stats small{font-size:7px}.mission-prize{margin:19px auto 16px;padding:18px 12px}.mission-prize strong{font-size:22px}.mission-prize>small{font-size:8px}.mission-unlocked{font-size:9px}.chapter-mission-summary{font-size:8px;gap:7px}.chapter-enemies .sprite{width:80px;height:80px}}
@keyframes mission-projectile-mobile{0%{opacity:0;transform:translateX(0) scale(.5)}20%{opacity:1}90%{opacity:1;transform:translateX(110px)}100%{opacity:0;transform:translateX(125px) scale(.5)}}@keyframes mission-projectile-reverse-mobile{0%{opacity:0;transform:translateX(0) scale(.5)}20%{opacity:1}90%{opacity:1;transform:translateX(-110px)}100%{opacity:0;transform:translateX(-125px) scale(.5)}}@keyframes mission-traverse-mobile{from{transform:translateX(0)}to{transform:translateX(90px)}}
@media(prefers-reduced-motion:reduce){.mission-modal *,.mission-modal *:before,.mission-modal *:after{animation:none!important;transition:none!important}.travel-pilot{transform:translateX(80px)}.energy-projectile,.damage-number,.hit-burst,.reward-sparkles{display:none}.travel-progress>i{width:100%}}
