/* M4Q — главная страница. Общие токены и компоненты находятся в core.css. */

@property --tint { syntax: "<color>"; inherits: true; initial-value: #6a5cff; }

.section { position: relative; padding: clamp(72px, 9vw, 120px) 0; }
.section-note { margin-top: 32px; font-size: .9375rem; color: var(--faint); }
.section-note a, .pricing-note a, .faq-answer a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pill-dot { position: relative; width: 8px; height: 8px; flex: none; border-radius: 50%; background-color: var(--ok); }
.pill-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background-color: var(--ok); animation: ping 2.4s var(--ease-out) infinite; }
@keyframes ping { 70%, 100% { transform: scale(2.6); opacity: 0; } }

.check-list { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 24px; }
.check-list li { position: relative; padding-left: 32px; color: var(--ink-2); font-size: 1rem; line-height: 1.5; }
.check-list li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; background-color: var(--accent-soft); }
.check-list li::after {
  content: ""; position: absolute; left: 6px; top: 7px; width: 10px; height: 10px; background-color: var(--accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12.5 5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12.5 5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.segmented { display: inline-flex; gap: 2px; padding: 4px; margin-top: 22px; border-radius: 999px; background-color: var(--surface-3); border: 1px solid var(--line); }
.segmented button { min-height: 36px; padding: 0 16px; border-radius: 999px; font-size: .875rem; font-weight: 600; color: var(--muted); transition: color .2s, background-color .2s, box-shadow .2s; }
.segmented button:hover { color: var(--ink); }
.segmented button[aria-pressed="true"] { color: var(--ink); background-color: var(--surface); box-shadow: var(--shadow-sm), 0 0 0 1px var(--line); }

.card-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: var(--accent); background-color: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent-line); }
.card-icon .icon { width: 22px; height: 22px; }

/* Подсветка карточек около курсора: только для мыши, переменные задаёт site.js. */
.spot { position: relative; isolation: isolate; }
.spot::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none; opacity: 0;
  background: radial-gradient(360px circle at var(--mx, 50%) var(--my, 0%), var(--accent-soft), transparent 60%);
  transition: opacity .35s;
}
.spot:hover::before { opacity: 1; }

/* ——— Первый экран ——— */
.hero { position: relative; isolation: isolate; padding-top: clamp(48px, 8vw, 104px); overflow: clip; }
.hero-backdrop { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.hero-backdrop::before {
  content: ""; position: absolute; left: 50%; top: -420px; width: 1500px; height: 900px; translate: -50% 0;
  background: radial-gradient(closest-side, var(--glow-1), transparent 72%);
}
.hero-backdrop::after { content: ""; position: absolute; inset: auto 0 0; height: 260px; background: linear-gradient(to bottom, transparent, var(--bg)); }
.hero-aurora {
  position: absolute; left: 50%; top: 380px; width: min(1400px, 160vw); aspect-ratio: 2 / 1; translate: -50% 0;
  background: radial-gradient(38% 46% at 30% 50%, var(--glow-1), transparent 70%), radial-gradient(38% 46% at 70% 46%, var(--glow-2), transparent 70%);
}
.hero-copy { display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero-pill {
  display: inline-flex; align-items: center; gap: 10px; min-height: 36px; padding: 0 12px 0 14px; border-radius: 999px;
  border: 1px solid var(--line-strong); background-color: var(--surface); box-shadow: var(--shadow-sm);
  font-size: .875rem; font-weight: 500; color: var(--ink-2); transition: border-color .2s, transform .3s var(--ease-out);
}
.hero-pill:hover { border-color: var(--accent-line); }
.hero-pill .icon { width: 16px; height: 16px; color: var(--faint); transition: transform .3s var(--ease-out); }
.hero-pill:hover .icon { transform: translateX(2px); }
.hero h1 { max-width: 1120px; margin-top: 28px; font-size: clamp(2.5rem, 1.1rem + 5vw, 4.75rem); line-height: 1.02; letter-spacing: -.045em; font-weight: 680; }
.hero h1 .grad-text { display: inline-block; padding-bottom: .06em; }
.hero-lead { max-width: 690px; margin-top: 26px; font-size: clamp(1.0625rem, .98rem + .45vw, 1.3125rem); line-height: 1.6; color: var(--muted); }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 36px; }
.hero-facts { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; margin-top: 28px; font-size: .9375rem; color: var(--faint); }
.hero-facts li { display: inline-flex; align-items: center; gap: 8px; }
.hero-facts li::before {
  content: ""; width: 16px; height: 16px; background-color: var(--ok);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12.5 5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12.5 5 5L20 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.hero-stage { position: relative; max-width: 1120px; margin-top: clamp(48px, 7vw, 88px); padding-bottom: clamp(36px, 6vw, 72px); }
.hero-window-wrap { position: relative; padding: 1px; border-radius: 15px; background-color: var(--line-strong); }
.hero-window { box-shadow: 0 30px 80px -28px rgb(24 30 90 / .35), 0 14px 30px -18px rgb(16 20 40 / .25); }
[data-theme="dark"] .hero-window { box-shadow: 0 50px 120px -30px rgb(0 0 0 / .9), 0 0 140px -40px rgb(90 80 255 / .45); }
.beam { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; }
.beam::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: 160%; aspect-ratio: 1; translate: -50% -50%;
  background: conic-gradient(from 0deg, transparent 0 60%, rgb(123 108 255 / .0) 62%, #7b6cff 72%, #36a6ff 80%, rgb(54 166 255 / 0) 88%, transparent 100%);
}
.hero-window { position: relative; }
.hero-phone { position: absolute; right: -1.5%; bottom: 0; width: clamp(104px, 21.5%, 240px); }
.hero-caption { margin-top: 20px; text-align: center; font-size: .875rem; color: var(--faint); }

@media (prefers-reduced-motion: no-preference) {
  .hero-copy > * { animation: rise .9s var(--ease-out) both; }
  .hero-copy > :nth-child(2) { animation-delay: .06s; }
  .hero-copy > :nth-child(3) { animation-delay: .12s; }
  .hero-copy > :nth-child(4) { animation-delay: .18s; }
  .hero-copy > :nth-child(5) { animation-delay: .24s; }
  .hero-window-wrap { animation: rise-stage 1.1s var(--ease-out) .18s both; }
  .hero-phone { animation: rise-phone 1.2s var(--ease-out) .42s both; }
  .hero-aurora { animation: aurora 20s ease-in-out infinite alternate; }
  .beam::before { animation: spin 9s linear infinite paused; }
  .is-live > .beam::before { animation-play-state: running; }
}
@keyframes rise { from { opacity: 0; transform: translateY(18px); } }
@keyframes rise-stage { from { opacity: 0; transform: translateY(64px); } }
@keyframes rise-phone { from { opacity: 0; transform: translate(28px, 80px); } }
@keyframes aurora { to { transform: translate3d(4%, -6%, 0) scale(1.1); } }
@keyframes spin { to { rotate: 1turn; } }

/* Параллакс телефона связан с прокруткой и выполняется браузером без JavaScript. */
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) and (min-width: 768px) {
    .hero-phone {
      animation: rise-phone 1.2s var(--ease-out) .42s both, drift-phone linear both;
      animation-timeline: auto, scroll(root);
      animation-range: normal, 0 100vh;
    }
  }
}
@keyframes drift-phone { to { translate: 0 -96px; } }

@media (max-width: 640px) {
  .hero h1 { letter-spacing: -.04em; }
  .hero-actions { width: 100%; flex-direction: column; }
  .hero-actions .btn { width: 100%; }
  .hero-facts { gap: 8px 18px; font-size: .875rem; }
  .hero-stage { padding-bottom: 48px; }
  .hero-phone { right: 0; width: 31%; }
  .window-bar { height: 26px; font-size: .6875rem; }
  .window-caption i { width: 30px; }
}

