/* MemoMilo v248 — Zoom ×1,7 de la carte entière (avec son cadre) + choix du mode après la distribution. */

/* ---------- Zoom ×1,7 : calque rendu dans le contexte du plateau ---------- */
.mq-shell .mq-board.mq-zoom17{
  position:fixed!important;display:block!important;margin:0!important;padding:0!important;border:0!important;
  background:none!important;box-shadow:none!important;outline:0!important;gap:0!important;grid-template:none!important;
  overflow:visible!important;z-index:2147483000!important;pointer-events:none!important;opacity:1!important;
  max-width:none!important;max-height:none!important;min-width:0!important;min-height:0!important;aspect-ratio:auto!important;
  perspective:none!important;filter:none!important;animation:none!important;
  transform:translate3d(0,0,0) scale(1);transform-origin:50% 50%;
  transition:transform var(--mq-z17-in,240ms) cubic-bezier(.2,.85,.25,1);
  will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;contain:layout style;
}
.mq-shell .mq-board.mq-zoom17::before,.mq-shell .mq-board.mq-zoom17::after{display:none!important}
.mq-shell .mq-board.mq-zoom17.is-active{transform:translate3d(var(--mq-z17-x,0px),var(--mq-z17-y,0px),0) scale(1.7)}
.mq-shell .mq-board.mq-zoom17.is-leaving{transform:translate3d(0,0,0) scale(1);transition-duration:var(--mq-z17-out,230ms);transition-timing-function:cubic-bezier(.4,0,.3,1)}
.mq-shell .mq-board.mq-zoom17 .mq-z17-card{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;
  transform:none!important;transition:none!important;animation:none!important;will-change:auto!important;
  aspect-ratio:auto!important;transform-style:flat!important;
}
.mq-shell .mq-board.mq-zoom17 .mq-z17-card::before,.mq-shell .mq-board.mq-zoom17 .mq-z17-card::after{animation:none!important}
.mq-shell .mq-board.mq-zoom17 .mq-z17-face{
  transform:none!important;backface-visibility:visible!important;-webkit-backface-visibility:visible!important;
  animation:none!important;transition:none!important;
  box-shadow:0 14px 30px rgba(8,30,52,.30),0 3px 8px rgba(8,30,52,.18)!important;
}
.mq-shell .mq-board.mq-zoom17 .mq-z17-face::before,.mq-shell .mq-board.mq-zoom17 .mq-z17-face::after{animation:none!important;transition:none!important}
.mq-shell .mq-board.mq-zoom17 .mq-z17-face *{animation:none!important;transition:none!important}
.mq-shell .mq-board.mq-zoom17.is-calm{transition-duration:90ms}
@media (prefers-reduced-motion:reduce){.mq-shell .mq-board.mq-zoom17{transition-duration:90ms}}

