/* Animation d'ouverture : fond noir comme le logo, scène centrée, éléments empilés */
div.intro{position:fixed;inset:0;background:#000;display:grid;place-items:center;z-index:9999;overflow:hidden}
div.intro[hidden]{display:none}
div.intro.intro-finie:not(.intro-fixe){animation:intro-sortie .45s ease both}
@keyframes intro-sortie{to{opacity:0;visibility:hidden}}
.intro-scene{position:relative;margin-top:-2vh}
.intro-scene img{position:absolute;display:block;pointer-events:none;user-select:none;-webkit-user-drag:none}
.intro-scene .intro-final{inset:0;width:100%;height:100%;left:0;top:0;object-fit:contain}
.intro-scene .intro-texte,.intro-scene .intro-piece,.intro-scene .intro-tuile{will-change:transform,opacity}
.intro-eclat{position:absolute;width:12%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff 0%,rgba(255,226,160,.9) 22%,rgba(245,154,31,.35) 48%,transparent 70%);opacity:0;pointer-events:none;mix-blend-mode:screen}
.intro-statut{position:absolute;left:0;right:0;bottom:4.5vh;text-align:center;color:#ffbf6b;font:600 15px/1.4 "Segoe UI",system-ui,sans-serif;letter-spacing:.02em;min-height:22px}
.intro-passer{position:absolute;top:2.2vh;right:2.5vw;color:rgba(255,255,255,.45);font:12px "Segoe UI",system-ui,sans-serif;cursor:pointer}
body.intro-ouvert{overflow:hidden}

/* barre de chargement */
.intro-barre{position:absolute;left:50%;bottom:7.5vh;transform:translateX(-50%);width:min(440px,72vw);height:7px;border-radius:5px;background:rgba(255,255,255,.14);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.intro-barre i{display:block;height:100%;width:100%;transform-origin:left center;border-radius:5px;background:linear-gradient(90deg,#1d4fd8,#4d7bff 62%,#f59a1f);box-shadow:0 0 14px rgba(77,123,255,.85)}
.intro-pct{position:absolute;left:0;right:0;bottom:3.6vh;text-align:center;color:rgba(255,255,255,.72);font:600 13px/1 "Segoe UI",system-ui,sans-serif;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.intro-statut{bottom:11vh}
.intro-finie.intro-fixe .intro-barre i{animation:intro-attente 1.3s ease-in-out infinite alternate}
@keyframes intro-attente{from{filter:brightness(.8)}to{filter:brightness(1.5)}}
