/* Движение поддерживает композицию Figma: никаких новых блоков и сдвигов сетки. */
.scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 30;
  width: 100%;
  height: 4px;
  transform: scaleX(var(--scroll-progress, 0));
  transform-origin: left;
  background: linear-gradient(90deg, #7ea7f5 0%, #1e64f0 65%, #ffb625 100%);
  pointer-events: none;
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(
    600px circle at var(--hero-x, 75%) var(--hero-y, 42%),
    rgba(61, 124, 255, 0.22),
    transparent 72%
  );
  opacity: 0.9;
}
.hero-grid,
.hero-topics {
  z-index: 1;
}
.hero-placeholder {
  box-shadow: 0 35px 90px rgba(1, 12, 29, 0.16);
  transition:
    box-shadow 0.45s ease,
    translate 0.45s ease;
}
.hero-placeholder:hover {
  translate: 0 -8px;
  box-shadow: 0 45px 100px rgba(1, 12, 29, 0.28);
}
.button,
.header-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition:
    translate 0.25s ease,
    box-shadow 0.25s ease,
    filter 0.25s ease;
}
.button::after,
.header-cta::after {
  content: "";
  position: absolute;
  inset: -50% auto -50% -100%;
  width: 55%;
  transform: skewX(-24deg);
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.27),
    transparent
  );
  transition: left 0.65s ease;
  pointer-events: none;
}
.button:hover,
.header-cta:hover {
  translate: 0 -3px;
  box-shadow: 0 12px 28px rgba(30, 100, 240, 0.3);
}
.button:hover::after,
.header-cta:hover::after {
  left: 155%;
}

