/* MemoMilo Duel Flash — pouvoir de gel premium. Scope strict speed_duel. */
.mq-speed-duel .mq-speed-rival-dock,
.mq-speed-duel .mq-speed-hud{position:relative;overflow:hidden}

/* Couche FX: transparente, sans interaction, confinée au bloc qui la reçoit. */
.mq-speed-duel .mq-speed-freeze-layer{position:absolute;inset:0;display:block;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .14s ease;z-index:24;border-radius:inherit;contain:paint;isolation:isolate}
.mq-speed-duel .mq-speed-freeze-layer>i{position:absolute;top:-12%;left:var(--fx,50%);z-index:4;width:auto;height:auto;font-size:var(--fs,7px);line-height:1;color:rgba(244,252,255,var(--falpha,.96));text-shadow:0 1px 2px rgba(35,126,164,.42),0 0 5px rgba(126,219,255,.64);filter:blur(var(--fblur,0));animation:mq-speed-freeze-fall var(--fd,1.8s) linear var(--fdelay,0ms) infinite;will-change:top,transform,opacity;transform:translate3d(0,0,0) rotate(0deg);backface-visibility:hidden}
.mq-speed-duel .mq-speed-freeze-layer>i.is-dot{font-size:calc(var(--fs,6px)*.82);color:rgba(170,232,255,var(--falpha,.92));text-shadow:0 0 4px rgba(132,218,255,.56)}
.mq-speed-duel .mq-speed-freeze-layer>i.is-crystal{opacity:.96;text-shadow:0 0 2px rgba(255,255,255,.92),0 0 7px rgba(127,220,255,.72)}
.mq-speed-duel .mq-speed-freeze-layer>i.is-far{opacity:.62;filter:blur(.45px);text-shadow:0 0 3px rgba(145,221,250,.35)}
.mq-speed-duel .mq-speed-freeze-layer>i.is-near{filter:drop-shadow(0 0 3px rgba(170,232,255,.42))}
@keyframes mq-speed-freeze-fall{
  0%{top:-12%;transform:translate3d(0,0,0) rotate(0deg);opacity:0}
  8%{opacity:var(--falpha,.96)}
  42%{transform:translate3d(var(--fdrift,7px),0,0) rotate(var(--fspinhalf,90deg));opacity:1}
  72%{transform:translate3d(var(--fdrift2,-3px),0,0) rotate(var(--fspin2,180deg));opacity:.9}
  100%{top:108%;transform:translate3d(var(--fdrift3,1px),0,0) rotate(var(--fspin,260deg));opacity:.08}
}

/* Micro-couches premium : onde froide + balayage + liseré vivant. */
.mq-speed-duel .mq-speed-freeze-burst,
.mq-speed-duel .mq-speed-freeze-sheen,
.mq-speed-duel .mq-speed-freeze-rim{position:absolute;inset:0;display:block;pointer-events:none;border-radius:inherit}
.mq-speed-duel .mq-speed-freeze-burst{z-index:2;opacity:0;background:radial-gradient(circle at 72% 42%,rgba(239,252,255,.46) 0 4%,rgba(173,230,255,.22) 18%,rgba(114,206,245,.09) 34%,transparent 58%);transform:scale(.42);will-change:transform,opacity}
.mq-speed-duel .mq-speed-freeze-sheen{z-index:3;left:-86%;right:auto;width:64%;opacity:0;background:linear-gradient(108deg,transparent 0 22%,rgba(240,252,255,.06) 38%,rgba(231,249,255,.34) 50%,rgba(157,226,255,.11) 63%,transparent 78%);transform:skewX(-13deg);will-change:left,opacity}
.mq-speed-duel .mq-speed-freeze-rim{z-index:5;inset:1px;border:1px solid rgba(222,247,255,.58);box-shadow:inset 0 0 0 1px rgba(129,211,247,.08),inset 0 0 13px rgba(211,244,255,.12),0 0 9px rgba(119,207,247,.07);opacity:.72;animation:mq-speed-freeze-rim-breathe 1.05s ease-in-out infinite alternate}
@keyframes mq-speed-freeze-rim-breathe{from{opacity:.52;box-shadow:inset 0 0 0 1px rgba(129,211,247,.06),inset 0 0 9px rgba(211,244,255,.08),0 0 5px rgba(119,207,247,.04)}to{opacity:.88;box-shadow:inset 0 0 0 1px rgba(199,241,255,.13),inset 0 0 15px rgba(211,244,255,.17),0 0 11px rgba(119,207,247,.09)}}

