/* Shortex · Astra scroll story. See docs/landing-redesign-2026-09-20.md. */
@font-face {
  font-family: Manrope;
  src: url('./fonts/manrope-cyrillic.woff2') format('woff2');
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: Manrope;
  src: url('./fonts/manrope-latin.woff2') format('woff2');
  font-weight: 200 800;
  font-display: swap;
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
    U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --bg: #141516;
  --ink: #f1f0eb;
  --muted: #a1a29f;
  --accent: #ff865b;
  --line: #383a3a;
  --paper: #efefea;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --font: Manrope, Arial, sans-serif;
  color-scheme: dark;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 108px;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body:has(dialog[open]) {
  overflow: hidden;
}
a,
button {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
button {
  font: inherit;
  color: inherit;
  cursor: pointer;
  border: 0;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
h1,
h2,
h3,
p {
  margin: 0;
}
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
[hidden],
[data-auth='user'] {
  display: none !important;
}
.is-authed [data-auth='guest'] {
  display: none !important;
}
.is-authed [data-auth='user'] {
  display: inline-flex !important;
}
::selection {
  background: var(--accent);
  color: var(--bg);
}
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 5px;
}
.section-light :focus-visible,
.closing :focus-visible {
  outline-color: var(--bg);
}
.shell {
  width: min(100% - 104px, 1400px);
  margin-inline: auto;
}
.eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.6;
}
.muted {
  color: #91938e;
}
.light-muted {
  color: #73756f;
}
.section-heading h2 {
  font-size: clamp(40px, 4.25vw, 66px);
  line-height: 1.12;
  letter-spacing: -0.055em;
  font-weight: 600;
  margin-top: 24px;
}
.section-description {
  color: var(--muted);
  line-height: 1.8;
  margin-top: 27px;
  max-width: 580px;
}
.section-light {
  background: var(--paper);
  color: #202221;
  color-scheme: light;
}
.section-light .section-description {
  color: #656762;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  min-height: 56px;
  padding: 16px 22px;
  border-radius: 8px;
  background: var(--accent);
  color: #171918;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.4;
  transition:
    background 0.22s,
    transform 0.22s var(--ease),
    box-shadow 0.22s;
  white-space: nowrap;
}
.button:hover {
  background: #ffa17f;
  transform: translateY(-2px);
  box-shadow: 0 7px 22px #0002;
}
.button:active {
  transform: none;
}
.button > span {
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  transition: transform 0.22s;
}
.button:hover > span {
  transform: translate(2px, -2px);
}
.button-small {
  min-height: 41px;
  padding: 10px 16px;
  font-size: 12px;
  gap: 24px;
  border-radius: 6px;
}
.button-ink {
  background: #202221;
  color: #f4f4ee;
}
.button-ink:hover {
  background: #393c39;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  min-height: 44px;
  font-size: 13px;
  font-weight: 650;
  transition: color 0.2s;
}
.text-link > span {
  font-size: 20px;
  transition: transform 0.2s;
}
.text-link:hover {
  color: var(--accent);
}
.text-link:hover > span {
  transform: translate(2px, -2px);
}
.section-light .text-link:hover,
.closing .text-link:hover {
  color: #9c3614;
}
.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  background: var(--accent);
  color: var(--bg);
  padding: 10px 18px;
  z-index: 100;
  transform: translateY(-160%);
}
.skip-link:focus {
  transform: none;
}
#top-sentinel {
  position: absolute;
  top: 0;
  height: 1px;
  width: 1px;
}
.header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 40;
  border-bottom: 1px solid transparent;
  transition:
    background 0.25s,
    border-color 0.25s;
}
.header.is-stuck {
  background: #141516f5;
  border-color: #ffffff10;
  backdrop-filter: blur(16px);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  height: 88px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  white-space: nowrap;
}
.brand img {
  width: 32px;
  height: 32px;
}
.brand > span,
.wordmark {
  font-size: 28px;
  letter-spacing: -0.075em;
  font-weight: 800;
  line-height: 1;
}
.desktop-nav {
  display: flex;
  gap: 25px;
  margin-inline: auto;
}
.desktop-nav a,
.login {
  font-size: 12px;
  font-weight: 550;
  color: #c3c4c0;
  transition: color 0.2s;
}
.desktop-nav a:hover,
.login:hover {
  color: var(--accent);
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 27px;
}
.login {
  display: flex;
  gap: 18px;
  align-items: center;
  min-height: 44px;
}
.login span {
  font-size: 18px;
}
.nav-toggle {
  display: none;
  background: transparent;
  width: 44px;
  height: 44px;
  padding: 10px 6px;
}
.nav-toggle span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--ink);
  margin: 6px auto;
}
.mobile-menu {
  position: fixed;
  inset: 0 0 auto auto;
  margin: 0;
  width: min(430px, 100%);
  max-width: 100%;
  max-height: 100dvh;
  background: var(--bg);
  color: var(--ink);
  border: 1px solid var(--line);
  padding: 22px 24px 32px;
}
.mobile-menu::backdrop {
  background: #0009;
  backdrop-filter: blur(6px);
}
.mobile-menu-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 25px;
}
.menu-close {
  width: 44px;
  height: 44px;
  background: transparent;
  font-size: 34px;
  line-height: 1;
}
.mobile-menu nav {
  display: grid;
  margin-bottom: 30px;
}
.mobile-menu nav a {
  padding: 13px 0;
  display: flex;
  justify-content: space-between;
  font-size: 23px;
  border-bottom: 1px solid var(--line);
}
.mobile-menu nav a span {
  font-size: 18px;
  color: var(--accent);
}
.mobile-menu > .button {
  width: 100%;
}
.hero {
  position: relative;
  overflow: clip;
  min-height: min(890px, 100svh);
  padding-top: 88px;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.06fr 1fr;
  align-items: center;
  min-height: 620px;
  position: relative;
}
.hero-copy {
  position: relative;
  z-index: 3;
  padding-top: 8px;
}
.hero .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #c6c7c1;
  letter-spacing: 0.12em;
  font-size: 10px;
}
.youtube-mark {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 16px;
  border-radius: 5px;
  background: var(--accent);
  color: #171918;
  font-size: 9px;
  padding-left: 1px;
}
.hero h1 {
  font-size: clamp(55px, 5.95vw, 94px);
  font-weight: 600;
  line-height: 1.06;
  letter-spacing: -0.075em;
  margin-top: 31px;
  white-space: nowrap;
}
.hero h1 > span {
  color: var(--accent);
}
.hero-description {
  color: #b8bab4;
  font-size: 16px;
  line-height: 1.8;
  margin-top: 28px;
  max-width: 440px;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 34px;
}
.hero-actions .text-link {
  font-size: 11px;
  gap: 12px;
}
.hero-note {
  font-size: 10px;
  color: #969891;
  margin-top: 15px;
}
.reel-stage {
  height: 590px;
  position: relative;
  perspective: 1300px;
  isolation: isolate;
  --story: 0;
}
.orbit {
  position: absolute;
  left: -2%;
  top: 4%;
  width: 112%;
  height: 92%;
  border: 1px solid #ffffff0a;
  border-radius: 50%;
  transform: rotate(-27deg) scaleY(0.74);
  pointer-events: none;
}
.orbit-two {
  left: 7%;
  top: 0;
  transform: rotate(36deg) scaleY(0.87);
}
.reel {
  position: absolute;
  top: 100px;
  left: calc(50% - 111px);
  width: 222px;
  height: 366px;
  border-radius: 17px;
  border: 1px solid #ffffff35;
  overflow: hidden;
  box-shadow: 0 24px 50px #0007;
  background: #303633;
  will-change: transform;
  transform-origin: 50% 85%;
}
.reel-image {
  position: absolute;
  inset: 0;
  background-image: url('./uploads/traffic-verticals.webp');
  background-size: 300% 100%;
  background-repeat: no-repeat;
  transition: transform 1.1s var(--ease);
}
.reel-image-crypto {
  background-position: 0 50%;
}
.reel-image-betting {
  background-position: 50% 50%;
}
.reel-image-apps {
  background-position: 100% 50%;
}
.reel-stage:hover .reel-image {
  transform: scale(1.035);
}
.reel-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0004, transparent 40%, #0001 52%, #000c);
}
.reel-top {
  position: absolute;
  top: 17px;
  left: 17px;
  right: 17px;
  display: flex;
  justify-content: space-between;
  font-size: 8px;
  letter-spacing: 0.12em;
  font-weight: 750;
}
.reel-top > span + span {
  font-size: 15px;
  line-height: 1;
}
.reel-bottom {
  position: absolute;
  bottom: 22px;
  left: 19px;
  right: 19px;
}
.reel-category {
  font-size: 6px;
  font-weight: 700;
  letter-spacing: 0.17em;
}
.reel-bottom strong {
  display: block;
  font-size: 25px;
  line-height: 1.1;
  font-weight: 650;
  letter-spacing: -0.035em;
  margin-top: 10px;
  color: #fff;
}
.reel-timeline {
  height: 2px;
  background: #ffffff50;
  margin-top: 23px;
}
.reel-timeline i {
  display: block;
  width: 42%;
  height: 100%;
  background: #fff;
}
.reel-crypto {
  transform: translate3d(calc(-133px + var(--story) * 88px), calc(-3px - var(--story) * 30px), -40px)
    rotate(calc(-16deg + var(--story) * 16deg));
  z-index: 1;
}
.reel-apps {
  transform: translate3d(calc(148px - var(--story) * 99px), calc(-36px - var(--story) * 26px), -70px)
    rotate(calc(17deg - var(--story) * 17deg));
  z-index: 2;
}
.reel-betting {
  transform: translate3d(10px, calc(38px - var(--story) * 48px), 30px)
    rotate(calc(-3deg + var(--story) * 3deg));
  z-index: 3;
}
.queue-chip {
  position: absolute;
  left: 15%;
  bottom: 35px;
  display: flex;
  align-items: center;
  gap: 13px;
  background: #eef0e9;
  color: #252824;
  padding: 15px 18px;
  border: 1px solid #fff;
  border-radius: 11px;
  z-index: 5;
  box-shadow: 0 15px 45px #0005;
  transform: translateY(calc(var(--story) * -40px)) rotate(-3deg);
  min-width: 276px;
}
.queue-symbol {
  background: #d5dacd;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 21px;
}
.queue-chip strong {
  display: block;
  font-size: 10px;
  font-weight: 800;
}
.queue-chip small {
  display: block;
  font-size: 9px;
  color: #636a60;
  margin-top: 2px;
}
.queue-check {
  color: #4e6850;
  font-size: 18px;
  margin-left: 9px;
}
.stage-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  color: #989b93;
  font-size: 8px;
  letter-spacing: 0.2em;
}
.hero-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-block: 28px 34px;
  margin-top: 10px;
  gap: 24px;
}
.hero-bottom > p {
  font-size: 11px;
  line-height: 1.6;
  color: #a7a9a1;
}
.hero-facts {
  display: flex;
  gap: 46px;
  font-size: 11px;
  color: #dbddd5;
}
.round-link {
  width: 39px;
  height: 39px;
  border: 1px solid #686b63;
  border-radius: 50%;
  display: grid;
  place-items: center;
  transition:
    background 0.2s,
    color 0.2s;
}
.round-link:hover {
  background: var(--accent);
  color: var(--bg);
}
.product {
  padding: 100px 0 104px;
}
.product .section-heading h2 {
  font-size: clamp(42px, 4.3vw, 68px);
}
.product-viewer {
  margin-top: 47px;
  background: #232625;
  border: 1px solid #41443e;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 20px 70px #0003;
}
/* Кадры кабинета. Одна разметка на две подачи: на компьютере — окно браузера
   с вкладками разделов, на телефоне (≤700px, ниже) — iPhone, чей экран
   листается свайпом. Кадры тоже разные: <picture> отдаёт телефону мобильную
   вёрстку кабинета, компьютеру — широкую, и каждый качает только свои. */
