.ticket-wallet{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0}.ticket-wallet span{background:#1b2d42;border:1px solid #accbe866;padding:14px 20px;border-radius:12px}.ticket-wallet b{font-size:25px;margin-left:14px;color:#e9d6a5}.summon-packs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.summon-pack{padding:24px;border:1px solid #abc8e46b;border-radius:18px;background:radial-gradient(ellipse at top,#2b4a6b,#101b2c 75%);overflow:hidden}.summon-pack.prismatic{background:radial-gradient(ellipse at top,#50446b,#171a31 75%);border-color:#d5a7ed88}.ticket-banner{position:relative;aspect-ratio:2.25;overflow:hidden;border-radius:12px}.ticket-banner img{position:absolute;width:100%;height:auto;top:50%;transform:translateY(-50%)}.pack-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.pack-actions button{flex:1;min-height:48px}.summon-pack small{display:block;line-height:1.6}.finish-gallery,.tower-draft,.tower-deck{display:flex;flex-wrap:wrap;gap:18px;margin:24px 0}.finish-gallery article,.tower-deck article{width:150px;text-align:center}.finish-gallery small,.tower-deck small{display:block;margin:8px 0;color:#b1c6db}.finish-controls{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin:10px 0}.finish-controls button{font-size:10px;padding:8px 6px}.finish-controls button[aria-pressed=true]{border-color:#a8dbff;background:#284c68}.card.finish-foil:before,.card.finish-prismatic:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(115deg,transparent 15%,#d3eeff00 28%,#eaffff88 40%,#96cbf838 47%,transparent 60%);background-size:250% 100%;mix-blend-mode:screen;animation:foil-shine 5s ease-in-out infinite}.card.finish-prismatic:before{background-image:linear-gradient(115deg,transparent 10%,#ff84b75c 23%,#ffc87980 33%,#9affe978 43%,#bda2ff99 53%,transparent 68%);animation-duration:4s}.card.finish-foil{box-shadow:0 0 9px #c4e8ff77}.card.finish-prismatic{box-shadow:0 0 13px #c58aff99}.summon-reveal{position:relative;min-height:320px;overflow:hidden}.summon-crystal{display:none;position:absolute;inset:0;z-index:10;place-items:center;pointer-events:none;background:#060d20}.summon-crystal>img{width:min(350px,90%);height:350px;object-fit:contain;mix-blend-mode:screen}.animate .summon-crystal{display:grid;animation:crystal-exit 2.2s forwards}.animate .summon-crystal>img{animation:crystal-burst 2.2s forwards}.crystal-shards{position:absolute;inset:50%;width:0;height:0}.crystal-shards i{position:absolute;width:12px;height:30px;background:linear-gradient(#fff,#81d7ff);clip-path:polygon(50% 0,100% 55%,50% 100%,0 45%);animation:shard-burst 2.2s forwards;transform:rotate(var(--angle))}.rainbow .crystal-shards i{background:linear-gradient(#ffafdf,#9bebff,#f6eaaa)}.crystal-flash{position:absolute;inset:0;background:radial-gradient(ellipse,#fff,#addcff88 40%,transparent 75%);opacity:0;animation:crystal-flash 2.2s forwards}.summon-results{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;padding:16px 0}.summon-results article{display:flex;flex-direction:column;align-items:center;gap:8px;width:145px}.summon-results strong{font-size:14px;text-align:center}.summon-results small{color:#cceaff}.animate .summon-results,.animate .summon-result-note{animation:result-reveal 2.2s both}.legacy-chest{display:block;margin:16px 0;padding:14px 20px;border:1px solid #edcd77;border-radius:10px;color:#ffe29b;background:#433b22}.legacy-chest span{display:inline-block;margin-right:10px;animation:treasure-glow 2s ease-in-out infinite}.tower-milestones{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.tower-milestones span{padding:15px 8px;border:1px solid #9576b650;background:#211c34;border-radius:9px;text-align:center;font-size:12px}.tower-milestones b{display:block;margin:8px 0;color:#dabefa}.tower-milestones .earned{border-color:#8fd4b4}.tower-progress{margin:24px 0}.tower-progress strong{display:block;font-size:24px}.tower-progress progress{width:100%;height:10px;accent-color:#bf9dff}.tower-perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tower-perks article{padding:20px;background:#211e35;border:1px solid #b899db55;border-radius:12px}.tower-perks .card{margin:auto}.tower-perks button{width:100%;min-height:46px}.tower-rune{font-size:125px;height:190px;text-align:center;color:#bca2ef;text-shadow:0 0 28px #aa66ff}.tower-blessing{color:#a4e5ff}.combo-cinematic{position:absolute;inset:0;z-index:11;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 45px #ffdc8070;animation:combo-impact 2.1s both}.combo-cinematic:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse,#fff2a788,transparent 70%);animation:combo-flash .6s ease-out both}.capture-aura.cinematic{animation:aura-fade 2.1s forwards}.capture-aura.cinematic g{animation:chain-link .4s both;animation-delay:calc(.5s + var(--chain-step)*.13s)}.capture-label.cinematic{animation:aura-fade 2.1s forwards}.capture-label small{display:block;font-size:14px;letter-spacing:2px;margin-top:10px}.board.combo-paused .card{filter:brightness(1.15);transition:filter .5s}.board.combo-paused .just-placed{animation-duration:1s}
@keyframes foil-shine{0%,15%{background-position:160% 0}75%,100%{background-position:-90% 0}}@keyframes crystal-burst{0%{transform:scale(.75) rotate(-5deg);opacity:0}15%{opacity:1}50%{transform:scale(1) rotate(3deg);filter:brightness(1.15)}65%{transform:scale(1.06) rotate(-3deg);filter:brightness(1.8)}75%{transform:scale(1.4);filter:brightness(3);opacity:0}100%{opacity:0;transform:scale(1.5)}}@keyframes crystal-exit{0%,70%{opacity:1}100%{opacity:0;visibility:hidden}}@keyframes shard-burst{0%,60%{opacity:0;transform:rotate(var(--angle)) translateY(0)}70%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(calc(-1 * var(--travel))) rotate(70deg)}}@keyframes crystal-flash{0%,60%{opacity:0}70%{opacity:.9}100%{opacity:0}}@keyframes result-reveal{0%,70%{opacity:0;transform:translateY(15px)}100%{opacity:1;transform:translateY(0)}}@keyframes treasure-glow{50%{text-shadow:0 0 15px #ffeb99;transform:scale(1.1)}}@keyframes combo-impact{0%{opacity:0;transform:scale(.99)}24%{opacity:1;transform:scale(1)}85%{opacity:1}100%{opacity:0}}@keyframes combo-flash{0%{opacity:0}30%{opacity:.75}100%{opacity:0}}@keyframes chain-link{from{opacity:0;stroke-dashoffset:50}to{opacity:1;stroke-dashoffset:0}}
@media(max-width:760px){header nav{overflow-x:auto!important;flex-wrap:nowrap!important;justify-content:flex-start!important}header nav button{flex:0 0 auto!important;padding:8px 12px!important}.summon-packs,.tower-perks{grid-template-columns:1fr}.tower-milestones{grid-template-columns:repeat(3,1fr)}.summon-pack{padding:16px}.tower-draft{justify-content:center;gap:12px}.tower-draft .card{width:125px;height:172px}.tower-deck{justify-content:center}.summon-results .card{width:125px;height:172px}}
@media(prefers-reduced-motion:reduce){.card.finish-foil:before,.card.finish-prismatic:before,.legacy-chest span{animation:none}.animate .summon-crystal{display:none}.animate .summon-results,.animate .summon-result-note{animation:none}.combo-cinematic{display:none}.capture-aura.cinematic,.capture-aura.cinematic g,.capture-label.cinematic{animation:none}}

.summon-crystal{align-items:start;padding-top:12px}.crystal-shards{top:180px;left:50%}.blue .summon-crystal>img{filter:drop-shadow(0 0 22px #5dbaff)}
.summon-reveal.animate{min-height:420px}.summon-crystal>img{width:min(430px,100%);height:410px;mask-image:radial-gradient(ellipse,#000 40%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse,#000 40%,transparent 72%)}.crystal-shards{top:205px}@media(max-width:760px){.summon-reveal.animate{min-height:350px}.summon-crystal>img{height:330px}.crystal-shards{top:165px}}

.chapter-treasure{color:#ffe69b;text-shadow:0 0 9px #ffd45c}
/* Prismatic cards sit inside a faceted crystal; the face stays readable. */
.card.finish-prismatic{box-shadow:0 0 12px #90dfff66,0 0 20px #d7a2ff38,inset 0 0 7px #e9ffff77}
.card.finish-prismatic:before{background-image:linear-gradient(118deg,transparent 34%,#b9fcff00 39%,#dbffff44 43%,#fff9 45%,#e4ceff55 47%,#ffa6d822 50%,transparent 56%);background-size:300% 160%;animation:prism-sweep 6.8s ease-in-out infinite;z-index:3;opacity:.72}
.prism-shell{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;overflow:hidden;box-shadow:inset 0 0 0 1px #f1ffff88,inset 4px 3px 10px #b6edff33,inset -4px -3px 10px #e1aaff44}
.prism-shell i{position:absolute;inset:0;display:block;background:linear-gradient(135deg,#f5ffffaa,#91e3ff16 42%,#c6aaff66 72%,#ffdcf144);opacity:.28;animation:prism-facet 7s ease-in-out infinite;pointer-events:none}
.prism-shell i:nth-child(1){clip-path:polygon(0 0,50% 0,22% 17%,0 48%);animation-delay:-1s}
.prism-shell i:nth-child(2){clip-path:polygon(50% 0,100% 0,78% 17%,22% 17%);animation-delay:-3.7s;background:linear-gradient(165deg,#fff9,#b5eaff22,#f1b8ff77)}
.prism-shell i:nth-child(3){clip-path:polygon(100% 0,100% 52%,78% 17%);animation-delay:-2.2s}
.prism-shell i:nth-child(4){clip-path:polygon(100% 52%,100% 100%,78% 83%,78% 17%);animation-delay:-5.1s;background:linear-gradient(40deg,#bffaff77,#fff1,#e6b5ff99)}
.prism-shell i:nth-child(5){clip-path:polygon(100% 100%,50% 100%,78% 83%);animation-delay:-.3s}
.prism-shell i:nth-child(6){clip-path:polygon(50% 100%,0 100%,22% 83%,78% 83%);animation-delay:-4.2s}
.prism-shell i:nth-child(7){clip-path:polygon(0 100%,0 48%,22% 83%);animation-delay:-2.8s}
.prism-shell i:nth-child(8){clip-path:polygon(0 48%,22% 17%,22% 83%);animation-delay:-5.8s;background:linear-gradient(160deg,#d0b9ff88,#99f5ff22,#fff9)}
.prism-shell:before{content:'';position:absolute;inset:0;clip-path:polygon(0 0,22% 17%,78% 17%,100% 0,78.5% 17.5%,78.5% 82.5%,100% 100%,78% 83%,22% 83%,0 100%,21.5% 82.5%,21.5% 17.5%);background:linear-gradient(120deg,#ddffff44,#fff9,#d4b4ff66,#fff8);opacity:.5}
.prism-shell em{position:absolute;inset:-45%;background:linear-gradient(65deg,transparent 40%,#fff0 46%,#faffff77 49%,#a4ecff44 50%,#ffc9f533 51%,transparent 55%);clip-path:polygon(0 0,100% 0,76% 25%,76% 75%,100% 100%,0 100%,24% 75%,24% 25%);animation:prism-refraction 8s ease-in-out infinite;opacity:.6}
.card.finish-prismatic .ranks,.card.finish-prismatic .card-name{z-index:4}
@keyframes prism-facet{0%,100%{opacity:.2}28%{opacity:.6}52%{opacity:.28}76%{opacity:.45}}
@keyframes prism-sweep{0%,12%{background-position:140% 0;opacity:.3}45%{opacity:.75}78%,100%{background-position:-80% 0;opacity:.3}}
@keyframes prism-refraction{0%,100%{transform:translate(-14%,-9%) rotate(-10deg);opacity:.22}50%{transform:translate(14%,9%) rotate(10deg);opacity:.6}}
@media(prefers-reduced-motion:reduce){.card.finish-prismatic:before,.prism-shell i,.prism-shell em{animation:none!important}.card.finish-prismatic:before{background-position:50% 0;opacity:.3}.prism-shell i{opacity:.3}}
/* Explicit in-game motion preference also works when iOS requests reduced motion. */
.card-motion-on .card.finish-foil:before{animation:foil-shine 5s ease-in-out infinite!important}
.card-motion-on .card.finish-prismatic:before{animation:prism-sweep 6.8s ease-in-out infinite!important}
.card-motion-on .prism-shell i{animation-name:prism-facet!important;animation-duration:7s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:infinite!important}
.card-motion-on .prism-shell em{animation:prism-refraction 8s ease-in-out infinite!important}
.card-motion-off .card.finish-foil:before,.card-motion-off .card.finish-prismatic:before,.card-motion-off .prism-shell i,.card-motion-off .prism-shell em{animation:none!important}
