html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

html {
  scroll-behavior: smooth;
}

img,
video {
  max-width: 100%;
}

.loader {
  overflow: hidden;
  perspective: 800px;
}

.loader .loader_number {
  display: none !important;
}

.loader .line-track {
  width: min(16rem, 44vw);
}

.loader .line-runner {
  animation: starlight-loader-line 1.1s ease-in-out infinite;
}

/* The animated star itself is now the progress indicator. */
.loader .loader-bottom {
  display: none !important;
}

.starlight-loader-symbol {
  width: var(--starlight-loader-size, 1.75rem) !important;
  max-width: none !important;
  height: auto !important;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: visible;
  will-change: transform, opacity;
  animation: starlight-star-spin 1.05s linear infinite;
}

.loader-wordmark {
  position: fixed;
  top: clamp(1rem, 2vw, 1.75rem);
  left: clamp(1rem, 2.5vw, 2.5rem);
  z-index: 10002;
  display: flex;
  align-items: center;
  gap: 0.08em;
  color: #fff;
  font-family: Bebas Neue, Arial, sans-serif;
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 0.85;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-0.65em);
}

/* There must be only one wordmark: the permanent SVG in the navigation. */
.loader-wordmark {
  display: none !important;
}

.loader-wordmark-symbol {
  width: 0.72em;
  height: auto;
  transform: translateY(0.03em);
}

html.is-loaded .loader {
  display: flex !important;
  pointer-events: none;
  animation: starlight-loader-bg-out 0.45s ease 0.18s forwards;
}

html.is-loaded .starlight-loader-symbol {
  animation: starlight-star-spin-out 0.45s ease-out forwards;
}

html.is-loaded .loader-bottom {
  animation: starlight-loader-bar-out 0.28s ease forwards;
}

html.is-loaded .loader-wordmark {
  animation:
    starlight-wordmark-in 0.65s ease 0.32s both,
    starlight-wordmark-out 0.28s ease 1.05s forwards;
}

html.is-loading .site-navigation_wrapper .brand {
  opacity: 0;
}

html.is-loaded .site-navigation_wrapper .brand {
  animation: starlight-brand-in 0.28s ease 0.28s both;
}

@keyframes starlight-loader-line {
  0% {
    transform: translateX(-110%) scaleX(0.35);
  }
  50% {
    transform: translateX(0%) scaleX(1);
  }
  100% {
    transform: translateX(110%) scaleX(0.35);
  }
}

@keyframes starlight-star-spin {
  0% {
    transform: rotateY(0deg);
  }
  100% {
    transform: rotateY(360deg);
  }
}

@keyframes starlight-star-spin-out {
  0% {
    opacity: 1;
    transform: rotateY(0deg);
  }
  100% {
    opacity: 0;
    transform: rotateY(180deg);
  }
}

.home-hero-video {
  background: #000;
  isolation: isolate;
}

.home-hero-video video {
  opacity: 0;
  z-index: 0 !important;
  transition: opacity 0.3s ease;
}

html.starlight-hero-ready .home-hero-video video {
  opacity: 1;
}

/* Keep the scroll-controlled frame sequence visible. */
.hmovie-section {
  display: block !important;
  width: 100% !important;
  visibility: visible !important;
  min-height: 600vh !important;
  padding: 0 !important;
  background: #000 !important;
  position: relative !important;
  overflow: clip !important;
}

.hmovie-section .hmovie-scroll-outer {
  display: block !important;
  width: 100% !important;
  height: 600vh !important;
  min-height: 600vh !important;
  position: relative !important;
  overflow: clip !important;
}

.hmovie-section .hmovie-scroll-wrapper {
  display: block !important;
  width: 100% !important;
  height: calc(100% + 100vh) !important;
  position: absolute !important;
  top: -100vh !important;
  left: 0 !important;
}

.hmovie-section .scroll-camera {
  display: flex !important;
  width: 100% !important;
  height: 100svh !important;
  position: sticky !important;
  top: 0 !important;
  overflow: hidden !important;
  background: #000 !important;
}

.hmovie-section .scroll-camera_inner,
.hmovie-section .section-bg-wrapper {
  width: 100% !important;
  height: 100% !important;
}

.hmovie-section .render-embed {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1.66 / 1 !important;
}

.hmovie-section #movie-canvas {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  background: #000 !important;
}

