/* End-of-round sequence: charge → Earth → flight → hit → awards → report. */
.space-console{padding:10px 22px 18px;color:#f5f8ff;text-align:center;background:radial-gradient(ellipse at 50% 40%,#18344888,transparent 65%)}
.space-console .eyebrow{color:#9accc9;font-size:9px}.space-console h1{color:#fff;font-size:21px}
.charge-orb{--drag-y:0px;position:relative;width:208px;height:208px;margin:16px auto 12px;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;outline-offset:6px;transform:translateY(var(--drag-y));transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.charge-orb.dragging{cursor:grabbing;transition:none}.charge-orb svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}
.charge-orb circle{fill:none;stroke-width:3}.charge-track{stroke:#b3e5e52b}.charge-orb .charge-fill{stroke:#c7ffb0;stroke-width:5;stroke-linecap:round;filter:drop-shadow(0 0 7px #a0ffdf)}
.orb-body{position:absolute;inset:23px;border-radius:50%;background:radial-gradient(circle at 36% 28%,#f4ffeeb3,#6affc15c 32%,#1e94a062 59%,#14295055 75%);box-shadow:inset 0 0 22px #b7ffe685,0 0 32px #4cfac433,0 0 80px #27a29e22;animation:orb-breathe 3s ease-in-out infinite}
.orb-body:after{content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid #caffdf5c;box-shadow:inset -9px -8px 20px #6ce6fc33;animation:orb-sheen 7s ease-in-out infinite}
.orb-number{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none}.orb-number b{font-size:76px;font-weight:500;line-height:1;letter-spacing:-4px;color:#f4fff5;text-shadow:0 0 25px #9affb775;font-variant-numeric:tabular-nums}.orb-number small{font-size:10px;color:#c1d9dd;letter-spacing:.14em;margin-top:12px}.orb-specks{position:absolute;inset:0;color:#d3ffbe;font-size:18px;letter-spacing:30px;transform:rotate(-25deg);pointer-events:none;animation:orb-breathe 4s ease-in-out infinite}
.swipe-hint{font-size:11px;color:#c7dedb;letter-spacing:.03em;margin:8px 0 16px}.space-console .primary{max-width:330px;margin:0 auto 8px;background:#d9ff9e;color:#133433;border-color:#7f9a59;font-size:16px}.space-console .primary:disabled{opacity:.35;cursor:wait}.space-console .fire-explain{color:#7f94ad;font-size:9px;margin:10px 0 0}
.ready-battle .enemy-stage{height:150px}.ready-battle .enemy-sprite{width:98px;height:98px;top:44px}.ready-battle .target-ring{height:96px;width:96px;top:46px}.ready-battle .target-coordinate{top:87px}
.cinema-v2{height:min(730px,calc(100dvh - 100px));min-height:440px;border-radius:22px;overflow:hidden;background:#030b19;color:#f0f8ff}
.space-backdrop{position:absolute;inset:0;background:linear-gradient(180deg,#02081700 0%,#02081700 58%,#020817aa 100%),url('assets/optimized/earth-orbit.webp') center center / cover no-repeat;animation:planet-approach 7.9s cubic-bezier(.2,.55,.2,1) both;will-change:transform}
.cinema-enemy{position:absolute;inset:0 0 auto;z-index:4}.cinema-v2 .enemy-stage{height:180px;background:none}.cinema-v2 .enemy-stage:before{display:none}.cinema-v2 .enemy-status{padding-top:16px;font-size:10px}.cinema-v2 .enemy-sprite{height:95px;width:95px;top:64px;filter:drop-shadow(0 0 25px #762a76aa)}.cinema-v2 .target-ring{width:98px;height:98px;top:64px}.cinema-v2 .target-coordinate{top:100px}.cinema-v2 .enemy-hp{background:#ffffff24}
.energy-scene{position:absolute;inset:0;pointer-events:none;z-index:5}.light-routes{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.light-routes path{fill:none;stroke:#d8ffb3;stroke-width:1.3;stroke-dasharray:20 180;filter:drop-shadow(0 0 4px #82ffc3);opacity:0}.phase-gather .light-routes path{animation:light-stream 1.4s calc(var(--i)*.10s) ease-in infinite}
.world-orb{position:absolute;left:50%;top:48%;width:96px;height:96px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 45% 44%,#fff 0%,#f2ffd9 14%,#b9ffd0 28%,#77e9e787 48%,#54cfff00 72%);filter:drop-shadow(0 0 15px #9afbd9);box-shadow:0 0 70px #94ffe62e}
.world-orb i{position:absolute;inset:8px;border-radius:50%;border:1px solid #ccffdc8c;transform:rotateX(60deg) rotate(-20deg)}.world-orb i:nth-child(2){transform:rotateY(60deg) rotate(20deg)}.world-orb span{position:absolute;inset:-28px;border-radius:50%;background:conic-gradient(from 0deg,transparent,#c7ffce44,transparent 35%,#6ce8ff44,transparent 70%);mask-image:radial-gradient(transparent 34%,#000 55%,transparent 72%);animation:reactor-spin 4s linear infinite}
.phase-gather .world-orb{animation:world-charge 3.2s cubic-bezier(.25,.7,.4,1) both}.phase-launch .world-orb{animation:orb-flight 1.8s cubic-bezier(.45,0,.7,1) both}.phase-hit .world-orb,.phase-settle .world-orb{opacity:0}
.orb-trail{position:absolute;left:50%;top:18%;height:30%;width:13px;transform:translateX(-50%);background:linear-gradient(to top,transparent,#9fffdd7a,#fff);filter:blur(4px);opacity:0;transform-origin:bottom}.phase-launch .orb-trail{animation:trail-flight 1.8s ease-in both}
.impact-halo{position:absolute;left:50%;top:110px;width:80px;height:80px;border-radius:50%;opacity:0;background:radial-gradient(circle,#fff 0%,#eeffabcc 10%,#6deaff70 30%,transparent 68%);border:1px solid #e8ffbe88;transform:translate(-50%,-50%)}.phase-hit .impact-halo{animation:cinema-impact 1.1s ease-out both}.phase-hit .enemy-sprite{animation:enemy-hit .85s ease-out both}.phase-hit .enemy-hp>span{animation:hp-drain .9s ease-out both}
.impact-dust{position:absolute;left:50%;top:110px}.impact-dust i{position:absolute;width:3px;height:17px;border-radius:100%;background:#e4ffb2;opacity:0;--angle:calc(var(--i)*20deg)}.phase-hit .impact-dust i{animation:impact-spark .9s ease-out both}.cinema-v2 .damage-pop{font-size:56px;top:98px}.phase-settle .damage-pop{display:none}
.cinema-copy{position:absolute;z-index:8;left:15px;right:15px;bottom:26px;text-align:center;text-shadow:0 2px 15px #000}.cinema-copy h1{font-size:22px;color:#f7ffff;letter-spacing:-.03em}.cinema-copy .eyebrow{font-size:8px;color:#a7cbd0;margin-bottom:10px}.gather-equation{display:flex;justify-content:center;align-items:center;gap:24px;margin:14px 0 4px}.gather-equation span{font-size:9px;color:#c3d8e2}.gather-equation b{font-size:28px;font-weight:500;display:block;color:#fff}.gather-equation i{font-style:normal;color:#a3d6b8}.gather-total{display:block;font-size:56px;line-height:1.1;font-weight:500;color:#dcffb6;letter-spacing:-2px;font-variant-numeric:tabular-nums}.cinema-small{color:#adc7d4;font-size:9px;margin-top:9px}.phase-launch .cinema-copy{bottom:40px}.hp-change{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:20px}.hp-change span{font-size:10px;color:#adc7d4}.hp-change b{font-size:26px;color:#bed3dd;font-weight:400}.hp-change i{font-style:normal;color:#b7d4d7}.hp-change strong{font-size:46px;font-weight:500;color:#d7ffb2}.phase-hit .cinema-copy{animation:caption-in .7s ease-out both}
.cinema-v2.support-only .world-orb{filter:drop-shadow(0 0 15px #acb6ff)}.cinema-v2.support-only .impact-dust,.cinema-v2.support-only .impact-halo{display:none}.cinema-v2.support-only .damage-pop{font-size:21px;top:160px}
.awards-screen{padding:26px 12px 8px;min-height:calc(100dvh - 100px);text-align:center;background:radial-gradient(ellipse at 50% 22%,#654b9838,transparent 55%);animation:caption-in .65s ease-out both}.awards-screen>.eyebrow,.final-results>.eyebrow{font-size:8px;color:#a8bcd8;margin-bottom:12px}.awards-screen h1,.final-results h1{font-size:24px;color:#f4f7ff;letter-spacing:-.04em}.awards-sub{font-size:11px;color:#a7b6cc;margin-top:10px}
.earned-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 12px;margin:24px 0}.earned-badge{width:calc(50% - 10px);max-width:200px;display:flex;flex-direction:column;align-items:center}.earned-badge strong{font-size:12px;color:#f1f4ff;margin-top:12px}.earned-badge small{font-size:9px;color:#a7b8cf;margin-top:6px}.award-reveal .earned-badge{animation:medal-arrive .8s var(--delay) cubic-bezier(.15,.8,.24,1.1) both}
.medal{width:78px;height:78px;border-radius:50%;position:relative;display:grid;place-items:center;color:#ffedab;background:radial-gradient(circle at 32% 23%,#9a7a40,#5c4527 54%,#221b17);border:2px solid #e1c77e;box-shadow:0 0 0 5px #dcc48315,0 9px 25px #0003,inset 0 0 0 5px #241c1655}.medal:after{content:'';position:absolute;inset:8px;border:1px dashed #e1c77e66;border-radius:50%}.medal span{font-size:34px;line-height:1;text-shadow:0 2px 5px #30200e}.medal-perfect{background:radial-gradient(circle at 32% 23%,#d4b85e,#8e621e 54%,#3a2813);color:#fff6b6;border-color:#ffe596}.medal-early{background:radial-gradient(circle at 32% 23%,#ad784d,#68412f 54%,#282034);color:#ffd8ac}.medal-brave{background:radial-gradient(circle at 32% 23%,#519b91,#24565e 54%,#17233b);color:#c4ffeb;border-color:#9be2cd}.medal-streak5{background:radial-gradient(circle at 32% 23%,#9b7ac2,#583770 54%,#29203a);color:#efc8ff;border-color:#d3a7ee}.medal-return{background:radial-gradient(circle at 32% 23%,#5e8ca5,#30536d 54%,#1b2435);color:#c8eaff;border-color:#92c6e9}
.badge-collection{border-top:1px solid #ffffff14;padding-top:20px;margin-top:24px;text-align:left}.collection-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.collection-heading h2{font-size:13px;color:#d7e1f3}.collection-heading>span{font-size:11px;color:#96a9c6}.collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 7px}.collection-tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.collection-tile .medal{width:46px;height:46px}.collection-tile .medal span{font-size:21px}.collection-tile .medal:after{inset:5px}.collection-tile b{font-size:9px;color:#d8e4f5}.collection-tile small{font-size:8px;color:#91a5bf;line-height:1.5}.locked .medal{filter:grayscale(1);opacity:.28;box-shadow:none}.locked b{color:#8394ae}.awards-next{position:sticky;bottom:0;padding:18px 0 10px;background:linear-gradient(transparent,#0c122bf5 25%);margin-top:18px}.awards-next .primary{font-size:14px;margin:0;min-height:52px}.awards-next .arrow{font-size:20px}
.final-results{padding:24px 12px 10px;text-align:center;animation:caption-in .5s ease-out both}.final-results h1{font-size:22px}.final-results h2{font-size:14px;margin-top:26px;color:#d7e1f3}.personal-totals{display:grid;grid-template-columns:1fr 1fr;margin:24px 0;border:1px solid #ffffff20;border-radius:18px;background:#ffffff05;padding:19px 0}.personal-totals>div+div{border-left:1px solid #ffffff20}.personal-totals span{display:block;font-size:10px;color:#adbed5}.personal-totals b{font-size:42px;line-height:1.4;color:#d4ffac;font-weight:500}.personal-totals small{font-size:10px;letter-spacing:0;color:#a2b8cf}.national-summary{background:#ffffff05;border:1px solid #ffffff12;border-radius:18px;padding:22px 18px}.national-summary>.eyebrow{color:#b6c6d9;font-size:10px}.national-summary>strong{font-size:58px;font-weight:500;display:block;color:#f0f9ff;line-height:1.3;letter-spacing:-2px}.national-summary>strong small{font-size:9px;letter-spacing:.1em;color:#9fb4ce}.national-summary>p{font-size:10px;color:#a8bfd3}.summary-map{height:230px;margin:5px auto;width:100%;max-width:230px}.summary-map svg{height:100%;width:100%}.summary-regions{margin-top:20px;text-align:left}.summary-regions .region-row{font-size:10px;grid-template-columns:70px 1fr 28px}.summary-regions .bar-track{background:#fff1}.summary-regions .bar-track span{background:linear-gradient(90deg,#469a93,#b4df9d)}.final-results .tiny{color:#8c9eb7}.final-results .text-button{color:#c1d5ef;font-size:11px;margin-top:14px}
@keyframes orb-breathe{0%,100%{transform:translateY(3px) scale(.97)}50%{transform:translateY(-4px) scale(1.035)}}
@keyframes orb-sheen{50%{transform:rotate(160deg);opacity:.5}}
@keyframes planet-approach{from{transform:scale(1.06) translateY(12px)}45%{transform:scale(1.12) translateY(0)}to{transform:scale(1.03) translateY(8px)}}
@keyframes light-stream{0%{stroke-dashoffset:180;opacity:0}25%{opacity:.8}80%{opacity:1}100%{stroke-dashoffset:-80;opacity:0}}
@keyframes world-charge{0%{transform:translate(-50%,-50%) scale(.12);opacity:.1}30%{opacity:.8}75%{transform:translate(-50%,-50%) scale(.85)}100%{transform:translate(-50%,-50%) scale(1.35);opacity:1}}
@keyframes orb-flight{0%{top:48%;transform:translate(-50%,-50%) scale(1.35)}18%{top:52%;transform:translate(-50%,-50%) scale(1.6)}75%{top:24%;transform:translate(-50%,-50%) scale(.65)}100%{top:110px;transform:translate(-50%,-50%) scale(.24)}}
@keyframes trail-flight{0%,20%{opacity:0;transform:translateX(-50%) scaleY(.1)}60%{opacity:.8;transform:translateX(-50%) scaleY(1)}100%{opacity:0;transform:translateX(-50%) scaleY(.1)}}
@keyframes cinema-impact{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}12%{opacity:1;transform:translate(-50%,-50%) scale(2)}100%{opacity:0;transform:translate(-50%,-50%) scale(7)}}
@keyframes hp-drain{from{width:var(--hp-before)}}
@keyframes caption-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes medal-arrive{0%{opacity:0;transform:translateY(30px) scale(.65);filter:brightness(1.8)}65%{opacity:1;transform:translateY(-5px) scale(1.04)}100%{opacity:1;transform:translateY(0) scale(1);filter:brightness(1)}}
@media(max-height:680px) and (max-width:700px){.ready-battle .enemy-stage{height:104px}.ready-battle .enemy-sprite{width:65px;height:65px;top:38px}.ready-battle .target-ring{width:64px;height:64px;top:38px}.space-console{padding:8px 14px}.space-console h1{font-size:18px}.charge-orb{width:172px;height:172px;margin:10px auto}.orb-number b{font-size:62px}.swipe-hint{font-size:9px;margin:5px 0 10px}.space-console .primary{min-height:48px;padding:9px 15px;font-size:14px}.space-console .fire-explain{margin:6px 0;font-size:8px}.cinema-v2{min-height:430px}.cinema-copy{bottom:17px}.cinema-copy h1{font-size:18px}.gather-equation{margin:10px 0 2px}.gather-total{font-size:44px}.cinema-v2 .enemy-sprite{height:75px;width:75px;top:64px}.cinema-v2 .target-ring{width:75px;height:75px}.world-orb{width:72px;height:72px}.awards-screen{padding-top:16px}.awards-screen h1{font-size:22px}.earned-badges{margin:20px 0;gap:16px 10px}.earned-badge .medal{width:64px;height:64px}.earned-badge strong{font-size:10px}.earned-badge small{font-size:8px}.collection-grid{gap:14px 5px}.collection-tile .medal{width:37px;height:37px}.collection-tile b{font-size:8px}.collection-tile small{font-size:7px}.collection-heading{margin-bottom:14px}.badge-collection{padding-top:16px}.awards-next{padding-top:12px;margin-top:10px}}
body.motion-reduced .cinema-v2 *,body.motion-reduced .ready-battle *,body.motion-reduced .awards-screen *{animation:none!important;transition:none!important}body.motion-reduced .light-routes path{opacity:.4}body.motion-reduced .world-orb{transform:translate(-50%,-50%) scale(1)}body.motion-reduced .phase-launch .world-orb{top:110px;transform:translate(-50%,-50%) scale(.5)}body.motion-reduced .phase-launch .orb-trail{opacity:.4}body.motion-reduced .phase-hit .impact-halo{opacity:.35}body.motion-reduced .award-reveal .earned-badge{opacity:1}

/* Original 100-piece vector collection: illustrations remain sharp at phone size. */
.medal.medal-art{background:none!important;border:0;box-shadow:none!important;border-radius:0;aspect-ratio:128/144;height:auto!important}.medal.medal-art:after{display:none}.medal-art img{display:block;width:100%;height:auto;object-fit:contain}.collection-tile .medal-art{width:76px;max-width:100%}.collection-tile b{font-size:12px;line-height:1.65}.collection-tile small{font-size:10px;line-height:1.7}.collection-grid{align-items:start;gap:22px 8px}.locked .medal-art{filter:saturate(.25);opacity:.5}.badge-progress{font-size:11px;font-variant-numeric:tabular-nums;color:#b7cbe4;border:1px solid #829fc344;padding:2px 8px;border-radius:20px}.collection-more{margin-top:24px}.collection-more summary{min-height:44px;padding:12px;border:1px solid #8aa8cc55;border-radius:12px;text-align:center;color:#dbe8fc;cursor:pointer;font-size:13px}.collection-more[open] summary{margin-bottom:24px}.collection-heading h2{font-size:17px}.collection-heading>span{font-size:14px}.award-row .medal-art{flex:0 0 56px}.badge-spotlight .medal-art{width:116px}@media(max-width:360px){.collection-tile .medal-art{width:66px}.collection-tile b{font-size:11px}.collection-tile small{font-size:9px}}
