:root {
  --brand: #ff2d55;
  --cream: #fffaf2;
  --yellow: #ffca3f;
  --pink: #ff2f70;
  --red: #cc0b20;
  --purple: #2f0035;
  --violet: #4f00c7;
  --blue: #001c90;
  --bg: #fffaf2;
  --text: #2f0035;
  --muted: #6d5872;
  --card: rgba(255, 255, 255, 0.82);
  --border: rgba(47, 0, 53, 0.14);
  --shadow: 0 18px 50px rgba(47, 0, 53, 0.12);
  --radius: 8px;
  --section-heading-size: clamp(47.5px, 5.814vw, 110.2px);
  --section-heading-size-md: clamp(40.85px, 7.524vw, 85.5px);
  --section-heading-size-sm: clamp(27.55px, 8.9775vw, 45.6px);
  --section-heading-size-xs: clamp(25.65px, 8.721vw, 37.05px);
  --section-gap-sm: clamp(28px, 5vw, 56px);
  --section-gap-md: clamp(52px, 8vw, 108px);
  --section-gap-lg: clamp(76px, 10vw, 146px);
  --header-side-padding: clamp(12px, 7vw, 390px);
  --header-content-width: min(1780px, calc(100vw - (var(--header-side-padding) * 2)));
  --header-content-width-portrait: min(1040px, calc(100vw - (var(--header-side-padding) * 2)));
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
  width: 100%;
}

html {
  scroll-behavior: smooth;
  background: var(--bg);
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  font: 16px/1.6 'Inter', 'Inter Fallback', system-ui, -apple-system, 'Segoe UI', Roboto, Ubuntu, Cantarell, 'Noto Sans', Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  overflow-x: hidden;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  overscroll-behavior-x: none;
  position: relative;
}

@supports (overflow: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

@media (hover: hover) and (pointer: fine) {
  body.has-custom-cursor,
  body.has-custom-cursor * {
    cursor: none !important;
  }
}

.site-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2147483647;
  width: var(--cursor-size, 32px);
  height: var(--cursor-size, 32px);
  border-radius: 50%;
  background-color: var(--cursor-color, #fff);
  mix-blend-mode: var(--cursor-blend, difference);
  pointer-events: none;
  opacity: 0;
  overflow: visible;
  transform:
    translate3d(var(--cursor-x, -100px), var(--cursor-y, -100px), 0)
    translate(-50%, -50%)
    rotate(var(--cursor-rotate, 0deg))
    scale(var(--cursor-scale-x, 1), var(--cursor-scale-y, 1));
  transition:
    opacity 0.08s linear,
    width 0.14s ease,
    height 0.14s ease,
    background-color 0.1s ease;
  will-change: transform, opacity, width, height;
}

.site-cursor::before,
.site-cursor::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: inherit;
  pointer-events: none;
  transform-origin: center;
}

.site-cursor::before {
  opacity: var(--cursor-lobe-opacity, 0);
  transform:
    translate3d(var(--cursor-lobe-x, 0px), var(--cursor-lobe-y, 0px), 0)
    scale(var(--cursor-lobe-scale-x, 1), var(--cursor-lobe-scale-y, 1));
  filter: blur(0.5px);
}

.site-cursor::after {
  opacity: var(--cursor-tail-opacity, 0);
  transform:
    translate3d(var(--cursor-tail-x, 0px), var(--cursor-tail-y, 0px), 0)
    scale(var(--cursor-tail-scale-x, 1), var(--cursor-tail-scale-y, 1));
  filter: blur(1.2px);
}

body.has-custom-cursor .site-cursor {
  opacity: var(--cursor-opacity, 1);
}

.site-cursor.is-nav-magnetic {
  opacity: 0;
}

body.has-custom-cursor .site-cursor.is-proof-coalescing {
  transition: none;
}

