.hero {
  position: relative;
  padding: 92px 0 40px;
  overflow: hidden;
  background: transparent;
}

.hero .grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: 40px;
}

h1 {
  font-size: clamp(34px, 5vw, 54px);
  line-height: 1.05;
  margin: 0 0 14px;
  letter-spacing: 0;
}

.lead {
  font-size: clamp(16px, 2.2vw, 18px);
  color: var(--muted);
  margin: 0 0 26px;
}

.cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.hint {
  font-size: 12px;
  color: var(--muted);
}

.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 28px;
}

.stat {
  display: block;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  text-align: center;
  backdrop-filter: blur(6px);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  cursor: pointer;
}

.stat b {
  font-size: clamp(28px, 4.8vw, 44px);
  display: block;
  line-height: 1;
}

.stat span {
  color: var(--muted);
  font-size: 12px;
}

.stat:hover {
  transform: translateY(-2px) scale(1.03);
}

.stat:active {
  transform: scale(0.99);
}

.scene {
  perspective: 1200px;
}

.tilt-card {
  position: relative;
  transform-style: preserve-3d;
  border-radius: 26px;
  height: min(520px, 70vh);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border);
  box-shadow: 0 40px 120px rgba(255, 45, 85, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

.tilt-card::after {
  content: "";
  position: absolute;
  inset: -1px;
  pointer-events: none;
  background: radial-gradient(600px 280px at var(--mx, 70%) -10%, rgba(255, 255, 255, 0.25), transparent 60%);
}

.tilt-inner {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  transform: translateZ(50px);
}

.tilt-inner img {
  width: min(78%, 520px);
  height: auto;
  filter: drop-shadow(0 30px 60px rgba(255, 45, 85, 0.35));
}

.orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(10px) saturate(120%);
  opacity: 0.6;
  transform: translateZ(0);
  pointer-events: none;
}

.orb.o1 {
  width: 380px;
  height: 380px;
  left: -120px;
  top: 120px;
  background: radial-gradient(circle at 30% 30%, rgba(255, 45, 85, 0.7), transparent 60%);
}

.orb.o2 {
  width: 260px;
  height: 260px;
  right: -80px;
  top: -40px;
  background: radial-gradient(circle at 30% 30%, rgba(98, 0, 234, 0.55), transparent 60%);
}

.orb.o3 {
  width: 320px;
  height: 320px;
  right: -120px;
  bottom: -120px;
  background: radial-gradient(circle at 40% 40%, rgba(0, 196, 255, 0.45), transparent 60%);
}

.hero {
  min-height: calc(100vh - 64px);
  display: flex;
  align-items: center;
  padding: 0;
  background: var(--bg);
  border-bottom: 0;
}

.hero-shell {
  position: relative;
  width: min(1780px, 92vw);
  min-height: calc(100vh - 64px);
  display: flex;
  align-items: center;
  justify-content: center;
  isolation: isolate;
}

.hero-kicker {
  position: absolute;
  top: 31%;
  left: 50%;
  z-index: 7;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transform: translateX(-50%);
  color: var(--purple);
  font-size: clamp(14px, 1.1vw, 20px);
  font-weight: 700;
  text-transform: none;
  white-space: nowrap;
}

.hero-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 4px rgba(255, 45, 85, 0.14);
  animation: heroDotBlink 1.05s ease-in-out infinite;
}

@keyframes heroDotBlink {
  0%,
  100% {
    opacity: 1;
    box-shadow: 0 0 0 4px rgba(255, 45, 85, 0.14);
  }

  50% {
    opacity: 0.38;
    box-shadow: 0 0 0 7px rgba(255, 45, 85, 0.24);
  }
}

.hero-tape {
  --hero-tape-font: clamp(20px, 2vw, 38px);
  position: absolute;
  top: 28.5%;
  left: 2.2%;
  z-index: 8;
  width: clamp(246px, 24.63vw, 468px);
  height: clamp(28px, 2.84vw, 54px);
  padding: 0;
  overflow: hidden;
  transform: rotate(-8deg);
  border: 0;
  border-radius: 0;
  background: #000;
  color: var(--yellow);
  box-shadow: none;
  white-space: nowrap;
}

.hero-tape-track {
  display: flex;
  width: max-content;
  min-width: 200%;
  height: 100%;
  align-items: center;
  gap: 0.34em;
  animation: heroTapeLoop 24.2s linear infinite;
  will-change: transform;
}

