@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-sans-regular.ttf') format('truetype');
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-sans-medium.ttf') format('truetype');
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/ibm-plex-sans-semibold.ttf') format('truetype');
}
:root {
  --sans: 'IBM Plex Sans', Arial, sans-serif;
  --serif: var(--sans);
}
h1, h2, h3 { font-weight: 500; }
.hero h1 {
  max-width: 900px;
  font-size: clamp(48px, 4.8vw, 72px);
  line-height: 1.14;
  letter-spacing: -.035em;
}
.section-heading h2, .studio h2, .faq h2, .contact h2 { letter-spacing: -.025em; }
.practice-card h3, .team-info h3, .steps h3 { letter-spacing: -.015em; }
.portrait-placeholder > span { font-style: normal; }
.team .section-heading h2 { margin-top: 0; }
@media (max-width: 1100px) { .hero h1 { font-size: 56px; } }
@media (max-width: 900px) { .hero h1 { font-size: 52px; } }
@media (max-width: 600px) {
  .hero h1 { font-size: clamp(36px, 9.4vw, 48px); line-height: 1.16; }
}
