/* Original celestial cosmetics. All animated layers are decorative and ignore pointer events. */
.rarity-transcendent{--tier-rgb:166,163,255}
.rarity-transcendent .tier-swatch{background:linear-gradient(135deg,#fff4ba,#96faff 30%,#bb8cff 65%,#ffe0f7);box-shadow:0 0 18px #9898ff66}
.rarity-transcendent .shop-preview:before{background:radial-gradient(ellipse,#7454ff44,transparent 65%),linear-gradient(120deg,#78eeff22,#b28cff33,#ffdca322)!important}
.practice-style-picker{margin:0 0 14px}.practice-style-picker label{font-size:11px;color:#d4d6c1;margin-top:0}.practice-style-picker select{font-size:12px}

/* Prismatic opal and Transcendent energy markers: two layers per marker. */
.tanto:is(.tanto-prism-lotus-marker,.tanto-aurora-halo-marker,.tanto-event-horizon-marker,.tanto-astral-nova-marker){position:relative;isolation:isolate;width:var(--premium-size,34px);height:var(--premium-size,34px);font-size:calc(var(--premium-size,34px)*.64);font-style:normal;color:#fff;overflow:visible;filter:drop-shadow(0 0 4px #a7e8ff99);text-shadow:0 1px 2px #273151;animation:premiumFloat 6s ease-in-out infinite;transform-style:preserve-3d}
.marker-preview{--premium-size:78px}.marker-preview:has(.tanto-event-horizon-marker),.marker-preview:has(.tanto-astral-nova-marker){background:radial-gradient(ellipse at 50% 45%,#60359977,#06101d 70%)}
.cell{--premium-size:30px}.marker-tray{--premium-size:32px}
.tanto:is(.tanto-prism-lotus-marker,.tanto-aurora-halo-marker,.tanto-event-horizon-marker,.tanto-astral-nova-marker):before,.tanto:is(.tanto-prism-lotus-marker,.tanto-aurora-halo-marker,.tanto-event-horizon-marker,.tanto-astral-nova-marker):after{content:'';position:absolute;pointer-events:none;box-sizing:border-box;border-radius:inherit}
.tanto-prism-lotus-marker{border-radius:28% 72% 31% 69%/70% 32% 68% 30%;border:1px solid #efffff;background:conic-gradient(from 30deg,#e5ffff,#8bdcff,#ca9aff,#fff1d4,#b6fff2,#e5ffff);box-shadow:inset 2px 2px 5px #fff,inset -3px -4px 7px #8460b599,0 0 7px #adffff88}
.tanto-prism-lotus-marker:before{inset:13%;border:1px solid #fff;background:linear-gradient(135deg,#fff9,transparent 45%,#b9eaff88);transform:rotate(45deg);animation:prismFacet 9s ease-in-out infinite}
.tanto-prism-lotus-marker:after{inset:-14%;border:1px solid #cbfdffaa;border-radius:50%;border-left-color:transparent;border-bottom-color:transparent;animation:premiumOrbit 8s linear infinite}
.tanto-aurora-halo-marker{border-radius:50%;border:1px solid #eeffff;background:radial-gradient(circle at 32% 24%,#fff 0,#e4ffff 15%,#a7e5ef 35%,#a99eea 62%,#615482 90%);box-shadow:inset -3px -4px 6px #463e7d88,0 0 8px #a1ecff77}
.tanto-aurora-halo-marker:before{inset:-20% -32%;border:3px solid #c8fff1;border-top-color:#f8bcff;border-bottom-color:#a9c6ff;border-radius:50%;transform:rotateX(65deg) rotate(-25deg);animation:auroraOrbit 7s linear infinite;box-shadow:0 0 4px #ddfaff88}
.tanto-aurora-halo-marker:after{inset:10%;border-top:2px solid white;border-radius:50%;transform:rotate(-40deg);opacity:.7}
.tanto-event-horizon-marker{font-size:0!important;border-radius:50%;border:1px solid #d2b2ff;background:radial-gradient(circle,#03000c 0 37%,#1d0c3e 49%,#b8a1ff 56%,#3a0f72 67%,#09051c 80%);box-shadow:0 0 9px #9669ff88}
.tanto-event-horizon-marker:before{inset:-22%;border-radius:50%;background:conic-gradient(from 0deg,#8bffff,#b28cff,#ffbbf3,#d5c0ff,#8bffff);mask:radial-gradient(circle,transparent 44%,#000 46% 55%,transparent 59%);animation:premiumOrbit 5s linear infinite}
.tanto-event-horizon-marker:after{inset:-13% -28%;border:2px solid #b4f9ff;border-left-color:#fff1c5;border-right-color:#a678ff;border-radius:50%;box-shadow:0 0 6px #98f4ff66;animation:horizonOrbit 8s linear infinite}
.tanto-astral-nova-marker{border-radius:30%;border:1px solid #edffff;background:radial-gradient(circle at 40% 35%,#fff 0 16%,#c5ffff 28%,#9d8aff 54%,#4a2b8b 85%);box-shadow:inset 0 0 5px #fff,0 0 10px #a8c3ff99;color:#fff7cf}
.tanto-astral-nova-marker:before{inset:-23%;border:2px solid #b6f5ff;border-top-color:transparent;border-bottom-color:#efafff;border-radius:48% 52% 28% 72%;animation:premiumOrbit 6s linear infinite;box-shadow:0 0 5px #d0b9ff77}
.tanto-astral-nova-marker:after{inset:-10%;border:1px solid #fff3c2;border-left-color:transparent;border-right-color:transparent;border-radius:50%;animation:novaOrbit 9s linear infinite}
@keyframes premiumFloat{0%,100%{transform:translate3d(0,0,0) rotate(-3deg)}50%{transform:translate3d(0,-2px,0) rotate(3deg)}}
@keyframes prismFacet{0%,100%{transform:rotate(45deg);opacity:.55}50%{transform:rotate(135deg);opacity:.9}}
@keyframes premiumOrbit{to{transform:rotate(360deg)}}
@keyframes auroraOrbit{from{transform:rotateX(65deg) rotateZ(-25deg)}to{transform:rotateX(65deg) rotateZ(335deg)}}
@keyframes horizonOrbit{from{transform:rotateZ(-28deg) rotateX(62deg)}to{transform:rotateZ(332deg) rotateX(62deg)}}
@keyframes novaOrbit{from{transform:rotateX(55deg) rotateY(-25deg) rotateZ(0)}to{transform:rotateX(55deg) rotateY(-25deg) rotateZ(-360deg)}}

/* Astral Ascension: deep-space layers and continuous energy arcs behind the number grid. */
.skin-astral-ascension{--cell-energy:#a1edff;--cell-aura:#7963c8;position:relative;isolation:isolate;overflow:hidden;background:#080c28!important;border:1px solid #c7d7ff!important;border-radius:18px;box-shadow:0 0 0 2px #8877bc88,0 0 26px #9a83ff44,inset 0 0 28px #3955a844!important;perspective:900px;transform-style:preserve-3d;animation:astralLevitate 12s ease-in-out infinite;contain:paint}
.skin-astral-ascension:before{content:'';position:absolute;inset:-50%;z-index:0;background:conic-gradient(from 20deg,transparent 0 15%,#70eaff22 18%,transparent 24% 46%,#d2a8ff33 51%,transparent 56% 79%,#ffe5aa22 83%,transparent 88%);animation:astralTurn 32s linear infinite;pointer-events:none}
.skin-astral-ascension>.card-head,.skin-astral-ascension .mini-head{position:relative;z-index:2;color:#effbff;text-shadow:0 0 8px #a6d7ff88,0 2px 2px #0a0d29}
.skin-astral-ascension>.card-head{letter-spacing:2px;padding:7px 0 12px}
.skin-astral-ascension .cells{position:relative;z-index:2}
.skin-astral-ascension .cell,.bingo-app .bingo-card.skin-astral-ascension .cell:not(.marked){background:linear-gradient(145deg,#101c3cdf,#151031dd)!important;border:1px solid #9ac9f16b!important;color:#f4f5ff!important;box-shadow:inset 0 1px 0 #e2e5ff18,0 1px 5px #0004;text-shadow:0 1px 3px #000}
.skin-astral-ascension .cell:disabled{opacity:.9!important}
.skin-astral-ascension .cell.free{color:#fff1b3!important;border-color:#e3d4a9aa!important;background:linear-gradient(135deg,#4f416fcc,#172447e6)!important}
.bingo-app .bingo-card.skin-astral-ascension .cell.marked{background:linear-gradient(135deg,#3f376c,#173c59)!important;color:#fff!important;border-color:#bfddffaa!important;box-shadow:inset 0 0 10px #9f99d94d,0 0 6px #97d5ff22}
.skin-astral-ascension .cell.called:not(.marked){border-color:#f6dda0ba!important;box-shadow:inset 0 0 10px #f4c66f22}
.skin-astral-ascension .cell:hover:not(:disabled){border-color:#e4f9ff!important;background:#263457ed!important}
.skin-astral-ascension .card-id{position:relative;z-index:2;color:#d8deff;text-shadow:0 1px 2px #05051c}
.scene-astral-ascension{background:radial-gradient(ellipse at 65% 12%,#23295d88,transparent 50%),linear-gradient(160deg,#09122c,#190e34 70%,#08182b);opacity:1}
.astral-nebula{position:absolute;inset:-40%;background:radial-gradient(ellipse at 25% 20%,#69eaff30,transparent 30%),radial-gradient(ellipse at 65% 50%,#b879f74d,transparent 38%),radial-gradient(ellipse at 40% 75%,#f69fdb22,transparent 30%);animation:nebulaBreathe 18s ease-in-out infinite alternate;will-change:transform}
.astral-starfield{position:absolute;inset:-12%;background-image:radial-gradient(circle at 13% 21%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 73% 45%,#9fceff 0 1px,transparent 1.5px),radial-gradient(circle at 42% 83%,#ddbbff 0 1px,transparent 1.5px);background-size:63px 81px,97px 113px,79px 99px;opacity:.6;animation:starDepth 24s ease-in-out infinite alternate}
.stars-near{background-size:117px 139px,151px 127px,97px 157px;opacity:.7;animation-duration:17s;animation-direction:alternate-reverse}
.astral-planet{position:absolute;left:47%;top:3%;width:140px;height:140px;transform-style:preserve-3d;animation:planetFloat 14s ease-in-out infinite}
.planet-sphere{position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle at 29% 22%,#e9faff,#acb1ff 20%,#7164b4 48%,#302550 74%,#0d1130);box-shadow:inset -12px -10px 22px #070e2b,0 0 14px #b7a0ff55}
.planet-ring{position:absolute;inset:7%;border:3px solid #b9e9ffa6;border-left-color:#fff1bd;border-bottom-color:#8463bf;border-radius:50%;transform:rotateX(68deg) rotateY(-20deg);box-shadow:0 0 6px #96caff44}
.planet-ring.ring-two{inset:-2%;border-width:1px;border-color:#8f86b888;transform:rotateX(68deg) rotateY(-20deg) rotateZ(30deg)}
.astral-aperture{position:absolute;left:-12%;bottom:-9%;width:70%;aspect-ratio:1;border:2px solid #dab3ff77;border-radius:50%;background:radial-gradient(circle,#07091f 22%,#36234d 35%,#b889cf66 39%,transparent 51%);transform:rotateX(60deg) rotateZ(-30deg);box-shadow:0 0 18px #7764c344}
.energy-ribbon{position:absolute;inset:9% -24%;border:3px solid transparent;border-top-color:#a4faff;border-right-color:#80cfff88;border-radius:46% 54% 59% 41%;transform:rotate(-32deg) rotateX(40deg);box-shadow:0 -2px 8px #9cefff33;animation:energyBreathing 9s ease-in-out infinite;opacity:.72}
.ribbon-violet{inset:17% -32%;border-width:2px;border-top-color:#e1aaff;border-right-color:#d49efb77;animation-delay:-3s;animation-duration:11s;transform:rotate(35deg) rotateX(45deg);box-shadow:0 -2px 9px #c28bff44}
.ribbon-gold{inset:26% -25%;border-width:1px;border-top-color:#ffe7b3;border-right-color:#e8cfa577;animation-delay:-6s;animation-duration:13s;opacity:.5;box-shadow:none}
.astral-comet{position:absolute;left:-20%;top:15%;width:50%;height:2px;background:linear-gradient(90deg,transparent,#a5f4ff);border-radius:50%;transform:rotate(28deg);opacity:.6;animation:cometPass 13s linear infinite}
.comet-rose{top:72%;background:linear-gradient(90deg,transparent,#f6c2ff);animation-delay:-7s;animation-duration:17s}
.astral-spark{position:absolute;left:var(--spark-x);top:var(--spark-y);font:9px Georgia;color:#edf3ff;animation:sparkBreathe 7s var(--spark-delay) ease-in-out infinite;opacity:.75;text-shadow:0 0 6px #b5d7ff}
.astral-mini .astral-planet{width:80px;height:80px;left:45%;top:-8%}.astral-mini .energy-ribbon{border-width:1px}.astral-mini .astral-spark{font-size:5px}
.astral-flow{position:absolute;inset:0;width:100%;height:100%;overflow:visible;opacity:.8;pointer-events:none}.astral-flow path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:140 1200;animation:astralCurrent 12s linear infinite}.flow-wake{stroke:#b37aff;stroke-width:18;opacity:.18}.flow-ribbon{stroke:#9df6ff;stroke-width:5;opacity:.65}.flow-core{stroke:#efffff;stroke-width:1.5;opacity:.8}.astral-mini .astral-flow{display:none}
@keyframes astralCurrent{to{stroke-dashoffset:-1340}}
@keyframes astralLevitate{0%,100%{transform:perspective(1000px) rotateX(1deg) rotateY(-1.5deg) translateY(0)}50%{transform:perspective(1000px) rotateX(-1deg) rotateY(1.5deg) translateY(-3px)}}
@keyframes astralTurn{to{transform:rotate(360deg)}}
@keyframes nebulaBreathe{from{transform:rotate(-8deg) scale(1)}to{transform:rotate(13deg) scale(1.12)}}
@keyframes starDepth{to{transform:translate3d(-9px,-13px,0)}}
@keyframes planetFloat{0%,100%{transform:translate3d(0,0,0) rotate(-8deg)}50%{transform:translate3d(5px,-5px,0) rotate(4deg)}}
@keyframes energyBreathing{0%,100%{transform:rotate(-32deg) rotateX(40deg) scale(1);opacity:.55}50%{transform:rotate(-12deg) rotateX(58deg) scale(1.07);opacity:.85}}
@keyframes cometPass{from{transform:translate3d(-70px,-25px,0) rotate(28deg)}to{transform:translate3d(500px,220px,0) rotate(28deg)}}
@keyframes sparkBreathe{0%,100%{transform:scale(.75);opacity:.45}50%{transform:scale(1.1);opacity:.85}}
.decorations-off .skin-astral-ascension,.decorations-off .tanto:before,.decorations-off .tanto:after{animation:none!important;transform:none}
.cosmetics-paused .skin-astral-ascension,.cosmetics-paused .scene-astral-ascension *,.cosmetics-paused .tanto,.cosmetics-paused .tanto:before,.cosmetics-paused .tanto:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.skin-astral-ascension,.scene-astral-ascension *,.tanto,.tanto:before,.tanto:after{animation:none!important}.skin-astral-ascension{transform:none!important}}
