body{background:#030616;overflow-x:hidden}
.stars{z-index:1;opacity:.8;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.3px),radial-gradient(circle,#67dfff 0 1px,transparent 1.5px),radial-gradient(circle,#b995ff 0 1.2px,transparent 1.6px);background-size:43px 43px,79px 79px,127px 127px;animation:starDrift 80s linear infinite}
.cosmos{position:fixed;z-index:0;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% -15%,#19387b 0,transparent 42%),radial-gradient(ellipse at 15% 60%,#241355 0,transparent 35%),linear-gradient(180deg,#050b25 0%,#020514 55%,#06031a 100%)}
.nebula{position:absolute;border-radius:50%;filter:blur(50px);mix-blend-mode:screen}.nebula-a{width:520px;height:190px;top:15%;left:-220px;transform:rotate(-30deg);background:linear-gradient(90deg,transparent,#2939af99,#a329a477,transparent)}.nebula-b{width:460px;height:160px;top:68%;right:-230px;transform:rotate(25deg);background:linear-gradient(90deg,transparent,#0d7c9e77,#5831b777,transparent)}
.galaxy{position:absolute;width:380px;height:100px;left:50%;top:45%;transform:translateX(-50%) rotate(-18deg);border-radius:50%;background:radial-gradient(ellipse,#fff 0,#8fcaff66 8%,#6735b955 25%,transparent 67%);filter:blur(8px);opacity:.38}
.planet{position:absolute;right:-95px;top:32%;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle at 28% 25%,#ddc4ff,#724da3 18%,#211945 52%,#06081a 75%);box-shadow:-25px -8px 65px #8a62ff55,inset 25px -20px 40px #000}.planet:after{content:"";position:absolute;inset:80px -55px;border:8px solid #cfc2ff55;border-left-color:transparent;border-right-color:transparent;border-radius:50%;transform:rotate(-18deg)}.planet b{position:absolute;width:33px;height:20px;border-radius:50%;background:#120d2b88;left:40px;top:55px;box-shadow:48px 62px #120d2b88}
.meteor{position:absolute;width:2px;height:90px;background:linear-gradient(#fff,transparent);transform:rotate(55deg);filter:drop-shadow(0 0 4px #86eaff);animation:meteor 7s infinite}.m1{top:12%;left:18%;animation-delay:-2s}.m2{top:52%;left:78%;animation-delay:-5s}.app{z-index:2}
.hero-card{min-height:300px;background:linear-gradient(115deg,rgba(11,31,80,.96),rgba(25,38,94,.85) 48%,rgba(21,10,55,.74))}.tiga-wrap{right:-2px;bottom:0;width:230px;height:300px;overflow:hidden;filter:drop-shadow(0 16px 18px #000a)}.tiga-wrap:before,.tiga-wrap:after{display:none}.tiga-wrap img{position:absolute;z-index:2;width:100%;height:100%;object-fit:cover;object-position:62% 31%;mix-blend-mode:screen;filter:contrast(1.15) saturate(1.14) brightness(1.05);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 82%,transparent 100%)}.hero-aura{position:absolute;z-index:1;width:240px;height:260px;right:-10px;top:15px;border-radius:50%;background:radial-gradient(circle,#b5f9ff66 0,#4e74ff33 35%,transparent 68%);animation:pulse 2.4s infinite}
footer a{color:#7e92c3;text-decoration:none}@keyframes starDrift{to{background-position:46px 50px,100px 118px,182px 141px}}@keyframes meteor{0%,78%{opacity:0;transform:translate(0,0) rotate(55deg)}82%{opacity:1}100%{opacity:0;transform:translate(240px,170px) rotate(55deg)}}@media(max-width:360px){.tiga-wrap{right:-18px;width:210px}}

/* Integrated hero cutout */
.tiga-wrap{width:205px}.tiga-wrap img{object-fit:contain;object-position:center bottom;mix-blend-mode:normal;filter:drop-shadow(0 0 2px #d8ffff) drop-shadow(0 0 14px #55b8ff88) saturate(1.08) contrast(1.05);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 91%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 91%,transparent 100%)}.hero-floor{position:absolute;z-index:1;right:20px;bottom:1px;width:170px;height:26px;border-radius:50%;background:radial-gradient(ellipse,#8cf7ff99 0,#326cff44 35%,transparent 70%);filter:blur(3px)}

/* Full-screen battle experience */
.modal{padding:0;background:#02040cf2}.modal.open{visibility:visible}.battle-stage{width:100%;height:100%;max-width:720px;padding:0;overflow:hidden;border:0;border-radius:0;background:radial-gradient(circle at 50% 38%,#193068,#05091d 58%,#02040d);box-shadow:none}.battle-stage:before{content:"";position:absolute;z-index:1;left:-15%;right:-15%;bottom:-18%;height:43%;border-radius:50%;background:radial-gradient(ellipse at 50% 0,#293755 0,#10182b 28%,#040712 68%);border-top:1px solid #6e8fb255;box-shadow:0 -12px 60px #2e6aa633}.battle-space{position:absolute;inset:0;overflow:hidden;background-image:radial-gradient(#fff 1px,transparent 1px),radial-gradient(#5ce5ff 1px,transparent 1px);background-size:37px 37px,83px 83px;opacity:.7}.battle-space:before{content:"";position:absolute;width:420px;height:220px;left:-120px;top:18%;border-radius:50%;filter:blur(35px);background:linear-gradient(45deg,#6930b855,#0066ad44,transparent)}.battle-space i{position:absolute;border-radius:50%;background:#dceaff;box-shadow:0 0 12px #74dfff;animation:battleStar 2s infinite}.battle-space i:nth-child(1){width:3px;height:3px;top:15%;left:20%}.battle-space i:nth-child(2){width:4px;height:4px;top:32%;right:18%;animation-delay:-.8s}.battle-space i:nth-child(3){width:2px;height:2px;top:55%;left:52%;animation-delay:-1.4s}.battle-stage .close{z-index:12;right:18px;top:18px;background:#07122dcc;backdrop-filter:blur(10px)}.battle-head{position:relative;z-index:3;padding-top:max(26px,env(safe-area-inset-top));text-align:center}.battle-head h2{font-size:24px;margin:5px 0 0;text-shadow:0 0 22px #ff5b42}.battle-label{color:#ff9d67}.battle-hud{position:relative;z-index:4;display:grid;grid-template-columns:1fr 44px 1fr;align-items:center;gap:8px;padding:18px 18px 0}.fighter-hp{font-size:11px;font-weight:800}.fighter-hp>span{display:block;margin-bottom:5px}.fighter-hp>div{height:9px;padding:2px;border:1px solid #ffffff44;border-radius:8px;background:#02050c}.fighter-hp i{display:block;width:100%;height:100%;border-radius:5px;transition:width .8s}.fighter-hp small{display:block;margin-top:4px;color:#7f91b3;font-size:8px;letter-spacing:1px}.hero-hp i{background:linear-gradient(90deg,#2bd7ff,#8dfaff);box-shadow:0 0 9px #42dfff}.enemy-hp{text-align:right}.enemy-hp i{margin-left:auto;background:linear-gradient(90deg,#ffb638,#ff493d);box-shadow:0 0 9px #ff493d}.versus-mark{font-style:italic;font-size:16px;color:#fff;text-shadow:0 0 12px #fff}.arena{position:relative;z-index:4;height:min(53vh,460px);min-height:320px}.battle-tiga{position:absolute;z-index:4;left:4%;bottom:5%;width:42%;height:88%;transform:translateX(-115%);filter:drop-shadow(0 15px 12px #000c)}.battle-tiga img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 0 2px #d9ffff) drop-shadow(0 0 14px #4fcfff99)}.battle-aura{position:absolute;inset:12% -15% 0;border-radius:50%;background:radial-gradient(circle,#64eaff33,transparent 68%);filter:blur(5px);animation:pulse 2s infinite}.battle-monster{position:absolute;z-index:4;right:4%;bottom:4%;width:43%;height:79%;transform:translateX(120%);filter:drop-shadow(0 17px 14px #000c)}.battle-monster svg{width:100%;height:100%;overflow:visible}.monster-body,.monster-head,.monster-leg,.monster-arm,.monster-tail{fill:url(#rock);stroke:#788778;stroke-width:3}.monster-armor{fill:#1a2a2a;stroke:#778d7f;stroke-width:4}.monster-cracks{fill:none;stroke:#99bf7b;stroke-width:4;filter:drop-shadow(0 0 5px #7cff65)}.monster-mouth{fill:#090b10;stroke:#617465;stroke-width:3}.monster-teeth{fill:none;stroke:#d7dbb4;stroke-width:6}.monster-eyes{fill:#ff4a28}.enemy-shadow{position:absolute;left:12%;right:5%;bottom:-1%;height:8%;border-radius:50%;background:#000b;filter:blur(5px)}.charge-orb{position:absolute;z-index:6;left:68%;top:38%;width:10px;height:10px;border-radius:50%;opacity:0;background:#fff;box-shadow:0 0 10px 5px #6ff,0 0 35px 14px #397aff}.energy-beam{position:absolute;z-index:7;left:35%;top:47%;width:43%;height:18px;opacity:0;transform:rotate(-3deg) scaleX(0);transform-origin:left}.energy-beam:before{content:"";position:absolute;inset:4px 0;border-radius:10px;background:white;box-shadow:0 0 8px #fff,0 0 18px 7px #6ef6ff,0 0 38px 14px #436fff}.energy-beam i{position:absolute;right:-10px;top:-12px;width:42px;height:42px;border:5px solid #d9ffff;border-radius:50%;box-shadow:0 0 18px #5eeaff}.battle-panel{position:absolute;z-index:9;left:16px;right:16px;bottom:max(18px,env(safe-area-inset-bottom));padding:15px 16px;border:1px solid #91e8ff33;border-radius:20px;background:#07142de8;backdrop-filter:blur(16px);box-shadow:0 12px 40px #0008}.battle-panel p{min-height:18px;margin:0 0 11px;color:#c5d8f1;font-size:12px}.attack-button{position:relative;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;align-items:center;padding:12px 20px;background:linear-gradient(100deg,#1ae5ff,#4e7cff 58%,#974cff);color:white;text-align:left;text-shadow:0 1px 2px #1e2a70;box-shadow:0 0 25px #3baaff55}.attack-button>span{grid-row:1/3;font-size:20px}.attack-button b{font-size:15px}.attack-button small{font-size:9px;opacity:.75}.victory-seal{position:absolute;z-index:15;left:50%;top:42%;width:250px;padding:22px;transform:translate(-50%,-50%) scale(.4);opacity:0;text-align:center;border:1px solid #fff6a9;border-radius:20px;background:#081934ed;box-shadow:0 0 30px #ffe56a88,0 20px 70px #000}.victory-seal:before{content:"✦";display:block;color:#ffe76c;font-size:35px;text-shadow:0 0 20px #fff}.victory-seal small,.victory-seal span{display:block;color:#9adfff;font-size:9px;letter-spacing:2px}.victory-seal b{display:block;margin:5px;font-size:30px;color:#fff6b8}.battle-flash{position:absolute;z-index:10;inset:0;pointer-events:none;background:white;opacity:0}.impact-ring{position:absolute;z-index:9;right:19%;top:42%;width:40px;height:40px;border:7px solid white;border-radius:50%;opacity:0;box-shadow:0 0 25px #6ef6ff}.hit-sparks{position:absolute;left:40%;top:40%;width:10px;height:10px;opacity:0;border-radius:50%;background:#fff;box-shadow:25px -35px #ffe24d,-31px -20px #78f6ff,36px 22px #ff784e,-25px 39px #fff,3px -50px #ff6}

/* Battle sequence states */
.battle-stage.ready .battle-tiga{animation:heroEnter .65s cubic-bezier(.2,.8,.2,1) forwards}.battle-stage.ready .battle-monster{animation:monsterEnter .75s .15s cubic-bezier(.2,.8,.2,1) forwards,monsterIdle 2.1s 1s ease-in-out infinite}.battle-stage.charging .battle-tiga{transform:translateX(0);animation:heroCharge .8s ease-in-out forwards}.battle-stage.charging .battle-monster{transform:translateX(0);animation:monsterRoar .8s ease-in-out}.battle-stage.charging .charge-orb{animation:charge .9s ease-in forwards}.battle-stage.firing{animation:cameraShake .08s 8}.battle-stage.firing .battle-tiga{transform:translateX(0);animation:heroFire .7s ease-out forwards}.battle-stage.firing .battle-monster{transform:translateX(0)}.battle-stage.firing .energy-beam{animation:beamFire .75s ease-out forwards}.battle-stage.firing .impact-ring{animation:impact .6s .25s ease-out forwards}.battle-stage.firing .battle-flash{animation:flash .45s .34s}.battle-stage.firing .hit-sparks{animation:sparks .7s .3s}.battle-stage.firing .enemy-hp i{width:0}.battle-stage.won .battle-tiga{transform:translateX(0);animation:heroVictory 1.5s ease-in-out infinite}.battle-stage.won .battle-monster{transform:translateX(0);animation:monsterDefeat 1s ease-in forwards}.battle-stage.won .victory-seal{animation:victoryPop .65s .75s cubic-bezier(.2,1.4,.3,1) forwards}.battle-stage.won .battle-panel{animation:panelOut .3s forwards}
@keyframes battleStar{50%{opacity:.2;transform:scale(.5)}}@keyframes heroEnter{to{transform:translateX(0)}}@keyframes monsterEnter{60%{transform:translateX(-6%)}to{transform:translateX(0)}}@keyframes monsterIdle{50%{transform:translateY(-5px) scale(1.015)}}@keyframes monsterRoar{40%{transform:translateX(0) scale(1.08) rotate(-2deg)}70%{transform:translateX(0) rotate(2deg)}to{transform:translateX(0)}}@keyframes heroCharge{40%{transform:translateX(0) translateY(6px) rotate(-2deg)}to{transform:translateX(0) rotate(1deg)}}@keyframes charge{20%{opacity:1;transform:scale(.4)}100%{opacity:1;transform:scale(3)}}@keyframes heroFire{to{transform:translateX(4%) rotate(2deg)}}@keyframes beamFire{0%{opacity:1;transform:rotate(-3deg) scaleX(0)}25%,80%{opacity:1;transform:rotate(-3deg) scaleX(1)}100%{opacity:0;transform:rotate(-3deg) scaleX(1.08)}}@keyframes cameraShake{25%{transform:translate(-3px,2px)}75%{transform:translate(3px,-2px)}}@keyframes impact{0%{opacity:1;transform:scale(.2)}100%{opacity:0;transform:scale(7)}}@keyframes flash{35%{opacity:.65}100%{opacity:0}}@keyframes sparks{30%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(5) rotate(55deg)}}@keyframes monsterDefeat{0%{opacity:1;filter:brightness(1)}35%{filter:brightness(4) drop-shadow(0 0 30px #fff)}100%{opacity:0;transform:translateX(0) scale(.2) rotate(12deg);filter:blur(12px)}}@keyframes heroVictory{50%{filter:drop-shadow(0 0 20px #75eeff) brightness(1.15)}}@keyframes victoryPop{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes panelOut{to{opacity:0;transform:translateY(30px);pointer-events:none}}
@media(min-width:650px){.battle-stage{height:min(900px,94vh);border:1px solid #70dcff55;border-radius:30px}.arena{height:500px}.battle-panel{left:70px;right:70px}.battle-tiga{left:9%;width:37%}.battle-monster{right:9%;width:37%}}
@media(prefers-reduced-motion:reduce){.battle-stage *,.stars,.meteor{animation-duration:.01ms!important;animation-iteration-count:1!important}}
.victory-seal button{margin-top:16px;padding:10px 24px;border:0;border-radius:24px;background:linear-gradient(90deg,#ffe66c,#ffb62e);color:#172342;font-weight:900;box-shadow:0 6px 20px #ffc42e44}

/* One compact training module: energy + daily quests */
.training-card{overflow:hidden;margin-bottom:28px;padding:0 14px 14px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,rgba(24,51,107,.94),rgba(8,23,58,.97));box-shadow:0 20px 50px #0005}.compact-energy{padding:16px 2px 15px;border-bottom:1px solid #ffffff14}.compact-energy .energy-top{padding:0 2px}.compact-energy .energy-top h2{margin:3px 0 0;font-size:22px;line-height:1}.compact-energy .energy-top h2 small{font-size:11px;color:var(--muted);font-weight:500}.compact-energy .spark-icon{width:34px;height:34px;border-radius:11px;font-size:14px}.compact-energy .energy-slots{gap:6px;margin:13px 0 10px}.compact-energy .energy-slot{height:30px;border-radius:8px}.compact-energy .energy-slot span{font-size:15px}.compact-energy .battle-button{min-height:44px;padding:10px 12px;border-radius:12px;font-size:12px}.training-card>.section-title{margin:16px 2px 12px}.training-card>.section-title h2{font-size:18px}.training-card .task-list{gap:8px}.training-card .task{background:#07173580}.training-card .task.done{background:#0b3044}.training-card .task:last-child{margin-bottom:0}
@media(max-width:360px){.training-card{padding-inline:10px}.compact-energy .energy-slots{gap:4px}.compact-energy .energy-slot{height:28px}}

/* Animated 3D cartoon hero encounter */
.hero-duel{position:absolute;z-index:3;right:0;top:0;width:52%;height:100%;overflow:hidden;perspective:700px}.hero-duel .hero-aura{width:230px;height:260px;right:1%;top:1%;background:radial-gradient(circle,#c6fbff55 0,#5f6fff2d 38%,transparent 69%)}.hero-duel .hero-floor{right:22%;bottom:8px;width:120px;height:20px}.tiga-3d{position:absolute;z-index:3;left:6%;bottom:-9%;width:70%;height:111%;overflow:visible;filter:drop-shadow(0 14px 13px #000a);transform-style:preserve-3d}.tiga-model{transform-origin:center 75%;animation:tigaBreathe 4s ease-in-out infinite}.tiga-head{transform-origin:center 125px;animation:tigaLook 8s ease-in-out infinite}.tiga-arm{transform-box:fill-box;transform-origin:50% 8%}.tiga-left-arm{animation:leftEnergyPose 8s cubic-bezier(.5,0,.2,1) infinite}.tiga-right-arm{animation:rightEnergyPose 8s cubic-bezier(.5,0,.2,1) infinite}.color-timer{animation:timerPulse 1.5s ease-in-out infinite}.energy-action{fill:none;stroke:#bdfdff;stroke-width:3;opacity:0;transform-origin:110px 205px;animation:heroEnergyBurst 8s ease-out infinite}.energy-action circle:first-child{fill:#fff;stroke:#66eaff;stroke-width:7}.energy-action circle:nth-child(2){stroke-width:2}.stage-enemy{position:absolute;z-index:5;right:0;bottom:3%;width:37%;height:48%;filter:drop-shadow(0 10px 8px #000a);transform-origin:50% 100%;animation:monsterTaunt 4.6s ease-in-out infinite}.stage-enemy svg{width:100%;height:80%;overflow:visible}.mini-monster-body{transform-origin:75px 145px}.mini-body,.mini-head,.mini-leg,.mini-arm,.mini-tail{fill:url(#miniRock);stroke:#9baa89;stroke-width:2}.mini-belly{fill:url(#monsterBelly)}.mini-eye{fill:#ff4b2f;filter:drop-shadow(0 0 4px #ff321e)}.mini-mouth{fill:#090d10;stroke:#9daa8c;stroke-width:2}.mini-crack{fill:none;stroke:#b7e17e;stroke-width:3;filter:drop-shadow(0 0 3px #7cff52)}.mini-arm{transform-box:fill-box;transform-origin:50% 12%}.stage-enemy .mini-arm.left{animation:tauntLeft 4.6s ease-in-out infinite}.stage-enemy .mini-arm.right{animation:tauntRight 4.6s ease-in-out infinite}.stage-enemy b,.stage-enemy small{position:absolute;left:0;right:0;bottom:3px;text-align:center;text-shadow:0 2px 5px #000}.stage-enemy b{font-size:10px;color:#ffe6a5}.stage-enemy small{bottom:-9px;font-size:7px;color:#90a4c9}.taunt-bubble{position:absolute;z-index:3;right:4%;top:-1%;padding:4px 7px;border:1px solid #ffb24c88;border-radius:10px 10px 2px 10px;background:#331828cc;color:#ffd37d;font-size:8px;font-weight:900;opacity:0;animation:tauntBubble 4.6s ease-out infinite}.stage-enemy[data-rank="1"]{filter:hue-rotate(290deg) saturate(1.45) drop-shadow(0 10px 8px #000a)}.stage-enemy[data-rank="2"]{filter:hue-rotate(120deg) saturate(1.5) drop-shadow(0 10px 8px #000a)}.stage-enemy[data-rank="3"]{filter:hue-rotate(220deg) saturate(1.8) brightness(.8) drop-shadow(0 10px 8px #000a)}
@keyframes tigaBreathe{0%,100%{transform:translateY(0) rotateY(-4deg)}50%{transform:translateY(-4px) rotateY(4deg)}}@keyframes tigaLook{0%,45%,100%{transform:rotate(0)}52%,60%{transform:rotate(-4deg)}65%{transform:rotate(3deg)}}@keyframes leftEnergyPose{0%,58%,89%,100%{transform:rotate(0)}66%,82%{transform:rotate(62deg) translate(2px,-3px)}}@keyframes rightEnergyPose{0%,58%,89%,100%{transform:rotate(0)}66%,82%{transform:rotate(-62deg) translate(-2px,-3px)}}@keyframes timerPulse{50%{filter:url(#lightGlow);opacity:.65}}@keyframes heroEnergyBurst{0%,65%{opacity:0;transform:scale(.2) rotate(0)}70%{opacity:1;transform:scale(.6) rotate(20deg)}78%{opacity:1;transform:scale(1.35) rotate(110deg)}86%,100%{opacity:0;transform:scale(2.15) rotate(180deg)}}@keyframes monsterTaunt{0%,30%,100%{transform:translateY(0) rotate(0)}37%{transform:translateY(-9px) rotate(-4deg)}44%{transform:translateY(0) rotate(4deg)}51%{transform:translateY(-5px) rotate(-2deg)}}@keyframes tauntLeft{0%,28%,58%,100%{transform:rotate(0)}36%,49%{transform:rotate(35deg)}}@keyframes tauntRight{0%,28%,58%,100%{transform:rotate(0)}36%,49%{transform:rotate(-45deg)}}@keyframes tauntBubble{0%,27%,58%,100%{opacity:0;transform:translateY(5px) scale(.8)}34%,49%{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:420px){.hero-duel{width:49%}.tiga-3d{left:0;width:75%}.stage-enemy{width:40%;right:-3%}.taunt-bubble{right:0}.hero-copy{width:59%}}
@media(prefers-reduced-motion:reduce){.tiga-model,.tiga-head,.tiga-arm,.color-timer,.energy-action,.stage-enemy,.stage-enemy .mini-arm,.taunt-bubble{animation:none!important}}

/* Reverted hero presentation */
.reverted-hero .tiga-3d,.reverted-hero .stage-enemy{display:none}.reverted-hero .restored-tiga{display:block}

/* User-reference hero and monster */
.reverted-hero{right:48px;width:210px;overflow:visible}.reverted-hero .restored-tiga{width:100%;height:100%;object-fit:cover;object-position:center;clip-path:polygon(40% 1%,48% 5%,52% 13%,59% 18%,70% 19%,77% 11%,80% 6%,86% 7%,88% 16%,86% 26%,80% 31%,69% 30%,65% 40%,72% 48%,82% 58%,93% 77%,89% 82%,82% 82%,70% 69%,59% 58%,52% 57%,39% 70%,35% 80%,25% 82%,18% 79%,21% 70%,26% 56%,35% 46%,38% 38%,34% 31%,26% 27%,17% 29%,10% 27%,7% 23%,9% 19%,16% 17%,25% 21%,34% 18%,36% 13%);filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 12px #6e7dff88) saturate(1.12) contrast(1.05);animation:referenceHeroAction 7s cubic-bezier(.4,0,.2,1) infinite}.hero-energy-core{position:absolute;z-index:8;right:25px;top:43px;width:11px;height:11px;border-radius:50%;opacity:0;background:#fff;box-shadow:0 0 8px 4px #fff,0 0 22px 10px #5eeaff;animation:referenceCore 7s ease-out infinite}.hero-energy-wave{position:absolute;z-index:7;right:-72px;top:42px;width:95px;height:15px;border-radius:50%;opacity:0;background:linear-gradient(90deg,#fff,#65efff 35%,transparent);filter:drop-shadow(0 0 7px #5fe9ff);transform-origin:left;animation:referenceWave 7s ease-out infinite}.hero-punch-trail{position:absolute;z-index:2;left:22px;top:78px;width:78px;height:38px;border:4px solid #fff3a5;border-right:0;border-radius:60% 0 0 60%;opacity:0;filter:drop-shadow(0 0 8px #ffcf4a);transform:rotate(-18deg);animation:punchTrail 7s ease-out infinite}.reference-monster{position:absolute;z-index:5;right:-5px;bottom:8px;width:118px;height:150px;transform-origin:65% 100%;filter:drop-shadow(0 9px 8px #000b);animation:referenceMonsterTaunt 4.8s ease-in-out infinite}.reference-monster img{width:100%;height:100%;object-fit:cover;clip-path:polygon(46% 0,52% 4%,61% 0,66% 10%,73% 5%,77% 13%,85% 14%,100% 24%,100% 100%,39% 100%,37% 78%,29% 70%,21% 59%,10% 53%,0 47%,2% 40%,12% 39%,19% 43%,25% 36%,29% 28%,33% 25%,34% 18%,39% 15%,40% 8%);filter:brightness(.72) contrast(1.35) saturate(.8);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 82%,transparent 100%)}.reference-monster b{position:absolute;right:4px;bottom:1px;padding:3px 6px;border-radius:9px;background:#071027cc;color:#ffcb79;font-size:8px;text-shadow:0 1px 3px #000}.monster-taunt{position:absolute;z-index:3;right:8px;top:-5px;width:max-content;padding:5px 8px;border:1px solid #ff8d5d77;border-radius:10px 10px 2px 10px;background:#391728e8;color:#ffd296;font-size:8px;font-weight:900;opacity:0;animation:referenceTauntBubble 4.8s ease-out infinite}.reference-monster[data-rank="1"] img{filter:hue-rotate(325deg) brightness(.8) contrast(1.35)}.reference-monster[data-rank="2"] img{filter:hue-rotate(95deg) brightness(.82) contrast(1.4)}.reference-monster[data-rank="3"] img{filter:hue-rotate(235deg) brightness(.58) contrast(1.5)}
@keyframes referenceHeroAction{0%,48%,88%,100%{transform:translate(0) rotate(0) scale(1)}55%{transform:translate(-3px,2px) rotate(-2deg) scale(.98)}64%{transform:translate(12px,-3px) rotate(2deg) scale(1.04)}73%{transform:translate(6px) rotate(0) scale(1.01)}}@keyframes referenceCore{0%,57%,76%,100%{opacity:0;transform:scale(.2)}62%{opacity:1;transform:scale(1)}68%{opacity:1;transform:scale(2.2)}}@keyframes referenceWave{0%,64%,100%{opacity:0;transform:scaleX(0)}67%{opacity:1;transform:scaleX(.2)}73%{opacity:1;transform:scaleX(1.25)}80%{opacity:0;transform:scaleX(1.5)}}@keyframes punchTrail{0%,50%,82%,100%{opacity:0;transform:rotate(-18deg) scale(.4)}58%{opacity:.9;transform:rotate(-18deg) scale(1.1)}66%{opacity:0;transform:rotate(-18deg) scale(1.5)}}@keyframes referenceMonsterTaunt{0%,25%,62%,100%{transform:translateY(0) rotate(0)}33%{transform:translate(-6px,-7px) rotate(-5deg) scale(1.04)}41%{transform:translate(2px,0) rotate(4deg)}50%{transform:translate(-3px,-3px) rotate(-2deg)}}@keyframes referenceTauntBubble{0%,24%,60%,100%{opacity:0;transform:translateY(6px) scale(.75)}31%,49%{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:420px){.reverted-hero{right:38px;width:190px}.reference-monster{right:-12px;width:105px;height:137px}.monster-taunt{right:5px;font-size:7px}.hero-energy-wave{right:-58px;width:78px}}
@media(prefers-reduced-motion:reduce){.reverted-hero .restored-tiga,.hero-energy-core,.hero-energy-wave,.hero-punch-trail,.reference-monster,.monster-taunt{animation:none!important}.reference-monster{transform:none}}
.reverted-hero .restored-tiga{object-fit:contain}
#toast{z-index:60}
#soundButton.playing{color:#9ff8ff;border-color:#59eaff88;box-shadow:0 0 14px #4eeaff33;animation:musicPulse 1.8s ease-in-out infinite}@keyframes musicPulse{50%{transform:scale(1.06);text-shadow:0 0 8px #72efff}}
.top-actions .icon-button{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;line-height:1;font-size:16px}.top-actions #calendarButton{font-size:19px}.top-actions #settingsButton{font-size:17px}

/* Clear daily completion feedback */
.today-status{display:none;align-items:center;gap:6px;width:max-content;margin:8px 0 -2px;padding:5px 9px;border:1px solid #8dffc766;border-radius:20px;background:#0c513b88;color:#baffdc;font-size:9px;font-weight:800;box-shadow:0 0 18px #45ffae22}.today-status i{display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#76ffc0;color:#073424;font-style:normal}.today-status.show{display:flex;animation:statusIn .45s cubic-bezier(.2,1.4,.3,1)}.completion-banner{display:none;align-items:center;gap:11px;margin:0 0 13px;padding:11px 13px;border:1px solid #73ffc655;border-radius:13px;background:linear-gradient(90deg,#0a4a3c99,#103b6299);box-shadow:inset 0 0 25px #46ff9d13}.completion-banner.show{display:flex}.completion-banner>span{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:#72ffc2;color:#07513a;box-shadow:0 0 17px #6dffc477}.completion-banner b,.completion-banner small{display:block}.completion-banner b{font-size:12px;color:#c9ffe8}.completion-banner small{margin-top:2px;color:#87bba7;font-size:8px}@keyframes statusIn{from{opacity:0;transform:scale(.7)}}

/* Training calendar */
.calendar-modal{position:fixed;z-index:45;inset:0;display:grid;place-items:center;padding:18px;background:#020617d9;backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.25s}.calendar-modal.open{opacity:1;visibility:visible}.calendar-sheet{width:min(100%,430px);padding:22px;border:1px solid #73e8ff44;border-radius:26px;background:linear-gradient(155deg,#142f65,#08152f 72%);box-shadow:0 24px 80px #000c}.calendar-sheet>header{position:relative;display:flex;justify-content:space-between;padding-right:45px}.calendar-sheet h2{margin:5px 0;font-size:23px}.calendar-sheet>header .close{position:absolute;right:0;top:0}.calendar-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:17px 0}.calendar-stats>div{padding:12px;text-align:center;border:1px solid #ffffff12;border-radius:14px;background:#06132d99}.calendar-stats b{display:block;color:#7fffd1;font-size:24px}.calendar-stats small{color:var(--muted);font-size:9px}.calendar-nav{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin:4px 0 13px;text-align:center}.calendar-nav button{width:36px;height:36px;border:1px solid #ffffff16;border-radius:11px;background:#0c234b;color:#dff8ff;font-size:25px}.calendar-nav b{font-size:14px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekdays{margin-bottom:6px}.weekdays span{text-align:center;color:#7086ae;font-size:9px}.calendar-day{position:relative;aspect-ratio:1;display:grid;place-items:center;border:1px solid transparent;border-radius:11px;color:#afbfda;font-size:11px}.calendar-day.empty{visibility:hidden}.calendar-day.future{opacity:.28}.calendar-day.today{border-color:#5eeaff;color:#fff;box-shadow:inset 0 0 12px #4eeaff22}.calendar-day.completed{background:linear-gradient(145deg,#23c981,#13775d);color:#fff;font-weight:900;box-shadow:0 0 13px #35ee9b44}.calendar-day.completed:after{content:"✓";position:absolute;right:3px;bottom:1px;color:#cffff0;font-size:7px}.calendar-day.today.completed{border-color:#fff7a1;box-shadow:0 0 15px #ffe96955}.calendar-legend{display:flex;justify-content:center;gap:20px;margin-top:16px;color:#8598bb;font-size:9px}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend i{width:8px;height:8px;border-radius:50%}.done-dot{background:#25c986}.today-dot{border:1px solid #5eeaff}
.reverted-hero .restored-tiga{clip-path:none!important;-webkit-mask-image:none!important;mask-image:none!important}.reference-monster{right:-8px;width:132px}.reference-monster img{object-fit:contain;object-position:right bottom;clip-path:none!important;-webkit-mask-image:none!important;mask-image:none!important}

/* Shared home and battle characters */
.top-actions{display:flex;gap:8px}.battle-reference{left:3%;width:45%;height:90%}.battle-reference img{object-fit:contain!important;object-position:center bottom!important;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 16px #63dfff99)!important}.battle-reference-monster{right:2%;width:48%;height:78%}.battle-reference-monster>svg{display:none}.battle-reference-monster>img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:brightness(.82) contrast(1.18) drop-shadow(0 0 13px #ff704455)}.battle-stage.rank-1 .battle-reference-monster>img{filter:hue-rotate(325deg) brightness(.9) contrast(1.18) drop-shadow(0 0 13px #ff6844)}.battle-stage.rank-2 .battle-reference-monster>img{filter:hue-rotate(95deg) brightness(.9) contrast(1.2) drop-shadow(0 0 13px #80dfff)}.battle-stage.rank-3 .battle-reference-monster>img{filter:hue-rotate(235deg) brightness(.7) contrast(1.35) drop-shadow(0 0 16px #a96aff)}

/* Parent settings */
.settings-modal{position:fixed;z-index:40;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:18px;background:#020617d9;backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.25s}.settings-modal.open{opacity:1;visibility:visible}.settings-sheet{width:min(100%,560px);max-height:92vh;overflow:auto;padding:22px;border:1px solid #7ce9ff33;border-radius:26px;background:linear-gradient(155deg,#122a5b,#08142f 70%);box-shadow:0 20px 80px #000b}.settings-sheet>header{position:relative;display:flex;justify-content:space-between;gap:18px;padding-right:44px}.settings-sheet>header h2{margin:5px 0;font-size:23px}.settings-sheet>header p{margin:0;color:var(--muted);font-size:11px}.settings-sheet>header .close{position:absolute;right:0;top:0}.setting-section{margin-top:18px;padding:16px;border:1px solid #ffffff12;border-radius:18px;background:#06122b88}.setting-title,.number-settings label{display:flex;align-items:center;justify-content:space-between;gap:12px}.setting-title b,.number-settings b{display:block;font-size:13px}.setting-title small,.number-settings small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.secondary-button,.primary-button{min-height:40px;border:1px solid #71dcff55;border-radius:12px;padding:8px 12px;background:#102c59;color:#dffaff;font-size:11px;font-weight:800}.primary-button{border:0;background:linear-gradient(90deg,#3fe7ff,#637cff);color:#08142e;padding-inline:24px}.danger{border-color:#ff7e8055;color:#ffb4b5;background:#3a1729}.task-editor{display:grid;gap:9px;margin-top:13px}.task-edit-row{display:grid;grid-template-columns:42px 1fr 38px;gap:8px}.task-edit-row input,.number-settings input,.stage-setting input{min-width:0;height:42px;border:1px solid #ffffff1c;border-radius:11px;background:#040d22;color:#fff;padding:0 11px;outline:none}.task-edit-row input:focus,.number-settings input:focus,.stage-setting input:focus{border-color:#57eaff;box-shadow:0 0 0 3px #57eaff18}.task-edit-row .task-name-input{font-size:12px}.task-edit-row .icon-input{text-align:center;padding:0;font-size:18px}.remove-task{height:42px;border:1px solid #ff6c6c33;border-radius:11px;background:#371528;color:#ff9d9d}.number-settings input{width:76px;text-align:center;font-size:17px;font-weight:900}.stage-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.stage-setting{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:12px;background:#071633}.stage-setting span{font-size:10px;color:#b8cae6}.stage-setting input{width:55px;height:36px;padding:0;text-align:center;font-weight:800}.settings-actions{position:sticky;bottom:-22px;display:flex;justify-content:space-between;gap:12px;margin:20px -22px -22px;padding:15px 22px calc(15px + env(safe-area-inset-bottom));border-top:1px solid #ffffff12;background:#07132ced;backdrop-filter:blur(12px)}@media(min-width:600px){.settings-modal{align-items:center}.settings-sheet{border-radius:28px}}@media(max-width:380px){.settings-sheet{padding:16px}.setting-section{padding:12px}.stage-settings{grid-template-columns:1fr}.settings-actions{margin-inline:-16px;margin-bottom:-16px;padding-inline:16px}}