/* Rival : le bloc refroidit, mais reste intégralement visible. */
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active{box-shadow:inset 0 0 0 1px rgba(225,247,255,.66),0 0 18px rgba(111,207,251,.16)}
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-freeze-rival-layer{opacity:1}
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-freeze-rival-layer::before{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;background:
  radial-gradient(circle at 8% 13%,rgba(238,251,255,.22) 0 3%,transparent 24%),
  radial-gradient(circle at 94% 20%,rgba(204,240,255,.17) 0 2%,transparent 27%),
  radial-gradient(circle at 18% 84%,rgba(206,239,255,.13) 0 2%,transparent 24%),
  linear-gradient(135deg,rgba(220,246,255,.085),rgba(181,230,255,.028) 46%,rgba(242,252,255,.095));
  background-size:118% 118%,124% 124%,116% 116%,100% 100%;background-position:0 0,100% 0,0 100%,0 0;
  box-shadow:inset 0 0 17px rgba(218,247,255,.16);backdrop-filter:saturate(.80) brightness(1.035);-webkit-backdrop-filter:saturate(.80) brightness(1.035);animation:mq-speed-frost-drift 4s ease-in-out both}
@keyframes mq-speed-frost-drift{0%{opacity:.42;background-position:-8% -4%,108% -4%,-5% 106%,0 0}28%{opacity:.82}100%{opacity:.72;background-position:5% 2%,97% 3%,4% 98%,0 0}}
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-freeze-rival-layer::after{content:"";position:absolute;z-index:6;left:-4%;right:-4%;bottom:-8px;height:18px;border-radius:50% 50% 18% 18%/70% 70% 20% 20%;background:
  radial-gradient(ellipse at 18% 3%,rgba(250,254,255,.72) 0 20%,transparent 47%),
  radial-gradient(ellipse at 52% 4%,rgba(245,253,255,.80) 0 28%,transparent 56%),
  radial-gradient(ellipse at 83% 6%,rgba(231,248,255,.67) 0 23%,transparent 50%),
  linear-gradient(180deg,rgba(231,249,255,.50),rgba(193,231,249,.10));filter:blur(.1px);animation:mq-speed-snowbank-breathe 1.25s ease-in-out infinite alternate}
@keyframes mq-speed-snowbank-breathe{from{opacity:.70;transform:translate3d(0,1px,0)}to{opacity:.92;transform:translate3d(0,0,0)}}
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>header,
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-rival-window,
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-rival-progress,
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-rival-coach,
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-rival-feed,
.mq-speed-duel .mq-speed-rival-dock.is-freeze-active>.mq-speed-rival-mini-stats{filter:saturate(.80) brightness(1.025);transition:filter .17s ease}

