/* One type system across every section and React island. */
body { font-family: var(--font-body); font-synthesis: none; }
button, input, select, textarea { font-family: var(--font-body); }
:root :is(h1,h2,h3,h4,h5,h6),
.cinematic-hero__wordmark > span {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.035em;
}
:root :is(h1,h2,h3,h4,h5,h6) { min-width: 0; max-width: 100%; overflow-wrap: break-word; }
.ocean-roller__phrases { font-family: var(--font-body); }
.ocean-roller__phrases strong { font-weight: 500; }
.island-about__header--compact > p:last-child {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.2;
  max-width: 100%;
  text-wrap: balance;
}
/* Benzin's wide glyphs need a full row; never split «Архитектура». */
:is(#dream-exterior, #azure-exterior) header h3 {
  grid-column: 1 / -1;
  width: max-content;
  white-space: nowrap;
  overflow-wrap: normal;
  font-size: clamp(22px, 5.6vw, 88px);
}
#dream-exterior header > span { grid-column: 1 / -1; justify-self: start; }
@media (max-width: 760px) {
  .room-explorer { padding-top: calc(var(--safe-top) + 76px); }
  .room-heading h2 { font-size: clamp(24px,8.3vw,48px); }
  .benefits__head h2 { font-size: clamp(12px,4vw,28px); }
  .land h2 { font-size: clamp(24px,7.5vw,46px); }
  .technology__header { grid-template-columns: minmax(0,1fr); }
  .technology__header h2 { font-size: clamp(24px,7.9vw,46px); }
  .construction-fallback article { grid-template-columns: minmax(0,1fr); }
  .construction-fallback article > div { min-width: 0; }
  .construction-fallback h3 { font-size: clamp(18px,5.5vw,24px); }
  .cinematic-hero__wordmark > span { font-size: 14vw; }
  .ocean-roller h2 { font-size: clamp(32px,8.5vw,60px); line-height: 1.1; }
}

/* Reserve the widest slogan, not the active one: the project name never shifts. */
.dream-roller .ocean-roller__copy {
  display: grid;
  grid-template-columns: max-content max-content;
  justify-content: center;
  align-items: baseline;
  column-gap: .3em;
  font: 700 clamp(8px,2.4vw,54px)/1.3 var(--font-display);
  letter-spacing: -.035em;
  text-align: left;
}
:root .dream-roller h2,
.dream-roller .ocean-roller__phrases,
.dream-roller .ocean-roller__phrases p {
  font: inherit;
  letter-spacing: inherit;
  white-space: nowrap;
  color: var(--white);
}
.dream-roller .ocean-roller__phrases {
  display: grid;
  width: max-content;
  height: auto;
  margin: 0;
  overflow: visible;
}
.dream-roller .ocean-roller__phrases p {
  position: relative;
  inset: auto;
  grid-area: 1 / 1;
  max-width: none;
  margin: 0;
  text-align: left;
}
.dream-roller .ocean-roller__phrases strong { font-weight: inherit; }
/* Accessibility fallback keeps every fact readable at normal mobile text size. */
.dream-roller:not(.is-enhanced) .ocean-roller__copy { display: block; font-size: clamp(18px,2.4vw,54px); }
.dream-roller:not(.is-enhanced) .ocean-roller__phrases { width: 100%; margin-top: 24px; }
.dream-roller:not(.is-enhanced) .ocean-roller__phrases p { grid-area: auto; white-space: normal; }
@media (prefers-reduced-motion: reduce) {
  .dream-roller .ocean-roller__copy { display: block; font-size: clamp(18px,2.4vw,54px); }
  .dream-roller .ocean-roller__phrases { width: 100%; margin-top: 24px; }
  .dream-roller .ocean-roller__phrases p { grid-area: auto; white-space: normal; }
}