.email-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2147483647;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px 18px;
  border-radius: 14px;
  background: var(--brand);
  color: #fff;
  font-size: 18.4px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform:
    translate3d(var(--email-cursor-x, -120px), var(--email-cursor-y, -120px), 0)
    translate(-50%, -50%);
  transition: opacity 0.08s linear;
  will-change: transform, opacity;
}

.email-cursor.is-visible {
  opacity: 1;
}

.email-cursor svg {
  display: block;
  width: 24.84px;
  height: 24.84px;
  flex: 0 0 auto;
  color: currentColor;
}

a {
  color: inherit;
  text-decoration: none;
}

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

section,
header,
footer {
  max-width: 100%;
}

@media (hover: none), (pointer: coarse) {
  *,
  *::before,
  *::after {
    -webkit-tap-highlight-color: transparent;
  }

  a,
  button,
  summary,
  [role="button"],
  [tabindex]:not([tabindex="-1"]) {
    -webkit-tap-highlight-color: transparent;
  }
}

@media (hover: none) and (pointer: coarse) and (orientation: landscape) and (max-width: 980px) and (max-height: 600px) {
  html,
  body {
    overflow: hidden;
  }

  body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 2147483646;
    background: var(--bg);
    pointer-events: auto;
  }

  body::after {
    content: "";
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 2147483647;
    width: min(72vw, 360px);
    color: var(--brand);
    font-size: clamp(22px, 5vw, 34px);
    font-weight: 900;
    line-height: 1.05;
    text-align: center;
    transform: translate(-50%, -50%);
    pointer-events: none;
  }

  body.lang-ru::after {
    content: "";
  }
}

.container {
  width: min(1180px, 92vw);
  margin: 0 auto;
}

.t {
  display: inline;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: 14px;
  left: 14px;
  z-index: 2147483647;
  padding: 10px 14px;
  border-radius: 8px;
  background: var(--purple);
  color: #fff;
  font-size: 14px;
  font-weight: 850;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
}

.skip-link:focus-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  outline: 3px solid var(--yellow);
  outline-offset: 3px;
}

body.lang-en .t-ru {
  display: none;
}

body.lang-ru .t-en {
  display: none;
}

header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 30;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
}

.nav-red-mask,
.nav-yellow-mask,
.nav-purple-mask {
  position: fixed;
  z-index: 2;
  margin: 0;
  pointer-events: none;
  overflow: visible;
  clip-path: inset(0 100% 100% 0);
  -webkit-clip-path: inset(0 100% 100% 0);
}

.nav-red-mask .brand {
  color: var(--yellow);
}

.nav-red-mask .brand img {
  filter: none;
}

.nav-red-mask .menu-links a,
.nav-red-mask .lang-toggle button:not(.active):not([aria-pressed="true"]) {
  color: #fff;
}

.nav-red-mask .menu-links a:hover,
.nav-red-mask .menu-links a:focus-visible,
.nav-red-mask .menu-links a.is-nav-magnetic {
  color: #fff;
}

.nav-red-mask .menu-links a::before,
.nav-red-mask [data-nav-magnet]::before {
  background: var(--yellow);
}

.nav-red-mask .lang-toggle button:not(.active):not([aria-pressed="true"]):hover,
.nav-red-mask .lang-toggle button:not(.active):not([aria-pressed="true"]):focus-visible,
.nav-red-mask .lang-toggle button:not(.active):not([aria-pressed="true"]).is-nav-magnetic {
  box-shadow: inset 0 0 0 2px var(--yellow);
}

.nav-red-mask .lang-toggle button.active,
.nav-red-mask .lang-toggle button[aria-pressed="true"],
.nav-red-mask .btn.primary {
  background: var(--yellow);
  color: var(--purple);
}

.nav-red-mask .nav-contact-track {
  color: var(--purple);
}

.nav-yellow-mask .brand {
  color: var(--purple);
}

.nav-yellow-mask .brand img {
  filter: none;
}

.nav-yellow-mask .menu-links a,
.nav-yellow-mask .lang-toggle button:not(.active):not([aria-pressed="true"]) {
  color: var(--purple);
}