/* Impact de départ < 1 s : flash froid, onde et balayage. */
.mq-speed-duel .mq-speed-rival-dock.is-freeze-flash{animation:mq-speed-freeze-flash .72s cubic-bezier(.18,.78,.25,1) 1}
.mq-speed-duel .mq-speed-rival-dock.is-freeze-flash>.mq-speed-freeze-rival-layer>.mq-speed-freeze-burst{animation:mq-speed-freeze-burst .72s cubic-bezier(.16,.82,.22,1) 1}
.mq-speed-duel .mq-speed-rival-dock.is-freeze-flash>.mq-speed-freeze-rival-layer>.mq-speed-freeze-sheen{animation:mq-speed-freeze-sheen .68s cubic-bezier(.18,.77,.28,1) 1}
@keyframes mq-speed-freeze-flash{0%{box-shadow:inset 0 0 0 1px rgba(230,250,255,.36),0 0 0 rgba(140,225,255,0)}22%{box-shadow:inset 0 0 22px rgba(225,249,255,.27),0 0 26px rgba(145,224,255,.28)}58%{box-shadow:inset 0 0 13px rgba(225,249,255,.17),0 0 18px rgba(145,224,255,.15)}100%{box-shadow:inset 0 0 0 1px rgba(225,247,255,.66),0 0 18px rgba(111,207,251,.16)}}
@keyframes mq-speed-freeze-burst{0%{opacity:0;transform:scale(.34)}18%{opacity:.92}58%{opacity:.34;transform:scale(1.18)}100%{opacity:0;transform:scale(1.62)}}
@keyframes mq-speed-freeze-sheen{0%{left:-86%;opacity:0}18%{opacity:.82}72%{opacity:.36}100%{left:126%;opacity:0}}

/* HUD du joueur : très léger, chiffres toujours au-dessus. */
.mq-speed-duel .mq-speed-hud.is-freeze-active>.mq-speed-freeze-hud-layer{opacity:.50;z-index:18}
.mq-speed-duel .mq-speed-hud.is-freeze-active>.mq-speed-freeze-hud-layer>.mq-speed-freeze-burst,
.mq-speed-duel .mq-speed-hud.is-freeze-active>.mq-speed-freeze-hud-layer>.mq-speed-freeze-sheen,
.mq-speed-duel .mq-speed-hud.is-freeze-active>.mq-speed-freeze-hud-layer>.mq-speed-freeze-rim{display:none}
.mq-speed-duel .mq-speed-hud.is-freeze-active>.mq-speed-freeze-hud-layer::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(220,246,255,.095),transparent 64%);box-shadow:inset 0 1px 0 rgba(236,251,255,.26),inset 0 5px 11px rgba(176,229,252,.04)}
.mq-speed-duel .mq-speed-hud.is-freeze-active>.mq-speed-freeze-hud-layer::after{content:"";position:absolute;right:7px;top:6px;width:28px;height:11px;background:
  radial-gradient(circle at 2px 3px,rgba(238,251,255,.84) 0 1.5px,transparent 1.9px),
  radial-gradient(circle at 10px 7px,rgba(238,251,255,.70) 0 1.25px,transparent 1.7px),
  radial-gradient(circle at 18px 2px,rgba(238,251,255,.76) 0 1.35px,transparent 1.8px),
  radial-gradient(circle at 26px 8px,rgba(238,251,255,.66) 0 1.15px,transparent 1.65px);animation:mq-speed-hud-dots 1.1s ease-in-out infinite alternate}
@keyframes mq-speed-hud-dots{from{opacity:.55}to{opacity:.94}}
.mq-speed-duel .mq-speed-hud.is-freeze-active .mq-speed-hud-stat,
.mq-speed-duel .mq-speed-hud.is-freeze-active .mq-speed-combo,
.mq-speed-duel .mq-speed-hud.is-freeze-active .mq-speed-avatar{position:relative;z-index:19}

