/* Generated from inline <style> blocks so browsers can cache them. Edit here, not in the views. */

/* ---- from themes/magazine/index.php ---- */
/* Home page only: rounded corners + a light sweep across post images (auto every 5s, and on hover) */
        .featured-section .fs-grid-item, .featured-section .fs-card { border-radius: 16px; overflow: hidden; }
        .post-item .image, .post-item-mid .image { border-radius: 14px; overflow: hidden; }
        .post-item-small .image { border-radius: 10px; overflow: hidden; }
        .post-item .image > a, .post-item-mid .image > a { display: block; overflow: hidden; }
        .post-item-small .image > a { display: block; position: relative; height: 100%; overflow: hidden; }

        .featured-section .fs-card::before,
        .post-item .image > a::after, .post-item-mid .image > a::after, .post-item-small .image > a::after {
            content: ""; position: absolute; top: 0; left: -75%; width: 50%; height: 100%; z-index: 2; pointer-events: none;
            background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.18) 40%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.18) 60%, rgba(255,255,255,0) 100%);
            transform: skewX(-20deg);
            /* Runs on its own every 5s; staggered below so images don't all flash together */
            animation: homeImgShineLoop 5s ease-out infinite;
        }
        .col-md-6:nth-child(3n+2) .post-item .image > a::after, .swiper-slide:nth-child(3n+2) .fs-card::before,
        .fs-grid-item:nth-child(3n+2) .fs-card::before, .post-item-small:nth-child(3n+2) .image > a::after { animation-delay: 1.6s; }
        .col-md-6:nth-child(3n+3) .post-item .image > a::after, .swiper-slide:nth-child(3n+3) .fs-card::before,
        .fs-grid-item:nth-child(3n+3) .fs-card::before, .post-item-small:nth-child(3n+3) .image > a::after { animation-delay: 3.2s; }
        @keyframes homeImgShineLoop { 0% { left: -75%; } 20%, 100% { left: 125%; } }
        .featured-section .fs-card:hover::before,
        .post-item .image:hover > a::after, .post-item-mid .image:hover > a::after, .post-item-small .image:hover > a::after,
        .post-item:hover .image > a::after, .post-item-small:hover .image > a::after {
            animation: homeImgShine .85s ease-out;
            animation-delay: 0s !important;
        }
        @keyframes homeImgShine { from { left: -75%; } to { left: 125%; } }
        @media (prefers-reduced-motion: reduce) {
            .featured-section .fs-card::before, .post-item .image > a::after, .post-item-mid .image > a::after, .post-item-small .image > a::after { display: none; }
        }

