/* NACHTARCHIV / tactile motion layer. Deliberately no layout ownership. */
.vfx-layer{position:fixed;inset:0;z-index:120;pointer-events:none;overflow:hidden;contain:strict;--vfx-color:#ffd374}
.vfx-layer *{pointer-events:none}
.vfx-wallet-counting{font-variant-numeric:tabular-nums;color:#f8deb1!important;text-shadow:0 0 16px #ffcf7159}
.vfx-wallet-arrival{animation:vfx-wallet-arrival .48s ease-out both}
.vfx-reward-ring{position:absolute;width:30px;height:30px;border:1px solid var(--vfx-color);border-radius:50%;box-shadow:0 0 18px color-mix(in srgb,var(--vfx-color),transparent 70%);animation:vfx-reward-ring .65s ease-out both}
.vfx-reward-caption{position:absolute;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--vfx-color);text-shadow:0 2px 8px #08150d,0 0 24px #000c;animation:vfx-reward-caption 1.25s ease-out both}
.vfx-particle{position:absolute;display:block;width:12px;height:12px}
.vfx-particle-coin{border:1px solid #ffeab1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe2a4 0,#cf9a36 50%,#83571e 80%);box-shadow:inset 0 0 0 2px #cc944e,0 0 8px #ffcd6380}
.vfx-particle-coin:after{content:'';position:absolute;inset:3px 5px;background:#fff0b2}
.vfx-particle-dust{width:9px;height:13px;background:linear-gradient(135deg,#f1ffff,#a6d1d7 43%,#437c84);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);filter:drop-shadow(0 0 5px #9be6ff)}
.vfx-pack-cinematic{pointer-events:none!important;will-change:transform}
.vfx-pack-cinematic .tear-hint{transition:opacity .18s;animation:vfx-seal-pressure .62s ease-in both}
.vfx-pack-split .tear-hint{opacity:0}
.vfx-pack-stage{isolation:isolate}
.vfx-sigil{position:absolute;width:110px;height:110px;border:1px solid #efdd92;border-radius:50%;box-shadow:inset 0 0 15px #ffe19d15,0 0 24px #e6d69325;animation:vfx-sigil-charge 1.1s ease-in-out both}
.vfx-sigil:before,.vfx-sigil:after{content:'';position:absolute;inset:12px;border:1px solid #e7d593aa;transform:rotate(45deg)}
.vfx-sigil:after{inset:25px;border-color:#fff2bf80;transform:rotate(15deg)}
.vfx-charge-halo{position:absolute;width:250px;height:160px;border-radius:50%;background:radial-gradient(ellipse,#eedca859 0,#e0c56317 30%,transparent 68%);animation:vfx-charge-halo 1.05s ease-in both}
.vfx-paper-fibre{position:absolute;width:var(--vfx-fragment-width,5px);height:14px;border:1px solid #f2d59380;background:linear-gradient(90deg,#b49c6b,#e8d9a9 45%,#bdab78);clip-path:polygon(12% 0,100% 8%,80% 73%,42% 100%,0 69%)}
.vfx-card-revealing{position:relative;z-index:3;will-change:transform;opacity:1!important}
.vfx-card-shine{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:5}
.vfx-card-shine:after{content:'';position:absolute;inset:-35%;background:linear-gradient(105deg,transparent 38%,#ffffff08 44%,#ffffff70 49%,#ffffff08 54%,transparent 60%);animation:vfx-card-shine 1.05s .2s cubic-bezier(.2,.5,.3,1) both;mix-blend-mode:screen}
.vfx-card-aura{position:absolute;width:var(--vfx-aura-size,270px);height:calc(var(--vfx-aura-size,270px)*1.3);background:radial-gradient(ellipse,color-mix(in srgb,var(--vfx-color),transparent 78%),transparent 68%);animation:vfx-card-aura 1.1s ease-out both;mix-blend-mode:screen}
.vfx-rarity-mote{position:absolute;width:5px;height:5px;background:var(--vfx-color);box-shadow:0 0 9px var(--vfx-color);clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.vfx-rarity-beams{position:absolute;width:min(700px,115vw);height:min(700px,115vw);border-radius:50%;opacity:0;background:repeating-conic-gradient(from 0deg,transparent 0deg 13deg,color-mix(in srgb,var(--vfx-color),transparent 79%) 15deg 18deg,transparent 22deg 36deg);mask-image:radial-gradient(circle,transparent 7%,#000 21%,#0009 43%,transparent 68%);animation:vfx-stage-beams 1.65s ease-out both;mix-blend-mode:screen}
.vfx-beams-epic{width:min(530px,100vw);height:min(530px,100vw);opacity:.6}
.vfx-beams-mythic{background:repeating-conic-gradient(from 15deg,transparent 0deg 10deg,#ff8e9640 12deg 15deg,transparent 19deg 31deg,#ffe5a72c 33deg 35deg,transparent 39deg 48deg)}
.vfx-rarity-orbit{position:absolute;width:250px;height:250px;border:1px solid color-mix(in srgb,var(--vfx-color),transparent 40%);border-radius:50%;box-shadow:0 0 23px color-mix(in srgb,var(--vfx-color),transparent 85%);animation:vfx-rarity-orbit 1.5s .13s ease-out both}
.vfx-orbit-outer{width:310px;height:310px;border-style:dashed;animation-delay:.28s}
.vfx-reel-window{position:relative;display:block!important;overflow:hidden!important;contain:paint}
.vfx-reel-strip{display:flex;flex-direction:column;width:100%;will-change:transform}
.vfx-reel-symbol{display:flex;flex:none;align-items:center;justify-content:center;width:100%}
.vfx-reel-symbol>svg{max-width:74%;max-height:74%}
.vfx-reels-active [data-vfx-reel]{box-shadow:inset 0 15px 15px -12px #000c,inset 0 -15px 15px -12px #000c}
.vfx-tilting{transform:perspective(750px) rotateX(var(--vfx-tilt-x,0deg)) rotateY(var(--vfx-tilt-y,0deg));transition:transform .12s ease-out!important}

/* Rarity is a material language, not just a tiny colored label. */
.rarity-common{--vfx-color:#c7d3dc;--vfx-surface:#26303a;--vfx-edge:#97a9b8;--rarity:#c7d3dc}
.rarity-uncommon{--vfx-color:#8cdf9b;--vfx-surface:#203c2c;--vfx-edge:#62b878;--rarity:#8cdf9b}
.rarity-rare{--vfx-color:#72daf4;--vfx-surface:#153b49;--vfx-edge:#4dbbdc;--rarity:#72daf4}
.rarity-epic{--vfx-color:#bd8cff;--vfx-surface:#392348;--vfx-edge:#a374d4;--rarity:#bd8cff}
.rarity-legendary{--vfx-color:#ffd374;--vfx-surface:#49381c;--vfx-edge:#dcab48;--rarity:#ffd374}
.rarity-mythic{--vfx-color:#ff8e96;--vfx-surface:#4d2634;--vfx-edge:#eb8493;--rarity:#ff8e96}
:is(.relic-card,.reveal-card,.teaser-card,.detail-art)[class*="rarity-"]{border-color:var(--vfx-edge);box-shadow:0 0 0 1px color-mix(in srgb,var(--vfx-edge),transparent 75%),0 8px 28px #0004;background-color:var(--vfx-surface)}
:is(.relic-card,.reveal-card)[class*="rarity-"] :is(.card-caption,.reveal-caption){background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--vfx-color),transparent 80%),transparent 75%),var(--vfx-surface)}
.reveal-card[class*="rarity-"] .card-front{border-color:var(--vfx-edge);background:var(--vfx-surface)}
.relic-card[class*="rarity-"] .rarity-label,.reveal-card[class*="rarity-"] .rarity-label{color:var(--vfx-color);text-shadow:0 0 15px color-mix(in srgb,var(--vfx-color),transparent 70%)}
:is(.relic-card,.reveal-card).rarity-legendary{box-shadow:0 0 0 1px #f8d18745,0 0 22px #c3982a16,0 10px 30px #0006}
:is(.relic-card,.reveal-card).rarity-mythic{box-shadow:0 0 0 1px #ffaeb763,0 0 26px #f881a02a,0 10px 30px #0006}
.reveal-card.rarity-legendary .card-front:after,.reveal-card.rarity-mythic .card-front:after{content:'';position:absolute;inset:5px;pointer-events:none;border:1px solid color-mix(in srgb,var(--vfx-color),transparent 60%);border-radius:3px}

@keyframes vfx-wallet-arrival{0%,100%{transform:scale(1)}40%{transform:scale(1.15);color:#ffe6a6}}
@keyframes vfx-reward-ring{0%{opacity:.85;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(4)}}
@keyframes vfx-reward-caption{0%{opacity:0;transform:translate(-50%,0) scale(.87)}18%{opacity:1;transform:translate(-50%,-16px) scale(1.05)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-60px) scale(.96)}}
@keyframes vfx-seal-pressure{0%{filter:brightness(1)}100%{filter:brightness(1.45);box-shadow:0 0 20px #e9d89160}}
@keyframes vfx-sigil-charge{0%{opacity:0;transform:translate(-50%,-50%) rotate(-65deg) scale(1.6)}25%{opacity:.65}55%{opacity:1;transform:translate(-50%,-50%) rotate(0deg) scale(.65)}68%{opacity:.85;transform:translate(-50%,-50%) rotate(15deg) scale(.74)}100%{opacity:0;transform:translate(-50%,-50%) rotate(25deg) scale(2.3)}}
@keyframes vfx-charge-halo{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}58%{opacity:.8;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
@keyframes vfx-card-shine{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes vfx-card-aura{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}35%{opacity:.8;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}
@keyframes vfx-stage-beams{0%{opacity:0;transform:translate(-50%,-50%) rotate(-18deg) scale(.5)}25%{opacity:.7;transform:translate(-50%,-50%) rotate(-4deg) scale(1)}70%{opacity:.38}100%{opacity:0;transform:translate(-50%,-50%) rotate(15deg) scale(1.1)}}
@keyframes vfx-rarity-orbit{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-20deg)}22%{opacity:.55}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5) rotate(25deg)}}

@media(max-width:600px){.vfx-reward-caption{font-size:18px}.vfx-rarity-orbit{width:190px;height:190px}.vfx-orbit-outer{width:240px;height:240px}.vfx-particle{width:10px;height:10px}}
@media(prefers-reduced-motion:reduce){[class*="vfx-"]{animation:none!important;transition:none!important}.vfx-layer{display:none!important}.vfx-tilting{transform:none!important}}
.reduced-motion [class*="vfx-"]{animation:none!important;transition:none!important}.reduced-motion .vfx-layer{display:none!important}.reduced-motion .vfx-tilting{transform:none!important}
