/* ===== Заставка перед лендингом (превью intro.html?v=a|b|c): A — биржевое табло, B — свеча-занавес, C — открытие торгов.
   Оверлей поверх страницы, страница грузится под ним; пропуск — клик/кнопка; при «уменьшить движение» не показывается ===== */
html.intro-on { overflow: hidden; }
.intro { position: fixed; inset: 0; z-index: 9999; color: #F5F5F5; font-family: var(--f-text); cursor: pointer; }
.intro__bg { position: absolute; inset: 0; background: radial-gradient(60% 50% at 50% 50%, #141210 0%, #050506 70%); transition: opacity .7s ease; }
.intro__layer { position: absolute; inset: 0; display: grid; place-items: center; transition: translate .9s cubic-bezier(.7,0,.2,1); }
.intro__skip { position: absolute; right: 24px; bottom: 24px; z-index: 2; padding: 10px 16px; border-radius: 999px; border: 1px solid rgba(201,164,92,.4); background: rgba(0,0,0,.4);
  color: #E6C789; font: 600 13px/1 var(--f-text); cursor: pointer; }
.intro.is-out { pointer-events: none; }
.intro.is-out .intro__bg { opacity: 0; }
.intro.is-out .intro__skip { opacity: 0; }
.intro__gold { -webkit-background-clip: text; background-clip: text; color: transparent;
  background-image: linear-gradient(180deg, #FFF4D6 0%, #F3DEAC 30%, #C9A45C 52%, #8E6A33 62%, #E9CD91 100%); }
.intro__kick { font: 600 12px/1 var(--f-text); letter-spacing: .24em; text-transform: uppercase; color: #8d8d93; }

/* A · биржевое табло: перекидные ячейки перебирают тикеры и встают в BLACK FRIDAY / 11.11 · −75%, затем табло расходится створками */
.flap { display: grid; gap: clamp(14px, 2vw, 22px); justify-items: center; }
.flap__row { display: flex; gap: clamp(3px, .5vw, 6px); }
.flap__c { position: relative; width: clamp(24px, 6.6vw, 76px); height: clamp(36px, 9.6vw, 108px); border-radius: clamp(3px, .6vw, 8px); perspective: 300px;
  background: linear-gradient(180deg, #1c1a17 0%, #12100d 49.5%, #070605 50.5%, #15120e 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 20px -10px #000;
  display: grid; place-items: center; overflow: hidden; }
.flap__c::after { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(0,0,0,.9); }
.flap__c b { font: 800 clamp(18px, 5vw, 60px)/1 'Unbounded', var(--f-display); }
.flap__c.is-sp { background: transparent; box-shadow: none; }
.flap__c.is-sp::after { display: none; }
.flap__row--2 .flap__c { height: clamp(28px, 7vw, 80px); }
.flap__row--2 .flap__c b { font-size: clamp(14px, 3.8vw, 44px); }

/* B · свеча-занавес: линия цены в боковике, затем огромная свеча, на теле — BLACK FRIDAY, тело раскрывается створками */
.cndl__line { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.cndl__line path { fill: none; stroke: rgba(201,164,92,.55); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.cndl { position: relative; display: grid; place-items: center; width: min(78vw, 560px); height: min(72vh, 620px); }
.cndl__wick { position: absolute; left: 50%; top: -14vh; bottom: -14vh; width: 2px; margin-left: -1px; background: linear-gradient(180deg, transparent, #E9CD91 15%, #E9CD91 85%, transparent); transform-origin: 50% 50%; }
.cndl__body { position: absolute; inset: 0; border-radius: 10px; border: 2px solid transparent; transform-origin: 50% 50%;
  background: linear-gradient(180deg, #17130d, #070605) padding-box, linear-gradient(160deg, #FFF4D6, #C9A45C 40%, #8E6A33 60%, #F3DEAC) border-box;
  box-shadow: 0 0 80px -10px rgba(241,209,138,.35), inset 0 0 60px rgba(0,0,0,.8); }
.cndl__txt { position: relative; display: grid; gap: 16px; justify-items: center; text-align: center; }
.cndl__txt h2, .bell__fin h2 { text-transform: uppercase; }
.cndl__txt h2 { font: 800 clamp(30px, 6.4vw, 72px)/1 'Unbounded', var(--f-display); letter-spacing: -.02em; }
.cndl__txt p { font: 800 clamp(22px, 4vw, 44px)/1 'Unbounded', var(--f-display); }

/* C · открытие торгов: ОТКРЫТИЕ ТОРГОВ 3·2·1 → удар-вспышка → BLACK FRIDAY 11.11 */
.bell { display: grid; gap: 22px; justify-items: center; text-align: center; }
.bell__n { font: 800 clamp(120px, 26vw, 300px)/1 'Unbounded', var(--f-display); letter-spacing: -.04em; }
.bell__flash { position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(40% 40% at 50% 50%, rgba(255,240,205,.9), rgba(241,209,138,.25) 40%, transparent 70%); }
.bell__fin { display: grid; gap: 14px; justify-items: center; }
.bell__fin h2 { font: 800 clamp(34px, 7.4vw, 96px)/1 'Unbounded', var(--f-display); letter-spacing: -.02em; }
.bell__fin p { font: 800 clamp(22px, 4.2vw, 52px)/1 'Unbounded', var(--f-display); }
/* надзаголовок внутри B и C — мелкий, как во всём лендинге (иначе его перебивают стили крупных строк) */
.cndl__txt .intro__kick, .bell__fin .intro__kick { font: 600 12px/1 var(--f-text); letter-spacing: .24em; color: #8d8d93; background: none; -webkit-text-fill-color: currentColor; }

/* C · доработка: сетка терминала, бегущие тикеры, свечи на отсчёт, пыль на «гонге», падающие буквы, крупные 11.11, выход диафрагмой */
.bell-grid { position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(201,164,92,.06) 0 1px, transparent 1px 64px), repeating-linear-gradient(90deg, rgba(201,164,92,.06) 0 1px, transparent 1px 64px);
  -webkit-mask: radial-gradient(60% 60% at 50% 50%, #000 20%, transparent 80%); mask: radial-gradient(60% 60% at 50% 50%, #000 20%, transparent 80%); }
.bell-tape { position: absolute; left: 0; right: 0; overflow: hidden; white-space: nowrap; font: 600 12px/1 var(--f-text); letter-spacing: .18em; color: rgba(201,164,92,.45);
  border-top: 1px solid rgba(201,164,92,.12); border-bottom: 1px solid rgba(201,164,92,.12); padding: 10px 0; }
.bell-tape--t { top: 7vh; } .bell-tape--b { bottom: 7vh; }
.bell-tape span { display: inline-block; animation: bell-tape 16s linear infinite; }
.bell-tape--b span { animation-direction: reverse; }
@keyframes bell-tape { to { transform: translateX(-50%); } }
.bell__cd { width: clamp(90px, 12vw, 140px); height: auto; margin-top: -6px; }
.bell__c { transform-box: fill-box; transform-origin: 50% 100%; opacity: 0; }
.bell__c line { stroke: #E9CD91; stroke-width: 1.5; }
.bell__c rect { fill: #E9CD91; }
.bell__fx { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.bell__fin { gap: 10px; }
.bell__fin .bell__title { display: flex; flex-wrap: wrap; justify-content: center; column-gap: .3em; row-gap: .08em; max-width: 92vw; font: 800 clamp(30px, 3.6vw, 56px)/1 'Unbounded', var(--f-display); letter-spacing: -.01em; text-transform: uppercase; }
.bell__title span { display: inline-block; }
.bell__w { white-space: nowrap; } /* «Главная распродажа 26 года»: переносы только между словами */
.bell__sp { width: .35em; }
.bell__fin .bell__date { font: 800 clamp(84px, 17vw, 230px)/.95 'Unbounded', var(--f-display); letter-spacing: -.04em; filter: drop-shadow(0 0 40px rgba(241,209,138,.25)); }
.bell__fin .bell__off { font: 700 clamp(16px, 1.8vw, 22px)/1 var(--f-text); letter-spacing: .12em; text-transform: uppercase; color: #c4c4c9; }
.bell__fin .bell__off { display: flex; align-items: baseline; justify-content: center; gap: .5em; }
.bell__off b { font: 800 clamp(56px, 7.4vw, 112px)/1 'Unbounded', var(--f-display); letter-spacing: -.03em; /* скидка — второй акцент после 11.11 (04.11) */
  filter: drop-shadow(0 0 28px rgba(241,209,138,.35)) drop-shadow(0 8px 18px rgba(0,0,0,.6)); }
/* выход: золотая диафрагма раскрывается из центра, в ней проявляется лендинг */
@property --iris { syntax: '<length>'; inherits: false; initial-value: 0px; }
.intro.is-iris { -webkit-mask: radial-gradient(circle at 50% 50%, transparent var(--iris), #000 calc(var(--iris) + 2px)); mask: radial-gradient(circle at 50% 50%, transparent var(--iris), #000 calc(var(--iris) + 2px));
  animation: intro-iris 1s cubic-bezier(.7,0,.3,1) forwards; }
.intro__ring { position: fixed; left: 50%; top: 50%; z-index: 10000; width: calc(var(--iris) * 2 + 8px); height: calc(var(--iris) * 2 + 8px); translate: -50% -50%; border-radius: 50%; pointer-events: none;
  border: 3px solid #F3DEAC; box-shadow: 0 0 40px rgba(241,209,138,.7), inset 0 0 30px rgba(241,209,138,.5); animation: intro-iris 1s cubic-bezier(.7,0,.3,1) forwards, intro-ring-out 1s ease-in forwards; }
@keyframes intro-iris { to { --iris: 150vmax; } }
@keyframes intro-ring-out { 0%, 60% { opacity: 1; } 100% { opacity: 0; } }
/* C: строка статуса акции в финале и «летящие» 11.11 при переходе на первый экран */
.bell__fin .bell__st { margin-top: 8px; padding: 9px 16px; border-radius: 999px; border: 1px solid rgba(201,164,92,.45); background: rgba(201,164,92,.06);
  font: 600 13px/1 var(--f-text); letter-spacing: .12em; text-transform: uppercase; color: #F3DEAC; }
.intro__fly { position: fixed; z-index: 10001; margin: 0; display: grid; place-items: center; white-space: nowrap; transform-origin: 50% 50%; pointer-events: none; line-height: .95; }
/* боевая страница: пока идёт заставка, анимации первого экрана стоят на паузе — стартуют сразу после неё, а не прячутся под оверлеем */
html.intro-on .hero, html.intro-on .hero * { animation-play-state: paused !important; }

/* ===== Заставка «Эстафета» (05.11, заменила C — её стили выше пока нужны: .intro__bg/.intro__gold/.intro__skip/.bell__flash/.bell__fx/.intro__fly/пауза hero) =====
   3·2·1 → фраза → удар: фраза мелкой строкой над 11.11 → 11.11 летят на место → заголовок → оффер. Фон — огни вне фокуса */
.ir { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 22px; transition: opacity .3s ease; }
.ir__n { font: 800 clamp(120px, 24vw, 280px)/1 'Unbounded', var(--f-display); letter-spacing: -.04em; }
.ir__date { font: 800 clamp(96px, 19vw, 260px)/.95 'Unbounded', var(--f-display); letter-spacing: -.04em; filter: drop-shadow(0 0 40px rgba(241,209,138,.3)); }
.intro.is-out .intro__bg { transition-duration: .7s; }
.intro.is-out .intro__kick { opacity: 0; }

@keyframes ir-show { from { opacity: 0; } to { opacity: 1; } }
@keyframes ir-up   { from { opacity: 0; translate: 0 .3em; } to { opacity: 1; translate: 0 0; } }
html.intro-r .hero .digits    { animation: ir-show .2s linear .8s both; }   /* проявляются под прилетевшими цифрами */
html.intro-r .hero .date-pill { animation: ir-show .5s ease .45s both; }     /* телефон: рамка пилюли — к посадке */
html.intro-r .hero .bf { animation: none; }
html.intro-r .hero .bf__black:nth-child(1) { animation: ir-up .7s cubic-bezier(.2,.7,.2,1) 1.05s both, bf-shine 11s ease-in-out 2.4s infinite; }
html.intro-r .hero .bf__black:nth-child(2) { animation: ir-up .7s cubic-bezier(.2,.7,.2,1) 1.2s both, bf-shine 11s ease-in-out 2.4s infinite; }
html.intro-r .hero .bf__friday             { animation: ir-up .7s cubic-bezier(.2,.7,.2,1) 1.35s both, bf-shine 11s ease-in-out 2.75s infinite; }
html.intro-r .hero .copy .sub   { animation: ir-up .6s cubic-bezier(.2,.7,.2,1) 1.75s both; }
html.intro-r .hero .copy__cta   { animation: ir-up .6s cubic-bezier(.2,.7,.2,1) 1.9s both; }
html.intro-r .hero .copy .meta,
html.intro-r .hero .copy .board { animation: ir-up .6s cubic-bezier(.2,.7,.2,1) 2.05s both; }
/* фраза распродажи в заставке — мелко, серебром, над 11.11: звучит, но не спорит с цифрами */
.ir__kick { opacity: 0; font: 700 clamp(12px, 1.3vw, 17px)/1.2 var(--f-text); letter-spacing: .28em; text-transform: uppercase; white-space: nowrap; color: #D6D8DD; transform-origin: 50% 50%; transition: opacity .3s ease; }
.ir__date { visibility: hidden; }
.intro.is-out .ir__kick { opacity: 0; }
.ir__n { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; pointer-events: none; opacity: 0; } /* отсчёт поверх, по центру; шрифт — правило .ir__n выше */

/* фон заставки (05.11): пыль в луче (холст), золотые линии фразы → «пол» под 11.11. В каждый такт — один акцент */
.ir__amb { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.ir__ln { position: absolute; left: 0; top: 0; width: 0; height: 1px; margin-top: -.5px; pointer-events: none; opacity: 0;
  background: linear-gradient(90deg, transparent, #E9CD91 60%, #FFF4D6); box-shadow: 0 0 10px rgba(241,209,138,.55); }
.ir__ln + .ir__ln { background: linear-gradient(270deg, transparent, #E9CD91 60%, #FFF4D6); }
.intro.is-out .ir__amb, .intro.is-out .ir__ln { transition: opacity .4s ease; opacity: 0 !important; }

/* фон: крупные размытые золотые огни вне фокуса медленно плывут (огни создаёт intro.js) */
.ir__bgx { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.intro.is-out .ir__bgx { transition: opacity .5s ease; opacity: 0; }
.ir__bgx i { position: absolute; border-radius: 50%; translate: -50% -50%; filter: blur(14px);
  background: radial-gradient(circle, rgba(255,236,190,.9), rgba(233,205,145,.5) 45%, transparent 70%); animation: ir-bokeh 9s ease-in-out infinite alternate; }
@keyframes ir-bokeh { to { transform: translate(var(--dx), var(--dy)); } }

/* «Эстафета» (05.11, вернули из C): бегущие строки с тикерами гаснут вместе с оверлеем; плашка статуса акции под золотой линией */
.intro.is-out .bell-tape { transition: opacity .4s ease; opacity: 0; }
.ir__st { position: absolute; left: 50%; z-index: 1; margin: 0; display: inline-flex; align-items: center; gap: 10px; max-width: calc(100vw - 32px); padding: 9px 16px; border-radius: 999px; white-space: nowrap;
  border: 1px solid rgba(201,164,92,.45); background: rgba(201,164,92,.06); font: 600 13px/1.2 var(--f-text); letter-spacing: .1em; text-transform: uppercase; color: #F3DEAC; opacity: 0; transform: translate(-50%, 0); }
.ir__st b { font-weight: 800; color: #FFF4D6; }
.ir__st i { width: 4px; height: 4px; border-radius: 50%; background: #C9A45C; }
.intro.is-out .ir__st { transition: opacity .3s ease; opacity: 0 !important; }
@media (max-width: 480px) { .ir__st { white-space: normal; flex-wrap: wrap; justify-content: center; text-align: center; font-size: 11px; letter-spacing: .08em; row-gap: 4px; } .ir__st i { display: none; } }
.intro .bell-tape span { animation-duration: 64s; } /* 8 повторов вместо 2 — та же скорость, что в C */

/* после окончания распродажи (html.intro-ended, 05.11): спокойная заставка — 11.11 приглушены, плашка «Распродажа завершена» как на закрытых тарифах (вариант A) */
html.intro-ended .ir__date { filter: drop-shadow(0 0 30px rgba(241,209,138,.12)) saturate(.35) brightness(.62); }
html.intro-ended .ir__st { padding: 14px 24px; border-color: rgba(233,205,145,.65); background: rgba(12,11,9,.88); box-shadow: 0 0 40px -8px rgba(241,209,138,.35), inset 0 1px 0 rgba(255,255,255,.06); }
html.intro-ended .ir__st b { font: 800 clamp(15px, 1.4vw, 20px)/1 'Unbounded', var(--f-display); letter-spacing: .06em;
  -webkit-background-clip: text; background-clip: text; color: transparent; background-image: linear-gradient(180deg, #FFF4D6 0%, #F3DEAC 35%, #C9A45C 58%, #E9CD91 100%); }
/* «Пропустить»: заставка гаснет целиком за 0,25 с (анимации внутри обрываются скриптом), 05.11 */
.intro.is-skip { opacity: 0; transition: opacity .25s ease; pointer-events: none; }
