/* Font System with Robust Fallbacks */

:root {
  /* Primary font stacks with fallbacks */
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", "Monaco", "Inconsolata", "Roboto Mono", "Source Code Pro", Consolas, "Courier New", monospace;
  --font-serif: "Instrument Serif", Georgia, "Times New Roman", Times, serif;
  --font-display: "Archivo", "Inter", system-ui, sans-serif;
  --font-alt: "Geist", "Inter", system-ui, sans-serif;
  
  /* Icon fonts with fallbacks */
  --font-icons-rounded: "Material Symbols Rounded", "Material Icons", sans-serif;
  --font-icons-outlined: "Material Symbols Outlined", "Material Icons", sans-serif;
}

/* Font face declarations with fallback metrics */
@font-face {
  font-family: 'Inter-fallback';
  src: local('system-ui'), local('-apple-system'), local('BlinkMacSystemFont'), local('Segoe UI');
  size-adjust: 100.06%;
  ascent-override: 90%;
  descent-override: 22%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'JetBrains-fallback';
  src: local('SF Mono'), local('Monaco'), local('Consolas'), local('Menlo');
  size-adjust: 100%;
  ascent-override: 85%;
  descent-override: 20%;
  line-gap-override: 0%;
}

/* Base typography with immediate fallbacks */
html {
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-family: 'Inter-fallback', var(--font-sans);
  font-synthesis: none;
}

/* Code and monospace text */
code,
pre,
kbd,
samp,
.font-mono {
  font-family: 'JetBrains-fallback', var(--font-mono);
  font-variant-ligatures: none;
}

/* Headings with display fonts */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
}

/* Icon font classes with fallbacks */
.material-symbols-rounded {
  font-family: var(--font-icons-rounded);
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

.material-symbols-outlined {
  font-family: var(--font-icons-outlined);
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

/* Project modal specific font applications */
.pm__title-section {
  font-family: var(--font-mono);
}

.pm__title {
  font-family: var(--font-sans);
}

.pm__text,
.pm__text-alt {
  font-family: var(--font-sans);
}

.pm__link-button-inner {
  font-family: var(--font-mono);
}

.pm__info-item h3,
.pm__info-item p {
  font-family: var(--font-sans);
}

.lightbox-counter,
.lightbox-zoom-info {
  font-family: var(--font-mono);
}

/* Font loading states */
.font-loading {
  visibility: hidden;
}

.fonts-loaded {
  visibility: visible;
}

/* Prevent flash of invisible text */
.critical-text {
  font-display: swap;
}

/* Font feature settings for better typography */
.font-inter,
.pm__text,
.pm__text-alt {
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
  font-variant-numeric: oldstyle-nums;
}

.font-jetbrains,
.pm__title-section,
.pm__link-button-inner {
  font-variant-ligatures: contextual;
  font-feature-settings: "calt", "liga";
}

/* Responsive font loading optimization */
@media (prefers-reduced-motion: reduce) {
  .fonts-loaded {
    transition: none;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  body {
    font-weight: 500;
  }
  
  .pm__title-section {
    font-weight: 700;
  }
}

/* Print optimizations */
@media print {
  * {
    font-family: system-ui, -apple-system, sans-serif !important;
  }
  
  code, pre {
    font-family: monospace !important;
  }
} 