.nav-yellow-mask .menu-links a:hover,
.nav-yellow-mask .menu-links a:focus-visible,
.nav-yellow-mask .menu-links a.is-nav-magnetic {
  color: #fff;
}

.nav-yellow-mask .menu-links a::before,
.nav-yellow-mask [data-nav-magnet]::before {
  background: var(--purple);
}

.nav-yellow-mask .lang-toggle button:not(.active):not([aria-pressed="true"]):hover,
.nav-yellow-mask .lang-toggle button:not(.active):not([aria-pressed="true"]):focus-visible,
.nav-yellow-mask .lang-toggle button:not(.active):not([aria-pressed="true"]).is-nav-magnetic {
  box-shadow: inset 0 0 0 2px var(--purple);
}

.nav-yellow-mask .lang-toggle button.active,
.nav-yellow-mask .lang-toggle button[aria-pressed="true"],
.nav-yellow-mask .btn.primary {
  background: var(--purple);
  color: #fff;
}

.nav-yellow-mask .nav-contact-track {
  color: #fff;
}

.nav-purple-mask .menu-links a,
.nav-purple-mask .lang-toggle button:not(.active):not([aria-pressed="true"]) {
  color: #fff;
}

.nav-purple-mask .brand {
  visibility: visible;
  color: var(--brand);
}

.nav-purple-mask .brand img {
  filter: none;
}

.nav-purple-mask .lang-toggle button.active,
.nav-purple-mask .lang-toggle button[aria-pressed="true"],
.nav-purple-mask .btn.primary {
  visibility: hidden;
}

.nav {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr);
  align-items: center;
  gap: clamp(22px, 3vw, 64px);
  width: var(--header-content-width);
  padding: clamp(26px, 3.6vw, 64px) 0 0;
}

.brand {
  display: flex;
  align-items: center;
  justify-self: start;
  gap: clamp(8px, 0.7vw, 14px);
  color: var(--brand);
  transform: translateX(-20%);
}

.brand img {
  display: block;
  width: clamp(26px, 2vw, 40px);
  height: auto;
  filter: drop-shadow(0 8px 18px rgba(255, 45, 85, 0.18));
}