/* ——— Скачивание ——— */
.download { position: relative; padding: clamp(40px, 6vw, 72px) 0 0; }
.download-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 32px; margin-bottom: 24px; }
.download-head h2 { font-size: clamp(1.625rem, 1.2rem + 1.5vw, 2.25rem); line-height: 1.1; letter-spacing: -.032em; }
.download-head p { margin-top: 8px; color: var(--muted); }
.download-head .download-fine { max-width: 400px; margin: 0; font-size: .875rem; color: var(--faint); }
.download-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.download-card {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px;
  min-height: 92px; padding: 20px; border-radius: 20px; background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm);
  transition: transform .35s var(--ease-out), border-color .25s, box-shadow .35s var(--ease-out);
}
.download-card:hover { transform: translateY(-3px); border-color: var(--accent-line); box-shadow: var(--shadow-md); }
.os-icon { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; color: var(--accent); background-color: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent-line); }
.os-icon .icon { width: 24px; height: 24px; }
.download-text { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; min-width: 0; }
.download-text strong { font: 650 1.125rem/1.25 var(--font-display); letter-spacing: -.015em; }
.download-text span { font-size: .875rem; color: var(--muted); }
.download-go { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--ink-2); border: 1px solid var(--line-strong); transition: background-color .25s, color .25s, border-color .25s, transform .35s var(--ease-out); }
.download-go .icon { width: 18px; height: 18px; }
.download-card:hover .download-go, .download-card.is-recommended .download-go { color: #fff; border-color: transparent; background-color: var(--btn-bg); background-image: var(--btn-grad); }
.download-card:hover .download-go { transform: translateY(2px); }
.os-hint:empty { display: none; }
.os-hint {
  position: absolute; top: -11px; right: 18px; padding: 3px 10px; border-radius: 999px; font-size: .75rem; font-weight: 600; line-height: 1.4;
  color: #fff; background-color: var(--btn-bg); background-image: var(--btn-grad); box-shadow: 0 6px 16px -6px rgb(70 70 230 / .6);
}
.download-card.is-recommended { border-color: var(--accent-line); box-shadow: 0 0 0 1px var(--accent-line), var(--shadow-md); }
@media (max-width: 860px) {
  .download-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}

/* ——— Экскурсия по интерфейсу ——— */
.tour-tabs-wrap { display: flex; justify-content: center; margin: 0 calc(-1 * var(--gutter)) clamp(36px, 5vw, 64px); padding: 0 var(--gutter); }
.tour-tabs {
  position: relative; display: inline-flex; gap: 2px; max-width: 100%; padding: 5px; border-radius: 999px;
  background-color: var(--surface-3); border: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain;
}
.tour-tabs::-webkit-scrollbar { display: none; }
.tour-tab {
  position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px;
  border-radius: 999px; font-size: .9375rem; font-weight: 600; color: var(--muted); white-space: nowrap; transition: color .25s;
}
.tour-tab .icon { width: 18px; height: 18px; }
.tour-tab:hover, .tour-tab[aria-selected="true"] { color: var(--ink); }
.tour-tab[aria-selected="true"] .icon { color: var(--accent); }
.tab-indicator {
  position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 0; width: var(--w, 0); transform: translateX(var(--x, 0));
  border-radius: 999px; background-color: var(--surface); box-shadow: var(--shadow-sm), 0 0 0 1px var(--line);
  transition: transform .5s var(--ease-out), width .5s var(--ease-out);
}
.tour-body { display: grid; grid-template-columns: minmax(0, 4.3fr) minmax(0, 7.7fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.tour.is-enhanced .tour-body { align-items: center; }
.tour-panel { padding: 8px 0; }
.tour:not(.is-enhanced) .tour-panel + .tour-panel { margin-top: 48px; padding-top: 48px; border-top: 1px solid var(--line); }
.tour.is-enhanced .tour-panel:not(.is-active) { display: none; }
.panel-kicker { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; font: 600 .8125rem/1 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.panel-kicker span { padding: 5px 8px; border-radius: 7px; font-family: var(--font-mono); letter-spacing: 0; background-color: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent-line); }
.tour-panel h3 { font-size: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem); line-height: 1.08; letter-spacing: -.035em; }
.tour-panel > p { margin-top: 16px; color: var(--muted); font-size: 1.0625rem; }
.tour-panel .text-link { margin-top: 28px; }
.tour-stage { --tint: #6a5cff; position: relative; isolation: isolate; padding: 0 9% 10% 0; transition: --tint .9s var(--ease-out); }
.tour:not(.is-enhanced) .tour-stage { position: sticky; top: calc(var(--header-h) + 32px); }
.tour-stage[data-chapter="voice"] { --tint: #19b5d8; }
.tour-stage[data-chapter="calendar"] { --tint: #3b7bff; }
.tour-stage[data-chapter="budget"] { --tint: #1fbf86; }
.tour-stage[data-chapter="passwords"] { --tint: #e0a020; }
.stage-glow {
  position: absolute; inset: 6% 4% -4% 8%; z-index: -1; pointer-events: none;
  background: radial-gradient(60% 60% at 45% 50%, color-mix(in srgb, var(--tint) 26%, transparent), transparent 70%);
}
.stage-window { display: block; width: 100%; text-align: left; cursor: zoom-in; transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out); }
.stage-window:hover { transform: translateY(-3px); }
.stage-phone { position: absolute; right: 0; bottom: 0; width: 27%; cursor: zoom-in; transition: transform .45s var(--ease-out); }
.stage-phone:hover { transform: translateY(-4px); }
.stage-zoom {
  position: absolute; right: 12px; top: 48px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
  color: #fff; background-color: rgb(10 12 20 / .6); opacity: 0; transform: scale(.9); transition: opacity .25s, transform .25s var(--ease-out);
}
.stage-zoom .icon { width: 18px; height: 18px; }
.stage-window:hover .stage-zoom, .stage-window:focus-visible .stage-zoom { opacity: 1; transform: none; }
.shot-previous { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.tour.is-enhanced .tour-panel.is-active { animation: panel-in .55s var(--ease-out); }
@keyframes panel-in { from { opacity: 0; transform: translateY(12px); } }
@media (max-width: 900px) {
  .tour-body { grid-template-columns: minmax(0, 1fr); }
  .tour-stage, .tour:not(.is-enhanced) .tour-stage { position: relative; top: auto; grid-row: 1; }
  .tour-tabs-wrap { justify-content: flex-start; }
  .tour-tabs { border-radius: 16px; }
  .tour-tab { padding: 0 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .tour.is-enhanced .tour-panel.is-active { animation: none; }
  .tab-indicator, .tour-stage { transition: none; }
}

/* ——— Безопасность: тёмная полоса в обеих темах ——— */
.security { overflow: clip; isolation: isolate; border-block: 1px solid rgb(255 255 255 / .06); }
.security-glow {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(50% 60% at 85% 30%, rgb(91 78 240 / .28), transparent 70%), radial-gradient(40% 50% at 10% 90%, rgb(31 150 255 / .16), transparent 70%);
}
.security .section-title { font-size: clamp(2rem, 1.2rem + 2.5vw, 3.1rem); }
.security-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6.2fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.security-points { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 40px; }
.security-points li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; }
.point-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; color: var(--accent); background-color: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent-line); }
.security-points h3 { font-size: 1.125rem; letter-spacing: -.012em; }
.security-points p { margin-top: 6px; color: var(--muted); font-size: .96875rem; }

/* ——— Сцена P2P: поиск через сервер, прямой канал, зашифрованная передача ———
   Иллюстрация масштабируется целиком: размеры в em от ширины сцены, позиции в процентах.
   Цикл 12 с; анимируются transform и opacity, вне экрана цикл на паузе.
   Без анимаций показывается итоговое состояние: канал открыт, сообщения доставлены. */
.p2p {
  container: p2p / inline-size;
  position: relative; isolation: isolate; margin: 0; padding: clamp(10px, 1.6vw, 16px); border-radius: 28px;
  background-image: linear-gradient(180deg, rgb(255 255 255 / .06), rgb(255 255 255 / .015));
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .08), 0 60px 120px -50px rgb(0 0 0 / .95), 0 0 140px -60px rgb(106 92 255 / .65);
}
.p2p::before {
  content: ""; position: absolute; inset: 0; z-index: -1; padding: 1px; border-radius: inherit; pointer-events: none;
  background-image: linear-gradient(150deg, rgb(170 160 255 / .6), rgb(255 255 255 / .08) 30%, rgb(255 255 255 / .06) 70%, rgb(70 190 255 / .45));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude;
}
.p2p-stage {
  position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 20px; font-size: 2.15cqw; line-height: 1.3;
  background-color: #05070f;
  background-image: radial-gradient(58% 52% at 52% 62%, rgb(78 66 230 / .3), transparent 72%), radial-gradient(36% 40% at 88% 12%, rgb(31 150 255 / .16), transparent 70%), radial-gradient(30% 34% at 8% 96%, rgb(44 205 245 / .1), transparent 70%);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / .06);
}
.p2p-stage::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgb(255 255 255 / .1) 1px, transparent 1.4px); background-size: 2.3em 2.3em;
  -webkit-mask: radial-gradient(68% 68% at 50% 56%, #000 15%, transparent 78%); mask: radial-gradient(68% 68% at 50% 56%, #000 15%, transparent 78%);
}
/* Мягкие пятна света медленно вращаются вокруг центра сцены; общей точки схода нет. */
.p2p-aurora {
  position: absolute; left: 50%; top: 58%; width: 120%; aspect-ratio: 1; translate: -50% -50%; pointer-events: none;
  background-image: radial-gradient(26% 26% at 34% 56%, rgb(106 92 255 / .3), transparent 70%), radial-gradient(24% 24% at 68% 44%, rgb(31 160 255 / .22), transparent 70%), radial-gradient(18% 18% at 52% 74%, rgb(44 205 245 / .12), transparent 70%);
}

.p2p-wires { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; overflow: visible; }
.p2p-wires path { fill: none; }
.wire { stroke: rgb(170 180 255 / .32); stroke-width: 1.3; stroke-dasharray: 3 5; }
.wire-pulse { stroke: #c9d0ff; stroke-width: 3.2; stroke-linecap: round; stroke-dasharray: 7 100; stroke-dashoffset: 8; filter: drop-shadow(0 0 3px #8b97ff); }

.p2p-server {
  position: absolute; left: 50%; top: 14.5%; z-index: 3; translate: -50% -50%; display: flex; align-items: center; gap: .75em;
  padding: .6em 1.1em .6em .6em; border-radius: 1em; background-color: rgb(14 17 30 / .94); border: 1px solid rgb(255 255 255 / .12);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .07), 0 1.4em 2.8em -1.2em rgb(0 0 0 / .9);
}
.srv-icon { position: relative; display: grid; place-items: center; width: 2.5em; height: 2.5em; border-radius: .75em; color: #cfd5f7; background-image: linear-gradient(160deg, #2b3150, #181b2c); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08); }
.srv-icon .icon { width: 1.35em; height: 1.35em; }
.srv-icon::after { content: ""; position: absolute; inset: -.25em; border-radius: .95em; border: 1.5px solid rgb(160 170 255 / .85); opacity: 0; }
.srv-text { display: grid; grid-template-columns: minmax(0, 1fr); gap: .1em; }
.srv-text strong { font-size: 1em; font-weight: 600; line-height: 1.2; color: #eef0fb; }
.srv-status { display: grid; }
.st { grid-area: 1 / 1; display: inline-flex; align-items: center; gap: .35em; font-size: .8em; color: #a6adc4; white-space: nowrap; }
.st .icon { width: 1.15em; height: 1.15em; color: #ff9c9c; }
.st1, .st2 { opacity: 0; }

.p2p-dev { position: absolute; z-index: 2; }
.p2p-laptop { left: 3%; top: 47.5%; width: 30%; }
.p2p-phone { right: 5%; top: 37.5%; width: 19%; }
.dev-screen {
  position: relative; display: flex; flex-direction: column; overflow: hidden; background-color: #0a0c15;
  border: .32em solid #1b1f30; border-radius: .8em;
  box-shadow: 0 0 0 1px rgb(255 255 255 / .1), 0 1.6em 3.2em -1.2em rgb(0 0 0 / .9), 0 0 3.4em -1.2em rgb(106 92 255 / .55);
}
.p2p-laptop .dev-screen { aspect-ratio: 16 / 11.5; border-bottom-width: .45em; }
.p2p-phone .dev-screen { aspect-ratio: 9 / 17; border-width: .38em; border-radius: 1.4em; }
.dev-base { position: relative; height: .75em; margin: 0 -8%; border-radius: .15em .15em .7em .7em; background-image: linear-gradient(#2c3149, #151827); box-shadow: 0 .7em 1.4em -.5em rgb(0 0 0 / .9); }
.dev-base::before { content: ""; position: absolute; left: 50%; top: 0; width: 18%; height: .3em; translate: -50% 0; border-radius: 0 0 .4em .4em; background-color: #0f1220; }
.chat-head { display: flex; align-items: center; gap: .5em; padding: .42em .6em; border-bottom: 1px solid rgb(255 255 255 / .07); background-color: #10131f; }
.ava { flex: none; display: grid; place-items: center; width: 2.4em; height: 2.4em; border-radius: 50%; font: normal 700 .62em/1 var(--font-sans); color: #fff; background-image: linear-gradient(135deg, #3b82f6, #1d4ed8); }
.chat-head > span { display: grid; min-width: 0; }
.chat-head b { font-size: .74em; font-weight: 600; line-height: 1.25; color: #e9ecf8; }
.chat-head small { display: flex; align-items: center; gap: .35em; font-size: .6em; color: #9aa2b8; white-space: nowrap; }
.online { width: .55em; height: .55em; border-radius: 50%; font-style: normal; background-color: #4ade80; }
.chat-body { flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: .35em; padding: .4em .55em; }
.chat-input { display: flex; align-items: center; gap: .4em; margin: 0 .5em .5em; padding: .3em .3em .3em .65em; border-radius: 999px; background-color: #151929; border: 1px solid rgb(255 255 255 / .06); }
.chat-input span { flex: 1; font-size: .6em; color: #737b94; white-space: nowrap; }
.chat-input i { width: 1.35em; height: 1.35em; border-radius: 50%; background-image: linear-gradient(135deg, #5b4ff0, #2f62e8); }
.p2p .bubble { max-width: 88%; margin: 0; padding: .45em .65em; border-radius: .85em; font-size: .7em; line-height: 1.3; }
.p2p .bubble.out { align-self: flex-end; color: #fff; background-color: #4a4fe4; background-image: linear-gradient(135deg, #5b4ff0, #2f62e8); border-bottom-right-radius: .25em; transform-origin: 100% 100%; }
.p2p .bubble.in { align-self: flex-start; color: #e7eaf5; background-color: #1d2235; border-bottom-left-radius: .25em; transform-origin: 0 100%; }
.ticks { margin-left: .45em; font-size: .85em; letter-spacing: -.2em; color: #8fe3ff; }
.screen-flash { position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 0 0 0 .15em rgb(44 205 245 / .9), inset 0 0 2em rgb(44 205 245 / .35); opacity: 0; }

.dev-label {
  position: absolute; z-index: 3; translate: -50% -50%; display: inline-flex; align-items: center; gap: .4em; padding: .38em .8em .38em .6em;
  border-radius: 999px; font-size: max(10px, .78em); font-weight: 600; color: #d3d8ea; white-space: nowrap;
  background-color: rgb(14 17 30 / .92); border: 1px solid rgb(255 255 255 / .1);
}
.dev-label .icon { width: 1.15em; height: 1.15em; color: #4ade80; }
.dev-label .short { display: none; }
.label-a { left: 18%; top: 88%; }
.label-b { left: 85.5%; top: 95.4%; }

.p2p-link { position: absolute; left: 33%; top: 63.8%; z-index: 2; width: 43%; height: 3em; translate: 0 -50%; container-type: inline-size; }
.p2p-link > i { position: absolute; top: 50%; translate: 0 -50%; font-style: normal; }
.p2p-link .link-idle { left: 0; right: 0; height: 0; border-top: 1px dashed rgb(170 180 255 / .32); }
.p2p-link .link-beam { width: calc(50% + 1px); height: .24em; }
.p2p-link .beam-l { left: 0; border-radius: 1em 0 0 1em; transform-origin: 0 50%; background-image: linear-gradient(90deg, #8b7dff, #4f8dff); }
.p2p-link .beam-r { right: 0; border-radius: 0 1em 1em 0; transform-origin: 100% 50%; background-image: linear-gradient(90deg, #4f8dff, #2ccdf5); }
.p2p-link .link-glow { left: -2%; right: -2%; height: 1.8em; border-radius: 2em; opacity: .85; filter: blur(.9em); background-image: linear-gradient(90deg, rgb(123 108 255 / .6), rgb(63 140 255 / .55), rgb(44 205 245 / .6)); }
.p2p-link .link-spark { left: 50%; width: 3.2em; height: 3.2em; translate: -50% -50%; border-radius: 50%; opacity: 0; background-image: radial-gradient(closest-side, #fff, rgb(160 190 255 / .7) 35%, transparent 70%); }
.packet {
  position: absolute; left: 0; top: 50%; z-index: 3; translate: 0 -50%; display: inline-flex; align-items: center; gap: .35em;
  padding: .32em .65em .32em .45em; border-radius: 999px; white-space: nowrap; opacity: 0;
  font: 600 .64em/1 var(--font-mono); letter-spacing: .02em; color: #eef3ff;
  background-color: rgb(18 22 46 / .96); border: 1px solid rgb(150 165 255 / .6);
  box-shadow: 0 0 1.4em rgb(110 130 255 / .65), inset 0 0 .9em rgb(110 130 255 / .25);
}
.packet .icon { width: 1.15em; height: 1.15em; color: #a9b6ff; }
.packet::before { content: ""; position: absolute; top: 50%; right: calc(100% - .6em); width: 5em; height: .3em; translate: 0 -50%; border-radius: 1em; background-image: linear-gradient(90deg, transparent, rgb(150 165 255 / .85)); }
.packet-ba { border-color: rgb(80 210 245 / .6); box-shadow: 0 0 1.4em rgb(44 205 245 / .55), inset 0 0 .9em rgb(44 205 245 / .2); }
.packet-ba::before { right: auto; left: calc(100% - .6em); background-image: linear-gradient(270deg, transparent, rgb(80 210 245 / .85)); }
.cipher { display: grid; }
.cipher i { grid-area: 1 / 1; font-style: normal; }
.cipher i + i { opacity: 0; }

.p2p-keys {
  position: absolute; left: 54.5%; top: 51.2%; z-index: 3; translate: -50% -50%; display: inline-flex; align-items: center; gap: .4em;
  padding: .38em .85em .38em .55em; border-radius: 999px; font-size: max(10px, .76em); font-weight: 600; color: #e4e7ff; white-space: nowrap;
  background-color: rgb(26 22 64 / .92); border: 1px solid rgb(160 150 255 / .5); box-shadow: 0 0 2em -.3em rgb(106 92 255 / .75);
}
.p2p-keys .icon { width: 1.2em; height: 1.2em; color: #c1b8ff; }

.p2p-steps { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; margin: 14px 4px 4px; padding: 0; }
.p2p-steps li { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 6px; }
.step-bar { display: block; height: 3px; overflow: hidden; border-radius: 3px; background-color: rgb(255 255 255 / .1); }
.step-bar i { display: block; height: 100%; border-radius: inherit; background-image: var(--grad-brand); transform-origin: 0 50%; }
.p2p-steps b { display: block; font-size: .9375rem; font-weight: 600; color: var(--ink); }
.p2p-steps b .mono { margin-right: 8px; font-size: .75rem; color: var(--accent); }
.p2p-steps small { font-size: .8125rem; line-height: 1.4; color: var(--muted); }
@container p2p (max-width: 520px) {
  .p2p-steps small, .p2p-keys span, .srv-status, .chat-head small, .dev-label .long { display: none; }
  .dev-label .short { display: inline; }
  .dev-label { font-size: max(9px, .8em); padding: .3em .7em .3em .5em; }
  .label-b { top: 96.5%; }
  .p2p-server { padding-right: .9em; }
  .p2p-steps { gap: 8px; }
  .p2p-steps b { font-size: .8125rem; }
  .p2p-steps b .mono { display: block; margin: 0 0 2px; }
}

@media (prefers-reduced-motion: no-preference) {
  .p2p-aurora { animation: spin 32s linear infinite; }
  .wire { animation: p2p-wire 12s linear infinite both; }
  .pulse-up-a { animation: p2p-up-a 12s linear infinite both; }
  .pulse-up-b { animation: p2p-up-b 12s linear infinite both; }
  .pulse-down-a, .pulse-down-b { animation: p2p-down 12s linear infinite both; }
  .srv-icon::after { animation: p2p-ring 12s ease-out infinite both; }
  .st1 { animation: p2p-st1 12s linear infinite both; }
  .st2 { animation: p2p-st2 12s linear infinite both; }
  .st3 { animation: p2p-st3 12s linear infinite both; }
  .p2p-link .link-beam { animation: p2p-beam 12s cubic-bezier(.65, 0, .35, 1) infinite both; }
  .p2p-link .link-glow { animation: p2p-glow 12s linear infinite both; }
  .p2p-link .link-spark { animation: p2p-spark 12s ease-out infinite both; }
  .p2p-keys { animation: p2p-keys 12s var(--ease-out) infinite both; }
  .bubble-a1 { animation: p2p-a1 12s var(--ease-out) infinite both; }
  .bubble-b1 { animation: p2p-b1 12s var(--ease-out) infinite both; }
  .bubble-b2 { animation: p2p-b2 12s var(--ease-out) infinite both; }
  .bubble-a2 { animation: p2p-a2 12s var(--ease-out) infinite both; }
  .ticks-a { animation: p2p-read-a 12s linear infinite both; }
  .ticks-b { animation: p2p-read-b 12s linear infinite both; }
  .flash-b { animation: p2p-flash-b 12s ease-out infinite both; }
  .flash-a { animation: p2p-flash-a 12s ease-out infinite both; }
  .packet-ab { animation: p2p-ab 12s linear infinite both; }
  .packet-ba { animation: p2p-ba 12s linear infinite both; }
  .cipher i { animation: p2p-cipher .45s steps(1) infinite both; }
  .cipher i:nth-child(2) { animation-delay: -.15s; }
  .cipher i:nth-child(3) { animation-delay: -.3s; }
  .step-1 { animation: p2p-li-1 12s linear infinite both; }
  .step-2 { animation: p2p-li-2 12s linear infinite both; }
  .step-3 { animation: p2p-li-3 12s linear infinite both; }
  .step-1 .step-bar i { animation: p2p-bar-1 12s linear infinite both; }
  .step-2 .step-bar i { animation: p2p-bar-2 12s linear infinite both; }
  .step-3 .step-bar i { animation: p2p-bar-3 12s linear infinite both; }
  /* Вне экрана core.js ставит весь цикл на паузу; слои останавливаются и продолжают вместе. */
  .p2p.is-paused :is(.p2p-aurora, .wire, .wire-pulse, .st, .link-beam, .link-glow, .link-spark, .p2p-keys, .bubble, .ticks, .screen-flash, .packet, .cipher i, .p2p-steps li, .step-bar i),
  .p2p.is-paused .srv-icon::after { animation-play-state: paused; }
}
@keyframes p2p-wire { 0%, 30% { opacity: 1; } 38%, 92% { opacity: .3; } 100% { opacity: 1; } }
@keyframes p2p-up-a { 0%, 4% { stroke-dashoffset: -100; } 12%, 100% { stroke-dashoffset: 8; } }
@keyframes p2p-up-b { 0%, 6% { stroke-dashoffset: -100; } 14%, 100% { stroke-dashoffset: 8; } }
@keyframes p2p-down { 0%, 15% { stroke-dashoffset: 8; } 22%, 100% { stroke-dashoffset: -100; } }
@keyframes p2p-ring { 0%, 12% { opacity: 0; transform: scale(1); } 13% { opacity: .9; transform: scale(1); } 21%, 100% { opacity: 0; transform: scale(1.7); } }
@keyframes p2p-st1 { 0%, 21% { opacity: 1; } 23%, 97% { opacity: 0; } 100% { opacity: 1; } }
@keyframes p2p-st2 { 0%, 21% { opacity: 0; } 23%, 33% { opacity: 1; } 35%, 100% { opacity: 0; } }
@keyframes p2p-st3 { 0%, 33% { opacity: 0; } 35%, 94% { opacity: 1; } 97%, 100% { opacity: 0; } }
@keyframes p2p-beam { 0%, 22% { transform: scaleX(0); opacity: 1; } 30%, 92% { transform: scaleX(1); opacity: 1; } 97%, 100% { transform: scaleX(1); opacity: 0; } }
@keyframes p2p-glow { 0%, 27% { opacity: 0; } 34%, 90% { opacity: .85; } 96%, 100% { opacity: 0; } }
@keyframes p2p-spark { 0%, 29% { opacity: 0; transform: scale(.3); } 30.5% { opacity: 1; transform: scale(1); } 36%, 100% { opacity: 0; transform: scale(1.6); } }
@keyframes p2p-keys { 0%, 28% { opacity: 0; transform: translateY(.7em) scale(.92); } 33%, 90% { opacity: 1; transform: none; } 95%, 100% { opacity: 0; transform: none; } }
@keyframes p2p-a1 { 0%, 34% { opacity: 0; transform: translateY(.6em) scale(.9); } 37%, 92% { opacity: 1; transform: none; } 97%, 100% { opacity: 0; transform: none; } }
@keyframes p2p-b1 { 0%, 50% { opacity: 0; transform: translateY(.6em) scale(.9); } 53%, 92% { opacity: 1; transform: none; } 97%, 100% { opacity: 0; transform: none; } }
@keyframes p2p-b2 { 0%, 58% { opacity: 0; transform: translateY(.6em) scale(.9); } 61%, 92% { opacity: 1; transform: none; } 97%, 100% { opacity: 0; transform: none; } }
@keyframes p2p-a2 { 0%, 73% { opacity: 0; transform: translateY(.6em) scale(.9); } 76%, 92% { opacity: 1; transform: none; } 97%, 100% { opacity: 0; transform: none; } }
@keyframes p2p-read-a { 0%, 54% { color: rgb(255 255 255 / .5); } 56%, 100% { color: #8fe3ff; } }
@keyframes p2p-read-b { 0%, 77% { color: rgb(255 255 255 / .5); } 79%, 100% { color: #8fe3ff; } }
@keyframes p2p-flash-b { 0%, 49% { opacity: 0; } 50.5% { opacity: 1; } 56%, 100% { opacity: 0; } }
@keyframes p2p-flash-a { 0%, 72% { opacity: 0; } 73.5% { opacity: 1; } 79%, 100% { opacity: 0; } }
@keyframes p2p-ab { 0%, 38% { opacity: 0; transform: translateX(0); } 39.5%, 48.5% { opacity: 1; } 50%, 100% { opacity: 0; transform: translateX(calc(100cqw - 100%)); } }
@keyframes p2p-ba { 0%, 61% { opacity: 0; transform: translateX(calc(100cqw - 100%)); } 62.5%, 71.5% { opacity: 1; } 73%, 100% { opacity: 0; transform: translateX(0); } }
@keyframes p2p-cipher { 0%, 33% { opacity: 1; } 34%, 100% { opacity: 0; } }
@keyframes p2p-li-1 { 0%, 22% { opacity: 1; } 24%, 96% { opacity: .45; } 100% { opacity: 1; } }
@keyframes p2p-li-2 { 0%, 21% { opacity: .45; } 23%, 33% { opacity: 1; } 35%, 100% { opacity: .45; } }
@keyframes p2p-li-3 { 0%, 33% { opacity: .45; } 35%, 94% { opacity: 1; } 98%, 100% { opacity: .45; } }
@keyframes p2p-bar-1 { 0%, 2% { transform: scaleX(0); opacity: 1; } 21% { transform: scaleX(1); } 92% { opacity: 1; } 97%, 100% { transform: scaleX(1); opacity: 0; } }
@keyframes p2p-bar-2 { 0%, 22% { transform: scaleX(0); opacity: 1; } 33% { transform: scaleX(1); } 92% { opacity: 1; } 97%, 100% { transform: scaleX(1); opacity: 0; } }
@keyframes p2p-bar-3 { 0%, 34% { transform: scaleX(0); opacity: 1; } 88% { transform: scaleX(1); } 92% { opacity: 1; } 97%, 100% { transform: scaleX(1); opacity: 0; } }

.spec-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: clamp(56px, 8vw, 88px) 0 0; border-top: 1px solid var(--line); }
.spec-row > div { padding: 28px 24px 0 0; }
.spec-row > div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.spec-row dt { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); font-weight: 600; color: var(--ink); }
.spec-row dd { margin: 8px 0 0; font-size: .9375rem; color: var(--muted); }
@media (max-width: 960px) {
  .security-grid { grid-template-columns: minmax(0, 1fr); }
  .spec-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spec-row > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .spec-row > div:nth-child(n + 3) { margin-top: 8px; }
}
@media (max-width: 480px) {
  .spec-row { grid-template-columns: minmax(0, 1fr); }
  .spec-row > div, .spec-row > div + div { padding: 20px 0; border-left: 0; border-bottom: 1px solid var(--line); margin: 0; }
}

/* ——— YouTube в M4Q: иллюстрация плеера без логотипов и снимков чужого интерфейса ——— */
.youtube { background-color: var(--bg-soft); border-block: 1px solid var(--line); overflow: clip; }
.yt-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6.4fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.yt-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.yt-visual { position: relative; padding: 30px 0 34px; }
.yt-window { border-radius: 16px; }
.yt-toolbar { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: .8125rem; color: var(--muted); background-color: var(--surface); border-bottom: 1px solid var(--line); }
.yt-nav { display: flex; gap: 10px; color: var(--faint); }
.yt-nav .icon, .yt-search .icon, .yt-open .icon { width: 15px; height: 15px; flex: none; }
.yt-search { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 12px; overflow: hidden; white-space: nowrap; border-radius: 999px; background-color: var(--surface-3); border: 1px solid var(--line); }
.yt-open { display: flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; white-space: nowrap; border-radius: 999px; font-weight: 600; color: var(--ink-2); border: 1px solid var(--line-strong); }
.yt-player { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background-color: #05060c; container-type: inline-size; }
.yt-scene { position: absolute; inset: 0; }
.yt-scene > i { position: absolute; font-style: normal; }
.yt-sky { inset: 0; background-image: linear-gradient(180deg, #17123f 0%, #35287a 36%, #a3578f 64%, #ee9c69 84%, #ffd2a1 100%); }
.yt-sun { left: 58%; top: 40%; width: 24cqw; aspect-ratio: 1; translate: -50% 0; border-radius: 50%; background-image: radial-gradient(circle, #fff4d8 0 28%, #ffcb88 48%, rgb(255 170 110 / 0) 70%); }
.yt-hills { left: -12%; right: -12%; bottom: 0; }
.yt-hills-far { height: 50%; background-color: #4b3579; clip-path: polygon(0 62%, 9% 40%, 18% 55%, 30% 22%, 41% 48%, 52% 30%, 63% 52%, 74% 26%, 86% 50%, 100% 34%, 100% 100%, 0 100%); }
.yt-hills-mid { height: 38%; background-color: #2c1f56; clip-path: polygon(0 46%, 12% 30%, 24% 52%, 36% 24%, 50% 50%, 62% 32%, 75% 56%, 88% 30%, 100% 48%, 100% 100%, 0 100%); }
.yt-hills-near { height: 25%; background-color: #120d2a; clip-path: polygon(0 40%, 15% 58%, 28% 30%, 44% 56%, 58% 36%, 72% 60%, 86% 34%, 100% 52%, 100% 100%, 0 100%); }
.yt-mist { left: 0; right: 0; bottom: 20%; height: 26%; background-image: linear-gradient(180deg, transparent, rgb(255 205 185 / .2), transparent); }
.yt-big-play { position: absolute; left: 50%; top: 44%; display: grid; place-items: center; width: 14cqw; height: 14cqw; translate: -50% -50%; border-radius: 50%; color: #fff; opacity: 0; background-color: rgb(10 10 22 / .55); border: 1px solid rgb(255 255 255 / .4); box-shadow: 0 10px 40px rgb(0 0 0 / .4); }
.yt-big-play .icon { width: 44%; height: 44%; }
.yt-controls { position: absolute; left: 0; right: 0; bottom: 0; padding: 14% 3.5% 3%; color: #fff; background-image: linear-gradient(180deg, transparent, rgb(0 0 0 / .68)); }
.yt-progress { position: relative; display: block; height: 4px; border-radius: 4px; background-color: rgb(255 255 255 / .22); container-type: inline-size; }
.yt-progress > i { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; border-radius: inherit; font-style: normal; transform-origin: 0 50%; }
.yt-progress .yt-buffer { background-color: rgb(255 255 255 / .32); transform: scaleX(.64); }
.yt-progress .yt-played { background-image: linear-gradient(90deg, #8b7dff, #36a6ff); transform: scaleX(.38); }
.yt-progress .yt-thumb { top: 50%; width: 12px; height: 12px; translate: -50% -50%; border-radius: 50%; background-color: #fff; box-shadow: 0 0 0 4px rgb(139 125 255 / .35); transform: translateX(38cqw); }
.yt-row { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.yt-left, .yt-right { display: flex; align-items: center; gap: 14px; }
.yt-row .icon { width: 18px; height: 18px; }
.yt-right b { padding: 2px 7px; border-radius: 6px; font-size: .6875rem; font-weight: 700; background-color: rgb(255 255 255 / .18); }
.yt-badge { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; white-space: nowrap; border-radius: 999px; font-size: .875rem; font-weight: 600; color: var(--ink); background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-md); }
.yt-badge-direct { left: -22px; top: 36%; }
.yt-badge-platforms { right: 24px; bottom: 6px; }
@media (prefers-reduced-motion: no-preference) {
  .yt-hills-far { animation: yt-drift 22s ease-in-out infinite alternate; --drift: -3%; }
  .yt-hills-mid { animation: yt-drift 22s ease-in-out infinite alternate; --drift: -6%; }
  .yt-hills-near { animation: yt-drift 22s ease-in-out infinite alternate; --drift: -10%; }
  .yt-sun { animation: yt-sun 22s ease-in-out infinite alternate; }
  .yt-big-play { animation: yt-play 12s var(--ease-out) infinite both; }
  .yt-progress .yt-played { animation: yt-played 24s linear infinite both; }
  .yt-progress .yt-thumb { animation: yt-thumb 24s linear infinite both; }
  .yt-progress .yt-buffer { animation: yt-buffer 24s linear infinite both; }
  .yt-badge { animation: float-y 7s ease-in-out infinite alternate; }
  .yt-badge-platforms { animation-duration: 8s; animation-delay: -3s; }
  .yt-visual.is-paused :is(.yt-scene > i, .yt-big-play, .yt-progress > i, .yt-badge) { animation-play-state: paused; }
}
@keyframes yt-drift { to { transform: translateX(var(--drift)); } }
@keyframes yt-sun { to { transform: translateY(-8%); } }
@keyframes yt-play { 0% { opacity: 1; transform: scale(1); } 7% { opacity: 1; transform: scale(1); } 12%, 100% { opacity: 0; transform: scale(1.25); } }
@keyframes yt-played { from { transform: scaleX(.38); } to { transform: scaleX(.8); } }
@keyframes yt-thumb { from { transform: translateX(38cqw); } to { transform: translateX(80cqw); } }
@keyframes yt-buffer { from { transform: scaleX(.64); } to { transform: scaleX(.96); } }
@keyframes float-y { from { transform: translateY(-5px); } to { transform: translateY(5px); } }
@media (max-width: 960px) {
  .yt-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .yt-actions .btn { width: 100%; }
  .yt-open { display: none; }
  .yt-badge { max-width: calc(100% - 16px); padding: 8px 12px; font-size: .8125rem; white-space: normal; }
  .yt-badge-direct { left: 8px; }
  .yt-badge-platforms { right: 8px; }
}

/* ——— Вход по PIN: клавиатура, проверка и открытие профиля; цикл 12 с ——— */
.pin-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.pin-points { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 36px; }
.pin-points li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; }
.pin-points h3 { font-size: 1.125rem; letter-spacing: -.012em; }
.pin-points p { margin-top: 6px; font-size: .96875rem; color: var(--muted); }
.pin-visual { container: pin / inline-size; }
.pin-stage { position: relative; isolation: isolate; display: grid; place-items: center; min-height: 600px; }
.pin-stage::before { content: ""; position: absolute; inset: 6% 8%; z-index: -1; border-radius: 50%; background-image: radial-gradient(closest-side, var(--glow-1), transparent 75%); }
.pin-card {
  position: relative; isolation: isolate; width: min(100%, 320px); padding: 30px 26px 26px; overflow: hidden; text-align: center;
  border-radius: 34px; background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lg), 0 0 0 8px rgb(106 92 255 / .05);
}
.pin-glow { position: absolute; left: -20%; right: -20%; top: -45%; z-index: -1; height: 75%; background-image: radial-gradient(closest-side, rgb(106 92 255 / .22), transparent 70%); }
.pin-glow::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(closest-side, rgb(34 197 94 / .22), transparent 70%); }
.pin-lock { position: relative; isolation: isolate; display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto; border-radius: 18px; color: #fff; background-color: var(--btn-bg); background-image: var(--btn-grad); box-shadow: var(--btn-shadow); }
.pin-lock::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background-image: linear-gradient(135deg, #22c55e, #0f9f6e); }
.pin-lock > span { grid-area: 1 / 1; display: grid; }
.pin-lock .icon { width: 26px; height: 26px; }
.lock-closed { opacity: 0; }
.pin-title { margin-top: 18px; font: 650 1.25rem/1.2 var(--font-display); color: var(--ink); }
.pin-status { display: grid; min-height: 1.5em; margin-top: 6px; }
.ps { grid-area: 1 / 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-size: .875rem; color: var(--muted); }
.ps-enter, .ps-check { opacity: 0; }
.ps-ok { font-weight: 600; color: var(--ok); }
.ps-ok .icon { width: 16px; height: 16px; }
.pin-dots { display: flex; justify-content: center; gap: 14px; margin: 22px 0 26px; }
.pin-dots i { position: relative; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--line-strong); }
.pin-dots i::before, .pin-dots i::after { content: ""; position: absolute; inset: -1.5px; border-radius: 50%; }
.pin-dots i::before { background-color: var(--accent); }
.pin-dots i::after { background-color: #22c55e; }
.pin-keypad { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 18px; justify-items: center; }
.key { position: relative; isolation: isolate; display: grid; place-items: center; width: 60px; height: 60px; overflow: hidden; border-radius: 50%; font: 500 1.5rem/1 var(--font-display); color: var(--ink); background-color: var(--surface-3); }
.key::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 50%; opacity: 0; background-color: var(--accent-soft); box-shadow: inset 0 0 0 1.5px var(--accent-line); }
.key-empty, .key-del { background-color: transparent; }
.key-del { color: var(--muted); }
.key-del .icon { width: 24px; height: 24px; }
.pin-float {
  position: absolute; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; max-width: 172px; padding: 12px 14px; text-align: left;
  border-radius: 16px; background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-md);
}
.pin-float b { font-size: .9375rem; font-weight: 650; color: var(--ink); }
.pin-float span { font-size: .8125rem; line-height: 1.35; color: var(--muted); }
.float-1 { left: 0; top: 13%; }
.float-2 { right: 0; top: 30%; }
.float-3 { left: 1%; bottom: 17%; }
.float-4 { right: 1%; bottom: 7%; }
@container pin (max-width: 600px) {
  .pin-stage { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-height: 0; place-items: stretch; }
  .pin-card { grid-column: 1 / -1; justify-self: center; margin-bottom: 8px; }
  .pin-float { position: static; max-width: none; }
}
@media (max-width: 960px) { .pin-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 380px) { .key { width: 52px; height: 52px; } .pin-card { padding-inline: 18px; } }

@media (prefers-reduced-motion: no-preference) {
  .dot-1::before { animation: pin-dot-1 12s linear infinite both; }
  .dot-2::before { animation: pin-dot-2 12s linear infinite both; }
  .dot-3::before { animation: pin-dot-3 12s linear infinite both; }
  .dot-4::before { animation: pin-dot-4 12s linear infinite both; }
  .dot-5::before { animation: pin-dot-5 12s linear infinite both; }
  .dot-6::before { animation: pin-dot-6 12s linear infinite both; }
  .key-4::after { animation: pin-key-1 12s ease-out infinite both; }
  .key-8::after { animation: pin-key-2 12s ease-out infinite both; }
  .key-1::after { animation: pin-key-3 12s ease-out infinite both; }
  .key-9::after { animation: pin-key-4 12s ease-out infinite both; }
  .key-2::after { animation: pin-key-5 12s ease-out infinite both; }
  .key-6::after { animation: pin-key-6 12s ease-out infinite both; }
  .pin-dots i::after, .pin-lock::after, .pin-glow::after { animation: pin-ok 12s linear infinite both; }
  .lock-closed { animation: pin-lock-closed 12s var(--ease-out) infinite both; }
  .lock-open { animation: pin-lock-open 12s var(--ease-out) infinite both; }
  .ps-enter { animation: pin-ps-enter 12s linear infinite both; }
  .ps-check { animation: pin-ps-check 12s linear infinite both; }
  .ps-ok { animation: pin-ps-ok 12s linear infinite both; }
  .float-1, .float-2 { animation: float-y 7s ease-in-out infinite alternate, pin-hl 12s linear infinite both; }
  .float-2 { animation-delay: -2s, 0s; }
  .float-3, .float-4 { animation: float-y 8s ease-in-out infinite alternate; }
  .float-4 { animation-delay: -4s; }
  .pin-visual.is-paused :is(.pin-float, .lock-closed, .lock-open, .ps),
  .pin-visual.is-paused :is(.pin-dots i, .key, .pin-lock, .pin-glow)::before,
  .pin-visual.is-paused :is(.pin-dots i, .key, .pin-lock, .pin-glow)::after { animation-play-state: paused; }
}
@keyframes pin-dot-1 { 0%, 8% { transform: scale(0); } 9% { transform: scale(1.25); } 10.5%, 88% { transform: scale(1); } 93%, 100% { transform: scale(0); } }
@keyframes pin-dot-2 { 0%, 14% { transform: scale(0); } 15% { transform: scale(1.25); } 16.5%, 88% { transform: scale(1); } 93%, 100% { transform: scale(0); } }
@keyframes pin-dot-3 { 0%, 20% { transform: scale(0); } 21% { transform: scale(1.25); } 22.5%, 88% { transform: scale(1); } 93%, 100% { transform: scale(0); } }
@keyframes pin-dot-4 { 0%, 26% { transform: scale(0); } 27% { transform: scale(1.25); } 28.5%, 88% { transform: scale(1); } 93%, 100% { transform: scale(0); } }
@keyframes pin-dot-5 { 0%, 32% { transform: scale(0); } 33% { transform: scale(1.25); } 34.5%, 88% { transform: scale(1); } 93%, 100% { transform: scale(0); } }
@keyframes pin-dot-6 { 0%, 38% { transform: scale(0); } 39% { transform: scale(1.25); } 40.5%, 88% { transform: scale(1); } 93%, 100% { transform: scale(0); } }
@keyframes pin-key-1 { 0%, 7.6% { opacity: 0; } 8% { opacity: 1; } 11%, 100% { opacity: 0; } }
@keyframes pin-key-2 { 0%, 13.6% { opacity: 0; } 14% { opacity: 1; } 17%, 100% { opacity: 0; } }
@keyframes pin-key-3 { 0%, 19.6% { opacity: 0; } 20% { opacity: 1; } 23%, 100% { opacity: 0; } }
@keyframes pin-key-4 { 0%, 25.6% { opacity: 0; } 26% { opacity: 1; } 29%, 100% { opacity: 0; } }
@keyframes pin-key-5 { 0%, 31.6% { opacity: 0; } 32% { opacity: 1; } 35%, 100% { opacity: 0; } }
@keyframes pin-key-6 { 0%, 37.6% { opacity: 0; } 38% { opacity: 1; } 41%, 100% { opacity: 0; } }
@keyframes pin-ok { 0%, 44.5% { opacity: 0; } 46.5%, 88% { opacity: 1; } 93%, 100% { opacity: 0; } }
@keyframes pin-lock-closed { 0%, 44.5% { opacity: 1; transform: none; } 46.5%, 90% { opacity: 0; transform: scale(.7) rotate(-8deg); } 94%, 100% { opacity: 1; transform: none; } }
@keyframes pin-lock-open { 0%, 44.5% { opacity: 0; transform: scale(.7); } 46.5%, 90% { opacity: 1; transform: none; } 94%, 100% { opacity: 0; transform: scale(.7); } }
@keyframes pin-ps-enter { 0%, 38.5% { opacity: 1; } 40%, 94% { opacity: 0; } 96%, 100% { opacity: 1; } }
@keyframes pin-ps-check { 0%, 38.5% { opacity: 0; } 40%, 44% { opacity: 1; } 45.5%, 100% { opacity: 0; } }
@keyframes pin-ps-ok { 0%, 44.5% { opacity: 0; } 46.5%, 90% { opacity: 1; } 94%, 100% { opacity: 0; } }
@keyframes pin-hl { 0%, 38.5% { border-color: var(--line); } 40%, 45% { border-color: var(--accent-line); } 48%, 100% { border-color: var(--line); } }

/* ——— Распознавание речи ——— */
.transcription-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.transcript-card { position: relative; padding: clamp(20px, 3vw, 32px); border-radius: 28px; background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-lg); overflow: hidden; }
.transcript-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 1px; background: linear-gradient(90deg, transparent, #7b6cff, #36a6ff, transparent); opacity: .7; }
.transcript-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.local-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; font-size: .8125rem; font-weight: 600; color: var(--ok); background-color: var(--ok-soft); }
.transcript-kind { font: 600 .75rem/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); }
.waveform { display: flex; align-items: center; gap: 3px; height: 96px; margin: 28px 0; }
.waveform i { flex: 1; height: 100%; border-radius: 3px; background-image: linear-gradient(180deg, #8b7dff, #2fa8f5); transform: scaleY(var(--h)); }
@media (prefers-reduced-motion: no-preference) {
  .transcript-card.is-live .waveform i { animation: wave 1.4s ease-in-out infinite alternate; animation-delay: calc(var(--d) * -73ms); }
}
@keyframes wave { from { transform: scaleY(var(--h)); } to { transform: scaleY(calc(var(--h) * .35 + .05)); } }
.transcript-text { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.transcript-text p { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: baseline; font-size: 1.125rem; line-height: 1.45; color: var(--ink); }
.time { font: 500 .8125rem/1 var(--font-mono); color: var(--faint); }
[data-phrase] { border-radius: 6px; transition: opacity .35s, color .35s, background-color .35s, box-shadow .35s; }
[data-phrase].waiting { opacity: .22; }
[data-phrase].speaking { color: var(--accent); background-color: var(--accent-soft); box-shadow: 0 0 0 4px var(--accent-soft); }
.transcript-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); font-size: .875rem; color: var(--faint); }
.transcript-note { margin-top: 12px; font-size: .8125rem; color: var(--faint); }
@media (max-width: 900px) { .transcription-grid { grid-template-columns: minmax(0, 1fr); } }

/* ——— Для бизнеса ——— */
.business { background-color: var(--bg-soft); border-block: 1px solid var(--line); }
.business-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.business-card {
  padding: 28px 24px; border-radius: 22px; background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm);
  transition: transform .4s var(--ease-out), border-color .25s, box-shadow .4s var(--ease-out);
}
.business-card:hover { transform: translateY(-3px); border-color: var(--accent-line); box-shadow: var(--shadow-md); }
.business-card h3 { margin-top: 22px; font-size: 1.125rem; line-height: 1.3; letter-spacing: -.015em; }
.business-card p { margin-top: 10px; color: var(--muted); font-size: .9375rem; }
.business-cta {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; margin-top: 16px; padding: clamp(24px, 4vw, 36px);
  border-radius: 22px; border: 1px solid var(--accent-line);
  background-color: var(--surface); background-image: linear-gradient(120deg, var(--accent-soft), transparent 60%);
}
.business-cta h3 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); letter-spacing: -.02em; }
.business-cta p { margin-top: 6px; color: var(--muted); max-width: 560px; }
@media (max-width: 1080px) { .business-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .business-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .business-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; padding: 20px; }
  .business-card .card-icon { grid-row: span 2; }
  .business-card h3 { margin-top: 0; }
  .business-cta .btn { width: 100%; white-space: normal; text-align: center; }
}

/* ——— Тарифы ——— */
.pricing-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) minmax(0, .86fr); grid-template-areas: "free base pro" "free base ent"; gap: 16px; align-items: stretch; }
.plan { display: flex; flex-direction: column; padding: clamp(24px, 3vw, 32px); border-radius: 24px; background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.plan:nth-child(1) { grid-area: free; }
.plan:nth-child(2) { grid-area: base; }
.plan:nth-child(3) { grid-area: pro; }
.plan:nth-child(4) { grid-area: ent; }
.plan-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.plan h3 { font-size: 1.375rem; letter-spacing: -.02em; }
.plan-tag { padding: 4px 10px; border-radius: 999px; font-size: .75rem; font-weight: 600; color: var(--muted); background-color: var(--surface-3); border: 1px solid var(--line); }
.plan-intro { margin-top: 10px; color: var(--muted); }
.plan-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 24px; }
.plan-price strong { font: 680 clamp(2.4rem, 2rem + 1.4vw, 3.1rem)/1 var(--font-display); letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.plan-price span { color: var(--muted); }
.plan-detail { margin-top: 8px; font-size: .9375rem; color: var(--muted); }
.plan .check-list { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); gap: 10px; }
.plan .check-list li { font-size: .9375rem; }
.plan-bottom { margin-top: auto; padding-top: 24px; font-size: .875rem; color: var(--faint); }
.plan-base {
  position: relative; border-color: transparent; box-shadow: var(--shadow-lg);
  background: linear-gradient(var(--surface), var(--surface)) padding-box, var(--grad-brand) border-box;
}
.plan-base .plan-tag { color: var(--accent); background-color: var(--accent-soft); border-color: var(--accent-line); }
.plan-saving { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 14px; font-size: .875rem; }
.plan-saving del { color: var(--faint); }
#base-saving { padding: 3px 10px; border-radius: 999px; color: var(--muted); background-color: var(--surface-3); font-weight: 600; transition: color .25s, background-color .25s; }
.plan-quote.has-discount #base-saving { color: var(--ok); background-color: var(--ok-soft); }
#base-price.tick, #base-effective.tick { animation: tick .45s var(--ease-out); }
@keyframes tick { from { opacity: .2; transform: translateY(8px); } }
.billing-periods { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; margin-top: 22px; padding: 4px; border-radius: 16px; background-color: var(--surface-3); border: 1px solid var(--line); }
.billing-periods button { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 52px; padding: 4px; border-radius: 12px; font-size: .8125rem; font-weight: 600; color: var(--muted); transition: color .2s; }
.billing-periods button:hover, .billing-periods button[aria-pressed="true"] { color: var(--ink); }
.billing-periods em { font-style: normal; font-size: .75rem; font-weight: 700; color: var(--ok); }
.period-indicator { position: absolute; z-index: 0; top: 4px; bottom: 4px; left: 4px; width: calc((100% - 14px) / 4); border-radius: 12px; background-color: var(--surface); box-shadow: var(--shadow-sm), 0 0 0 1px var(--line); transform: translateX(calc(var(--p, 0) * (100% + 2px))); transition: transform .45s var(--ease-out); }
.plan-planned { background-color: var(--surface-2); box-shadow: none; padding: 24px; }
.plan-planned .plan-tag { color: var(--warn); background-color: var(--warn-soft); border-color: transparent; }
.plan-planned .plan-price { margin-top: 18px; }
.plan-planned .plan-price strong { font-size: clamp(1.75rem, 1.5rem + .8vw, 2.125rem); }
.plan-planned .plan-detail { margin-top: 12px; }
.pricing-note { max-width: 860px; margin: 32px auto 0; text-align: center; font-size: .875rem; color: var(--faint); }
@media (max-width: 1080px) {
  .pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "free base" "pro ent"; }
}
@media (max-width: 720px) {
  .pricing-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "free" "base" "pro" "ent"; }
}
@media (prefers-reduced-motion: reduce) { .period-indicator { transition: none; } #base-price.tick, #base-effective.tick { animation: none; } }

/* ——— Вопросы ——— */
.faq-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.faq-head { position: sticky; top: calc(var(--header-h) + 40px); }
.faq-contact { display: inline-flex; max-width: 100%; align-items: center; gap: 14px; margin-top: 32px; padding: 14px 20px 14px 14px; border-radius: 18px; background-color: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm); transition: border-color .25s, transform .35s var(--ease-out); }
.faq-contact:hover { border-color: var(--accent-line); transform: translateY(-2px); }
.faq-contact .icon { width: 40px; height: 40px; padding: 10px; border-radius: 12px; color: var(--accent); background-color: var(--accent-soft); }
.faq-contact span { display: grid; min-width: 0; overflow-wrap: anywhere; font-size: .9375rem; color: var(--accent); font-weight: 600; }
.faq-contact strong { font-weight: 600; color: var(--ink); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 24px 0; font: 600 1.125rem/1.4 var(--font-display); letter-spacing: -.012em; cursor: pointer; list-style: none; transition: color .2s; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary:hover { color: var(--accent); }
.faq-icon { position: relative; flex: none; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line-strong); transition: transform .4s var(--ease-out), background-color .25s, border-color .25s; }
.faq-icon::before, .faq-icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.6px; margin: -.8px 0 0 -6px; border-radius: 2px; background-color: currentColor; }
.faq-icon::after { transform: rotate(90deg); transition: transform .4s var(--ease-out); }
details[open] .faq-icon { transform: rotate(180deg); color: #fff; border-color: transparent; background-color: var(--btn-bg); background-image: var(--btn-grad); }
details[open] .faq-icon::after { transform: rotate(0deg); }
.faq-answer { padding: 0 56px 26px 0; color: var(--muted); }
@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
  .faq-list details::details-content { block-size: 0; overflow: clip; transition: block-size .45s var(--ease-out), content-visibility .45s allow-discrete; }
  .faq-list details[open]::details-content { block-size: auto; }
}
@media (prefers-reduced-motion: reduce) { .faq-list details::details-content { transition: none; } }
@media (max-width: 900px) {
  .faq-grid { grid-template-columns: minmax(0, 1fr); }
  .faq-head { position: static; }
  .faq-answer { padding-right: 0; }
}

/* ——— Руководства ——— */
.guides { padding-top: 0; }
.guides-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.guide-card {
  display: flex; flex-direction: column; padding: 28px 24px 24px; border-radius: 22px; background-color: var(--surface); border: 1px solid var(--line);
  box-shadow: var(--shadow-sm); transition: transform .4s var(--ease-out), border-color .25s, box-shadow .4s var(--ease-out);
}
.guide-card:hover { transform: translateY(-4px); border-color: var(--accent-line); box-shadow: var(--shadow-md); }
.guide-card h3 { margin-top: 22px; font-size: 1.125rem; line-height: 1.3; letter-spacing: -.015em; }
.guide-card p { margin-top: 10px; color: var(--muted); font-size: .9375rem; }
.guide-link { display: block; margin-top: auto; padding-top: 22px; font-size: .9375rem; font-weight: 600; color: var(--accent); }
.guide-link .icon { display: inline-block; width: 16px; height: 16px; margin-left: 6px; vertical-align: -3px; transition: transform .3s var(--ease-out); }
.guide-card:hover .guide-link .icon { transform: translateX(3px); }
@media (max-width: 1180px) { .guides-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .guides-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .guides-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .guide-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; padding: 20px; }
  .guide-card .card-icon { grid-row: span 3; }
  .guide-card h3 { margin-top: 0; }
  .guide-link { padding-top: 14px; }
}

/* ——— Финальный призыв ——— */
.final-card { position: relative; isolation: isolate; overflow: hidden; padding: clamp(48px, 8vw, 96px) clamp(20px, 5vw, 64px); border-radius: 32px; text-align: center; background-color: #070912; border: 1px solid rgb(255 255 255 / .08); }
.final-glow { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(50% 70% at 50% 0%, rgb(106 92 255 / .38), transparent 70%), radial-gradient(40% 60% at 85% 100%, rgb(31 150 255 / .22), transparent 70%); }
.final-mark { width: 75px; height: 48px; margin: 0 auto 28px; filter: drop-shadow(0 10px 30px rgb(106 92 255 / .55)); }
.final-card h2 { font-size: clamp(2rem, 1.2rem + 3.4vw, 3.5rem); line-height: 1.05; letter-spacing: -.04em; }
.final-card > p { max-width: 560px; margin: 18px auto 0; font-size: 1.125rem; color: var(--muted); }
.final-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 36px; }
.final-fine { margin-top: 24px; font-size: .875rem; color: var(--faint); }
@media (max-width: 560px) { .final-actions .btn { width: 100%; } }

/* ——— Просмотр снимков ——— */
#screen-dialog {
  width: min(1480px, 100vw - 24px); height: min(100dvh - 24px, 1040px); max-width: none; max-height: none; padding: 0;
  border: 1px solid var(--line-strong); border-radius: 22px; background-color: var(--bg); color: var(--ink); box-shadow: var(--shadow-lg); overflow: hidden;
}
#screen-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
#screen-dialog::backdrop { background-color: rgb(4 5 10 / .74); }
@media (prefers-reduced-motion: no-preference) {
  #screen-dialog[open] { animation: dialog-in .4s var(--ease-out); }
  #screen-dialog[open]::backdrop { animation: fade-in .3s ease-out; }
}
@keyframes dialog-in { from { opacity: 0; transform: translateY(16px); } }
@keyframes fade-in { from { opacity: 0; } }
.viewer-header { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 12px 12px 12px 22px; border-bottom: 1px solid var(--line); }
.viewer-heading { flex: 1; min-width: 160px; }
.viewer-kicker { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); }
.viewer-heading h2 { margin-top: 2px; font-size: 1.125rem; letter-spacing: -.01em; }
.viewer-platform { margin: 0; }
.viewer-zoom { min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line-strong); font: 600 .8125rem/1 var(--font-mono); color: var(--ink-2); transition: background-color .2s; }
.viewer-zoom:hover { background-color: var(--surface-3); }
.viewer-zoom[aria-pressed="true"] { color: #fff; border-color: transparent; background-color: var(--btn-bg); background-image: var(--btn-grad); }
.viewer-image-area { display: grid; place-items: center; min-height: 0; padding: clamp(10px, 2vw, 24px); overflow: auto; background-color: var(--bg-soft); }
.viewer-image-area img { width: auto; height: auto; max-width: 100%; max-height: 100%; border-radius: 10px; box-shadow: var(--shadow-md); }
.viewer-image-area.is-native { place-items: start; }
.viewer-image-area.is-native img { width: var(--native-width); max-width: none; max-height: none; border-radius: 0; }
.viewer-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; border-top: 1px solid var(--line); font-size: .875rem; color: var(--muted); text-align: center; }
body.viewer-open { overflow: hidden; }
@media (max-width: 640px) {
  .viewer-header { padding-left: 16px; }
  .viewer-heading { flex-basis: 100%; order: -1; }
  .viewer-close { position: absolute; right: 10px; top: 10px; }
  #screen-dialog { width: 100vw; height: 100dvh; border-radius: 0; border: 0; }
}

