/* Self-hosted fonts + icon subset — replaces fonts.googleapis.com/fonts.gstatic.com
 * and unpkg.com so visitors' browsers contact ONLY this site (privacy + supply
 * chain + enables a strict CSP). Sources, pinned & auditable:
 *   Inter + Playfair Display: Google Fonts (OFL), latin + latin-ext subsets
 *   tabler-icons.woff2: @tabler/icons-webfont@3.44.0 (MIT) — the FULL glyph set;
 *   only the icon CLASSES this site uses are exposed below (add an icon = add its rule)
 * Regenerate: scratchpad script selfhost_assets.mjs pattern (fetch css2 with a
 * Chrome UA, download woff2 subsets, extract used .ti-* rules from the pinned
 * tabler css).
 * Authored: Claude Fable 5 — Ultracode, 2026-07-02
 */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/inter-normal-300-latin-ext.woff2) format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/inter-normal-300-latin.woff2) format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/inter-normal-400-latin-ext.woff2) format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/inter-normal-400-latin.woff2) format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/inter-normal-500-latin-ext.woff2) format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/inter-normal-500-latin.woff2) format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/inter-normal-600-latin-ext.woff2) format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/inter-normal-600-latin.woff2) format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/playfair-display-italic-400-latin-ext.woff2) format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/playfair-display-italic-400-latin.woff2) format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-400-latin-ext.woff2) format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-400-latin.woff2) format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-600-latin-ext.woff2) format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/playfair-display-normal-600-latin.woff2) format('woff2');
}

@font-face {
  font-family: "tabler-icons";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(/fonts/tabler-icons.woff2) format("woff2");
}

.ti {
  font-family: "tabler-icons" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ti-aperture:before { content: "\eb58"; }
.ti-archive:before { content: "\ea0b"; }
.ti-arrow-back-up:before { content: "\eb77"; }
.ti-calendar:before { content: "\ea53"; }
.ti-camera:before { content: "\ea54"; }
.ti-check:before { content: "\ea5e"; }
.ti-color-swatch:before { content: "\eb61"; }
.ti-device-tv:before { content: "\ea8d"; }
.ti-download:before { content: "\ea96"; }
.ti-focus-2:before { content: "\ebd3"; }
.ti-gift:before { content: "\eb68"; }
.ti-headset:before { content: "\eb90"; }
.ti-package:before { content: "\eaff"; }
.ti-palette:before { content: "\eb01"; }
.ti-pencil:before { content: "\eb04"; }
.ti-player-play:before { content: "\ed46"; }
.ti-send:before { content: "\eb1e"; }
.ti-shield-lock:before { content: "\ed58"; }
.ti-sparkles:before { content: "\f6d7"; }
.ti-stack-2:before { content: "\eef7"; }
.ti-wand:before { content: "\ebcb"; }
.ti-arrows-horizontal:before { content: "\eb59"; }
.ti-info-circle:before { content: "\eac5"; }
.ti-photo:before { content: "\eb0a"; }
.ti-player-pause:before { content: "\ed45"; }
.ti-x:before { content: "\eb55"; }