/* ---- from themes/magazine/partials/_home_image_effects.php ---- */
/* Video cards have no shine in the base rules, so give them one here */
    .cat-fx .section-videos .video-card::before {
        content: ""; position: absolute; top: 0; left: -75%; width: 50%; height: 100%; z-index: 2; pointer-events: none;
        background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.18) 40%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.18) 60%, rgba(255,255,255,0) 100%);
        transform: skewX(-20deg); animation: homeImgShineLoop 5s ease-out infinite;
    }
    .cat-fx .post-item .image img, .cat-fx .post-item-small .image img, .cat-fx .section-videos .video-card img {
        transition: transform .7s cubic-bezier(.22,1,.36,1), filter .7s ease; will-change: transform;
    }

    /* 1 Glint */
    .cat-fx-1 .post-item .image > a::after, .cat-fx-1 .post-item-small .image > a::after, .cat-fx-1 .video-card::before {
        width: 35%;
        background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 35%, rgba(255,255,255,.75) 50%, rgba(255,255,255,0) 65%, rgba(255,255,255,0) 100%);
        animation-name: fxGlintLoop; animation-duration: 4.5s; animation-timing-function: ease-in-out;
    }
    .cat-fx-1 .post-item:hover .image > a::after, .cat-fx-1 .post-item-small:hover .image > a::after, .cat-fx-1 .video-card:hover::before {
        animation: fxGlint .7s ease-in-out 1; animation-delay: 0s !important;
    }
    .cat-fx-1 .post-item:hover .image img, .cat-fx-1 .post-item-small:hover .image img, .cat-fx-1 .video-card:hover img { transform: scale(1.08); }
    @keyframes fxGlintLoop { 0% { left: -75%; } 16%, 100% { left: 125%; } }
    @keyframes fxGlint { from { left: -75%; } to { left: 125%; } }

    /* 2 Golden */
    .cat-fx-2 .post-item .image > a::after, .cat-fx-2 .post-item-small .image > a::after, .cat-fx-2 .video-card::before {
        width: 60%; mix-blend-mode: screen;
        background: linear-gradient(110deg, rgba(255,190,70,0) 0%, rgba(255,205,110,.28) 38%, rgba(255,236,170,.7) 50%, rgba(255,205,110,.28) 62%, rgba(255,190,70,0) 100%);
        animation-name: fxGoldLoop; animation-duration: 6s; animation-timing-function: cubic-bezier(.4,0,.2,1);
    }
    .cat-fx-2 .post-item:hover .image > a::after, .cat-fx-2 .post-item-small:hover .image > a::after, .cat-fx-2 .video-card:hover::before {
        animation: fxGold 1.1s cubic-bezier(.4,0,.2,1) 1; animation-delay: 0s !important;
    }
    .cat-fx-2 .post-item .image img, .cat-fx-2 .post-item-small .image img, .cat-fx-2 .video-card img { transition-duration: 1s; }
    .cat-fx-2 .post-item:hover .image img, .cat-fx-2 .post-item-small:hover .image img, .cat-fx-2 .video-card:hover img {
        transform: scale(1.1) rotate(1.5deg); filter: saturate(1.15) sepia(.12) contrast(1.05);
    }
    @keyframes fxGoldLoop { 0% { left: -75%; } 22%, 100% { left: 125%; } }
    @keyframes fxGold { from { left: -75%; } to { left: 125%; } }

    /* 3 Beam (top to bottom) */
    .cat-fx-3 .post-item .image > a::after, .cat-fx-3 .post-item-small .image > a::after, .cat-fx-3 .video-card::before {
        left: 0; top: -60%; width: 100%; height: 45%; transform: none;
        background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.12) 35%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.12) 65%, rgba(255,255,255,0) 100%);
        animation-name: fxBeamLoop; animation-duration: 5.5s; animation-timing-function: ease-in-out;
    }
    .cat-fx-3 .post-item:hover .image > a::after, .cat-fx-3 .post-item-small:hover .image > a::after, .cat-fx-3 .video-card:hover::before {
        animation: fxBeam .9s ease-in-out 1; animation-delay: 0s !important;
    }
    .cat-fx-3 .post-item .image img, .cat-fx-3 .post-item-small .image img, .cat-fx-3 .video-card img { transition-duration: 2.2s; transition-timing-function: cubic-bezier(.16,1,.3,1); }
    .cat-fx-3 .post-item:hover .image img, .cat-fx-3 .post-item-small:hover .image img, .cat-fx-3 .video-card:hover img { transform: scale(1.15) translate(-2%, -2%); }
    @keyframes fxBeamLoop { 0% { top: -60%; } 22%, 100% { top: 115%; } }
    @keyframes fxBeam { from { top: -60%; } to { top: 115%; } }

    /* 4 Spotlight (center burst) */
    .cat-fx-4 .post-item .image > a::after, .cat-fx-4 .post-item-small .image > a::after, .cat-fx-4 .video-card::before {
        left: 0; top: 0; width: 100%; height: 100%; opacity: 0; transform: scale(.4);
        background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.55) 0%, rgba(255,255,255,.18) 35%, rgba(255,255,255,0) 65%);
        animation-name: fxSpotLoop; animation-duration: 5s; animation-timing-function: ease-out;
    }
    .cat-fx-4 .post-item:hover .image > a::after, .cat-fx-4 .post-item-small:hover .image > a::after, .cat-fx-4 .video-card:hover::before {
        animation: fxSpot .8s ease-out 1; animation-delay: 0s !important;
    }
    .cat-fx-4 .post-item .image img, .cat-fx-4 .post-item-small .image img, .cat-fx-4 .video-card img { transition-duration: .45s; }
    .cat-fx-4 .post-item:hover .image img, .cat-fx-4 .post-item-small:hover .image img, .cat-fx-4 .video-card:hover img { transform: scale(1.06); filter: brightness(1.12) contrast(1.05); }
    @keyframes fxSpotLoop { 0% { opacity: 0; transform: scale(.4); } 7% { opacity: 1; } 20%, 100% { opacity: 0; transform: scale(1.7); } }
    @keyframes fxSpot { 0% { opacity: 0; transform: scale(.4); } 30% { opacity: 1; } 100% { opacity: 0; transform: scale(1.7); } }

    /* 5 Streaks (right to left) */
    .cat-fx-5 .post-item .image > a::after, .cat-fx-5 .post-item-small .image > a::after, .cat-fx-5 .video-card::before {
        left: 125%; width: 60%; transform: skewX(20deg);
        background: linear-gradient(80deg, rgba(255,255,255,0) 28%, rgba(255,255,255,.6) 32%, rgba(255,255,255,0) 36%, rgba(255,255,255,0) 56%, rgba(255,255,255,.4) 61%, rgba(255,255,255,0) 66%);
        animation-name: fxStreakLoop; animation-duration: 5s; animation-timing-function: ease-in-out;
    }
    .cat-fx-5 .post-item:hover .image > a::after, .cat-fx-5 .post-item-small:hover .image > a::after, .cat-fx-5 .video-card:hover::before {
        animation: fxStreak .8s ease-in-out 1; animation-delay: 0s !important;
    }
    .cat-fx-5 .post-item .image img, .cat-fx-5 .post-item-small .image img, .cat-fx-5 .video-card img { transition-duration: .9s; }
    .cat-fx-5 .post-item:hover .image img, .cat-fx-5 .post-item-small:hover .image img, .cat-fx-5 .video-card:hover img { transform: scale(1.1) translateX(-2%); filter: saturate(1.3); }
    @keyframes fxStreakLoop { 0% { left: 125%; } 18%, 100% { left: -75%; } }
    @keyframes fxStreak { from { left: 125%; } to { left: -75%; } }

    /* 6 Prism (holographic) */
    .cat-fx-6 .post-item .image > a::after, .cat-fx-6 .post-item-small .image > a::after, .cat-fx-6 .video-card::before {
        width: 70%; mix-blend-mode: screen;
        background: linear-gradient(115deg, rgba(255,0,150,0) 0%, rgba(255,60,170,.28) 28%, rgba(0,200,255,.32) 44%, rgba(120,255,140,.28) 58%, rgba(255,225,0,.24) 72%, rgba(255,225,0,0) 100%);
        animation-name: fxPrismLoop; animation-duration: 6.5s; animation-timing-function: ease-in-out;
    }
    .cat-fx-6 .post-item:hover .image > a::after, .cat-fx-6 .post-item-small:hover .image > a::after, .cat-fx-6 .video-card:hover::before {
        animation: fxPrism 1.2s ease-in-out 1; animation-delay: 0s !important;
    }
    .cat-fx-6 .post-item .image img, .cat-fx-6 .post-item-small .image img, .cat-fx-6 .video-card img { transition-duration: 1s; }
    .cat-fx-6 .post-item:hover .image img, .cat-fx-6 .post-item-small:hover .image img, .cat-fx-6 .video-card:hover img { transform: scale(1.12); filter: hue-rotate(8deg) saturate(1.2); }
    @keyframes fxPrismLoop { 0% { left: -80%; } 25%, 100% { left: 130%; } }
    @keyframes fxPrism { from { left: -80%; } to { left: 130%; } }

    @media (prefers-reduced-motion: reduce) {
        .cat-fx .video-card::before { display: none; }
        .cat-fx .post-item:hover .image img, .cat-fx .post-item-small:hover .image img, .cat-fx .video-card:hover img { transform: none; }
    }

