/* Real font outlines, stronger ink, and native device-resolution text rendering. */
:root { --white: #f5f4ef; --muted: #c0c4b8; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-weight: 450;
  font-synthesis: none;
  font-kerning: normal;
  font-optical-sizing: auto;
  text-rendering: auto;
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}
h1, h2, h3, .hero h1 { font-weight: 550; }
.hero h1 { letter-spacing: -.06em; }
h2, .intro h2, .service-heading h2, .faq h2 { letter-spacing: -.04em; }
.contact h2 { letter-spacing: -.05em; }
.project h3, .process-grid h3, .service-list h3 { letter-spacing: -.025em; }
.muted { color: #b4b9ab; }
.intro-bottom { color: #d3d6cc; }
.section-top > p, .project-info > p, .process-grid p, .faq details p,
.service-description > p, .service-description li, .stack-content > p,
.lab-heading > p, .hero-bottom > p { color: #cbd0c2; }
.section-label, .visual-caption, .project-tags, .concept-note, .process-output { font-weight: 500; }
.contact-outline { -webkit-text-stroke-width: 1.5px; }
@media (max-width: 760px) {
  .hero h1 { letter-spacing: -.055em; }
}
@media (max-width: 370px) {
  #process-title, #faq-title { letter-spacing: -.065em; }
}
