/* Animations accueil : opacity/transform uniquement (pas de CLS), courtes (≤ 3 s), désactivées si prefers-reduced-motion */
.ao{opacity:0;transform:translateY(18px)}
.ao.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}
.pc,.pkc,.art,.tiles a{transition:transform .3s ease,box-shadow .3s ease}
@media(hover:hover){.pc:hover,.art:hover,.pkc:hover{transform:translateY(-6px);box-shadow:0 12px 26px #5a0c1a26}.pc:hover .im img{transform:scale(1.06)}}
.pc .im img{transition:transform .4s ease}
.pkc,.art>a,.tiles a{overflow:hidden}.art>a{display:block}
.kb .pkimg,.kb.art img,.kb.tiles a img,.tiles a.kb img,.pc.kb .im img{animation:kb 2.6s ease-out both}
@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1)}}
.in .b-pro,.in .b-new{animation:pulse 1.2s ease-in-out .5s 2}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.sl picture img{animation:kb 3s ease-out both}
.sl .hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s}.sl .hv.on{opacity:1}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.ao{opacity:1;transform:none}}
