/* AM-DEMO-A1 — coque, vues, BD, coffres, Pitiplouf. Zones tactiles ≥ 44 px CSS. */
:root{--nav:78px;--gold:#efce72;--navy:#061b32;--ink:#111}
body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}
.controls{display:none}body.dev-mode .controls{display:block}
body:not([data-view="labo"]) .viewport{position:fixed;left:-300vw;top:0;visibility:hidden;pointer-events:none}
body[data-view="labo"] .viewport{padding-bottom:0}
#v-loading{position:fixed;inset:0;z-index:2000;background:#061b32 url(assets/v2/ui/accueil.webp) center/cover no-repeat;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 24px calc(48px + env(safe-area-inset-bottom));transition:opacity .6s}
#v-loading::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,27,50,0) 55%,rgba(6,27,50,.75));pointer-events:none}
#v-loading>*{position:relative;z-index:1}#v-loading.gone{opacity:0;pointer-events:none}
#v-loading .bar{width:min(320px,80%);height:10px;border-radius:6px;background:rgba(6,27,50,.7);border:2px solid var(--gold);overflow:hidden}#v-loading .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f6d57a,#fff3b0);transition:width .25s}
#v-loading .msg{margin:10px 0 0;color:#fff;font:600 14px system-ui;text-shadow:0 1px 3px #000}
#v-loading .go{min-width:230px;min-height:56px;font:700 18px system-ui;color:var(--navy);background:var(--gold);border:0;border-radius:999px;padding:0 28px;box-shadow:0 0 24px rgba(239,206,114,.7);animation:glow 1.6s ease-in-out infinite alternate}
@keyframes glow{from{transform:scale(.98)}to{transform:scale(1.03)}}
#v2{position:fixed;inset:0;pointer-events:none;z-index:50}#v2>*{pointer-events:auto}
.v{position:absolute;left:0;right:0;top:0;bottom:calc(var(--nav) + env(safe-area-inset-bottom));overflow:hidden;background:var(--navy)}.v[hidden]{display:none}
.hud2{position:absolute;top:max(8px,env(safe-area-inset-top));left:8px;right:8px;display:flex;gap:6px;align-items:center;z-index:60;pointer-events:none}.hud2[hidden]{display:none}
.hud2 .chip{pointer-events:none;background:rgba(6,27,50,.82);border:2px solid #c9a84d;color:#fff;border-radius:16px;padding:3px 10px;font:700 15px system-ui}.hud2 button{margin-left:auto;pointer-events:auto;width:44px;height:44px;border-radius:50%;border:2px solid #c9a84d;background:rgba(6,27,50,.82);font-size:19px;color:#fff}
.nav2{position:absolute;left:0;right:0;bottom:0;height:calc(var(--nav) + env(safe-area-inset-bottom));padding:6px 6px env(safe-area-inset-bottom);display:flex;justify-content:space-around;align-items:center;background:linear-gradient(180deg,rgba(6,27,50,.0),#061b32 30%);z-index:80}
.nb{position:relative;width:66px;height:66px;padding:0;border:0;background:none;touch-action:manipulation;transition:transform .2s,filter .2s;filter:saturate(.85) brightness(.9)}.nb img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.nb.on{transform:translateY(-6px) scale(1.1);filter:none}.nb.dim{opacity:.55}.nb.more{width:44px;height:44px;border-radius:50%;border:2px solid #c9a84d;background:rgba(6,27,50,.85);color:#fff;font-size:22px}
.nb.blink{animation:blink 1s ease-in-out infinite alternate}@keyframes blink{from{transform:scale(1);filter:drop-shadow(0 0 0 #fff)}to{transform:scale(1.18);filter:drop-shadow(0 0 12px #ffe27a) brightness(1.25)}}
/* île & salle */
.pan{position:absolute;inset:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}.pan::-webkit-scrollbar{display:none}
.stage{position:relative;height:100%}.stage .base,.stage .foam{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}
#v-ile .sea{position:absolute;inset:0;width:100%;height:100%}#v-ile .pan{inset:0 0 0 0}#v-ile .stage{margin:10px 0}
#v-ile .foam{animation:foam 3.2s ease-in-out infinite alternate;mix-blend-mode:screen}@keyframes foam{from{opacity:.35;transform:scale(1)}to{opacity:.95;transform:scale(1.006)}}
.flash{position:absolute;inset:0;background:radial-gradient(circle,#fff 0,#fff8d0 40%,transparent 75%);opacity:0;pointer-events:none}.flash.go{animation:flash 1.1s ease-out}@keyframes flash{0%{opacity:0}35%{opacity:1}100%{opacity:0}}
.hot{position:absolute;transform:translate(-50%,-50%);aspect-ratio:1;border-radius:50%;border:0;background:transparent;padding:0;touch-action:manipulation;min-width:44px;min-height:44px}
.hot .lab{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;background:rgba(6,27,50,.85);border:1.5px solid #c9a84d;border-radius:12px;padding:2px 9px;font:700 12px system-ui;color:#fff;pointer-events:none}
.hot:not(.locked)::after{content:"";position:absolute;inset:18%;border-radius:50%;border:3px solid rgba(255,236,150,.85);animation:ring 1.8s ease-out infinite}@keyframes ring{from{transform:scale(.7);opacity:1}to{transform:scale(1.25);opacity:0}}
.hot.locked .lab{opacity:.8;background:rgba(40,40,60,.85)}
.back{position:absolute;left:8px;bottom:10px;min-height:44px;padding:0 16px;border-radius:22px;border:2px solid #c9a84d;background:rgba(6,27,50,.88);color:#fff;font:700 15px system-ui;z-index:5}
#v-dome .back{top:calc(max(8px,env(safe-area-inset-top)) + 50px);bottom:auto}
/* aquarium A1 */
.a1top{position:relative;padding-top:calc(max(8px,env(safe-area-inset-top)) + 48px);background:#030f1d}.a1img{position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden}.a1img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.a1img .b1{opacity:0;transition:opacity .9s}.a1img .b1.show{opacity:1}.a1img .b0{z-index:0}.a1img .b1{z-index:1}.fish-far,.fish-near{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.fish-far{z-index:2;filter:saturate(.75) brightness(.88) blur(.5px);opacity:.9}.fish-near{z-index:3}
.a1img .b1.show~.fish-far{opacity:.9}.a1card{padding:12px 16px;color:#fff;background:linear-gradient(#030f1d,#061b32)}.a1card h2{margin:0 0 6px;font:700 20px system-ui}.a1card h2 small{color:var(--gold);font-weight:600;font-size:13px;margin-left:6px}
.a1list{list-style:none;margin:6px 0;padding:0;font:15px system-ui;display:grid;gap:4px}.a1list li{opacity:.75}.a1list li.ok{opacity:1;color:#bff0c8}.a1pop{margin:8px 0 52px;font:14px system-ui;color:#cfe6f5}
#v-a1 .back{position:absolute;left:16px;bottom:10px}
/* objectifs / évents / plus */
#v-goals,#v-more,#v-events{padding:calc(max(8px,env(safe-area-inset-top)) + 54px) 14px 14px;overflow:auto;color:#fff;background:radial-gradient(circle at 50% 0,#0f4c7a,#061b32 70%)}
#v-goals h1,#v-more h1{margin:0 0 12px;font:700 24px system-ui}.goal{position:relative;background:rgba(6,27,50,.8);border:2px solid #315f84;border-radius:16px;padding:10px 12px;margin-bottom:10px}.goal.cur{border-color:var(--gold);box-shadow:0 0 16px rgba(239,206,114,.35)}.goal.later{opacity:.55}.goal.done{opacity:.8;border-color:#3d8f5c}
.goal .gt{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.goal .gt b{color:var(--gold);min-width:30px}.goal .gt span{flex:1;font:600 15px system-ui}.goal .cost{font:700 13px system-ui;color:#ffe08a}.goal .cost.gold{color:#ffd24a}
.prog{height:9px;background:#0b2a45;border-radius:6px;margin:8px 0 2px;overflow:hidden}.prog i{display:block;height:100%;background:linear-gradient(90deg,#f6d57a,#fff3b0)}.pv{font:13px system-ui;color:#cfe6f5}.pv.ok{color:#9be3b0}
.check{position:absolute;right:10px;bottom:10px;width:54px;height:54px;border-radius:50%;border:3px solid #fff;background:#1f9d4d;color:#fff;font-size:28px;font-weight:700;box-shadow:0 0 14px rgba(70,220,120,.6);touch-action:manipulation}.check:disabled{background:#4a5a64;border-color:#8a98a2;box-shadow:none;opacity:.7}
.soon{text-align:center;margin-top:30vh;color:#fff}.soon h1{font:700 26px system-ui}.soon p{font:600 18px system-ui;color:var(--gold)}.soon small{opacity:.6}
.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mg{display:flex;flex-direction:column;align-items:center;gap:4px;background:rgba(6,27,50,.8);border:2px solid #315f84;border-radius:16px;padding:10px;color:#fff;font:700 14px system-ui;min-height:96px}.mg img{width:72px;height:72px;object-fit:contain}
.opts{margin-top:16px;display:grid;gap:12px;font:600 15px system-ui}.opts label{display:grid;gap:4px}.opts button{min-height:44px;border-radius:12px;border:2px solid #c9a84d;background:#0b2a45;color:#fff;font:700 15px system-ui}
/* commande spéciale dorée */
.spcard{position:fixed;left:8px;right:8px;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 4px);z-index:70;display:none;align-items:center;gap:10px;padding:8px 12px;border-radius:16px;background:linear-gradient(135deg,#7a5a10,#f0c63c 45%,#fff0a0 55%,#c9961c);border:3px solid #fff3b0;color:#3b2800;box-shadow:0 0 20px rgba(255,214,80,.75)}
.spcard.on{display:flex}.spcard .st{font:800 12px system-ui;text-transform:uppercase;writing-mode:horizontal-tb;letter-spacing:.04em;width:70px}.spcard .sd{flex:1;font:700 14px system-ui;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.spcard .sd img{height:30px}.spcard .sb{min-width:76px;min-height:44px;border-radius:12px;border:2px solid #3b2800;background:#1f9d4d;color:#fff;font:800 15px system-ui}.spcard .sb:disabled{background:#8a7a50;color:#e8dcae}
#board .cell.sp-glow{outline:3px solid #ffd24a;outline-offset:-3px;border-radius:14px;box-shadow:0 0 16px 4px rgba(255,210,74,.85) inset,0 0 14px rgba(255,210,74,.8)}
/* BD */
.bd{position:fixed;inset:0;z-index:900;background:#d9cdb0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);touch-action:manipulation;user-select:none;-webkit-user-select:none;font-family:"Chalkboard SE","Marker Felt","Bradley Hand",ui-rounded,system-ui,sans-serif}.bd[hidden]{display:none}
.bd .page{position:absolute;inset:10px;background:#f6efdc;border-radius:6px;box-shadow:0 0 0 2px #bfae86,0 8px 24px rgba(0,0,0,.35);display:flex;flex-direction:column;padding:10px 12px 8px;background-image:radial-gradient(rgba(0,0,0,.05) 1px,transparent 1px);background-size:7px 7px}
.bd .page.turn{animation:turn .45s cubic-bezier(.2,.8,.2,1)}@keyframes turn{from{transform:translateX(22px) rotate(.6deg);opacity:.2}to{transform:none;opacity:1}}
.pg-top{height:22px;text-align:right;font:700 12px system-ui;color:#7b6a45}.panel{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;border:5px solid var(--ink);background:#0a1c2c;box-shadow:5px 5px 0 rgba(0,0,0,.28);overflow:hidden}
.panel .pimg{max-width:100%;max-height:100%;object-fit:contain;display:block}
.cart{position:absolute;left:8px;top:8px;max-width:78%;background:#ffe9a8;border:3px solid var(--ink);padding:5px 9px;font:700 14px/1.25 "Chalkboard SE","Marker Felt",system-ui;color:var(--ink);box-shadow:3px 3px 0 rgba(0,0,0,.35);z-index:4}
.plq{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);max-width:88%;background:linear-gradient(#e8c870,#b8913a);border:3px solid #5b4310;padding:8px 14px;text-align:center;font:800 18px/1.25 Georgia,serif;color:#2f2208;box-shadow:0 0 18px rgba(255,220,120,.7);z-index:4}.plq small{display:block;font:700 11px system-ui;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.margin{min-height:158px;padding-top:12px;display:flex;align-items:center;justify-content:center;position:relative}.hint{font:600 13px system-ui;color:#8b7b55}
.bubble{position:relative;display:flex;gap:10px;align-items:center;width:100%;background:#fff;border:4px solid var(--ink);border-radius:26px;padding:12px 16px;box-shadow:3px 4px 0 rgba(0,0,0,.25);animation:pop .25s}.bubble[hidden]{display:none}@keyframes pop{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}
.bubble::before{content:"";position:absolute;top:-22px;width:26px;height:26px;background:#fff;border-left:4px solid var(--ink);border-top:4px solid var(--ink);transform:rotate(45deg) skew(10deg,10deg);border-radius:4px 0 0 0}.bubble.left::before{left:46px}.bubble.right::before{right:46px}
.bubble .bp{width:62px;height:62px;border-radius:50%;object-fit:cover;object-position:top;border:3px solid var(--ink);background:#bde3f4;flex:none}.bubble b{display:block;font:800 13px system-ui;color:#a8480b;text-transform:uppercase;letter-spacing:.04em}.bubble p{margin:2px 0 0;font-size:18px;line-height:1.3;color:var(--ink);font-weight:700}
.bd.cin .panel{flex:0 0 auto;aspect-ratio:1672/941;width:100%}
.bdnav{display:flex;justify-content:space-between;height:60px;align-items:center}.bdnav button{position:relative;width:56px;height:56px;border-radius:50%;border:3px solid var(--ink);background:#ffe9a8;box-shadow:2px 3px 0 rgba(0,0,0,.3)}.bdnav button::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;border-top:4px solid var(--ink);border-right:4px solid var(--ink)}.bdnav .next::after{transform:translate(-65%,-50%) rotate(45deg)}.bdnav .prev::after{transform:translate(-35%,-50%) rotate(-135deg)}
/* niveaux / coffres / Pitiplouf */
.ov{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px;background:radial-gradient(circle at 50% 35%,rgba(20,90,150,.94),rgba(3,15,29,.97));color:#fff;opacity:0;transition:opacity .4s;overflow:auto}.ov.on{opacity:1}
.lvbig{text-align:center;animation:zoom .7s cubic-bezier(.2,1.4,.4,1)}.lvbig small{display:block;font:700 22px system-ui;color:#cfe6f5;letter-spacing:.2em;text-transform:uppercase}.lvbig b{display:block;font:900 120px/1 system-ui;color:var(--gold);text-shadow:0 0 30px rgba(255,214,80,.9)}@keyframes zoom{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}
.pbub{display:flex;gap:10px;align-items:center;background:rgba(6,27,50,.92);border:3px solid var(--gold);border-radius:18px;padding:10px 14px;max-width:420px}.pbub img{width:74px;height:auto;flex:none;animation:bob 2.2s ease-in-out infinite}.pbub p{margin:0;font:600 17px/1.3 system-ui}@keyframes bob{50%{transform:translateY(-5px) rotate(2deg)}}
.okb{min-width:150px;min-height:50px;border-radius:26px;border:3px solid #fff;background:#1f9d4d;color:#fff;font:800 17px system-ui;padding:0 22px;box-shadow:0 0 16px rgba(70,220,120,.55)}.okb[hidden]{display:none}
.chests h2{margin:0;font:800 22px system-ui}.cc{display:flex;flex-direction:column;gap:12px;width:100%;max-width:420px}.chest{position:relative;border:3px solid #5b4310;border-radius:16px;overflow:hidden;background:#06203a;padding:0;min-height:150px;touch-action:manipulation}.chest img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.chest em{position:absolute;bottom:8px;left:0;right:0;text-align:center;font:700 14px system-ui;text-shadow:0 1px 4px #000;animation:glow 1.2s infinite alternate}.chest.burst{animation:burst .7s}@keyframes burst{30%{transform:scale(1.06);filter:brightness(1.6)}100%{transform:none}}
.chest .rw{position:absolute;left:8px;right:8px;bottom:8px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chest .rw i{font:800 15px system-ui;font-style:normal;background:rgba(6,27,50,.88);border:2px solid var(--gold);border-radius:14px;padding:3px 10px;animation:pop .35s}
.vialmsg[hidden]{display:none}
.end h1{font:800 32px system-ui;color:var(--gold);margin:0}.end p{text-align:center;font:600 17px/1.4 system-ui;margin:0}
/* Pitiplouf guide */
.blk{position:fixed;inset:0;z-index:1200;display:none;background:rgba(0,10,25,.28)}
.pit{position:fixed;left:0;top:0;z-index:1300;width:96px;transition:transform .9s cubic-bezier(.3,.9,.3,1);pointer-events:none}.pit .pf{animation:fly 1.8s ease-in-out infinite}.pit img{width:96px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}@keyframes fly{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}
.pitb{position:fixed;left:10px;right:10px;z-index:1310;display:flex;gap:10px;align-items:center;background:rgba(6,27,50,.95);border:3px solid var(--gold);border-radius:18px;padding:10px 14px;box-shadow:0 6px 20px rgba(0,0,0,.5)}.pitb img{width:56px;flex:none}.pitb b{color:var(--gold);font:800 13px system-ui}.pitb p{margin:2px 0 6px;font:600 16px/1.3 system-ui;color:#fff}.pitb .okb{pointer-events:auto;min-height:44px}
#v2-toast{position:fixed;left:50%;bottom:calc(var(--nav) + 30px);transform:translateX(-50%) translateY(20px);max-width:86%;z-index:2100;background:rgba(6,27,50,.95);border:2px solid var(--gold);color:#fff;border-radius:14px;padding:8px 14px;font:600 14px system-ui;opacity:0;pointer-events:none;transition:.3s;text-align:center}#v2-toast.on{opacity:1;transform:translateX(-50%)}
body.bd-on #nav2,body.bd-on #hud2{visibility:hidden}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}

#dev-toggle{display:none!important}body.dev #dev-toggle{display:block!important}
.hl{position:fixed;z-index:1250;pointer-events:none;border:5px solid #fff3b0;outline:3px solid #c98a00;border-radius:20px;box-shadow:0 0 28px 10px rgba(255,236,140,.85);animation:hlp 1.1s ease-in-out infinite alternate}@keyframes hlp{from{opacity:.75;transform:scale(.985)}to{opacity:1;transform:scale(1.02)}}
.chest em{background:rgba(6,27,50,.82);border:2px solid var(--gold);border-radius:14px;left:50%;right:auto;transform:translateX(-50%);padding:3px 12px;white-space:nowrap}

/* ───────── A1.1 ───────── */
/* BUG-005 : pas de zoom involontaire au double-tap ; le zoom d'accessibilité (pincer) reste possible */
html,body,button,a,input,select,label,[role=button],.nb,.hot,.check,.okb,.chest,.ab,.assist{touch-action:manipulation}
#v2 *,.bd *,.ov *,.pitb *,.amodal *,.corrupt *{touch-action:manipulation}
/* BUG-006 : icônes officielles (extraites du HUD UI-09) */
.hud2 .chip{display:flex;align-items:center;gap:5px;padding:2px 12px 2px 4px}.hud2 .chip img{width:28px;height:28px;object-fit:contain}
.order-reward{display:flex;align-items:center;justify-content:center;gap:.15em}.order-reward .ri{height:1.05em;width:1.05em;object-fit:contain;flex:none;vertical-align:middle}
/* BUG-008 : objectifs — lisibilité, objectif actif en évidence, bouton fermer */
#v-goals{padding:calc(max(8px,env(safe-area-inset-top)) + 52px) 14px 14px}
.gh{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.gh h1{margin:0;font:700 24px system-ui}
.gclose{width:48px;height:48px;border-radius:50%;border:2px solid #c9a84d;background:rgba(6,27,50,.9);color:#fff;font-size:22px}
.goal.cur{padding:16px 16px 74px;border-width:3px}.goal.cur .gk{font:700 12px system-ui;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}.goal.cur h2{margin:0 0 10px;font:700 20px/1.25 system-ui}
.goal .cost{display:flex;align-items:center;gap:8px;font:800 22px system-ui;color:#ffe08a}.goal .cost img{width:30px;height:30px}
.gnote{margin-top:8px;font:14px/1.35 system-ui;color:#cfe6f5}.gogo{margin-top:12px;min-height:48px;border-radius:14px;border:2px solid #c9a84d;background:#0b2a45;color:#fff;font:700 16px system-ui;padding:0 18px}
.ghist{width:100%;margin-top:6px;min-height:46px;border-radius:12px;border:1px solid #315f84;background:rgba(6,27,50,.55);color:#cfe6f5;font:600 14px system-ui}.ghist:disabled{opacity:.4}
.gdone{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px;font:14px system-ui;color:#9be3b0}
/* BUG-002 : assistance (toujours accessible, AU-DESSUS du verrou du tutoriel) */
.assist{position:fixed;left:2px;top:46%;z-index:1500;width:44px;height:44px;border-radius:50%;border:2px solid #c9a84d;background:rgba(6,27,50,.82);color:#fff;font:800 20px system-ui;opacity:.85}
.amodal,.corrupt{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,8,20,.82)}
.abox{width:100%;max-width:420px;max-height:90vh;overflow:auto;background:#0b2238;border:3px solid var(--gold);border-radius:18px;padding:18px;color:#fff;font:15px/1.4 system-ui}.abox h2{margin:0 0 6px;font:800 21px system-ui}.abox p{margin:6px 0}.abox .small{opacity:.7;font-size:13px}.abox .warn{color:#ffd0a0}.abox .okay{color:#9be3b0}.ail{margin:8px 0;padding:0;list-style:none;display:grid;gap:6px;color:#ffe0a0}
.arow{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.arow.col{flex-direction:column}.ab{flex:1;min-height:48px;border-radius:12px;border:2px solid #c9a84d;background:#0f3556;color:#fff;font:700 15px system-ui;padding:0 12px}.ab:disabled{opacity:.4}.ab.danger{border-color:#e07a5f;background:#4a1d17}.abox hr{border:0;border-top:1px solid #315f84;margin:16px 0 6px}
/* BUG-003 : apparition magique (effets CSS provisoires, non agressifs, désactivés si « réduire les animations ») */
.fx{position:absolute;pointer-events:none;z-index:6;overflow:hidden}.fx[hidden]{display:none}
.mflash{position:absolute;inset:-10%;background:radial-gradient(circle at 66% 43%,#fff6c8 0,#ffd966 35%,rgba(255,200,80,0) 72%);opacity:0}.mflash.on{animation:mflash .7s ease-out}@keyframes mflash{0%{opacity:0}35%{opacity:.8}100%{opacity:0}}
.mhalo{position:absolute;left:66%;top:43%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%) scale(.4);border-radius:50%;background:radial-gradient(circle,rgba(255,244,190,.85) 0,rgba(255,214,102,.45) 38%,rgba(255,214,102,0) 70%);opacity:0}.mhalo.on{animation:mhalo 1.5s ease-out}@keyframes mhalo{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.25)}}
.msparks i{position:absolute;left:66%;top:43%;width:var(--sz);height:var(--sz);border-radius:50%;background:#fff3b0;box-shadow:0 0 8px 3px rgba(255,220,120,.9);opacity:0;animation:mspark 1.3s ease-out var(--dl) forwards}@keyframes mspark{0%{opacity:0;transform:translate(0,0) scale(.4)}25%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1)}}
@media (prefers-reduced-motion:reduce){.mflash,.mhalo,.msparks i{animation:none!important}}

.order-reward .rv{margin:0 .35em 0 .1em}.order-reward .rv:last-child{margin-right:0}