#registration-form .button::after {
  display: none;
}
.button:active,
.header-cta:active {
  translate: 0 0;
  box-shadow: none;
}
.promise-card,
.news-feature,
.news-small,
.news-video,
.environment-card {
  transition:
    translate 0.4s cubic-bezier(0.2, 0.75, 0.25, 1),
    box-shadow 0.4s ease,
    filter 0.4s ease;
}
.promise-card:hover,
.news-feature:hover,
.news-small:hover,
.news-video:hover,
.environment-card:not(.is-floating):hover {
  translate: 0 -8px;
  box-shadow: 0 22px 45px rgba(5, 25, 56, 0.18);
}
.environment-grid {
  position: relative;
  z-index: 0;
}
.environment-glass {
  position: relative;
  z-index: 1;
  display: flow-root;
  isolation: isolate;
  pointer-events: none;
}
.environment-glass::before {
  content: "";
  position: absolute;
  inset: -24px -20px;
  z-index: -1;
  border-radius: 32px;
  border: 1px solid rgba(210, 231, 255, 0.28);
  background: linear-gradient(135deg, rgba(39, 67, 103, 0.96), rgba(12, 29, 51, 0.94));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(144, 194, 255, 0.1),
    0 16px 48px rgba(3, 12, 28, 0.18);
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .environment-glass::before {
    background: linear-gradient(135deg, rgba(39, 67, 103, 0.72), rgba(12, 29, 51, 0.68));
    -webkit-backdrop-filter: blur(22px) saturate(145%);
    backdrop-filter: blur(22px) saturate(145%);
  }
}
.environment-glass .eyebrow {
  color: #a9cdff;
}
.environment-glass h2 {
  text-shadow: 0 2px 16px rgba(0, 10, 28, 0.3);
}
@media (max-width: 600px) {
  .environment-glass::before {
    inset: -20px -10px;
    border-radius: 24px;
  }
}
.environment-card.is-floating {
  position: relative;
  cursor: grab;
  user-select: none;
  touch-action: pan-y;
  will-change: translate;
  transition: box-shadow 0.25s ease;
}
.environment-card.is-dragging {
  cursor: grabbing;
  box-shadow: 0 28px 60px rgba(0, 0, 0, 0.3);
}
.environment-drag-handle {
  position: absolute;
  top: 22px;
  right: 22px;
  width: 44px;
  height: 44px;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 26px;
  cursor: inherit;
  touch-action: none;
}
.environment-drag-handle:focus-visible {
  outline: 3px solid #ffb625;
  outline-offset: 5px;
}
.news-panel {
  position: relative;
  overflow: hidden;
}
.news-panel::before {
  content: "";
  position: absolute;
  inset: -35% -30% auto auto;
  width: 75%;
  aspect-ratio: 1;
  pointer-events: none;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(44, 104, 237, 0.12),
    transparent 70%
  );
}
.news-illustration .sun {
  animation: sun-drift 8s ease-in-out infinite alternate;
}
.news-illustration .mountain-one {
  animation: mountain-drift 10s ease-in-out infinite alternate;
}
.news-illustration .mountain-two {
  animation: mountain-drift 13s ease-in-out infinite alternate-reverse;
}
.play {
  animation: play-breathe 3.4s ease-in-out infinite;
}
.direction {
  position: relative;
  isolation: isolate;
  transition:
    padding-left 0.35s ease,
    background-color 0.35s ease;
}
.direction::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 auto 0 0;
  width: 0;
  background: linear-gradient(
    90deg,
    rgba(30, 100, 240, 0.1),
    rgba(30, 100, 240, 0)
  );
  transition: width 0.45s ease;
}
.direction:hover {
  padding-left: 12px;
}
.direction:hover::before {
  width: 100%;
}
.direction h3,
.direction-symbol {
  transition:
    transform 0.45s cubic-bezier(0.2, 0.75, 0.25, 1),
    color 0.35s ease;
}
.direction:hover h3 {
  transform: translateX(7px);
  color: #1e64f0;
}
.direction:hover .direction-symbol {
  transform: rotate(18deg) scale(1.13);
}
.environment-icon,
.icon-ring {
  transition: transform 0.45s cubic-bezier(0.2, 0.75, 0.25, 1);
}
.environment-card:hover .environment-icon,
.promise-card:hover .icon-ring {
  transform: rotate(-12deg) scale(1.1);
}
.registration-card {
  transition: box-shadow 0.45s ease;
}
.registration-card:focus-within {
  box-shadow: 0 30px 80px rgba(18, 71, 185, 0.22);
}
.field input,
.field select {
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    background-color 0.25s ease;
}
.field input:hover,
.field select:hover {
  border-color: #7ea7f5;
}
.field input:focus,
.field select:focus {
  box-shadow: 0 0 0 6px rgba(30, 100, 240, 0.1);
}
html.motion-ready .hero .eyebrow {
  animation: hero-enter 0.65s both 0.05s;
}
html.motion-ready .hero-line {
  display: block;
  animation: hero-enter 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(0.12s + var(--line-index, 0) * 0.13s);
}
html.motion-ready .hero-lead {
  animation: hero-enter 0.8s both 0.68s;
}
html.motion-ready .hero .button {
  animation: hero-enter 0.75s both 0.83s;
}
html.motion-ready .hero-placeholder {
  animation: placeholder-enter 1.1s cubic-bezier(0.16, 1, 0.3, 1) both 0.35s;
}
html.motion-ready .hero-topics span {
  animation: hero-enter 0.65s both;
  animation-delay: calc(0.8s + var(--topic-index, 0) * 0.08s);
}
html.motion-ready .reveal {
  opacity: 0;
  translate: 0 34px;
  transition:
    opacity 0.7s ease,
    translate 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--reveal-delay, 0ms);
}
html.motion-ready .reveal.is-visible {
  opacity: 1;
  translate: 0 0;
}
@keyframes hero-enter {
  from {
    opacity: 0;
    transform: translateY(30px);
    filter: blur(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}
@keyframes placeholder-enter {
  from {
    opacity: 0;
    transform: translate(40px, 15px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translate(0, 0) scale(1);
  }
}
@keyframes sun-drift {
  from {
    transform: translate(-8px, 8px) scale(0.98);
  }
  to {
    transform: translate(10px, -12px) scale(1.06);
  }
}
@keyframes mountain-drift {
  from {
    transform: translateX(-2%);
  }
  to {
    transform: translateX(2%);
  }
}
@keyframes play-breathe {
  50% {
    box-shadow: 0 0 0 18px rgba(127, 196, 251, 0.16);
    transform: translateX(-50%) scale(1.035);
  }
}
@media (max-width: 1000px) {
  .hero::after {
    background: radial-gradient(
      400px circle at 70% 52%,
      rgba(61, 124, 255, 0.16),
      transparent 72%
    );
  }
  .direction:hover {
    padding-left: 0;
  }
  .direction:hover h3 {
    transform: none;
  }
  .direction:hover .direction-symbol {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-progress {
    display: none;
  }
  .hero::after {
    display: none;
  }
  html.motion-ready .hero .eyebrow,
  html.motion-ready .hero-line,
  html.motion-ready .hero-lead,
  html.motion-ready .hero .button,
  html.motion-ready .hero-placeholder,
  html.motion-ready .hero-topics span {
    animation: none !important;
  }
  html.motion-ready .reveal {
    opacity: 1;
    translate: none;
    transition: none;
  }
  .sun,
  .mountain,
  .play {
    animation: none !important;
  }
  .button,
  .header-cta,
  .promise-card,
  .news-feature,
  .news-small,
  .news-video,
  .environment-card,
  .direction,
  .direction h3,
  .direction-symbol,
  .environment-icon,
  .icon-ring,
  .field input,
  .field select,
  .registration-card {
    transition: none !important;
  }
}
