:root{--bg:#0e1116;--panel:#171c24;--panel-2:#1f2630;--border:#2a323d;--text:#e6e9ee;--muted:#8b93a0;--gold:#ffcf4a;--gem:#59c0ff;--accent:#4f93ff;--hp:#ff4d5e;--good:#3fc97a}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Malgun Gothic,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}button{font-family:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none}.app{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}@media (min-width:520px){.app{border-left:1px solid var(--border);border-right:1px solid var(--border)}}.topbar{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:var(--bg);z-index:10}.resource{flex:1 1;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px}.resource .ico{font-size:16px}.resource.gold{color:var(--gold)}.resource.gem{color:var(--gem)}.resource.gear{flex:0 0 auto;justify-content:center;font-size:18px;cursor:pointer;padding:8px 12px;color:var(--text)}.scene{padding:12px 14px 14px;position:relative}.scene-top{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:6px}.stage-label{color:var(--muted);font-size:12px;letter-spacing:2px}.stage-num{font-size:22px;font-weight:800}.boss-tag{color:var(--hp);font-size:12px;font-weight:800}.enemy-name{text-align:center;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}.enemy-name.boss{color:var(--hp)}.enemy-name.atakhan{color:#ffd23b;text-shadow:0 0 6px rgba(255,210,59,.6)}.atakhan-glow{filter:drop-shadow(0 0 12px #ffd23b)}.arena{position:relative;height:200px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:radial-gradient(120% 80% at 50% 0,#2b3a55 0,#1a2436 55%,#141b28 100%);margin-bottom:12px}.arena:after{content:"";position:absolute;left:0;right:0;bottom:0;height:54px;background:linear-gradient(180deg,#243049,#1c2740);border-top:2px solid #2f3e5c}.arena.combo-on{border-color:#ffb43b;box-shadow:inset 0 0 22px rgba(255,168,40,.28)}.combo-badge{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:5;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:2px;text-shadow:0 2px 6px rgba(0,0,0,.6);animation:comboPop .14s ease-out}.combo-x{font-size:26px;font-weight:900;color:#ffd23b;line-height:1;letter-spacing:.5px}.combo-cnt{font-size:11px;font-weight:800;color:#ffb43b;letter-spacing:1px}.combo-bar{width:120px;height:5px;border-radius:3px;background:rgba(0,0,0,.4);overflow:hidden}.combo-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#ff8c1a,#ffd23b);transition:width .09s linear}@keyframes comboPop{0%{transform:translateX(-50%) scale(1.25)}to{transform:translateX(-50%) scale(1)}}.heroes{position:absolute;left:12px;bottom:20px;display:flex;flex-wrap:wrap-reverse;align-items:flex-end;gap:2px 4px;max-width:170px;z-index:2}.ally{font-size:36px;line-height:1;filter:drop-shadow(0 5px 7px rgba(0,0,0,.5));animation:bob 1.8s ease-in-out infinite;transform-origin:50% 92%}.ally:first-child{font-size:46px}.ally .champ-img{transform:scaleX(-1)}.ally.swing{animation:allySwing .26s cubic-bezier(.34,1.5,.5,1)}.ally.cast{animation:allyCast .26s ease-out}.ally.draw{animation:allyDraw .3s ease-out}@keyframes allySwing{0%{transform:translateX(0) rotate(0deg)}22%{transform:translateX(-4px) rotate(-5deg)}55%{transform:translateX(15px) rotate(8deg)}to{transform:translateX(0) rotate(0deg)}}@keyframes allyCast{0%{transform:translateX(0) scale(1)}30%{transform:translateX(-7px) scale(.97,1.03)}60%{transform:translateX(9px) scale(1.04,.97)}to{transform:translateX(0) scale(1)}}@keyframes allyDraw{0%{transform:translateX(0) rotate(0deg)}50%{transform:translateX(-11px) rotate(-4deg)}68%{transform:translateX(-11px) rotate(-4deg)}84%{transform:translateX(7px) rotate(3deg)}to{transform:translateX(0) rotate(0deg)}}.shot{position:absolute;pointer-events:none;z-index:5}.shot.proj{bottom:60px;width:16px;height:16px;border-radius:50%;animation:shotFly .4s linear forwards}.shot.proj.arrow{width:26px;height:5px;border-radius:2px}.shot.proj.fire{width:20px;height:20px}@keyframes shotFly{0%{left:18%;opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1)}90%{opacity:1}to{left:76%;opacity:0;transform:scale(1)}}.shot.slash{right:34px;bottom:54px;width:80px;height:9px;border-radius:5px;background:linear-gradient(90deg,transparent,currentColor 28%,#fff 50%,currentColor 72%,transparent);filter:drop-shadow(0 0 6px currentColor);transform-origin:center;animation:slashSweep .22s ease-out forwards}@keyframes slashSweep{0%{opacity:0;transform:rotate(-62deg) scaleX(.2)}45%{opacity:1;transform:rotate(-32deg) scaleX(1)}to{opacity:0;transform:rotate(-10deg) scaleX(1.15)}}.shot.proj:after{content:"";position:absolute;right:80%;top:50%;transform:translateY(-50%);width:22px;height:70%;border-radius:4px;background:linear-gradient(90deg,transparent,currentColor);opacity:.7}.arena.shake{animation:arenaShake .17s ease}@keyframes arenaShake{0%,to{transform:translate(0)}25%{transform:translate(-3px,1px)}50%{transform:translate(3px,-2px)}75%{transform:translate(-2px,1px)}}.fx-overlay{inset:0;z-index:3}.fx-overlay,.impact-anchor{position:absolute;pointer-events:none}.impact-anchor{right:64px;bottom:72px;width:0;height:0;z-index:6}.burst-ring{position:absolute;left:0;top:0;width:14px;height:14px;border:3px solid #fff;border-radius:50%;transform:translate(-50%,-50%);animation:burstRing .36s ease-out forwards}@keyframes burstRing{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(-50%,-50%) scale(4.2);opacity:0}}.burst-star{position:absolute;left:0;top:0;width:54px;height:54px;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0,#ffe79a 35%,rgba(255,220,120,0) 65%);animation:burstStar .3s ease-out forwards}@keyframes burstStar{0%{transform:translate(-50%,-50%) scale(.2);opacity:1}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.particle{position:absolute;left:0;top:0;width:5px;height:5px;border-radius:1px;transform:translate(-50%,-50%);animation:particleFly .5s ease-out forwards}@keyframes particleFly{0%{transform:translate(-50%,-50%);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)));opacity:0}}.fighter,.monster{display:block}.fighter .weapon{transform-box:fill-box;transform-origin:50% 88%}.fighter.atk .weapon{animation:swing .2s ease}@keyframes swing{0%{transform:rotate(-42deg)}55%{transform:rotate(22deg)}to{transform:rotate(0)}}.champ-img{display:block;border-radius:9px;object-fit:cover;background:var(--panel-2)}.champ-img.pixelated,.monster-img,.skill-img.pixelated{image-rendering:pixelated}.monster-img{display:block;object-fit:contain}.champ-img.atk{animation:imgAtk .2s ease}@keyframes imgAtk{0%{transform:scale(1)}50%{transform:scale(1.12) rotate(-4deg)}to{transform:scale(1)}}.skill-img{display:block;border-radius:8px}.fx{pointer-events:none;z-index:6}.fx,.fx-name{position:absolute}.fx-name{top:4px;left:50%;font-weight:800;font-size:14px;white-space:nowrap;text-shadow:0 1px 3px #000,0 0 8px currentColor;animation:fxName .7s ease forwards}@keyframes fxName{0%{opacity:0;transform:translate(-50%,8px) scale(.7)}25%{opacity:1;transform:translate(-50%) scale(1.15)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}.arena-flash{position:absolute;inset:0;z-index:4;pointer-events:none;background:#fff;animation:arenaFlash .28s ease-out forwards}@keyframes arenaFlash{0%{opacity:.32}to{opacity:0}}.fx-lightning{top:0;bottom:0;right:30px;width:84px}.bolt-svg{width:100%;height:100%}.bolt{fill:none;stroke-linejoin:round;stroke-linecap:round;animation:boltFlick .5s ease forwards}.bolt.glow{stroke:currentColor;stroke-width:13;opacity:.5}.bolt.core{stroke:#fff;stroke-width:5;filter:drop-shadow(0 0 6px currentColor)}.impact{position:absolute;right:4px;bottom:26px;width:76px;height:30px;background:radial-gradient(ellipse at center,#fff 0,currentColor 40%,transparent 72%);animation:boltFlick .5s ease forwards}@keyframes boltFlick{0%{opacity:0}8%{opacity:1}18%{opacity:.3}28%{opacity:1}55%{opacity:1}to{opacity:0}}.fx-sword{top:0;bottom:0;right:40px;width:72px}.sword-svg{position:absolute;left:50%;top:4px;width:48px;height:146px;filter:drop-shadow(0 0 6px currentColor);animation:swordDrop .5s cubic-bezier(.5,0,.7,1.5) forwards}@keyframes swordDrop{0%{transform:translateX(-50%) translateY(-80px) rotate(-6deg);opacity:0}22%{opacity:1}55%{transform:translateX(-50%) translateY(0) rotate(0deg)}68%{transform:translateX(-50%) translateY(-10px)}to{transform:translateX(-50%) translateY(0);opacity:0}}.slashline{position:absolute;left:50%;bottom:34px;width:90px;height:8px;transform:translateX(-50%);border-radius:4px;background:linear-gradient(90deg,transparent,#fff,transparent);filter:drop-shadow(0 0 6px currentColor);opacity:0;animation:slashFlash .5s ease-out forwards}@keyframes slashFlash{0%,48%{opacity:0;transform:translateX(-50%) scaleX(.3)}60%{opacity:1;transform:translateX(-50%) scaleX(1)}to{opacity:0;transform:translateX(-50%) scaleX(1.15)}}.fx-explosion{top:auto;left:auto;right:44px;bottom:38px;width:108px;height:108px}.fx-explosion .burst{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#fff 0,#ffd24d 22%,currentColor 48%,rgba(0,0,0,.5) 66%,transparent 76%);animation:burstOut .5s ease-out forwards}.fx-explosion .ringfire{position:absolute;inset:8%;border-radius:50%;border:4px solid;animation:ringOut .5s ease-out forwards}@keyframes burstOut{0%{transform:scale(.2);opacity:0}30%{opacity:1}to{transform:scale(1.6);opacity:0}}@keyframes ringOut{0%{transform:scale(.2);opacity:.9}to{transform:scale(1.9);opacity:0}}.fx-tornado{top:auto;right:auto;bottom:36px;left:8%;width:56px;height:96px;animation:tornadoMove .6s ease-in forwards}.fx-tornado .twist{width:100%;height:100%;filter:drop-shadow(0 0 6px currentColor);animation:tornadoSpin .14s linear infinite}@keyframes tornadoMove{0%{left:6%;opacity:0;transform:scale(.7)}20%{opacity:1;transform:scale(1)}to{left:74%;opacity:.2;transform:scale(1.05)}}@keyframes tornadoSpin{0%{transform:scaleX(1)}50%{transform:scaleX(.5)}to{transform:scaleX(1)}}.fx-spatula{top:0;bottom:0;right:24px;width:104px}.spatula-svg{position:absolute;left:50%;top:0;width:80px;height:156px;filter:drop-shadow(0 0 12px #ffd23b);animation:spatulaSlam .62s cubic-bezier(.5,0,.78,1.6) forwards}@keyframes spatulaSlam{0%{transform:translateX(-50%) translateY(-104px) rotate(-14deg) scale(1.12);opacity:0}25%{opacity:1}55%{transform:translateX(-50%) translateY(0) rotate(0deg) scale(1)}66%{transform:translateX(-50%) translateY(-16px)}to{transform:translateX(-50%) translateY(0);opacity:0}}.slam-flash{position:absolute;left:50%;bottom:22px;width:140px;height:48px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#fff 0,#ffd23b 40%,transparent 72%);opacity:0;animation:slamFlash .62s ease-out forwards}@keyframes slamFlash{0%,50%{opacity:0;transform:translateX(-50%) scale(.4)}60%{opacity:1;transform:translateX(-50%) scale(1)}to{opacity:0;transform:translateX(-50%) scale(1.4)}}@keyframes heroAtk{0%{transform:translateX(0)}50%{transform:translateX(24px) scale(1.08)}to{transform:translateX(0)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.enemy-zone{position:absolute;right:16px;bottom:0;width:130px;height:100%;z-index:1}.enemy-wrap{position:absolute;right:12px;bottom:24px}.enemy-wrap.spawn{animation:enemySpawn .35s ease}@keyframes enemySpawn{0%{transform:translateX(70px) scale(.6);opacity:0}to{transform:translateX(0) scale(1);opacity:1}}.enemy{display:inline-block;font-size:56px;line-height:1;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}.enemy.hit{animation:enemyHit .22s ease-out}@keyframes enemyHit{0%{transform:translateX(0);filter:brightness(1)}25%{transform:translateX(12px) translateY(-2px);filter:brightness(2.6) saturate(1.6)}55%{transform:translateX(3px);filter:brightness(1.2)}to{transform:translateX(0);filter:brightness(1)}}.enemy.dying{position:absolute;right:12px;bottom:24px;pointer-events:none;animation:enemyDeath .55s ease forwards}@keyframes enemyDeath{0%{transform:translate(0) rotate(0) scale(1);opacity:1}to{transform:translate(90px,-64px) rotate(70deg) scale(.4);opacity:0}}.dmg{position:absolute;bottom:92px;font-weight:800;font-size:15px;color:#fff;text-shadow:0 2px 3px rgba(0,0,0,.8);pointer-events:none;white-space:nowrap;animation:dmgFloat .85s ease-out forwards}.dmg.crit{color:var(--gold);font-size:21px}.dmg.skill{color:#c98bff;font-size:21px}@keyframes dmgFloat{0%{transform:translateY(0) scale(.8);opacity:0}20%{transform:translateY(-6px) scale(1.15);opacity:1}to{transform:translateY(-46px) scale(1);opacity:0}}.hpbar{height:18px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;overflow:hidden;position:relative}.hpbar>.fill{height:100%;background:linear-gradient(90deg,#ff6b78,var(--hp));transition:width .08s linear}.hpbar>.txt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.7)}.dps{margin-top:10px;color:var(--muted);font-size:13px}.dps b{color:var(--text)}.farm-bar{display:flex;align-items:stretch;gap:6px;margin-top:10px}.farm-step{flex:0 0 auto;min-width:44px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;font-size:14px;font-weight:800;cursor:pointer}.farm-step:disabled{opacity:.35;cursor:default}.farm-lock{flex:1 1;padding:9px 8px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;font-size:13px;font-weight:700;cursor:pointer}.farm-lock.on{background:var(--accent);border-color:var(--accent);color:#fff}.farm-hint{margin-top:6px;text-align:center;font-size:11px;color:var(--muted)}.tabs{display:flex;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel)}.tab{flex:1 1;padding:11px 0;text-align:center;font-size:11px;font-weight:600;color:var(--muted);background:none;border:none;cursor:pointer;white-space:nowrap}.tab.active{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.content{flex:1 1;padding:12px;display:flex;flex-direction:column;gap:10px}.champ{gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.champ,.champ .face{display:flex;align-items:center}.champ .face{width:46px;height:46px;border-radius:10px;justify-content:center;font-size:26px;background:var(--panel-2);border:2px solid var(--border);flex-shrink:0}.champ .info{flex:1 1;min-width:0}.champ .name{font-weight:700;font-size:15px;display:flex;align-items:center;gap:6px}.champ .sub{color:var(--muted);font-size:12px;margin-top:2px}.stars{color:var(--gold);font-size:12px}.kingstar{color:#ffd23b;font-size:14px;text-shadow:0 0 4px rgba(255,210,59,.7);margin-right:1px}.rarity-pill{font-size:10px;font-weight:700;padding:1px 6px;border-radius:6px;color:#0e1116}.btn{border:none;border-radius:10px;padding:9px 14px;font-weight:700;font-size:13px;cursor:pointer;background:var(--panel-2);color:var(--text);border:1px solid var(--border);white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.gold{color:var(--gold)}.btn.big{width:100%;padding:14px;font-size:15px}.btn.danger{border-color:var(--hp);color:var(--hp)}.btn.in-team{background:var(--good);border-color:var(--good);color:#07140c}.section-title{font-size:13px;color:var(--muted);font-weight:700;margin:4px 2px}.summon-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:6px;gap:6px}.summon-cell{position:relative;background:var(--panel);border:2px solid var(--border);border-radius:10px;padding:6px;display:flex;align-items:center;justify-content:center}.summon-cell .champ-img{width:100%;height:auto}.newbadge{top:-4px;right:-4px;background:var(--good);color:#07140c}.cell-count,.newbadge{position:absolute;font-size:10px;font-weight:800;border-radius:6px;padding:0 4px}.cell-count{bottom:-4px;right:-2px;background:var(--panel-2);color:var(--text)}.rank-no{width:30px;text-align:center;font-weight:800;font-size:15px;color:var(--gold);flex-shrink:0}.mbar{position:relative;height:14px;background:var(--panel-2);border-radius:999px;overflow:hidden;margin-top:4px}.mbar-fill{height:100%;background:linear-gradient(90deg,#4f93ff,#59c0ff);transition:width .2s}.mbar-txt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.7)}.attend-row{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.attend-cell{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:6px 2px;text-align:center}.attend-cell .d{font-size:9px;color:var(--muted)}.attend-cell .r{font-size:11px;font-weight:700;color:var(--gem)}.attend-cell.next{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.attend-cell.done{opacity:.5}.seg{display:flex;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:4px}.seg-btn{flex:1 1;padding:8px 0;border:none;border-radius:7px;background:transparent;color:var(--muted);font-weight:700;font-size:13px;cursor:pointer}.seg-btn.active{background:var(--accent);color:#fff}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:22px;max-width:340px;width:100%;text-align:center}.modal h3{font-size:18px;margin-bottom:10px}.modal p{color:var(--muted);font-size:14px;line-height:1.6;margin-bottom:16px}.modal .reward{color:var(--gold);font-weight:800;font-size:22px}.save-box{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:monospace;font-size:12px;padding:10px;resize:vertical;word-break:break-all}.muted{color:var(--muted);font-size:12px;padding:8px}.muted,.toast{text-align:center}.toast{position:-webkit-sticky;position:sticky;top:60px;z-index:20;margin:8px 12px 0;background:var(--panel-2);border:1px solid var(--gold);color:var(--gold);border-radius:10px;padding:10px 12px;font-size:13px;font-weight:700;cursor:pointer;animation:toastIn .25s ease}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.login-box{display:flex;flex-direction:column;gap:10px}.starter{flex:1 1;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:24px 16px}.starter-title{font-size:24px;font-weight:800;text-align:center}.starter-sub{color:var(--muted);font-size:14px;text-align:center;margin-bottom:8px}.starter-list{display:flex;flex-direction:column;gap:12px;margin-bottom:8px}.starter-card{display:flex;align-items:center;gap:14px;text-align:left;background:var(--panel);border:2px solid var(--border);border-radius:14px;padding:14px;cursor:pointer;color:var(--text);transition:border-color .15s,transform .1s}.starter-card:active{transform:scale(.98)}.starter-card.active{border-color:var(--accent);background:var(--panel-2)}.starter-card .info{flex:1 1;min-width:0}.starter-card .name{font-size:17px;font-weight:800;display:flex;align-items:center;gap:8px}.starter-card .sub{color:var(--muted);font-size:13px;margin-top:4px}.starter-card .face{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:34px;background:var(--panel-2);border:2px solid var(--border);flex-shrink:0}.launch-row{display:flex;gap:8px;margin-bottom:12px}.tower-launch{flex:1 1;padding:12px;border-radius:12px;border:1px solid #6b4bb0;background:linear-gradient(180deg,#3a2a66,#2a1f4d);display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 10px rgba(107,75,176,.35)}.collect-launch,.tower-launch{color:#fff;font-size:15px;font-weight:800;cursor:pointer}.collect-launch{flex-shrink:0;padding:12px 16px;border-radius:12px;border:1px solid #2f7d6b;background:linear-gradient(180deg,#1e4d43,#163a33)}.collect-launch:active,.tower-launch:active{transform:scale(.98)}.tower-launch-floor{font-size:12px;color:#ffd23b;background:rgba(0,0,0,.3);padding:2px 8px;border-radius:8px}.tower-modal{max-width:360px}.tower-info{display:flex;justify-content:space-around;gap:8px;margin:4px 0}.tower-info>div{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1 1;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 6px}.tower-info-k{font-size:11px;color:var(--muted)}.tower-info-v{font-size:15px;font-weight:800;color:var(--text)}.tower-floor-tag{font-size:16px;font-weight:900;color:#c9a3ff;margin-bottom:6px}.tower-timer{position:relative;height:18px;border-radius:9px;background:rgba(0,0,0,.4);overflow:hidden;margin-bottom:10px}.tower-timer-fill{height:100%;background:linear-gradient(90deg,#ff5066,#ffb43b);transition:width .1s linear}.tower-timer-txt{position:absolute;inset:0;font-size:12px;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.tower-arena,.tower-timer-txt{display:flex;align-items:center;justify-content:center}.tower-arena{position:relative;height:170px;border-radius:14px;overflow:hidden;border:1px solid #6b4bb0;background:radial-gradient(120% 90% at 50% 10%,#3a2a66 0,#201838 60%,#14101f 100%);margin-bottom:10px;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tower-boss{filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}.tower-boss.hit{animation:towerHit .12s ease-out}@keyframes towerHit{0%{transform:scale(1.06) translateX(3px)}to{transform:scale(1) translateX(0)}}.tower-tap-hint{font-size:13px;font-weight:800;color:#ffd23b;animation:tapPulse .8s ease-in-out infinite}@keyframes tapPulse{0%,to{opacity:.5}50%{opacity:1}}.tower-result{font-size:26px;font-weight:900;margin-bottom:8px}.tower-result.win{color:#ffd23b}.tower-result.lose{color:#ff5066}.tower-sigil-bar{background:var(--bg);border:1px solid #6b4bb0;border-radius:10px;padding:8px;font-size:13px;color:var(--muted)}.tower-sigil-bar b{color:#c9a3ff;font-size:15px}.tower-ms-hint{margin-top:8px;font-size:12px;color:#ffd23b}.tower-ms-banner{color:#ffd23b;font-weight:800;font-size:15px;margin-bottom:6px}.tower-shop{display:flex;flex-direction:column;gap:8px;margin-top:12px}.tower-shop-row{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px;text-align:left}.tower-shop-icon{font-size:24px;flex-shrink:0}.tower-shop-info{flex:1 1;min-width:0}.tower-shop-name{font-size:14px;font-weight:700}.rank-tabs{display:flex;gap:6px;margin-bottom:12px}.rank-tab{flex:1 1;padding:9px 6px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font-size:13px;font-weight:700;cursor:pointer}.rank-tab.active{border-color:var(--accent);background:var(--accent);color:#fff}.collect-summary{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;margin:6px 0 4px}.collect-summary>div{display:flex;justify-content:space-between;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.collect-sum-k{font-size:11px;color:var(--muted)}.collect-sum-v{font-size:14px;font-weight:800;color:var(--good,#4fd18b)}.collect-section-title{font-size:13px;font-weight:800;margin:14px 0 6px;color:var(--text)}.collect-row{display:flex;align-items:center;gap:6px;padding:4px 0}.collect-chips{display:flex;flex-wrap:wrap;gap:3px;flex:1 1;min-width:0}.collect-chip{font-size:10px;padding:2px 5px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.collect-chip.on{color:var(--text);border-color:var(--accent)}.collect-cnt{font-size:11px;font-weight:700;color:var(--muted);flex-shrink:0}.collect-done{color:var(--good,#4fd18b);font-weight:900;flex-shrink:0}.collect-relic{margin-bottom:4px}.collect-line{font-size:11px;color:var(--muted);padding:2px 0 4px 48px}.collect-line.done{color:var(--good,#4fd18b);font-weight:700}