/* Compteur : reste discret, devient vivant quand la charge monte. */
.mq-speed-duel .mq-speed-freeze-counter{min-width:54px;height:30px;padding:0 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--mq-online-accent,#58d7ff) 38%,transparent);background:color-mix(in srgb,var(--mq-online-panel-strong,rgba(20,30,40,.85)) 88%,transparent);color:inherit;font:800 11px/1 system-ui,sans-serif;letter-spacing:.03em;pointer-events:none;white-space:nowrap;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.mq-speed-duel .mq-speed-freeze-counter.has-charge{border-color:rgba(155,226,255,.55);box-shadow:inset 0 0 8px rgba(120,216,255,.07),0 0 7px rgba(120,212,255,.06)}
.mq-speed-duel .mq-speed-freeze-counter.is-active{border-color:rgba(217,247,255,.76);box-shadow:inset 0 0 12px rgba(188,235,255,.15),0 0 12px rgba(120,212,255,.13);animation:mq-speed-freeze-counter-pulse .7s ease-in-out infinite alternate}
@keyframes mq-speed-freeze-counter-pulse{from{transform:scale(1);box-shadow:inset 0 0 9px rgba(188,235,255,.10),0 0 7px rgba(120,212,255,.08)}to{transform:scale(1.025);box-shadow:inset 0 0 14px rgba(188,235,255,.18),0 0 13px rgba(120,212,255,.15)}}
.mq-speed-duel .mq-speed-rival-coach.is-freeze{border-color:rgba(195,236,255,.29);background:linear-gradient(90deg,rgba(184,230,250,.09),rgba(184,230,250,.025) 62%,transparent);color:inherit}


/* Le plateau local ne reçoit jamais le FX sortant du rival ; le gel subi utilise ses propres couches v5. */
.mq-speed-duel .mq-speed-local-board>.mq-speed-freeze-layer,
.mq-speed-duel .mq-speed-board-wrap>.mq-speed-freeze-layer{display:none!important}

@media(prefers-reduced-motion:reduce){
  .mq-speed-duel .mq-speed-freeze-layer>i{animation-duration:2.6s}
  .mq-speed-duel .mq-speed-rival-dock.is-freeze-flash,
  .mq-speed-duel .mq-speed-rival-dock.is-freeze-flash>.mq-speed-freeze-rival-layer>.mq-speed-freeze-burst,
  .mq-speed-duel .mq-speed-rival-dock.is-freeze-flash>.mq-speed-freeze-rival-layer>.mq-speed-freeze-sheen,
  .mq-speed-duel .mq-speed-freeze-rim,
  .mq-speed-duel .mq-speed-freeze-counter.is-active{animation:none}
}

/* === Duel Flash v5 — écran du joueur réellement gelé par le serveur === */
.mq-speed-duel .mq-speed-board-wrap{position:relative;overflow:hidden}
.mq-speed-duel .mq-speed-board-wrap.is-self-freeze-active .mq-speed-local-board{pointer-events:none}

/* Le givre est appliqué à chaque vraie face de carte, sans remplacer les images du système. */
.mq-speed-duel .mq-speed-card-ice{position:absolute;inset:0;z-index:8;display:block;pointer-events:none;border-radius:inherit;opacity:0;overflow:hidden;backface-visibility:hidden;background:
  radial-gradient(circle at 12% 13%,rgba(249,254,255,.78) 0 1.2px,transparent 1.8px),
  radial-gradient(circle at 86% 19%,rgba(224,248,255,.72) 0 1px,transparent 1.7px),
  radial-gradient(circle at 17% 84%,rgba(236,252,255,.60) 0 1.1px,transparent 1.8px),
  linear-gradient(132deg,rgba(229,249,255,.19),rgba(145,218,250,.075) 44%,rgba(242,253,255,.24));
  border:1px solid rgba(226,250,255,.68);box-shadow:inset 0 0 0 1px rgba(139,216,248,.11),inset 0 0 12px rgba(222,249,255,.24),0 0 8px rgba(110,210,250,.10);backdrop-filter:saturate(.82) brightness(1.025);-webkit-backdrop-filter:saturate(.82) brightness(1.025)}
.mq-speed-duel .mq-speed-card-ice::before{content:"";position:absolute;inset:-22% -70%;opacity:0;transform:skewX(-16deg);background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.08) 43%,rgba(237,252,255,.72) 50%,rgba(150,226,255,.13) 58%,transparent 66%)}
.mq-speed-duel .mq-speed-card-ice::after{content:"";position:absolute;left:3px;right:3px;bottom:1px;height:9px;border-radius:50% 50% 22% 22%/100% 100% 35% 35%;background:
  radial-gradient(ellipse at 12% 100%,rgba(255,255,255,.90),transparent 58%),
  radial-gradient(ellipse at 44% 100%,rgba(231,250,255,.82),transparent 61%),
  radial-gradient(ellipse at 80% 100%,rgba(255,255,255,.86),transparent 58%);opacity:.72;filter:blur(.2px)}
