/* A distinct typographic identity: Sora with DM Sans. */
@font-face {
  font-family: 'Sora';
  src: url('assets/sora-medium.ttf') format('truetype');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'Sora';
  src: url('assets/sora-semibold.ttf') format('truetype');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'DM Sans';
  src: url('assets/dm-sans-regular.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'DM Sans';
  src: url('assets/dm-sans-medium.ttf') format('truetype');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'DM Sans';
  src: url('assets/dm-sans-semibold.ttf') format('truetype');
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
}
:root {
  --display: 'Sora', Arial, sans-serif;
  --serif: var(--display);
  --sans: 'DM Sans', Arial, sans-serif;
}
body { font-size: 16px; }
em { font-family: inherit; font-style: normal; font-weight: inherit; }
h2,h2 em { font-family: var(--display); font-style: normal; font-size: 50px; font-weight: 500; line-height: 1.15; letter-spacing: -1.9px; }
h2 em { font-size: 1em; }
.eyebrow { font-size: 11px; letter-spacing: 1.9px; font-weight: 600; }
.hero-copy { padding-top: 64px; }
.hero-eyebrow { font-size: 10px; letter-spacing: 1.7px; }
.hero h1 { margin-top: 35px; white-space: normal; font-size: inherit; letter-spacing: normal; line-height: 1; }
.hero-keyword { display: block; font-family: var(--display); font-weight: 600; font-size: clamp(78px,7.3vw,112px); line-height: 1.1; letter-spacing: -5px; }
.hero-dot { color: var(--accent); }
.hero-statement { display: block; margin-top: 16px; font-family: var(--sans); font-weight: 400; font-size: clamp(32px,3.2vw,48px); line-height: 1.14; letter-spacing: -.7px; }
.hero-intro { font-size: 16px; line-height: 1.65; margin-top: 28px; }
.hero .button { margin-top: 25px; font-size: 13px; padding: 18px 24px; }
.hero-bottom>span { font-size: 9px; letter-spacing: 1.8px; }
.hero-image figcaption { font-family: var(--sans); font-size: 25px; letter-spacing: -.3px; }
.hero-image figcaption small { font-size: 8px; letter-spacing: 1.7px; }
.desktop-nav>a { font-size: 15px; }
.header-contact { font-size: 13px; }
.button { font-size: 13px; }
.section-intro,.service-content p,.principle p,.about-copy>p:not(.section-label):not(.about-name),.contact-main p { font-size: 16px; line-height: 1.8; }
.service-title h3 { font-family: var(--sans); font-size: 28px; font-weight: 500; letter-spacing: -.3px; }
.service-title p { font-size: 14px; }
.service-number { font-size: 13px; }
.service-tags>span { font-size: 11px; }
.service-tags>span::before { top: 6px; }
.text-link { font-size: 13px; }
.approach h2 { font-family: var(--display); font-size: 58px; font-weight: 500; line-height: 1.14; letter-spacing: -2.1px; }
.approach h2 em { font-size: 1em; }
.principle-index { font-family: var(--sans); font-size: 13px; font-style: normal; letter-spacing: 1px; }
.principle h3 { font-family: var(--display); font-size: 28px; font-weight: 500; letter-spacing: -.4px; }
.about-copy h2 { font-family: var(--display); font-size: 46px; font-weight: 500; line-height: 1.16; letter-spacing: -1.8px; }
.about-name { font-size: 17px; font-weight: 500; }
.experience>span { font-family: var(--display); font-size: 58px; font-weight: 500; }
.experience>span>span { font-family: var(--sans); font-size: 35px; font-style: normal; font-weight: 400; top: -10px; }
.experience p { font-size: 12px; }
.contact h2 { font-family: var(--display); font-size: 56px; font-weight: 500; line-height: 1.14; letter-spacing: -2px; }
.contact h2 em { font-size: 1em; }
.contact-links>a { font-size: 16px; }
.contact-orbit>span { font-size: 10px; letter-spacing: 1.2px; }
.footer-top>p { font-family: var(--sans); font-size: 16px; font-style: normal; letter-spacing: .3px; }
.footer-bottom { font-size: 11px; }
.back-top { font-size: 11px; }
.small-note,.status { font-size: 10px; }
.legal-heading h1 { font-family: var(--display); font-weight: 500; letter-spacing: -1px; }
.legal-content { font-family: var(--sans); font-size: 16px; }
.legal-content h2,.legal-content h3 { font-family: var(--display); font-weight: 500; }
.cookie-notice h2 { font-family: var(--display); font-weight: 500; }

@media (min-width:1600px) {
  .hero-copy { padding-top: 83px; }
  .hero h1 { font-size: inherit; }
  .hero-keyword { font-size: 118px; }
  .hero-statement { font-size: 51px; }
}
@media (max-width:1150px) {
  .hero-copy { padding-top: 57px; }
  h2,h2 em { font-size: 44px; }
  h2 em { font-size: 1em; }
  .hero-keyword { font-size: 8.1vw; letter-spacing: -3.4px; }
  .hero-statement { font-size: 3.6vw; }
  .hero-intro { font-size: 15px; }
  .desktop-nav>a { font-size: 14px; }
  .header-contact { font-size: 12px; }
  .hero .button { font-size: 12px; gap: 23px; }
  .section-intro,.service-content p,.principle p,.about-copy>p:not(.section-label):not(.about-name),.contact-main p { font-size: 15px; }
  .service-title h3 { font-size: 26px; }
  .service-title p { font-size: 13px; }
  .approach h2 { font-size: 50px; }
  .about-copy h2 { font-size: 40px; }
  .contact h2 { font-size: 48px; }
  .hero-image figcaption { font-size: 23px; }
  .hero-image figcaption small { font-size: 7px; }
  .footer-top>p { font-size: 15px; }
  .footer-bottom { font-size: 10px; }
  .photo-credit { font-size: 9px; }
}
@media (max-width:850px) {
  .hero-copy { padding-top: 43px; }
  .hero-eyebrow { font-size: 8px; letter-spacing: 1px; }
  .hero-keyword { font-size: 8.1vw; letter-spacing: -3px; }
  .hero-statement { font-size: 3.7vw; margin-top: 20px; }
  .hero-intro { font-size: 14px; }
  .hero .button { font-size: 11px; padding: 17px; gap: 15px; }
  .hero-bottom>span { font-size: 7px; letter-spacing: 1px; }
  .hero-image figcaption { font-size: 20px; }
  .hero-image figcaption small { font-size: 6px; letter-spacing: 1px; }
  .eyebrow { font-size: 10px; }
  h2,h2 em { font-size: 39px; }
  h2 em { font-size: 1em; }
  .section-intro,.service-content p,.principle p,.about-copy>p:not(.section-label):not(.about-name),.contact-main p { font-size: 14px; }
  .service-title h3 { font-size: 24px; }
  .service-title p { font-size: 12px; }
  .approach h2 { font-size: 43px; }
  .principle h3 { font-size: 25px; }
  .about-copy h2 { font-size: 34px; }
  .experience p { font-size: 10px; }
  .contact h2 { font-size: 41px; }
  .contact-links>a { font-size: 14px; }
  .footer-top>p { font-size: 13px; }
  .small-note,.status { font-size: 8px; }
}
@media (max-width:600px) {
  .hero-copy { padding: 34px 24px 0; }
  .hero-eyebrow { font-size: 9px; letter-spacing: .9px; }
  .hero h1 { margin-top: 24px; font-size: inherit; letter-spacing: normal; line-height: 1; }
  .hero-keyword { font-size: clamp(52px,17vw,92px); letter-spacing: -3.4px; line-height: 1.12; }
  .hero-statement { margin-top: 17px; font-size: clamp(28px,7.5vw,40px); line-height: 1.14; letter-spacing: -.5px; }
  .hero-intro { margin-top: 24px; font-size: 15px; line-height: 1.65; }
  .hero .button { font-size: 12px; padding: 17px 19px; gap: 27px; margin-top: 22px; }
  .hero-image figcaption { font-size: 24px; }
  .hero-image figcaption small { font-size: 7px; }
  .eyebrow { font-size: 10px; letter-spacing: 1.7px; }
  h2,h2 em { font-size: 34px; line-height: 1.2; letter-spacing: -1.1px; }
  h2 em { font-size: 1em; }
  h2 { hyphens: auto; overflow-wrap: break-word; }
  .section-intro { max-width: 360px; }
  .service-title h3 { font-size: 23px; line-height: 1.2; }
  .service summary { grid-template-columns: 28px minmax(0,1fr) 26px; }
  .service-title { min-width: 0; }
  .service-title h3 { hyphens: auto; overflow-wrap: anywhere; }
  .service-title p { font-size: 13px; line-height: 1.6; }
  .service-content p { font-size: 15px; }
  .service-tags>span { font-size: 10px; }
  .service-tags>span::before { top: 5px; }
  .service-number { font-size: 11px; }
  .text-link { font-size: 12px; }
  .approach h2 { font-size: 34px; line-height: 1.24; letter-spacing: -1px; }
  .approach h2 em { font-size: 1em; }
  .principle h3 { font-size: 25px; }
  .principle p { font-size: 14px; }
  .principle-index { font-size: 12px; }
  .about-copy h2 { font-size: 35px; letter-spacing: -1.2px; }
  .about-copy>p:not(.section-label):not(.about-name) { font-size: 15px; }
  .about-name { font-size: 16px; }
  .experience>span { font-size: 55px; }
  .experience p { font-size: 12px; }
  .contact h2 { font-size: 34px; letter-spacing: -1.2px; line-height: 1.22; }
  .contact h2 em { font-size: 1em; max-width: 330px; }
  .contact-main p { font-size: 14px; }
  .contact-links>a { font-size: 15px; }
  .contact-orbit>span { font-size: 8px; }
  .footer-top>p { font-size: 15px; }
  .footer-bottom { font-size: 11px; }
  .back-top { font-size: 0; }
  .contact-top .eyebrow { font-size: 9px; letter-spacing: .9px; }
  .status { font-size: 8px; letter-spacing: .6px; }
  .footer-bottom>div { flex-wrap: wrap; row-gap: 13px; }
}
@media (max-width:360px) {
  .hero .button { font-size: 11px; gap: 18px; }
  .hero-keyword { letter-spacing: -2.3px; }
  .hero-eyebrow { font-size: 8px; }
  .section-heading h2 { font-size: 30px; }
  .approach h2 { font-size: 31px; }
  .about-copy h2 { font-size: 32px; }
  .service-title h3 { font-size: 21px; }
  .contact h2 { font-size: 31px; }
  .contact h2 em { max-width: 270px; }
}
