/* Styles des diapos — partagés par l'écran (index.html) et l'aperçu de l'administration */
.ah-stage{
  --magenta:#D5176F; --magenta-2:#E73C93; --magenta-0:#B8126A;
  --side:#D2559C; --slate:#4A4B57; --ink:#25252D; --muted:#6C6E79;
  --line:#D3D5DC; --paper:#F4F5F7;
  --font:"Libre Franklin","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --side-w:172px; --foot-h:150px; --banner-h:118px;
  position:absolute;left:0;top:0;width:1920px;height:1080px;transform-origin:0 0;overflow:hidden;
  background:var(--paper);font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;text-align:left;line-height:normal
}
.ah-stage *{box-sizing:border-box;margin:0;padding:0}
.ah-slides{position:absolute;inset:0}

.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s linear .9s;overflow:hidden}
.slide.active{opacity:1;visibility:visible;transition:opacity .9s ease}
.slide.chrome{right:var(--side-w);bottom:var(--foot-h)}
.ah-static .slide,.ah-static .slide.active{transition:none!important}
.paper{position:absolute;inset:0;background:linear-gradient(160deg,#FCFCFD 0%,#EEF0F3 55%,#E3E5EA 100%)}

/* Bandeau magenta + entête ardoise */
.banner{position:absolute;left:0;top:0;height:var(--banner-h);width:1190px;z-index:3;
  background:linear-gradient(90deg,var(--magenta-0),var(--magenta) 45%,var(--magenta-2));
  clip-path:polygon(0 0,100% 0,calc(100% - 64px) 100%,0 100%);
  display:flex;align-items:center;padding-left:64px;color:#fff;font-weight:600;font-size:40px;letter-spacing:.015em;text-transform:uppercase;white-space:nowrap;overflow:hidden}
.darkhead{position:absolute;right:0;top:0;height:var(--banner-h);width:784px;z-index:2;background:var(--slate);
  clip-path:polygon(64px 0,100% 0,100% 100%,0 100%);
  display:flex;align-items:center;justify-content:flex-end;padding-right:64px;color:#fff;font-weight:700;font-size:48px;white-space:nowrap}

/* Visuel à droite, bord en diagonale */
.media{position:absolute;right:0;top:var(--banner-h);bottom:0;width:880px;background:var(--slate);
  clip-path:polygon(300px 0,100% 0,100% 100%,0 100%);overflow:hidden}
.media .kb{position:absolute;inset:0}

.media img,.media video{width:100%;height:100%;object-fit:cover;display:block}
.mfb{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding-right:70px;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 26px),linear-gradient(140deg,#474853,#1F2026)}
.mfb .word{font-size:150px;font-weight:900;line-height:1;color:#fff;letter-spacing:-.01em;position:relative;max-width:560px;overflow:hidden;white-space:nowrap}
.mfb .word:not(:empty)::after{content:"";position:absolute;left:4px;bottom:-34px;width:120px;height:10px;background:var(--magenta)}
.mfb .word:not(:empty){padding-bottom:0;overflow:visible}

/* Diapo « Deux prix » */
.duo-left{position:absolute;left:0;top:var(--banner-h);bottom:0;width:1100px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 60px 36px}
.title{font-size:60px;font-weight:600;line-height:1.12;letter-spacing:-.005em;max-width:1000px}
.ring{width:220px;height:220px;border-radius:50%;border:3px solid #A4A6AF;display:grid;place-items:center;margin:26px 0 20px;background:radial-gradient(circle,#fff 0%,#F2F3F6 72%);flex:none}
.ring svg{width:150px;height:150px}
.duo{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:40px;width:100%;max-width:980px}
.duo .col{min-width:0}
.duo .slash{width:3px;height:230px;background:var(--ink);transform:rotate(18deg)}
.lab{font-size:46px;font-weight:700;line-height:1.08}
.price{font-size:92px;font-weight:800;color:var(--magenta);line-height:1;letter-spacing:-.02em;margin-top:8px;white-space:nowrap}
.price sup{font-size:.36em;vertical-align:1.1em;margin-left:3px;letter-spacing:0}
.sub{font-size:28px;color:var(--muted);margin-top:6px}
.tag{font-size:40px;font-weight:700;margin-top:24px}
.tag.rule{border-bottom:3px solid var(--ink);padding-bottom:10px}
.hl{font-size:36px;font-weight:700;margin-top:14px}
.hl-sub{font-size:24px;color:var(--muted);margin-top:4px}
.fine{font-size:20px;color:var(--muted);margin-top:16px;max-width:920px;line-height:1.35}

/* Diapo « Tableau de prix » */
.gl{position:absolute;left:0;right:0;top:var(--banner-h);bottom:0;padding:34px 70px 30px;display:flex;flex-direction:column}
.ghead{display:flex;align-items:center;gap:28px}
.ghead .ring{width:112px;height:112px;margin:0;border-width:2.5px}
.ghead .ring svg{width:76px;height:76px}
.gtitle{font-size:58px;font-weight:600;line-height:1.05;letter-spacing:-.005em}
.gsub{font-size:28px;color:var(--muted);margin-top:6px}
.tables{flex:1;display:flex;gap:60px;margin-top:26px;min-height:0}
.tb{flex:1;display:flex;flex-direction:column;min-width:0}
.tb h3{font-size:34px;font-weight:700;margin-bottom:12px;border-left:8px solid var(--magenta);padding-left:16px;line-height:1.1}
.th{display:flex;align-items:center;background:var(--slate);color:#fff;height:58px;padding:0 26px;flex:none}
.rows{flex:1;display:flex;flex-direction:column;min-height:0}
.tr{flex:1;max-height:94px;display:flex;align-items:center;padding:0 26px;border-bottom:1.5px solid var(--line)}
.tr:nth-child(odd){background:rgba(255,255,255,.7)}
.c0{flex:1;min-width:0;font-size:var(--rf,38px);font-weight:600;line-height:1.15}
.c0 small{display:block;font-size:.62em;font-weight:500;color:var(--muted)}
.cp{min-width:var(--pw,240px);padding-left:20px;text-align:right;font-size:var(--pf,46px);font-weight:800;color:var(--magenta);white-space:nowrap;letter-spacing:-.01em}
.th .c0,.th .cp{color:#fff;font-size:26px;font-weight:600;letter-spacing:0}
.cp .ptxt{font-size:.8em}
.dense{--rf:31px;--pf:36px;--pw:200px}
.dense .tr{max-height:80px}
.xdense{--rf:27px;--pf:31px;--pw:180px}
.xdense .tr{max-height:66px}
.gfine{font-size:20px;color:var(--muted);margin-top:14px;flex:none}

/* Diapo « Message » */
.info{position:absolute;inset:0;background:linear-gradient(170deg,#FDFDFE,#E9EBEF);padding:70px 90px 0}
.kicker{font-size:40px;letter-spacing:.32em;font-weight:500;text-transform:uppercase}
.head{font-size:92px;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:1;margin-top:10px}
.ibody{display:flex;gap:80px;align-items:center;margin-top:70px}
.ibody svg{width:270px;height:270px;flex:none}
.ibody .ico{flex:none;display:grid}
.ibody p{font-size:56px;line-height:1.28;max-width:1080px}
.info .rule{position:absolute;left:0;right:0;bottom:26px;height:5px;background:var(--magenta)}

/* Vidéo / image plein écran */
.full{position:absolute;inset:0;background:#000}
.full img,.full video{width:100%;height:100%;object-fit:cover;display:block}
.yt{position:absolute;inset:0;background:#000}
.yt img{width:100%;height:100%;object-fit:cover;display:block}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-note{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:1200px;background:rgba(20,20,26,.88);color:#fff;font-size:40px;font-weight:600;line-height:1.35;text-align:center;padding:44px 56px;border-radius:24px}
.full.ph{display:grid;place-items:center;background:#2A2B31;color:#9A9CA6;font-size:52px;font-weight:600}

/* Diapo « Anniversaire » */
.anniv{position:absolute;inset:0;background:#fff}
.anniv-bg{position:absolute;inset:0;width:100%;height:100%;display:block}
.anniv-photo{position:absolute;border-radius:50%;overflow:hidden}
.anniv-photo img{width:100%;height:100%;object-fit:cover;display:block}
.anniv-nom{position:absolute;text-align:center;font-weight:800;color:#1E1E24;line-height:1.05;white-space:nowrap;letter-spacing:-.01em}
.anniv-poste{font-weight:600;color:#2A2A30;letter-spacing:0;text-shadow:0 0 6px #fff,0 0 14px #fff,0 0 22px rgba(255,255,255,.9)}

/* Diapo « Années de service » */
.serv-num{position:absolute;font-weight:900;line-height:.74;letter-spacing:-.03em;white-space:nowrap;color:transparent;-webkit-background-clip:text;background-clip:text;padding-top:.02em;filter:drop-shadow(0 6px 8px rgba(60,20,10,.18))}
.serv-nom{position:absolute;display:flex;align-items:center;justify-content:center}
.serv-nom span{font-size:50px;font-weight:800;color:#1E1E24;white-space:nowrap;letter-spacing:-.005em}

/* Diapo « Véhicule vedette » */
.veh{position:absolute;inset:0;background:#E9EAEE}
.veh-photo{position:absolute;left:0;top:0;width:1200px;height:940px;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#F4F5F7 0%,#D9DBE0 70%,#C9CBD1 100%)}
.veh-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.veh-img.veh-entier{object-fit:contain;transform-origin:50% 50%}
.veh-flou{position:absolute;inset:-40px;width:calc(100% + 80px);height:calc(100% + 80px);object-fit:cover;filter:blur(30px) brightness(.9);opacity:.8}
.veh-vide{position:absolute;inset:0;display:grid;place-items:center;font-size:48px;font-weight:600;color:#9A9CA6}
.slide.active .veh-img:not(.veh-entier){animation:vehkb 20s linear both}
@keyframes vehkb{from{scale:1}to{scale:1.05}}
.ah-static .veh-img{animation:none!important}
.veh-panel{position:absolute;left:1200px;right:0;top:0;height:940px;background:linear-gradient(180deg,#FFFFFF 0%,#F3F4F6 100%);display:flex;flex-direction:column;box-shadow:-18px 0 40px rgba(20,20,30,.12)}
.veh-bandeau{align-self:flex-end;margin-top:54px;height:84px;padding:0 64px 0 90px;display:flex;align-items:center;color:#fff;font-size:30px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;
  background:linear-gradient(90deg,var(--ac2),var(--ac));clip-path:polygon(40px 0,100% 0,100% 100%,0 100%)}
.veh-corps{flex:1;padding:44px 64px 0 70px;display:flex;flex-direction:column;min-height:0}
.veh-titre{font-size:62px;font-weight:700;line-height:1.05;letter-spacing:-.01em}
.veh-version{font-size:40px;font-weight:600;color:#3A3B45;margin-top:10px;line-height:1.15}
.veh-prix{font-size:112px;font-weight:800;color:var(--ac);letter-spacing:-.02em;line-height:1;margin-top:30px;white-space:nowrap}
.veh-noteprix{font-size:24px;color:var(--muted);margin-top:8px}
.veh-details{list-style:none;margin-top:34px;padding-top:26px;border-top:3px solid var(--ac);font-size:34px;line-height:1.5;color:#2F3038}
.veh-message{padding:0 64px 44px 70px;font-size:26px;color:var(--muted)}
.veh-bas{position:absolute;left:0;right:0;bottom:0;height:140px;background:#fff;display:flex;align-items:center;gap:44px;padding:0 64px;border-top:6px solid var(--ac)}
.veh-conc{font-size:50px;font-weight:700;color:var(--ac);white-space:nowrap}
.veh-accroche{flex:1;font-size:30px;color:#3A3B45;min-width:0}
.veh-heure{display:flex;align-items:baseline;gap:22px;white-space:nowrap}
.veh-heure .ah-date{font-size:28px;color:var(--muted)}
.veh-heure .ah-clock{font-size:48px;font-weight:800}

/* ---------- Effets ---------- */
.fx-icone{display:inline-grid;place-items:center;transform-origin:50% 50%}
.fx-plein{position:absolute;inset:0}
.fx-plein img{width:100%;height:100%;object-fit:cover;display:block}
/* Décor d'arrière-plan (visible seulement quand un effet d'arrière-plan est choisi) */
.fx-deco{position:absolute;inset:-80px;display:none;pointer-events:none;
  background:radial-gradient(circle at 82% 22%,rgba(213,23,111,.10) 0 260px,transparent 262px),radial-gradient(circle at 12% 88%,rgba(74,75,87,.08) 0 340px,transparent 342px),repeating-linear-gradient(115deg,rgba(74,75,87,.035) 0 2px,transparent 2px 46px)}
.slide:not([data-fond="aucun"]) .fx-deco{display:block}
.info>.fx-avant{position:relative}

/* ---------- Animer (façon Canva) ----------
   Chaque élément [data-el] reçoit une animation d'entrée (data-anim) et, en option, un effet continu (data-effet).
   Les deux se combinent : l'entrée utilise « transform », les effets utilisent rotate / scale / translate. */
.media-in{position:absolute;inset:0}
.slide.active [data-el]{
  animation:
    var(--n-in,none) calc(var(--din,.8s) * var(--fx-k,1)) var(--e-in,cubic-bezier(.2,.7,.2,1)) calc(.35s + var(--i,0) * .13s * var(--fx-k,1)) both,
    var(--n-fx,none) calc(var(--dfx,3s) * var(--fx-k,1)) var(--efx,ease-in-out) calc(.35s + var(--i,0) * .13s * var(--fx-k,1) + var(--din,.8s) * var(--fx-k,1)) infinite,
    var(--n-out,none) calc(var(--din,.8s) * var(--fx-k,1) * .8) var(--e-in,cubic-bezier(.2,.7,.2,1)) calc(var(--dur,15s) - var(--din,.8s) * var(--fx-k,1) * .8 - .5s - var(--i,0) * .05s) 1 reverse forwards}
/* Quand jouer l'animation : à l'entrée (défaut), à la sortie (à l'envers, juste avant la diapo suivante) ou les deux */
[data-anim]{--n-in:var(--n)}
[data-quand="sortie"]{--n-in:none;--n-out:var(--n)}
[data-quand="deux"]{--n-out:var(--n)}
/* Général */
[data-anim="fondu"]{--n:anFondu}
[data-anim="levee"]{--n:anLevee}
[data-anim="balayage"]{--n:anBalayage;--din:.9s}
[data-anim="souffle"]{--n:anSouffle;--din:1s}
[data-anim="effacer"]{--n:anEffacer;--din:.9s}
[data-anim="flou"]{--n:anFlou;--din:1.1s}
[data-anim="successions"]{--n:anSucc;--din:1s}
[data-anim="zoom"]{--n:anZoom}
[data-anim="apparition"]{--n:anApparition;--din:.9s}
[data-anim="derive"]{--n:anDerive;--din:1.6s;--e-in:cubic-bezier(.1,.6,.2,1)}
[data-anim="tectonique"]{--n:anTecto;--din:1s}
[data-anim="roulade"]{--n:anRoulade;--din:1s}
[data-anim="lueur"]{--n:anLueur;--din:1.2s}
[data-anim="deplacement"]{--n:anDeplacement;--din:.9s}
[data-anim="chute"]{--n:anChute}
/* En vedette */
[data-anim="zoomvar"]{--n:anZoomVar;--din:1.2s}
[data-anim="glissement"]{--n:anGlissement;--din:.9s}
[data-anim="tv"]{--n:anTV;--din:1s;--e-in:ease-out}
[data-anim="chroma"]{--n:anChroma;--din:1.2s}
[data-anim="ondulation"]{--n:anOndulation;--din:1.3s;--e-in:ease-out}
[data-anim="vaguelente"]{--n:anVagueLente;--din:1.8s}
/* Révélation (masques : l'état final montre tout l'élément) */
[data-anim="pinceau"],[data-anim="degrade"]{--n:anMasque;--din:1.1s;-webkit-mask-size:400% 100%;mask-size:400% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:0 0;mask-position:0 0}
[data-anim="pinceau"]{-webkit-mask-image:linear-gradient(100deg,#000 0 46%,transparent 54%);mask-image:linear-gradient(100deg,#000 0 46%,transparent 54%)}
[data-anim="degrade"]{--din:1.3s;-webkit-mask-image:linear-gradient(90deg,#000 0 25%,transparent 75%);mask-image:linear-gradient(90deg,#000 0 25%,transparent 75%)}
[data-anim="encre"],[data-anim="aquarelle"]{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:50% 50%;mask-position:50% 50%}
[data-anim="encre"]{--n:anEncre;--din:1.2s;-webkit-mask-image:radial-gradient(circle,#000 0 38%,transparent 42%);mask-image:radial-gradient(circle,#000 0 38%,transparent 42%);-webkit-mask-size:400% 400%;mask-size:400% 400%}
[data-anim="aquarelle"]{--n:anAquarelle;--din:1.6s;-webkit-mask-image:radial-gradient(circle,#000 0 25%,transparent 55%);mask-image:radial-gradient(circle,#000 0 25%,transparent 55%);-webkit-mask-size:500% 500%;mask-size:500% 500%}
[data-anim="numerique"]{--n:anNumerique;--din:.9s;--e-in:steps(9,end)}
[data-anim="croquis"]{--n:anCroquis;--din:1s;--e-in:steps(12,end)}

@keyframes anFondu{from{opacity:0}}
@keyframes anLevee{from{opacity:0;transform:translateY(60px)}}
@keyframes anBalayage{from{opacity:0;transform:translateX(-140px);filter:blur(6px)}}
@keyframes anSouffle{0%{opacity:0;transform:scale(.9)}60%{opacity:1;transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes anEffacer{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(-30%)}}
@keyframes anFlou{from{opacity:0;filter:blur(18px)}}
@keyframes anSucc{from{opacity:0;transform:scale(1.35);filter:blur(10px)}}
@keyframes anZoom{from{opacity:0;transform:scale(.7)}}
@keyframes anApparition{from{transform:translateY(40px);clip-path:inset(100% 0 0 0)}to{clip-path:inset(-30%)}}
@keyframes anDerive{from{opacity:0;transform:translateX(-70px)}}
@keyframes anTecto{0%{opacity:0;transform:translateX(-180px)}55%{opacity:1;transform:translateX(14px)}75%{transform:translateX(-6px)}100%{transform:translateX(0)}}
@keyframes anRoulade{from{opacity:0;transform:translate(-90px,30px) rotate(-28deg)}}
@keyframes anLueur{0%{opacity:0;filter:brightness(2.4) drop-shadow(0 0 30px rgba(255,255,255,.9))}60%{opacity:1;filter:brightness(1.4) drop-shadow(0 0 18px rgba(255,255,255,.6))}100%{filter:none}}
@keyframes anDeplacement{from{opacity:0;transform:translate(-50px,50px) rotate(-8deg) scale(.92)}}
@keyframes anChute{0%{opacity:0;transform:scale(1.6)}65%{opacity:1;transform:scale(.96)}100%{transform:scale(1)}}
@keyframes anZoomVar{0%{opacity:0;transform:scale(1.35) rotate(-5deg)}55%{opacity:1;transform:scale(.95) rotate(1.5deg)}100%{transform:none}}
@keyframes anGlissement{from{opacity:0;transform:translateX(35%)}}
@keyframes anTV{0%{opacity:0;transform:scale(.3,.01);filter:brightness(3)}35%{opacity:1;transform:scale(1,.01);filter:brightness(3)}70%{transform:scale(1,1.04);filter:brightness(1.4) contrast(1.3)}100%{transform:none;filter:none}}
@keyframes anChroma{0%{opacity:0;transform:skewX(10deg) translateX(-40px);filter:hue-rotate(160deg) saturate(2.5) blur(4px)}60%{opacity:1;filter:hue-rotate(40deg) saturate(1.6) blur(1px)}100%{transform:none;filter:none}}
@keyframes anOndulation{0%{opacity:0;transform:skewX(16deg)}30%{opacity:1;transform:skewX(-10deg)}55%{transform:skewX(6deg)}75%{transform:skewX(-3deg)}100%{transform:none}}
@keyframes anVagueLente{from{opacity:0;transform:translateY(80px) rotate(-3deg)}}
@keyframes anMasque{from{-webkit-mask-position:100% 0;mask-position:100% 0}}
@keyframes anEncre{from{-webkit-mask-size:0% 0%;mask-size:0% 0%}}
@keyframes anAquarelle{from{-webkit-mask-size:0% 0%;mask-size:0% 0%;filter:blur(12px);opacity:.4}}
@keyframes anNumerique{from{clip-path:inset(0 100% 0 0);filter:contrast(2) saturate(0)}to{clip-path:inset(-30%)}}
@keyframes anCroquis{from{clip-path:polygon(0 0,0 0,-40% 100%,-40% 100%)}to{clip-path:polygon(0 0,140% 0,100% 100%,-40% 100%)}}

/* Effets continus */
[data-effet="pivoter"]{--n-fx:efPivoter;--dfx:12s;--efx:linear}
[data-effet="scintillement"]{--n-fx:efScintille;--dfx:2.6s}
[data-effet="impulsion"]{--n-fx:efImpulsion;--dfx:2s}
[data-effet="tremblement"]{--n-fx:efTremble;--dfx:3s;--efx:linear}
[data-effet="flotte"]{--n-fx:efFlotte;--dfx:4s}
[data-effet="balance"]{--n-fx:efBalance;--dfx:3.2s}
@keyframes efPivoter{to{rotate:360deg}}
@keyframes efScintille{0%,100%{filter:brightness(1)}50%{filter:brightness(1.3) drop-shadow(0 0 14px rgba(255,255,255,.8))}}
@keyframes efImpulsion{0%,100%{scale:1}50%{scale:1.08}}
@keyframes efTremble{0%,24%,100%{rotate:0deg}4%{rotate:-4deg}8%{rotate:4deg}12%{rotate:-3deg}16%{rotate:2deg}20%{rotate:-1deg}}
@keyframes efFlotte{0%,100%{translate:0 -10px}50%{translate:0 10px}}
@keyframes efBalance{0%,100%{rotate:-6deg}50%{rotate:6deg}}

/* Arrière-plan : zoom lent, panoramique, parallaxe (le fond et le contenu ne vont pas à la même vitesse) */
.slide.active[data-fond="zoom"] .fx-fond{animation:fdZoom var(--dur,15s) linear both}
.slide.active[data-fond="pano"] .fx-fond{animation:fdPano var(--dur,15s) ease-in-out both}
.slide.active[data-fond="parallaxe"] .fx-fond{animation:fdParFond var(--dur,15s) ease-in-out both}
.slide.active[data-fond="parallaxe"] .fx-avant{animation:fdParAvant var(--dur,15s) ease-in-out both}
@keyframes fdZoom{from{transform:scale(1)}to{transform:scale(1.08)}}
@keyframes fdPano{from{transform:scale(1.1) translateX(3%)}to{transform:scale(1.1) translateX(-3%)}}
@keyframes fdParFond{from{transform:scale(1.12) translate(3%,1%)}to{transform:scale(1.12) translate(-3%,-1%)}}
@keyframes fdParAvant{from{transform:translateX(-16px)}to{transform:translateX(16px)}}

/* Transition d'arrivée de la diapo */
.slide.active[data-trans="glisse"]{animation:trGlisse .9s cubic-bezier(.2,.7,.2,1) both}
.slide.active[data-trans="zoom"]{animation:trZoom 1s cubic-bezier(.2,.7,.2,1) both}
.slide.active[data-trans="volet"]{animation:trVolet 1s cubic-bezier(.6,0,.2,1) both}
@keyframes trGlisse{from{transform:translateX(7%)}}
@keyframes trZoom{from{transform:scale(1.1)}}
@keyframes trVolet{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}

/* Aperçus figés (miniatures, aperçu de l'admin hors lecture) */
.ah-fx-off [data-el],.ah-fx-off .fx-fond,.ah-fx-off .fx-avant,.ah-fx-off .slide{animation:none!important}
@media (prefers-reduced-motion:reduce){[data-el],.fx-fond,.fx-avant,.slide{animation:none!important}}

/* Habillage : barre météo + pied de page */
.ah-chrome{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .9s ease;z-index:10}
.ah-chrome.on{opacity:1}
.ah-static .ah-chrome{transition:none}
.ah-side{position:absolute;top:0;right:0;width:var(--side-w);bottom:var(--foot-h);background:var(--side);color:#fff;display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 0 14px}
.ah-clock{font-size:38px;font-weight:700;line-height:1;letter-spacing:-.01em;white-space:nowrap}
.ah-date{font-size:19px;font-weight:500;margin-top:8px;opacity:.95}
.ah-wx{flex:1;width:100%;display:flex;flex-direction:column;justify-content:space-evenly;margin-top:18px;border-top:1.5px solid rgba(255,255,255,.28)}
.ah-upd{font-size:14px;opacity:.8;line-height:1.2;padding:0 10px}
.wd{display:flex;flex-direction:column;align-items:center;gap:8px}
.wd b{font-size:23px;font-weight:800;letter-spacing:.02em}
.wd svg{width:62px;height:62px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wd span{font-size:23px;font-weight:600}
.ah-foot{position:absolute;left:0;right:0;bottom:0;height:var(--foot-h);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 70px}
.ah-name{color:var(--magenta);font-weight:700;font-size:54px;letter-spacing:.01em}
.ah-logo{max-height:96px;max-width:220px}
.ah-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font-size:44px;line-height:1.4;color:var(--muted);padding:120px;background:var(--paper)}

@media (prefers-reduced-motion:reduce){.slide,.slide.active,.ah-chrome{transition-duration:.01s}}