.mq-speed-duel .is-self-freeze-active .mq-speed-card-ice{animation:mq-speed-card-freeze-in .42s cubic-bezier(.18,.84,.22,1) calc(var(--i,0)*8ms) forwards,mq-speed-card-freeze-breathe .9s ease-in-out .55s infinite alternate}
.mq-speed-duel .is-self-freeze-active .mq-speed-card-ice::before{animation:mq-speed-card-freeze-sheen .72s cubic-bezier(.18,.77,.28,1) calc(70ms + var(--i,0)*7ms) 1}
@keyframes mq-speed-card-freeze-in{0%{opacity:0;filter:blur(1.2px)}42%{opacity:.94;filter:blur(0)}100%{opacity:.78;filter:blur(0)}}
@keyframes mq-speed-card-freeze-breathe{from{opacity:.72;box-shadow:inset 0 0 0 1px rgba(139,216,248,.09),inset 0 0 9px rgba(222,249,255,.17),0 0 5px rgba(110,210,250,.07)}to{opacity:.88;box-shadow:inset 0 0 0 1px rgba(196,239,255,.18),inset 0 0 15px rgba(222,249,255,.28),0 0 10px rgba(110,210,250,.13)}}
@keyframes mq-speed-card-freeze-sheen{0%{left:-85%;right:145%;opacity:0}18%{opacity:.9}72%{opacity:.42}100%{left:125%;right:-85%;opacity:0}}

/* Neige seulement pendant le freeze subi, 24 particules, du haut au bas du plateau. */
.mq-speed-duel .mq-speed-self-freeze-snow{position:absolute;inset:0;z-index:22;display:block;pointer-events:none;overflow:hidden;border-radius:inherit;opacity:0;contain:paint}
.mq-speed-duel .mq-speed-self-freeze-snow>i{position:absolute;top:-12%;left:var(--sx,50%);font-size:var(--ss,7px);line-height:1;color:rgba(247,253,255,var(--salpha,.9));text-shadow:0 0 3px rgba(255,255,255,.88),0 0 7px rgba(112,216,255,.68);animation:mq-speed-self-snow-fall var(--sd,1.6s) linear var(--sdelay,0ms) infinite;will-change:top,transform,opacity}
.mq-speed-duel .mq-speed-self-freeze-snow>i.is-dot{font-size:calc(var(--ss,5px)*.75);color:rgba(190,238,255,var(--salpha,.86))}
.mq-speed-duel .mq-speed-board-wrap.is-self-freeze-active>.mq-speed-self-freeze-snow{opacity:1;transition:opacity .16s ease}
@keyframes mq-speed-self-snow-fall{0%{top:-12%;transform:translate3d(0,0,0) rotate(0deg);opacity:0}9%{opacity:var(--salpha,.9)}48%{transform:translate3d(var(--sdrift,7px),0,0) rotate(150deg);opacity:1}78%{transform:translate3d(calc(var(--sdrift,7px)*-.35),0,0) rotate(240deg);opacity:.88}100%{top:108%;transform:translate3d(calc(var(--sdrift,7px)*.25),0,0) rotate(360deg);opacity:.08}}

