.console .disc{animation:riseIn .85s cubic-bezier(.2,.8,.2,1) both}
.console>div:last-child{animation:riseIn .85s cubic-bezier(.2,.8,.2,1) .12s both}
@keyframes riseIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.disc::before{content:'';position:absolute;inset:-34px;z-index:0;border-radius:50%;pointer-events:none;opacity:.55;transition:opacity 1s ease;will-change:transform,filter;animation:auraIdle 13.1s ease-in-out infinite;background:radial-gradient(circle at 50% 48%,rgba(255,180,84,0) 36%,rgba(255,180,84,.18) 56%,rgba(255,107,107,.11) 70%,rgba(89,194,255,.06) 82%,transparent 89%)}
@keyframes auraIdle{0%,100%{transform:scale(.93);filter:brightness(1)}50%{transform:scale(1.06);filter:brightness(1.3)}}
.disc:hover::before,.disc.live::before,body.playing .disc::before{opacity:1}
.av-gl{position:absolute;inset:0;z-index:2;width:100%;height:100%;border-radius:50%;opacity:0;pointer-events:none;transition:opacity .9s ease}
.avatar.gl .av-gl{opacity:1}
.avatar.gl .av-static{opacity:0}
.avatar{animation:avFloat 9s cubic-bezier(.45,.05,.55,.95) infinite,avGlow 8.9s ease-in-out infinite}
@keyframes avFloat{0%,100%{transform:translateY(0) scale(1) rotate(0)}33%{transform:translateY(-2.5px) scale(1.02) rotate(1.8deg)}66%{transform:translateY(1.5px) scale(1.01) rotate(-1.2deg)}}
@keyframes avGlow{0%,100%{filter:brightness(1) saturate(1)}50%{filter:brightness(1.08) saturate(1.05)}}
.avatar:not(.gl) .av-static{will-change:transform,filter,object-position;animation:avPan 16s ease-in-out infinite,avTilt 27s cubic-bezier(.45,.05,.55,.95) infinite,avHue 31s ease-in-out infinite}
@keyframes avPan{0%,100%{object-position:50% 48%}25%{object-position:52.5% 50%}50%{object-position:50% 52%}75%{object-position:47.5% 50%}}
@keyframes avTilt{0%,100%{transform:perspective(600px) rotateY(0) rotate(0)}25%{transform:perspective(600px) rotateY(7deg) rotate(-1deg)}50%{transform:perspective(600px) rotateY(0) rotate(0)}75%{transform:perspective(600px) rotateY(-7deg) rotate(1deg)}}
@keyframes avHue{0%,100%{filter:saturate(1.08) contrast(1.06) hue-rotate(0)}33%{filter:saturate(1.14) contrast(1.07) hue-rotate(7deg)}66%{filter:saturate(1.05) contrast(1.05) hue-rotate(-6deg)}}
.avatar::before{content:'';position:absolute;inset:-10%;z-index:5;border-radius:50%;pointer-events:none;mix-blend-mode:screen;opacity:.5;background:radial-gradient(closest-side at 50% 50%,rgba(190,225,255,.6),rgba(190,225,255,0) 70%);will-change:transform,opacity;animation:glintOrbit 13s linear infinite,glintPulse 5.5s ease-in-out infinite}
@keyframes glintOrbit{0%{transform:translate(-30%,-24%) scale(1)}25%{transform:translate(28%,-16%) scale(1.18)}50%{transform:translate(22%,26%) scale(.9)}75%{transform:translate(-26%,22%) scale(1.14)}100%{transform:translate(-30%,-24%) scale(1)}}
@keyframes glintPulse{0%,100%{opacity:.3}50%{opacity:.72}}
.avatar .av-twinkle{animation:twinkle 5.9s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.14;transform:scale(1)}50%{opacity:.45;transform:scale(1.05)}}
.avatar::after{content:'';position:absolute;inset:-25%;z-index:4;border-radius:50%;pointer-events:none;mix-blend-mode:soft-light;opacity:.45;background:conic-gradient(from 0deg,transparent 0deg,rgba(200,235,255,0) 38deg,rgba(210,240,255,.6) 88deg,rgba(255,255,255,0) 150deg,transparent 205deg,rgba(255,212,150,.42) 282deg,transparent 342deg);-webkit-mask:radial-gradient(circle at 50% 50%,#000 28%,rgba(0,0,0,.45) 60%,transparent 78%);mask:radial-gradient(circle at 50% 50%,#000 28%,rgba(0,0,0,.45) 60%,transparent 78%);animation:veilSpin 17.7s linear infinite,veilBreathe 9.3s ease-in-out infinite}
@keyframes veilSpin{to{transform:rotate(360deg)}}
@keyframes veilBreathe{0%,100%{opacity:.3}50%{opacity:.68}}
body.playing .avatar,.disc:hover .avatar{box-shadow:0 0 0 3px #0b1216,0 0 0 4.5px rgba(255,180,84,.75),0 0 34px -2px rgba(255,180,84,.6)}
body.playing .disc-dot{box-shadow:0 0 16px var(--coral),0 0 5px rgba(255,255,255,.8)}

/* ---------- ударные кольца и вспышка диска (афтершок) ---------- */
.disc-shock{position:absolute;inset:6px;border-radius:50%;pointer-events:none;opacity:0;border:2px solid rgba(255,180,84,.7);z-index:6}
.disc-flash{position:absolute;inset:-12%;border-radius:50%;pointer-events:none;opacity:0;z-index:7;mix-blend-mode:screen;background:radial-gradient(closest-side,rgba(255,236,200,.85),rgba(255,180,84,.35) 40%,transparent 72%)}
body.shock .disc-shock{animation:ringBurst .62s ease-out}
body.shock .disc-shock.d2{animation:ringBurst .62s ease-out .12s}
body.shock .disc-flash{animation:flashBurst .6s ease-out}
@keyframes ringBurst{0%{transform:scale(.7);opacity:.85}100%{transform:scale(1.55);opacity:0}}
@keyframes flashBurst{0%{opacity:0;transform:scale(.8)}25%{opacity:1}100%{opacity:0;transform:scale(1.18)}}
body.shock .disc-dot{animation:dotFlash .6s ease-out}
@keyframes dotFlash{0%{box-shadow:0 0 12px var(--coral)}30%{box-shadow:0 0 26px var(--coral),0 0 10px #fff}100%{box-shadow:0 0 12px var(--coral)}}
body.shock::after{animation:bgFlash .6s ease-out}
@keyframes bgFlash{0%{filter:brightness(1)}30%{filter:brightness(1.7)}100%{filter:brightness(1)}}
body.shock .wave i{animation:waveShock .6s ease-out}
@keyframes waveShock{0%{transform:scaleY(.2)}40%{transform:scaleY(1.7)}100%{transform:scaleY(1)}}

/* ---------- флип F / Ф: контекстно-независимый «переворот монеты» через scaleX (работает в любом предке) ---------- */
.brand-title{display:flex;align-items:baseline;flex-wrap:nowrap;font-family:var(--logo);font-weight:700}
.brand .brand-title{display:inline-flex;font:700 16px/1.1 var(--logo);letter-spacing:.02em;color:var(--ink)}
.flip-stage{position:relative;display:inline-block;margin:0}
.flip-card{display:inline-block;position:relative;vertical-align:baseline;transform-origin:center center}
/* грань в потоке (lat) задаёт ширину слота = родной кернинг Jura; cyr — абсолютным слоем по центру */
.let{display:inline-block;line-height:1;white-space:nowrap;vertical-align:top;transition:opacity .04s linear}
.let.lat{position:relative}
.let.cyr{position:absolute;left:50%;top:0;transform:translateX(-50%);opacity:0;pointer-events:none}
.flip-stage.show-cyr .let.lat{opacity:0}
.flip-stage.show-cyr .let.cyr{opacity:1}
/* блик-ребро: во время сжатия свёрнут в светящуюся вертикаль, как отблеск на ребре монеты */
.flip-card::after{content:'';position:absolute;inset:-6% -20%;pointer-events:none;mix-blend-mode:screen;opacity:0;
  background:linear-gradient(90deg,transparent 30%,rgba(255,247,230,.95) 50%,transparent 70%)}
/* сам переворот: сжатие в линию и разжатие — чистый 2D, предки не влияют */
.flip-card.flipping{animation:coinX .72s cubic-bezier(.55,0,.45,1)}
.flip-card.flipping::after{animation:edgeGlint .72s ease-in-out}
.flip-stage.swapping{animation:flipPulse .72s ease-in-out}
.flip-stage.swapping .let-flash{animation:letFlash .72s ease-in-out}
@keyframes coinX{0%{transform:scaleX(1)}50%{transform:scaleX(.02)}100%{transform:scaleX(1)}}
@keyframes edgeGlint{0%,38%,62%,100%{opacity:0}50%{opacity:1}}
@keyframes flipPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes letFlash{0%,100%{opacity:0;transform:translateZ(0) scale(.7)}50%{opacity:1;transform:translateZ(0) scale(1.25)}}
.let-flash{position:absolute;inset:-30%;border-radius:50%;pointer-events:none;opacity:0;mix-blend-mode:screen;background:radial-gradient(closest-side,rgba(255,240,210,.95),rgba(255,180,84,.45) 45%,transparent 75%)}
body.shock .brand-title{animation:titleShake .5s ease-out}
@keyframes titleShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}

.c-kicker::before{width:32px;will-change:transform,opacity;transform-origin:left center;animation:kickerIdle 7s ease-in-out infinite}
@keyframes kickerIdle{0%,100%{transform:scaleX(.7);opacity:.65}50%{transform:scaleX(1);opacity:1}}
body.playing .c-kicker::before{background:linear-gradient(90deg,var(--amber),var(--coral))}
.console h1{animation:h1Idle 7s ease-in-out infinite}
@keyframes h1Idle{0%,100%{text-shadow:0 0 30px rgba(255,180,84,.16)}50%{text-shadow:0 0 40px rgba(255,180,84,.34),0 0 12px rgba(255,107,107,.18)}}
body.playing .console h1{text-shadow:0 0 46px rgba(255,180,84,.42),0 0 16px rgba(255,107,107,.24)}
.handle::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;opacity:.45;background:linear-gradient(90deg,transparent,var(--sky),transparent);will-change:transform;transform-origin:left;animation:handleIdle 6s ease-in-out infinite;transition:opacity .4s ease}
@keyframes handleIdle{0%,100%{transform:scaleX(.45)}50%{transform:scaleX(1)}}
.handle:hover::after,body.playing .handle::after{opacity:.95}
.sub.tg{animation:subIdleC 7s ease-in-out infinite}
.sub.vk{animation:subIdleS 7s ease-in-out infinite}
@keyframes subIdleC{0%,100%{box-shadow:0 0 0 0 rgba(255,107,107,0)}50%{box-shadow:0 0 14px -5px rgba(255,107,107,.45)}}
@keyframes subIdleS{0%,100%{box-shadow:0 0 0 0 rgba(89,194,255,0)}50%{box-shadow:0 0 14px -5px rgba(89,194,255,.45)}}
.act-book::after{content:'';position:absolute;top:0;bottom:0;left:0;width:55%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:translateX(-180%) skewX(-12deg);animation:sheen 7s ease-in-out infinite}
@keyframes sheen{0%{transform:translateX(-180%) skewX(-12deg)}22%,100%{transform:translateX(340%) skewX(-12deg)}}
.act-rider{animation:riderIdle 7s ease-in-out infinite}
@keyframes riderIdle{0%,100%{box-shadow:0 0 0 0 rgba(94,230,168,0)}50%{box-shadow:0 0 14px -5px rgba(94,230,168,.4)}}
.wave i{animation:wv 1.7s ease-in-out infinite}
.wave:hover i{opacity:1;animation-duration:1.1s}
body.playing .wave i{opacity:1;animation-duration:.8s}
@keyframes wv{0%,100%{transform:scaleY(.18)}50%{transform:scaleY(1)}}
@media (max-width:560px){.brand-title{justify-content:center}}
/*EOF-EFIR-MOTION*/