/* Self-hosted Font Awesome 6.6.0 + Academicons subsets.
 *
 * These pages use 10 glyphs between them — 6 in the markup and 4 injected by JS:
 * three by pdf-modal.js for the viewer toolbar, plus fa-check by script.js when the
 * BibTeX copy button confirms. Shipping the full libraries cost two
 * render-blocking third-party stylesheets (109 KB) plus 341 KB of webfonts, and
 * a 1.2 MB fontawesome.all.min.js that duplicated the CSS it was loaded
 * alongside and did nothing but re-scan the DOM to swap <i> for <svg>.
 *
 * Regenerate with tools/build-webfonts.sh after adding or removing an icon.
 *
 * Font Awesome Free 6.6.0 - CC BY 4.0 (fonts) / MIT (code) - fontawesome.com
 * Academicons 1.9.4 - SIL OFL 1.1 - jpswalsh.github.io/academicons
 */

@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("../webfonts/fa-solid-900.woff2?v=2026.08.01.23") format("woff2");
}

@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../webfonts/fa-brands-400.woff2?v=2026.08.01.23") format("woff2");
}

@font-face {
  font-family: "academicons";
  font-style: normal;
  font-weight: normal;
  font-display: block;
  src: url("../webfonts/academicons.woff2?v=2026.08.01.23") format("woff2");
}

/* Shared glyph rendering. `fa` is included because the markup mixes the v4
   shorthand (`fa fa-copy`) with the v6 style classes (`fas`, `fab`). */
.fa,
.fas,
.fa-solid,
.fab,
.fa-brands,
.ai {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: var(--fa-display, inline-block);
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto;
}

.fa,
.fas,
.fa-solid {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}

.fab,
.fa-brands {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}

.ai {
  font-family: "academicons";
  font-weight: normal;
}

.fa-copy::before {
  content: "\f0c5";
}

.fa-file-pdf::before {
  content: "\f1c1";
}

.fa-image::before {
  content: "\f03e";
}

.fa-check::before {
  content: "\f00c";
}

.fa-github::before {
  content: "\f09b";
}

.fa-youtube::before {
  content: "\f167";
}

.ai-arxiv::before {
  content: "\e974";
}

/* Colophon source link. */
.fa-code::before {
  content: "\f121";
}

/* Theme toggle. Both glyphs are always present in the markup — the pair slides past
   each other in a clipped window — so both are always needed regardless of theme. */
.fa-sun::before {
  content: "\f185";
}

.fa-moon::before {
  content: "\f186";
}

.fa-download::before {
  content: "\f019";
}

.fa-external-link-alt::before {
  content: "\f35d";
}

.fa-spinner::before {
  content: "\f110";
}

/* The PDF viewer spins this while a document loads. Font Awesome ships the
   keyframes in its own stylesheet, which is no longer loaded, so the animation
   has to be declared alongside the subset. */
.fa-spin {
  animation: fa-spin 2s infinite linear;
}

@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .fa-spin {
    animation-duration: 8s;
  }
}