/* Message premium, compact : il informe sans transformer le plateau en plaque blanche. */
.mq-speed-duel .mq-speed-self-freeze-alert{position:absolute;z-index:25;left:50%;top:8px;width:min(88%,360px);transform:translate(-50%,-8px) scale(.94);opacity:0;pointer-events:none;display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;align-items:center;padding:9px 11px;border-radius:17px;color:#0b5798;background:linear-gradient(135deg,rgba(242,253,255,.91),rgba(214,244,255,.86) 54%,rgba(195,233,255,.84));border:1px solid rgba(255,255,255,.94);box-shadow:0 10px 26px rgba(0,97,172,.20),0 0 0 2px rgba(128,220,255,.16),inset 0 1px 0 rgba(255,255,255,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow:hidden}
.mq-speed-duel .mq-speed-self-freeze-alert>b{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font:900 24px/1 system-ui;color:#fff;background:linear-gradient(150deg,#50c8ff,#176edf);border:1px solid rgba(255,255,255,.9);box-shadow:0 5px 14px rgba(18,111,219,.25)}
.mq-speed-duel .mq-speed-self-freeze-alert span{min-width:0;display:block}.mq-speed-duel .mq-speed-self-freeze-alert strong{display:block;font:950 13px/1.05 system-ui;letter-spacing:.025em;color:#07579f}.mq-speed-duel .mq-speed-self-freeze-alert small{display:block;margin-top:3px;font:760 9px/1.25 system-ui;color:#35677f}.mq-speed-duel .mq-speed-self-freeze-alert em{display:block;margin-top:4px;font:900 9px/1 system-ui;letter-spacing:.06em;color:#1478cf;font-style:normal}.mq-speed-duel .mq-speed-self-freeze-alert em i{font:1000 11px/1 system-ui;font-style:normal}
.mq-speed-duel .mq-speed-board-wrap.is-self-freeze-active>.mq-speed-self-freeze-alert{animation:mq-speed-self-alert 4s cubic-bezier(.2,.82,.2,1) forwards}
@keyframes mq-speed-self-alert{0%{opacity:0;transform:translate(-50%,-12px) scale(.9);filter:blur(4px)}9%{opacity:1;transform:translate(-50%,0) scale(1.02);filter:blur(0)}17%,84%{opacity:1;transform:translate(-50%,0) scale(1);filter:blur(0)}100%{opacity:0;transform:translate(-50%,-7px) scale(.98);filter:blur(1px)}}

.mq-speed-duel .mq-speed-self-thaw{position:absolute;z-index:26;left:50%;top:14%;width:min(76%,300px);transform:translate(-50%,-12px) scale(.9);opacity:0;pointer-events:none;padding:9px 12px;border-radius:15px;text-align:center;color:#087b58;background:linear-gradient(135deg,rgba(238,255,248,.95),rgba(205,252,230,.92));border:1px solid rgba(255,255,255,.95);box-shadow:0 10px 24px rgba(7,135,89,.18),0 0 0 2px rgba(103,237,185,.15)}
.mq-speed-duel .mq-speed-self-thaw strong{display:block;font:950 12px/1.05 system-ui}.mq-speed-duel .mq-speed-self-thaw small{display:block;margin-top:2px;font:900 9px/1 system-ui;letter-spacing:.08em}.mq-speed-duel .mq-speed-self-thaw.is-show{animation:mq-speed-thaw-pop 1.02s cubic-bezier(.16,.86,.2,1) forwards}
@keyframes mq-speed-thaw-pop{0%{opacity:0;transform:translate(-50%,-8px) scale(.86);filter:blur(4px)}18%{opacity:1;transform:translate(-50%,0) scale(1.04);filter:blur(0)}68%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-7px) scale(.97)}}

/* Impact froid très court sur le vrai plateau + HUD léger, jamais de cache blanc. */
.mq-speed-duel.is-self-freeze-flash .mq-speed-board-wrap{animation:mq-speed-self-freeze-impact .68s cubic-bezier(.18,.8,.24,1) 1}
@keyframes mq-speed-self-freeze-impact{0%{box-shadow:0 0 0 rgba(121,217,255,0)}20%{box-shadow:inset 0 0 24px rgba(230,251,255,.28),0 0 25px rgba(120,215,255,.24)}100%{box-shadow:inset 0 0 8px rgba(220,248,255,.08),0 0 0 rgba(120,215,255,0)}}
.mq-speed-duel .mq-speed-hud.is-self-freeze-active{box-shadow:inset 0 0 0 1px rgba(222,248,255,.38),inset 0 0 11px rgba(195,237,255,.09);filter:saturate(.88) brightness(1.015)}

@media(prefers-reduced-motion:reduce){
  .mq-speed-duel .mq-speed-card-ice,.mq-speed-duel .mq-speed-card-ice::before,.mq-speed-duel .mq-speed-self-freeze-snow>i,.mq-speed-duel .mq-speed-self-freeze-alert,.mq-speed-duel .mq-speed-self-thaw,.mq-speed-duel.is-self-freeze-flash .mq-speed-board-wrap{animation:none!important}
  .mq-speed-duel .mq-speed-board-wrap.is-self-freeze-active .mq-speed-card-ice{opacity:.78}
  .mq-speed-duel .mq-speed-board-wrap.is-self-freeze-active>.mq-speed-self-freeze-alert{opacity:1;transform:translate(-50%,0) scale(1)}
}

/* v185 Ultra: keep freeze FX compositor-friendly while rapid card flips are active. */
.mq-speed-duel .mq-speed-local-board .mq-card{backface-visibility:visible;contain:layout style;}
.mq-speed-duel.is-self-freeze-active .mq-speed-local-board .mq-card{will-change:transform,filter;}

/* ========================================================================== 
   MemoMilo Duel Flash v187 — Pouvoirs 2/3/4 + Global Danger Premium
   2 = Brouillage (2 cartes), 3 = Freeze 4 s, 4 = Chaos synchronisé.
   ========================================================================== */
.mq-speed-duel .mq-speed-board-wrap.is-self-freeze-active>.mq-speed-self-freeze-alert{animation-duration:4s}

/* Brouillage : le vrai recto reste dessous, le ? le masque brièvement sans bloquer le pipeline. */
.mq-speed-duel .mq-speed-question-mask{
  position:absolute;inset:0;z-index:13;display:grid;place-items:center;align-content:center;gap:1px;
  pointer-events:none;border-radius:inherit;opacity:0;transform:scale(.92);overflow:hidden;
  color:#fff;background:
    radial-gradient(circle at 50% 18%,rgba(255,255,255,.24),transparent 31%),
    linear-gradient(145deg,rgba(125,106,255,.96),rgba(74,65,211,.97) 58%,rgba(42,39,154,.98));
  border:1px solid rgba(255,255,255,.82);box-shadow:inset 0 0 16px rgba(255,255,255,.12),0 0 10px rgba(92,79,235,.22);
  backface-visibility:hidden;-webkit-backface-visibility:hidden;contain:paint;
}
.mq-speed-duel .mq-speed-question-mask::before{
  content:"";position:absolute;inset:-30% -80%;transform:skewX(-18deg);
  background:linear-gradient(100deg,transparent 38%,rgba(255,255,255,.66) 50%,transparent 62%);opacity:0
}
.mq-speed-duel .mq-speed-question-mask>b{font:1000 clamp(20px,6vw,34px)/.88 system-ui;text-shadow:0 4px 13px rgba(20,15,96,.32)}
.mq-speed-duel .mq-speed-question-mask>small{font:950 clamp(5px,1.5vw,8px)/1 system-ui;letter-spacing:.09em;opacity:.86}
.mq-speed-duel .mq-speed-card.is-questioned .mq-speed-question-mask{animation:mq-speed-question-v7 480ms cubic-bezier(.16,.82,.18,1) forwards}
.mq-speed-duel .mq-speed-card.is-questioned .mq-speed-question-mask::before{animation:mq-speed-question-sheen-v7 420ms ease-out 1}
@keyframes mq-speed-question-v7{
  0%{opacity:0;transform:scale(.88);filter:blur(2px)}
  14%{opacity:1;transform:scale(1.02);filter:blur(0)}
  22%,72%{opacity:1;transform:scale(1);filter:blur(0)}
  100%{opacity:0;transform:scale(1.045);filter:blur(1px)}
}
@keyframes mq-speed-question-sheen-v7{0%{translate:-110% 0;opacity:0}26%{opacity:.72}100%{translate:220% 0;opacity:0}}

/* Notification compacte, réutilisée pour Brouillage et Chaos. */
.mq-speed-duel .mq-speed-power-toast{
  position:absolute;z-index:27;left:50%;top:10px;width:min(88%,352px);pointer-events:none;
  display:grid;grid-template-columns:40px minmax(0,1fr);gap:9px;align-items:center;
  padding:9px 11px;border-radius:17px;opacity:0;transform:translate(-50%,-9px) scale(.94);
  color:#173b73;background:linear-gradient(135deg,rgba(250,253,255,.94),rgba(235,241,255,.91));
  border:1px solid rgba(255,255,255,.95);box-shadow:0 10px 25px rgba(41,58,145,.19),0 0 0 2px rgba(132,121,255,.11);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow:hidden
}
.mq-speed-duel .mq-speed-power-toast>b{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font:1000 22px/1 system-ui;color:#fff;background:linear-gradient(145deg,#8275ff,#4f47d8);box-shadow:0 5px 13px rgba(73,62,206,.23)}
.mq-speed-duel .mq-speed-power-toast>span{min-width:0}.mq-speed-duel .mq-speed-power-toast strong{display:block;font:1000 12px/1.05 system-ui;letter-spacing:.025em;color:#5548d5}.mq-speed-duel .mq-speed-power-toast small{display:block;margin-top:3px;font:780 8.8px/1.27 system-ui;color:#4d647e}
.mq-speed-duel .mq-speed-power-toast.is-chaos{background:linear-gradient(135deg,rgba(255,253,247,.95),rgba(255,239,217,.92));box-shadow:0 10px 25px rgba(190,92,30,.18),0 0 0 2px rgba(255,184,86,.13)}
.mq-speed-duel .mq-speed-power-toast.is-chaos>b{background:linear-gradient(145deg,#ffbd59,#df6634);box-shadow:0 5px 13px rgba(214,91,39,.22)}
.mq-speed-duel .mq-speed-power-toast.is-chaos strong{color:#b9582c}
.mq-speed-duel .mq-speed-power-toast.is-show{animation:mq-speed-power-toast-v7 1.5s cubic-bezier(.18,.84,.18,1) forwards}
@keyframes mq-speed-power-toast-v7{0%{opacity:0;transform:translate(-50%,-12px) scale(.9);filter:blur(4px)}11%{opacity:1;transform:translate(-50%,0) scale(1.02);filter:blur(0)}19%,82%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-8px) scale(.98)}}

/* Chaos : CSS individual translate compose avec rotateY, donc aucun conflit avec le flip 110 ms. */
.mq-speed-duel .mq-speed-card.is-chaos-moving{
  translate:var(--mq-chaos-x,0px) var(--mq-chaos-y,0px)!important;
  transition:transform 110ms cubic-bezier(.18,.78,.18,1),translate 620ms cubic-bezier(.18,.84,.18,1)!important;
  z-index:9;will-change:transform,translate
}
.mq-speed-duel.is-chaos-impact .mq-speed-board-wrap::after{
  content:"";position:absolute;inset:0;z-index:21;pointer-events:none;border-radius:inherit;opacity:0;
  background:radial-gradient(circle at 50% 52%,transparent 0 18%,rgba(255,184,75,.18) 45%,transparent 73%);
  animation:mq-speed-chaos-ring-v7 .72s ease-out 1
}
@keyframes mq-speed-chaos-ring-v7{0%{opacity:0;transform:scale(.92)}24%{opacity:.92}100%{opacity:0;transform:scale(1.08)}}

@media(prefers-reduced-motion:reduce){
  .mq-speed-duel .mq-speed-card.is-questioned .mq-speed-question-mask,
  .mq-speed-duel .mq-speed-card.is-questioned .mq-speed-question-mask::before,
  .mq-speed-duel .mq-speed-power-toast.is-show,
  .mq-speed-duel.is-chaos-impact .mq-speed-board-wrap::after{animation:none!important}
  .mq-speed-duel .mq-speed-card.is-questioned .mq-speed-question-mask{opacity:1;transform:none}
  .mq-speed-duel .mq-speed-card.is-chaos-moving{transition:none!important}
}
