/* ChaseTCG · vitrine 3D, cartes et décors animés */
/* ===== Vitrine 3D ===== */
.stage{position:relative;height:clamp(340px,48svh,460px);perspective:1100px;perspective-origin:50% 22%;
  touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;margin-top:6px}
@media (min-width:960px){.stage{height:min(76svh,620px);margin-top:0}}
.stage.grabbing{cursor:grabbing}
.spot{position:absolute;left:50%;top:-8%;width:120%;height:118%;transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(48% 60% at 50% 74%,var(--spot),transparent 72%)}
/* le plan de la caméra (z = 0) passerait devant les objets au toucher : seuls les objets le reçoivent */
.cam{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none;transform:rotateX(calc(-9deg + var(--px,0deg))) rotateY(var(--py,0deg));transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ring{position:absolute;left:50%;top:74%;transform-style:preserve-3d}
.floor{position:absolute;border-radius:50%;transform-style:preserve-3d;pointer-events:none;
  background:
    radial-gradient(closest-side,transparent 86%,var(--floor-rim) 87.5%,transparent 89%),
    repeating-radial-gradient(closest-side,var(--floor-b) 0 10px,transparent 10px 22px),
    radial-gradient(closest-side,var(--floor-a),var(--floor-b) 70%,transparent)}
.floor::after{content:"";position:absolute;inset:0;border-radius:50%;opacity:.55;
  background:conic-gradient(from 210deg,transparent 0 20%,#16D9F2 26%,#7A5CFF 32%,#F23DCB 38%,#F7A030 44%,transparent 50%);
  -webkit-mask:radial-gradient(closest-side,transparent 92%,#000 93%,#000 95%,transparent 96%);mask:radial-gradient(closest-side,transparent 92%,#000 93%,#000 95%,transparent 96%)}
.ri{position:absolute;left:0;top:0;transform-style:preserve-3d;will-change:transform;pointer-events:auto;cursor:pointer}
.ri .sh{position:absolute;left:50%;top:100%;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,var(--shadow),transparent);transform-origin:50% 50%}
.ri.prod img{width:100%;height:100%;object-fit:contain;object-position:50% 100%;pointer-events:none;
  -webkit-box-reflect:below 1px linear-gradient(transparent 62%,rgba(255,255,255,.22));
  filter:drop-shadow(0 2px 2px var(--shadow-soft))}
.stage-hint{position:absolute;left:0;right:0;bottom:6px;margin:0;text-align:center;font-size:.82rem;color:var(--muted);pointer-events:none}

/* ===== Carte avec épaisseur, dos ChaseTCG, holo ===== */
.card3d{--r:5%/3.6%;position:relative;width:100%;aspect-ratio:600/838;transform-style:preserve-3d}
.card3d .face,.card3d .edge{position:absolute;inset:0;border-radius:var(--r)}
.card3d .face{overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.card3d .front{transform:translateZ(.9px)}
.card3d .back{transform:rotateY(180deg) translateZ(.9px)}
.card3d .edge{background:linear-gradient(90deg,#CFC6B2,#F4EEE2 50%,#CFC6B2)}
.card3d .e1{transform:translateZ(.45px)}.card3d .e2{transform:translateZ(0)}.card3d .e3{transform:translateZ(-.45px)}
.card3d .front img{width:100%;height:100%;object-fit:cover}
.card3d .face::after{content:"";position:absolute;inset:0;background:var(--fog);opacity:var(--dk,0);pointer-events:none}
.back{background:
   radial-gradient(120% 80% at 50% 50%,#1A2550,#0B1124 70%);
   box-shadow:inset 0 0 0 5px #F2EBDC,inset 0 0 0 7px #0B1124,inset 0 0 0 8px rgba(242,235,220,.25)}
.back::before{content:"";position:absolute;inset:12px;border-radius:4px;opacity:.18;
  background:repeating-linear-gradient(45deg,#F2EBDC 0 1px,transparent 1px 7px),repeating-linear-gradient(-45deg,#F2EBDC 0 1px,transparent 1px 7px)}
.back img{position:absolute;left:50%;top:50%;width:42%;transform:translate(-50%,-50%) rotate(-8deg);filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.ph{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:10%;color:#0B1124;line-height:1.05;
  background:linear-gradient(160deg,rgba(255,255,255,.7),rgba(255,255,255,.1) 45%,rgba(255,255,255,.55)),
    conic-gradient(from 200deg at 30% 30%,#8FE6FF,#C7A3FF,#FFD39E,#A3FFD6,#8FE6FF)}
.ph b{font-family:"Anton",Impact,sans-serif;font-weight:400;font-size:1.35em;letter-spacing:.01em}
.ph small{font-size:.7em;opacity:.75;margin-top:4px}
.foil,.glare,.sparkle{position:absolute;inset:0;pointer-events:none}
.foil{background:repeating-linear-gradient(118deg,
   rgba(255,80,140,0) 0%,rgba(40,220,255,.6) 6%,rgba(150,110,255,.6) 12%,rgba(255,90,210,.55) 18%,rgba(255,210,90,.55) 24%,rgba(255,80,140,0) 30%);
  background-size:340% 340%;background-position:calc(var(--mx,50)*1%) calc(var(--my,50)*1%);mix-blend-mode:color-dodge;opacity:calc(.18 + var(--int,0)*.5)}
.sparkle{opacity:calc(var(--int,0)*.55);mix-blend-mode:screen;
  background-image:radial-gradient(1px 1px at 20% 30%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 70% 20%,#fff 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 40% 70%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 85% 60%,#fff 50%,transparent 51%),
    radial-gradient(1px 1px at 10% 85%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 60% 45%,#fff 50%,transparent 51%);
  background-size:90px 120px;background-position:calc(var(--mx,50)*.6px) calc(var(--my,50)*.6px)}
.glare{background:radial-gradient(farthest-corner circle at calc(var(--mx,50)*1%) calc(var(--my,50)*1%),rgba(255,255,255,.7) 0%,rgba(255,255,255,.12) 28%,transparent 55%);
  mix-blend-mode:overlay;opacity:calc(.35 + var(--int,0)*.65)}


/* ===== Ambiances par jeu : palettes jour (clair) et coucher de soleil (sombre) ===== */
:root{
  --hz:34svh; --fx:50%;
  --op-sky:linear-gradient(180deg,#78C6F1 0%,#A6DBF6 34%,#D7F0FB 62%,#FFF3D6 100%);
  --op-sun:#FFF7CC;--op-glow:rgba(255,238,160,.75);--op-ray:rgba(255,255,255,.38);--op-suny:15%;--op-sunx:80%;
  --op-chi:#FFFFFF;--op-clo:#C9E1F4;
  --op-far:#46BCDF;--op-s1:#2FA8D2;--op-s2:#1F93C3;--op-s3:#157AAF;--op-s4:#0E6096;--op-foam:#FFFFFF;--op-glint:#FFFFFF;
  --op-isle:#3DAA58;--op-isle2:#2A8A44;--op-sand:#F4DCA2;--op-rock:#8A8F9A;--op-palm:#2E9E48;--op-trunk:#8A5A2B;
  --pk-sky:linear-gradient(180deg,#72C3FF 0%,#A6DAFF 38%,#DCF3FF 68%,#F3FFE4 100%);
  --pk-sun:#FFF4B8;--pk-glow:rgba(255,230,120,.7);--pk-suny:12%;--pk-sunx:82%;--stars:0;
  --pk-chi:#FFFFFF;--pk-clo:#D0E7FA;--pk-m1:#9DBCE6;--pk-m2:#7FA4D6;--pk-snow:#FFFFFF;
  --pk-h1:#A4E37F;--pk-h2:#74CF56;--pk-h3:#4BB343;--pk-h4:#329838;--pk-path:#EED49A;--pk-path2:#D6B672;
  --pk-tall:#1E7C3B;--pk-tall2:#2C9A48;--pk-tree:#2E9C44;--pk-tree2:#49BC58;--pk-trunk:#7A4E2A;
  --rb-sky:linear-gradient(180deg,#9CC0FF 0%,#C7B6FF 38%,#F0BFEA 72%,#FFE0D0 100%);
  --rb-isle:#6B59A8;--rb-isle2:#8C7BC8;--rb-top:#4CC879;--rb-cry:#30DFFF;--rb-rune:#F2A81D;--rb-g1:#6A55B0;--rb-g2:#4B3A86;--rb-rim:#FFD27A;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --op-sky:linear-gradient(180deg,#2A2470 0%,#5D2C88 28%,#C2477E 56%,#FF8A4C 80%,#FFD27A 100%);
  --op-sun:#FFE7A0;--op-glow:rgba(255,140,70,.65);--op-ray:rgba(255,215,160,.26);--op-suny:calc(100% - var(--hz) - 13vmin);--op-sunx:var(--fx);
  --op-chi:#FFB89B;--op-clo:#B65A92;
  --op-far:#E77F73;--op-s1:#9A4E95;--op-s2:#6E3E90;--op-s3:#4A3080;--op-s4:#2E2366;--op-foam:#FFD9BE;--op-glint:#FFE08A;
  --op-isle:#432D69;--op-isle2:#33224F;--op-sand:#93577A;--op-rock:#432D69;--op-palm:#2E2050;--op-trunk:#2E2050;
  --pk-sky:linear-gradient(180deg,#25307E 0%,#4E40A4 34%,#B95D9F 64%,#FFA36C 88%,#FFD08A 100%);
  --pk-sun:#FFE7A0;--pk-glow:rgba(255,150,90,.6);--pk-suny:calc(100% - var(--hz) - 4vh);--pk-sunx:var(--fx);--stars:1;
  --pk-chi:#FFC4AA;--pk-clo:#A65E9C;--pk-m1:#5A4A9C;--pk-m2:#6F5CB4;--pk-snow:#FFD9E8;
  --pk-h1:#5BB06E;--pk-h2:#43975F;--pk-h3:#317C50;--pk-h4:#236444;--pk-path:#D6A27E;--pk-path2:#B07F62;
  --pk-tall:#174D37;--pk-tall2:#1F6444;--pk-tree:#2B7E4C;--pk-tree2:#3F985C;--pk-trunk:#4E2F2A;
  --rb-sky:linear-gradient(180deg,#151052 0%,#331878 32%,#701E94 62%,#C6358F 86%,#FF71A2 100%);
  --rb-isle:#2C2163;--rb-isle2:#3E2F84;--rb-top:#2FA86A;--rb-cry:#40F2FF;--rb-rune:#FFC94A;--rb-g1:#26195E;--rb-g2:#170F3E;--rb-rim:#FF9AD2;
}}
:root[data-theme="dark"]{
  --op-sky:linear-gradient(180deg,#2A2470 0%,#5D2C88 28%,#C2477E 56%,#FF8A4C 80%,#FFD27A 100%);
  --op-sun:#FFE7A0;--op-glow:rgba(255,140,70,.65);--op-ray:rgba(255,215,160,.26);--op-suny:calc(100% - var(--hz) - 13vmin);--op-sunx:var(--fx);
  --op-chi:#FFB89B;--op-clo:#B65A92;
  --op-far:#E77F73;--op-s1:#9A4E95;--op-s2:#6E3E90;--op-s3:#4A3080;--op-s4:#2E2366;--op-foam:#FFD9BE;--op-glint:#FFE08A;
  --op-isle:#432D69;--op-isle2:#33224F;--op-sand:#93577A;--op-rock:#432D69;--op-palm:#2E2050;--op-trunk:#2E2050;
  --pk-sky:linear-gradient(180deg,#25307E 0%,#4E40A4 34%,#B95D9F 64%,#FFA36C 88%,#FFD08A 100%);
  --pk-sun:#FFE7A0;--pk-glow:rgba(255,150,90,.6);--pk-suny:calc(100% - var(--hz) - 4vh);--pk-sunx:var(--fx);--stars:1;
  --pk-chi:#FFC4AA;--pk-clo:#A65E9C;--pk-m1:#5A4A9C;--pk-m2:#6F5CB4;--pk-snow:#FFD9E8;
  --pk-h1:#5BB06E;--pk-h2:#43975F;--pk-h3:#317C50;--pk-h4:#236444;--pk-path:#D6A27E;--pk-path2:#B07F62;
  --pk-tall:#174D37;--pk-tall2:#1F6444;--pk-tree:#2B7E4C;--pk-tree2:#3F985C;--pk-trunk:#4E2F2A;
  --rb-sky:linear-gradient(180deg,#151052 0%,#331878 32%,#701E94 62%,#C6358F 86%,#FF71A2 100%);
  --rb-isle:#2C2163;--rb-isle2:#3E2F84;--rb-top:#2FA86A;--rb-cry:#40F2FF;--rb-rune:#FFC94A;--rb-g1:#26195E;--rb-g2:#170F3E;--rb-rim:#FF9AD2;
}
@media (min-width:960px){:root{--fx:72%;--hz:40svh}}
@keyframes sailR{0%{transform:translateX(108vw);opacity:0}6%{opacity:1}80%{transform:translateX(56vw);opacity:1}100%{transform:translateX(48vw);opacity:0}}

.ambience{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ambience::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,color-mix(in srgb,var(--ground) 40%,transparent) 0%,color-mix(in srgb,var(--ground) 14%,transparent) 30%,transparent 46%)}
@media (min-width:960px){.ambience::after{background:linear-gradient(90deg,color-mix(in srgb,var(--ground) 62%,transparent) 0%,color-mix(in srgb,var(--ground) 34%,transparent) 30%,transparent 50%)}}
/* lisibilité du texte posé sur le décor */
.copy h1{text-shadow:0 2px 0 color-mix(in srgb,var(--ground) 40%,transparent),0 6px 30px color-mix(in srgb,var(--ground) 70%,transparent)}
.copy .msg{text-shadow:0 1px 10px var(--ground),0 0 2px var(--ground)}
.stage-hint{text-shadow:0 1px 8px var(--ground)}

.amb{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease}
.amb.on{opacity:1}
.amb:not(.on) *{animation-play-state:paused!important}
.amb .sky{position:absolute;inset:0}
.amb .el{position:absolute;will-change:transform}
.amb svg{display:block;overflow:visible}
.amb .band{position:absolute;left:0;right:0;bottom:0}
.amb .band>svg{width:100%;height:100%}
.amb .lay{position:absolute;left:0;top:0;will-change:transform}
.amb .lay svg{display:block}
.amb .wv{animation:waveY 5s ease-in-out infinite}
@keyframes waveY{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.amb .ib{transform-box:fill-box}
.stars{position:absolute;inset:0 0 45% 0;opacity:var(--stars)}
.stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;box-shadow:0 0 6px 1px rgba(255,255,255,.8);animation:twinkle 3s ease-in-out infinite}

@keyframes cross{from{transform:translateX(-45vw)}to{transform:translateX(150vw)}}
@keyframes slide{to{transform:translateX(-50%)}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2.2deg)}50%{transform:translateY(5px) rotate(2.4deg)}}
@keyframes sway{0%,100%{transform:skewX(-4deg)}50%{transform:skewX(5deg)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes rise{0%{transform:translate(0,0);opacity:0}12%{opacity:1}100%{transform:translate(var(--dx,12px),-42vh);opacity:0}}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spinr{to{transform:rotate(-360deg)}}
@keyframes pulse{0%,100%{opacity:.8;transform:scale(1,1)}50%{opacity:1;transform:scale(1.08,1.04)}}
@keyframes flapL{0%,100%{transform:rotate(18deg)}50%{transform:rotate(-26deg)}}
@keyframes flapR{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(26deg)}}
@keyframes flutter{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.25)}}
@keyframes wander{0%{transform:translate(0,0)}25%{transform:translate(60px,-30px)}50%{transform:translate(120px,10px)}75%{transform:translate(50px,40px)}100%{transform:translate(0,0)}}
@keyframes rustle{0%,62%,100%{transform:rotate(0)}65%{transform:rotate(-7deg)}68%{transform:rotate(6deg)}71%{transform:rotate(-6deg)}74%{transform:rotate(5deg)}77%{transform:rotate(-3deg)}80%{transform:rotate(0)}}
@keyframes pop{0%,62%{opacity:0;transform:translate(0,0) rotate(0)}66%{opacity:1}90%{opacity:0;transform:translate(var(--lx),var(--ly)) rotate(200deg)}100%{opacity:0}}
@keyframes flicker{0%,100%{opacity:0}2%{opacity:1}4%{opacity:.2}6%{opacity:.95}9%{opacity:0}}
@keyframes fall{to{background-position:0 60px}}
@keyframes flag{0%,100%{transform:skewY(0)}50%{transform:skewY(-7deg)}}
@keyframes aurora{0%,100%{transform:translateX(-6vw) scaleY(1);opacity:.7}50%{transform:translateX(6vw) scaleY(1.25);opacity:1}}
@keyframes leaf{0%{transform:translate(-10vw,0) rotate(0);opacity:0}10%{opacity:1}100%{transform:translate(115vw,12vh) rotate(720deg);opacity:0}}

/* ----- One Piece : mer ----- */
.amb-op .sky{background:var(--op-sky)}
.amb-op .rays{left:var(--op-sunx);top:var(--op-suny);width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;
  background:repeating-conic-gradient(var(--op-ray) 0 5deg,transparent 5deg 15deg);
  -webkit-mask:radial-gradient(closest-side,#000 6%,transparent 62%);mask:radial-gradient(closest-side,#000 6%,transparent 62%);animation:spin 120s linear infinite}
.amb-op .sun{left:var(--op-sunx);top:var(--op-suny);width:30vmin;height:30vmin;margin:-15vmin 0 0 -15vmin;border-radius:50%;
  background:radial-gradient(circle,var(--op-sun) 0 34%,var(--op-glow) 36%,transparent 70%)}
.amb-op .sea{left:0;right:0;bottom:0;height:var(--hz);background:linear-gradient(180deg,var(--op-far),var(--op-s4))}
.amb-op .ship{bottom:calc(var(--hz) - 22px);left:0;width:clamp(150px,17vw,250px);animation:cross 110s linear infinite reverse;animation-delay:-40s}
@media (min-width:960px){.amb-op .ship{animation:sailR 70s linear infinite;animation-delay:-20s}}
.amb-op .ship>.hull{animation:bob 5.5s ease-in-out infinite;transform-origin:50% 85%}
.amb-op .ship .flag{transform-box:fill-box;transform-origin:0 50%;animation:flag 1.4s ease-in-out infinite}
.amb-op .ship .wake{animation:twinkle 1.6s ease-in-out infinite}
.amb-op .isle .palm{transform-box:fill-box;transform-origin:50% 100%;animation:sway 4.5s ease-in-out infinite}
.amb-op .glint{width:10px;height:10px;animation:twinkle 2.4s ease-in-out infinite}
.amb-op .glint::before{content:"";position:absolute;inset:0;background:var(--op-glint);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}
.amb .cloud{left:0;animation:cross 90s linear infinite}
.amb .gull{left:0;animation:cross 34s linear infinite}
.amb .gull .wl{transform-box:fill-box;transform-origin:100% 100%;animation:flapL .5s ease-in-out infinite}
.amb .gull .wr{transform-box:fill-box;transform-origin:0 100%;animation:flapR .5s ease-in-out infinite}

/* ----- Pokémon : route ----- */
.amb-pk .sky{background:var(--pk-sky)}
.amb-pk .rays{left:var(--pk-sunx);top:var(--pk-suny);width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;
  background:repeating-conic-gradient(rgba(255,255,255,.3) 0 4deg,transparent 4deg 14deg);
  -webkit-mask:radial-gradient(closest-side,#000 6%,transparent 58%);mask:radial-gradient(closest-side,#000 6%,transparent 58%);animation:spinr 140s linear infinite}
.amb-pk .sun{left:var(--pk-sunx);top:var(--pk-suny);width:20vmin;height:20vmin;margin:-10vmin 0 0 -10vmin;border-radius:50%;
  background:var(--pk-sun);box-shadow:0 0 0 2.4vmin var(--pk-glow),0 0 14vmin 7vmin var(--pk-glow)}
.amb-pk .tree{transform-origin:50% 100%;animation:sway 6s ease-in-out infinite}
.amb-pk .tall{transform-origin:50% 100%}
.amb-pk .tall.go{animation:rustle 5s ease-in-out infinite}
.amb-pk .tall i{position:absolute;left:50%;top:20%;width:9px;height:6px;border-radius:0 80% 0 80%;background:var(--pk-tall2);animation:pop 5s ease-out infinite}
.amb-pk .bfly{animation:wander 14s ease-in-out infinite}
.amb-pk .bfly .w{transform-box:fill-box;transform-origin:50% 50%;animation:flutter .32s ease-in-out infinite}
.amb-pk .orb{width:12px;height:12px;border-radius:50%;animation:rise 11s ease-in infinite}
.amb-pk .leaf{left:0;width:12px;height:7px;border-radius:0 80% 0 80%;background:var(--pk-tall2);animation:leaf 16s linear infinite}

/* ----- Riftbound : faille ----- */
.amb-rb .sky{background:var(--rb-sky)}
.amb-rb .aur{left:-30vw;width:160vw;height:34vh;animation:aurora 12s ease-in-out infinite;
  background:radial-gradient(50% 50% at 30% 50%,rgba(64,242,255,.42),transparent 70%),radial-gradient(45% 45% at 62% 55%,rgba(170,110,255,.42),transparent 70%),radial-gradient(40% 40% at 85% 45%,rgba(255,113,190,.35),transparent 70%)}
.amb-rb .rune{left:var(--fx);top:46%;width:min(92vw,560px);aspect-ratio:1;margin-left:calc(min(92vw,560px)/-2);animation:spin 90s linear infinite}
.amb-rb .rune .inner{transform-box:fill-box;transform-origin:50% 50%;animation:spinr 40s linear infinite}
.amb-rb .rift{left:var(--fx);top:50%;width:70px;height:40vh;margin-left:-35px;animation:pulse 2.6s ease-in-out infinite}
.amb-rb .rift i{position:absolute;display:block}
.amb-rb .rift .glow{inset:-14vh -24vh;background:radial-gradient(closest-side,rgba(255,255,255,.7),rgba(64,242,255,.45) 22%,rgba(242,61,203,.35) 48%,transparent 72%)}
.amb-rb .rift .tear{inset:0;background:linear-gradient(180deg,transparent,#40F2FF 15%,#FFFFFF 50%,#F23DCB 85%,transparent);
  clip-path:polygon(50% 0,60% 12%,45% 24%,64% 38%,50% 50%,66% 64%,46% 78%,58% 90%,50% 100%,42% 90%,36% 76%,52% 64%,32% 50%,50% 38%,30% 24%,44% 12%)}
.amb-rb .orbit{left:var(--fx);top:calc(50% + 20vh);width:0;height:0;animation:spin 6s linear infinite}
.amb-rb .orbit i{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 10px 3px var(--rb-cry)}
.amb-rb .bolt{left:var(--fx);top:50%;width:220px;height:40vh;margin-left:-110px;animation:flicker 4.2s linear infinite}
.amb-rb .isle{animation:float 8s ease-in-out infinite}
.amb-rb .isle .cry{transform-box:fill-box;transform-origin:50% 100%;animation:pulse 2.2s ease-in-out infinite}
.amb-rb .fallw{position:absolute;width:10px;height:90px;border-radius:5px;opacity:.85;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.95) 0 6px,rgba(64,242,255,.6) 6px 14px,rgba(255,255,255,.2) 14px 20px);
  -webkit-mask:linear-gradient(#000 60%,transparent);mask:linear-gradient(#000 60%,transparent);animation:fall .6s linear infinite}
.amb-rb .spark{width:5px;height:5px;border-radius:50%;animation:rise 7s ease-in infinite}
@media (max-width:959px){.amb-rb .isle{margin-top:14vh}}
@media (min-width:960px){.amb-rb .rune{top:10%}.amb-rb .rift{top:12%;height:52vh}.amb-rb .orbit{top:38%}.amb-rb .bolt{top:12%;height:52vh}}
