/* ==========================================================================
   TECH POLISH (BRIEF-05)
   ========================================================================== */

/* ================================================================
   FOND GLOBAL — move background to html so fixed z-index:-1 elements are visible
   ================================================================ */

html {
    background: var(--color-paper);
}

body {
    background: transparent;
}

/* (filigrane global supprimé — chirurgical : hero + footer uniquement, cf. D017) */

/* ================================================================
   SCROLL PROGRESS BAR
   ================================================================ */

.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--color-red);
    transform: scaleX(0);
    transform-origin: left;
    z-index: 100;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .scroll-progress {
        display: none;
    }
}

/* ================================================================
   MAGNETIC CARDS
   ================================================================ */

.service-card {
    will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
    .service-card {
        transition: none !important;
    }
}

/* ================================================================
   SCROLL REVEALS — élastiques (overshoot léger)
   ================================================================ */

[data-reveal] {
    opacity: 0;
    transform: translateY(40px);
    transition:
        opacity 900ms cubic-bezier(0.215, 0.61, 0.355, 1),
        transform 1100ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

[data-reveal][data-revealed="true"] {
    opacity: 1;
    transform: translateY(0);
}

[data-reveal="left"]:not([data-revealed="true"]) {
    transform: translateX(-40px);
}
[data-reveal="left"][data-revealed="true"] {
    transform: translateX(0);
}

[data-reveal="scale"]:not([data-revealed="true"]) {
    transform: scale(0.92);
}
[data-reveal="scale"][data-revealed="true"] {
    transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal] {
        opacity: 1;
        transform: none !important;
        transition: none;
    }
}
