/* Self-hosted fonts (Fontshare: General Sans + Cabinet Grotesk) — privacy + perf */
@font-face { font-family: 'General Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/general-sans-400.woff2') format('woff2'); }
@font-face { font-family: 'General Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/general-sans-500.woff2') format('woff2'); }
@font-face { font-family: 'General Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/general-sans-600.woff2') format('woff2'); }
@font-face { font-family: 'General Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/general-sans-700.woff2') format('woff2'); }
@font-face { font-family: 'Cabinet Grotesk'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/cabinet-grotesk-500.woff2') format('woff2'); }
@font-face { font-family: 'Cabinet Grotesk'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/cabinet-grotesk-700.woff2') format('woff2'); }
@font-face { font-family: 'Cabinet Grotesk'; font-style: normal; font-weight: 800; font-display: swap; src: url('/assets/fonts/cabinet-grotesk-800.woff2') format('woff2'); }
