/* ============================================================
   OSO — Page Transitions
   Scanner universel : se déclenche à chaque chargement de page.
   Masqué sur la homepage première visite (le preloader prend le relais).
   ============================================================ */

.oso-scanner-overlay {
    position: fixed;
    inset: 0;
    z-index: 9990; /* sous le preloader (9999) */
    pointer-events: none;
    background: #000000;
    animation: oso-scanner-out 0.72s cubic-bezier(0.16, 1, 0.3, 1) 0.05s forwards;
}

/* Ligne de scan jaune */
.oso-scanner-overlay::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 247, 66, 0.9) 50%,
        transparent 100%
    );
    box-shadow: 0 0 14px 3px rgba(255, 247, 66, 0.45);
    animation: oso-scan-sweep 0.55s linear forwards;
    will-change: transform;
}

/* L'overlay s'efface après le scan */
@keyframes oso-scanner-out {
    0%   { opacity: 1; }
    60%  { opacity: 1; }
    100% { opacity: 0; }
}

/* La ligne balaye de haut en bas */
@keyframes oso-scan-sweep {
    0%   { transform: translateY(0);     opacity: 0; }
    6%   { opacity: 1; }
    94%  { opacity: 1; }
    100% { transform: translateY(100vh); opacity: 0; }
}

/* Sur la homepage première visite : le preloader (9999) couvre tout,
   le scanner est masqué pour éviter la superposition */
html.is-loading .oso-scanner-overlay {
    display: none;
}

/* Accessibilité */
@media (prefers-reduced-motion: reduce) {
    .oso-scanner-overlay,
    .oso-scanner-overlay::after {
        animation: none !important;
        opacity: 0 !important;
    }
}