/* ---- from themes/magazine/partials/_home_category_animations.php ---- */
.cat-anim .section-category .section-title .title { opacity: 0; transform: translateX(-24px); transition: opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1); }
    .cat-anim .section-category .section-title::after { width: 0; transition: width .8s cubic-bezier(.22,1,.36,1) .15s; }
    .cat-anim .section-category .nav-category-block > .nav-item { opacity: 0; transform: translateY(-8px); transition: opacity .45s ease, transform .45s ease; transition-delay: calc(.2s + var(--cat-i, 0) * 60ms); }
    .cat-anim .section-category .cat-anim-item { opacity: 0; transform: translateY(28px) scale(.98); transition: opacity .6s ease, transform .7s cubic-bezier(.22,1,.36,1); transition-delay: calc(.25s + var(--cat-i, 0) * 80ms); }
    .cat-anim .section-category .cat-anim-block { opacity: 0; transform: translateY(28px); transition: opacity .7s ease .2s, transform .8s cubic-bezier(.22,1,.36,1) .2s; }

    .cat-anim .section-category.cat-in .section-title .title,
    .cat-anim .section-category.cat-in .nav-category-block > .nav-item,
    .cat-anim .section-category.cat-in .cat-anim-item,
    .cat-anim .section-category.cat-in .cat-anim-block { opacity: 1; transform: none; }
    .cat-anim .section-category.cat-in .section-title::after { width: 60px; }

    /* Posts loaded by a subcategory tab */
    .cat-anim .section-category .cat-anim-item.cat-tab-new { transition-delay: calc(var(--cat-i, 0) * 70ms); }
    .cat-anim .section-category.cat-in .cat-anim-item.cat-hold { opacity: 0; transform: translateY(20px) scale(.98); transition: none; }

    /* Sliding underline under the active subcategory tab */
    .nav-category-block { position: relative; }
    .nav-category-block .cat-tab-ink { position: absolute; left: 0; bottom: -3px; height: 2px; width: 0; border-radius: 2px; background: var(--vr-theme-color); opacity: 0; pointer-events: none;
        transition: transform .4s cubic-bezier(.22,1,.36,1), width .4s cubic-bezier(.22,1,.36,1), opacity .3s ease; }
    .nav-category-block .nav-link { transition: color .25s ease; }
    .nav-category-block .nav-link:hover { color: var(--vr-theme-color) !important; }

    @media (prefers-reduced-motion: reduce) {
        .nav-category-block .cat-tab-ink { transition: none; }
    }
