html {
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

@media (prefers-reduced-motion: no-preference) {
    body {
        animation: tgc-page-enter 140ms cubic-bezier(0.2, 0, 0, 1) both;
        transition:
            opacity 80ms ease-out,
            transform 80ms ease-out;
    }

    html.tgc-page-leaving body {
        opacity: 0.92;
        transform: translateY(-1px);
    }
}

@keyframes tgc-page-enter {
    from {
        opacity: 0;
        transform: translateY(2px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media print, (prefers-reduced-motion: reduce) {
    body {
        animation: none !important;
        transition: none !important;
    }
}