@media (max-width: 478px) {
  .hmovie-section,
  .hmovie-section .hmovie-scroll-outer {
    min-height: 500vh !important;
    height: 500vh !important;
  }

  .hmovie-section .render-embed {
    aspect-ratio: 1 / 1.66 !important;
  }
}

/* The footer no longer contains platform/social icon groups. */
.footer-section .site-grid.is-footer {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
}

.footer-section .site-grid.is-footer > .spacer {
  display: none !important;
}

/* Contact page: only the feedback form remains. */
.contacts-hero-section.is-contacts {
  min-height: 0;
  padding-top: clamp(8rem, 12vw, 11rem);
  padding-bottom: clamp(5rem, 8vw, 8rem);
}

.contacts-hero-section.is-contacts .site-grid.mt-80 {
  display: block;
  margin-top: 0 !important;
}

.contacts-hero-section.is-contacts .contact-form_wrapper {
  width: min(100%, 58rem);
  max-width: 58rem;
  margin: 0 auto;
}

.contacts-hero-section.is-contacts .w-form-done,
.contacts-hero-section.is-contacts .w-form-fail {
  background: transparent;
}

/* Readable, responsive legal documents. */
.contacts-hero-section.is-policy {
  min-height: 0;
  padding-top: clamp(8rem, 12vw, 11rem);
  padding-bottom: clamp(5rem, 8vw, 8rem);
}

.contacts-hero-section.is-policy .heading-120 {
  max-width: 16ch;
  margin-bottom: clamp(2.5rem, 5vw, 5rem);
}

.sl-legal {
  width: min(100%, 58rem);
  color: #e8e8e8;
  font-size: clamp(1rem, 1.25vw, 1.2rem);
  line-height: 1.6;
}

.sl-legal h2 {
  margin: 2.25rem 0 0.75rem;
  color: #fff;
  font-size: clamp(1.35rem, 2vw, 2rem);
  line-height: 1.15;
}

.sl-legal p {
  margin: 0 0 1rem;
}

.sl-legal a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

@keyframes starlight-wordmark-in {
  0% {
    opacity: 0;
    clip-path: inset(0 52% 0 52%);
    transform: translateX(-0.65em);
  }
  100% {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translateX(0);
  }
}

@keyframes starlight-wordmark-out {
  to {
    opacity: 0;
    visibility: hidden;
  }
}

@keyframes starlight-brand-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes starlight-loader-bar-out {
  to {
    opacity: 0;
    transform: translateY(0.5rem);
  }
}

@keyframes starlight-loader-bg-out {
  to {
    background-color: transparent;
  }
}

@media screen and (min-width: 992px) {
  .site-navigation_wrapper .brand {
    width: clamp(8.5rem, 10vw, 12rem);
  }

  .hero-section.is-home .site-grid > .hh-block {
    grid-column: 1 / span 2;
  }

  .hero-section.is-home .hh-block > .h2 {
    width: 100%;
    max-width: none;
    line-height: 0.94;
    white-space: nowrap;
  }

  .h1,
  .heading-200.about-third-title,
  .heading-200.about-third-title.is-second,
  .heading-200.showcases-title,
  .heading-120,
  .heading-110 {
    line-height: 0.9;
  }
}

