/* Fonts locales — RGPD-friendly */

@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../assets/fonts/DMMono-Light.ttf') format('truetype');
}

@font-face {
  font-family: 'DM Mono';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('../assets/fonts/DMMono-LightItalic.ttf') format('truetype');
}

@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/DMMono-Regular.ttf') format('truetype');
}

@font-face {
  font-family: 'DM Mono';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/DMMono-Italic.ttf') format('truetype');
}

@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../assets/fonts/DMMono-Medium.ttf') format('truetype');
}

@font-face {
  font-family: 'DM Mono';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('../assets/fonts/DMMono-MediumItalic.ttf') format('truetype');
}

@font-face {
  font-family: 'Libre Franklin';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../assets/fonts/LibreFranklin-VariableFont_wght.ttf') format('truetype');
}

@font-face {
  font-family: 'Libre Franklin';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('../assets/fonts/LibreFranklin-Italic-VariableFont_wght.ttf') format('truetype');
}

/* Base styles */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
  background: #0A0A0A;
  color: #F5F5F5;
  font-family: 'DM Mono', 'Courier New', monospace;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.5;
}
@keyframes fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes ticker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@media (max-width: 600px) {
  .btn { padding: 14px 32px !important; font-size: 14px !important; }
  .ghost { padding: 10px 20px !important; font-size: 12px !important; }
}