.viewer-toolbar {
  padding: 14px 22px 14px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.viewer-tabs {
  position: relative;
  display: flex;
  gap: 4px;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}
.viewer-tabs::-webkit-scrollbar {
  display: none;
}
@media (min-width: 701px) {
  .viewer-tabs[data-edge='end'] {
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 44px), transparent);
  }
  .viewer-tabs[data-edge='start'] {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 44px);
    mask-image: linear-gradient(90deg, transparent, #000 44px);
  }
  .viewer-tabs[data-edge='both'] {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 44px, #000 calc(100% - 44px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 44px, #000 calc(100% - 44px), transparent);
  }
}
.viewer-tabs button {
  flex: none;
  font-size: 12px;
  background: transparent;
  color: #b3b6ac;
  padding: 10px 16px;
  border-radius: 6px;
  min-height: 40px;
  white-space: nowrap;
  transition:
    background 0.2s,
    color 0.2s;
}
/* Ховер — только там, где есть мышь: на телефоне после тапа :hover «залипает»,
   и стрелка оставалась бы залитой, как будто это выбранное состояние. */
@media (hover: hover) {
  .viewer-tabs button:hover {
    color: #fff;
    background: #ffffff0d;
  }
  .shot-arrow:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #1b1d1c;
  }
}
.viewer-tabs button:active {
  background: #ffffff1a;
}
.viewer-tabs button[aria-selected='true'] {
  background: var(--accent);
  color: #20241e;
  font-weight: 750;
}
.viewer-address {
  flex: none;
  font-size: 10px;
  color: #a0a797;
}
.viewer-address > span {
  margin-left: 33px;
  font-size: 15px;
}
.viewer-device {
  margin: 0 10px;
}
.phone-island,
.phone-status,
.phone-home,
.viewer-note {
  display: none;
}
.viewer-screens {
  aspect-ratio: 1.6;
  overflow: hidden;
  border-radius: 5px;
  cursor: zoom-in;
  /* Пока кадр не пришёл — силуэт кабинета: тёмный сайдбар и светлое полотно,
     а не пустой прямоугольник. */
  background: linear-gradient(90deg, #141516 0 16.4%, #f0efea 16.4%);
}
.shot {
  display: none;
  height: 100%;
}
.shot.is-active {
  display: block;
}
.shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.shot.is-loading img {
  opacity: 0;
}
/* Входящий кадр выезжает со стороны, куда листают (--shot-dx ставит скрипт).
   Уходящий не гаснет: наложение двух плотных светлых экранов двоит мелкий текст. */
.shot.is-entering img {
  animation: shot-in 0.34s var(--ease) both;
}
@keyframes shot-in {
  from {
    opacity: 0;
    transform: translateX(var(--shot-dx, 0px));
  }
}
.viewer-caption {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 68px;
  padding: 12px 18px 12px 24px;
  color: #aeb3a7;
}
.shot-caption {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  line-height: 1.55;
}
.shot-caption strong {
  color: var(--ink);
  font-weight: 700;
}
.shot-nav {
  flex: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.shot-arrow {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #4a4d47;
  border-radius: 50%;
  background: transparent;
  color: #d4d7ce;
  font-size: 16px;
  line-height: 1;
  transition:
    background 0.2s,
    border-color 0.2s,
    color 0.2s,
    transform 0.1s;
}
.shot-arrow:active {
  transform: scale(0.94);
  border-color: var(--accent);
}
.shot-count {
  min-width: 62px;
  text-align: center;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: #8d9188;
  font-variant-numeric: tabular-nums;
}
.shot-count b {
  color: var(--ink);
  font-weight: 700;
}
.shot-dots {
  display: none;
}
.expand-image {
  flex: none;
  background: transparent;
  color: #d4d7ce;
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 11px;
  min-height: 44px;
  padding-left: 6px;
}
.expand-image:hover {
  color: var(--accent);
}
.expand-image span {
  font-size: 18px;
}
.features {
  padding: 105px 0 0;
  border-radius: 28px 28px 0 0;
}
.features .eyebrow {
  color: #62645c;
}
.feature-layout {
  display: grid;
  grid-template-columns: 1.08fr 1fr;
  gap: 18px;
  margin-top: 51px;
}
.feature-main {
  background: #e3e5dc;
  border: 1px solid #d9dcd1;
  border-radius: 18px;
  padding: 40px 40px 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.feature-kicker {
  font-size: 9px;
  color: #606657;
  letter-spacing: 0.16em;
  font-weight: 750;
}
.feature-copy h3 {
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: -0.045em;
  font-weight: 650;
  margin-top: 24px;
}
.feature-copy p {
  font-size: 13px;
  line-height: 1.85;
  color: #60655a;
  max-width: 330px;
  margin-top: 17px;
}
.schedule-art {
  margin: 50px -12px -3px 4px;
  border-radius: 13px 13px 0 0;
  background: #fafaf5;
  border: 1px solid #d1d4c8;
  padding: 22px 20px 18px;
  transform: rotate(-3deg);
  box-shadow: 0 10px 35px #4b583912;
}
.schedule-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #666d5b;
}
.schedule-line > span + span {
  font-size: 18px;
}
.schedule-row {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 11px 0;
  border-top: 1px solid #e6e8de;
}
.schedule-thumb {
  width: 34px;
  height: 47px;
  border-radius: 4px;
  background-image: url('./uploads/traffic-verticals.webp');
  background-size: 300% 100%;
  flex-shrink: 0;
}
.thumb-crypto {
  background-position: 0 50%;
}
.thumb-betting {
  background-position: 50% 50%;
}
.thumb-apps {
  background-position: 100% 50%;
}
.schedule-row strong {
  font-size: 10px;
  display: block;
}
.schedule-row div > span {
  font-size: 8px;
  color: #747c68;
  display: block;
  margin-top: 2px;
}
.schedule-row time {
  margin-left: auto;
  font-size: 10px;
  color: #4f5c44;
  background: #e8ebdf;
  padding: 4px 9px;
  border-radius: 4px;
}
.schedule-foot {
  display: flex;
  justify-content: space-between;
  font-size: 8px;
  color: #737c67;
  margin-top: 12px;
}
.feature-side {
  display: grid;
  gap: 18px;
}
.feature-small {
  border: 1px solid #d4d7cb;
  padding: 31px 34px 32px;
  border-radius: 18px;
  position: relative;
  overflow: hidden;
}
.feature-small h3 {
  font-size: 25px;
  line-height: 1.25;
  letter-spacing: -0.04em;
  font-weight: 650;
  margin-top: 22px;
  max-width: 280px;
}
.feature-small p {
  font-size: 12px;
  color: #606559;
  line-height: 1.8;
  max-width: 350px;
  margin-top: 14px;
}
.profile-art {
  height: 38px;
  display: flex;
  padding-left: 7px;
}
.profile-art span {
  width: 38px;
  height: 38px;
  border: 3px solid var(--paper);
  margin-left: -7px;
  background: #555d49;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}
.profile-art span:nth-child(2) {
  background: #bcc3ab;
  color: #333c28;
}
.profile-art span:nth-child(3) {
  background: #dadfcc;
  color: #4c5540;
}
.feature-video {
  background: #e9e9e2;
}
.video-art {
  display: flex;
  gap: 12px;
  height: 35px;
  align-items: center;
}
.video-art > span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 32px;
  background: #d6dacb;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #515b41;
}
.video-art > span:last-child {
  background: #bdc6a9;
}
.video-art > i {
  font-style: normal;
  color: #717a62;
}
.feature-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin-top: 48px;
  padding-bottom: 60px;
}
.feature-foot p:first-child {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: -0.02em;
}
.feature-foot p:nth-child(2) {
  font-size: 11px;
  color: #676f5d;
  line-height: 1.8;
}
.feature-foot .text-link {
  font-size: 11px;
  gap: 13px;
}
.workflow {
  padding: 112px 0 82px;
}
.workflow-layout {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 70px;
}
.workflow-layout > * {
  min-width: 0;
}
.workflow h2 {
  font-size: clamp(36px, 3.4vw, 53px);
}
.workflow .text-link {
  margin-top: 25px;
  color: var(--accent);
}
.steps {
  padding-top: 5px;
}
.steps li {
  display: flex;
  align-items: flex-start;
  gap: 25px;
  position: relative;
  padding-bottom: 39px;
}
.steps li:last-child {
  padding-bottom: 0;
}
.steps li:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 19px;
  top: 49px;
  height: calc(100% - 59px);
  border-left: 1px dashed #585d50;
}
.step-number {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: 1px solid #565b4d;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 10px;
  color: var(--accent);
}
.steps h3 {
  font-size: 19px;
  letter-spacing: -0.025em;
  font-weight: 600;
  margin: 4px 0 10px;
}
.steps p {
  font-size: 12px;
  line-height: 1.85;
  max-width: 330px;
  color: #a8ad9f;
}
.modes {
  padding: 22px 0 105px;
}
.mode-stage {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  border: 1px solid #3d4238;
  border-radius: 20px;
  background: #20241f;
  overflow: hidden;
}
.mode-copy {
  padding: 60px 50px;
  background: linear-gradient(140deg, #252a23, #20241f);
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
}
.mode-copy .eyebrow {
  font-size: 9px;
  color: #b6bdac;
}
.mode-copy h2 {
  font-size: clamp(35px, 3.3vw, 51px);
  line-height: 1.15;
  letter-spacing: -0.05em;
  font-weight: 600;
  margin-top: 31px;
}
.mode-copy > p:not(.eyebrow) {
  font-size: 13px;
  line-height: 1.8;
  color: #adb4a3;
  margin-top: 25px;
}
.mode-tabs {
  display: inline-flex;
  border: 1px solid #505845;
  background: #1a1e17;
  border-radius: 8px;
  padding: 4px;
  gap: 4px;
  margin-top: 45px;
}
.mode-tabs button {
  padding: 12px 16px;
  border-radius: 5px;
  background: transparent;
  font-size: 10px;
  min-height: 44px;
  color: #b9c2af;
}
.mode-tabs button[aria-selected='true'] {
  background: #e0e5d5;
  color: #2e3924;
  font-weight: 750;
}
.mode-detail {
  padding: 25px 45px 40px;
  border-left: 1px solid #3c4334;
}
.mode-visual {
  height: 175px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  perspective: 600px;
}
.server-blade {
  position: relative;
  width: 210px;
  height: 42px;
  border: 1px solid #6d785e;
  border-radius: 9px;
  background: linear-gradient(140deg, #4e5941, #2f3827);
  margin-top: -2px;
  box-shadow: 0 9px 19px #10160c75;
  transform: rotateX(18deg) rotateY(-23deg) rotateZ(-6deg);
  z-index: 3;
}
.server-blade:nth-child(2) {
  z-index: 2;
}
.server-blade:nth-child(3) {
  z-index: 1;
}
.server-blade i {
  display: inline-block;
  width: 3px;
  height: 8px;
  background: #9aa88a;
  margin: 15px 0 0 8px;
  border-radius: 1px;
}
.server-blade i:first-child {
  margin-left: 16px;
}
.server-blade b {
  position: absolute;
  right: 16px;
  top: 13px;
  font-size: 7px;
  color: #c9d5bb;
  letter-spacing: 0.13em;
  font-weight: 600;
}
.server-orbit {
  position: absolute;
  width: 270px;
  height: 100px;
  border: 1px solid #68755540;
  border-radius: 50%;
  bottom: 10px;
  transform: rotate(-8deg);
}
.mode-detail h3 {
  font-size: 20px;
  letter-spacing: -0.025em;
  margin-top: 13px;
  font-weight: 600;
}
.mode-detail [role='tabpanel'] > p {
  font-size: 11px;
  color: #adb7a0;
  line-height: 1.85;
  margin-top: 14px;
  max-width: 400px;
}
.mode-price {
  display: flex;
  align-items: center;
  gap: 19px;
  margin-top: 24px;
}
.mode-price strong {
  font-size: 39px;
  line-height: 1;
  letter-spacing: -0.04em;
  font-weight: 600;
  color: #e1e8d7;
}
.mode-price > span {
  font-size: 9px;
  line-height: 1.5;
  color: #afbba1;
}
.mode-detail [role='tabpanel'] > p.mode-fine {
  font-size: 9px;
  color: #9da891;
  margin-top: 20px;
}
.monitor {
  width: 190px;
  height: 118px;
  border: 5px solid #7f8d6d;
  border-radius: 9px;
  background: #293021;
  display: grid;
  place-items: center;
  box-shadow: 0 15px 40px #0003;
  transform: rotateY(-18deg);
}
.monitor span {
  font-size: 27px;
  font-weight: 800;
  letter-spacing: -0.08em;
  color: #cbd9b9;
}
.monitor-stand {
  height: 18px;
  width: 6px;
  background: #7f8d6d;
  position: relative;
  transform: translateX(-8px);
}
.monitor-stand::after {
  content: '';
  position: absolute;
  width: 54px;
  left: -24px;
  bottom: -2px;
  height: 4px;
  background: #7f8d6d;
  border-radius: 2px;
}
.tariffs {
  padding: 100px 0;
  border-radius: 28px 28px 0 0;
}
.pricing-layout {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 75px;
}
.tariffs .section-heading h2 {
  font-size: clamp(40px, 3.8vw, 58px);
}
.tariffs .section-description {
  font-size: 13px;
}
.included-list {
  display: grid;
  gap: 14px;
  margin-top: 30px;
  font-size: 12px;
  font-weight: 550;
}
.included-list li::before {
  content: '✓';
  display: inline-block;
  margin-right: 14px;
  color: #515e3e;
  font-size: 13px;
}
.payment-note {
  font-size: 10px;
  color: #626b56;
  margin-top: 31px;
  line-height: 1.8;
}
.pricing-options {
  display: grid;
  gap: 17px;
}
.price-card {
  padding: 29px 32px 30px;
  border: 1px solid #cdd2c2;
  border-radius: 14px;
}
.price-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.price-card h3 {
  font-size: 16px;
  font-weight: 650;
  letter-spacing: -0.025em;
}
.price-label {
  font-size: 8px;
  letter-spacing: 0.09em;
  font-weight: 800;
  padding: 5px 8px;
  border: 1px solid #c4ccba;
  border-radius: 4px;
}
.price-value {
  font-size: 60px;
  letter-spacing: -0.07em;
  font-weight: 600;
  line-height: 1;
  margin-top: 24px;
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.price-value > span {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
}
.price-context {
  color: #616955;
  font-size: 10px;
  line-height: 1.7;
  margin-top: 15px;
  max-width: 330px;
}
.price-context s {
  margin-right: 6px;
}
.price-card .button {
  width: 100%;
  min-height: 48px;
  font-size: 12px;
  margin-top: 23px;
}
.price-card-year {
  background: #dce3d0;
  border-color: #c6ceb9;
}
.price-card-year .price-label {
  background: #bdcbaa;
  border-color: transparent;
}
.pricing-cloud-note {
  font-size: 9px;
  line-height: 1.9;
  color: #626c55;
  margin-top: 2px;
}
.pricing-cloud-note a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.learning {
  padding: 90px 0;
}
.learning-inner {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  column-gap: 75px;
}
.learning .eyebrow {
  grid-column: 1/-1;
  font-size: 9px;
  color: #b1b6a8;
}
.learning h2 {
  font-size: 52px;
  letter-spacing: -0.05em;
  line-height: 1.1;
  font-weight: 600;
  margin-top: 25px;
}
.learning-inner > div {
  padding-top: 27px;
  max-width: 420px;
}
.learning p:not(.eyebrow) {
  font-size: 13px;
  line-height: 1.85;
  color: #b4baaa;
}
.learning .text-link {
  color: var(--accent);
  margin-top: 17px;
}
.learning small {
  display: block;
  font-size: 9px;
  color: #a0a894;
  margin-top: 8px;
}
.faq-section {
  padding: 25px 0 110px;
}
.faq-layout {
  border-top: 1px solid var(--line);
  padding-top: 75px;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 75px;
}
.faq-section h2 {
  font-size: 53px;
}
.faq-section .section-description {
  font-size: 12px;
  max-width: 280px;
}
.faq-section .text-link {
  margin-top: 25px;
  font-size: 11px;
}
.faq {
  border-bottom: 1px solid #404439;
}
.faq summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 23px 33px 23px 0;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.6;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary::after {
  content: '+';
  position: absolute;
  right: 0;
  top: 20px;
  font-size: 23px;
  color: #abb49d;
  font-weight: 400;
  line-height: 1;
}
.faq[open] summary::after {
  content: '−';
  color: var(--accent);
}
.faq[open] summary {
  color: var(--accent);
}
.faq > div {
  font-size: 11px;
  line-height: 1.9;
  color: #b6bda9;
  padding: 0 25px 24px 0;
  max-width: 480px;
}
.closing {
  background: var(--accent);
  color: #22251d;
  position: relative;
  overflow: hidden;
}
.closing-inner {
  position: relative;
  padding-block: 75px 80px;
}
.closing .eyebrow {
  font-size: 9px;
  letter-spacing: 0.1em;
  position: relative;
  z-index: 2;
}
.closing h2 {
  font-size: clamp(65px, 7.7vw, 120px);
  font-weight: 600;
  letter-spacing: -0.07em;
  line-height: 1.06;
  margin-top: 25px;
  position: relative;
  z-index: 2;
}
.closing h2 span {
  color: #763d26;
}
.closing-actions {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 36px;
  position: relative;
  z-index: 2;
}
.closing .text-link {
  font-size: 11px;
}
.closing-flare {
  position: absolute;
  font-size: clamp(280px, 38vw, 550px);
  font-weight: 400;
  line-height: 1;
  right: -32px;
  top: 25px;
  color: #22251d;
  transform: rotate(-8deg);
  opacity: 0.92;
  pointer-events: none;
}
.footer {
  padding-top: 50px;
  overflow: clip;
}
.footer-top {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
  align-items: start;
}
.footer-top .brand {
  justify-self: start;
}
.footer-top > p {
  font-size: 12px;
  color: #a6af99;
  line-height: 1.8;
  padding-top: 3px;
}
.footer-top nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
  justify-self: end;
  font-size: 10px;
  color: #b4bca8;
}
.footer-top nav a:hover {
  color: var(--accent);
}
.footer-bottom {
  border-top: 1px solid #373d30;
  padding-block: 22px;
  display: flex;
  justify-content: space-between;
  color: #a6af99;
  font-size: 9px;
  gap: 20px;
}
.footer-bottom > a {
  color: #d6dccd;
}
.image-dialog {
  /* Кадр 16:10 целиком влезает по высоте: ширина окна считается от высоты
     экрана за вычетом полос сверху (крестик) и снизу (подпись). */
  width: min(96vw, 1600px, calc((94dvh - 124px) * 1.6 + 22px));
  max-width: 96vw;
  border: 1px solid #666;
  background: var(--bg);
  border-radius: 12px;
  padding: 45px 10px 6px;
  max-height: 94dvh;
  overflow: auto;
}
.image-dialog::backdrop {
  background: #000d;
  backdrop-filter: blur(8px);
}
.image-dialog > img {
  width: 100%;
  height: auto;
  aspect-ratio: 1.6;
  border-radius: 5px;
  background: linear-gradient(90deg, #141516 0 16.4%, #f0efea 16.4%);
}
.image-dialog-bar {
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 60px;
  padding: 6px 4px 4px 12px;
  color: #aeb3a7;
}
.image-close {
  position: absolute;
  right: 9px;
  top: 0;
  width: 44px;
  height: 44px;
  background: transparent;
  color: var(--ink);
  font-size: 29px;
  line-height: 1;
}
.reveal-ready {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 0.7s var(--ease),
    transform 0.7s var(--ease);
}
.reveal-ready.is-visible {
  opacity: 1;
  transform: none;
}
@media (min-width: 1600px) {
  .hero-grid {
    min-height: 670px;
  }
  .hero {
    min-height: 850px;
  }
  .reel-stage {
    transform: scale(1.08);
  }
  .hero h1 {
    font-size: 94px;
  }
  .hero-description {
    font-size: 18px;
  }
}
@media (max-width: 1150px) {
  .shell {
    width: calc(100% - 64px);
  }
  .desktop-nav {
    gap: 17px;
  }
  .header-actions {
    gap: 18px;
  }
  .hero-grid {
    min-height: 570px;
  }
  .hero h1 {
    font-size: 6.15vw;
  }
  .hero-actions {
    gap: 18px;
    flex-wrap: wrap;
  }
  .hero-actions .button {
    min-height: 50px;
    font-size: 12px;
    padding: 14px 17px;
  }
  .hero-actions .text-link {
    font-size: 10px;
  }
  .reel-stage {
    transform: scale(0.88);
    transform-origin: 50% 50%;
    margin-inline: -25px;
  }
  .hero-facts {
    gap: 24px;
    font-size: 10px;
  }
  .hero-bottom {
    margin-top: -10px;
  }
  .mode-copy {
    padding: 45px 35px;
  }
  .mode-detail {
    padding-inline: 30px;
  }
  .pricing-layout,
  .faq-layout,
  .workflow-layout,
  .learning-inner {
    gap: 45px;
  }
  .feature-main {
    padding-inline: 28px;
  }
  .feature-small {
    padding: 29px;
  }
  .feature-copy h3 {
    font-size: 32px;
  }
  .hero-description {
    font-size: 14px;
  }
}
@media (max-width: 950px) {
  .desktop-nav {
    gap: 14px;
  }
  .desktop-nav a {
    font-size: 10px;
  }
  .brand > span {
    font-size: 25px;
  }
  .header-actions .login {
    display: none;
  }
  .hero-grid {
    grid-template-columns: 1.05fr 1fr;
    min-height: 535px;
  }
  .hero h1 {
    font-size: 6vw;
  }
  .hero .eyebrow {
    font-size: 8px;
    letter-spacing: 0.08em;
  }
  .reel-stage {
    transform: scale(0.75);
    margin-inline: -70px;
    height: 580px;
  }
  .hero-description {
    max-width: 335px;
  }
  .hero-actions {
    gap: 8px;
    margin-top: 23px;
    align-items: flex-start;
    flex-direction: column;
  }
  .hero-note {
    font-size: 9px;
  }
  .hero-bottom {
    margin-top: -15px;
  }
  .hero-facts {
    gap: 15px;
    font-size: 8px;
  }
    .hero-bottom > p {
    font-size: 9px;
  }
  .product {
    padding-top: 80px;
  }
  .section-heading h2 {
    font-size: 43px;
  }
  .feature-main {
    padding: 28px 24px 0;
  }
  .feature-copy h3 {
    font-size: 28px;
  }
  .feature-copy p {
    font-size: 11px;
  }
  .feature-small {
    padding: 24px;
  }
  .feature-small h3 {
    font-size: 23px;
  }
  .feature-small p {
    font-size: 11px;
  }
  .feature-foot {
    gap: 20px;
  }
  .feature-foot p:first-child {
    font-size: 13px;
  }
  .feature-foot p:nth-child(2) {
    font-size: 9px;
  }
  .feature-foot .text-link {
    font-size: 10px;
  }
  .workflow-layout,
  .pricing-layout,
  .faq-layout,
  .learning-inner {
    gap: 35px;
  }
  .mode-copy {
    padding: 35px 26px;
  }
  .mode-copy h2 {
    font-size: 34px;
  }
  .mode-tabs {
    gap: 0;
  }
  .mode-tabs button {
    font-size: 9px;
    padding: 9px 12px;
  }
  .mode-detail {
    padding: 25px 27px 34px;
  }
  .mode-detail h3 {
    font-size: 18px;
  }
  .mode-copy > p:not(.eyebrow) {
    font-size: 11px;
  }
  .pricing-layout {
    grid-template-columns: 1fr 1fr;
  }
  .price-card {
    padding: 25px;
  }
  .price-label {
    font-size: 7px;
  }
  .closing-flare {
    right: -55px;
    opacity: 0.16;
  }
  .viewer-tabs button {
    padding: 9px 13px;
  }
  /* Девяти вкладкам и адресу в одной строке здесь тесно — адрес уходит. */
  .viewer-address {
    display: none;
  }
}
@media (max-width: 700px) {
  html {
    scroll-padding-top: 85px;
  }
  .shell {
    width: calc(100% - 40px);
  }
  .desktop-only {
    display: none;
  }
  .header {
    background: #141516f7;
    border-bottom-color: #ffffff0b;
  }
  .header-inner {
    height: 70px;
    padding-top: env(safe-area-inset-top);
  }
  .header .brand img {
    width: 30px;
    height: 30px;
  }
  .header .brand > span {
    font-size: 26px;
  }
  .desktop-nav,
  .header-actions {
    display: none;
  }
  .nav-toggle {
    display: block;
    margin-right: -6px;
  }
  .hero {
    padding-top: 70px;
    min-height: auto;
  }
  .hero-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
  }
  .hero-copy {
    padding-top: 43px;
  }
  .hero .eyebrow {
    font-size: 8px;
    letter-spacing: 0.095em;
  }
  .hero h1 {
    font-size: clamp(39px, 10.5vw, 67px);
    letter-spacing: -0.069em;
    line-height: 1.12;
    margin-top: 21px;
  }
  .hero-description {
    font-size: 13px;
    margin-top: 19px;
    max-width: 320px;
    line-height: 1.8;
  }
  .hero-actions {
    margin-top: 24px;
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: center;
  }
  .hero-actions .button {
    min-height: 49px;
    font-size: 12px;
    padding: 14px 18px;
    gap: 28px;
  }
  .hero-actions .text-link {
    font-size: 11px;
    min-height: 44px;
    max-width: 140px;
    line-height: 1.5;
    white-space: normal;
  }
  .hero-note {
    font-size: 9px;
    margin-top: 11px;
  }
  .reel-stage {
    width: 100%;
    height: 386px;
    margin: 0;
    transform: none;
    --story: 0;
  }
  .reel {
    width: 153px;
    height: 252px;
    top: 42px;
    left: calc(50% - 76px);
    border-radius: 12px;
  }
  .reel-crypto {
    transform: translate3d(calc(-83px + var(--story) * 55px), calc(6px - var(--story) * 16px), -25px)
      rotate(calc(-16deg + var(--story) * 16deg));
  }
  .reel-apps {
    transform: translate3d(calc(90px - var(--story) * 58px), calc(-7px - var(--story) * 15px), -40px)
      rotate(calc(15deg - var(--story) * 15deg));
  }
  .reel-betting {
    transform: translate3d(0, calc(31px - var(--story) * 26px), 20px)
      rotate(calc(-3deg + var(--story) * 3deg));
  }
  .reel-bottom {
    left: 13px;
    right: 13px;
    bottom: 17px;
  }
  .reel-bottom strong {
    font-size: 19px;
    margin-top: 7px;
  }
  .reel-category {
    font-size: 5px;
  }
  .reel-top {
    left: 13px;
    right: 13px;
    top: 12px;
    font-size: 6px;
  }
  .reel-top > span + span {
    font-size: 13px;
  }
  .reel-timeline {
    margin-top: 16px;
  }
  .queue-chip {
    min-width: 226px;
    left: calc(50% - 113px);
    bottom: 26px;
    padding: 11px 12px;
    gap: 10px;
    border-radius: 8px;
    transform: translateY(calc(var(--story) * -10px)) rotate(-3deg);
  }
  .queue-symbol {
    width: 29px;
    height: 29px;
    font-size: 18px;
  }
  .queue-chip strong {
    font-size: 9px;
  }
  .queue-chip small {
    font-size: 8px;
  }
  .queue-check {
    font-size: 15px;
    margin-left: 5px;
  }
  .stage-caption {
    font-size: 6px;
    bottom: 0;
  }
  .orbit {
    width: 105%;
    left: -3%;
    top: 2%;
  }
  .orbit-two {
    width: 100%;
    left: 0;
    top: 0;
  }
  .hero-bottom {
    margin-top: 26px;
    padding: 22px 0 28px;
    display: block;
  }
  .hero-bottom > p,
  .hero-bottom .round-link {
    display: none;
  }
  .hero-facts {
    justify-content: space-between;
    gap: 10px;
    font-size: 8px;
  }
  .hero-facts span {
    max-width: 90px;
    line-height: 1.6;
  }
    .section-heading h2,
  .product .section-heading h2 {
    font-size: 38px;
    letter-spacing: -0.055em;
    margin-top: 17px;
  }
  .eyebrow {
    font-size: 9px;
    letter-spacing: 0.12em;
  }
  .section-description {
    font-size: 12px;
    line-height: 1.85;
    margin-top: 20px;
  }
  .product {
    padding: 58px 0 60px;
  }
  /* Телефон вместо окна браузера. Карточка-окно растворяется, остаются чипы
     разделов, iPhone и подпись под ним. Все размеры корпуса — доли его ширины
     (--pw), поэтому пропорции iPhone 15 Pro держатся от 320px до 700px. */
  .product-viewer {
    margin-top: 26px;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
  }
  .viewer-toolbar {
    display: block;
    padding: 0;
  }
  .viewer-tabs {
    gap: 8px;
    margin-inline: -20px;
    padding: 2px 20px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 18px, #000 calc(100% - 18px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 18px, #000 calc(100% - 18px), transparent);
  }
  .viewer-tabs button {
    min-height: 40px;
    padding: 9px 15px;
    border: 1px solid #3a3d3a;
    border-radius: 999px;
    color: #c9ccc2;
    font-size: 13px;
  }
  .viewer-tabs button[aria-selected='true'] {
    border-color: var(--accent);
  }
  .viewer-address,
  .shot-count,
  .expand-image {
    display: none;
  }
  .viewer-device {
    --pw: min(84vw, 344px);
    --bz: calc(var(--pw) * 0.034);
    --sw: calc(var(--pw) - 2 * var(--bz));
    position: relative;
    width: var(--pw);
    margin: 30px auto 0;
    padding: var(--bz);
    border-radius: calc(var(--pw) * 0.165);
    background: #050606;
    box-shadow:
      inset 0 0 0 1px #ffffff14,
      0 0 0 1.5px #3b3e3c,
      0 0 0 3px #161817,
      0 36px 80px -28px #000,
      0 0 110px -20px #ff865b40;
  }
  /* Кнопки на корпусе: слева «Действие» и громкость, справа питание. */
  .viewer-device::before,
  .viewer-device::after {
    content: '';
    position: absolute;
    width: 3px;
    background: #2d302e;
  }
  .viewer-device::before {
    left: -4.5px;
    top: 16.5%;
    height: 25.5%;
    border-radius: 2px 0 0 2px;
    background: linear-gradient(
      #2d302e 0 15.7%,
      transparent 15.7% 29.4%,
      #2d302e 29.4% 60.8%,
      transparent 60.8% 68.6%,
      #2d302e 68.6%
    );
  }
  .viewer-device::after {
    right: -4.5px;
    top: 26%;
    height: 13%;
    border-radius: 0 2px 2px 0;
  }
  /* Экран — горизонтальная лента с привязкой: свайп, инерция и «докрутка» до
     кадра — родные, браузера. stop: always не даёт одним броском пролететь
     несколько разделов мимо подписи. */
  .viewer-screens {
    display: flex;
    aspect-ratio: 393 / 852;
    border-radius: calc(var(--sw) * 0.14);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    background: #f0efea;
    cursor: auto;
  }
  .viewer-screens::-webkit-scrollbar {
    display: none;
  }
  .shot,
  .shot.is-active {
    display: block;
    flex: 0 0 100%;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }
  /* Кадры дальше соседа справа скрипт не выкладывает, пока до них не дошли. */
  .shot.is-far {
    display: none;
  }
  .shot.is-loading img {
    opacity: 1;
  }
  .shot.is-entering img {
    animation: none;
  }
  .phone-island,
  .phone-status,
  .phone-home {
    display: block;
    position: absolute;
    z-index: 2;
    pointer-events: none;
  }
  .phone-island {
    top: calc(var(--bz) + var(--sw) * 0.028);
    left: 50%;
    width: calc(var(--sw) * 0.318);
    height: calc(var(--sw) * 0.094);
    border-radius: 99px;
    background: #000;
    transform: translateX(-50%);
  }
  .phone-status {
    display: flex;
    top: var(--bz);
    left: var(--bz);
    width: var(--sw);
    height: calc(var(--sw) * 0.137);
    align-items: center;
    justify-content: space-between;
    padding: calc(var(--sw) * 0.012) calc(var(--sw) * 0.07) 0 calc(var(--sw) * 0.105);
    color: #111;
  }
  .phone-time {
    font:
      600 calc(var(--sw) * 0.043) / 1 -apple-system,
      'SF Pro Text',
      system-ui,
      var(--font);
    letter-spacing: -0.01em;
  }
  .phone-icons {
    width: calc(var(--sw) * 0.18);
    height: auto;
  }
  /* Полоса «домой» лежит на лёгкой вуали, как край прокрутки в iOS: иначе
     тёмная черта ложилась бы прямо на строку текста и читалась зачёркиванием. */
  .phone-home {
    bottom: var(--bz);
    left: var(--bz);
    width: var(--sw);
    height: calc(var(--sw) * 0.08);
    border-radius: 0 0 calc(var(--sw) * 0.14) calc(var(--sw) * 0.14);
    background: linear-gradient(#f5f4f000, #f5f4f0e6 72%);
  }
  .phone-home::before {
    content: '';
    position: absolute;
    bottom: calc(var(--sw) * 0.02);
    left: 50%;
    width: calc(var(--sw) * 0.34);
    height: max(4px, calc(var(--sw) * 0.0127));
    border-radius: 99px;
    background: #111;
    opacity: 0.85;
    transform: translateX(-50%);
  }
  .viewer-caption {
    flex-direction: column;
    gap: 16px;
    min-height: 0;
    padding: 26px 0 0;
    text-align: center;
  }
  /* Три строки зарезервированы: подписи разной длины, и без этого под
     пальцем прыгали бы стрелки. */
  .shot-caption {
    max-width: 34ch;
    min-height: calc(1.6em * 3);
    margin-inline: auto;
    font-size: 14px;
    line-height: 1.6;
  }
  .shot-nav {
    gap: 16px;
  }
  .shot-arrow {
    width: 44px;
    height: 44px;
  }
  .shot-dots {
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .shot-dots i {
    width: 6px;
    height: 6px;
    border-radius: 99px;
    background: #4a4d49;
    transition:
      width 0.25s var(--ease),
      background 0.25s;
  }
  .shot-dots i.is-on {
    width: 18px;
    background: var(--accent);
  }
  .viewer-note {
    display: block;
    max-width: 36ch;
    margin: 18px auto 0;
    color: #8d9188;
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
  }
  .features {
    padding: 60px 0 0;
    border-radius: 20px 20px 0 0;
  }
  .feature-layout {
    grid-template-columns: 1fr;
    margin-top: 30px;
    gap: 13px;
  }
  .feature-main {
    padding: 28px 25px 0;
    min-height: 478px;
  }
  .feature-kicker {
    font-size: 8px;
  }
  .feature-copy h3 {
    font-size: 31px;
    margin-top: 19px;
  }
  .feature-copy p {
    font-size: 12px;
    max-width: 280px;
  }
  .schedule-art {
    margin-top: 35px;
  }
  .feature-side {
    grid-template-columns: 1fr;
    gap: 13px;
  }
  .feature-small {
    padding: 27px;
    min-height: 245px;
  }
  .feature-small h3 {
    font-size: 26px;
    max-width: 230px;
    margin-top: 0;
    padding-top: 53px;
  }
  .feature-small p {
    font-size: 12px;
    max-width: 300px;
  }
  .profile-art,
  .video-art {
    position: absolute;
    top: 33px;
    right: 27px;
    transform: scale(0.82);
    transform-origin: right top;
  }
  .feature-foot {
    flex-wrap: wrap;
    margin-top: 29px;
    padding-bottom: 40px;
    gap: 18px;
  }
  .feature-foot p:first-child {
    font-size: 15px;
  }
  .feature-foot p:nth-child(2) {
    font-size: 10px;
  }
  .feature-foot .text-link {
    width: 100%;
    font-size: 11px;
  }
  .workflow {
    padding: 65px 0 40px;
  }
  .workflow-layout {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .workflow h2 {
    font-size: 37px;
  }
  .workflow .text-link {
    margin-top: 16px;
  }
  .steps li {
    padding-bottom: 31px;
    gap: 20px;
  }
  .steps h3 {
    font-size: 18px;
  }
  .steps p {
    font-size: 12px;
    max-width: 300px;
  }
  .modes {
    padding: 20px 0 60px;
  }
  .mode-stage {
    grid-template-columns: 1fr;
    border-radius: 15px;
  }
  .mode-copy {
    padding: 30px 27px 27px;
  }
  .mode-copy .eyebrow {
    font-size: 8px;
  }
  .mode-copy h2 {
    font-size: 34px;
    margin-top: 22px;
  }
  .mode-copy > p:not(.eyebrow) {
    font-size: 12px;
    margin-top: 18px;
  }
  .mode-tabs {
    margin-top: 26px;
    width: 100%;
  }
  .mode-tabs button {
    flex: 1;
    font-size: 10px;
    padding: 10px;
  }
  .mode-detail {
    border-left: 0;
    border-top: 1px solid #3c4334;
    padding: 10px 27px 30px;
  }
  .mode-visual {
    height: 165px;
  }
  .mode-detail h3 {
    font-size: 20px;
  }
  .mode-detail [role='tabpanel'] > p {
    font-size: 12px;
  }
  .mode-detail [role='tabpanel'] > p.mode-fine {
    font-size: 10px;
  }
  .mode-price > span {
    font-size: 10px;
  }
  .tariffs {
    padding: 62px 0;
    border-radius: 20px 20px 0 0;
  }
  .pricing-layout {
    grid-template-columns: 1fr;
    gap: 31px;
  }
  .tariffs .section-heading h2 {
    font-size: 39px;
  }
  .included-list {
    grid-template-columns: 1fr 1fr;
    gap: 13px 10px;
    font-size: 10px;
    margin-top: 25px;
  }
  .included-list li::before {
    margin-right: 7px;
    font-size: 10px;
  }
  .payment-note {
    font-size: 10px;
    margin-top: 21px;
  }
  .price-card {
    padding: 25px;
  }
  .price-card h3 {
    font-size: 17px;
  }
  .price-label {
    font-size: 8px;
  }
  .price-value {
    font-size: 61px;
  }
  .price-context {
    font-size: 11px;
  }
  .pricing-cloud-note {
    font-size: 10px;
  }
  .learning {
    padding: 57px 0;
  }
  .learning-inner {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .learning h2 {
    font-size: 42px;
    margin-top: 19px;
  }
  .learning-inner > div {
    padding-top: 24px;
  }
  .learning p:not(.eyebrow) {
    font-size: 12px;
    max-width: 350px;
  }
  .learning small {
    font-size: 10px;
  }
  .faq-section {
    padding: 5px 0 60px;
  }
  .faq-layout {
    padding-top: 43px;
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .faq-section h2 {
    font-size: 41px;
  }
  .faq-section .section-description {
    font-size: 12px;
  }
  .faq-section .text-link {
    font-size: 12px;
    margin-top: 12px;
  }
  .faq summary {
    font-size: 12px;
    padding-block: 22px;
  }
  .faq > div {
    font-size: 12px;
  }
  .closing-inner {
    padding-block: 50px 48px;
  }
  .closing .eyebrow {
    font-size: 7px;
    max-width: 250px;
    line-height: 1.9;
  }
  .closing h2 {
    font-size: clamp(43px, 12vw, 75px);
    margin-top: 22px;
    letter-spacing: -0.063em;
  }
  .closing-actions {
    gap: 10px;
    align-items: flex-start;
    flex-direction: column;
    margin-top: 29px;
  }
  .closing-actions .button {
    font-size: 12px;
    min-height: 50px;
    gap: 33px;
  }
  .closing .text-link {
    font-size: 11px;
  }
  .closing-flare {
    font-size: 255px;
    right: -66px;
    top: 72px;
    opacity: 0.12;
  }
  .footer {
    padding-top: 36px;
  }
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 26px;
  }
  .footer-top .brand > span {
    font-size: 26px;
  }
  .footer-top .brand img {
    width: 30px;
    height: 30px;
  }
  .footer-top > p {
    font-size: 10px;
    text-align: right;
  }
  .footer-top nav {
    grid-column: 1/-1;
    justify-self: start;
    font-size: 10px;
    flex-direction: row;
    gap: 20px;
    flex-wrap: wrap;
  }
  .footer-bottom {
    font-size: 8px;
    padding-block: 20px max(20px, env(safe-area-inset-bottom));
    gap: 13px;
  }
  .footer-bottom > span:nth-child(2) {
    display: none;
  }
  .image-dialog {
    max-width: 98vw;
    width: 98vw;
    padding: 44px 5px 5px;
    border-radius: 7px;
  }
}
@media (max-width: 360px) {
  .workflow h2 {
    font-size: 30px;
  }
  .shell {
    width: calc(100% - 32px);
  }
  .hero h1 {
    font-size: 10.2vw;
  }
  .hero-description {
    font-size: 12px;
  }
  .reel-stage {
    transform: scale(0.9);
    margin-top: -9px;
    margin-bottom: -25px;
  }
  .hero .eyebrow {
    font-size: 7px;
  }
  .hero-facts {
    font-size: 7px;
  }
  .hero-facts span {
    max-width: 83px;
  }
  .viewer-tabs {
    margin-inline: -16px;
    padding-inline: 16px;
  }
  .viewer-tabs button {
    padding-inline: 13px;
    font-size: 12px;
  }
  .shot-caption {
    font-size: 13px;
  }
  .included-list {
    grid-template-columns: 1fr;
  }
  .feature-small {
    padding: 25px;
  }
  .mode-copy {
    padding-inline: 23px;
  }
  .mode-copy h2 {
    font-size: 31px;
  }
  .footer-top nav {
    gap: 14px;
  }
  .price-label {
    font-size: 7px;
  }
}
/* Reading size is independent of decorative thumbnail typography. */
.free-plan {
  margin-top: 30px;
  padding: 27px 30px;
  border: 1px solid #bec6b1;
  border-radius: 14px;
  background: #e6e9df;
}
.free-plan-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.free-plan-head h3 {
  font-size: 20px;
  font-weight: 650;
  letter-spacing: -0.03em;
}
.free-plan-head > span {
  font-size: 9px;
  letter-spacing: 0.1em;
  font-weight: 750;
  color: #58604d;
}
.free-plan .price-value {
  margin-top: 21px;
}
.free-plan .price-value > span {
  font-size: 11px;
}
.free-plan .included-list {
  font-size: 13px;
  gap: 11px;
  margin-top: 24px;
}
.free-plan .button {
  width: 100%;
  margin-top: 26px;
  min-height: 48px;
  font-size: 12px;
}
.plan-benefit {
  font-size: 12px;
  color: #616955;
  line-height: 1.8;
  margin-top: 14px;
}
.pricing-options {
  align-content: start;
}
.tariffs .section-heading h2 {
  font-size: clamp(34px, 3.2vw, 51px);
}
.footer-bottom {
  margin-top: 42px;
}
@media (max-width: 700px) {
  .free-plan {
    padding: 25px;
  }
  .tariffs .section-heading h2 {
    font-size: 35px;
  }
  .free-plan .included-list {
    font-size: 12px;
  }
  .footer-bottom {
    margin-top: 28px;
  }
}
.hero-description {
  font-size: 17px;
}
.feature-copy p,
.feature-small p,
.steps p,
.mode-detail [role='tabpanel'] > p,
.learning p:not(.eyebrow),
.faq > div {
  font-size: 14px;
}
.feature-foot p:nth-child(2),
.mode-copy > p:not(.eyebrow),
.tariffs .section-description,
.included-list,
.faq-section .section-description {
  font-size: 14px;
}
.faq summary {
  font-size: 14px;
}
.price-context {
  font-size: 12px;
}
.pricing-cloud-note,
.payment-note,
.mode-detail [role='tabpanel'] > p.mode-fine {
  font-size: 11px;
}
.section-light .text-link,
.learning .text-link,
.faq-section .text-link {
  font-size: 13px;
}
@media (min-width: 701px) and (max-width: 950px) {
  .reel-stage {
    transform: scale(0.61);
    margin-inline: 0;
  }
  .hero {
    min-height: auto;
  }
  .hero-description {
    font-size: 14px;
  }
  .mode-copy {
    padding-inline: 24px;
  }
  .mode-copy h2 {
    font-size: 30px;
  }
}
@media (max-width: 700px) {
  .hero-description {
    font-size: 14px;
  }
  .included-list {
    font-size: 12px;
    grid-template-columns: 1fr;
  }
  .feature-foot p:nth-child(2) {
    font-size: 12px;
  }
  .mode-tabs button {
    font-size: 11px;
  }
  .hero-note {
    font-size: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .reveal-ready {
    opacity: 1;
    transform: none;
  }
  .reel-stage {
    --story: 0 !important;
  }
  .reel {
    will-change: auto;
  }
  .button:hover {
    transform: none;
  }
}
@media (prefers-reduced-transparency: reduce) {
  .header.is-stuck {
    background: var(--bg);
    backdrop-filter: none;
  }
  .mobile-menu::backdrop,
  .image-dialog::backdrop {
    backdrop-filter: none;
  }
}
