/* Screenshot-reconstructed Cyrillic Light/Medium, local Zvezdny presentation.
   Keep Latin words entirely in the fallback instead of mixing partial aliases.
   Great Vibes, the agency wordmark, and Material Symbols remain unchanged. */
@font-face {
  font-family: 'Zvezdny Orbit';
  src: url('/fonts/ZvezdnyOrbitPrototype-Light.woff2') format('woff2');
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  unicode-range: U+0020-0022,U+0028-0029,U+002C-003A,U+003F,U+00A0,U+0401,U+0410-044F,U+0451,U+2013-2014,U+202F,U+2212;
}
@font-face {
  font-family: 'Zvezdny Orbit';
  src: url('/fonts/ZvezdnyOrbitPrototype-Medium.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  unicode-range: U+0020-0022,U+0028-0029,U+002C-003A,U+003F,U+00A0,U+0401,U+0410-044F,U+0451,U+2013-2014,U+202F,U+2212;
}
body.zv-celestial {
  --zv-copy-font: 'Zvezdny Orbit', Inter, Arial, sans-serif;
  font-family: var(--zv-copy-font);
  font-weight: 300;
  font-synthesis: none;
}
.zv-celestial :where(div, p, li, blockquote, figcaption, span, a, button, input, textarea, select, option, label, summary, nav, h2, h3, h4, small, strong, b, i, em, text) {
  font-family: var(--zv-copy-font) !important;
  font-weight: 300 !important;
}
.zv-celestial :is(h3, h4, strong, b, button, label, summary, .font-medium, .font-semibold, .font-bold),
.zv-celestial :is(nav, #topbar, .zv-hero-actions) a,
.zv-celestial :is(.btn-gold, .zv-eyebrow, .zv-cover-kicker, .zv-chapter, .zv-motion-toggle),
.zv-celestial :is(button, .zv-eyebrow, .zv-cover-kicker, .zv-chapter, .zv-motion-toggle) span {
  font-weight: 500 !important;
}
.zv-celestial :is(p, li, blockquote, figcaption) {
  font-family: var(--zv-copy-font) !important;
  letter-spacing: .004em;
}
.zv-celestial h3 {
  font-family: var(--zv-copy-font) !important;
  font-weight: 500 !important;
  letter-spacing: 0;
}
.zv-celestial :is(#plots, #hitech) h3 { font-weight: 500 !important; }
.zv-celestial .font-vibes,
.zv-celestial .font-vibes :where(span) {
  font-family: 'Great Vibes', cursive !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.22 !important;
}
.zv-celestial .font-didona {
  font-family: var(--zv-copy-font) !important;
  font-weight: 500 !important;
}
.zv-celestial #hdr .brand-fm {
  font-family: 'FM Bolyar', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px;
  text-transform: none;
  letter-spacing: .025em;
}
body.zv-celestial .material-symbols-outlined {
  font-family: 'Material Symbols Outlined' !important;
  font-weight: 400 !important;
}

/* Live calligraphic title; gold sampled from the original wordmark pixels. */
.zv-celestial .zv-hero h1.zv-cover-title {
  font-family: 'Great Vibes', cursive;
  font-size: clamp(64px, 24vw, 340px);
  font-weight: 400;
  line-height: 1.28 !important;
  letter-spacing: 0;
  text-transform: none;
  text-wrap: wrap;
  color: #c89e5c;
  padding-inline: .12em;
  margin-block: 24px 26px;
}
.zv-celestial .zv-cover-title .zv-title-constellation { top: -3%; right: 2%; }

.zv-celestial .zv-film-caption > span,
.zv-celestial .zv-universe-label {
  font-family: var(--zv-copy-font);
  letter-spacing: .004em;
}

.zv-celestial .zv-universe-map { position: relative; }
.zv-celestial .zv-universe-map > svg { display: block; }
.zv-celestial .zv-universe-freedom { left: 10.45%; top: 71%; transform: translateX(-50%); }
.zv-celestial .zv-universe-privacy { left: 43.27%; top: 69%; transform: translateX(-50%); }
.zv-celestial .zv-universe-harmony { right: 1%; top: 22%; text-align: right; }
.zv-celestial .zv-service-mark > span {
  font-family: var(--zv-copy-font);
  font-weight: 500 !important;
  letter-spacing: 0;
}
.zv-celestial .zv-hero-stats > div > div:first-child {
  font-family: var(--zv-copy-font);
  font-weight: 500 !important;
  font-size: clamp(30px, 3.3vw, 48px);
  letter-spacing: -.02em;
}
.zv-celestial :is(#hitech, #minimalism, #wright, #scandi) h2::before {
  font-family: var(--zv-copy-font);
  font-weight: 300;
  font-size: .42em;
  letter-spacing: 0;
}
.zv-celestial #video > div > div:first-child,
.zv-celestial #map > div > div:first-child > div,
.zv-celestial #form > div > div:first-child,
.zv-celestial :is(#video, #map, #form) .zv-section-heading {
  font-family: var(--zv-copy-font);
  font-weight: 500 !important;
  font-size: clamp(28px, 4.2vw, 60px);
  line-height: 1.15;
  letter-spacing: -.025em;
  text-transform: none;
}
.zv-celestial :is(#about, #usp, #service, #plots, #horse, #space, #genplan) h2 {
  font-size: clamp(54px, 7.5vw, 120px);
}
.zv-celestial #horse h2 { font-size: clamp(42px, 6.4vw, 100px); }
.zv-celestial .zv-hero-summary > p,
.zv-celestial .concept-body,
.zv-celestial #usp .grid p,
.zv-celestial #service .grid p,
.zv-celestial #horse .grid p,
.zv-celestial #plots .grid p,
.zv-celestial :is(#hitech, #minimalism, #wright, #scandi) > .grid > div:last-child p,
.zv-celestial :is(#hitech-gallery, #minimalism-gallery, #wright-gallery, #scandi-gallery) p,
.zv-celestial #space > div:last-child > div:first-child p,
.zv-celestial #genplan > div:nth-child(2) > div:first-child p,
.zv-celestial #form > div > p { font-size: 20px; line-height: 1.65; }
.zv-celestial #usp .grid > div:first-child > p:first-child,
.zv-celestial #service .grid p:first-child,
.zv-celestial #horse .grid > div:last-child > p:first-child,
.zv-celestial #plots .grid > div:last-child > div > p:first-child {
  font-size: clamp(28px, 2.7vw, 42px);
  line-height: 1.35;
}
.zv-celestial .zv-concept-layout > div > p:last-child { font-size: 22px; line-height: 1.55; }
.zv-celestial .zv-concept-photo figcaption { font-size: 12px; }
.zv-celestial #plots h3 { font-size: 20px; line-height: 1.4; }
.zv-celestial #hitech h3 { font-size: 22px; line-height: 1.4; }
.zv-celestial #space li { font-size: 18px; line-height: 1.4; }
.zv-celestial #space h3 { font-size: 18px; }
.zv-celestial footer p { font-size: 16px; }
.zv-celestial #form form > p { font-size: 13px; }

/* Secondary information stays quiet, but readable without zooming. */
.zv-celestial #topbar a { font-size: 12px; color: #e4daca; }
.zv-celestial #hdr > div > div { gap: 24px; }
.zv-celestial #hdr nav {
  gap: clamp(14px, 1.4vw, 24px);
  font-size: 15px;
  line-height: 1.4;
}
.zv-celestial #hdr nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--zv-cream);
}
.zv-celestial #hdr nav a:is(:hover, [aria-current="location"]) { color: #ecd0a1; }
.zv-celestial #hdr .btn-gold {
  background: var(--zv-gold-light);
  color: var(--zv-deep);
  border-color: var(--zv-gold-light);
  font-size: 14px;
  line-height: 1.4;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
}
.zv-celestial #hdr .btn-gold:hover { background: #f1d8b0; }
.zv-celestial #hdr .brand-fm + span { font-size: 11px; letter-spacing: .08em; }
.zv-celestial #menupanel { overflow-y: auto; }
.zv-celestial #menupanel > a { font-size: 17px; line-height: 1.45; }
.zv-celestial .zv-cover-kicker {
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: .12em;
  color: var(--zv-gold-light);
}
.zv-celestial .zv-scroll-link { gap: 20px; letter-spacing: .09em; }
.zv-celestial .zv-scroll-link > span:first-child {
  font-size: 14px;
  font-weight: 500 !important;
  line-height: 1.55;
  color: #ecd0a1;
}
.zv-celestial .zv-circle-arrow { border-color: #d8bc8cb3; flex-shrink: 0; }
.zv-celestial :is(.zv-eyebrow, .zv-chapter) {
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: .1em;
  color: var(--zv-gold-light);
}
.zv-celestial #plots .zv-eyebrow { color: #87602d; }
.zv-celestial .zv-chapter > span { flex-shrink: 0; }
.zv-celestial .zv-hero-actions a { font-size: 15px; line-height: 1.5; }
.zv-celestial .zv-film-caption > a { font-size: 14px; font-weight: 500 !important; }
.zv-celestial .zv-motion-toggle { font-size: 12px; min-height: 44px; background: #080f1cb3; }
.zv-celestial .zv-hero-stats > div > div:last-child {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: .035em;
  color: var(--zv-gold-light);
}
.zv-celestial .zv-concept-photo figcaption { font-size: 14px; letter-spacing: .04em; }
.zv-celestial .zv-concept-layout > div > p:nth-child(2),
.zv-celestial .zv-universe-caption,
.zv-celestial .zv-service-mark i {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: .08em;
  color: var(--zv-gold-light);
  font-weight: 500 !important;
}
.zv-celestial .zv-concept-story summary { font-size: 16px; }
.zv-celestial #form form label { font-size: 13px; letter-spacing: .06em; }

@media(max-width: 800px) {
  .zv-celestial :is(#hitech, #minimalism, #wright, #scandi) > .grid > div:first-child h2 {
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 14px;
  }
  .zv-celestial #minimalism > .grid > div:first-child h2 { font-size: clamp(41px, 10vw, 65px); }
  .zv-celestial #scandi > .grid > div:first-child h2 { font-size: clamp(35px, 9vw, 57px); }
  .zv-celestial :is(#hitech-gallery, #minimalism-gallery, #wright-gallery, #scandi-gallery) h2 { font-size: 50px; }
  .zv-celestial #scandi-gallery h2 { font-size: 43px; }
}
@media(max-width: 760px) {
  .zv-celestial .zv-hero h1.zv-cover-title { margin: 28px 0; }
  .zv-celestial :is(#about, #usp, #service, #plots, #horse, #space, #genplan) h2 { font-size: clamp(44px, 12vw, 68px); }
  .zv-celestial #horse h2 { font-size: clamp(34px, 9.8vw, 58px); }
  .zv-celestial .zv-hero-stats > div > div:first-child { font-size: 32px; }
  .zv-celestial .zv-universe-label { font-size: clamp(15px, 4vw, 22px); }
  .zv-celestial .zv-universe-home { left: 26.18%; top: 10%; transform: translateX(-50%); }
  .zv-celestial .zv-universe-nature { left: 60.36%; top: 3%; transform: translateX(-50%); }
  .zv-celestial .zv-universe-family { left: 78.55%; top: 71%; transform: translateX(-50%); }
  .zv-celestial .zv-universe-harmony { top: 12%; }
  .zv-celestial #usp .grid p,
  .zv-celestial #service .grid p,
  .zv-celestial #horse .grid p,
  .zv-celestial #plots .grid p,
  .zv-celestial .zv-hero-summary > p,
  .zv-celestial .concept-body,
  .zv-celestial #space > div:last-child > div:first-child p,
  .zv-celestial #genplan > div:nth-child(2) > div:first-child p,
  .zv-celestial #form > div > p { font-size: 19px; line-height: 1.65; }
  .zv-celestial #usp .grid > div:first-child > p:first-child,
  .zv-celestial #service .grid p:first-child,
  .zv-celestial #horse .grid > div:last-child > p:first-child,
  .zv-celestial #plots .grid > div:last-child > div > p:first-child { font-size: 28px; line-height: 1.35; }
  .zv-celestial .zv-concept-layout > div > p:last-child { font-size: 21px; }
  .zv-celestial #topbar > div { gap: 10px; }
  .zv-celestial .zv-cover-kicker {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    letter-spacing: .07em;
  }
  .zv-celestial .zv-cover-kicker > span:last-child { display: block; }
  .zv-celestial .zv-cover-baseline { flex-wrap: wrap; gap: 22px; }
  .zv-celestial .zv-scroll-link { width: 100%; justify-content: space-between; }
  .zv-celestial .zv-scroll-link > span:first-child { display: block; font-size: 13px; }
  .zv-celestial :is(.zv-eyebrow, .zv-chapter) { font-size: 12px; letter-spacing: .07em; }
  .zv-celestial .zv-universe-caption { font-size: 12px; letter-spacing: .04em; }
  .zv-celestial .zv-service-mark i { font-size: 12px; }
}
@media(max-width: 360px) {
  .zv-celestial #topbar a { font-size: 11px; }
  .zv-celestial #menupanel { padding-inline: 20px; }
}
