/* Self-hosted fonts: Instrument Serif for display, Geist for text, Geist Mono for labels (SIL OFL 1.1) */
@font-face { font-family: "Instrument Serif"; font-style: normal; font-weight: 400; font-display: swap; src: url("../assets/fonts/instrument-serif-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Instrument Serif"; font-style: italic; font-weight: 400; font-display: swap; src: url("../assets/fonts/instrument-serif-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../assets/fonts/geist-latin-wght-normal.woff2") format("woff2-variations"), url("../assets/fonts/geist-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family: "Geist Mono"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../assets/fonts/geist-mono-latin-wght-normal.woff2") format("woff2-variations"), url("../assets/fonts/geist-mono-latin-wght-normal.woff2") format("woff2"); }

/* Smooth page-to-page transitions (loaded on every page): a soft cross-fade with a slight lift */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: vt-out .35s cubic-bezier(.4,0,.2,1) both; }
::view-transition-new(root) { animation: vt-in .55s cubic-bezier(.2,.8,.2,1) both; }
@keyframes vt-out { to { opacity: 0; } }
@keyframes vt-in { from { opacity: 0; transform: translateY(14px); } }
@media (prefers-reduced-motion: reduce) { ::view-transition-old(root), ::view-transition-new(root) { animation: none; } }