.hero-tape-track span {
  flex: 0 0 auto;
  font-size: var(--hero-tape-font);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

@keyframes heroTapeLoop {
  from {
    transform: translateX(0);
  }

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

.hero-photo-frame {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: clamp(170px, 17vw, 330px);
  height: clamp(72px, 6.8vw, 132px);
  margin: 0 clamp(16px, 2.3vw, 42px);
  overflow: visible;
  vertical-align: middle;
  transform: translate(var(--hero-card-x, 0px), var(--hero-card-y, 0px)) rotate(-2.5deg) translateY(0.06em);
  border-radius: 5px;
  background: transparent;
  isolation: isolate;
}

.hero-photo-frame::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background: var(--yellow);
}

.hero-photo-mask {
  position: absolute;
  display: block;
  z-index: 1;
  left: 0;
  right: 0;
  bottom: 0;
  height: 330%;
  overflow: hidden;
  clip-path: inset(0 0 0 0);
  contain: paint;
  pointer-events: none;
}

.hero-photo-frame img {
  position: absolute;
  left: 50%;
  bottom: -42%;
  width: auto;
  height: 116%;
  max-width: none;
  transform: translate(calc(-50% + var(--yuna-x, 0px)), var(--yuna-y, 0px));
  object-fit: contain;
  clip-path: none;
  filter: saturate(1.08) contrast(1.03) drop-shadow(0 10px 16px rgba(47, 0, 53, 0.24));
  transition: transform 0.18s ease-out;
}

.hero-stamp {
  --hero-stamp-size: clamp(112px, 8.5vw, 164px);
  position: absolute;
  right: clamp(32px, 6vw, 96px);
  bottom: clamp(66px, 10vh, 108px);
  z-index: 9;
  display: block;
  width: var(--hero-stamp-size);
  height: var(--hero-stamp-size);
  flex: 0 0 var(--hero-stamp-size);
  aspect-ratio: 1;
  transform: rotate(-8deg);
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent;
  box-shadow: none !important;
  color: inherit;
  text-align: initial;
}

.hero-stamp-face {
  fill: #000;
}

.hero-stamp-shadow {
  fill: var(--yellow);
}

.hero-stamp-text,
.hero-stamp-number {
  font-family: inherit;
  font-style: normal;
  letter-spacing: 0;
  text-transform: uppercase;
}

.hero-stamp-text {
  fill: #fff;
  font-size: 18.9px;
  font-weight: 900;
}

.hero-stamp-number {
  fill: var(--yellow);
  font-size: 62.4px;
  font-weight: 700;
}

.hero-title {
  position: relative;
  z-index: 3;
  width: 100%;
  margin: 0 auto;
  color: #050505;
  font-size: clamp(65px, 8vw, 152px);
  font-weight: 300;
  line-height: 0.82;
  text-align: center;
  text-transform: none;
  transform: translateY(clamp(28px, 5.2vh, 72px));
}

.hero-line {
  display: block;
  white-space: nowrap;
}

.hero-title .hero-line:not(.hero-line-accent) {
  transform: translateY(clamp(-58px, -5vh, -34px));
}

.hero-line-accent {
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.hero-title em {
  color: var(--brand);
  font-style: normal;
  font-weight: 640;
}

.hero-title > .t {
  display: block;
}

body.lang-en .hero-title > .t-ru,
body.lang-ru .hero-title > .t-en {
  display: none;
}

.hero-bottom {
  position: absolute;
  left: 50%;
  bottom: clamp(34px, 5.6vh, 62px);
  z-index: 7;
  transform: translateX(-50%);
}

.hero-bottom .btn {
  --hero-cta-aspect-ratio: 4.75;
  --hero-cta-reference-font-size: clamp(13px, 0.95vw, 18px);
  --hero-cta-height: calc(var(--hero-cta-reference-font-size) + 38px);
  container-type: size;
  width: var(--hero-cta-width, auto);
  height: var(--hero-cta-height);
  min-width: 0;
  min-height: 0;
  aspect-ratio: var(--hero-cta-aspect-ratio);
  padding: 0;
  border: 3px solid var(--brand);
  background: var(--bg);
  color: var(--purple);
  box-shadow: none;
  font-size: var(--hero-cta-reference-font-size);
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
  text-wrap: nowrap;
  white-space: nowrap;
}

.hero-bottom .btn > span,
.hero-bottom .btn .t {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: calc(25cqh + 1.5px);
  font-size: calc(25cqh + 1.5px);
  line-height: 1;
  white-space: nowrap;
}

body.lang-en .hero-bottom .btn .t-ru,
body.lang-ru .hero-bottom .btn .t-en {
  display: none;
}

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