.brand b {
  font-size: clamp(30px, 2.35vw, 48px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 0.9;
  white-space: nowrap;
}

.menu {
  display: contents;
}

.menu-links {
  display: flex;
  align-items: center;
  justify-self: center;
  gap: clamp(36px, 3.2vw, 62px);
}

.menu a {
  color: var(--purple);
  font-size: clamp(15px, 1.05vw, 20px);
  font-weight: 700;
  line-height: 1;
}

.menu a:hover {
  color: var(--brand);
}

.menu-links a {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 34px;
  padding: 10px 14px;
  border-radius: 999px;
  transform: translate3d(var(--nav-magnet-x, 0px), var(--nav-magnet-y, 0px), 0);
  transition:
    color 0.14s ease,
    transform 0.34s cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-links a::before {
  content: "";
  position: absolute;
  inset: 2px -10px;
  z-index: -1;
  border-radius: 999px;
  background: var(--brand);
  opacity: 0;
  transform: scale(0.64);
  transition:
    opacity 0.08s linear,
    transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-links a:hover,
.menu-links a:focus-visible,
.menu-links a.is-nav-magnetic {
  color: #fff;
}

.menu-links a:hover::before,
.menu-links a:focus-visible::before,
.menu-links a.is-nav-magnetic::before {
  opacity: 1;
  transform: scale(1);
}

.menu-links a.is-nav-magnetic {
  transform:
    translate3d(var(--nav-magnet-x, 0px), var(--nav-magnet-y, 0px), 0)
    scale(1.03);
}

.menu-links a.is-section-active,
.menu-links a.is-section-active:hover,
.menu-links a.is-section-active:focus-visible,
.menu-links a.is-section-active.is-nav-magnetic {
  color: var(--brand) !important;
}

.menu-links a.is-section-active::before,
.menu-links a.is-section-active:hover::before,
.menu-links a.is-section-active:focus-visible::before,
.menu-links a.is-section-active.is-nav-magnetic::before {
  opacity: 0 !important;
  transform: scale(0.64) !important;
  transition: none;
}

[data-nav-magnet] {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform: translate3d(var(--nav-magnet-x, 0px), var(--nav-magnet-y, 0px), 0);
  transition:
    color 0.14s ease,
    transform 0.34s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-nav-magnet]::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background: var(--brand);
  opacity: 0;
  transform: scale(0.64);
  transition: none;
}

[data-nav-magnet]:hover,
[data-nav-magnet]:focus-visible,
[data-nav-magnet].is-nav-magnetic {
  color: #fff;
}

[data-nav-magnet]:hover::before,
[data-nav-magnet]:focus-visible::before,
[data-nav-magnet].is-nav-magnetic::before {
  opacity: 1;
  transform: scale(1);
}

[data-nav-magnet].is-nav-magnetic {
  transform:
    translate3d(var(--nav-magnet-x, 0px), var(--nav-magnet-y, 0px), 0)
    scale(1.03);
}

[data-nav-magnet] > span {
  position: relative;
  z-index: 1;
}

@media (hover: none), (pointer: coarse) {
  .menu a:hover,
  .menu-links a:hover,
  .menu-links a:focus-visible,
  .menu-links a.is-nav-magnetic,
  .nav-red-mask .menu-links a:hover,
  .nav-red-mask .menu-links a:focus-visible,
  .nav-red-mask .menu-links a.is-nav-magnetic,
  .nav-yellow-mask .menu-links a:hover,
  .nav-yellow-mask .menu-links a:focus-visible,
  .nav-yellow-mask .menu-links a.is-nav-magnetic,
  [data-nav-magnet]:hover,
  [data-nav-magnet]:focus-visible,
  [data-nav-magnet].is-nav-magnetic {
    color: var(--purple);
  }

  .menu-links a.is-section-active,
  .menu-links a.is-section-active:hover,
  .menu-links a.is-section-active:focus-visible,
  .menu-links a.is-section-active.is-nav-magnetic,
  [data-nav-magnet].is-section-active,
  [data-nav-magnet].is-section-active:hover,
  [data-nav-magnet].is-section-active:focus-visible,
  [data-nav-magnet].is-section-active.is-nav-magnetic {
    color: var(--brand) !important;
  }

  .menu-links a::before,
  .menu-links a:hover::before,
  .menu-links a:focus-visible::before,
  .menu-links a.is-nav-magnetic::before,
  .nav-red-mask .menu-links a::before,
  .nav-yellow-mask .menu-links a::before,
  [data-nav-magnet]::before,
  [data-nav-magnet]:hover::before,
  [data-nav-magnet]:focus-visible::before,
  [data-nav-magnet].is-nav-magnetic::before {
    opacity: 0 !important;
    transform: scale(0.64) !important;
  }

  .menu-links a,
  .menu-links a.is-nav-magnetic,
  [data-nav-magnet],
  [data-nav-magnet].is-nav-magnetic {
    transform: none;
  }
}

.menu a.nav-contact:hover,
.menu a.nav-contact:focus-visible,
.menu a.nav-contact.is-marquee {
  color: #fff;
}

.menu-actions {
  --nav-contact-aspect-ratio: 3.40625;
  --nav-contact-width: clamp(172px, 10.7vw, 218px);
  --nav-contact-height: clamp(50.5px, 3.141vw, 64px);
  --nav-contact-fallback-font-size: clamp(13.88px, 0.864vw, 17.6px);
  --lang-toggle-button-size: clamp(25.25px, 1.5705vw, 32px);
  --lang-toggle-aspect-ratio: 1.3;
  --lang-toggle-font-size: clamp(9.47px, 0.589vw, 12px);
  display: flex;
  align-items: center;
  justify-self: end;
  gap: clamp(14px, 1.4vw, 24px);
  transform: translateX(20%);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid var(--border);
  background: #fff;
  box-shadow: 0 10px 30px rgba(47, 0, 53, 0.08);
  color: var(--purple);
}

.btn.primary {
  border-color: #000;
  background: var(--brand);
  color: #fff;
  box-shadow: none;
}

.nav-contact.btn.primary {
  position: relative;
  container-type: size;
  width: var(--nav-contact-width);
  aspect-ratio: var(--nav-contact-aspect-ratio);
  height: var(--nav-contact-height);
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 0 !important;
  font-size: var(--nav-contact-fallback-font-size);
  font-weight: 900;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  box-shadow: none;
}

.nav-contact-track {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  display: none;
  z-index: 2;
  width: max-content;
  align-items: center;
  gap: 0.84em;
  color: #fff;
  transform: translateX(-50%);
  will-change: transform;
  pointer-events: none;
}

.nav-contact-label {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 66%;
  width: 66cqw;
  height: 27.5%;
  height: 27.5cqh;
  line-height: 1;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.nav-contact-track span {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 27.5cqh;
  line-height: 1;
  white-space: nowrap;
}

.nav-contact-label .t {
  display: inline-flex;
  justify-content: center;
  width: 100%;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.nav-contact:focus-visible .nav-contact-track,
.nav-contact.is-marquee .nav-contact-track {
  display: flex;
  animation: contactMarquee 4s linear infinite;
}

.nav-contact:focus-visible .nav-contact-label,
.nav-contact.is-marquee .nav-contact-label {
  display: none;
}

body.lang-en .nav-contact-track-ru,
body.lang-ru .nav-contact-track-en {
  display: none;
}

body.lang-en .nav-contact:focus-visible .nav-contact-track-ru,
body.lang-en .nav-contact.is-marquee .nav-contact-track-ru,
body.lang-ru .nav-contact:focus-visible .nav-contact-track-en,
body.lang-ru .nav-contact.is-marquee .nav-contact-track-en {
  display: none;
  animation: none;
}

@keyframes contactMarquee {
  from {
    transform: translateX(-50%);
  }

  to {
    transform: translateX(calc(-50% - 14.285%));
  }
}

.btn.lg {
  padding: 16px 26px;
  font-size: 1.06rem;
}

.btn.disabled,
.btn[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
  color: #fff;
}

.lang-toggle {
  display: flex;
  gap: 6px;
  align-items: center;
}

.lang-toggle button {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: auto;
  height: var(--lang-toggle-button-size);
  aspect-ratio: var(--lang-toggle-aspect-ratio);
  border: 0;
  background: transparent;
  color: var(--purple);
  padding: 0;
  border-radius: 999px;
  font: inherit;
  font-size: var(--lang-toggle-font-size);
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: var(--lang-toggle-button-size);
  text-align: center;
  cursor: pointer;
  transform: translate3d(var(--nav-magnet-x, 0px), var(--nav-magnet-y, 0px), 0);
  transition:
    box-shadow 0.14s ease,
    transform 0.34s cubic-bezier(0.16, 1, 0.3, 1);
}

.lang-toggle button:not(.active):not([aria-pressed="true"]):hover,
.lang-toggle button:not(.active):not([aria-pressed="true"]):focus-visible,
.lang-toggle button:not(.active):not([aria-pressed="true"]).is-nav-magnetic {
  box-shadow: inset 0 0 0 2px var(--brand);
}

.lang-toggle button:not(.active):not([aria-pressed="true"]).is-nav-magnetic {
  transform:
    translate3d(var(--nav-magnet-x, 0px), var(--nav-magnet-y, 0px), 0)
    scale(1.03);
}

.lang-toggle button.active,
.lang-toggle button[aria-pressed="true"] {
  background: var(--brand);
  color: #fff;
  border-color: transparent;
}
