/* Twin Leaf typography for the static (hosting-side) pages.
   Geist for text and numbers, Source Serif 4 for page titles. Both are SIL OFL
   variable fonts (same files as app/fonts, latin subset). Light/dark stays
   whatever each page already does (system preference); this file only sets
   type, no-zoom/no-sideways-scroll rules and calmer interaction. */
@font-face { font-family: "Geist"; src: url("/fonts/geist-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("/fonts/source-serif-4-latin.woff2") format("woff2"); font-weight: 200 900; font-style: normal; font-display: swap; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; touch-action: manipulation; max-width: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
html body { font-family: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important; font-synthesis: none; -webkit-font-smoothing: antialiased; max-width: 100%; overflow-x: clip; }
html body :is(h1, h2) { font-family: "Source Serif 4", "Iowan Old Style", Georgia, serif !important; font-weight: 500 !important; letter-spacing: -0.015em; text-wrap: balance; }
html body :is(h3, h4, button, input, select, textarea) { font-family: inherit; }
html body :where(.tabular, [class*="stat"], [class*="price"]) { font-variant-numeric: tabular-nums; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid #8b5cf6; outline-offset: 2px; }
@media (pointer: coarse) { html body :is(input, select, textarea) { font-size: 16px !important; } }
img, video, svg { max-width: 100%; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
