/* GTA VI is a skin of the default editable article, including its shared chrome. */
.dose-gta-vi-single {
    --gta-bg: #fffaf6;
    --gta-surface: #f6eef8;
    --gta-text: #291a36;
    --gta-muted: #65516e;
    --gta-border: #d9c8df;
    --gta-accent: #7436a7;
    --gta-link: #85317b;
    --gta-purple: #7c3aed;
    --gta-purple-soft: #d5b9ff;
    --gta-purple-mid: #c9b3ff;
    --gta-purple-deep: #321344;
    --gta-pink: #ed6ca8;
    --gta-orange: #ff9b57;
    /* Vice City balance: purple + pink + peach (first design direction). */
    --gta-sunset: linear-gradient(180deg, var(--gta-purple), var(--gta-pink) 55%, var(--gta-orange));
    /* SHARE label/line match pink outline socials. */
    --gta-share-line: linear-gradient(180deg, #a72c77, var(--gta-pink) 55%, var(--gta-button-pink));
    --gta-button-pink: #ffb1cb;
    --gta-button-peach: #ffc18d;
    --gta-button-lime: #e5ff9e;
    --gta-button-yellow: #ffe49a;
    --gta-button-ink: #15131b;
    --gta-control: var(--gta-button-pink);
    --gta-header: linear-gradient(115deg, #321344, #61295b 65%, #713b36);
    --gta-drawer-background: linear-gradient(155deg, #d8b5e4, #f5c5d0 55%, #ffcfaa);
    --gta-drawer-logo: brightness(0);
    /* Sticky settle: opaque reference gradient only (deep plum → dusty rose → warm lip). */
    --gta-sticky-bar: linear-gradient(180deg, #513c59 0%, #5f3c5e 28%, #7b4761 55%, #8b5760 78%, #95695e 100%);
    /* Brief ambient underlay during the climb; must not remain on the settled bar. */
    --gta-sticky-ambient:
        radial-gradient(ellipse 140% 120% at 50% 100%, #c8896a88 0%, #8b576066 32%, transparent 68%),
        radial-gradient(ellipse 100% 90% at 85% 100%, #95695e77 0%, transparent 58%);
}
[data-theme="dark"] .dose-gta-vi-single,
[data-theme="dark"].dose-gta-vi-single {
    --gta-bg: #140f1d;
    --gta-surface: #261b31;
    --gta-text: #fff3f5;
    --gta-muted: #d2bdd9;
    --gta-border: #574160;
    --gta-accent: #edabdc;
    --gta-link: #ffc093;
    --gta-drawer-background: radial-gradient(ellipse at bottom right, #713b3666, transparent 70%), linear-gradient(155deg, #30203e, #482541);
    --gta-drawer-logo: none;
}
.dose-gta-vi-single.single-revamp:is(#article-top, #tinymce, .editor-styles-wrapper, .editor-styles-wrapper *) {
    --color-head-text: var(--gta-text);
    --color-body-text: var(--gta-text);
    --color-border: var(--gta-border);
    --colorGray: var(--gta-border);
    --colorBlueMain: var(--gta-accent);
    --dose-header-background: var(--gta-header);
    --wp--custom--toc--foreground: var(--gta-text);
    --wp--custom--toc--background: var(--gta-surface);
    --wp--custom--toc--border: var(--gta-border);
    color: var(--gta-text);
    isolation: isolate;
    display: flow-root;

    &:not(.has-background):not([style*="background"]) { background: var(--gta-bg); }
    & ::selection { background: #7436a7; color: #fff; }
    & :is(a,button,input,textarea,summary):focus-visible { outline: 3px solid var(--gta-accent); outline-offset: 4px; }
    & .backdrop_detail { background: var(--gta-bg); pointer-events: none; }
    & .backdrop_detail::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(110deg, #43234f73, #713d2b66);
        z-index: 1;
    }
    & :is(.content_detail,.blog_detail_head):not(.has-background):not([style*="background"]) { background: transparent; }
    & .col-layout { border-color: var(--gta-border); }

    /* Reserve the collapsing row/track height so the article stays in place. */
    & .dose-site-header {
        --gta-header-gap: 32px;
        --gta-header-collapse: 40px;
        margin-bottom: var(--gta-header-gap);
        border-bottom: 0;
        transition: margin-bottom 300ms cubic-bezier(.22,1,.36,1), box-shadow 300ms cubic-bezier(.22,1,.36,1) !important;
    }
    & .dose-site-header.is-scrolled {
        margin-bottom: calc(var(--gta-header-gap) + var(--gta-header-collapse));
        box-shadow: 0 8px 24px #291a3626;
    }
    @media (max-width: 767px) {
        /* Match the article's collapsing 24px gap; mobile track loses 28px. */
        & .dose-site-header { --gta-header-gap: 24px; --gta-header-collapse: 28px; }
    }
    @media (min-width: 1200px) {
        & .dose-site-header.is-scrolled .logo_main:not(.is-resized) img { transform: scale(.6); }
    }
    @media (max-width: 1199px) {
        & .dose-site-header.is-scrolled .group-header { gap: 8px; }
    }
    /* The shared scroll measurement owns pinning; GTA changes paint at that handoff. */
    & .dose-site-header:not(.has-background):not([style*="background"]) { background: transparent !important; }
    & .dose-site-header::before { background: linear-gradient(110deg, #7436a74d, #ff9b5726); }
    & .dose-site-header .menu_expand {
        box-sizing: border-box;
        width: min(400px, 100%);
        padding: 32px;
        color: var(--gta-text);
        scrollbar-color: var(--gta-accent) var(--gta-surface);
        &:not(.has-background):not([style*="background"]) { background: var(--gta-drawer-background); }
        &::before {
            content: "";
            position: absolute;
            inset: 0;
            background: url("../../images/gta-vi-header-fronds.svg?rev=static") right top / auto 240px no-repeat;
            opacity: .05;
            pointer-events: none;
        }
        & .menu_expand_in { position: relative; gap: 24px; }
        & .logo_expand { padding-inline-end: 48px; box-sizing: content-box; }
        & .logo_expand img { filter: var(--gta-drawer-logo); }
        & .btn_close { width: 48px; height: 48px; top: 24px; right: 24px; background: var(--gta-button-peach); color: var(--gta-button-ink); }
        & .btn_close img { width: 24px; height: 24px; filter: brightness(0); }
        & .btn_close:is(:hover,:focus-visible) { background: var(--gta-button-lime); }
        & .btn_close:focus-visible { box-shadow: 0 0 0 2px var(--gta-accent); }
        & :is(a,button,input):focus-visible,
        & .switch:has(input:focus-visible) { outline-color: var(--gta-accent); }
        & .menu_expand_list .wp-block-navigation__container { gap: 8px; }
        & .menu_expand_list a:not(.has-text-color):not([style*="color"]) { color: var(--gta-text); }
        & .menu_expand_list a { display: inline-flex; align-items: center; min-height: 44px; }
        & .menu_expand_list a::after { background: var(--gta-accent); }
        & nav.menu_expand_list_sub { padding-top: 24px; border-top: 1px solid var(--gta-border); }
        & .menu_expand_list_sub .wp-block-navigation__container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px 24px; }
        & .menu_expand_list_sub a { display: inline-flex; align-items: center; min-height: 44px; }
        & :is(.menu_expand_list_sub,.bottom) a:not(.has-text-color):not([style*="color"]) { color: var(--gta-text); }
        & :is(.menu_expand_list,.menu_expand_list_sub) a:not(.has-text-color):not([style*="color"]):is(:hover,:focus-visible) { color: var(--gta-accent) !important; }
        & .menu_expand_list_sub a::after { background: var(--gta-accent); filter: none; }
        & .bottom { width: 100%; }
        & .bottom .social { gap: 8px; }
        & .bottom .social a { min-width: 44px; min-height: 44px; }
        & .menu_expand_list a:is(.support-btn,[href$="/support"],[href$="/support/"]):not(.has-text-color):not([style*="color"]) { padding: 8px 24px; border-radius: 999px; background: var(--gta-button-pink); color: var(--gta-button-ink) !important; }
        & .menu_expand_list a:is(.support-btn,[href$="/support"],[href$="/support/"]):not(.has-text-color):not([style*="color"]):is(:hover,:focus-visible) { background: var(--gta-button-lime); color: var(--gta-button-ink) !important; }
        & .switch > .switch__icon { color: var(--gta-text); }
        @media (max-width: 767px) { width: 100%; }
        @media (max-width: 479px) { padding: 32px 24px; }
        @media (max-width: 359px) { & .bottom .social { flex-wrap: wrap; } }
    }
    & .dose-header-disclosure > :is(.search,.social) { background: #321344; }
    & .dose-site-header .btn_support { background: var(--gta-button-pink); border: 0; border-radius: 999px; color: var(--gta-button-ink); text-transform: none; }
    & .dose-site-header .btn_support:is(:hover,:focus-visible) { background: var(--gta-button-lime); color: var(--gta-button-ink) !important; }
    & .dose-site-header .switch { --primary: #a764ca; }
    & .dose-site-header .switch__inner::before { background: #a764ca; }
    & .dose-site-header :is(a,button,input):focus-visible { outline-color: #ed6ca8; }
    & .dose-site-header .dose-header-search .wp-block-search__button,
    & .dose-site-header .dose-search-launcher { color: var(--gta-purple-deep); }
    & .dose-site-header .dose-header-search .wp-block-search__inside-wrapper,
    & .dose-site-header .dose-search-launcher {
        border: 1px solid color-mix(in srgb, var(--gta-purple-deep) 38%, #fff);
        border-radius: 0;
        overflow: hidden;
        /* White base; soft plum→warm wash from the sticky header stops. */
        background:
            radial-gradient(
                ellipse at top left,
                color-mix(in srgb, var(--gta-purple-deep) 22%, #fff),
                transparent 75%
            ),
            radial-gradient(
                ellipse at bottom right,
                color-mix(in srgb, #95695e 28%, #fff),
                transparent 75%
            ),
            #fff;
        color: var(--gta-button-ink);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }
    & .dose-site-header .dose-header-search .wp-block-search__inside-wrapper .wp-block-search__input,
    & .dose-site-header .dose-header-search .wp-block-search__button,
    & .dose-site-header .dose-search-launcher > svg:not(.dose-search-launcher__ai) { background: transparent; color: var(--gta-button-ink); }
    & .dose-site-header .dose-header-search .wp-block-search__input::placeholder,
    & .dose-site-header .dose-search-launcher__placeholder { color: #60445f; opacity: 1; }
    & .dose-site-header .dose-header-search .wp-block-search__button:is(:hover,:focus-visible) { background: #ed6ca833; }
    & .dose-site-header .dose-header-search .wp-block-search__inside-wrapper:focus-within { outline: 2px solid #ed6ca8; outline-offset: 2px; }
    & .dose-site-header .dose-search-launcher:focus-visible { outline: 2px solid #ed6ca8; outline-offset: 2px; }

    /* Sticky paint: fixed opaque bar; sunset climbs inside, then settles on the reference gradient. */
    & .dose-site-header:not(.has-background):not([style*="background"]) {
        --dose-header-background: none;
        --gta-sticky-ink: #fff3f5;
        /* Ambient flashes under the climb, then clears so the settled bar stays opaque. */
        &::after {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            opacity: 0;
            background: var(--gta-sticky-ambient);
            background-repeat: no-repeat;
            background-size: 100% 100%;
            transition: opacity .35s cubic-bezier(.33, .1, .25, 1) !important;
            animation: none;
        }
        &.is-scrolled::after {
            opacity: 0;
            animation: gta-sticky-ambient-flash 1.1s cubic-bezier(.33, .1, .25, 1) both;
        }
        /* Opaque sticky fill — climb via tall field, settle at exact 100% reference composition. */
        &::before {
            inset: 0;
            z-index: 1;
            opacity: 0;
            background: var(--gta-sticky-bar);
            background-repeat: no-repeat;
            background-size: 100% 220%;
            background-position: 0 0;
            backdrop-filter: none;
            -webkit-backdrop-filter: none;
            /* Unpin: leave the settled composition, then fade the bar. */
            transition:
                opacity .4s cubic-bezier(.33, .1, .25, 1) .5s,
                background-size 1s cubic-bezier(.33, .1, .25, 1) 0s,
                background-position 1s cubic-bezier(.33, .1, .25, 1) 0s !important;
            animation: none;
        }
        &.is-scrolled::before {
            opacity: 1;
            background-size: 100% 100%;
            background-position: 0 0;
            /* Pin: bar appears opaque, gradient compresses into the reference sunset. */
            transition:
                opacity .3s cubic-bezier(.33, .1, .25, 1) 0s,
                background-size 1.2s cubic-bezier(.33, .1, .25, 1) .08s,
                background-position 1.2s cubic-bezier(.33, .1, .25, 1) .08s !important;
        }
        &.active::after {
            opacity: 0;
            animation: none;
        }
        @media (prefers-reduced-motion: reduce) {
            &::before,
            &::after,
            &.is-scrolled::before,
            &.is-scrolled::after {
                transition: none !important;
                animation: none !important;
            }
            &::before {
                background-size: 100% 100%;
                background-position: 0 0;
            }
        }
    }
    & .dose-site-header.is-scrolled:not(.has-background):not([style*="background"]) {
        & .header_in .navbar a:not(.has-text-color):not([style*="color"]),
        & .header_in .dose-header-disclosure,
        & .header_in .hamburger { color: var(--gta-sticky-ink); }
        & .header_in .logo_main img { filter: none; opacity: 1; }
        & .header_in .hamburger .line { background: var(--gta-sticky-ink); }
        & .header_in :is(a,button,input):focus-visible,
        & .header_in .switch:has(input:focus-visible) { outline-color: var(--gta-sticky-ink); }
    }
    /* Progress spacing must animate on expansion as well as compaction. */
    & .dose-site-header .pacman { transition: padding-block 300ms cubic-bezier(.22,1,.36,1), margin-top 300ms cubic-bezier(.22,1,.36,1) !important; }
    & .dose-site-header .pacman .dot_mask { transition: transform 200ms ease-out, height 300ms cubic-bezier(.22,1,.36,1) !important; }
    & .dose-site-header .logo_main img { transition: transform 300ms cubic-bezier(.22,1,.36,1), filter 300ms cubic-bezier(.22,1,.36,1), opacity 300ms cubic-bezier(.22,1,.36,1) !important; }
    & .dose-site-header .header_in .navbar a { transition: color 300ms cubic-bezier(.22,1,.36,1); }
    @media (prefers-reduced-motion: reduce) {
        & .dose-site-header,
        & .dose-site-header:not(.has-background):not([style*="background"])::before,
        & .dose-site-header .pacman,
        & .dose-site-header .pacman .dot_mask,
        & .dose-site-header .logo_main img { transition: none !important; }
        & .dose-site-header:not(.has-background):not([style*="background"])::before,
        & .dose-site-header:not(.has-background):not([style*="background"])::after {
            animation: none !important;
            transition: none !important;
        }
        & .dose-site-header:not(.has-background):not([style*="background"])::before,
        & .dose-site-header.is-scrolled:not(.has-background):not([style*="background"])::before {
            background-size: 100% 100%;
            background-position: 0 0;
        }
    }
    & .dose-site-header.is-scrolled .header_in { padding-block: 8px; }
    & .dose-site-header.is-scrolled .pacman { padding-block: 0; margin-top: 0; }
    & .dose-site-header.is-scrolled .pacman .dot_mask { height: 24px; }
    & .dose-site-header.is-scrolled .pacman .dot_mask::before,
    & .dose-site-header.is-scrolled .pacman .dot_mask::after { top: -4px; mask-size: 100% 12px; }
    & .dose-site-header.is-scrolled .pacman_body::before { top: -8px; }

    /* Retain the measured Pac-Man wrappers and CSS progress variable; replace only their paint. */
    & .pacman { display: block; pointer-events: none; }
    /* Sticky: white track + birds; keep the prior subtle path bob/bank. */
    & .dose-site-header.is-scrolled .pacman { --gta-flight-height: 3px; --gta-flight-bank: 3deg; }
    & .dose-site-header.is-scrolled .pacman_body::before { background-size: 30px 25px; }
    & .pacman .pacman_in { overflow: visible; }
    & .pacman .dot_mask { background: none; height: 32px; }
    & .pacman .dot_mask::before {
        content: "";
        position: absolute;
        top: 0;
        inset-inline: 24px 32px;
        height: 32px;
        background: var(--gta-accent);
        mask: url("../../images/gta-vi-wind.svg") center / 100% 32px no-repeat;
        opacity: .35;
        transition: top 300ms cubic-bezier(.22,1,.36,1), mask-size 300ms cubic-bezier(.22,1,.36,1), background-color 300ms cubic-bezier(.22,1,.36,1), opacity 300ms cubic-bezier(.22,1,.36,1);
    }
    & .pacman .dot_mask::after {
        --gta-wind-unread: max(0px, calc(100% - var(--dose-pacman-progress, 0px)));
        content: "";
        position: absolute;
        top: 0;
        inset-inline: 24px 32px;
        height: 32px;
        background: linear-gradient(90deg, #5a2d7a, #7c3aed 55%, #c9b3ff);
        mask: url("../../images/gta-vi-wind.svg") center / 100% 32px no-repeat;
        filter: drop-shadow(0 1px 3px #7c3aed66);
        clip-path: inset(-8px var(--gta-wind-unread) -8px -8px);
        transition: top 300ms cubic-bezier(.22,1,.36,1), mask-size 300ms cubic-bezier(.22,1,.36,1), background 300ms cubic-bezier(.22,1,.36,1), filter 300ms cubic-bezier(.22,1,.36,1);
    }
    & .dose-site-header.is-scrolled .pacman .dot_mask::before {
        background: #ffffff59;
        opacity: 1;
    }
    & .dose-site-header.is-scrolled .pacman .dot_mask::after {
        background: #fff;
        filter: drop-shadow(0 0 4px #ffffffa6);
    }
    & .dose-site-header .pacman_body {
        width: 48px;
        height: 32px;
        font-size: 20px;
        background: none;
        z-index: 1;
        transition: transform 200ms ease-out;
    }
    & .pacman_body::before {
        --gta-flight-phase: calc(var(--dose-reading-progress, 0) * 18.849556);
        content: "";
        position: absolute;
        top: -4px;
        left: 0;
        width: 48px;
        height: 40px;
        background: url("../../images/gta-vi-reader-birds.svg#glide") center / contain no-repeat;
        filter: brightness(0) invert(1);
        transform: translateY(calc(sin(var(--gta-flight-phase)) * var(--gta-flight-height, 8px))) rotate(calc(cos(var(--gta-flight-phase)) * var(--gta-flight-bank, 6deg)));
        background-size: 48px 40px;
        transition: transform 200ms cubic-bezier(.22,1,.36,1), top 300ms cubic-bezier(.22,1,.36,1), background-size 300ms cubic-bezier(.22,1,.36,1), filter 300ms cubic-bezier(.22,1,.36,1);
    }
    @media (prefers-reduced-motion: reduce) {
        & .pacman .dot_mask::before,
        & .pacman .dot_mask::after,
        & .pacman_body::before { transition: none !important; }
    }
    & .pacman_body :is(.pacman_top,.pacman_bottom) { display: none; }
    & .pacman.chomping .pacman_body { filter: drop-shadow(0 2px 6px #7c3aeda6); }
    & .pacman.chomping .pacman_body::before { background-image: url("../../images/gta-vi-reader-birds.svg#flying"); }
    & .dose-site-header.is-scrolled:not(.has-background):not([style*="background"]) .pacman_body::before {
        filter: brightness(0) invert(1) drop-shadow(0 1px 3px #ffffff80);
    }
    & .dose-site-header.is-scrolled .pacman.chomping .pacman_body {
        filter: drop-shadow(0 2px 6px #ffffffa6);
    }

    & .head_detail .txt h1:not(.has-text-color):not([style*="color"]) { color: var(--gta-text); }
    & .head_detail .txt { --gta-text: #fff3f5; --gta-accent: #e8d5ff; --gta-muted: #d2bdd9; }
    & .head_detail .box_info :is(.author,.category,.category a) { color: var(--gta-accent); }
    & .head_detail .box_info .timepost { color: var(--gta-muted); }
    & .wp-block-post-content,
    & .is-root-container,
    &.wp-editor,
    &.editor-styles-wrapper {
        --dose-article-text: var(--gta-text);
        --dose-article-prose-text: var(--gta-text);
        --dose-article-heading: var(--gta-text);
        --dose-article-link: var(--gta-link);
    }
    /* Quote box: purple fill + black text for readability in both themes. */
    & .wp-block-post-content :is(blockquote, .wp-block-quote, .wp-block-pullquote, .detail-blockquote):not(.has-text-color):not([style*="color"]),
    & .wp-block-post-content :is(blockquote, .wp-block-quote, .wp-block-pullquote, .detail-blockquote):not(.has-text-color):not([style*="color"]) :is(p, cite) {
        color: #15131b;
    }
    & .wp-block-post-content :is(blockquote, .wp-block-quote, .wp-block-pullquote, .detail-blockquote):not(.has-background):not([style*="background"]) {
        background: #d5b9ff;
        border: 0;
        border-inline-start: 0;
        border-radius: 0;
        padding: 24px;
        margin-block: 32px;
    }
    & .wp-block-post-content h2:not(.has-background):not([style*="background"]) { background: linear-gradient(90deg, var(--gta-purple), var(--gta-pink), var(--gta-orange)) left bottom / 48px 2px no-repeat; padding-block-end: 8px; }

    /* Socials: colored glyph + circle outline, transparent fill. SHARE label/line match pink. */
    & :is(.dose-article-share,.dose-sticky-actions) {
        --dose-share-foreground: var(--gta-pink);
        --dose-share-background: transparent;
        --dose-share-accent: var(--gta-accent);
    }
    & .dose-article-share :is(a,button),
    & .dose-sticky-actions .dose-article-share :is(a,button) {
        background: transparent;
        color: var(--gta-pink) !important;
        border: 2px solid var(--gta-pink);
        border-radius: 999px;
        box-shadow: none;
    }
    & .dose-article-share :is(a,button):is(:hover,:focus-visible),
    & .dose-sticky-actions .dose-article-share :is(a,button):is(:hover,:focus-visible) {
        background: transparent;
        color: var(--gta-button-pink) !important;
        border-color: var(--gta-button-pink);
        filter: none;
    }
    & .share-set.vertical .dose-article-share,
    & .tagandshare .shareside .dose-article-share { gap: 8px; }
    & .dose-article-share svg,
    & .tagandshare .shareside .dose-article-share svg { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 0; }
    & .dose-share-compact .dose-article-share .dose-native-share {
        background: transparent !important;
        color: var(--gta-pink) !important;
        border: 2px solid var(--gta-pink);
    }
    & .dose-share-compact .dose-article-share .dose-native-share:is(:hover,:focus-visible) {
        color: var(--gta-button-pink) !important;
        border-color: var(--gta-button-pink);
    }
    /* Header socials: default Dose small white glyphs, no circle chrome. */
    & .dose-site-header .social a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        height: 20px;
        padding: 0;
        background: transparent !important;
        color: #fff !important;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        box-sizing: content-box;
    }
    & .dose-site-header .social img {
        display: block;
        width: auto;
        height: 20px;
        filter: brightness(0) invert(1);
    }
    & .dose-site-header .social a:is(:hover,:focus-visible) {
        background: transparent !important;
        filter: none;
        opacity: 1;
    }
    & .dose-site-header .social a:is(:hover,:focus-visible) img {
        filter: brightness(0) saturate(100%) invert(78%) sepia(22%) saturate(900%) hue-rotate(300deg) brightness(104%) contrast(98%);
    }
    /* Footer socials: white glyphs, no circle border (like header). */
    & .wp-block-dose-site-footer .social a {
        background: transparent !important;
        color: #fff !important;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }
    & .wp-block-dose-site-footer .social img { filter: brightness(0) invert(1); }
    & .wp-block-dose-site-footer .social a:is(:hover,:focus-visible) {
        background: transparent !important;
        filter: none;
    }
    & .wp-block-dose-site-footer .social a:is(:hover,:focus-visible) img {
        filter: brightness(0) saturate(100%) invert(78%) sepia(22%) saturate(900%) hue-rotate(300deg) brightness(104%) contrast(98%);
    }
    & .wp-block-dose-site-footer .social a { width: 44px; height: 44px; }
    /* Drawer socials: pink outline circles (match share). */
    & .menu_expand .bottom .social a {
        background: transparent !important;
        color: var(--gta-pink) !important;
        border: 2px solid var(--gta-pink);
        border-radius: 999px;
        box-shadow: none;
        box-sizing: border-box;
    }
    & .menu_expand .bottom .social a:is(:hover,:focus-visible) {
        background: transparent !important;
        border-color: var(--gta-button-pink);
        filter: none;
    }
    & .menu_expand .bottom .social img {
        filter: brightness(0) saturate(100%) invert(55%) sepia(48%) saturate(1200%) hue-rotate(300deg) brightness(101%) contrast(92%);
    }
    & .menu_expand .bottom .social a:is(:hover,:focus-visible) img {
        filter: brightness(0) saturate(100%) invert(78%) sepia(22%) saturate(900%) hue-rotate(300deg) brightness(104%) contrast(98%);
    }
    & .head_detail .view-label,
    & .popular .view-label { background-image: url("../../images/view-label-gta-vi.svg"); color: #fff; }
    & .dose-sticky-actions :is(.dose-core-bookmark,.dose-core-vote__button,.up-to-list-d),
    & :is(.up-to-list-d,.up-to-list-m) { color: var(--gta-accent); }
    /* Beat shared dark-mode heading !important that paints SHARE white. */
    & :is(.share-set,.shareside) :is(h3,h6) { color: var(--gta-pink) !important; }
    & .dose-sticky-actions :is(.dose-core-bookmark,.dose-core-vote__button) { border-radius: 999px; background: var(--gta-button-pink); color: var(--gta-button-ink); }
    & .dose-sticky-actions :is(.dose-core-bookmark,.dose-core-vote__button):not(:disabled):is(:hover,:focus-visible,[aria-pressed="true"],.is-bookmarked) { background: var(--gta-button-lime); }
    & .dose-share-set-composition:not(.is-header-attached) { background: transparent; }
    & .dose-share-set-composition .dose-native-share { color: var(--gta-pink); }
    & .dose-share-set-composition .dose-native-share::after { background: var(--gta-share-line); }
    & :is(.tagandshare,.dose-article-action-row) .line { background: var(--gta-share-line); }
    & .tagside { border-color: var(--gta-border); }
    /* Tags: pink Vice City links (beat shared dark-mode white). */
    & .tagandshare .tagside a {
        color: var(--gta-pink) !important;
        text-decoration-color: var(--gta-pink);
    }
    & .tagandshare .tagside a:is(:hover,:focus-visible,:active) {
        color: var(--gta-button-pink) !important;
        text-decoration-color: var(--gta-button-pink);
    }
    & .tagside a::after { background: currentColor; }
    /* Lone Related column when Editorial is omitted (stale caches / custom overrides). */
    & .content_grid > .col-content:only-child {
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
        padding-right: 0;
    }
    /* Compact share-row Google News: transparent like outline socials; pink readable label. */
    @media (width < 1200px) {
        & .dose-share-set-composition :is(a.dose-google-source, .dose-google-source > .wp-block-button__link) {
            background: transparent !important;
            color: var(--gta-pink) !important;
        }
        & .dose-share-set-composition :is(a.dose-google-source, .dose-google-source > .wp-block-button__link):is(:hover,:focus-visible) {
            background: transparent !important;
            color: var(--gta-button-pink) !important;
        }
    }

    & :is(.news,.editorial,.popular) :is(h2,h3,.wp-block-post-title):not(.has-text-color):not([style*="color"]) { color: var(--gta-text); }
    & :is(.news,.editorial,.popular) .txthead h2:not(.has-text-color):not([style*="color"]) { color: var(--gta-accent); background: none; -webkit-text-fill-color: currentColor; }
    & :is(.news,.editorial,.popular) .box_info :is(.author,.category,.category a) { color: var(--gta-accent); }
    & :is(.news,.editorial,.popular) .box_info .timepost { color: var(--gta-muted); }
    & :is(.news,.editorial,.popular) :is(p,.wp-block-post-excerpt) { color: var(--gta-muted); }
    & .editorial.revamp:not(.has-background):not([style*="background"]) {
        background: radial-gradient(ellipse at top left, #ed6ca826, transparent 65%),
            radial-gradient(ellipse at bottom right, #ff9b5726, transparent 65%),
            linear-gradient(155deg, #7c3aed14, transparent 65%), var(--gta-surface);
    }
    & :is(.news,.editorial,.popular) a:is(:hover,:focus-visible) :is(h2,h3) { color: var(--gta-pink); }
    /* Beat shared dark-mode blue !important on Editorial rows and Related titles. */
    & .editorial .group .item:is(:hover, :focus-within) :is(.num, .txt p, .txt a):not(.has-text-color):not([style*="color"]),
    & .news .item_list a:is(:hover, :focus-visible) :is(h2, h3):not(.has-text-color):not([style*="color"]) {
        color: var(--gta-pink) !important;
    }
    & .popular .num { color: var(--gta-accent); }
    & .control_popular :is(.swiper-button-prev,.swiper-button-next) { color: var(--gta-accent); border-color: var(--gta-border); }

    & :is(.dose-google-source-card,.wrapper_inner_content > .dose-article-panel,.authorsection):not(.has-background):not([style*="background"]) { background: var(--gta-surface); border-color: var(--gta-border); color: var(--gta-text); }
    & .dose-google-source-card__copy div > strong { color: var(--gta-text) !important; }
    & .dose-google-source-card__copy div > span,
    & .authorsection p { color: var(--gta-muted); }
    /* Legacy dark author panels paint this token with an important declaration. */
    & .authorsection:not(.has-background):not([style*="background"]) { --color-bg-gray: var(--gta-surface); }
    & .authorsection .author-img h3:not(.has-text-color):not([style*="color"]),
    & .authorsection .box-author a.btn_readmore:not(.has-text-color):not([style*="color"]) { color: var(--gta-accent) !important; }
    & .authorsection .box-author a.btn_readmore:not(.has-text-color):not([style*="color"]):is(:hover,:focus-visible) { color: var(--gta-link) !important; text-decoration: underline; text-underline-offset: 4px; }
    & :is(.dose-google-source,.dose-google-source-card__action):not(.wp-block-button),
    & .dose-google-source > .wp-block-button__link,
    & .dose-google-source-card__action > .wp-block-button__link:not(.has-text-color):not([style*="color"]),
    & .dose-comments input[type=submit] { background: var(--gta-button-pink); color: var(--gta-button-ink) !important; border-color: transparent; border-radius: 999px; text-transform: none; }
    & :is(.dose-google-source,.dose-google-source-card__action):not(.wp-block-button):is(:hover,:focus-visible),
    & .dose-google-source > .wp-block-button__link:is(:hover,:focus-visible),
    & .dose-google-source-card__action > .wp-block-button__link:not(.has-text-color):not([style*="color"]):is(:hover,:focus-visible),
    & .dose-comments input[type=submit]:hover { background: var(--gta-button-lime); }
    & .dose-comments { --dose-comment-surface: var(--gta-surface); color: var(--gta-text); }
    & .dose-comments__body { background: var(--gta-bg); }
    & .dose-comments a,
    & .authorsection .btn_readmore:is(:hover,:focus-visible) { color: var(--gta-accent); }
    & .authorsection .box-author a.btn_readmore:not(.has-text-color):not([style*="color"]) { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 48px; padding: 8px 24px; border: 0; border-radius: 999px; color: var(--gta-button-ink) !important; background: var(--gta-button-pink); text-transform: none; text-decoration: none; }
    & .authorsection .box-author a.btn_readmore:not(.has-text-color):not([style*="color"]):is(:hover,:focus-visible) { color: var(--gta-button-ink) !important; background: var(--gta-button-lime); }
    & .authorsection .btn_readmore::before { content: none; }
    & .authorsection .btn_readmore::after { content: ""; display: block; position: static; flex: 0 0 24px; width: 24px; height: 24px; margin: 0; background: currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h16m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transform: none; }
    & .news .btn_full:not(.has-background):not([style*="background"]) { display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 48px; height: auto; padding: 8px 24px; border: 0; border-radius: 999px; background: var(--gta-button-pink); color: var(--gta-button-ink) !important; line-height: 1.5; text-decoration: none; }
    & .news .btn_full:not(.has-background):not([style*="background"]):is(:hover,:focus-visible) { background: var(--gta-button-lime); color: var(--gta-button-ink) !important; }
    & .backtotop .wp-block-button__link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 16px;
        min-height: 56px;
        padding: 8px 24px 8px 8px;
        top: 0;
        border: 0;
        font-weight: 700;
        text-transform: none;
        text-decoration: none;
        &:not([style*="border-radius"]) { border-radius: 999px; }
        &:not(.has-text-color):not([style*="color"]) { color: #321344 !important; }
        &:not(.has-background):not([style*="background"]) {
            background: linear-gradient(115deg, #d5b9ff, #ffb1cb 60%, #ffc18d);
            box-shadow: 0 8px 24px #7436a726;
        }
        &::before {
            content: "";
            display: block;
            position: static;
            flex: 0 0 40px;
            width: 40px;
            height: 40px;
            border: 0;
            background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%23321344'/%3E%3Cpath d='m13 19 7-7 7 7m-7-7v16' fill='none' stroke='%23ffc18d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: none;
            transform: none;
            filter: none;
            transition: transform 240ms var(--gta-motion-spring);
        }
        /* Override the shared dark-mode filter without bleaching the two-color badge. */
        &:not(.has-text-color)::before { filter: none; }
        &:focus-visible { outline-color: #a96ad2; }
        &:focus-visible::before { transform: translateY(-4px); }
        @media (hover: hover) and (pointer: fine) {
            &:hover::before { transform: translateY(-4px); }
        }
        &:is(:active, [data-gta-pressed])::before { transform: translateY(2px) scale(.9); }
        &.is-activating::before { animation: dose-top-launch 420ms ease-out; }
        @media (prefers-reduced-motion: reduce) {
            &::before { animation: none !important; transition: none; transform: none !important; }
        }
    }
    & footer.revamp:not(.has-background):not([style*="background"]) { background: var(--gta-footer-background, var(--gta-header)); color: #ffc69a; }
    & footer.revamp a { color: #ffc69a; }
    & .control_popular :is(.swiper-button-prev,.swiper-button-next) { background: var(--gta-button-peach); color: var(--gta-button-ink); border: 0; border-radius: 999px; }
}
@media (1200px <= width < 1400px) {
    .dose-gta-vi-single .dose-site-header .header_in { gap: 16px; }
}
/* M3 Expressive feedback stays on controls, with no changes to reading/card geometry. */
:is(.dose-gta-vi-single.single-revamp:is(#article-top, #tinymce, .editor-styles-wrapper, .editor-styles-wrapper *), .single-gta-vi .dose-contents-dialog) {
    --gta-motion-spring: cubic-bezier(.34, 1.4, .64, 1);

    @supports (transition-timing-function: linear(0, 1)) {
        --gta-motion-spring: linear(0, .24 8%, .67 18%, .94 29%, 1.045 41%, 1.025 58%, .995 76%, 1);
    }

    & :is(button, [role="button"], input[type="submit"], input[type="button"], summary,
        .wp-block-button__link, .btn_support, .btn_full, .btn_readmore,
        .dose-article-share a, .social a, .dose-google-source:not(.wp-block-button),
        .dose-google-source-card__action:not(.wp-block-button),
        .swiper-button-prev, .swiper-button-next, .switch):not(:disabled, [aria-disabled="true"], [aria-busy="true"], .swiper-button-disabled) {
        --gta-control-transition: scale 360ms var(--gta-motion-spring), translate 360ms var(--gta-motion-spring),
            transform 360ms var(--gta-motion-spring), border-radius 180ms ease-out,
            background-color 150ms ease-out, color 150ms ease-out, filter 150ms ease-out;
        /* Shared controls pin color-only transitions; this template also transitions movement. */
        transition: var(--gta-control-transition) !important;

        & :is(svg, img) { transition: scale 360ms var(--gta-motion-spring), transform 360ms var(--gta-motion-spring) !important; }

        @media (hover: hover) and (pointer: fine) {
            &:hover {
                translate: 0 -2px;
                scale: 1.03;

                & :is(svg, img) { scale: 1.06; }
            }
        }

        &:focus-visible { scale: 1.03; }

        &:is(:active, [data-gta-pressed]) {
            translate: 0 0;
            scale: .94 .90;
            transition-duration: 90ms !important;
            transition-timing-function: ease-out !important;

            /* Morph the campaign pills; authored radii and square controls keep their shape. */
            &:is(.btn_support, .btn_full, .btn_readmore, .dose-native-share, .dose-copy-link,
                .dose-article-share a, .social a, .dose-core-bookmark, .dose-core-vote__button,
                .dose-google-source, .dose-google-source-card__action:not(.wp-block-button),
                .swiper-button-prev, .swiper-button-next):not([style*="border-radius"]) { border-radius: 12px; }

            & :is(svg, img) { scale: .96; transition-duration: 90ms !important; }
        }

        @media (prefers-reduced-motion: reduce) {
            &, &:is(:hover, :focus-visible, :active, [data-gta-pressed]) {
                scale: none;
                translate: none;
                --gta-control-transition: background-color 100ms ease-out, color 100ms ease-out, filter 100ms ease-out;
                transition: var(--gta-control-transition) !important;

                & :is(svg, img) { scale: none; transition: none !important; }
            }
        }
    }
}
/* One city panorama behind the existing, editable shared footer. */
.dose-gta-vi-single .dose-gta-vi-city {
    --gta-footer-background: transparent;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: clamp(560px, 40vw, 760px);
    margin-block: 0;
    background: #171025;
    color: #fff3f5;
}
.dose-gta-vi-city__scene {
    position: absolute;
    inset: -48px -32px;
    z-index: -1;
    pointer-events: none;
    transform: translate3d(0, var(--gta-city-offset, 0px), 0);
}
.dose-gta-vi-city__scene > picture,
.dose-gta-vi-city__scene > picture img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.dose-gta-vi-city__light {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 20% 40%, #ffd3a92e, transparent 60%);
    animation: gta-city-light 37s ease-in-out infinite alternate paused;
    pointer-events: none;
}
.dose-gta-vi-city.is-active .dose-gta-vi-city__light { animation-play-state: running; }
@keyframes gta-city-light { from { opacity: .2; } to { opacity: .6; } }
.dose-gta-vi-city__palms {
    position: absolute;
    inset: auto auto -8% -4%;
    width: 36%;
    height: 108%;
    object-fit: contain;
    object-position: left bottom;
    transform-origin: 28% 100%;
    animation: gta-city-wind 7s ease-in-out infinite alternate paused;
}
/* Lazy-load fades belong to the image; the wrapper owns the continuous sway. */
.dose-gta-vi-city__palms > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left bottom;
}
.dose-gta-vi-city__bird {
    position: absolute;
    top: 16%;
    left: -64px;
    width: 48px;
    height: 24px;
    animation: gta-city-flight 71s linear -30s infinite paused;
}
.dose-gta-vi-city__bird > span {
    display: block;
    width: 48px;
    height: 24px;
    background: url("../../images/gta-vi-footer-birds.svg") 0 0 / 96px 24px no-repeat;
    animation: gta-city-wings 3.7s steps(1, end) infinite paused;
}
.dose-gta-vi-city__bird:nth-of-type(2) { top: 12%; scale: .65; animation-duration: 89s; animation-delay: -44s; }
.dose-gta-vi-city__bird:nth-of-type(3) { top: 20%; scale: .5; animation-duration: 107s; animation-delay: -61s; }
.dose-gta-vi-city__traffic { position: absolute; inset: 84% 0 auto; height: 16px; overflow: hidden; }
.dose-gta-vi-city__traffic > span {
    position: absolute;
    left: -32px;
    width: 12px;
    height: 3px;
    background: #ffe0b9;
    border-left: 3px solid #ed91b5;
    animation: gta-city-traffic 43s linear -9s infinite paused;
}
.dose-gta-vi-city__traffic > span:nth-child(2) { top: 6px; width: 8px; background: #ed91b5; animation-duration: 59s; animation-delay: -38s; animation-direction: reverse; }
.dose-gta-vi-city.is-active :is(.dose-gta-vi-city__palms, .dose-gta-vi-city__bird, .dose-gta-vi-city__bird > span, .dose-gta-vi-city__traffic > span) { animation-play-state: running; }
@keyframes gta-city-traffic {
    0% { transform: translateX(0); opacity: 0; }
    8%, 92% { opacity: .65; }
    100% { transform: translateX(calc(100vw + 64px)); opacity: 0; }
}
@keyframes gta-city-wind {
    from { transform: skewX(-2deg) rotate(-1deg); }
    to { transform: skewX(2deg) rotate(1deg); }
}
@keyframes gta-city-flight {
    0% { transform: translate3d(0, 16px, 0); opacity: 0; }
    8%, 92% { opacity: .8; }
    100% { transform: translate3d(calc(100vw + 128px), -16px, 0); opacity: 0; }
}
@keyframes gta-city-wings { 0%, 35%, 100% { background-position: 0 0; } 15% { background-position: -48px 0; } }
.dose-gta-vi-city::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(180deg, #20183000 18%, #20183088 38%, #171025eb 66%, #100b20fa);
}
.dose-gta-vi-city > .wp-block-template-part { margin-block: 0; }
/* Sunset paint follows the existing footer geometry and authored typography. */
.dose-gta-vi-single.single-revamp:is(#article-top, .editor-styles-wrapper, .editor-styles-wrapper *) .dose-gta-vi-city {
    --gta-footer-ink: #ffc69a;
    --gta-footer-logo: #fff;

    & footer.revamp,
    & footer.revamp :is(p, h2, h3, h4, h5, h6, span, li, small),
    & footer.revamp a:not(.has-text-color):not([style*="color"]),
    & footer .menu_footer a:not(.has-text-color):not([style*="color"]),
    & .contact_footer :is(h2, p):not(.has-text-color):not([style*="color"]),
    & .copyright p:not(.has-text-color):not([style*="color"]) { color: var(--gta-footer-ink); }
    & footer .menu_footer a:is(:hover, :focus-visible),
    & footer.revamp a:not(.has-text-color):not([style*="color"]):is(:hover, :focus-visible) {
        color: #ffe0b9;
        text-decoration: underline;
        text-underline-offset: 8px;
    }
    & .logo_footer::before,
    & .logo_footer::after {
        background: var(--gta-footer-logo);
        opacity: 1;
        box-shadow: 0 0 8px #ffffff59;
    }
    /* Match the SVG strokes; a 1px underlap closes fractional-pixel mask seams. */
    & .logo_footer::before { left: calc(100% - 1px); top: 19.9666%; height: 6.8496%; }
    & .logo_footer::after { right: calc(100% - 1px); top: 73.2321%; height: 6.8763%; }
    & .logo_footer a,
    & a.logo_footer > img { filter: drop-shadow(0 0 6px #ffffff59); }

    @supports (mask-image: url("../../images/logo_main-new.svg")) {
        & .logo_footer a:has(> img[src*="/logo_main-new.svg"]) {
            position: relative;

            & > img { opacity: 0; }
            &::before {
                content: "";
                position: absolute;
                inset: 0;
                width: 100%;
                height: 100%;
                background: var(--gta-footer-logo);
                mask: url("../../images/logo_main-new.svg") center / contain no-repeat;
                pointer-events: none;
            }
        }
    }
}
/* The sign powers on once in view, then its two strokes carry the light outward. */
@media (prefers-reduced-motion: no-preference) {
    .dose-gta-vi-single .dose-gta-vi-city .logo_footer.is-neon-lit {
        & a::before,
        &:is(a) > img {
            animation: gta-footer-neon 360ms ease-out both;
            animation-play-state: paused;
        }
        &::before,
        &::after {
            animation: gta-footer-line 480ms cubic-bezier(.16, 1, .3, 1) 60ms both;
            animation-play-state: paused;
        }
        &::before { transform-origin: left center; }
        &::after { transform-origin: right center; }
    }
    .dose-gta-vi-single .dose-gta-vi-city.is-active .logo_footer.is-neon-lit {
        & a::before,
        &:is(a) > img,
        &::before,
        &::after { animation-play-state: running; }
    }
}
@keyframes gta-footer-neon {
    from { opacity: .3; }
    to { opacity: 1; }
}
@keyframes gta-footer-line {
    from { transform: scaleX(0); opacity: .3; }
    to { transform: scaleX(1); opacity: 1; }
}
/* Authoring keeps the scene still; Core's footer controls stay in charge. */
.editor-styles-wrapper :is(.dose-gta-vi-city__palms, .dose-gta-vi-city__bird, .dose-gta-vi-city__bird > span, .dose-gta-vi-city__traffic > span) { animation: none; }
@media (max-width: 767px) {
    .dose-gta-vi-single .dose-gta-vi-city { min-height: 720px; }
    .dose-gta-vi-city__scene > picture img { object-position: center top; }
    .dose-gta-vi-city__palms { width: 64%; height: 88%; left: -16%; }
}
@media (prefers-reduced-motion: reduce) {
    .dose-gta-vi-city__scene { transform: none; }
    .dose-gta-vi-city__light,
    .dose-gta-vi-city__palms,
    .dose-gta-vi-city__bird,
    .dose-gta-vi-city__bird > span,
    .dose-gta-vi-city__traffic > span { animation: none !important; }
}
/* Animate paint separately from the scroll controller's progress transforms. */
@media (prefers-reduced-motion: no-preference) {
    .dose-gta-vi-single .pacman_body::before {
        animation: gta-reader-arrive 700ms cubic-bezier(.16, 1, .3, 1) 100ms backwards;
    }
    .dose-gta-vi-single .pacman .dot_mask::before,
    .dose-gta-vi-single .pacman .dot_mask::after {
        animation: gta-wind-arrive 1400ms cubic-bezier(.25, .1, .25, 1) 200ms backwards;
    }
}
@keyframes gta-sticky-ambient-flash {
    0% { opacity: 0; }
    28% { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes gta-reader-arrive {
    from { opacity: 0; translate: -48px 8px; }
    to { opacity: 1; translate: 0 0; }
}
@keyframes gta-wind-arrive {
    from { clip-path: inset(-8px 100% -8px -8px); }
    to { clip-path: inset(-8px var(--gta-wind-unread, -8px) -8px -8px); }
}
/* The editable header omits the frontend-only progress markup. */
.editor-styles-wrapper .dose-gta-vi-single .dose-site-header::after {
    inset: auto 0 -32px;
    height: 32px;
    opacity: 1;
    background: url("../../images/gta-vi-reader-birds.svg#glide") 16px center / 40px 32px no-repeat;
}
/* Dialogs live in the native top layer, outside the article wrapper. */
.single-gta-vi .dose-contents-dialog {
    --contents-bg: #fffaf6;
    --contents-text: #291a36;
    --contents-muted: #65516e;
    --contents-border: #d9c8df;
    --contents-accent: #7436a7;
    --contents-active: #f6eef8;
}
[data-theme="dark"] .single-gta-vi .dose-contents-dialog {
    --contents-bg: #261b31;
    --contents-text: #fff3f5;
    --contents-muted: #d2bdd9;
    --contents-border: #574160;
    --contents-accent: #d5b9ff;
    --contents-active: #3d284c;
}
@media (prefers-reduced-motion: reduce) {
    .dose-gta-vi-single .pacman .pacman_body { transition: none !important; filter: none; }
    .dose-gta-vi-single .pacman.chomping .pacman_body::before { background-image: url("../../images/gta-vi-reader-birds.svg#glide") !important; }
    .dose-gta-vi-single .pacman .pacman_body::before { transform: translateY(calc(sin(var(--gta-flight-phase)) * var(--gta-flight-height, 8px))) !important; transition: none !important; }
    .dose-gta-vi-single .pacman .dot_mask::after { transition: none; }
}
