/* SHOCKER v68 — physical card travel, deck return and player-turn fanfare */

/* Cards are hidden before their fixed visual proxy starts, preventing a one-frame teleport. */
body.v45-battle-active .card.v68-await-flight,
body.v45-battle-active .opponent-mini-card.v68-await-flight{
    opacity:0!important;
    visibility:hidden!important;
    animation:none!important;
    transition:none!important;
}
html.v68-card-flight-active .v60-card-arrival-flash,
html.v68-card-flight-active .v67-card-glint{
    opacity:0!important;
    animation:none!important;
}

#v68-motion-layer{
    position:fixed;
    inset:0;
    z-index:2147482050;
    overflow:hidden;
    contain:strict;
    isolation:isolate;
    pointer-events:none;
}

.v68-flight-card{
    position:fixed!important;
    z-index:12!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    pointer-events:none!important;
    backface-visibility:hidden;
    transform-origin:50% 64%;
    will-change:transform,opacity,filter;
    box-shadow:0 16px 30px rgba(0,0,0,.7),0 0 16px #fff2b2,0 0 46px rgba(255,114,31,.82)!important;
    filter:brightness(1.18) saturate(1.2) drop-shadow(0 0 10px rgba(255,224,128,.8));
}
.v68-flight-card.v68-return-flight{
    box-shadow:0 12px 28px rgba(0,0,0,.72),0 0 18px #e8d4ff,0 0 48px rgba(128,77,255,.78)!important;
    filter:brightness(1.1) saturate(1.15) drop-shadow(0 0 12px rgba(176,120,255,.88));
}
.v68-flight-ghost{
    position:fixed!important;
    z-index:8!important;
    margin:0!important;
    opacity:.22;
    pointer-events:none!important;
    filter:saturate(1.45) brightness(1.4) blur(.4px) drop-shadow(0 0 11px rgba(255,164,54,.72));
    will-change:transform,opacity;
}
.v68-flight-beam{
    position:fixed;
    z-index:4;
    height:7px;
    border-radius:99px;
    transform-origin:0 50%;
    background:linear-gradient(90deg,transparent,rgba(255,132,36,.3) 10%,#fff7cf 54%,rgba(69,224,232,.64) 78%,transparent);
    box-shadow:0 0 9px #fff,0 0 24px #ff742d,0 0 48px rgba(49,210,222,.55);
    mix-blend-mode:screen;
    opacity:0;
    animation:v68Beam .78s cubic-bezier(.14,.7,.18,1) var(--delay,0ms) both;
}
.v68-flight-beam.v68-return-beam{
    background:linear-gradient(90deg,transparent,rgba(185,127,255,.25),#fff6cf 55%,#b477ff 77%,transparent);
    box-shadow:0 0 9px #fff,0 0 26px #9a52ff,0 0 54px rgba(87,44,255,.62);
}

body.v45-battle-active .card.v68-land{
    animation:v68Land .48s cubic-bezier(.12,.82,.18,1.18) both!important;
}
body.v45-battle-active .card.v68-field-land{
    animation:v68FieldLand .56s cubic-bezier(.12,.82,.18,1.2) both!important;
}

.v68-land-core,.v68-land-ring,.v68-land-rays,.v68-suit-spark,.v68-deck-vortex,.v68-motion-label{
    position:fixed;
    pointer-events:none;
    will-change:transform,opacity,filter;
}
.v68-land-core{
    z-index:20;
    width:44px;
    height:44px;
    margin:-22px 0 0 -22px;
    border-radius:50%;
    background:radial-gradient(circle,#fff 0 9%,#fff3a5 12% 22%,#ff9b32 34%,#29d4df 50%,transparent 72%);
    box-shadow:0 0 24px #fff8c8,0 0 58px #ff782b,0 0 96px rgba(43,217,226,.64);
    mix-blend-mode:screen;
    animation:v68LandCore .58s ease-out both;
}
.v68-land-ring{
    z-index:18;
    width:34px;
    height:34px;
    margin:-17px 0 0 -17px;
    border:2px solid rgba(255,240,169,.96);
    border-radius:50%;
    box-shadow:0 0 15px #ffcc54,inset 0 0 11px #fff;
    animation:v68LandRing .68s ease-out var(--delay,0ms) both;
}
.v68-land-rays{
    z-index:16;
    width:220px;
    height:220px;
    margin:-110px 0 0 -110px;
    border-radius:50%;
    opacity:0;
    background:repeating-conic-gradient(from 5deg,rgba(255,247,202,.92) 0 1deg,transparent 1.4deg 12deg);
    -webkit-mask-image:radial-gradient(circle,transparent 0 15%,#000 25% 62%,transparent 78%);
    mask-image:radial-gradient(circle,transparent 0 15%,#000 25% 62%,transparent 78%);
    mix-blend-mode:screen;
    animation:v68LandRays .65s ease-out both;
}
.v68-suit-spark{
    z-index:22;
    color:var(--spark-color,#ffe28a);
    font:900 var(--spark-size,18px)/1 Georgia,serif;
    text-shadow:0 0 5px #fff,0 0 14px currentColor;
    animation:v68SuitSpark .72s cubic-bezier(.08,.74,.18,1) var(--delay,0ms) both;
}
.v68-motion-label{
    z-index:24;
    translate:-50% -50%;
    padding:5px 18px 6px;
    border-block:1px solid rgba(255,231,157,.78);
    color:#fff1bc;
    background:linear-gradient(90deg,transparent,rgba(5,8,9,.9) 16% 84%,transparent);
    box-shadow:0 0 28px rgba(255,158,51,.38);
    font:900 clamp(10px,1.6vw,15px)/1 "Courier New",monospace;
    letter-spacing:.22em;
    text-indent:.22em;
    white-space:nowrap;
    text-shadow:0 0 8px #ff9f31;
    animation:v68MotionLabel .86s cubic-bezier(.13,.8,.2,1) both;
}

.v68-deck-vortex{
    z-index:25;
    width:58px;
    height:58px;
    margin:-29px 0 0 -29px;
    border:3px solid rgba(255,229,143,.9);
    border-left-color:#9a58ff;
    border-right-color:#48e2e7;
    border-radius:50%;
    box-shadow:0 0 16px #fff5bf,0 0 38px rgba(137,76,255,.72),inset 0 0 18px rgba(55,220,227,.46);
    animation:v68DeckVortex .72s cubic-bezier(.1,.7,.18,1) both;
}
.deck-pile.v68-deck-launch{
    animation:v68DeckLaunch .58s cubic-bezier(.12,.82,.18,1.2) both!important;
}
.deck-pile.v68-deck-absorb{
    animation:v68DeckAbsorb .68s cubic-bezier(.14,.78,.18,1) both!important;
}
.field-area.v68-field-impact{
    animation:v68PlayerFieldImpact .62s ease-out both!important;
}

/* ---------- unmistakable YOUR TURN fanfare ---------- */
#v68-turn-arrival{
    --turn-color:#54e6ea;
    position:fixed;
    inset:0;
    z-index:2147481950;
    display:none;
    overflow:hidden;
    pointer-events:none;
    isolation:isolate;
    color:#fff6cf;
    font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;
}
#v68-turn-arrival.show{
    display:block;
    animation:v68TurnLife 1.72s linear both;
}
#v68-turn-arrival:before{
    content:"";
    position:absolute;
    inset:-30%;
    background:repeating-conic-gradient(from 90deg at 50% 52%,transparent 0 4deg,rgba(101,238,242,.18) 4.2deg 4.7deg,transparent 5deg 10deg);
    transform:scaleX(1.65);
    mix-blend-mode:screen;
    animation:v68TurnSpeedlines 1.55s cubic-bezier(.08,.78,.18,1) both;
}
#v68-turn-arrival:after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 50% 53%,rgba(255,244,190,.38),rgba(37,208,218,.18) 18%,rgba(0,24,34,.76) 46%,rgba(0,0,0,.82));
    animation:v68TurnVignette 1.72s ease-out both;
}
.v68-turn-slash{
    position:absolute;
    z-index:3;
    left:-15%;
    top:47%;
    width:130%;
    height:6px;
    rotate:-5deg;
    background:linear-gradient(90deg,transparent,#55e5e9 19%,#fff 50%,#f4c66b 78%,transparent);
    box-shadow:0 0 12px #fff,0 0 34px #42dce4,0 0 70px rgba(255,196,80,.72);
    animation:v68TurnSlash 1.35s cubic-bezier(.12,.78,.16,1) both;
}
.v68-turn-crest{
    position:absolute;
    z-index:4;
    left:50%;
    top:50%;
    translate:-50% -50%;
    color:rgba(255,242,190,.14);
    font:900 clamp(210px,46vw,620px)/1 Georgia,serif;
    text-shadow:0 0 32px rgba(82,226,232,.72);
    animation:v68TurnCrest 1.7s cubic-bezier(.12,.82,.18,1) both;
}
.v68-turn-panel{
    position:absolute;
    z-index:6;
    left:50%;
    top:52%;
    width:min(94vw,980px);
    translate:-50% -50%;
    padding:20px 24px 24px;
    border-block:2px solid rgba(255,227,143,.82);
    color:#fff2bd;
    background:linear-gradient(90deg,transparent,rgba(2,10,13,.92) 12% 88%,transparent);
    box-shadow:0 0 58px rgba(55,220,226,.42),inset 0 1px rgba(255,255,255,.18);
    text-align:center;
    transform:skewX(-5deg);
    animation:v68TurnPanel 1.68s cubic-bezier(.12,.82,.18,1) both;
}
.v68-turn-kicker{
    color:#6eeff1;
    font:800 clamp(10px,2vw,16px)/1 "Courier New",monospace;
    letter-spacing:.52em;
    text-indent:.52em;
    text-shadow:0 0 10px #39dbe4;
}
.v68-turn-main{
    margin-top:6px;
    font:900 clamp(42px,9vw,96px)/.95 Georgia,"Yu Mincho",serif;
    letter-spacing:.11em;
    text-indent:.11em;
    text-shadow:0 3px 0 #000,0 0 10px #fff,0 0 26px #51e3e8,0 0 62px rgba(255,190,66,.62);
}
.v68-turn-sub{
    margin-top:12px;
    color:#f4d890;
    font:800 clamp(10px,1.8vw,14px)/1 "Courier New",monospace;
    letter-spacing:.24em;
    text-indent:.24em;
}
.v68-turn-particle{
    position:absolute;
    z-index:5;
    left:50%;
    top:52%;
    color:var(--particle-color,#fff1ad);
    font:900 var(--particle-size,18px)/1 Georgia,serif;
    text-shadow:0 0 8px #fff,0 0 18px currentColor;
    animation:v68TurnParticle 1.15s cubic-bezier(.08,.74,.16,1) var(--delay,0ms) both;
}
body.v68-player-turn-live .player-area{
    animation:v68TurnFieldPulse 1.8s ease-out both!important;
}
body.v68-player-turn-live #hand-zone{
    box-shadow:inset 0 0 30px rgba(70,226,232,.2),0 0 28px rgba(255,198,79,.25)!important;
}
body.v68-player-turn-live #phase-bar{
    border-color:#6fecef!important;
    box-shadow:0 0 22px rgba(65,222,231,.72),inset 0 0 18px rgba(255,205,96,.18)!important;
}

@keyframes v68Beam{0%{opacity:0;transform:rotate(var(--angle)) scaleX(.02)}13%{opacity:.92}72%{opacity:.66}100%{opacity:0;transform:rotate(var(--angle)) scaleX(1)}}
@keyframes v68Land{0%{opacity:.2;transform:translateY(-5px) scale(.9);filter:brightness(2)}42%{opacity:1;transform:translateY(4px) scale(1.11);filter:brightness(1.5) drop-shadow(0 0 14px #ffe188)}72%{transform:translateY(-2px) scale(.97)}100%{transform:none;filter:none}}
@keyframes v68FieldLand{0%{opacity:.15;transform:perspective(700px) translateY(-12px) rotateX(18deg) scale(.82);filter:brightness(2.3)}38%{opacity:1;transform:perspective(700px) translateY(4px) rotateX(-4deg) scale(1.18);filter:brightness(1.65) drop-shadow(0 0 18px #ffba45)}70%{transform:translateY(-2px) scale(.96)}100%{transform:none;filter:none}}
@keyframes v68LandCore{0%{opacity:0;transform:scale(.08)}22%{opacity:1;transform:scale(1.45)}100%{opacity:0;transform:scale(6.8) rotate(62deg)}}
@keyframes v68LandRing{0%{opacity:0;transform:scale(.12)}18%{opacity:1}100%{opacity:0;transform:scale(8.2);border-width:1px}}
@keyframes v68LandRays{0%{opacity:0;transform:scale(.12) rotate(-18deg)}25%{opacity:.9}100%{opacity:0;transform:scale(1.38) rotate(30deg)}}
@keyframes v68SuitSpark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.3)}18%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(var(--travel)) scale(1.25)}}
@keyframes v68MotionLabel{0%{opacity:0;transform:translateX(-44px) scaleX(.5);filter:blur(7px)}24%,64%{opacity:1;transform:translateX(0) scaleX(1);filter:blur(0)}100%{opacity:0;transform:translateX(38px) scaleX(1.12);filter:blur(4px)}}
@keyframes v68DeckVortex{0%{opacity:0;transform:scale(2.2) rotate(0);filter:blur(4px)}22%{opacity:1;filter:blur(0)}100%{opacity:0;transform:scale(.18) rotate(280deg)}}
@keyframes v68DeckLaunch{0%,100%{transform:none;filter:none}22%{transform:translateY(5px) scale(.94);filter:brightness(.78)}48%{transform:translateY(-9px) rotate(-2deg) scale(1.12);filter:brightness(1.8) drop-shadow(0 0 18px #ffe082)}72%{transform:translateY(2px) rotate(1deg) scale(.98)}}
@keyframes v68DeckAbsorb{0%,100%{transform:none;filter:none}18%{transform:scale(1.13) rotate(2deg);filter:brightness(1.7) drop-shadow(0 0 18px #b877ff)}46%{transform:scale(.9) rotate(-2deg);filter:brightness(.7)}72%{transform:scale(1.04);filter:brightness(1.2)}}
@keyframes v68PlayerFieldImpact{0%,100%{filter:none}24%{filter:brightness(1.35) saturate(1.45);box-shadow:0 0 38px rgba(255,171,53,.65),inset 0 0 26px rgba(68,224,230,.28)}55%{filter:brightness(.96)}}
@keyframes v68TurnLife{0%{opacity:0}4%,72%{opacity:1}100%{opacity:0}}
@keyframes v68TurnSpeedlines{0%{opacity:0;transform:scale(.3) rotate(-8deg)}18%{opacity:.82}100%{opacity:0;transform:scale(1.7) rotate(7deg)}}
@keyframes v68TurnVignette{0%{opacity:.92;filter:brightness(2.1)}12%{opacity:.74;filter:brightness(1)}78%{opacity:.62}100%{opacity:0}}
@keyframes v68TurnSlash{0%{opacity:0;transform:translateX(-80%) scaleX(.08)}18%{opacity:1}62%{opacity:.9;transform:translateX(0) scaleX(1)}100%{opacity:0;transform:translateX(58%) scaleX(.72)}}
@keyframes v68TurnCrest{0%{opacity:0;transform:scale(.18) rotate(-20deg);filter:blur(14px)}24%{opacity:.24;filter:blur(0)}100%{opacity:0;transform:scale(1.35) rotate(10deg);filter:blur(4px)}}
@keyframes v68TurnPanel{0%{opacity:0;transform:skewX(-5deg) translateX(-24%) scaleX(.55);filter:blur(10px)}20%{opacity:1;transform:skewX(-5deg) translateX(0) scaleX(1);filter:blur(0)}68%{opacity:1;transform:skewX(-5deg) translateX(0) scaleX(1)}100%{opacity:0;transform:skewX(-5deg) translateX(16%) scaleX(.82);filter:blur(5px)}}
@keyframes v68TurnParticle{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.2)}18%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(var(--travel)) scale(1.2)}}
@keyframes v68TurnFieldPulse{0%,100%{filter:none}16%{filter:brightness(1.55) saturate(1.55);box-shadow:0 0 44px rgba(70,226,232,.68),inset 0 0 34px rgba(255,205,96,.24)}45%{filter:brightness(.96)}72%{filter:brightness(1.16)}}

@media(max-width:700px){
    .v68-turn-panel{padding:15px 12px 18px}.v68-turn-main{font-size:clamp(38px,12vw,66px)}.v68-turn-kicker{letter-spacing:.34em;text-indent:.34em}.v68-turn-sub{letter-spacing:.12em;text-indent:.12em}.v68-motion-label{font-size:9px;padding-inline:10px}.v68-land-rays{width:170px;height:170px;margin:-85px 0 0 -85px}
}
@media(prefers-reduced-motion:reduce){
    .v68-flight-beam,.v68-land-core,.v68-land-ring,.v68-land-rays,.v68-suit-spark,.v68-deck-vortex,.v68-motion-label,#v68-turn-arrival,#v68-turn-arrival *,body.v68-player-turn-live .player-area{animation-duration:.12s!important;transition-duration:.12s!important}
}