/* ---------- Choix du mode après la distribution ---------- */
.mq-modepick{position:fixed;inset:0;z-index:2147482000;display:grid;place-items:center;padding:16px;pointer-events:none}
.mq-modepick-veil{position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 50%,rgba(6,26,44,.42),rgba(6,26,44,.18) 70%,transparent);opacity:0;transition:opacity .35s ease}
.mq-modepick.is-on .mq-modepick-veil{opacity:1}
.mq-modepick-panel{
  position:relative;pointer-events:auto;width:min(76%,300px);padding:13px 11px 11px;border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(238,249,255,.94));
  box-shadow:0 24px 54px rgba(6,30,52,.34),0 0 0 1px rgba(255,255,255,.7) inset,0 0 0 3px rgba(80,200,230,.18);
  transform:translateY(18px) scale(.92);opacity:0;
  transition:transform .42s cubic-bezier(.2,.9,.25,1.12),opacity .26s ease;will-change:transform,opacity;
}
.mq-modepick.is-on .mq-modepick-panel{transform:translateY(0) scale(1);opacity:1}
.mq-modepick.is-out .mq-modepick-panel{transform:translateY(10px) scale(.94);opacity:0;transition-duration:.22s}
.mq-modepick.is-out .mq-modepick-veil{opacity:0}
.mq-modepick-head{text-align:center;margin:0 0 10px}
.mq-modepick-head small{display:block;font-weight:900;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#1a8bb0}
.mq-modepick-head b{display:block;margin-top:2px;font-weight:950;font-size:18px;line-height:1.15;color:#0d3a55}
.mq-modepick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mq-modepick-opt{
  --c1:#8de6ff;--c2:#2e86e0;
  position:relative;display:grid;justify-items:center;align-content:start;gap:3px;min-width:0;padding:8px 6px 9px;border:0;border-radius:16px;
  background:linear-gradient(170deg,#fff,color-mix(in srgb,var(--c1) 22%,#fff));
  box-shadow:0 4px 12px rgba(10,50,80,.12),inset 0 0 0 1.5px color-mix(in srgb,var(--c2) 22%,transparent);
  color:#0d3a55;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;
  opacity:0;transform:translateY(14px) scale(.9);
  transition:transform .38s cubic-bezier(.2,.9,.25,1.15),opacity .25s ease,box-shadow .2s ease;
  transition-delay:calc(var(--k,0) * 70ms + 120ms);
}
.mq-modepick.is-on .mq-modepick-opt{opacity:1;transform:none}
.mq-modepick-opt.is-wide{grid-column:1 / -1;grid-template-columns:auto 1fr;justify-items:start;align-items:center;text-align:left;column-gap:10px;padding:7px 12px}
.mq-modepick-opt.is-wide .mq-modepick-art{grid-row:span 2;width:44px;height:44px}
.mq-modepick-art{width:56px;height:56px;border-radius:14px;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--c1) 70%,#fff),var(--c2))}
.mq-modepick-art img{width:100%;height:100%;object-fit:cover}
.mq-modepick-art svg{width:100%;height:100%}
.mq-modepick-opt strong{font-weight:950;font-size:13.5px;line-height:1.1}
.mq-modepick-opt em{font-style:normal;font-weight:800;font-size:10px;line-height:1.2;color:#4b7489;text-align:center}
.mq-modepick-opt.is-wide em{text-align:left}
.mq-modepick-opt.is-sel{box-shadow:0 8px 20px color-mix(in srgb,var(--c2) 35%,transparent),inset 0 0 0 2.5px var(--c2)}
.mq-modepick-opt.is-sel::after{content:"✓";position:absolute;top:6px;right:7px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:950;color:#fff;background:var(--c2)}
.mq-modepick-opt:active{transform:scale(.96)}
.mq-modepick-go{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:10px;min-height:46px;border:0;border-radius:15px;
  font:inherit;font-weight:950;font-size:15px;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,#22b8d6,#1f6fd1)!important;color:#fff!important;box-shadow:0 10px 22px rgba(31,111,209,.32),inset 0 1px 0 rgba(255,255,255,.35)!important;
  opacity:0;transform:translateY(10px);transition:transform .35s cubic-bezier(.2,.9,.25,1.1) .5s,opacity .25s ease .5s;
}
.mq-modepick.is-on .mq-modepick-go{opacity:1;transform:none}
.mq-modepick-go:active{transform:scale(.97)}
/* Thèmes sombres */
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-modepick-panel{background:linear-gradient(180deg,rgba(24,36,58,.97),rgba(14,22,40,.96));box-shadow:0 24px 54px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.08) inset,0 0 0 3px rgba(120,200,255,.12)}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-modepick-head b{color:#eef7ff}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-modepick-head small{color:#7dd3fc}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-modepick-opt{background:linear-gradient(170deg,rgba(255,255,255,.08),color-mix(in srgb,var(--c2) 18%,rgba(255,255,255,.03)));color:#eef7ff;box-shadow:0 4px 12px rgba(0,0,0,.25),inset 0 0 0 1.5px rgba(255,255,255,.1)}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-modepick-opt em{color:#a8bfd0}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-modepick-opt.is-sel{box-shadow:0 8px 20px color-mix(in srgb,var(--c2) 40%,transparent),inset 0 0 0 2.5px var(--c1)}
.mq-shell[data-skin="ambre"] .mq-modepick-go{background:linear-gradient(135deg,#f6a35e,#d9622b)!important;box-shadow:0 10px 22px rgba(217,98,43,.32)!important}
.mq-shell[data-skin="grenat"] .mq-modepick-go{background:linear-gradient(135deg,#f6a35e,#c0405e)!important}
.mq-shell[data-motion="calme"] .mq-modepick *,.mq-shell[data-motion="calme"] .mq-modepick{transition-duration:.01s!important;transition-delay:0s!important}
@media (prefers-reduced-motion:reduce){.mq-modepick *{transition-duration:.01s!important;transition-delay:0s!important}}
@media (max-height:640px){.mq-modepick-art{width:44px;height:44px}.mq-modepick-opt em{display:none}}

/* ---------- Fenêtres d'annonce / cadeau / message : entrée fluide ---------- */
/* 1) La fenêtre arrive seule : uniquement transform + opacity, sur sa propre couche GPU. */
.mqa-layer{will-change:opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.mqa-layer.is-entering:not(.is-on){opacity:.001}
.mqa-layer>div{will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translate3d(0,22px,0) scale(.94)}
.mqa-layer.is-on>div{transform:translate3d(0,0,0) scale(1)}
.mqa-layer.is-ready>div{will-change:auto}
/* 2) Les animations internes attendent que la fenêtre soit posée (elles restent sur leur 1re image). */
.mqa-layer.is-entering .mqt-card *,.mqa-layer.is-entering .mqt-card *::before,.mqa-layer.is-entering .mqt-card *::after,
.mqa-layer.is-entering .mqt-hero::before,.mqa-layer.is-entering .mqt-cta::after,
.mqa-layer.is-entering .mqe-card *,.mqa-layer.is-entering .mqe-card *::before,.mqa-layer.is-entering .mqe-card *::after,
.mqa-layer.is-entering .mqa-pop *{animation-play-state:paused!important}
/* 3) Effets coûteux remplacés par des équivalents légers (aucun flou en direct, aucune ombre animée). */
.mqa-layer .mqt-card .mqt-x,.mqa-layer .mqt-ribbon,.mqa-layer .mqt-count{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.mqa-layer .mqt-card .mqt-x{background:rgba(10,16,40,.5)}
.mqa-layer .mqt-ribbon{background:rgba(10,16,40,.46)}
.mqa-layer .mqt-count{background:rgba(10,16,40,.55)}
.mqa-layer .mqt-art,.mqa-layer .mqt-img,.mqa-layer .mqt-rays,.mqa-layer .mqt-ribbon,.mqa-layer .mqt-badge,.mqa-layer .mqt-count{will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.mqa-layer .mqt-hero{contain:paint;isolation:isolate}
.mqa-layer .mqe-cta.is-pulse{animation:none!important;position:relative}
.mqa-layer .mqe-cta.is-pulse::before{content:"";position:absolute;inset:-6px;border-radius:inherit;pointer-events:none;box-shadow:0 0 0 6px color-mix(in srgb,var(--e2,#f59e0b) 25%,transparent),0 14px 44px var(--eg,rgba(245,158,11,.5));opacity:0;animation:mqv248-pulse 1.6s ease-in-out infinite}
.mqa-layer .mqe-card.is-champion .mqt-hero{animation:none!important}
@keyframes mqv248-pulse{0%,100%{opacity:0}50%{opacity:1}}
/* Même principe sur l'écran du Grand Tournoi : halo du titre par opacité, pas par text-shadow animé. */
.mqe-official .mqe-title,.mqe-official h1,.mqe-official h2{animation:none!important}

/* ===================== v249 — Cadeaux premium ===================== */
@keyframes mqg-wiggle{0%,62%,100%{transform:rotate(0) scale(1)}66%{transform:rotate(-12deg) scale(1.08)}72%{transform:rotate(10deg) scale(1.1)}78%{transform:rotate(-7deg) scale(1.06)}84%{transform:rotate(4deg) scale(1.03)}90%{transform:rotate(0) scale(1)}}
@keyframes mqg-halo{0%,100%{opacity:.35;transform:scale(.9)}50%{opacity:.9;transform:scale(1.12)}}
@keyframes mqg-spin{to{transform:rotate(360deg)}}
@keyframes mqg-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes mqg-pop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes mqg-shake{0%,100%{transform:rotate(0)}15%{transform:rotate(-9deg) scale(1.05)}30%{transform:rotate(8deg) scale(1.08)}45%{transform:rotate(-7deg) scale(1.1)}60%{transform:rotate(6deg) scale(1.12)}75%{transform:rotate(-4deg) scale(1.14)}90%{transform:rotate(2deg) scale(1.16)}}
@keyframes mqg-lid{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(18px,-46px) rotate(28deg);opacity:0}}
@keyframes mqg-flash{0%{opacity:0;transform:scale(.4)}35%{opacity:1}100%{opacity:0;transform:scale(2.4)}}
@keyframes mqg-coin{0%{opacity:0;transform:rotate(var(--a)) translateY(0) scale(.4)}20%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(-1 * var(--r))) scale(1)}}
@keyframes mqg-amount{0%{opacity:0;transform:translate(-50%,10px) scale(.4)}55%{opacity:1;transform:translate(-50%,-14px) scale(1.25)}100%{opacity:1;transform:translate(-50%,-10px) scale(1)}}
@keyframes mqg-spot{0%{box-shadow:0 0 0 0 rgba(251,191,36,.75),0 18px 40px rgba(217,119,6,.3)}100%{box-shadow:0 0 0 22px rgba(251,191,36,0),0 18px 40px rgba(217,119,6,.3)}}
@keyframes mqg-shine{0%{transform:translateX(-130%)}60%,100%{transform:translateX(130%)}}

/* Bouton du haut */
.mq-shell .mq-icon-btn.mq-giftbtn{position:relative;overflow:visible}
.mq-shell .mq-giftbtn .mq-giftbtn-art{width:84%;height:84%;filter:drop-shadow(0 3px 4px rgba(150,20,60,.25));transform-origin:50% 80%}
.mq-shell .mq-giftbtn.is-pret .mq-giftbtn-art{animation:mqg-wiggle 2.8s ease-in-out infinite}
.mq-shell .mq-giftbtn.is-pret::before{content:"";position:absolute;inset:-4px;border-radius:inherit;background:radial-gradient(circle,rgba(251,191,36,.55),transparent 70%);animation:mqg-halo 1.8s ease-in-out infinite;pointer-events:none;z-index:-1}
.mq-shell .mq-coffre.mq-giftbtn.is-pret::after{display:none!important}
.mq-giftbtn-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;font:900 11px/1 var(--mq-font-body,system-ui);color:#fff;background:linear-gradient(135deg,#ff4d6d,#e11d48);box-shadow:0 0 0 2px #fff,0 4px 10px rgba(225,29,72,.45);animation:mqg-pop .5s cubic-bezier(.2,.9,.3,1.4) both}
.mq-giftbtn-count[hidden]{display:none}

/* Zone cadeaux de la boutique */
.mq-shell .mq-view[data-view="boutique"] .mq-shop-gift-hint{display:block;width:100%;border:0;cursor:pointer;font:inherit;font-weight:900;animation:mqg-float 2.4s ease-in-out infinite}
.mq-giftzone{display:grid;gap:12px}
.mq-giftcard{position:relative;display:grid;grid-template-columns:112px 1fr;align-items:center;gap:12px;padding:12px 14px 12px 10px;border-radius:24px;overflow:hidden;isolation:isolate;
  background:linear-gradient(150deg,#fff,#fff7ea);box-shadow:0 12px 28px rgba(120,60,10,.14),inset 0 0 0 1.5px rgba(245,158,11,.22);color:#4a2a06}
.mq-giftcard.is-ready{background:linear-gradient(150deg,#fff8e1,#ffe0b2 60%,#ffd1dc);box-shadow:0 18px 40px rgba(217,119,6,.3),inset 0 0 0 2px rgba(245,158,11,.55)}
.mq-giftcard.is-ready::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.65) 50%,transparent 65%);animation:mqg-shine 3.2s ease-in-out infinite}
.mq-giftcard.is-spot{animation:mqg-spot 1.1s ease-out 2}
.mq-giftcard-stage{position:relative;width:112px;height:112px;display:grid;place-items:center}
.mq-giftcard-rays{position:absolute;inset:-30%;background:repeating-conic-gradient(rgba(251,191,36,.28) 0 10deg,transparent 10deg 26deg);border-radius:50%;opacity:0;transition:opacity .4s ease}
.mq-giftcard.is-ready .mq-giftcard-rays{opacity:1;animation:mqg-spin 14s linear infinite;-webkit-mask:radial-gradient(circle,#000 30%,transparent 68%);mask:radial-gradient(circle,#000 30%,transparent 68%)}
.mq-giftcard-glow{position:absolute;width:70%;height:70%;border-radius:50%;background:radial-gradient(circle,rgba(255,214,102,.85),transparent 70%);opacity:0}
.mq-giftcard.is-ready .mq-giftcard-glow{animation:mqg-halo 1.6s ease-in-out infinite}
.mq-giftcard-box{position:relative;z-index:2;width:84px;height:84px;filter:drop-shadow(0 10px 12px rgba(150,40,20,.28));transform-origin:50% 85%}
.mq-giftcard:not(.is-ready) .mq-giftcard-box{filter:grayscale(.35) drop-shadow(0 8px 10px rgba(0,0,0,.18));opacity:.85}
.mq-giftcard.is-ready .mq-giftcard-box{animation:mqg-wiggle 2.6s ease-in-out infinite}
.mq-giftcard .mq-gb-lid{transform-box:fill-box;transform-origin:50% 100%}
.mq-giftcard.is-opening .mq-giftcard-box{animation:mqg-shake .72s ease-in-out both}
.mq-giftcard.is-opened .mq-gb-lid{animation:mqg-lid .55s cubic-bezier(.3,.7,.3,1) both}
.mq-giftcard.is-opened .mq-giftcard-glow{animation:mqg-flash .9s ease-out both;opacity:1}
.mq-giftcard-burst{position:absolute;inset:0;z-index:3;pointer-events:none}
.mq-giftcard-burst i{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3c4,#fbbf24 55%,#d97706);box-shadow:inset 0 -2px 0 rgba(0,0,0,.15);animation:mqg-coin .9s cubic-bezier(.2,.8,.3,1) var(--d,0s) both}
.mq-giftcard-amount{position:absolute;left:50%;top:6px;z-index:4;font:950 26px/1 var(--mq-font-display,system-ui);color:#fff;text-shadow:0 2px 0 #b45309,0 0 14px rgba(255,200,80,.9);opacity:0;pointer-events:none}
.mq-giftcard.is-opened .mq-giftcard-amount{animation:mqg-amount .7s cubic-bezier(.2,.9,.3,1.3) .1s both}
.mq-giftcard-copy{min-width:0}
.mq-giftcard-copy small{display:block;font-weight:900;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#d97706}
.mq-giftcard-copy strong{display:block;margin-top:2px;font-weight:950;font-size:18px;line-height:1.15;color:#3b1d02}
.mq-giftcard-copy p{margin:4px 0 0;font-weight:700;font-size:12.5px;line-height:1.4;color:#7a5530}
.mq-giftcard-copy p b{color:#3b1d02;font-variant-numeric:tabular-nums}
.mq-giftcard-bar{display:block;height:7px;margin-top:8px;border-radius:999px;background:rgba(180,83,9,.14);overflow:hidden}
.mq-giftcard-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#fbbf24,#f97316);transition:width .6s ease}
.mq-giftcard-open{display:inline-flex;align-items:center;gap:7px;margin-top:9px;min-height:40px;padding:0 16px;border:0;border-radius:14px;cursor:pointer;
  font:inherit;font-weight:950;font-size:14px;color:#fff!important;background:linear-gradient(135deg,#ff7a59,#e11d48)!important;box-shadow:0 10px 20px rgba(225,29,72,.35),inset 0 1px 0 rgba(255,255,255,.35)!important;
  animation:mqg-halo-btn 1.6s ease-in-out infinite}
.mq-giftcard-open svg{width:18px;height:18px}
.mq-giftcard-open:active{transform:scale(.96)}
.mq-giftcard-open[disabled]{opacity:.6}
@keyframes mqg-halo-btn{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.mq-giftcard.is-daily .mq-giftcard-copy small{color:#b45309}
.mq-giftcard.is-welcome{background:linear-gradient(150deg,#effcff,#e0f2fe);box-shadow:0 12px 28px rgba(14,116,144,.16),inset 0 0 0 1.5px rgba(14,165,233,.3)}
/* Thèmes sombres */
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-giftcard{background:linear-gradient(150deg,rgba(255,255,255,.08),rgba(255,255,255,.03));box-shadow:0 12px 28px rgba(0,0,0,.3),inset 0 0 0 1.5px rgba(251,191,36,.22);color:#fff5e1}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-giftcard.is-ready{background:linear-gradient(150deg,rgba(251,191,36,.22),rgba(225,29,72,.16));box-shadow:0 18px 40px rgba(0,0,0,.35),inset 0 0 0 2px rgba(251,191,36,.55)}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-giftcard-copy strong{color:#fff}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-giftcard-copy p{color:#e8d5b5}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-giftcard-copy p b{color:#fff}
.mq-shell:is([data-skin="nuit"],[data-skin="ardoise"],[data-skin="grenat"],[data-skin="ocean"]) .mq-giftcard-copy small{color:#fbbf24}
/* Calme / mouvements réduits */
.mq-shell[data-motion="calme"] .mq-giftcard *,.mq-shell[data-motion="calme"] .mq-giftcard::after,.mq-shell[data-motion="calme"] .mq-giftbtn *{animation:none!important}
@media (prefers-reduced-motion:reduce){.mq-giftcard *,.mq-giftcard::after,.mq-giftbtn *,.mq-giftbtn::before{animation:none!important}}
@media (max-width:350px){.mq-giftcard{grid-template-columns:88px 1fr}.mq-giftcard-stage{width:88px;height:88px}.mq-giftcard-box{width:68px;height:68px}}

/* =====================================================================
 * MemoMilo v253 (2.4.46) — correctifs de publication
 * ===================================================================== */

/* Statut serveur réel (Arène + Recherche rapide) */
.mq-live-status i { transition: background-color .25s ease; }
.mq-arena-live.is-checking i { background: #ffd36b !important; animation: mq-live-wait 1.1s ease-in-out infinite !important; box-shadow: none !important; }
.mq-arena-live.is-down i { background: #ff7a7a !important; animation: none !important; box-shadow: 0 0 0 3px rgba(255, 122, 122, .25) !important; }
.mq-arena-live.is-down { background: rgba(255, 90, 90, .22) !important; }
.mq-shell[data-skin] .mq-view[data-view="online"] .mq-quick-ready.is-checking i,
.mq-quick-ready.is-checking i { background: #f2b33d !important; animation: mq-live-wait 1.1s ease-in-out infinite !important; box-shadow: none !important; }
.mq-shell[data-skin] .mq-view[data-view="online"] .mq-quick-ready.is-down,
.mq-quick-ready.is-down { background: #fff0f0 !important; color: #a12a2a !important; border-color: rgba(214, 69, 69, .35) !important; }
.mq-shell[data-skin] .mq-view[data-view="online"] .mq-quick-ready.is-down i,
.mq-quick-ready.is-down i { background: #e04848 !important; animation: none !important; box-shadow: none !important; }
@keyframes mq-live-wait { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

/* En-tête : plus aucun débordement (le bouton Réglages sortait de 12 px sur la
 * mise en place) et le nom du joueur reste lisible sur l'accueil, même à 360 px. */
.mq-shell .mq-app .mq-top { min-width: 0; }
.mq-shell .mq-app .mq-top > .mq-avatar,
.mq-shell .mq-app .mq-top > .mq-chip,
.mq-shell .mq-app .mq-top > .mq-icon-btn { flex-shrink: 0; }
.mq-shell .mq-app .mq-top > .mq-profil-info { flex: 1 1 0 !important; min-width: 0 !important; }
.mq-shell[data-screen="miseEnPlace"] .mq-app .mq-top > .mq-profil-info { min-width: 0 !important; }
.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-chip .mq-plus { width: 28px !important; height: 28px !important; font-size: 1.1em !important; }
.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-profil-info strong { display: block !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 380px) {
	.mq-shell[data-screen="accueil"] .mq-app .mq-top { gap: 6px !important; }
	.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-profil-info strong { font-size: .7rem !important; }
	.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-chip .mq-plus { width: 24px !important; height: 24px !important; }
}

/* Mise en place : le compteur « 1 / 4 » du carrousel se confondait avec les 3 étapes.
 * Les points sous le carrousel indiquent déjà la position. */
.mq-setup-head .mq-univers-counter { visibility: hidden !important; }

/* Accueil : le reflet animé du bouton JOUER débordait en rectangle gris autour
 * du bouton arrondi (rognage perdu pendant l'animation sur WebView). */
.mq-h2-play { clip-path: inset(0 round 28px); isolation: isolate; }

/* En-tête de l'accueil : place réservée au nom du joueur. */
.mq-shell[data-screen="accueil"] .mq-app .mq-top { gap: 6px !important; }
.mq-shell[data-screen="accueil"] .mq-app .mq-top > .mq-icon-btn { width: 40px !important; height: 40px !important; min-width: 40px !important; }
.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-chip { gap: 4px !important; padding-left: 4px !important; padding-right: 4px !important; }
.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-profil-info strong { font-size: .74rem !important; letter-spacing: -.015em !important; }
@media (max-width: 380px) {
	.mq-shell[data-screen="accueil"] .mq-app .mq-top { gap: 5px !important; }
	.mq-shell[data-screen="accueil"] .mq-app .mq-top > .mq-icon-btn { width: 36px !important; height: 36px !important; min-width: 36px !important; }
	.mq-shell[data-screen="accueil"] .mq-app .mq-top > .mq-avatar { width: 46px !important; height: 46px !important; }
}
.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-chip [data-coins] { min-width: 0 !important; padding: 0 2px !important; }

/* Écran de fin : le fond s'arrêtait net à mi-écran ; le badge reste sur une ligne. */
.mq-view .mq-final-result-page { min-height: 100%; box-sizing: border-box; align-content: start; }
.mq-solo-score-card .mq-solo-winner { white-space: nowrap; }
.mq-view .mq-final-result-page > .mq-final-actions { align-self: start; }

/* Activités : le badge « +150 » portait une pièce alors qu'il s'agit de points de score. */
.mq-dx-stake.is-points .mq-dx-coin { border-radius: 0 !important; clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
/* Le « +60 » d'une paire ne traverse plus le panneau d'activité qui s'ouvre. */
body:has(.mq-shell.has-sheet) .mmr-packet, body:has(.mq-shell.has-sheet) .mmr-stage { opacity: 0 !important; transition: opacity .12s ease; }

/* Boutique : le texte « Ouvrir le cadeau » touchait le bord droit du bouton. */
.mq-giftzone .mq-giftcard-open { padding: 0 18px 0 14px !important; width: auto !important; white-space: nowrap; justify-content: center; }

/* Profil : « Niveau 2 » était écrit en bleu foncé sur fond bleu. */
.mq-shell[data-skin] .mq-view .mq-profile-identity .mq-profile-level-line > b, .mq-profile-level-line > b { color: #fff !important; text-shadow: 0 1px 1px rgba(0, 0, 0, .18); }
.mq-profile-rank { display: block; margin-top: 2px; font-size: .72rem; font-weight: 800; color: var(--mq-text-muted, #4d6b75); letter-spacing: .01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Mise en place : chaque format affiche sa vraie grille (colonnes × rangées). */
.mq-view[data-view="miseEnPlace"] .mq-mini-grille.is-real {
	grid-template-columns: repeat(var(--gc), 1fr) !important; grid-template-rows: repeat(var(--gr), 1fr) !important;
	width: 46px !important; height: 52px !important; box-sizing: border-box; gap: 2px !important; padding: 6px !important;
}
.mq-view[data-view="miseEnPlace"] .mq-mini-grille.is-real i { width: auto !important; height: auto !important; aspect-ratio: auto !important; border-radius: 1.5px !important; min-width: 0; min-height: 0; }
/* Format sélectionné : la mini-grille garde un contraste lisible. */
.mq-view[data-view="miseEnPlace"] .mq-format-card[aria-checked="true"] .mq-mini-grille i { background: linear-gradient(145deg, #35d8d3, #0f86a8) !important; opacity: 1 !important; }
.mq-shell .mq-view[data-view="miseEnPlace"] .mq-format-card[aria-checked="true"] .mq-mini-grille.is-real { background: rgba(255, 255, 255, .96) !important; }
.mq-shell .mq-view[data-view="miseEnPlace"] .mq-format-card[aria-checked="true"] .mq-mini-grille.is-real i { background: linear-gradient(145deg, #35d8d3, #0f86a8) !important; box-shadow: none !important; opacity: 1 !important; }

/* Petits écrans (≤ 700 px de haut) : l'illustration du carrousel ne chevauche plus le
 * titre et la carte ne recouvre plus les points de position. */
@media (max-height: 700px) {
	.mq-view[data-view="miseEnPlace"] .mq-univers-card { scale: .93; }
	.mq-view[data-view="miseEnPlace"] .mq-univers-art { scale: .8; transform-origin: 50% 100%; }
	.mq-view[data-view="miseEnPlace"] .mq-univers-dots { position: relative; z-index: 3; }
}
@media (max-width: 380px) {
	.mq-shell[data-screen="accueil"] .mq-app .mq-top .mq-chip .mq-plus { display: none !important; }
}

/* =====================================================================
 * MemoMilo v254 (2.4.47) — Duel Flash : cartes, gel, fluidité
 * ===================================================================== */

/* Retournement plus doux et symétrique (ouverture/fermeture 150 ms, même courbe que le JS). */
.mq-shell[data-skin] .mq-speed-duel .mq-speed-local-board .mq-card,
.mq-shell[data-skin] .mq-speed-duel .mq-speed-local-board .mq-card.is-wrong,
.mq-shell[data-skin] .mq-speed-duel .mq-speed-local-board .mq-card.is-speed-tap,
.mq-shell[data-skin] .mq-speed-duel .mq-speed-local-board .mq-card.is-pressing {
	transition: transform 150ms cubic-bezier(.25, .8, .25, 1) !important;
	backface-visibility: hidden;
}
/* Mauvaise paire : halo rouge net, sans secousse coûteuse. */
.mq-shell[data-skin] .mq-speed-duel .mq-speed-local-board .mq-card.is-wrong .mq-front {
	box-shadow: 0 0 0 2px rgba(255, 82, 97, .95), 0 0 10px rgba(255, 82, 97, .45) !important;
	border-color: #ff5261 !important;
}
/* Bonne paire en cours de validation serveur : déjà verrouillée, simple liseré. */
.mq-shell[data-skin] .mq-speed-duel .mq-speed-local-board .mq-card.is-server-pending .mq-front {
	box-shadow: 0 0 0 2px rgba(74, 222, 128, .85) !important;
}

/* Gel : voile de glace unique sur la cible (votre plateau ou celui du rival). */
.mq-speed-board-wrap, [data-speed-rival-dock] { position: relative; }
.mq-ice-veil {
	position: absolute; inset: 0; z-index: 40; border-radius: inherit; overflow: hidden;
	display: grid; place-items: center; align-content: center; gap: 10px;
	pointer-events: auto; contain: layout paint;
	animation: mq-ice-in .34s cubic-bezier(.2, .8, .25, 1) both;
}
.mq-ice-veil.is-rival { pointer-events: none; gap: 0; }
.mq-ice-tint {
	position: absolute; inset: 0;
	background:
		radial-gradient(120% 70% at 0% 0%, rgba(255, 255, 255, .85), rgba(255, 255, 255, 0) 42%),
		radial-gradient(120% 70% at 100% 100%, rgba(255, 255, 255, .8), rgba(255, 255, 255, 0) 42%),
		radial-gradient(90% 60% at 100% 0%, rgba(214, 244, 255, .75), rgba(214, 244, 255, 0) 50%),
		radial-gradient(90% 60% at 0% 100%, rgba(214, 244, 255, .75), rgba(214, 244, 255, 0) 50%),
		linear-gradient(160deg, rgba(196, 236, 255, .74), rgba(132, 200, 246, .58) 52%, rgba(206, 241, 255, .72));
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .85), inset 0 0 26px rgba(120, 196, 255, .55);
}
.mq-ice-crystals { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .9; }
.mq-ice-crystals path { stroke-width: 2.2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 2px rgba(80, 170, 240, .8)); }
.mq-ice-badge {
	position: relative; z-index: 1; display: grid; place-items: center; align-content: center;
	width: 132px; height: 132px; border-radius: 50%;
	background: radial-gradient(circle at 34% 28%, #ffffff, #e4f6ff 52%, #b9e4ff);
	box-shadow: 0 14px 34px rgba(16, 84, 150, .38), inset 0 0 0 2px rgba(255, 255, 255, .95);
	color: #0b4f8c; text-align: center; line-height: 1;
}
.mq-ice-badge b { font: 900 26px/1 system-ui, sans-serif; color: #2196f3; text-shadow: 0 0 10px rgba(33, 150, 243, .45); }
.mq-ice-badge strong { margin-top: 6px; font: 950 14px/1 system-ui, sans-serif; letter-spacing: .08em; }
.mq-ice-badge span { margin-top: 6px; font: 900 22px/1 system-ui, sans-serif; font-variant-numeric: tabular-nums; color: #0d63b3; }
.mq-ice-ring { position: absolute; inset: 4px; width: calc(100% - 8px); height: calc(100% - 8px); transform: rotate(-90deg); }
.mq-ice-ring circle { fill: none; stroke-width: 7; }
.mq-ice-ring-bg { stroke: rgba(33, 150, 243, .14); }
.mq-ice-ring-fg { stroke: #1e88e5; stroke-linecap: round; stroke-dasharray: 339.3; stroke-dashoffset: 0; filter: drop-shadow(0 0 3px rgba(30, 136, 229, .6)); }
.mq-ice-source {
	position: relative; z-index: 1; padding: 6px 12px; border-radius: 999px;
	background: rgba(255, 255, 255, .92); color: #0b4f8c; font: 850 12px/1.2 system-ui, sans-serif;
	box-shadow: 0 6px 16px rgba(16, 84, 150, .22);
}
.mq-ice-veil.is-rival .mq-ice-badge { width: 64px; height: 64px; box-shadow: 0 6px 14px rgba(16, 84, 150, .35), inset 0 0 0 2px #fff; }
.mq-ice-veil.is-rival .mq-ice-badge b { font-size: 15px; }
.mq-ice-veil.is-rival .mq-ice-badge strong { margin-top: 2px; font-size: 6.5px; letter-spacing: .04em; }
.mq-ice-veil.is-rival .mq-ice-badge span { margin-top: 2px; font-size: 11px; }
.mq-ice-veil.is-rival .mq-ice-ring circle { stroke-width: 9; }
.mq-ice-veil.is-pulse .mq-ice-badge { animation: mq-ice-pop .42s cubic-bezier(.2, 1.4, .3, 1) both; }
.mq-ice-veil.is-thaw { pointer-events: none; animation: mq-ice-out .5s cubic-bezier(.3, .6, .3, 1) forwards; }
.mq-ice-veil.is-thaw .mq-ice-badge { animation: mq-ice-badge-out .5s ease forwards; }
@keyframes mq-ice-ring { from { stroke-dashoffset: 0; } to { stroke-dashoffset: 339.3; } }
@keyframes mq-ice-in { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: none; } }
@keyframes mq-ice-pop { 0% { transform: scale(.6); } 70% { transform: scale(1.06); } 100% { transform: none; } }
@keyframes mq-ice-out { 0% { opacity: 1; filter: brightness(1); } 25% { opacity: 1; filter: brightness(1.35); } 100% { opacity: 0; transform: scale(1.06); } }
@keyframes mq-ice-badge-out { 0% { transform: none; } 30% { transform: scale(1.12); } 100% { transform: scale(.4); opacity: 0; } }
.mq-shell[data-motion="calme"] .mq-ice-veil, .mq-shell[data-motion="calme"] .mq-ice-badge { animation-duration: .01ms !important; }
/* Pendant le gel, les cartes sous la glace sont visiblement figées. */
.mq-speed-board-wrap.is-self-freeze-active .mq-speed-local-board { filter: saturate(.6); }
/* Anciens calques (flocons, givre par carte, alertes) : remplacés par le voile. */
.mq-speed-duel .mq-speed-self-freeze-snow, .mq-speed-duel .mq-speed-card-ice, .mq-speed-duel .mq-speed-self-freeze-alert,
.mq-speed-duel .mq-speed-self-thaw, .mq-speed-duel .mq-speed-freeze-layer, .mq-speed-duel .mq-v8-frost { display: none !important; }

/* Batterie : le décor animé de l'application est arrêté pendant un Duel Flash plein écran. */
.mq-shell.is-speed-duel-fullscreen .mq-ambiance, .mq-shell.is-speed-duel-fullscreen .mq-ambiance * { animation: none !important; }

/* Chrono et compteurs mis à jour 10 fois/s : le recalcul reste confiné à leur boîte. */
.mq-speed-duel [data-speed-time], .mq-speed-duel [data-speed-rival-time], .mq-speed-duel [data-speed-record], .mq-speed-duel [data-speed-status] {
	contain: layout style paint; font-variant-numeric: tabular-nums;
}
