/* ==========================================================================
   vt.css — the cross-document View Transition OPT-IN, and nothing else.

   Why this is its own file, first in the <head>, instead of a line in
   site.css or an inline <style>:

   1. Chrome resolves the INCOMING document's @view-transition at its first
      rendering opportunity and does NOT reliably wait for external
      stylesheets before deciding. With the opt-in living only in site.css —
      the second of three <link>s, queued behind a font preload and racing
      three scripts — it regularly arrived too late: the outgoing page
      committed to the transition (pageswap.viewTransition non-null on every
      run) and the destination then declined it (pagereveal.viewTransition
      null), abandoning the handover after the old page had been snapshotted.
      Measured portal -> public: 0/6 navigations transitioned.

   2. An inline <style> fixes the race but CANNOT SHIP. The production CSP is
      `style-src 'self'` with no 'unsafe-inline' and no hash, so the browser
      would refuse to apply it and the opt-in would silently vanish in
      production while testing perfectly against the local dev proxy — the
      worst possible failure shape.

   So: a real stylesheet (CSP-clean, 'self'), holding one rule, requested
   before anything else in the document. It is first in the queue and a few
   dozen bytes, which is as close to "already there" as an external
   stylesheet gets.

   The same rule is deliberately ALSO left in site.css and portal.css. It
   costs nothing, it keeps the transition documented beside the animations it
   drives, and it is a second chance if this file is ever slow.

   Loaded by public/index.html, portal/index.html and public/privacy.html.
   ========================================================================== */
@view-transition { navigation: auto; }
