/* ═══════════════════════════════════════════════════════════════
   THEME TRANSITION

   A plain cross-fade between the two themes — the browser's own root
   transition, retimed to match the site's motion tokens. Nothing is
   scripted; script/main.js just calls startViewTransition().

   LIVES HERE ON PURPOSE. style/main.css is per-site and NOT symlinked,
   so anything put there reaches grxnd3r.com only. component/ is a
   whole-dir symlink, so both sites share this one copy.
   ═══════════════════════════════════════════════════════════════ */

::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: 300ms;
    animation-timing-function: var(--ease-smooth);
}

/* toggleTheme() skips the transition entirely under reduced motion; this only
   backstops any view transition started elsewhere. */
@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root) {
        animation-duration: 0.01ms !important;
    }
}
