/* V3 energy layer; all original V2 materials/layouts remain beneath it. */
.combo{position:relative;font-size:clamp(18px,4vw,25px);height:37px;font-weight:950;letter-spacing:1px;line-height:1.3;text-shadow:0 2px 0 #0002,0 0 22px var(--energy);pointer-events:none}.combo-pop{animation:rush-word 1.15s cubic-bezier(.18,.8,.3,1) both}.combo[data-energy="6"]{font-size:clamp(21px,4.7vw,28px)}
.rush-hud{display:flex;align-items:center;gap:9px;margin:5px 2px 12px;font-size:9px;font-weight:850;letter-spacing:1px}.rush-hud .rush-track{height:7px;border-radius:10px;overflow:hidden;flex:1;background:#7c9daf30;border:1px solid #b1cbd429}.rush-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--energy));box-shadow:0 0 12px var(--energy);border-radius:10px;transition:width .07s linear}.rush-hud b{min-width:44px;text-align:right;font-size:11px}.rush-caption{font-size:10px;text-align:center;color:inherit;opacity:.68;margin:-6px 0 12px}
.board[data-left="5"]{box-shadow:inset 0 0 25px #ffffff07,0 0 18px color-mix(in srgb,var(--energy) 15%,transparent),0 8px 0 #071e2d25}.board[data-left="4"]{box-shadow:inset 0 0 28px #ffffff09,0 0 22px color-mix(in srgb,var(--energy) 24%,transparent),0 8px 0 #071e2d25}.board[data-left="3"],.board[data-left="2"]{border-color:var(--energy);box-shadow:inset 0 0 26px #ffffff0b,0 0 30px color-mix(in srgb,var(--energy) 27%,transparent),0 8px 0 #071e2d25}.board[data-left="1"]{border-color:#ffde9b;box-shadow:inset 0 0 40px #ffde9b12,0 0 36px #ffde9b40,0 8px 0 #071e2d25}.last-tile{outline:2px solid #fff0b2;outline-offset:2px;animation:final-charge 1.2s ease-in-out infinite alternate}.last-tile::before{opacity:.8!important}.endgame-label{color:var(--energy);font-weight:800}.route-open{animation:route-reveal .5s ease-out;outline:2px solid #fff9;outline-offset:2px}.route-ring{position:fixed;border:2px solid var(--energy);border-radius:15px;pointer-events:none;box-shadow:0 0 16px var(--energy);z-index:35}.tap-flash{position:fixed;border:2px solid #fff7c8;background:#ffffff44;border-radius:14px;pointer-events:none;z-index:34}.escape-trail{box-shadow:0 0 14px currentColor;filter:none}.escape-piece{will-change:transform,opacity;filter:drop-shadow(0 0 8px var(--piece))}.rush-score{font-size:13px;letter-spacing:.5px}
.clear-banner{margin:8px 0 18px;font-size:clamp(24px,5vw,33px);font-weight:950;letter-spacing:-1px;line-height:1.06;color:#f7f4dd;animation:clear-title .48s cubic-bezier(.15,.8,.3,1.2)}.perfect-badge{display:inline-block;border:1px solid #ffe2a5;background:linear-gradient(145deg,#ffdb8c26,#eed09806);padding:8px 14px;border-radius:30px;color:#ffe5a9;font-size:12px;font-weight:900;letter-spacing:1px;margin:0 0 12px;animation:perfect-reveal .6s ease-out}.earned-count{font-variant-numeric:tabular-nums}.reward-breakdown{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;font-size:10px;color:#d0d5c8;margin:0 0 15px}.reward-breakdown span{padding:5px 8px;background:#ffffff09;border-radius:8px}.completion-track{height:8px;overflow:hidden;border-radius:20px;background:#ffffff18;margin:7px 0 5px}.completion-track i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--accent),var(--energy));animation:world-gain .8s ease-out}.completion-progress{font-size:10px;color:#d3decf;text-align:left;margin:0 0 15px}.victory-dialog button.primary{animation:next-arrive .6s cubic-bezier(.18,.95,.3,1.2)}.victory-dialog .stars{animation:star-award .55s ease-out}.victory-dialog{padding-top:19px}.victory-dialog::before{margin-bottom:9px}.victory-dialog .victory-emblem{width:55px;height:55px;font-size:30px;margin-bottom:12px}.victory-dialog h2{font-size:23px;margin:10px 0}.victory-dialog .reward{margin:12px 0;font-size:27px}.victory-dialog p{font-size:12px;margin:12px 0}.boss-intro .victory-emblem{animation:boss-strike .55s ease-out}.boss-mode .board::before{opacity:.3}
body[data-world="Mystic Temple"]{--energy:#c5a0f4}body[data-world="Mystic Temple"] .ambient{background:radial-gradient(ellipse at 78% 25%,#9a61d82b,transparent 50%),repeating-linear-gradient(0deg,transparent 0 85px,#b9aa7210 85px 87px),radial-gradient(ellipse at 30% 10%,#cfa96935,transparent 65%)}body[data-world="Neon City"] .escape-trail{filter:drop-shadow(0 0 7px #e5a1fb)}body[data-world="Cosmic Station"] .star-spark{filter:drop-shadow(0 0 4px #c3b1ff)}body[data-world="Candy Harbor"] .route-open{outline-color:#fff7fd}body[data-world="Sunny Park"] .endgame-label,body[data-world="Candy Harbor"] .endgame-label{color:#6672a4}
.tile{touch-action:none;user-select:none;-webkit-user-select:none}.board{touch-action:none;overscroll-behavior:contain}.tools button,.topline button{touch-action:manipulation}main{animation:menu-settle .25s ease-out}
@keyframes rush-word{0%{opacity:0;transform:translateY(12px) scale(.65) rotate(-5deg)}20%{opacity:1;transform:translateY(-3px) scale(1.13) rotate(2deg)}38%{transform:translateY(0) scale(1) rotate(0)}80%{opacity:1}100%{opacity:.35;transform:translateY(-3px) scale(.98)}}@keyframes final-charge{to{box-shadow:inset 0 2px 1px #fff9,0 4px 0 #0003,0 0 22px #fff0b270;filter:brightness(1.09)}}@keyframes route-reveal{0%{transform:translateY(-2px) scale(.92);filter:brightness(1.4)}45%{transform:translateY(-4px) scale(1.04)}100%{transform:translateY(-2px);filter:brightness(1)}}@keyframes clear-title{from{opacity:0;transform:scale(.72) rotate(-3deg)}to{opacity:1;transform:none}}@keyframes perfect-reveal{from{opacity:0;transform:translateY(8px) scale(.8)}to{opacity:1;transform:none}}@keyframes world-gain{from{width:var(--prior-progress,0%)}}@keyframes next-arrive{0%{opacity:0;transform:translateY(12px) scale(.95)}60%{opacity:1;transform:translateY(-3px) scale(1.02)}100%{transform:none}}@keyframes boss-strike{from{opacity:0;transform:scale(1.4) rotate(-16deg)}to{opacity:1;transform:rotate(-7deg)}}@keyframes menu-settle{from{opacity:.8;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:380px){.rush-hud{font-size:8px;margin-bottom:8px}.combo{font-size:18px;height:30px}.combo[data-energy="6"]{font-size:20px}.clear-banner{font-size:26px}.victory-dialog{padding:17px}.victory-dialog .stars{font-size:32px}.victory-dialog button{min-height:46px;padding:10px}.rush-caption{font-size:9px}.reward-breakdown{gap:4px}.tools{margin-top:12px}}
.reduced *,.reduced *::before,.reduced *::after{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

@media(max-width:760px){.dense-game .instruction{font-size:11px;min-height:33px;padding:8px 0}.dense-game .meter{margin:10px 0}.dense-game .combo{height:31px;font-size:19px}.dense-game .combo[data-energy="6"]{font-size:21px}.dense-game .rush-hud{margin:2px 0 7px}.dense-game .rush-caption{display:none}.dense-game .board{--board-pad:8px;--board-gap:5px;padding:8px!important;gap:5px!important}.dense-game .rail{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:44px;margin-top:8px;padding:0}.dense-game .rail-track{flex:1;min-width:70px;margin:0;height:18px}.dense-game .rail button{font-size:10px!important;padding:4px 8px!important}.dense-game .journey{margin-top:6px}.dense-game .tools button{min-height:58px}.dense-game .tools{margin-top:10px}}@media(max-width:380px){.dense-game .board{--board-gap:4px;gap:4px!important}.dense-game .tile .arrow-icon{width:68%;height:68%}}

.hero,.map-world{animation:menu-settle .25s ease-out}button{transition-timing-function:cubic-bezier(.18,.85,.3,1.12)}.reduced .hero,.reduced .map-world{animation:none!important}@media(prefers-reduced-motion:reduce){.hero,.map-world{animation:none!important}}