@media screen and (max-width: 991px) {
  .site-container {
    max-width: calc(100vw - 2rem);
  }

  .site-grid,
  .site-grid > *,
  .content-block,
  .content-block > *,
  .flex-between,
  .flex-between > * {
    min-width: 0;
  }

  .h1,
  .h2,
  .h3,
  .heading-200,
  .heading-120,
  .heading-110,
  .text-24,
  .text-30 {
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .h1,
  .heading-200,
  .heading-120,
  .heading-110 {
    line-height: 0.92;
    text-wrap: balance;
  }

  .h2,
  .h3,
  .h4 {
    line-height: 1;
    text-wrap: balance;
  }

  .hero-section {
    min-height: 100svh;
    height: auto;
  }
}

@media screen and (min-width: 480px) and (max-width: 991px) {
  .hero-section.is-home .site-grid > .hh-block {
    grid-column: 1 / span 3;
  }

  .hero-section.is-home .hh-block > .h2 {
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 0.96;
    white-space: nowrap;
  }
}

@media screen and (max-width: 479px) {
  body {
    font-size: clamp(0.875rem, 4.26vw, 1.0625rem);
  }

  .site-container {
    width: calc(100vw - 2rem) !important;
    max-width: calc(100vw - 2rem);
  }

  .site-navigation_inner-wrapper,
  .mobile-menu_content,
  .footer-copy-grid,
  .flex-between {
    min-width: 0;
  }

  .site-navigation_wrapper .brand {
    width: clamp(7rem, 34vw, 8.5rem);
  }

  .mobile-navigation-overlay {
    overflow-y: auto;
  }

  .mobile-navigation-overlay .nav-links-wrapper {
    align-items: stretch;
  }

  .mobile-navigation-overlay .nav-link {
    justify-content: flex-start;
    max-width: 100%;
  }

  .h3.is-nav-link {
    font-size: clamp(1.6rem, 8vw, 2.1rem);
    line-height: 1;
  }

  .content-block.hh-block {
    max-width: 100%;
  }

  .hero-section.is-home .h2 {
    font-size: clamp(1.75rem, 9vw, 2.75rem);
    line-height: 1;
    white-space: nowrap;
  }

  .h1 {
    font-size: clamp(3.25rem, 16vw, 4.125rem);
    line-height: 0.94;
  }

  .h1.hservice_title,
  .h1.legacy-second-title {
    font-size: clamp(3rem, 14vw, 4rem);
    line-height: 0.96;
  }

  .heading-200 {
    font-size: clamp(3.4rem, 16vw, 4.5rem);
    line-height: 0.94;
  }

  .heading-200.about-third-title,
  .heading-200.about-third-title.is-second,
  .heading-200.showcases-title,
  .heading-120,
  .heading-110 {
    font-size: clamp(2.75rem, 13vw, 4rem);
    line-height: 0.96;
  }

  .h2 {
    font-size: clamp(2rem, 9vw, 2.5rem);
    line-height: 1;
  }

  .h3 {
    font-size: clamp(1.75rem, 8vw, 2.25rem);
    line-height: 1;
  }

  .centered-content-block,
  .section-title-block,
  .hpw_title-block,
  .hservice_top-block,
  .about-h1-wrapper {
    min-width: 0;
    max-width: 100%;
  }

  .centered-content-block > *,
  .section-title-block > *,
  .hpw_title-block > *,
  .hservice_top-block > * {
    min-width: 0;
    max-width: 100%;
  }

  .default-section,
  .cta-section,
  .services-block,
  .portfolio-section {
    overflow: clip;
  }

  .text-24.text-white-grey.second-sticky-text {
    font-size: clamp(1.45rem, 8vw, 2.25em);
  }

  .starlight-loader-symbol {
    width: var(--starlight-loader-size, 1.4rem) !important;
    max-width: none !important;
  }

  .loader-wordmark {
    top: 1.05rem;
    left: 1rem;
    font-size: clamp(1.7rem, 8vw, 2.5rem);
  }

  .loader .line-track {
    width: min(12rem, 52vw);
  }
}

/* Russian copy needs wider measures than the short English reference copy. */
html,
body,
.page-wrapper,
.main-wrapper,
main,
section {
  width: 100%;
  max-width: 100%;
}

html,
body,
.page-wrapper,
.main-wrapper {
  overflow-x: clip;
}

.site-container {
  width: min(115em, calc(100vw - clamp(2rem, 4.8vw, 6rem)));
  max-width: calc(100vw - clamp(2rem, 4.8vw, 6rem));
  margin-right: auto;
  margin-left: auto;
}

.site-grid,
.site-grid > *,
.content-block,
.content-block > *,
.flex-between,
.flex-between > * {
  min-width: 0;
}

@media screen and (min-width: 992px) {
  .default-section.is-home-second {
    padding-top: clamp(10rem, 16vw, 20rem);
  }

  .default-section.is-home-second .hs-sticky-block {
    top: clamp(2rem, 8vh, 7rem);
  }

  .default-section.is-home-second .site-grid:first-child > .h1 {
    grid-column: 1 / span 3 !important;
  }

  .default-section.is-home-second .site-grid.hs-next > .spacer {
    grid-column: 1 / span 1 !important;
  }

  .default-section.is-home-second .site-grid.hs-next > .h1 {
    grid-column: 2 / span 3 !important;
  }

  .default-section.is-home-second .h1 {
    width: 100%;
    max-width: none;
    font-size: clamp(6rem, 9.4vw, 12rem);
    line-height: 0.86;
    white-space: nowrap;
  }

  .default-section.is-home-second .site-grid.hs-next {
    margin-top: clamp(0.75rem, 2vw, 2.5rem);
  }

  .default-section.is-home-second .site-grid.hs-last {
    margin-top: clamp(4rem, 8vw, 10rem);
  }

  .default-section.is-home-second .second-sticky-text {
    grid-column: 2 / span 2 !important;
    width: 100%;
    max-width: 44rem;
    margin-left: auto;
    font-size: clamp(1rem, 1.25vw, 1.5rem);
    line-height: 1.25;
  }

  .services-block {
    width: 100%;
    max-width: 100%;
    margin-top: clamp(5rem, 7vw, 8rem);
    gap: clamp(3rem, 5vw, 6rem);
    overflow: clip;
  }

  .hservice-item {
    width: 100%;
    max-width: 100%;
    gap: clamp(2rem, 3vw, 3.75rem);
  }

  .hservice-item:not(.is-active) {
    opacity: 0.16;
    filter: blur(3px);
    transform: scale(0.88);
  }

  .hservice-item .hservice_content {
    width: min(100%, 88rem);
    max-width: 100%;
  }

  .hservice_top-block {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    align-items: flex-start;
  }

  .h1.hservice_title {
    width: auto;
    max-width: calc(100% - 4rem);
    font-size: clamp(5.5rem, 10.2vw, 12.5rem);
    line-height: 0.88;
    white-space: nowrap;
  }

  .heading-32.hservice_index {
    flex: 0 0 auto;
    margin-top: 0.25em;
    font-size: clamp(1.25rem, 1.7vw, 2rem);
  }

  .text-14.hservice_subtitle {
    width: min(100%, 64rem);
    max-width: 64rem;
    margin-top: 1rem;
    margin-right: auto;
    margin-left: auto;
    font-size: clamp(0.82rem, 0.85vw, 1rem);
    line-height: 1.35;
    text-align: center;
    white-space: normal;
  }

  .text-30.hservice_bottom-line {
    position: static;
    width: min(100%, 64rem);
    max-width: 64rem;
    margin: 0 auto;
    font-size: clamp(1rem, 1.25vw, 1.5rem);
    line-height: 1.25;
    white-space: normal;
    text-align: center;
    transform: none;
  }
}

@media screen and (min-width: 480px) and (max-width: 991px) {
  .default-section.is-home-second .h1 {
    font-size: clamp(4rem, 11vw, 7rem);
    line-height: 0.9;
  }

  .default-section.is-home-second .site-grid.hs-next,
  .default-section.is-home-second .site-grid.hs-last {
    margin-top: clamp(2rem, 6vw, 5rem);
  }

  .h1.hservice_title {
    font-size: clamp(3.75rem, 11vw, 6.5rem);
    line-height: 0.92;
  }

  .services-block,
  .hservice-item,
  .hservice-item .hservice_content,
  .hservice_top-block {
    width: 100%;
    max-width: 100%;
  }

  .hservice-item {
    gap: 2rem;
  }

  .text-14.hservice_subtitle {
    max-width: min(90%, 42rem);
    margin-right: auto;
    margin-left: auto;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
  }

  .text-30.hservice_bottom-line {
    position: static;
    width: min(90%, 42rem);
    max-width: 42rem;
    margin: 0 auto;
    line-height: 1.3;
    text-align: center;
    white-space: normal;
    transform: none;
  }
}

@media screen and (max-width: 479px) {
  .default-section.is-home-second .h1,
  .default-section.is-home-second .h1.text-right.is-left {
    width: 100%;
    max-width: 100%;
    font-size: clamp(3rem, 15vw, 4rem);
    line-height: 0.92;
    white-space: normal;
    text-align: left;
  }

  .default-section.is-home-second .site-grid.hs-next {
    margin-top: 2rem;
  }

  .default-section.is-home-second .site-grid.hs-last {
    margin-top: 3rem;
  }

  .services-block {
    gap: 3.25rem;
    margin-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  .hservice-item {
    width: 100%;
    max-width: 100%;
    gap: 1.25rem;
    filter: none;
    opacity: 1;
    transform: none;
  }

  .hservice_top-block {
    width: 100%;
  }

  .h1.hservice_title {
    width: 100%;
    max-width: 100%;
    font-size: clamp(2.8rem, 13vw, 3.75rem);
    white-space: normal;
  }

  .text-14.hservice_subtitle {
    max-width: 100%;
    margin-left: 0;
    font-size: 0.8rem;
    line-height: 1.4;
    text-align: left;
    white-space: normal;
  }
}

/* About / team: consistent Russian typography and accessible image switching. */
.team-scroll-wrapper {
  height: 220vh;
  min-height: 70rem;
}

.team-grid {
  align-items: center;
}

.team-description_block {
  gap: clamp(1.75rem, 2.5vw, 3rem);
}

.content-block.team-title-block {
  align-items: flex-start;
  opacity: 0.42;
  color: var(--white-grey, #b9b9b9);
  transition: opacity 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.content-block.team-title-block._1 {
  opacity: 0.42;
}

.content-block.team-title-block.is-active,
.content-block.team-title-block:hover,
.content-block.team-title-block:focus-within {
  opacity: 1;
  color: var(--white, #fff);
  transform: translateX(0.35rem);
}

.team-title-block .team-link {
  max-width: 100%;
  font-family: "Bebas Neue", Arial, sans-serif;
  font-size: clamp(2.75rem, 3.15vw, 4rem);
  line-height: 0.95;
  letter-spacing: 0;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.14em;
  text-wrap: balance;
}

.team-title-block .team-subtitle {
  max-width: 34rem;
  font-family: Manrope, Arial, sans-serif;
  font-size: clamp(0.95rem, 1vw, 1.2rem);
  line-height: 1.4;
  letter-spacing: 0.01em;
  text-transform: none;
  text-wrap: balance;
}

.team-pics_block {
  overflow: visible;
}

.team-member-pic {
  aspect-ratio: 2 / 3;
  object-fit: cover;
  object-position: center top;
  backface-visibility: hidden;
  will-change: opacity;
}

.team-member-pic._1 {
  transform: translate(-50%, -50%) rotate(-3deg);
}

.team-member-pic._2 {
  transform: translate(-50%, -50%) rotate(3deg);
}

/* Long Russian copy on the About page should use one rhythm and readable measure. */
.section-title-block .h2 {
  font-size: clamp(3rem, 4vw, 4.5rem);
  line-height: 0.95;
}

.section-title-block .text-24.wg-stretched {
  max-width: 52rem;
  font-family: Manrope, Arial, sans-serif;
  font-size: clamp(1rem, 1.25vw, 1.35rem);
  line-height: 1.45;
  text-align: left;
}

@media screen and (max-width: 991px) {
  .team-scroll-wrapper {
    height: 190vh;
    min-height: 58rem;
  }

  .team-title-block .team-link {
    font-size: clamp(2.4rem, 6vw, 3.5rem);
  }

  .team-title-block .team-subtitle {
    font-size: clamp(0.9rem, 2vw, 1.1rem);
  }
}

@media screen and (max-width: 767px) {
  .team-scroll-wrapper {
    height: 180vh;
    min-height: 50rem;
  }

  .team-grid {
    gap: 1.5rem;
  }

  .team-pics_block {
    height: min(72vw, 23rem);
  }

  .team-member-pic {
    width: min(58vw, 17rem);
    height: auto;
    max-height: min(76vw, 25rem);
  }

  .team-description_block {
    min-height: 8rem;
    margin-top: 1.25rem;
  }

  .content-block.team-title-block,
  .content-block.team-title-block._1 {
    gap: 0.75rem;
    opacity: 0;
  }

  .content-block.team-title-block._2 {
    inset: 0 auto auto 0;
  }

  .content-block.team-title-block.is-active {
    opacity: 1;
    transform: none;
  }

  .team-title-block .team-link {
    font-size: clamp(2.25rem, 11vw, 3.25rem);
    line-height: 0.95;
  }

  .team-title-block .team-subtitle {
    max-width: 20rem;
    font-size: clamp(0.82rem, 4vw, 1rem);
    line-height: 1.4;
  }

  .section-title-block .h2 {
    font-size: clamp(2.5rem, 12vw, 3.5rem);
  }

  .section-title-block .text-24.wg-stretched {
    max-width: 100%;
    font-size: clamp(0.95rem, 4.4vw, 1.1rem);
    line-height: 1.5;
  }
}
