/* The few rules the website sets inline, kept here so the pages carry no inline styles (the site's Content Security
   Policy allows stylesheets from this site only). Everything else is the website's own stylesheet. */
.xr-logo { --logo-h: 46px; }
.xr-ratio { aspect-ratio: 3 / 2; }

/* The header's menus (site/chrome.ts). The menu triggers sit in the header's row as if the wrapper the worker writes
   them into were not there; every menu, and every entry in a menu, shares one cell of a grid, so the panel is the
   height of the tallest whichever is shown, as the website measures it to be; and the up-right arrow sits on the line
   of a link in running text. */
.xr-contents { display: contents; }
.xr-stack { display: grid; }
.xr-stack > * { grid-area: 1 / 1; }
.xr-inline-arrow { display: inline; margin-left: 0.125rem; vertical-align: -0.125em; }
/* Two app cards share a row at the width the website gives a pair of cards (Tailwind's max-w-5xl, which the website's
   stylesheet does not carry because none of its pages draws a pair). */
.max-w-5xl { max-width: 64rem; }
/* The footer's links to the website carry the up-right arrow, which made its row of columns wider than a 1280px window
   at the website's 2.5rem gaps (by 8px): from 1280px the gaps are 2rem here. */
@media (min-width: 1280px) { .xr-footer-columns { column-gap: 2rem; } }
/* The reading progress bar along the top of every page (the website's ScrollProgress, Q729), above the header; its
   width is the share of the page scrolled, set by site/public/site.js as it is on the website. */
.xr-progress { position: fixed; top: 0; left: 0; right: 0; height: 0.25rem; z-index: 60; transform-origin: left; transform: scaleX(0); }
