/* Enterprise public scroll + card motion layer */
:root {
    --drv-motion-ease: cubic-bezier(.16, 1, .3, 1);
    --drv-motion-shadow: 0 24px 70px rgba(13, 34, 69, .14);
    --drv-motion-ring: rgba(13, 110, 253, .16);
}

.drv-reveal {
    opacity: 0;
    transform: translate3d(0, 28px, 0) scale(.985);
    filter: blur(10px);
    transition:
        opacity .82s var(--drv-motion-ease),
        transform .82s var(--drv-motion-ease),
        filter .82s var(--drv-motion-ease);
    transition-delay: var(--drv-reveal-delay, 0ms);
    will-change: opacity, transform, filter;
}

.drv-reveal[data-reveal="left"] {
    transform: translate3d(-30px, 18px, 0) scale(.985);
}

.drv-reveal[data-reveal="right"] {
    transform: translate3d(30px, 18px, 0) scale(.985);
}

.drv-reveal[data-reveal="zoom"] {
    transform: translate3d(0, 20px, 0) scale(.94);
}

.drv-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
}

.drv-motion-card {
    position: relative;
    isolation: isolate;
    transform-style: preserve-3d;
    transition:
        transform .42s var(--drv-motion-ease),
        box-shadow .42s var(--drv-motion-ease),
        border-color .42s var(--drv-motion-ease),
        background .42s var(--drv-motion-ease);
    will-change: transform;
}

.drv-motion-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    opacity: 0;
    background:
        radial-gradient(360px circle at var(--drv-glow-x, 50%) var(--drv-glow-y, 20%), rgba(13, 110, 253, .14), transparent 48%),
        linear-gradient(135deg, rgba(255, 255, 255, .36), rgba(255, 255, 255, 0));
    transition: opacity .42s var(--drv-motion-ease);
    pointer-events: none;
}

.drv-motion-card:hover,
.drv-motion-card:focus-within {
    transform: translateY(-8px) rotateX(var(--drv-tilt-x, 0deg)) rotateY(var(--drv-tilt-y, 0deg));
    box-shadow: var(--drv-motion-shadow);
    border-color: var(--drv-motion-ring) !important;
}

.drv-motion-card:hover::before,
.drv-motion-card:focus-within::before {
    opacity: 1;
}

.drv-motion-card a,
.drv-motion-card button {
    transform: translateZ(18px);
}

.drv-text-reveal {
    display: inline;
    background-image: linear-gradient(90deg, currentColor, currentColor);
    background-size: 0% 100%;
    background-repeat: no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    transition: background-size 1s var(--drv-motion-ease);
}

.is-visible > .drv-text-reveal,
.is-visible .drv-text-reveal {
    background-size: 100% 100%;
}

@media (prefers-reduced-motion: reduce) {
    .drv-reveal,
    .drv-motion-card,
    .drv-motion-card::before,
    .drv-text-reveal {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
        animation: none !important;
    }
}
