/* Card-pack cinematics. Only transforms/opacity move the flight and fragments. */
#cardPackWishRoot .cpw-stage.is-charging .cpw-package { animation:cpw-pack-anticipation 1.8s ease-in-out infinite; }
#cardPackWishRoot .cpw-stage.is-opening .cpw-package { animation:cpw-pack-tension var(--cp-unseal-duration,2350ms) ease both; }
#cardPackWishRoot .cpw-stage.is-opening .cpw-package-top { animation:cpw-pack-crown var(--cp-unseal-duration,2350ms) ease both; }
#cardPackWishRoot .cpw-stage.is-opening .cpw-package-body { animation:cpw-pack-shell var(--cp-unseal-duration,2350ms) ease both; }
#cardPackWishRoot .cpw-stage.is-opening .cpw-stage-burst { animation:cpw-pack-light var(--cp-unseal-duration,2350ms) ease both; }
.cpw-release-deck { position:absolute; inset:0; z-index:4; pointer-events:none; perspective:900px; }
.cpw-launch-card { position:absolute; top:46%; left:50%; display:grid; place-items:center; width:28%; aspect-ratio:2/3; opacity:0; border:1px solid #e8d3a4; border-radius:5%; background:radial-gradient(circle,#45315e,#10182c 70%); box-shadow:0 0 20px #bda3ff66,inset 0 0 0 4px #111a2b,inset 0 0 0 5px #c7ac7777; transform:translate(-50%,-50%); }
.cpw-launch-card::before { content:''; position:absolute; inset:15%; border:1px solid #dbc9ec77; transform:rotate(25deg); }
.cpw-launch-card i { color:#f5e5b9; font:40px/1 Georgia,serif; font-style:normal; text-shadow:0 0 16px #d9b4ff; }
.cpw-stage.is-opening .cpw-launch-card { animation:cpw-deck-lift 1350ms cubic-bezier(.2,.6,.35,1) both; animation-delay:calc(600ms + var(--launch-i) * 30ms); }
.cpw-package-rift { position:absolute; z-index:5; top:13%; bottom:10%; left:48%; width:5%; opacity:0; pointer-events:none; background:linear-gradient(90deg,transparent,#c2a0ff,#fff6d7,#c2a0ff,transparent); clip-path:polygon(44% 0,65% 0,51% 24%,83% 36%,46% 51%,67% 67%,36% 83%,54% 100%,30% 100%,43% 82%,28% 66%,36% 50%,62% 36%,30% 24%); transform-origin:center; }
.cpw-stage.is-opening .cpw-package-rift { animation:cpw-pack-rift var(--cp-unseal-duration,2350ms) ease both; }

#cardPackWishRoot .cpw-reveal-grid { perspective:1400px; }
#cardPackWishRoot .cpw-reveal-slot { --cp-fracture-color:#dceaff; transform-origin:50% 50%; transition:opacity .3s ease,filter .3s ease,transform .4s cubic-bezier(.2,.7,.2,1); }
#cardPackWishRoot .cpw-reveal-grid.is-arriving>.cpw-reveal-slot { animation:cpw-orbit-deal var(--cp-deal-duration,1550ms) cubic-bezier(.16,.65,.25,1) both; animation-delay:calc(var(--cp-index) * var(--cp-deal-stagger,85ms)); }
#cardPackWishRoot .is-arriving .cpw-card-back { backface-visibility:visible; -webkit-backface-visibility:visible; }
#cardPackWishRoot .is-unsealing>.cpw-reveal-slot:not(.is-active-reveal) { opacity:.3; filter:brightness(.6) saturate(.6); transform:scale(.965); }
#cardPackWishRoot .cpw-reveal-slot.is-active-reveal { z-index:20; transform:translateY(-9px) scale(1.055); }
#cardPackWishRoot .cpw-flip-inner { transform:none; transition:none; }
#cardPackWishRoot .cpw-flip-inner>.cpw-card-front { z-index:1; opacity:0; transform:none; clip-path:none; }
#cardPackWishRoot .cpw-flip-inner>.cpw-card-back { z-index:2; opacity:1; transition:opacity 80ms; }
#cardPackWishRoot .cpw-flip-card.is-revealed .cpw-flip-inner { transform:none; }
#cardPackWishRoot .cpw-flip-card.is-revealed .cpw-card-front { opacity:1; }
#cardPackWishRoot .cpw-flip-card.is-revealed>.cpw-flip-inner>.cpw-card-back,
#cardPackWishRoot .cpw-flip-card.is-cracking>.cpw-flip-inner>.cpw-card-back { opacity:0; }
#cardPackWishRoot .cpw-flip-card.is-revealed::after { content:none; }
#cardPackWishRoot .cpw-flip-card.is-cracking { cursor:pointer; }
#cardPackWishRoot .cpw-flip-card.is-cracking .cpw-flip-inner { animation:cpw-seal-breathe 1.65s ease-in-out infinite; }
#cardPackWishRoot .cpw-flip-card.is-shattering .cpw-flip-inner { animation:none; }

.cpw-back-fragments { position:absolute; z-index:3; inset:0; pointer-events:none; transform-style:preserve-3d; }
.cpw-back-fragment { position:absolute; inset:0; display:block; clip-path:var(--shard-mask); backface-visibility:visible; transform-origin:50% 50%; }
.cpw-back-fragment>.cpw-card-back { opacity:1; backface-visibility:visible; -webkit-backface-visibility:visible; }
.is-resonating .cpw-back-fragment { animation:cpw-fragment-strain 650ms ease-in-out infinite alternate; }
.is-shattering .cpw-back-fragment { animation:cpw-seal-shatter 740ms cubic-bezier(.15,.65,.4,1) both; animation-delay:calc(var(--shard-i) * 25ms); will-change:transform,opacity; }
.cpw-fracture { position:absolute; z-index:4; inset:0; pointer-events:none; color:var(--cp-fracture-color); transition:color .4s; }
.cpw-fracture>svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; filter:drop-shadow(0 0 3px currentColor); }
.cpw-fracture path { stroke:currentColor; stroke-width:.36; stroke-linejoin:round; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; animation:cpw-crack-draw 1000ms cubic-bezier(.5,.05,.55,1) both; animation-delay:calc(var(--ray-i) * 45ms); }
.cpw-fracture-core { position:absolute; left:50%; top:50%; width:5px; aspect-ratio:1; border-radius:50%; background:#fff; box-shadow:0 0 12px 3px var(--cp-fracture-color),0 0 35px 7px var(--cp-fracture-color); transform:translate(-50%,-50%); animation:cpw-core-ignite 1.25s ease-in both; }
.is-resonating .cpw-fracture-core { animation:cpw-core-pressure .65s ease-in-out infinite alternate; }
.is-shattering .cpw-fracture { opacity:0; transition:opacity .4s; }
.cpw-seal-effects { position:absolute; z-index:5; inset:-20%; pointer-events:none; color:var(--cp-fracture-color); transition:color .4s; }
.cpw-seal-halo { position:absolute; inset:7% -5%; opacity:.22; border-radius:50%; background:radial-gradient(ellipse,currentColor,transparent 66%); mix-blend-mode:screen; animation:cpw-halo-breathe 1.5s ease-in-out infinite; }
.cpw-seal-ring { position:absolute; inset:20% 5%; border:1px solid currentColor; border-radius:50%; opacity:.25; transform:rotateX(55deg) rotateZ(-15deg); box-shadow:0 0 20px color-mix(in srgb,currentColor 20%,transparent); }
.is-resonating .cpw-seal-ring { animation:cpw-ring-pressure .8s ease-in-out infinite alternate; }
[data-reveal-tier="LR"] .cpw-seal-halo { opacity:.36; }
[data-reveal-tier="UR"] .cpw-seal-halo { background:conic-gradient(from 20deg,transparent,#e7a7ff66,#9cddff66,#ffe9b366,#ffa7cf66,transparent); mask-image:radial-gradient(ellipse,#000,transparent 70%); -webkit-mask-image:radial-gradient(ellipse,#000,transparent 70%); opacity:.5; }
[data-reveal-tier="UR"] .cpw-seal-ring { border-color:#e3d4ff; box-shadow:0 0 22px #cba8ff77,inset 0 0 15px #8cdcff55; }
.is-shattering .cpw-seal-halo { animation:cpw-halo-release .9s ease-out both; }
.is-shattering .cpw-seal-ring { animation:cpw-ring-release .9s ease-out both; }
.cpw-seal-motes { position:absolute; inset:0; }
.cpw-seal-motes>i { position:absolute; top:50%; left:50%; width:var(--mote-size); height:calc(var(--mote-size) * 2.3); background:#fff2cf; color:var(--cp-fracture-color); box-shadow:0 0 7px currentColor; animation:cpw-seal-mote 850ms cubic-bezier(.08,.6,.3,1) both; animation-delay:var(--mote-delay,0ms); }
#cardPackWishRoot .is-shattering .cpw-card-front { animation:cpw-art-emerge 900ms cubic-bezier(.15,.6,.2,1) both; }
#cardPackWishRoot [data-reveal-tier="UR"] .is-shattering .cpw-card-front { animation-duration:1250ms; }
#cardPackWishRoot .is-shattering~.cpw-reward-caption { transition-delay:.3s; }
.cpw-opening-impact { position:absolute; z-index:2; inset:0; pointer-events:none; opacity:0; background:radial-gradient(ellipse 380px 300px at var(--cp-impact-x) var(--cp-impact-y),color-mix(in srgb,var(--cp-fracture-color) 50%,transparent),transparent 70%); animation:cpw-impact-bloom 950ms ease-out both; }
.cpw-opening-impact[data-tier="UR"] { background:radial-gradient(ellipse 550px 400px at var(--cp-impact-x) var(--cp-impact-y),#fff2e533,#d1a9ff66 20%,#83dfff22 45%,transparent 72%); }
#cardPackWishRoot .is-quick-reveal .cpw-flip-inner,
#cardPackWishRoot .is-quick-reveal .cpw-card-front,
#cardPackWishRoot .is-quick-reveal .cpw-back-fragment { animation-duration:120ms!important; animation-delay:0ms!important; }

@keyframes cpw-pack-anticipation { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-8px) rotate(1deg) scale(1.025); } }
@keyframes cpw-pack-tension { 0% { transform:scale(1); } 25% { transform:translateY(-12px) rotate(-2deg) scale(1.04); } 40% { transform:translateY(-16px) rotate(2deg) scale(1.07); } 58% { transform:translateY(-21px) rotate(-1deg) scale(1.1); } 100% { transform:translateY(-12px) scale(1.08); } }
@keyframes cpw-pack-crown { 0%,28% { transform:translateY(0); opacity:1; } 47% { transform:translateY(-12px) rotate(-3deg); opacity:1; } 72% { transform:translateY(-100px) rotateX(-45deg) rotate(-20deg); opacity:0; } 100% { transform:translateY(-160px) rotate(-32deg); opacity:0; } }
@keyframes cpw-pack-shell { 0%,40% { transform:translateY(0); opacity:1; } 62% { transform:translateY(12px) scale(1.03); opacity:1; } 100% { transform:translateY(70px) rotateX(12deg) scale(.84); opacity:0; } }
@keyframes cpw-pack-rift { 0%,12% { opacity:0; transform:scaleY(.02); } 32% { opacity:.8; transform:scaleY(.25); } 52% { opacity:1; transform:scaleY(1); } 72% { opacity:0; transform:scale(3,1.2); } 100% { opacity:0; } }
@keyframes cpw-pack-light { 0%,32% { opacity:0; transform:scale(.2); } 50% { opacity:.85; transform:scale(1); } 75% { opacity:.5; transform:scale(2); } 100% { opacity:0; transform:scale(2.8); } }
@keyframes cpw-deck-lift {
  0% { opacity:0; transform:translate(-50%,-5%) rotateY(0deg) scale(.2); }
  18% { opacity:1; }
  55% { opacity:1; transform:translate(calc(-50% + var(--launch-side) * 75px),-135%) rotateY(300deg) rotateZ(var(--launch-angle)) scale(.9); }
  100% { opacity:0; transform:translate(calc(-50% + var(--launch-side) * 160px),-245%) rotateY(660deg) rotateZ(calc(var(--launch-angle) * 1.6)) scale(.2); }
}
@keyframes cpw-orbit-deal {
  0% { opacity:0; transform:translate3d(var(--cp-origin-x),var(--cp-origin-y),-650px) rotateX(48deg) rotateY(var(--cp-flight-spin)) rotateZ(-28deg) scale(.12); }
  13% { opacity:1; }
  54% { opacity:1; transform:translate3d(var(--cp-flight-x),var(--cp-flight-y),130px) rotateX(-16deg) rotateY(calc(var(--cp-flight-spin) * .22)) rotateZ(var(--cp-flight-tilt)) scale(1.05); }
  82% { transform:translate3d(0,-12px,12px) rotateX(4deg) rotateY(-8deg) rotateZ(-3deg) scale(1.025); }
  100% { opacity:1; transform:translate3d(0,0,0) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(1); }
}
@keyframes cpw-seal-breathe { 0%,100% { transform:rotateX(0deg) rotateY(-1deg); } 50% { transform:translateY(-3px) rotateX(2deg) rotateY(1deg); } }
@keyframes cpw-crack-draw { 0% { stroke-dashoffset:1; opacity:.2; } 35% { opacity:.9; } 100% { stroke-dashoffset:0; opacity:1; } }
@keyframes cpw-core-ignite { from { opacity:0; transform:translate(-50%,-50%) scale(.1); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes cpw-core-pressure { from { transform:translate(-50%,-50%) scale(1); opacity:.7; } to { transform:translate(-50%,-50%) scale(1.8); opacity:1; } }
@keyframes cpw-halo-breathe { 0%,100% { transform:scale(.7); opacity:.14; } 50% { transform:scale(1.06); opacity:.38; } }
@keyframes cpw-ring-pressure { from { transform:rotateX(55deg) rotateZ(-15deg) scale(.88); opacity:.2; } to { transform:rotateX(55deg) rotateZ(10deg) scale(1.05); opacity:.65; } }
@keyframes cpw-fragment-strain { from { transform:translate(0,0); } to { transform:translate(calc(var(--shard-x) * .012),calc(var(--shard-y) * .012)); } }
@keyframes cpw-seal-shatter {
  0% { opacity:1; transform:translate3d(0,0,0) rotateZ(0deg) scale(1); }
  32% { opacity:.95; }
  100% { opacity:0; transform:translate3d(var(--shard-x),var(--shard-y),90px) rotateX(22deg) rotateY(35deg) rotateZ(var(--shard-turn)) scale(.55); }
}
@keyframes cpw-art-emerge {
  0% { opacity:.4; clip-path:polygon(49% 45%,51% 45%,52% 49%,55% 49%,55% 51%,52% 52%,51% 55%,49% 55%,48% 52%,45% 51%,45% 49%,48% 48%); transform:perspective(1000px) rotateY(-12deg) rotateX(6deg) scale(.96); filter:brightness(1.65); }
  40% { opacity:1; clip-path:polygon(39% 0,63% 0,57% 37%,100% 42%,100% 63%,61% 58%,65% 100%,38% 100%,43% 63%,0 58%,0 38%,40% 43%); }
  76% { clip-path:polygon(-25% -25%,50% -25%,125% -25%,125% 25%,125% 75%,125% 115%,50% 115%,-25% 115%,-25% 75%,-25% 50%,-25% 25%,-25% -25%); filter:brightness(1.08); }
  100% { opacity:1; clip-path:polygon(-25% -25%,50% -25%,125% -25%,125% 25%,125% 75%,125% 115%,50% 115%,-25% 115%,-25% 75%,-25% 50%,-25% 25%,-25% -25%); transform:none; filter:brightness(1); }
}
@keyframes cpw-halo-release { 0% { opacity:.65; transform:scale(.75); } 40% { opacity:.4; } 100% { opacity:0; transform:scale(1.8); } }
@keyframes cpw-ring-release { from { opacity:.8; transform:rotateX(30deg) scale(.5); } to { opacity:0; transform:rotateX(10deg) scale(1.9); } }
@keyframes cpw-seal-mote { from { opacity:0; transform:translate(0,0) rotate(0deg) scale(.2); } 12% { opacity:1; } to { opacity:0; transform:translate(var(--mote-x),var(--mote-y)) rotate(var(--mote-turn)) scale(.2); } }
@keyframes cpw-impact-bloom { 0% { opacity:0; } 18% { opacity:.8; } 100% { opacity:0; } }

@media(max-width:640px) {
  #cardPackWishRoot .cpw-reveal-slot.is-active-reveal { transform:translateY(-6px) scale(1.035); }
  .cpw-seal-effects { inset:-12%; }
}
@media(prefers-reduced-motion:reduce) {
  #cardPackWishRoot .cpw-reveal-slot,#cardPackWishRoot .cpw-flip-inner,#cardPackWishRoot .cpw-card-front { animation:none!important; transition:none!important; transform:none!important; }
  #cardPackWishRoot .cpw-card-front { clip-path:none!important; }
  #cardPackWishRoot .is-unsealing>.cpw-reveal-slot { opacity:1; filter:none; }
  .cpw-release-deck,.cpw-package-rift,.cpw-back-fragments,.cpw-fracture,.cpw-seal-effects,.cpw-opening-impact { display:none; }
}
