/* «Серебряные нити» — движение (motion.js), конкурс без таблицы, ленты участников, партнёры. Наш файл. */
:root { --sn-bolt: #2f7cf6; --sn-spark: #7cc4ff; }
[data-theme="silver"] { --sn-bolt: #2f7cf6; --sn-spark: #7cc4ff; }
[data-theme="blue"] { --sn-bolt: #9fdcff; --sn-spark: #ffffff; }

/* Сфера: медленное вращение, разряды и огоньки */
.sn-hero__art--spin .sn-sphere { animation: sn-rotate 150s linear infinite; transform-origin: 50% 50%; will-change: transform; }
@keyframes sn-rotate { to { transform: rotate(360deg); } }
.sn-bolt { fill: none; stroke: var(--sn-bolt); stroke-width: 1.8px; stroke-linecap: round; vector-effect: non-scaling-stroke; filter: url(#sn-glow); pointer-events: none; }
.sn-spark { fill: var(--sn-spark); filter: url(#sn-glow); transform-box: fill-box; transform-origin: center; pointer-events: none; }

/* Первый экран: текст выходит ступенями */
.sn-motion .sn-hero__text > * { animation: sn-up .8s cubic-bezier(.2,.7,.2,1) both; animation-delay: calc(var(--k, 0) * 90ms + 120ms); }
.sn-motion .sn-hero__text > :nth-child(1) { --k: 0 } .sn-motion .sn-hero__text > :nth-child(2) { --k: 1 } .sn-motion .sn-hero__text > :nth-child(3) { --k: 2 }
.sn-motion .sn-hero__text > :nth-child(4) { --k: 3 } .sn-motion .sn-hero__text > :nth-child(5) { --k: 4 } .sn-motion .sn-hero__text > :nth-child(6) { --k: 5 }
@keyframes sn-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* Появление секций и их детей волной */
.sn-motion .sn-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.sn-motion .sn-reveal.is-in { opacity: 1; transform: none; }
.sn-motion .sn-reveal .sn-day, .sn-motion .sn-reveal .sn-stat, .sn-motion .sn-reveal .sn-logo-tile, .sn-motion .sn-reveal .sn-partners__group, .sn-motion .sn-reveal .sn-facts > div { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: calc(var(--d, 0) * 70ms + .25s); }
.sn-motion .sn-reveal.is-in .sn-day, .sn-motion .sn-reveal.is-in .sn-stat, .sn-motion .sn-reveal.is-in .sn-logo-tile, .sn-motion .sn-reveal.is-in .sn-partners__group, .sn-motion .sn-reveal.is-in .sn-facts > div { opacity: 1; transform: none; }
/* Несущие нити прорастают слева направо */
.sn-motion .sn-reveal .sn-days::before, .sn-motion .sn-reveal .sn-stats__line { transform: scaleX(0); transform-origin: left center; transition: transform 1.3s cubic-bezier(.2,.7,.2,1) .15s; }
.sn-motion .sn-reveal.is-in .sn-days::before, .sn-motion .sn-reveal.is-in .sn-stats__line { transform: scaleX(1); }
.sn-motion .sn-nodedot { transition: transform .3s, background .3s; }
.sn-motion .sn-day:hover .sn-nodedot, .sn-motion .sn-stat:hover .sn-nodedot { transform: scale(1.5); background: var(--sn-thread); }
/* Кнопки и карточки */
.sn-motion .sn-btn { transition: transform .18s ease, box-shadow .18s ease, background .18s, border-color .18s; }
.sn-motion .sn-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(19,40,130,.14); }
.sn-motion .sn-countdown { transition: box-shadow .3s; }
.sn-motion .sn-countdown:hover { box-shadow: var(--shadow-card); }
/* Программа: панель дня проявляется */
.sn-motion .sn-panel:not([hidden]) { animation: sn-fade .4s ease both; }
@keyframes sn-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.sn-motion .sn-tab { transition: background .2s, color .2s, box-shadow .2s; }
/* Меню: линия под пунктом при наведении */
.sn-motion .sn-nav a { position: relative; }
.sn-motion .sn-nav a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px; height: 1.5px; background: var(--sn-thread); transform: scaleX(0); transform-origin: left; transition: transform .25s cubic-bezier(.2,.7,.2,1); }
.sn-motion .sn-nav a:hover::after { transform: scaleX(1); }
.sn-motion--off .sn-reveal, .sn-motion--off .sn-reveal * { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }

/* ---------- Конкурс без таблицы ---------- */
.sn-contest__grid--single { grid-template-columns: 7fr 4fr; align-items: center; }
.sn-contest__art { display: flex; justify-content: center; }
.sn-contest__art .sn-sphere { width: 320px; height: 320px; animation: sn-rotate 120s linear infinite reverse; }
@media (max-width: 1099px) { .sn-contest__art { display: none; } }

/* ---------- Участники: бегущие ленты ---------- */
.sn-participants { padding: 96px 0 72px; overflow: hidden; }
.sn-sechead--stack { grid-template-columns: 1fr; gap: 8px; margin-bottom: 40px; }
.sn-ticker { overflow: hidden; margin: 0 0 20px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.sn-ticker__track { display: flex; gap: 20px; width: max-content; animation: sn-ticker 46s linear infinite; padding: 0; margin: 0; }
.sn-ticker--right .sn-ticker__track { animation-direction: reverse; animation-duration: 54s; }
.sn-ticker:hover .sn-ticker__track { animation-play-state: paused; }
@keyframes sn-ticker { to { transform: translateX(calc(-100% / 3)); } }
.sn-participants__foot { display: grid; gap: 12px; justify-items: start; margin-top: 32px; max-width: 760px; }

/* Плитка логотипа: белая подложка, серый до наведения */
.sn-logo-tile { list-style: none; display: flex; align-items: center; justify-content: center; height: 88px; padding: 14px 24px; background: #ffffff; border: 1px solid var(--sn-line); border-radius: var(--radius-md); flex: none; }
.sn-logo-tile img { max-height: 52px; width: auto; max-width: 200px; height: auto; filter: grayscale(1) contrast(.95); opacity: .82; transition: filter .35s ease, opacity .35s ease, transform .35s ease; }
.sn-logo-tile:hover img { filter: none; opacity: 1; transform: scale(1.04); }
[data-theme="blue"] .sn-logo-tile { border-color: transparent; }
.sn-logo-tile--wide { height: 112px; padding: 20px 40px; }
.sn-logo-tile--wide img { max-height: 64px; max-width: 280px; }

/* ---------- Партнёры ---------- */
.sn-partners__group { margin-top: 40px; }
.sn-partners__h { font: 500 14px/20px var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--sn-text-muted); margin: 0 0 16px !important; }
.sn-logo-grid { display: flex; flex-wrap: wrap; gap: 16px; padding: 0; margin: 0; }
.sn-partners__text { max-width: 900px; color: var(--sn-text); }
.sn-partners .sn-actions { margin-top: 48px; }
@media (max-width: 767px) {
  .sn-page--mobile .sn-participants { padding: 56px 0 48px; }
  .sn-page--mobile .sn-logo-tile { height: 72px; padding: 10px 16px; }
  .sn-page--mobile .sn-logo-tile img { max-height: 40px; max-width: 150px; }
  .sn-page--mobile .sn-logo-tile--wide { height: 88px; }
  .sn-page--mobile .sn-logo-grid { gap: 10px; }
  .sn-page--mobile .sn-ticker__track { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .sn-hero__art--spin .sn-sphere, .sn-contest__art .sn-sphere, .sn-ticker__track { animation: none; }
}
