/* Шаблон «Инструмент: шапка, футер и своё содержимое» (template-tool-page.php).
   Только токены дизайн-системы. Интерфейс инструмента — в Shadow DOM блока dc/tool, здесь лишь рамка страницы. */
.dc-toolpage {
  padding-bottom: var(--dc-section-space);
}
.dc-toolpage-head {
  padding-top: var(--dc-space-24);
  padding-bottom: var(--dc-space-32);
}
.dc-toolpage-head .dc-breadcrumbs ol {
  margin-bottom: var(--dc-space-24);
}
.dc-toolpage-head .eyebrow {
  margin-bottom: var(--dc-space-10);
  color: var(--dc-color-accent-warm);
}
.dc-toolpage-head h1 {
  max-width: 900px;
  text-wrap: balance;
}
.dc-toolpage-lead {
  max-width: 900px;
  text-wrap: pretty;
  margin-top: var(--dc-space-12);
  color: var(--dc-color-text-muted);
  font-size: var(--dc-type-lead-size);
  line-height: var(--dc-type-lead-line);
  letter-spacing: var(--dc-type-lead-tracking);
  font-weight: var(--dc-weight-medium);
}
/* Текст владельца до и после инструмента — колонкой для чтения; сам инструмент — во всю ширину контейнера. */
.dc-toolpage-body > :not(.dc-tool-app) {
  max-width: var(--dc-dialog-width);
}
.dc-toolpage-body > * + * {
  margin-top: var(--dc-space-20);
}
.dc-toolpage-body > .dc-tool-app + *,
.dc-toolpage-body > * + .dc-tool-app {
  margin-top: var(--dc-space-48);
}
.dc-toolpage-body > :is(h2, h3) {
  margin-top: var(--dc-space-40);
}
.dc-toolpage-body > h2 {
  font-size: var(--dc-type-heading-sub-size);
  line-height: var(--dc-type-heading-sub-line);
  letter-spacing: var(--dc-type-heading-sub-tracking);
  font-weight: var(--dc-type-heading-sub-weight);
}
.dc-toolpage-body > :is(p, ul, ol) a {
  color: var(--dc-color-accent);
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media (max-width: 760px) {
  .dc-toolpage-head {
    padding-top: var(--dc-space-16);
    padding-bottom: var(--dc-space-24);
  }
}

/* I04: спокойная рабочая область. Остальные страницы сохраняют общие компоненты. */
body.postid-34 .dc-channel-rail { display: none; }
body.postid-34 > .background-page { opacity: .55; }
body.postid-34 > .background-page .background-dot { animation: none; }
body.postid-34 { --dc-meteors: 0; }

/* Приглашение — общий компонент; здесь только раскладка шаблона. */
.dc-toolpage:has(.dc-tools-invite) { padding-bottom: 0; }
.dc-toolpage-body > .dc-tools-invite { max-width: 1068px; }
/* Больше воздуха перед приглашением, меньше до линии футера. */
.dc-toolpage .dc-related.dc-tools-invite {
  padding-top: var(--dc-space-80);
  padding-bottom: 0;
}

/* Иллюстрация шапки инструмента (template-parts/tool-hero/{dc_art}.php) — справа от заголовка и подводки,
   у правого края контента, по центру текстового блока. Правила стиля — design-system/illustrations.md проекта. */
@media (min-width: 1001px) {
  .dc-toolpage-hero.has-art { display: flex; align-items: center; gap: var(--dc-space-48); }
  .dc-toolpage-hero.has-art .dc-toolpage-intro { flex: 1 1 auto; min-width: 0; }
}
.dc-hero-art { flex: none; width: auto; height: 172px; color: var(--dc-color-accent); pointer-events: none; }
@media (max-width: 1000px) { .dc-hero-art { display: none; } }

/* I04: детальная SVG-анимация из согласованного прототипа. */

.dc-hero-eyepieces{color:var(--dc-color-accent,#afc4dd);--paper:var(--dc-color-bg,#14171c);--gold:var(--dc-color-accent-warm,#dec595);fill:none;stroke:currentColor;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round}
.dc-hero-eyepieces .outline{stroke-width:1.3;fill:var(--paper)}.dc-hero-eyepieces .fine{opacity:.65;stroke-width:.8}.dc-hero-eyepieces .knurl{opacity:.52;stroke-width:.7}
.dc-hero-eyepieces .label{fill:var(--gold);stroke:none;font:17px Arial,sans-serif;text-anchor:middle}
.dc-hero-eyepieces .label-wide{opacity:0}.dc-hero-eyepieces .label-close{opacity:1}
.dc-hero-eyepieces.is-art-visible .label-wide{animation:dcDetailedEp-label-wide 11s ease-in-out both infinite}
.dc-hero-eyepieces.is-art-visible .label-close{animation:dcDetailedEp-label-close 11s ease-in-out both infinite}
@keyframes dcDetailedEp-label-wide{0%,40%{opacity:1}49%,100%{opacity:0}}
@keyframes dcDetailedEp-label-close{0%,49%{opacity:0}64%,100%{opacity:1}}
.dc-hero-eyepieces .warm{color:var(--gold)}.dc-hero-eyepieces .rays{stroke-dasharray:6 8;opacity:.7}
.dc-hero-eyepieces .field{stroke-width:1.4}.dc-hero-eyepieces .planet{fill:var(--paper);stroke:none}
.dc-hero-eyepieces .planet-edge{stroke-width:1.2}.dc-hero-eyepieces .band{opacity:.65;stroke-width:.65}
.dc-hero-eyepieces .ring-detail{opacity:.62;stroke-width:.65}.dc-hero-eyepieces .ring-edge{stroke-width:1.05}
.dc-hero-eyepieces .stars{fill:currentColor;stroke:none;opacity:.65}
.dc-hero-eyepieces .flash{opacity:0;stroke-width:2.2;stroke:var(--gold)}
.dc-hero-eyepieces .zoom{transform-origin:590px 246px}
.dc-hero-eyepieces.is-art-visible .assembly{animation:dcDetailedEp-assemble 11s ease both infinite}
.dc-hero-eyepieces.is-art-visible .body{animation-delay:.18s}.dc-hero-eyepieces.is-art-visible .grip{animation-delay:.36s}.dc-hero-eyepieces.is-art-visible .neck{animation-delay:.54s}.dc-hero-eyepieces.is-art-visible .cup{animation-delay:.72s}
.dc-hero-eyepieces.is-art-visible .draw{animation:dcDetailedEp-draw 11s ease both infinite;stroke-dasharray:1;stroke-dashoffset:0}
.dc-hero-eyepieces.is-art-visible .rays{animation:dcDetailedEp-rays 11s ease both infinite}
.dc-hero-eyepieces.is-art-visible .field{animation:dcDetailedEp-field 11s ease both infinite;stroke-dasharray:1}
.dc-hero-eyepieces.is-art-visible .zoom{animation:dcDetailedEp-zoom 11s ease-in-out both infinite}
.dc-hero-eyepieces.is-art-visible .flash{animation:dcDetailedEp-flash 11s ease both infinite}

@keyframes dcDetailedEp-assemble{0%,3%{opacity:0;transform:translateY(14px)}16%,79%{opacity:1;transform:translateY(0)}89%,100%{opacity:0;transform:translateY(0)}}
@keyframes dcDetailedEp-draw{0%,4%{stroke-dashoffset:1}24%,100%{stroke-dashoffset:0}}
@keyframes dcDetailedEp-rays{0%,19%{opacity:0;stroke-dashoffset:22}33%,82%{opacity:.7;stroke-dashoffset:0}91%,100%{opacity:0}}
@keyframes dcDetailedEp-field{0%,23%{opacity:0;stroke-dashoffset:1}42%,82%{opacity:1;stroke-dashoffset:0}91%,100%{opacity:0;stroke-dashoffset:0}}
@keyframes dcDetailedEp-zoom{0%,32%{opacity:0;transform:scale(.7)}43%,49%{opacity:1;transform:scale(.7)}64%,82%{opacity:1;transform:scale(1)}91%,100%{opacity:0;transform:scale(1)}}
@keyframes dcDetailedEp-flash{0%,46%,59%,100%{opacity:0;stroke-dashoffset:35}51%{opacity:.95;stroke-dashoffset:0}55%{opacity:.3;stroke-dashoffset:-25}}
@media(prefers-reduced-motion:reduce){.dc-hero-eyepieces.is-art-visible *{animation:none!important}.dc-hero-eyepieces .flash{opacity:0}}

.dc-hero-art.is-art-ready:not(.is-art-visible) { opacity: 0; }
/* I01: звёзды выходят из фотографии — вариант 1. */

.dc-hero-flight{--silver:var(--dc-color-accent,#afc4dd);--gold:var(--dc-color-accent-warm,#dec595);fill:none;stroke-linecap:round;stroke-linejoin:round}
.dc-hero-flight .silver{color:var(--silver)}.dc-hero-flight .gold{color:var(--gold)}
.dc-hero-flight .photo-stars,.dc-hero-flight .flight{fill:currentColor;stroke:none}
.dc-hero-flight .frame{stroke:var(--silver);stroke-width:1.2;fill:none}
.dc-hero-flight .frame-inner{stroke:var(--gold);stroke-width:.65;opacity:.7}
.dc-hero-flight .guides{stroke:var(--silver);stroke-width:.55;opacity:.17;stroke-dasharray:2 7}
.dc-hero-flight .flight{transform:translate(var(--x),var(--y))}
.dc-hero-flight .trail{stroke:currentColor;stroke-width:.75;opacity:.55}
.dc-hero-flight .glint{stroke:currentColor;stroke-width:.65;opacity:.8}
.dc-hero-flight.is-art-visible .frame{animation:dcFlight-frame 12s ease both infinite;stroke-dasharray:1}
.dc-hero-flight.is-art-visible .photo-stars{animation:dcFlight-photo 12s ease both infinite}
.dc-hero-flight.is-art-visible .guides{animation:dcFlight-guides 12s ease both infinite}

@keyframes dcFlight-frame{0%{opacity:0;stroke-dashoffset:1}5%{opacity:1}21%,87%{opacity:1;stroke-dashoffset:0}96%,100%{opacity:0;stroke-dashoffset:0}}
@keyframes dcFlight-photo{0%,8%{opacity:0}24%,86%{opacity:1}96%,100%{opacity:0}}
@keyframes dcFlight-guides{0%,24%{opacity:0}42%,85%{opacity:.17}94%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.dc-hero-flight.is-art-visible *{animation:none!important}}
.dc-hero-flight.is-art-visible .f0{animation:dcFlight-flight-0 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-0{0%,37.72%{opacity:0;transform:translate(223.75px,283.89px) scale(.12)}40.72%{opacity:.7}68.52%,86%{opacity:1;transform:translate(844.77px,471.44px) scale(1)}94%,100%{opacity:0;transform:translate(844.77px,471.44px) scale(1)}}.dc-hero-flight.is-art-visible .f1{animation:dcFlight-flight-1 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-1{0%,25.22%{opacity:0;transform:translate(167.44px,283.43px) scale(.12)}28.22%{opacity:.7}51.81%,86%{opacity:1;transform:translate(570.08px,290.06px) scale(1)}94%,100%{opacity:0;transform:translate(570.08px,290.06px) scale(1)}}.dc-hero-flight.is-art-visible .f2{animation:dcFlight-flight-2 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-2{0%,24.22%{opacity:0;transform:translate(200.07px,291.87px) scale(.12)}27.22%{opacity:.7}57.90%,86%{opacity:1;transform:translate(708.29px,404.34px) scale(1)}94%,100%{opacity:0;transform:translate(708.29px,404.34px) scale(1)}}.dc-hero-flight.is-art-visible .f3{animation:dcFlight-flight-3 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-3{0%,24.11%{opacity:0;transform:translate(211.77px,268.11px) scale(.12)}27.11%{opacity:.7}57.62%,86%{opacity:1;transform:translate(621.83px,389.80px) scale(1)}94%,100%{opacity:0;transform:translate(621.83px,389.80px) scale(1)}}.dc-hero-flight.is-art-visible .f4{animation:dcFlight-flight-4 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-4{0%,31.23%{opacity:0;transform:translate(229.98px,283.46px) scale(.12)}34.23%{opacity:.7}61.75%,86%{opacity:1;transform:translate(566.42px,394.94px) scale(1)}94%,100%{opacity:0;transform:translate(566.42px,394.94px) scale(1)}}.dc-hero-flight.is-art-visible .f5{animation:dcFlight-flight-5 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-5{0%,24.53%{opacity:0;transform:translate(169.39px,256.76px) scale(.12)}27.53%{opacity:.7}54.85%,86%{opacity:1;transform:translate(515.32px,184.42px) scale(1)}94%,100%{opacity:0;transform:translate(515.32px,184.42px) scale(1)}}.dc-hero-flight.is-art-visible .f6{animation:dcFlight-flight-6 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-6{0%,43.35%{opacity:0;transform:translate(224.26px,294.20px) scale(.12)}46.35%{opacity:.7}70.03%,86%{opacity:1;transform:translate(504.40px,154.53px) scale(1)}94%,100%{opacity:0;transform:translate(504.40px,154.53px) scale(1)}}.dc-hero-flight.is-art-visible .f7{animation:dcFlight-flight-7 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-7{0%,28.84%{opacity:0;transform:translate(203.71px,250.45px) scale(.12)}31.84%{opacity:.7}60.12%,86%{opacity:1;transform:translate(666.63px,232.78px) scale(1)}94%,100%{opacity:0;transform:translate(666.63px,232.78px) scale(1)}}.dc-hero-flight.is-art-visible .f8{animation:dcFlight-flight-8 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-8{0%,31.46%{opacity:0;transform:translate(206.01px,276.80px) scale(.12)}34.46%{opacity:.7}58.79%,86%{opacity:1;transform:translate(683.95px,405.37px) scale(1)}94%,100%{opacity:0;transform:translate(683.95px,405.37px) scale(1)}}.dc-hero-flight.is-art-visible .f9{animation:dcFlight-flight-9 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-9{0%,29.62%{opacity:0;transform:translate(183.86px,260.98px) scale(.12)}32.62%{opacity:.7}60.67%,86%{opacity:1;transform:translate(886.56px,251.44px) scale(1)}94%,100%{opacity:0;transform:translate(886.56px,251.44px) scale(1)}}.dc-hero-flight.is-art-visible .f10{animation:dcFlight-flight-10 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-10{0%,42.75%{opacity:0;transform:translate(157.17px,257.57px) scale(.12)}45.75%{opacity:.7}69.69%,86%{opacity:1;transform:translate(783.42px,161.84px) scale(1)}94%,100%{opacity:0;transform:translate(783.42px,161.84px) scale(1)}}.dc-hero-flight.is-art-visible .f11{animation:dcFlight-flight-11 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-11{0%,32.93%{opacity:0;transform:translate(171.03px,269.42px) scale(.12)}35.93%{opacity:.7}60.00%,86%{opacity:1;transform:translate(746.47px,235.18px) scale(1)}94%,100%{opacity:0;transform:translate(746.47px,235.18px) scale(1)}}.dc-hero-flight.is-art-visible .f12{animation:dcFlight-flight-12 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-12{0%,36.60%{opacity:0;transform:translate(171.00px,278.19px) scale(.12)}39.60%{opacity:.7}67.76%,86%{opacity:1;transform:translate(926.27px,199.71px) scale(1)}94%,100%{opacity:0;transform:translate(926.27px,199.71px) scale(1)}}.dc-hero-flight.is-art-visible .f13{animation:dcFlight-flight-13 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-13{0%,27.76%{opacity:0;transform:translate(217.59px,261.62px) scale(.12)}30.76%{opacity:.7}60.44%,86%{opacity:1;transform:translate(543.17px,273.93px) scale(1)}94%,100%{opacity:0;transform:translate(543.17px,273.93px) scale(1)}}.dc-hero-flight.is-art-visible .f14{animation:dcFlight-flight-14 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-14{0%,27.69%{opacity:0;transform:translate(202.00px,256.05px) scale(.12)}30.69%{opacity:.7}54.88%,86%{opacity:1;transform:translate(638.98px,415.16px) scale(1)}94%,100%{opacity:0;transform:translate(638.98px,415.16px) scale(1)}}.dc-hero-flight.is-art-visible .f15{animation:dcFlight-flight-15 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-15{0%,24.12%{opacity:0;transform:translate(157.82px,291.24px) scale(.12)}27.12%{opacity:.7}50.10%,86%{opacity:1;transform:translate(779.61px,333.08px) scale(1)}94%,100%{opacity:0;transform:translate(779.61px,333.08px) scale(1)}}.dc-hero-flight.is-art-visible .f16{animation:dcFlight-flight-16 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-16{0%,45.44%{opacity:0;transform:translate(176.75px,251.78px) scale(.12)}48.44%{opacity:.7}72.99%,86%{opacity:1;transform:translate(672.41px,177.71px) scale(1)}94%,100%{opacity:0;transform:translate(672.41px,177.71px) scale(1)}}.dc-hero-flight.is-art-visible .f17{animation:dcFlight-flight-17 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-17{0%,45.46%{opacity:0;transform:translate(205.99px,253.92px) scale(.12)}48.46%{opacity:.7}72.24%,86%{opacity:1;transform:translate(456.02px,227.53px) scale(1)}94%,100%{opacity:0;transform:translate(456.02px,227.53px) scale(1)}}.dc-hero-flight.is-art-visible .f18{animation:dcFlight-flight-18 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-18{0%,35.59%{opacity:0;transform:translate(189.44px,292.60px) scale(.12)}38.59%{opacity:.7}64.21%,86%{opacity:1;transform:translate(458.84px,236.61px) scale(1)}94%,100%{opacity:0;transform:translate(458.84px,236.61px) scale(1)}}.dc-hero-flight.is-art-visible .f19{animation:dcFlight-flight-19 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-19{0%,31.94%{opacity:0;transform:translate(216.81px,257.88px) scale(.12)}34.94%{opacity:.7}65.03%,86%{opacity:1;transform:translate(816.60px,104.30px) scale(1)}94%,100%{opacity:0;transform:translate(816.60px,104.30px) scale(1)}}.dc-hero-flight.is-art-visible .f20{animation:dcFlight-flight-20 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-20{0%,27.84%{opacity:0;transform:translate(202.38px,277.69px) scale(.12)}30.84%{opacity:.7}56.93%,86%{opacity:1;transform:translate(898.55px,5.78px) scale(1)}94%,100%{opacity:0;transform:translate(898.55px,5.78px) scale(1)}}.dc-hero-flight.is-art-visible .f21{animation:dcFlight-flight-21 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-21{0%,31.92%{opacity:0;transform:translate(216.82px,268.53px) scale(.12)}34.92%{opacity:.7}60.15%,86%{opacity:1;transform:translate(521.17px,231.98px) scale(1)}94%,100%{opacity:0;transform:translate(521.17px,231.98px) scale(1)}}.dc-hero-flight.is-art-visible .f22{animation:dcFlight-flight-22 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-22{0%,36.64%{opacity:0;transform:translate(220.44px,266.74px) scale(.12)}39.64%{opacity:.7}68.60%,86%{opacity:1;transform:translate(863.64px,319.39px) scale(1)}94%,100%{opacity:0;transform:translate(863.64px,319.39px) scale(1)}}.dc-hero-flight.is-art-visible .f23{animation:dcFlight-flight-23 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-23{0%,42.41%{opacity:0;transform:translate(191.67px,259.47px) scale(.12)}45.41%{opacity:.7}74.95%,86%{opacity:1;transform:translate(586.51px,233.70px) scale(1)}94%,100%{opacity:0;transform:translate(586.51px,233.70px) scale(1)}}.dc-hero-flight.is-art-visible .f24{animation:dcFlight-flight-24 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-24{0%,31.91%{opacity:0;transform:translate(178.26px,252.88px) scale(.12)}34.91%{opacity:.7}59.74%,86%{opacity:1;transform:translate(545.42px,218.39px) scale(1)}94%,100%{opacity:0;transform:translate(545.42px,218.39px) scale(1)}}.dc-hero-flight.is-art-visible .f25{animation:dcFlight-flight-25 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-25{0%,25.68%{opacity:0;transform:translate(194.38px,265.12px) scale(.12)}28.68%{opacity:.7}56.43%,86%{opacity:1;transform:translate(754.79px,236.63px) scale(1)}94%,100%{opacity:0;transform:translate(754.79px,236.63px) scale(1)}}.dc-hero-flight.is-art-visible .f26{animation:dcFlight-flight-26 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-26{0%,45.64%{opacity:0;transform:translate(224.16px,277.10px) scale(.12)}48.64%{opacity:.7}78.79%,86%{opacity:1;transform:translate(642.07px,373.31px) scale(1)}94%,100%{opacity:0;transform:translate(642.07px,373.31px) scale(1)}}.dc-hero-flight.is-art-visible .f27{animation:dcFlight-flight-27 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-27{0%,38.12%{opacity:0;transform:translate(156.49px,289.56px) scale(.12)}41.12%{opacity:.7}66.30%,86%{opacity:1;transform:translate(508.07px,245.90px) scale(1)}94%,100%{opacity:0;transform:translate(508.07px,245.90px) scale(1)}}.dc-hero-flight.is-art-visible .f28{animation:dcFlight-flight-28 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-28{0%,32.84%{opacity:0;transform:translate(196.67px,288.08px) scale(.12)}35.84%{opacity:.7}61.08%,86%{opacity:1;transform:translate(607.96px,122.23px) scale(1)}94%,100%{opacity:0;transform:translate(607.96px,122.23px) scale(1)}}.dc-hero-flight.is-art-visible .f29{animation:dcFlight-flight-29 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-29{0%,34.19%{opacity:0;transform:translate(171.75px,284.18px) scale(.12)}37.19%{opacity:.7}63.36%,86%{opacity:1;transform:translate(847.92px,473.02px) scale(1)}94%,100%{opacity:0;transform:translate(847.92px,473.02px) scale(1)}}.dc-hero-flight.is-art-visible .f30{animation:dcFlight-flight-30 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-30{0%,36.25%{opacity:0;transform:translate(158.64px,281.66px) scale(.12)}39.25%{opacity:.7}62.44%,86%{opacity:1;transform:translate(917.48px,128.22px) scale(1)}94%,100%{opacity:0;transform:translate(917.48px,128.22px) scale(1)}}.dc-hero-flight.is-art-visible .f31{animation:dcFlight-flight-31 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-31{0%,25.32%{opacity:0;transform:translate(205.46px,294.52px) scale(.12)}28.32%{opacity:.7}54.21%,86%{opacity:1;transform:translate(458.89px,371.43px) scale(1)}94%,100%{opacity:0;transform:translate(458.89px,371.43px) scale(1)}}.dc-hero-flight.is-art-visible .f32{animation:dcFlight-flight-32 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-32{0%,41.36%{opacity:0;transform:translate(214.26px,286.55px) scale(.12)}44.36%{opacity:.7}74.29%,86%{opacity:1;transform:translate(890.58px,18.19px) scale(1)}94%,100%{opacity:0;transform:translate(890.58px,18.19px) scale(1)}}.dc-hero-flight.is-art-visible .f33{animation:dcFlight-flight-33 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-33{0%,43.12%{opacity:0;transform:translate(155.90px,272.01px) scale(.12)}46.12%{opacity:.7}70.12%,86%{opacity:1;transform:translate(870.61px,122.67px) scale(1)}94%,100%{opacity:0;transform:translate(870.61px,122.67px) scale(1)}}.dc-hero-flight.is-art-visible .f34{animation:dcFlight-flight-34 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-34{0%,41.17%{opacity:0;transform:translate(164.28px,272.51px) scale(.12)}44.17%{opacity:.7}72.60%,86%{opacity:1;transform:translate(569.52px,403.33px) scale(1)}94%,100%{opacity:0;transform:translate(569.52px,403.33px) scale(1)}}.dc-hero-flight.is-art-visible .f35{animation:dcFlight-flight-35 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-35{0%,33.44%{opacity:0;transform:translate(226.22px,290.43px) scale(.12)}36.44%{opacity:.7}63.04%,86%{opacity:1;transform:translate(561.82px,219.84px) scale(1)}94%,100%{opacity:0;transform:translate(561.82px,219.84px) scale(1)}}.dc-hero-flight.is-art-visible .f36{animation:dcFlight-flight-36 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-36{0%,25.30%{opacity:0;transform:translate(178.90px,268.27px) scale(.12)}28.30%{opacity:.7}57.53%,86%{opacity:1;transform:translate(639.81px,147.12px) scale(1)}94%,100%{opacity:0;transform:translate(639.81px,147.12px) scale(1)}}.dc-hero-flight.is-art-visible .f37{animation:dcFlight-flight-37 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-37{0%,36.67%{opacity:0;transform:translate(165.75px,280.10px) scale(.12)}39.67%{opacity:.7}65.85%,86%{opacity:1;transform:translate(480.43px,283.70px) scale(1)}94%,100%{opacity:0;transform:translate(480.43px,283.70px) scale(1)}}.dc-hero-flight.is-art-visible .f38{animation:dcFlight-flight-38 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-38{0%,28.15%{opacity:0;transform:translate(176.11px,274.86px) scale(.12)}31.15%{opacity:.7}61.46%,86%{opacity:1;transform:translate(903.42px,381.68px) scale(1)}94%,100%{opacity:0;transform:translate(903.42px,381.68px) scale(1)}}.dc-hero-flight.is-art-visible .f39{animation:dcFlight-flight-39 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-39{0%,45.57%{opacity:0;transform:translate(181.81px,290.73px) scale(.12)}48.57%{opacity:.7}76.71%,86%{opacity:1;transform:translate(431.74px,325.94px) scale(1)}94%,100%{opacity:0;transform:translate(431.74px,325.94px) scale(1)}}.dc-hero-flight.is-art-visible .f40{animation:dcFlight-flight-40 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-40{0%,30.71%{opacity:0;transform:translate(179.86px,279.99px) scale(.12)}33.71%{opacity:.7}59.84%,86%{opacity:1;transform:translate(847.76px,331.22px) scale(1)}94%,100%{opacity:0;transform:translate(847.76px,331.22px) scale(1)}}.dc-hero-flight.is-art-visible .f41{animation:dcFlight-flight-41 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-41{0%,44.09%{opacity:0;transform:translate(185.12px,288.00px) scale(.12)}47.09%{opacity:.7}73.66%,86%{opacity:1;transform:translate(670.07px,256.34px) scale(1)}94%,100%{opacity:0;transform:translate(670.07px,256.34px) scale(1)}}.dc-hero-flight.is-art-visible .f42{animation:dcFlight-flight-42 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-42{0%,44.62%{opacity:0;transform:translate(186.26px,253.58px) scale(.12)}47.62%{opacity:.7}71.37%,86%{opacity:1;transform:translate(808.10px,431.86px) scale(1)}94%,100%{opacity:0;transform:translate(808.10px,431.86px) scale(1)}}.dc-hero-flight.is-art-visible .f43{animation:dcFlight-flight-43 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-43{0%,37.54%{opacity:0;transform:translate(204.74px,255.53px) scale(.12)}40.54%{opacity:.7}65.97%,86%{opacity:1;transform:translate(546.90px,294.02px) scale(1)}94%,100%{opacity:0;transform:translate(546.90px,294.02px) scale(1)}}.dc-hero-flight.is-art-visible .f44{animation:dcFlight-flight-44 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-44{0%,38.70%{opacity:0;transform:translate(160.07px,285.88px) scale(.12)}41.70%{opacity:.7}65.93%,86%{opacity:1;transform:translate(452.33px,273.17px) scale(1)}94%,100%{opacity:0;transform:translate(452.33px,273.17px) scale(1)}}.dc-hero-flight.is-art-visible .f45{animation:dcFlight-flight-45 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-45{0%,38.66%{opacity:0;transform:translate(188.82px,290.06px) scale(.12)}41.66%{opacity:.7}70.40%,86%{opacity:1;transform:translate(658.19px,379.08px) scale(1)}94%,100%{opacity:0;transform:translate(658.19px,379.08px) scale(1)}}.dc-hero-flight.is-art-visible .f46{animation:dcFlight-flight-46 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-46{0%,45.87%{opacity:0;transform:translate(184.20px,293.35px) scale(.12)}48.87%{opacity:.7}76.10%,86%{opacity:1;transform:translate(901.47px,156.20px) scale(1)}94%,100%{opacity:0;transform:translate(901.47px,156.20px) scale(1)}}.dc-hero-flight.is-art-visible .f47{animation:dcFlight-flight-47 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-47{0%,37.27%{opacity:0;transform:translate(168.56px,254.68px) scale(.12)}40.27%{opacity:.7}63.79%,86%{opacity:1;transform:translate(812.45px,133.99px) scale(1)}94%,100%{opacity:0;transform:translate(812.45px,133.99px) scale(1)}}.dc-hero-flight.is-art-visible .f48{animation:dcFlight-flight-48 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-48{0%,28.71%{opacity:0;transform:translate(216.21px,273.43px) scale(.12)}31.71%{opacity:.7}56.30%,86%{opacity:1;transform:translate(695.67px,105.00px) scale(1)}94%,100%{opacity:0;transform:translate(695.67px,105.00px) scale(1)}}.dc-hero-flight.is-art-visible .f49{animation:dcFlight-flight-49 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-49{0%,39.33%{opacity:0;transform:translate(167.44px,279.63px) scale(.12)}42.33%{opacity:.7}71.59%,86%{opacity:1;transform:translate(607.12px,405.31px) scale(1)}94%,100%{opacity:0;transform:translate(607.12px,405.31px) scale(1)}}.dc-hero-flight.is-art-visible .f50{animation:dcFlight-flight-50 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-50{0%,24.56%{opacity:0;transform:translate(224.32px,288.96px) scale(.12)}27.56%{opacity:.7}58.48%,86%{opacity:1;transform:translate(446.39px,242.75px) scale(1)}94%,100%{opacity:0;transform:translate(446.39px,242.75px) scale(1)}}.dc-hero-flight.is-art-visible .f51{animation:dcFlight-flight-51 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-51{0%,39.49%{opacity:0;transform:translate(167.50px,267.79px) scale(.12)}42.49%{opacity:.7}72.67%,86%{opacity:1;transform:translate(939.87px,47.32px) scale(1)}94%,100%{opacity:0;transform:translate(939.87px,47.32px) scale(1)}}.dc-hero-flight.is-art-visible .f52{animation:dcFlight-flight-52 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-52{0%,30.26%{opacity:0;transform:translate(181.52px,263.75px) scale(.12)}33.26%{opacity:.7}60.33%,86%{opacity:1;transform:translate(472.09px,204.87px) scale(1)}94%,100%{opacity:0;transform:translate(472.09px,204.87px) scale(1)}}.dc-hero-flight.is-art-visible .f53{animation:dcFlight-flight-53 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-53{0%,23.65%{opacity:0;transform:translate(212.18px,288.69px) scale(.12)}26.65%{opacity:.7}49.99%,86%{opacity:1;transform:translate(773.54px,53.57px) scale(1)}94%,100%{opacity:0;transform:translate(773.54px,53.57px) scale(1)}}.dc-hero-flight.is-art-visible .f54{animation:dcFlight-flight-54 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-54{0%,43.25%{opacity:0;transform:translate(191.59px,292.31px) scale(.12)}46.25%{opacity:.7}76.20%,86%{opacity:1;transform:translate(431.56px,245.04px) scale(1)}94%,100%{opacity:0;transform:translate(431.56px,245.04px) scale(1)}}.dc-hero-flight.is-art-visible .f55{animation:dcFlight-flight-55 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-55{0%,39.41%{opacity:0;transform:translate(174.16px,251.07px) scale(.12)}42.41%{opacity:.7}71.06%,86%{opacity:1;transform:translate(766.71px,455.06px) scale(1)}94%,100%{opacity:0;transform:translate(766.71px,455.06px) scale(1)}}.dc-hero-flight.is-art-visible .f56{animation:dcFlight-flight-56 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-56{0%,43.04%{opacity:0;transform:translate(172.43px,285.17px) scale(.12)}46.04%{opacity:.7}72.52%,86%{opacity:1;transform:translate(594.06px,404.45px) scale(1)}94%,100%{opacity:0;transform:translate(594.06px,404.45px) scale(1)}}.dc-hero-flight.is-art-visible .f57{animation:dcFlight-flight-57 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-57{0%,36.83%{opacity:0;transform:translate(168.97px,264.87px) scale(.12)}39.83%{opacity:.7}70.26%,86%{opacity:1;transform:translate(898.22px,325.93px) scale(1)}94%,100%{opacity:0;transform:translate(898.22px,325.93px) scale(1)}}.dc-hero-flight.is-art-visible .f58{animation:dcFlight-flight-58 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-58{0%,42.54%{opacity:0;transform:translate(168.98px,269.93px) scale(.12)}45.54%{opacity:.7}73.59%,86%{opacity:1;transform:translate(822.06px,114.48px) scale(1)}94%,100%{opacity:0;transform:translate(822.06px,114.48px) scale(1)}}.dc-hero-flight.is-art-visible .f59{animation:dcFlight-flight-59 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-59{0%,33.32%{opacity:0;transform:translate(177.72px,262.87px) scale(.12)}36.32%{opacity:.7}60.91%,86%{opacity:1;transform:translate(491.72px,361.91px) scale(1)}94%,100%{opacity:0;transform:translate(491.72px,361.91px) scale(1)}}.dc-hero-flight.is-art-visible .f60{animation:dcFlight-flight-60 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-60{0%,37.13%{opacity:0;transform:translate(180.68px,293.71px) scale(.12)}40.13%{opacity:.7}71.00%,86%{opacity:1;transform:translate(523.05px,252.39px) scale(1)}94%,100%{opacity:0;transform:translate(523.05px,252.39px) scale(1)}}.dc-hero-flight.is-art-visible .f61{animation:dcFlight-flight-61 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-61{0%,42.58%{opacity:0;transform:translate(175.66px,267.53px) scale(.12)}45.58%{opacity:.7}72.98%,86%{opacity:1;transform:translate(834.76px,473.74px) scale(1)}94%,100%{opacity:0;transform:translate(834.76px,473.74px) scale(1)}}.dc-hero-flight.is-art-visible .f62{animation:dcFlight-flight-62 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-62{0%,27.55%{opacity:0;transform:translate(162.53px,275.42px) scale(.12)}30.55%{opacity:.7}57.27%,86%{opacity:1;transform:translate(605.14px,223.42px) scale(1)}94%,100%{opacity:0;transform:translate(605.14px,223.42px) scale(1)}}.dc-hero-flight.is-art-visible .f63{animation:dcFlight-flight-63 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-63{0%,35.28%{opacity:0;transform:translate(218.87px,280.40px) scale(.12)}38.28%{opacity:.7}62.17%,86%{opacity:1;transform:translate(806.25px,171.62px) scale(1)}94%,100%{opacity:0;transform:translate(806.25px,171.62px) scale(1)}}.dc-hero-flight.is-art-visible .f64{animation:dcFlight-flight-64 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-64{0%,24.85%{opacity:0;transform:translate(226.23px,292.24px) scale(.12)}27.85%{opacity:.7}57.30%,86%{opacity:1;transform:translate(626.19px,310.30px) scale(1)}94%,100%{opacity:0;transform:translate(626.19px,310.30px) scale(1)}}.dc-hero-flight.is-art-visible .f65{animation:dcFlight-flight-65 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-65{0%,42.24%{opacity:0;transform:translate(224.05px,287.42px) scale(.12)}45.24%{opacity:.7}75.23%,86%{opacity:1;transform:translate(874.37px,537.83px) scale(1)}94%,100%{opacity:0;transform:translate(874.37px,537.83px) scale(1)}}.dc-hero-flight.is-art-visible .f66{animation:dcFlight-flight-66 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-66{0%,38.14%{opacity:0;transform:translate(179.33px,294.38px) scale(.12)}41.14%{opacity:.7}63.94%,86%{opacity:1;transform:translate(420.02px,248.99px) scale(1)}94%,100%{opacity:0;transform:translate(420.02px,248.99px) scale(1)}}.dc-hero-flight.is-art-visible .f67{animation:dcFlight-flight-67 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-67{0%,27.95%{opacity:0;transform:translate(207.00px,289.60px) scale(.12)}30.95%{opacity:.7}59.93%,86%{opacity:1;transform:translate(732.28px,288.78px) scale(1)}94%,100%{opacity:0;transform:translate(732.28px,288.78px) scale(1)}}.dc-hero-flight.is-art-visible .f68{animation:dcFlight-flight-68 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-68{0%,36.12%{opacity:0;transform:translate(180.44px,288.53px) scale(.12)}39.12%{opacity:.7}65.81%,86%{opacity:1;transform:translate(450.44px,319.31px) scale(1)}94%,100%{opacity:0;transform:translate(450.44px,319.31px) scale(1)}}.dc-hero-flight.is-art-visible .f69{animation:dcFlight-flight-69 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-69{0%,41.95%{opacity:0;transform:translate(166.23px,264.69px) scale(.12)}44.95%{opacity:.7}75.14%,86%{opacity:1;transform:translate(441.53px,258.03px) scale(1)}94%,100%{opacity:0;transform:translate(441.53px,258.03px) scale(1)}}.dc-hero-flight.is-art-visible .f70{animation:dcFlight-flight-70 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-70{0%,29.27%{opacity:0;transform:translate(169.99px,273.94px) scale(.12)}32.27%{opacity:.7}58.63%,86%{opacity:1;transform:translate(886.28px,76.91px) scale(1)}94%,100%{opacity:0;transform:translate(886.28px,76.91px) scale(1)}}.dc-hero-flight.is-art-visible .f71{animation:dcFlight-flight-71 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-71{0%,33.17%{opacity:0;transform:translate(209.36px,286.73px) scale(.12)}36.17%{opacity:.7}64.31%,86%{opacity:1;transform:translate(768.37px,458.64px) scale(1)}94%,100%{opacity:0;transform:translate(768.37px,458.64px) scale(1)}}.dc-hero-flight.is-art-visible .f72{animation:dcFlight-flight-72 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-72{0%,36.12%{opacity:0;transform:translate(222.63px,282.01px) scale(.12)}39.12%{opacity:.7}63.93%,86%{opacity:1;transform:translate(875.93px,415.40px) scale(1)}94%,100%{opacity:0;transform:translate(875.93px,415.40px) scale(1)}}.dc-hero-flight.is-art-visible .f73{animation:dcFlight-flight-73 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-73{0%,34.38%{opacity:0;transform:translate(175.82px,253.97px) scale(.12)}37.38%{opacity:.7}61.56%,86%{opacity:1;transform:translate(759.49px,357.49px) scale(1)}94%,100%{opacity:0;transform:translate(759.49px,357.49px) scale(1)}}.dc-hero-flight.is-art-visible .f74{animation:dcFlight-flight-74 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-74{0%,40.25%{opacity:0;transform:translate(225.46px,268.29px) scale(.12)}43.25%{opacity:.7}72.34%,86%{opacity:1;transform:translate(905.46px,408.93px) scale(1)}94%,100%{opacity:0;transform:translate(905.46px,408.93px) scale(1)}}.dc-hero-flight.is-art-visible .f75{animation:dcFlight-flight-75 12s cubic-bezier(.42,0,.85,.55) both infinite}@keyframes dcFlight-flight-75{0%,42.87%{opacity:0;transform:translate(167.32px,280.99px) scale(.12)}45.87%{opacity:.7}73.31%,86%{opacity:1;transform:translate(423.68px,288.39px) scale(1)}94%,100%{opacity:0;transform:translate(423.68px,288.39px) scale(1)}}
/* Конец иллюстрации I01. */
/* I05: «Звезда на матрице» — лучи → объектив → конус света → пятно звезды на 2–3 пикселя. Цикл 9 с.
   Без JS и при reduced motion — законченная картинка (исходные стили ниже без анимации). */
.dc-hero-sensor{color:var(--dc-color-accent);fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.dc-hero-sensor .warm{color:var(--dc-color-accent-warm)}
.dc-hero-sensor .rays{stroke-width:1.2;stroke-dasharray:4 5;opacity:.75}
.dc-hero-sensor .cone{stroke-width:.9;opacity:.55}
.dc-hero-sensor .cells{stroke-width:.7;opacity:.5}
.dc-hero-sensor .px{stroke:none;fill:currentColor}
.dc-hero-sensor .px-c{opacity:.7}.dc-hero-sensor .px-n{opacity:.34}.dc-hero-sensor .px-d{opacity:.14}
.dc-hero-sensor .spot{stroke-width:1.1;stroke-dasharray:3 3;transform-origin:175px 60px}
.dc-hero-sensor .star{fill:currentColor;stroke:none;transform-origin:175px 60px}
.dc-hero-sensor .measure{stroke-width:1.1}
.dc-hero-sensor.is-art-visible .draw{stroke-dasharray:1;animation:dcSensor-draw 9s ease both infinite}
.dc-hero-sensor.is-art-visible .cells{animation-delay:.25s}
.dc-hero-sensor.is-art-visible .lens{animation-name:dcSensor-draw-early}
.dc-hero-sensor.is-art-visible .cone{animation-name:dcSensor-cone}
.dc-hero-sensor.is-art-visible .rays{animation:dcSensor-rays 9s linear both infinite}
.dc-hero-sensor.is-art-visible .star{animation:dcSensor-star 9s ease both infinite}
.dc-hero-sensor.is-art-visible .spot{animation:dcSensor-spot 9s ease both infinite}
.dc-hero-sensor.is-art-visible .px{animation:dcSensor-px 9s ease both infinite}
.dc-hero-sensor.is-art-visible .px-n{animation-delay:.2s}.dc-hero-sensor.is-art-visible .px-d{animation-delay:.4s}
.dc-hero-sensor.is-art-visible .measure{animation:dcSensor-measure 9s ease both infinite}
@keyframes dcSensor-draw-early{0%{stroke-dashoffset:1;opacity:0}3%{opacity:1}14%,82%{stroke-dashoffset:0;opacity:1}92%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes dcSensor-draw{0%,6%{stroke-dashoffset:1;opacity:0}9%{opacity:1}22%,82%{stroke-dashoffset:0;opacity:1}92%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes dcSensor-cone{0%,18%{stroke-dashoffset:1;opacity:0}20%{opacity:.55}32%,82%{stroke-dashoffset:0;opacity:.55}92%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes dcSensor-rays{0%,12%{opacity:0;stroke-dashoffset:0}16%{opacity:.75}82%{opacity:.75;stroke-dashoffset:-63}92%,100%{opacity:0;stroke-dashoffset:-72}}
@keyframes dcSensor-star{0%,30%{opacity:0;transform:scale(.2)}35%{opacity:1;transform:scale(1.25)}40%,82%{opacity:1;transform:scale(1)}92%,100%{opacity:0;transform:scale(1)}}
@keyframes dcSensor-spot{0%,38%{opacity:0;transform:scale(.15)}50%,82%{opacity:1;transform:scale(1)}92%,100%{opacity:0;transform:scale(1)}}
@keyframes dcSensor-px{0%,46%{fill-opacity:0}56%,82%{fill-opacity:1}92%,100%{fill-opacity:0}}
@keyframes dcSensor-measure{0%,58%{opacity:0}66%,82%{opacity:1}92%,100%{opacity:0}}
/* Конец иллюстрации I05. */
/* Вне экрана циклы стоят. */
.dc-hero-art.is-art-visible * { animation-play-state: paused; }
.dc-hero-art.is-art-in-view * { animation-play-state: running; }
@media (prefers-reduced-motion: reduce) {
  .dc-hero-art { opacity: 1 !important; }
  .dc-hero-art * { animation: none !important; }
}

/* I05: детальная анимация, вариант 2. */

.dc-hero-sensor-detail{color:var(--dc-color-accent,#afc4dd);--paper:var(--dc-color-bg,#14171c);--gold:var(--dc-color-accent-warm,#dec595);fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.dc-hero-sensor-detail .solid{fill:var(--paper);stroke-width:1.2}.dc-hero-sensor-detail .edge{stroke-width:1.1}.dc-hero-sensor-detail .fine{opacity:.7;stroke-width:.75}
.dc-hero-sensor-detail .hatch{stroke-width:.5;opacity:.35}.dc-hero-sensor-detail .glass{fill:var(--paper);stroke-width:1.1}.dc-hero-sensor-detail .glass-line{stroke-width:.55;opacity:.3}
.dc-hero-sensor-detail .contact{stroke:var(--gold);stroke-width:.8}.dc-hero-sensor-detail .active{fill:var(--paper);stroke-width:1.2}.dc-hero-sensor-detail .grid{opacity:.5;stroke-width:.7}
.dc-hero-sensor-detail .axis{stroke:var(--gold);opacity:.25;stroke-width:.6;stroke-dasharray:8 5 2 5}
.dc-hero-sensor-detail .incoming{stroke:var(--gold);opacity:.7;stroke-width:1.1}.dc-hero-sensor-detail .ray{stroke:var(--gold);opacity:.75;stroke-width:.9}
.dc-hero-sensor-detail .arrow{fill:var(--gold);stroke:none;opacity:.9}
.dc-hero-sensor-detail.is-art-visible .arrow{animation:dcSensorDetail-arrows 11s ease both infinite}
@keyframes dcSensorDetail-arrows{0%,22%{opacity:0}29%,83%{opacity:.9}94%,100%{opacity:0}}
.dc-hero-sensor-detail .pixels{fill:var(--gold);stroke:none}.dc-hero-sensor-detail .halo{stroke:var(--gold);stroke-width:.8;stroke-dasharray:2 4;fill:var(--gold);fill-opacity:.045}
.dc-hero-sensor-detail .inner-halo{stroke:none;fill-opacity:.08}.dc-hero-sensor-detail .focus{stroke:none;fill:var(--gold)}
.dc-hero-sensor-detail.is-art-visible .lens{animation:dcSensorDetail-assemble 11s ease both infinite}.dc-hero-sensor-detail.is-art-visible .sensor{animation:dcSensorDetail-assemble 11s .25s ease both infinite}
.dc-hero-sensor-detail.is-art-visible .incoming{stroke-dasharray:1;animation:dcSensorDetail-incoming 11s ease both infinite}
.dc-hero-sensor-detail.is-art-visible .ray{stroke-dasharray:1;animation:dcSensorDetail-rays 11s ease both infinite}
.dc-hero-sensor-detail.is-art-visible .axis{animation:dcSensorDetail-axis 11s ease both infinite}
.dc-hero-sensor-detail.is-art-visible .spot{animation:dcSensorDetail-spot 11s ease both infinite;transform-origin:860px 289px}
.dc-hero-sensor-detail.is-art-visible .pixels{animation:dcSensorDetail-pixels 11s ease both infinite}

@keyframes dcSensorDetail-assemble{0%{opacity:0;transform:translateY(9px)}18%,84%{opacity:1;transform:translateY(0)}94%,100%{opacity:0;transform:translateY(0)}}
@keyframes dcSensorDetail-incoming{0%,16%{opacity:0;stroke-dashoffset:1}28%,83%{opacity:.7;stroke-dashoffset:0}94%,100%{opacity:0;stroke-dashoffset:0}}
@keyframes dcSensorDetail-rays{0%,28%{opacity:0;stroke-dashoffset:1}30%{opacity:.75}47%,83%{opacity:.75;stroke-dashoffset:0}94%,100%{opacity:0;stroke-dashoffset:0}}
@keyframes dcSensorDetail-axis{0%,18%{opacity:0}32%,83%{opacity:.25}94%,100%{opacity:0}}
@keyframes dcSensorDetail-spot{0%,45%{opacity:0}53%,83%{opacity:1}94%,100%{opacity:0}}
@keyframes dcSensorDetail-pixels{0%,51%{opacity:0}66%,83%{opacity:1}94%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.dc-hero-sensor-detail.is-art-visible *{animation:none!important}}

.dc-hero-sensor-detail.is-art-visible * { animation-play-state: paused; }
.dc-hero-sensor-detail.is-art-in-view * { animation-play-state: running; }
/* Конец детальной анимации I05. */

/* I17: маска Бахтинова и точный фокус. */
/* SVG полностью видим без JS; класс play включает одиннадцатисекундный сюжет. */
.dc-hero-bahtinov {
  --bmha-paper: var(--dc-color-bg, #14171c);
  --bmha-warm: var(--dc-color-accent-warm, #dec595);
  --bmha-cycle: 11s;
  color: var(--dc-color-accent, #afc4dd);
  fill: none; stroke: currentColor; stroke-width: 1.45;
  stroke-linecap: round; stroke-linejoin: round;
  overflow: visible;
}
.dc-hero-bahtinov .bmha-face { fill: var(--bmha-paper); stroke-width: 1.65; }
.dc-hero-bahtinov .bmha-rim-line { stroke-width: .8; opacity: .52; }
.dc-hero-bahtinov .bmha-inner-rim { stroke-width: .65; opacity: .28; }
.dc-hero-bahtinov .bmha-mark { stroke-width: .95; opacity: .55; }
.dc-hero-bahtinov .bmha-slit { stroke-width: 1.05; opacity: .88; }
.dc-hero-bahtinov .bmha-link { color: var(--bmha-warm); }
.dc-hero-bahtinov .bmha-link-line { stroke-dasharray: 3 7; opacity: .45; stroke-width: 1.35; }
.dc-hero-bahtinov .bmha-arrow { opacity: .6; stroke-width: 1.2; }
.dc-hero-bahtinov .bmha-output { color: var(--bmha-warm); }
.dc-hero-bahtinov .bmha-field { stroke-width: 1.45; opacity: .72; }
.dc-hero-bahtinov .bmha-ticks { stroke-width: .8; opacity: .3; }
.dc-hero-bahtinov .bmha-ray { stroke: var(--bmha-ray-paint); stroke-width: 2; }
.dc-hero-bahtinov .bmha-center-ray { stroke-width: 2.5; }
.dc-hero-bahtinov .bmha-ray-halo { stroke-width: 8; opacity: .055; }
.dc-hero-bahtinov .bmha-orders { fill: currentColor; stroke: none; opacity: .8; }
.dc-hero-bahtinov .bmha-ambience { stroke: none; }
.dc-hero-bahtinov .bmha-star-core { fill: currentColor; stroke: none; }
.dc-hero-bahtinov .bmha-star-ring { stroke-width: .8; opacity: .2; }
.dc-hero-bahtinov.is-art-visible .bmha-mask { animation: dcBahtinovHero-mask var(--bmha-cycle) ease both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-face,
.dc-hero-bahtinov.is-art-visible .bmha-rim-line { stroke-dasharray: 1; animation: dcBahtinovHero-rim var(--bmha-cycle) ease both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-grid { animation: dcBahtinovHero-grid var(--bmha-cycle) ease both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-grid-0 { --bmha-delay: 0s; }
.dc-hero-bahtinov.is-art-visible .bmha-grid-1 { --bmha-delay: .45s; }
.dc-hero-bahtinov.is-art-visible .bmha-grid-2 { --bmha-delay: .9s; }
.dc-hero-bahtinov.is-art-visible .bmha-slit { stroke-dasharray: 1; animation: dcBahtinovHero-slits var(--bmha-cycle) var(--bmha-delay) ease both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-link { animation: dcBahtinovHero-link var(--bmha-cycle) ease both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-field,
.dc-hero-bahtinov.is-art-visible .bmha-ticks { animation: dcBahtinovHero-field var(--bmha-cycle) ease both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-field { stroke-dasharray: 1; }
.dc-hero-bahtinov.is-art-visible .bmha-pattern { animation: dcBahtinovHero-pattern var(--bmha-cycle) ease both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-moving-ray { animation: dcBahtinovHero-focus var(--bmha-cycle) cubic-bezier(.4,0,.2,1) both infinite; }
.dc-hero-bahtinov.is-art-visible .bmha-star { animation: dcBahtinovHero-star var(--bmha-cycle) ease both infinite; transform-origin: 0 0; }
@keyframes dcBahtinovHero-mask { 0% { opacity: 0; } 5%,84% { opacity: 1; } 94%,100% { opacity: 0; } }
@keyframes dcBahtinovHero-rim { 0% { stroke-dashoffset: 1; } 25%,100% { stroke-dashoffset: 0; } }
@keyframes dcBahtinovHero-grid { 0%,9% { opacity: 0; } 18%,84% { opacity: 1; } 94%,100% { opacity: 0; } }
@keyframes dcBahtinovHero-slits { 0%,9% { stroke-dashoffset: 1; } 34%,100% { stroke-dashoffset: 0; } }
@keyframes dcBahtinovHero-link { 0%,24% { opacity: 0; } 36%,84% { opacity: 1; } 94%,100% { opacity: 0; } }
@keyframes dcBahtinovHero-field { 0%,27% { opacity: 0; stroke-dashoffset: 1; } 43%,84% { opacity: .72; stroke-dashoffset: 0; } 94%,100% { opacity: 0; stroke-dashoffset: 0; } }
@keyframes dcBahtinovHero-pattern { 0%,34% { opacity: 0; } 44%,84% { opacity: 1; } 94%,100% { opacity: 0; } }
@keyframes dcBahtinovHero-focus { 0%,46% { transform: translateY(-34px); } 58% { transform: translateY(5px); } 66%,100% { transform: translateY(0); } }
@keyframes dcBahtinovHero-star { 0%,45% { opacity: .55; transform: scale(.65); } 66%,84% { opacity: 1; transform: scale(1); } 94%,100% { opacity: 0; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .dc-hero-bahtinov.is-art-visible * { animation: none !important; }
}

.dc-hero-bahtinov.is-art-visible:not(.is-art-in-view) * { animation-play-state: paused !important; }
/* Конец анимации I17. */

/* I15: следы звёзд вокруг Полярной. */
.dc-hero-sky-exposure{--sc-paper:var(--dc-color-bg,#14171c);--sc-warm:var(--dc-color-accent-warm,#dec595);--sc-cycle:11s;
 color:var(--dc-color-accent,#afc4dd);fill:none;stroke:currentColor;stroke-width:.85;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.dc-hero-sky-exposure .sc-outline{stroke-width:.95}.dc-hero-sky-exposure .sc-fill{fill:var(--sc-paper)}.dc-hero-sky-exposure .sc-fine{stroke-width:.6;opacity:.62}.dc-hero-sky-exposure .sc-knurl{stroke-width:.45;opacity:.45}
.dc-hero-sky-exposure .sc-warm{color:var(--sc-warm)}
.dc-hero-sky-exposure .sc-rays{stroke-dasharray:5 7;opacity:.55;stroke-width:.8}
.dc-hero-sky-exposure .sc-field{stroke-width:1}
.dc-hero-sky-exposure .sc-arcs{stroke:var(--dc-color-accent,#afc4dd);opacity:.7}
.dc-hero-sky-exposure .sc-dots,.dc-hero-sky-exposure .sc-pole{fill:currentColor;stroke:none}
.dc-hero-sky-exposure .sc-ground{fill:var(--sc-paper);stroke:var(--dc-color-accent,#afc4dd);stroke-width:.85}
.dc-hero-sky-exposure .sc-label{fill:var(--sc-warm);stroke:none;font:500 14px var(--dc-font-family,Arial,sans-serif);text-anchor:middle}
.dc-hero-sky-exposure.is-art-visible .sc-part{animation:dcSkyHero-rise var(--sc-cycle) ease both infinite}
.dc-hero-sky-exposure.is-art-visible .sc-lens{animation-delay:.25s}.dc-hero-sky-exposure.is-art-visible .sc-glass{animation-delay:.5s}
.dc-hero-sky-exposure.is-art-visible .sc-draw{stroke-dasharray:1;animation:dcSkyHero-draw var(--sc-cycle) ease both infinite}
.dc-hero-sky-exposure.is-art-visible .sc-rays{animation:dcSkyHero-rays var(--sc-cycle) ease both infinite}
.dc-hero-sky-exposure.is-art-visible .sc-field{stroke-dasharray:1;animation:dcSkyHero-field var(--sc-cycle) ease both infinite}
.dc-hero-sky-exposure.is-art-visible .sc-ground,.dc-hero-sky-exposure.is-art-visible .sc-pole{animation:dcSkyHero-fade var(--sc-cycle) ease both infinite}
.dc-hero-sky-exposure.is-art-visible .sc-arcs path{stroke-dasharray:1;animation:dcSkyHero-arc var(--sc-cycle) both infinite}
.dc-hero-sky-exposure.is-art-visible .sc-dots{animation:dcSkyHero-turn var(--sc-cycle) both infinite}
.dc-hero-sky-exposure.is-art-visible .sc-label{animation:dcSkyHero-label var(--sc-cycle) ease both infinite}
@keyframes dcSkyHero-rise{0%,3%{opacity:0;transform:translateY(10px)}16%,82%{opacity:1;transform:none}91%,100%{opacity:0;transform:none}}
@keyframes dcSkyHero-draw{0%,4%{stroke-dashoffset:1}24%,100%{stroke-dashoffset:0}}
@keyframes dcSkyHero-rays{0%,19%{opacity:0;stroke-dashoffset:24}33%,82%{opacity:.55;stroke-dashoffset:0}91%,100%{opacity:0}}
@keyframes dcSkyHero-field{0%,23%{opacity:0;stroke-dashoffset:1}40%,82%{opacity:1;stroke-dashoffset:0}91%,100%{opacity:0;stroke-dashoffset:0}}
@keyframes dcSkyHero-fade{0%,30%{opacity:0}40%,82%{opacity:1}91%,100%{opacity:0}}
@keyframes dcSkyHero-arc{0%,42%{stroke-dashoffset:1;opacity:0;animation-timing-function:linear}42.1%{opacity:1}70%,82%{stroke-dashoffset:0;opacity:1}91%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes dcSkyHero-turn{0%,34%{opacity:0;transform:rotate(45.12deg)}40%{opacity:1;transform:rotate(45.12deg)}42%{transform:rotate(45.12deg);animation-timing-function:linear}70%,82%{opacity:1;transform:rotate(0deg)}91%,100%{opacity:0;transform:rotate(0deg)}}
@keyframes dcSkyHero-label{0%,38%{opacity:0}44%,82%{opacity:1}91%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.dc-hero-sky-exposure.is-art-visible *{animation:none!important}}
.dc-hero-sky-exposure.is-art-visible:not(.is-art-in-view) *{animation-play-state:paused!important}
/* Конец анимации I15. */

/* I02: лучи и ореолы, сравнение до / после. */
.dc-hero-spikes {
  --ss-cycle: 11s;
  color: var(--dc-color-accent, #afc4dd);
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: hidden;
}
.dc-hero-spikes .ss-cool { color: var(--dc-color-accent, #afc4dd); }
.dc-hero-spikes .ss-warm { color: var(--dc-color-accent-warm, #dec595); }
.dc-hero-spikes .ss-corners { stroke: currentColor; stroke-width: 1.8; opacity: .58; }
.dc-hero-spikes .ss-stars { fill: currentColor; }
.dc-hero-spikes .ss-arm-axis { stroke-width: .8; }
.dc-hero-spikes .ss-effect-core { fill: currentColor; }
.dc-hero-spikes .ss-reveal-mask { transform: translateX(760px); }
.dc-hero-spikes .ss-divider { opacity: 0; stroke: currentColor; stroke-width: 1.5; }
.dc-hero-spikes .ss-handle-arrows { stroke-width: 1.4; }
.dc-hero-spikes.is-art-visible .ss-scene { animation: dcSpikesCompare-scene var(--ss-cycle) linear infinite both; }
.dc-hero-spikes.is-art-visible .ss-corners path { stroke-dasharray: 1; animation: dcSpikesCompare-corners var(--ss-cycle) ease infinite both; }
.dc-hero-spikes.is-art-visible .ss-stars { animation: dcSpikesCompare-stars var(--ss-cycle) ease infinite both; }
.dc-hero-spikes.is-art-visible .ss-reveal-mask { animation: dcSpikesCompare-sweep var(--ss-cycle) linear infinite both; }
.dc-hero-spikes.is-art-visible .ss-divider { animation: dcSpikesCompare-sweep var(--ss-cycle) linear infinite both, dcSpikesCompare-divider var(--ss-cycle) ease infinite both; }
@keyframes dcSpikesCompare-scene { 0%, 2% { opacity: 0; } 9%, 83% { opacity: 1; } 93%, 100% { opacity: 0; } }
@keyframes dcSpikesCompare-corners { 0%, 3% { stroke-dashoffset: 1; } 17%, 100% { stroke-dashoffset: 0; } }
@keyframes dcSpikesCompare-stars { 0%, 8% { opacity: 0; } 20%, 100% { opacity: 1; } }
@keyframes dcSpikesCompare-sweep { 0%, 26% { transform: translateX(0); } 64%, 100% { transform: translateX(760px); } }
@keyframes dcSpikesCompare-divider { 0%, 23% { opacity: 0; } 26%, 62% { opacity: .86; } 65%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .dc-hero-spikes.is-art-visible * { animation: none !important; } }

.dc-hero-spikes.is-art-visible:not(.is-art-in-view) * { animation-play-state: paused !important; }
/* Конец анимации I02. */
