/**
 * blog-view-transitions.css — PR-X3
 * Cross-document View Transitions (índice/tile → artigo).
 * Chromium 126+; outros browsers ignoram com segurança.
 *
 * Shared names (build-time):
 *   vt-hero-{slug}  — tile image ↔ article hero
 *   vt-title-{slug} — tile heading ↔ article H1
 */

@view-transition {
    navigation: auto;
}

/* Root page cross-fade (soft, not distracting) */
::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: 0.28s;
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* All named groups (hero/title) — slightly longer morph */
::view-transition-group(*) {
    animation-duration: 0.34s;
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Contain paint while transitioning (names set inline at build) */
.article-tile__image img,
.article-hero-image img,
.blog-content > h1:first-of-type,
.article-tile__heading {
    backface-visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
    @view-transition {
        navigation: none;
    }

    ::view-transition-old(root),
    ::view-transition-new(root),
    ::view-transition-group(*),
    ::view-transition-old(*),
    ::view-transition-new(*) {
        animation: none !important;
    }
}
