/* Pixel Pulse Site Builder — shared base for /build/preview/* pages.
   Self-hosted faces (same files the main site uses) + a minimal reset.
   Template-specific styles live in each preview page. */

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fonts/bricolage-grotesque-var.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 100 700;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fonts/ibm-plex-sans-var.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/ibm-plex-serif-italic-400.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 500 700;
  font-display: swap;
  src: url('/fonts/ibm-plex-serif-italic-500.woff2') format('woff2');
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { margin: 0; font-size: 1rem; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }

/* The bridge hides sections with the `hidden` attribute; make sure the
   attribute always wins over display rules. */
[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
