/* ════════════════════════════════════════════════════════════════
   II ежегодная Спортивная премия — Волгодонск, 5 декабря 2026
   Вёрстка mobile-first; десктоп (с 1024px в альбомной ориентации) —
   по отдельным макетам Лены 1672×941, блок «ДЕСКТОП» в конце файла.

   Главный принцип третьего круга (просьба Лены 26.10.2026):
   утверждённый экран идёт на сайт КАРТИНКОЙ целиком — со своим шрифтом
   и своей расстановкой текста. Код сверху добавляет только движение
   декора (дуги, окружности, блик, частицы) и живые элементы: карусель
   номинаций, галерею, анкету, ссылку «построить маршрут».
   ════════════════════════════════════════════════════════════════ */

:root{
  --navy-900:#050f24;
  --navy-800:#081A3E;
  --blue-600:#1B4DA8;
  --blue-500:#2F6FD8;
  --ice-dim:#9DB4D6;
  --red:#D2232A;
  --paper:#F4F7FC;
  --paper-2:#E7EEF9;
  --ink:#0B1F4D;
  --ink-soft:#44608F;
  --pad:clamp(18px,5vw,26px);
  --col:600px;              /* ширина мобильной колонки на широком экране */
  --r:18px;
  --ease:cubic-bezier(.22,.7,.26,1);
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:#030b1c;color:#fff;overflow-x:hidden;
  font:400 16px/1.6 'Montserrat',-apple-system,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
button{font:inherit;color:inherit}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,p{margin:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{width:1.35em;height:1.35em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;
    stroke-linecap:round;stroke-linejoin:round}

/* текст экрана-картинки: есть для голосового чтения и поиска, глазами не виден */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

.skip-link{position:absolute;left:-9999px;top:0;z-index:99;background:#fff;color:var(--ink);padding:10px 16px}
.skip-link:focus{left:8px;top:8px}

:where(a,button,input,[tabindex]):focus-visible{
  outline:3px solid #7FB0FF;outline-offset:3px;border-radius:10px;
}

/* одна мобильная колонка по центру — макеты вертикальные */
main{max-width:var(--col);margin:0 auto;position:relative;
  box-shadow:0 0 70px rgba(0,0,0,.55)}

/* ══════════ ЭКРАН-КАРТИНКА ══════════
   ⚠ Здесь НЕТ `isolation` и НЕТ `mix-blend-mode` — и это важно, а не случайно.
   Пока декор лежал режимом наложения внутри изолированной группы, браузер не мог
   отдать движение композитору: весь экран перерисовывался каждый кадр, тайлы не
   успевали прорисоваться (чёрные полосы поперёк макета) и прокрутка дёргалась
   (Лена 26.10.2026: «загружается частями… экраны дрожат»). Декор теперь рисуется
   обычным слоем и движется только у видимой секции (класс .fx-live). */
.slide{position:relative;display:block;overflow:hidden;background:#061531;line-height:0}
.slide__img{width:100%;height:auto;max-width:none}
/* экран-ролик (дресс-код): ведёт себя как картинка — место под него
   держится по пропорции кадра, страница не прыгает, пока ролик грузится */
.slide__video{display:block;aspect-ratio:720/1264;object-fit:cover;background:#061531}
.slide--light{background:#F2F6FB}
/* поля сверху и снизу красим в цвет краёв самого макета, чтобы шва не было видно */
.slide--hero{min-height:100svh;display:grid;align-content:center;
  background:linear-gradient(180deg,#010a1d 0%,#031026 42%,#071734 100%)}

/* движение поверх картинки — декор, не буквы.
   Всё, что движется, по умолчанию СТОИТ: оживает только у секции с .fx-live
   (её ставит и снимает IntersectionObserver). Так в каждый момент работает
   один экран, а не все шесть сразу. */
.slide__fx{position:absolute;inset:0;z-index:2;pointer-events:none}
.slide__fx--light{opacity:.75}
.slide__fx *,.rsvp__deco *{animation-play-state:paused}
.fx-live .slide__fx *,.fx-live .rsvp__deco *{animation-play-state:running}

.fx-sheen{position:absolute;inset:-10% -60%;will-change:transform;
  background:linear-gradient(104deg,transparent 44%,rgba(186,216,255,.22) 50%,transparent 56%);
  animation:sheen 19s ease-in-out infinite}
.fx-sheen--slow{animation-duration:31s;opacity:.8}
@keyframes sheen{
  0%{transform:translate3d(-26%,0,0)}
  50%{transform:translate3d(26%,0,0)}
  100%{transform:translate3d(-26%,0,0)}
}

/* концентрические окружности: обычные div с рамкой, а не SVG —
   движение уходит на композитор, перерисовки картинки под ними нет */
.fx-rings{position:absolute;left:50%;top:50%;width:min(150%,760px);aspect-ratio:1;
  transform:translate(-50%,-50%)}
.fx-rings i{position:absolute;left:50%;top:50%;border-radius:50%;
  border:1px solid rgba(143,182,255,.34);opacity:0;will-change:transform,opacity;
  animation:ringOut 15s ease-out infinite}
.fx-rings i:nth-child(1){width:35%;height:35%;margin:-17.5% 0 0 -17.5%}
.fx-rings i:nth-child(2){width:60%;height:60%;margin:-30% 0 0 -30%;animation-delay:-5s}
.fx-rings i:nth-child(3){width:85%;height:85%;margin:-42.5% 0 0 -42.5%;animation-delay:-10s}
@keyframes ringOut{0%{transform:scale(.7);opacity:0}25%{opacity:.55}100%{transform:scale(1.5);opacity:0}}

.fx-spot{position:absolute;top:0;width:52%;height:62%;will-change:transform;
  background:radial-gradient(60% 80% at 50% 0%,rgba(150,190,255,.3),rgba(150,190,255,0) 70%);
  animation:spotSway 22s ease-in-out infinite alternate}
.fx-spot--l{left:-10%;transform-origin:50% 0}
.fx-spot--r{right:-10%;animation-delay:-9s}
@keyframes spotSway{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}

.fx-arcs{position:absolute;left:50%;top:0;width:min(150%,900px);height:100%;transform:translateX(-50%)}
.arc{stroke-dasharray:1400;stroke-dashoffset:1400;transition:stroke-dashoffset 2.8s var(--ease)}
.in-view .arc{stroke-dashoffset:0}
.arc:nth-child(2){transition-delay:.3s}

/* стрелка «листай дальше» на первом экране */
.hero__scroll{
  position:absolute;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:3;
  transform:translateX(-50%);
  width:28px;height:46px;border:1.5px solid rgba(180,206,255,.5);border-radius:16px;
  display:grid;place-items:start center;padding-top:8px;
}
.hero__scroll span{width:3px;height:8px;border-radius:2px;background:#BFD6FF;
  animation:scrollDot 2.4s ease-in-out infinite}
@keyframes scrollDot{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(12px);opacity:.3}}

/* настоящая ссылка поверх нарисованной на макете кнопки */
.slide__hit{position:absolute;z-index:4;display:block;border-radius:999px;
  transition:background .25s,box-shadow .25s}
.slide__hit:hover{background:rgba(255,255,255,.16);box-shadow:0 0 24px rgba(160,200,255,.4)}
.slide__hit--route{left:15.5%;right:15%;top:86.8%;height:7%;min-height:44px}

/* частицы */
.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.particles i{
  position:absolute;width:3px;height:3px;border-radius:50%;background:#BBD6FF;opacity:0;
  will-change:transform,opacity;
  animation:float linear infinite;
}
/* мерцание внизу главного экрана — заметнее обычных частиц (просьба Лены 26.10):
   крупнее, со свечением, не улетают, а разгораются и гаснут на месте */
.particles--spark{top:auto;height:46%;bottom:0}
.particles--spark i{
  width:4px;height:4px;background:#DCEBFF;
  box-shadow:0 0 6px 1px rgba(170,208,255,.9),0 0 14px 3px rgba(120,170,255,.45);
  animation-name:spark;
}
@keyframes spark{
  0%{opacity:0;transform:translate3d(0,6px,0) scale(.5)}
  22%{opacity:1;transform:translate3d(0,0,0) scale(1.15)}
  48%{opacity:.25;transform:translate3d(0,-4px,0) scale(.85)}
  72%{opacity:.95;transform:translate3d(0,-9px,0) scale(1.05)}
  100%{opacity:0;transform:translate3d(2px,-20px,0) scale(.6)}
}
@keyframes float{
  0%{opacity:0;transform:translate3d(0,14px,0)}
  18%{opacity:.75}
  82%{opacity:.5}
  100%{opacity:0;transform:translate3d(10px,-70px,0)}
}

/* десктопные кадры и декор на телефоне не показываются; картинки у них
   loading=lazy, поэтому спрятанные даже не скачиваются */
.fx-d,.slide__img--d,.d-head,.rsvp__art,.partners__art,.partners__fx{display:none}
.slide picture{display:block}

/* ══════════ ОБЫЧНЫЕ СЕКЦИИ (живые элементы) ══════════ */
.sec{
  position:relative;overflow:hidden;isolation:isolate;line-height:1.6;
  padding:clamp(48px,12vw,78px) var(--pad);
  padding-left:max(var(--pad),env(safe-area-inset-left));
  padding-right:max(var(--pad),env(safe-area-inset-right));
}
.sec--dark{
  background:
    radial-gradient(120% 70% at 50% 0%,#12295C 0%,rgba(8,26,62,0) 60%),
    linear-gradient(180deg,#071631 0%,#050F24 100%);
  color:#fff;
}
.sec--light{
  background:
    radial-gradient(90% 60% at 15% 5%,#ffffff 0%,rgba(255,255,255,0) 60%),
    radial-gradient(80% 50% at 100% 100%,#DCE7F8 0%,rgba(220,231,248,0) 70%),
    linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);
  color:var(--ink);
}
/* фон секции — утверждённый мобильный экран-подложка, поверх вуаль для текста */
.sec__bg{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;max-width:none;
  object-fit:cover;object-position:center;pointer-events:none;
}
.sec__scrim{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(244,247,252,.80) 0%,rgba(244,247,252,.62) 42%,rgba(231,238,249,.88) 100%);
}
.sec__head{position:relative;z-index:2}
.sec__num{
  font:600 12px/1 'Montserrat';letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:16px;
}
.sec__num::after{content:"";display:inline-block;width:64px;height:1px;background:#B9CBE6;
  vertical-align:middle;margin-left:12px}

.h-serif{font-family:'Playfair Display',Georgia,serif;font-weight:800}
.rule{display:block;width:88px;height:3px;border-radius:2px;margin:16px auto}
.rule--tri{background:linear-gradient(90deg,#fff 0 34%,var(--blue-500) 34% 67%,var(--red) 67% 100%)}
.sec--light .rule--tri{background:linear-gradient(90deg,#17305C 0 34%,var(--blue-500) 34% 67%,var(--red) 67% 100%)}
.rule--wide{width:min(320px,70%);height:2px}

.brand{display:grid;justify-items:center;gap:10px;text-align:center}
.brand__logo{width:clamp(74px,19vw,104px);height:auto;filter:drop-shadow(0 8px 22px rgba(0,0,0,.4))}
.brand__name{font:700 clamp(11px,3vw,13px)/1.35 'Montserrat';letter-spacing:.1em;text-transform:uppercase}
.brand--row{grid-template-columns:auto 1fr;justify-items:start;text-align:left;gap:12px;align-items:center}
.brand--row .brand__logo{width:clamp(48px,12vw,62px)}
.sec--light .brand__name{color:var(--ink)}

/* кнопки */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:0 28px;border-radius:999px;border:0;cursor:pointer;
  font:700 15px/1 'Montserrat';letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s;
}
.btn--main{
  width:100%;color:#fff;
  background:linear-gradient(180deg,#2C62C8 0%,#15397F 100%);
  box-shadow:0 12px 28px rgba(16,48,112,.35);
}
.btn--main:hover{transform:translateY(-2px)}
.btn--main[disabled]{opacity:.75;cursor:progress;transform:none}
.btn__arrow{font-size:20px;line-height:1}
.btn__spin{display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
.is-sending .btn__spin{display:block}
.is-sending .btn__arrow{display:none}
@keyframes spin{to{transform:rotate(360deg)}}
.linkbtn{background:none;border:0;padding:0;text-decoration:underline;cursor:pointer;color:inherit}

/* появление при прокрутке — только блоки целиком, не отдельные строки */
.reveal{opacity:0;transform:translateY(18px);
  transition:opacity .8s var(--ease),transform .8s var(--ease);
  transition-delay:calc(var(--d,0) * 110ms)}
.reveal.in{opacity:1;transform:none}

/* ══════════ НОМИНАЦИИ ══════════ */
.noms__deco{position:absolute;inset:0;z-index:0;pointer-events:none}
.noms__lines{position:absolute;left:0;bottom:0;width:100%;height:46%}
.noms h2{margin-top:14px}
.noms__count{display:block;font-size:clamp(60px,18vw,110px);line-height:.9;color:#17305C}
.noms h2 .rule--tri{margin:10px 0 6px;width:110px}
.noms__word{display:block;font-size:clamp(34px,11.4vw,70px);line-height:1;color:#0E2550;text-transform:uppercase}
.noms__lead{margin-top:14px;max-width:38ch;color:var(--ink-soft);font-size:clamp(15px,4.2vw,17px)}
.noms__tabs{
  position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr 1fr;gap:10px;
  margin:clamp(20px,5.4vw,30px) auto 0;
  padding:12px 0;background:linear-gradient(180deg,rgba(244,247,252,.97) 70%,rgba(244,247,252,0))
}
.tab{
  min-height:48px;padding:0 14px;border-radius:999px;border:1px solid transparent;background:#E9EFF8;
  color:#3A557F;cursor:pointer;
  font:700 clamp(12px,3.4vw,13.5px)/1.2 'Montserrat';letter-spacing:.09em;text-transform:uppercase;
  transition:background .3s,color .3s,border-color .3s;
}
.tab:hover{background:#DDE7F5}
.tab.is-active{background:linear-gradient(180deg,#1B3F85,#12275A);color:#fff;border-color:transparent}

/* карусели (общие) */
.carousel{position:relative;margin-top:clamp(16px,4.4vw,24px)}
.car-track{
  display:flex;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding-left:var(--pad);
  padding:6px var(--pad) 10px;margin-inline:calc(var(--pad) * -1);
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.car-track::-webkit-scrollbar{display:none}
.car-arrow{
  position:absolute;top:50%;z-index:4;display:none;width:52px;height:52px;margin-top:-26px;
  border-radius:50%;border:1px solid #D4E0F1;background:#fff;cursor:pointer;
  box-shadow:0 10px 26px rgba(20,48,100,.16);transition:transform .2s,background .2s,opacity .2s;
}
.car-arrow span{display:block;width:12px;height:12px;margin:0 auto;
  border-top:2px solid var(--ink);border-right:2px solid var(--ink)}
.car-arrow--prev{left:-10px}
.car-arrow--prev span{transform:rotate(-135deg);margin-left:19px}
.car-arrow--next{right:-10px}
.car-arrow--next span{transform:rotate(45deg);margin-left:15px}
.car-arrow:hover{transform:scale(1.06)}
.car-arrow[disabled]{opacity:.35;cursor:default;transform:none}
.sec--dark .car-arrow{background:rgba(255,255,255,.1);border-color:rgba(174,205,255,.45)}
.sec--dark .car-arrow span{border-color:#fff}
.car-foot{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px}
.prog{position:relative;flex:1 1 auto;max-width:min(260px,52%);height:4px;border-radius:2px;
  background:#C3D2E8;overflow:hidden}
.prog__fill{position:absolute;left:0;top:0;height:100%;width:0;border-radius:2px;
  background:linear-gradient(90deg,#2F6FD8,#1B3F85);transition:width .35s var(--ease)}
.car-count{font:600 13px/1 'Montserrat';letter-spacing:.12em;color:var(--ink-soft)}

/* карточка номинации: номер и название — на картинке, как в макете;
   описание — текстом под ней (на самой картинке его читать неудобно) */
.nom{flex:0 0 calc(100% - 52px);scroll-snap-align:start;display:flex}
.nom[hidden]{display:none}
.nom__card{
  position:relative;overflow:hidden;isolation:isolate;width:100%;
  display:flex;flex-direction:column;border-radius:22px;background:#fff;
  border:1px solid #DDE7F5;box-shadow:0 16px 36px rgba(24,54,108,.14);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.nom.is-active .nom__card{transform:scale(1.012);box-shadow:0 20px 44px rgba(24,54,108,.2)}
.nom__pic{position:relative;flex:none;aspect-ratio:1/1;overflow:hidden;background:#E6EEF9}
.nom__pic img{width:100%;height:100%;object-fit:cover;object-position:center 46%}
/* подложка под подписью — снизу кадра: вверху лица, их ничем не закрываем */
.nom__pic::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(8,24,56,.92) 0%,rgba(8,24,56,.80) 24%,rgba(8,24,56,.42) 44%,rgba(8,24,56,.08) 62%,rgba(8,24,56,0) 76%)}
.nom__head{position:absolute;z-index:2;left:clamp(16px,5%,24px);bottom:clamp(14px,4.4%,22px);
  right:clamp(16px,6%,34px)}
.nom__num{display:block;font:800 clamp(30px,8.4vw,40px)/1 'Playfair Display',Georgia,serif;
  color:#fff;text-shadow:0 2px 10px rgba(4,16,40,.5)}
.nom__rule{display:block;width:52px;height:3px;margin:5px 0 9px;border-radius:2px;
  background:linear-gradient(90deg,#fff 0 34%,var(--blue-500) 34% 67%,var(--red) 67% 100%)}
.nom__title{font:800 clamp(17px,4.9vw,21px)/1.16 'Montserrat';letter-spacing:.005em;
  text-transform:uppercase;color:#fff;text-shadow:0 2px 12px rgba(4,16,40,.55)}
.nom__sub{margin-top:6px;font:700 11px/1.3 'Montserrat';letter-spacing:.14em;
  text-transform:uppercase;color:#C3D7F7}
.nom__body{display:flex;flex-direction:column;padding:clamp(14px,4.4vw,20px)}
.nom__cat{font:700 11px/1.2 'Montserrat';letter-spacing:.2em;text-transform:uppercase;color:#5C79A8}
.nom__text{margin-top:8px;font-size:15px;line-height:1.55;color:#3C557F}
.noms__note{position:relative;z-index:2;margin:18px auto 0;text-align:center;
  font-size:14px;color:var(--ink-soft)}

/* ══════════ ГАЛЕРЕЯ 2025 ══════════ */
.past__h{font:800 clamp(32px,9.6vw,54px)/1.05 'Montserrat';letter-spacing:-.01em;
  text-transform:uppercase;color:#0E2550}
.past__h span{display:block;color:#1B4DA8}
.past__lead{margin-top:14px;max-width:34ch;font-size:clamp(15px,4.2vw,18px);color:var(--ink-soft)}
.shot{flex:0 0 min(78%,420px);scroll-snap-align:start}
.shot__btn{
  display:block;width:100%;padding:0;border:0;border-radius:var(--r);overflow:hidden;cursor:pointer;
  background:#0A1C40;box-shadow:0 14px 32px rgba(24,54,108,.18);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.shot img{width:100%;height:260px;object-fit:cover}
.shot.is-active .shot__btn{transform:scale(1.015);box-shadow:0 18px 40px rgba(24,54,108,.26)}

/* ══════════ АНКЕТА ══════════ */
.rsvp{text-align:center;padding:0 0 clamp(36px,10vw,60px);
  background:linear-gradient(180deg,#041a42 0%,#021539 55%,#04204f 100%)}
.rsvp__top{width:100%;height:auto;position:relative;z-index:1}
.rsvp__floor{position:absolute;left:0;bottom:0;width:100%;height:auto;z-index:0}
.rsvp__deco{position:absolute;inset:0;z-index:1;pointer-events:none}
.card{
  position:relative;z-index:2;max-width:560px;text-align:left;
  margin:clamp(10px,2.6vw,18px) var(--pad) 0;
  padding:clamp(20px,5.4vw,30px);border-radius:26px;background:#fff;color:var(--ink);
  box-shadow:0 26px 60px rgba(3,12,34,.45);
}
.card__eyebrow{text-align:center;margin-bottom:8px;
  font:600 clamp(12px,3.3vw,14px)/1.4 'Montserrat';letter-spacing:.06em;color:var(--ink-soft)}
.card__h{text-align:center;font:800 clamp(25px,7.2vw,34px)/1.08 'Montserrat';
  letter-spacing:-.01em;text-transform:uppercase;color:#0E2550}
.card__h span{display:block;color:#1B4DA8}
.card__sub{text-align:center;margin-top:10px;font:600 clamp(12px,3.3vw,14px)/1.5 'Montserrat';
  letter-spacing:.04em;color:var(--ink-soft)}
.form{margin-top:22px;display:grid;gap:14px}
.field label,.field legend{display:block;font:600 13px/1.3 'Montserrat';letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px;padding:0}
.field input[type=text]{
  width:100%;min-height:56px;padding:0 18px;border-radius:14px;border:1.5px solid #DAE4F2;
  background:#F7FAFF;color:var(--ink);font:500 16px/1.4 'Montserrat';
  transition:border-color .25s,background .25s;
}
.field input[type=text]::placeholder{color:#9BAFCD}
.field input[type=text]:focus{border-color:#2F6FD8;background:#fff;outline:none}
.field.is-bad input[type=text]{border-color:var(--red);background:#FFF6F6}
.opts{border:0;padding:0;margin:4px 0 0;display:grid;gap:10px}
.field label.opt,.opt{
  display:flex;align-items:center;gap:14px;min-height:56px;padding:0 18px;cursor:pointer;
  border-radius:14px;border:1.5px solid #DAE4F2;background:#F7FAFF;
  font:600 15px/1.3 'Montserrat';letter-spacing:.03em;text-transform:uppercase;color:#28406E;
  transition:border-color .25s,background .25s,color .25s;
}
.opt input{appearance:none;width:24px;height:24px;flex:none;margin:0;border-radius:50%;
  border:2px solid #BFD0E8;background:#fff;transition:border-color .25s,box-shadow .25s}
.opt input[type=checkbox]{border-radius:7px}
.opt input:checked{border-color:#1B4DA8;box-shadow:inset 0 0 0 5px #1B4DA8}
.opt:has(input:checked){border-color:#1B4DA8;background:#EDF3FF;color:#0E2550}
/* плашка согласия — мельче остальных строк (просьба Лены 26.10),
   слово «согласие» внутри неё ведёт к тексту */
.field label.opt--check,.opt--check{text-transform:none;font-weight:500;font-size:12.5px;
  line-height:1.45;letter-spacing:0;align-items:flex-start;padding:12px 16px;min-height:0;
  color:#44608F}
.opt--check input{margin-top:1px;width:22px;height:22px}
.opt--check .linkbtn{color:#1B4DA8;font-weight:700}
.opt--check .linkbtn:hover{color:#2F6FD8}
.err{margin-top:7px;font:600 13px/1.35 'Montserrat';color:var(--red)}
/* телефон для вопросов — ниже кнопки «Отправить» (просьба Лены 26.10) */
.form__phone{display:flex;align-items:center;justify-content:center;gap:10px;
  margin-top:16px;padding-top:16px;border-top:1px solid #E4EBF7;
  font:600 15px/1.3 'Montserrat';letter-spacing:.04em;color:#28406E}
.form__phone .ic{width:20px;height:20px;color:#1B4DA8}
.form__phone a{text-decoration:none;white-space:nowrap}
.form__fail{text-align:center;color:var(--red);font-size:14px}
.done{display:grid;justify-items:center;gap:14px;text-align:center;padding:clamp(18px,6vw,30px) 0 6px}
.done__ic{width:72px;height:72px;border-radius:50%;background:#EDF3FF;position:relative}
.done__ic::after{content:"";position:absolute;left:26px;top:20px;width:18px;height:32px;
  border-right:3px solid #1B4DA8;border-bottom:3px solid #1B4DA8;transform:rotate(42deg)}
.done h3{font:800 clamp(21px,6vw,28px)/1.2 'Montserrat';text-transform:uppercase;color:#0E2550}
.done__text{font-size:15px;color:var(--ink-soft);max-width:30ch}

/* ══════════ ПАРТНЁРЫ ══════════ */
.partners{text-align:center}
.partners__deco{position:absolute;inset:0;z-index:0;pointer-events:none}
.arcs--foot{position:absolute;left:50%;bottom:0;width:min(150%,900px);height:70%;
  transform:translateX(-50%)}
.partners__logo{position:relative;z-index:2;width:clamp(104px,28vw,160px);margin:0 auto}
.partners__h{position:relative;z-index:2;margin-top:16px;white-space:nowrap;
  font:800 clamp(30px,8.6vw,54px)/1 'Montserrat';letter-spacing:.02em;text-transform:uppercase;color:#0E2550}
.partners__h::before,.partners__h::after{content:"";display:inline-block;width:clamp(16px,5vw,46px);
  height:2px;background:#1B3F85;vertical-align:middle;margin:0 clamp(8px,2.4vw,16px)}
.partners__sub{position:relative;z-index:2;margin-top:14px;
  font:700 clamp(13px,3.7vw,16px)/1.4 'Montserrat';letter-spacing:.04em;text-transform:uppercase;color:#17305C}
.slots{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:14px;
  margin:clamp(22px,5.6vw,32px) auto 0}
.slot{display:grid;place-items:center;gap:10px;min-height:128px;padding:16px;
  border:1.5px dashed #C5D5EB;border-radius:16px;background:rgba(255,255,255,.55);
  font:600 12px/1.35 'Montserrat';letter-spacing:.14em;text-transform:uppercase;color:#8CA3C6;text-align:center}
.slot .ic{width:32px;height:32px;color:#B3C6E0}
.partners .rule--wide{margin-top:clamp(24px,6vw,34px)}
.partners__foot{position:relative;z-index:2;margin-top:14px;
  font:600 clamp(12px,3.4vw,15px)/1.4 'Montserrat';letter-spacing:.22em;text-transform:uppercase;color:#17305C}

/* кто сделал сайт — скромная синяя полоса в самом низу страницы */
.made{
  position:relative;text-align:center;
  padding:clamp(22px,6vw,30px) var(--pad) calc(clamp(22px,6vw,30px) + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,#0C2454 0%,#061531 100%);color:#fff;
}
.made__cap{font:600 10px/1.4 'Montserrat';letter-spacing:.2em;text-transform:uppercase;
  color:rgba(173,199,238,.72)}
.made__line{margin-top:8px;font-size:13px;line-height:1.5;color:rgba(197,216,245,.8)}
.made__name{text-decoration:none;color:#fff;font-weight:700;letter-spacing:.01em}
.made__name span{color:#8FB6FF}
.made__name:hover{color:#BFD6FF}
.made__text{color:rgba(173,199,238,.72)}
.made__legal{margin-top:14px;font:500 12px/1.4 'Montserrat'}
.made__legal .linkbtn{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;
  color:rgba(173,199,238,.8)}
.made__legal .linkbtn:hover{color:#fff}

/* ══════════ модальное окно ══════════ */
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}
.modal[hidden]{display:none}
.modal__back{position:absolute;inset:0;background:rgba(4,12,30,.86);
  opacity:0;transition:opacity .3s var(--ease);backdrop-filter:blur(3px)}
.modal.is-open .modal__back{opacity:1}
.modal__box{position:relative;max-width:min(1000px,96vw);max-height:92svh;
  transform:scale(.94);opacity:0;transition:transform .35s var(--ease),opacity .3s var(--ease)}
.modal.is-open .modal__box{transform:none;opacity:1}
.modal__slot img,.modal__slot video{max-width:min(1000px,96vw);max-height:84svh;border-radius:14px;display:block}
.modal__x{position:absolute;right:-6px;top:-50px;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.12);color:#fff;
  font-size:26px;line-height:1;cursor:pointer}
.modal__note{max-width:420px;padding:26px;border-radius:18px;background:#fff;color:var(--ink);text-align:center}
.modal__note p{margin-bottom:16px}
.modal__note--doc{max-width:min(620px,92vw);max-height:80svh;overflow:auto;text-align:left;
  padding:clamp(20px,5vw,30px);-webkit-overflow-scrolling:touch}
.modal__note--doc h3{font:800 clamp(18px,5vw,22px)/1.25 'Montserrat';text-transform:uppercase;
  color:#0E2550;margin-bottom:14px}
.modal__note--doc p{font-size:15px;line-height:1.6;color:#334C77}
.modal__note--doc p:last-child{margin-bottom:0}
.modal__note--doc a{color:#1B4DA8;white-space:nowrap}

/* ══════════ ПЛАНШЕТ ══════════
   От 700px до десктопа — та же мобильная колонка по центру, плюс стрелки. */
@media (min-width:700px){
  .car-arrow{display:grid;place-items:center}
}

/* ══════════ ДЕСКТОП (макеты Лены 26.10.2026 вечером, 1672×941) ══════════
   Тот же принцип, что у телефона: утверждённый экран — картинкой целиком,
   движение только по декору. Включается с 1024px И в альбомной ориентации:
   планшет стоймя остаётся на мобильной колонке, где макет вертикальный.

   Масштаб — от ширины макета: 1 пиксель макета = var(--u) = 100cqw/1672,
   где cqw считается от <main>. Поэтому живые блоки (вкладки, карточки,
   анкета) растут и сжимаются вместе с картинками и не съезжают с них.
   Там, где масштаб сделал бы текст или кнопку слишком мелкими, стоит
   нижний порог max(…px, …) — 15px для текста, 44px для кнопок. */
@media (min-width:1024px) and (orientation:landscape){
  main{max-width:1920px;container-type:inline-size;box-shadow:none;--u:calc(100cqw / 1672)}

  /* текст, который на десктопе уже есть на картинке шапки: глазами не
     виден, голосовой доступ и поиск его по-прежнему читают */
  .noms .sec__head,.past .sec__head,.partners__h,.partners__sub,.partners__foot{
    position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
    clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

  /* ── экраны-картинки ── */
  .slide--hero{min-height:0;display:block}
  .fx-m{display:none}
  .fx-d{display:block}
  .fx-arcs--d{left:0;width:100%;transform:none}

  /* программа: окружности вокруг трёх значков (центры сняты с макета) */
  .fx-halos i{position:absolute;top:58.13%;width:7.3%;aspect-ratio:1;margin:-3.65% 0 0 -3.65%;
    border-radius:50%;border:2px solid rgba(160,196,255,.55);opacity:0;will-change:transform,opacity;
    animation:haloOut 6.5s ease-out infinite}
  .fx-halos i:nth-child(1){left:17.11%}
  .fx-halos i:nth-child(2){left:41.81%;animation-delay:-2.2s}
  .fx-halos i:nth-child(3){left:63.4%;animation-delay:-4.4s}
  .fx-halos i.is-red{border-color:rgba(255,92,92,.6);box-shadow:0 0 18px rgba(230,40,50,.35)}
  @keyframes haloOut{0%{transform:scale(1);opacity:0}12%{opacity:.85}100%{transform:scale(1.75);opacity:0}}

  /* гости: окружности расходятся от арки сцены, а не от центра кадра */
  #guests .fx-rings{left:67.6%;top:40%;width:62%}
  /* дресс-код: на десктопе ролика нет — макет картинкой, кольца вокруг пары */
  #dress .slide__video{display:none}
  #dress .slide__img--d{display:block}
  .fx-rings--dress{left:70%;top:50%;width:58%}

  /* место: маркер на нарисованной карте один раз мягко пульсирует */
  .fx-pin{position:absolute;left:90.31%;top:53.67%;width:4.2%;aspect-ratio:1;margin:-2.1% 0 0 -2.1%;
    border-radius:50%;border:2px solid rgba(255,90,90,.75);opacity:0}
  .in-view .fx-pin{animation:pinPulse 2.6s ease-out .8s 2 both}
  @keyframes pinPulse{0%{transform:scale(.4);opacity:0}20%{opacity:.9}100%{transform:scale(1.8);opacity:0}}
  /* ссылка «построить маршрут» — на нарисованной кнопке десктопа */
  .slide__hit--route{left:65.5%;right:2.8%;top:83.4%;height:9.3%}

  /* ── живые секции: шапка макета картинкой, остальное HTML ── */
  .d-head{display:block;width:100%;height:auto;max-width:none;position:relative;z-index:1;
    -webkit-mask-image:linear-gradient(180deg,#000 93%,transparent);mask-image:linear-gradient(180deg,#000 93%,transparent)}
  .noms,.past{padding:0 0 calc(56*var(--u))}
  .noms .sec__bg,.noms .sec__scrim,.past .sec__bg,.past .sec__scrim{display:none}
  .noms{background:linear-gradient(180deg,#FDFEFF 0%,#F5F8FD 40%,#E6EEF9 100%)}
  .past{background:linear-gradient(180deg,#FAFBFE 0%,#F3F6FC 60%,#EAF0F9 100%)}
  .noms__lines{height:40%}

  .noms__tabs{position:relative;top:auto;grid-template-columns:repeat(4,1fr);gap:calc(12*var(--u));
    margin:calc(4*var(--u)) calc(97*var(--u)) 0;padding:0;background:none}
  .tab{min-height:max(44px,calc(54*var(--u)));font-size:max(12px,calc(16.5*var(--u)));
    letter-spacing:.07em;background:#EDF1F8;color:#14295A}
  .tab:hover{background:#E1E8F4}
  .tab.is-active{background:linear-gradient(180deg,#16387D,#0B2259);color:#fff;
    box-shadow:0 8px 22px rgba(14,40,96,.24)}

  .carousel{margin-top:calc(14*var(--u))}
  .noms .car-track,.past .car-track{margin-inline:0}
  .noms__track{gap:calc(20*var(--u));padding:8px calc(73*var(--u)) 46px;scroll-padding-left:calc(73*var(--u))}
  .nom{flex:0 0 calc(496*var(--u))}
  /* в ленту влезает три карточки — «активная» увеличенная среди трёх смотрелась
     бы случайной, поэтому на десктопе отклик только на наведение */
  .nom__card,.nom.is-active .nom__card{transform:none;border-radius:calc(22*var(--u));
    box-shadow:0 12px 28px rgba(24,54,108,.13)}
  .nom__card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(24,54,108,.18)}
  .nom__pic{aspect-ratio:496/440}
  .nom__pic img{object-position:center 40%}
  .nom__head{left:calc(30*var(--u));right:calc(30*var(--u));bottom:calc(24*var(--u))}
  /* цифры в макете ровные (лининговые), а у Playfair по умолчанию «старинные» */
  .nom__num{font-size:max(30px,calc(58*var(--u)));font-variant-numeric:lining-nums}
  .nom__rule{width:calc(72*var(--u));height:max(3px,calc(4*var(--u)));margin:calc(6*var(--u)) 0 calc(12*var(--u))}
  .nom__title{font-size:max(17px,calc(29*var(--u)))}
  .nom__sub{font-size:max(11px,calc(13*var(--u)))}
  .nom__body{padding:calc(20*var(--u)) calc(30*var(--u)) calc(26*var(--u))}
  .nom__cat{font-size:max(11px,calc(12.5*var(--u)))}
  .nom__text{margin-top:calc(9*var(--u));font-size:max(15px,calc(17*var(--u)))}
  .noms__note{margin-top:calc(18*var(--u));font-size:max(14px,calc(16*var(--u)))}

  /* стрелки — внизу по краям, как в макете; между ними полоса прогресса */
  .noms .car-arrow,.past .car-arrow{top:auto;margin-top:0;
    width:max(44px,calc(64*var(--u)));height:max(44px,calc(64*var(--u)));
    bottom:calc(-1 * max(44px,calc(64*var(--u))))}
  .noms .car-arrow--prev,.past .car-arrow--prev{left:calc(88*var(--u))}
  .noms .car-arrow--next,.past .car-arrow--next{right:calc(84*var(--u))}
  .noms .car-arrow span,.past .car-arrow span{margin:0;width:max(10px,calc(14*var(--u)));height:max(10px,calc(14*var(--u)))}
  .noms .car-arrow--prev span,.past .car-arrow--prev span{transform:translateX(20%) rotate(-135deg)}
  .noms .car-arrow--next span,.past .car-arrow--next span{transform:translateX(-20%) rotate(45deg)}
  .noms .car-foot,.past .car-foot{margin-top:0;min-height:max(44px,calc(64*var(--u)))}
  .prog{max-width:calc(320*var(--u))}

  /* галерея — плитка макета: большое фото слева и четыре малых справа.
     Сетка в 9 узких колонок на «страницу»: большое = 5 колонок × 2 ряда,
     малое = 2 колонки × 1 ряд. Листается страницами (см. app.js). */
  .past__track{display:grid;grid-auto-flow:column;
    grid-template-rows:repeat(2,calc(225*var(--u)));grid-auto-columns:calc(162.7*var(--u));
    gap:calc(14*var(--u));padding:8px calc(48*var(--u)) 46px;scroll-padding-left:calc(48*var(--u))}
  .shot{grid-column:span 2;min-width:0;scroll-snap-align:none}
  .shot--lead{grid-row:1 / span 2;grid-column:span 5;scroll-snap-align:start}
  /* страницы идут порядком разметки: метка — каждый пятый кадр (1, 6, 11, 16) */
  .shot__btn{height:100%;border-radius:calc(18*var(--u));box-shadow:0 12px 28px rgba(24,54,108,.16)}
  .shot img{height:100%}
  .shot--lead img{object-position:center 30%}
  .shot.is-active .shot__btn{transform:none}
  .shot__btn:hover{transform:scale(1.012)}

  /* ── анкета: макет целиком, живая карточка ровно на нарисованной ──
     Нарисованная карточка: x 834…1529, y 86…845. Живая берёт на 4–8px
     шире и выше и всегда не ниже нарисованной — та не просвечивает.
     Если форме мало места (узкий ноутбук), секция растёт, а картинка
     стоит по центру и тает краями в тот же тёмно-синий. */
  .rsvp{display:grid;align-items:center;justify-items:start;text-align:left;
    min-height:calc(941*var(--u));padding:calc(30*var(--u)) 0;background:#03112e}
  .rsvp__top,.rsvp__floor{display:none}
  .rsvp__art{display:block;position:absolute;left:0;right:0;top:50%;z-index:0;
    aspect-ratio:1672/941;transform:translateY(-50%);
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 5%,#000 95%,transparent);
    mask-image:linear-gradient(180deg,transparent,#000 5%,#000 95%,transparent)}
  .rsvp__art img{width:100%;height:100%;max-width:none}
  /* телефон нарисован слева на макете — поверх лежит настоящая ссылка */
  .slide__hit--tel{left:16%;width:26.6%;top:74.2%;height:7.2%;min-height:44px}
  .rsvp .card{margin:0 0 0 calc(830*var(--u));width:calc(704*var(--u));max-width:none;
    min-height:calc(776*var(--u));display:flex;flex-direction:column;justify-content:center;
    padding:calc(38*var(--u)) calc(38*var(--u)) calc(32*var(--u));border-radius:calc(20*var(--u));
    box-shadow:0 30px 70px rgba(2,10,30,.5)}
  .card__eyebrow{font-size:max(12px,calc(15*var(--u)));letter-spacing:.16em;text-transform:uppercase;margin-bottom:calc(10*var(--u))}
  .card__h{font:800 max(26px,calc(54*var(--u)))/1.02 'Playfair Display',Georgia,serif;letter-spacing:0;color:#0A1A48;
    font-variant-numeric:lining-nums}
  .card__h span{color:#1E4BB4;margin-top:calc(4*var(--u))}
  .card__sub{position:relative;margin-top:calc(14*var(--u));padding-top:calc(14*var(--u));
    font-size:max(12px,calc(14.5*var(--u)));letter-spacing:.08em;text-transform:uppercase}
  .card__sub::before{content:"";position:absolute;left:50%;top:0;width:calc(120*var(--u));height:1px;
    margin-left:calc(-60*var(--u));background:linear-gradient(90deg,transparent,#2F6FD8,transparent)}
  .form{margin-top:calc(22*var(--u));gap:calc(12*var(--u))}
  .field label,.field legend{font-size:max(12px,calc(13.5*var(--u)))}
  .field input[type=text]{min-height:max(48px,calc(60*var(--u)));font-size:max(16px,calc(17*var(--u)))}
  .opts{gap:calc(10*var(--u))}
  .field label.opt,.opt{min-height:max(46px,calc(58*var(--u)));font-size:max(13px,calc(15.5*var(--u)))}
  .field label.opt--check,.opt--check{min-height:0;font-size:max(12px,calc(13*var(--u)))}
  .btn--main{min-height:max(50px,calc(64*var(--u)));font-size:max(14px,calc(18*var(--u)));border-radius:calc(14*var(--u));
    background:linear-gradient(180deg,#123A8A 0%,#0A2363 100%)}
  .form__phone{display:none}

  /* ── партнёры: макет целиком; шесть мест под логотипы пока нарисованы ── */
  .partners{padding:0;background:#F2F6FC}
  .partners > .sec__bg,.partners > .sec__scrim,.partners__deco,.partners__logo,.slots,.partners .rule--wide{display:none}
  .partners__art{display:block;width:100%;height:auto;max-width:none}
  .partners__fx{display:block;position:absolute;inset:0;pointer-events:none}
  .partners__fx svg{width:100%;height:100%}
  .partners__fx *{animation-play-state:paused}
  .fx-live .partners__fx *{animation-play-state:running}

  .made{padding-top:calc(26*var(--u));padding-bottom:calc(26*var(--u))}
  .made__line{font-size:max(13px,calc(15*var(--u)))}
}

/* ══════════ БЕРЕЖНЫЙ РЕЖИМ ══════════ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .arc{stroke-dashoffset:0;transition:none}
  .particles{display:none}
  .fx-sheen,.fx-spot,.fx-rings i,.fx-halos i,.fx-pin,.hero__scroll span{animation:none !important}
  .fx-halos,.fx-pin{opacity:0}
  .fx-sheen,.fx-rings{opacity:0}
  .prog__fill{transition:none}
  .pearls circle{display:none}
  .modal__back,.modal__box{transition:none}
}

/* ◄ LQIP: размытые подложки экранов — собраны src/make_lqip.py ► */
/* не править руками: пересобирается `python3 src/make_lqip.py` */
#hero .slide__img{background-image:url("data:image/webp;base64,UklGRhoBAABXRUJQVlA4IA4BAABQBwCdASoUACQAPrlQoE0nJCKiKrgKAOAXCUATpmBvRyFLbHAeaJcoZHHHMIWhUeu1Rc3ZOoP3W5GWQeHTGcVWaB4AAP75GG1jGQwgNpZA6vEhzKMVwIrcKXzVD0Uf8CZiGcGJcEzNFTh2yOXBH97Fvn9v9rxm6mV6XlFCPnfk0wdhqwa/lPAfvszBphnetXDfIZ6EJX9BC9N4NiLaPOYgDgy82ZpVjb4lhzkDc/yeXPwyRC/JJgjNpMzFwU9yx8JPrrnmgWlUf6aNJIzNo7Ln8IYP6OwxxONfITPqSWauRdjxDVHYEz72N4AGvgkNmfpYwkfTior4PPTrIzs7XGMpPyCi9HVa4tp3BJ9KAAA=");background-size:100% 100%;background-repeat:no-repeat}
#invite .slide__img{background-image:url("data:image/webp;base64,UklGRtQAAABXRUJQVlA4IMgAAACwBgCdASoUACQAPrlOn0qnJCKhsBqoAOAXCWMAyrQWVWOOZV/4wUTG3QJ4UMCxAcUubcIUEiSUV8cKv5vLAAD+9+56CJ7dPKaRPzz++vR9r5cViugUa7h6ixKcvmPyNWRybb7RJoqtDuCo8m+ch76cEZMEJGdI0RM9PpTh6HOQDHGe2A0LqSFPCnkpYmskYWIPDsFXWTMVVl8i9YQBXUMXV5KuR+BwjipztYNR+kQzSbeRIswfNsaZGrL5JBN1CKUp4VPxZYAAAA==");background-size:100% 100%;background-repeat:no-repeat}
#program .slide__img{background-image:url("data:image/webp;base64,UklGRvYAAABXRUJQVlA4IOoAAACwBgCdASoUACQAPrlWnUunJSKhqrgN+OAXCWMApawLKtqYizy0lHTcVkUnt6PXa8PyAwK4qCjlkYuxZx2OAAD+9J/l6pUO+iBgInw8RV/PNTn+hyZp+nt9BLFXtoaxB+71bO64y0efhGlm8Y+ZHUOxxp82EK4r36487kftaZrkDQlrnkFkkvgWX6sitYZP9yEIGVnFwflDxdkMDVW8T3JcPYM/ZObpmtyrWuwHi0+r/19h1kXoUtU2Iter9cMppoVF0JrH0czWimrEq6RmdLeri+rrLJ6T/ShlXiKsyhNR/c0c76Q5WJolugA=");background-size:100% 100%;background-repeat:no-repeat}
#guests .slide__img{background-image:url("data:image/webp;base64,UklGRvoAAABXRUJQVlA4IO4AAABwBgCdASoUACQAPrlSokynJKMiKqgA4BcJQBaja0jkAsBMdoDOIIZlYfuXt5uYNRWltByKcX2m66ZdSQAA/vWak5+Owst/rgg1RU3zSE8CQEQWH/bc8ckexnormisajtIlNUU4oZWgi+cwfWkLZFwuBeSy7wuVPNTPY3gaT4i+kzncz9D3Hb236Dx9+GsEBXgHx9Fy5iWkyetQQie4cQZ08/UzHrFWWsgwZhy+pBRs135d76GreIcb4ctWpN2i3qLkkgdUNeHsAIqc55Wv1b8Hkil70ojIHK1HueqJ5k+pI5rcMXymbs02ATtSkMAA");background-size:100% 100%;background-repeat:no-repeat}
#dress .slide__img{background-image:url("data:image/webp;base64,UklGRvoAAABXRUJQVlA4IO4AAACQBgCdASoUACQAPrlQoEwnJKMiKrgMAOAXCUAWnQFDaC4ShYogT5c7Hq8OeX4P/S69ws6TUdU6ZJvQghgoAP7xrVZOmq+RCpAfrJBWqZxWJyUyNSaZY9b3YrMP6BSD89TGWJB8V3f43vmmiDB0vAKEAoxmHe06cI+ECtemKsyo5B7ivlc/M5A6vstvrBLVW/y+Buw9QwYXtCclB0CDQtTdVTyK/dZY+KmQApUBLxym2UYPVEdGnozx8gogSDzbNIz1SIIE3XssGBtiu25AWh19l1pgbYIRUK9b8PwJM0V6Ah0gPwqmgxnZR0K8uAAA");background-size:100% 100%;background-repeat:no-repeat}
#venue .slide__img{background-image:url("data:image/webp;base64,UklGRvIAAABXRUJQVlA4IOYAAAAwBgCdASoUACQAPrlUo0ynJKMiKqgA4BcJQBb8+pV3AeDiP4nYJxTLw4ysuc4voVrK8PLbrdRYf8+oAP70KZo4xw9tJOCTin9psrKKfnMoe3ElUpDQHIeMwjW8OZbHvyv/F0wWYthwXjC/684iMWD+3o3bkdp/rHn4M07L9pBAV6uS6R2HuXw2oiWtF+1m1LKvrouc/PHWplqW1G1LOlOqAQrl+QuImw10OMeBLGV9JM8VziaPvOG3qAYPWTsXKXv3qU+vkvHbsojhKqQaNnpdeYAWZTkFgaAEDwTxlO+C0c4pBAAAAA==");background-size:100% 100%;background-repeat:no-repeat}
.rsvp__top{background-image:url("data:image/webp;base64,UklGRoAAAABXRUJQVlA4IHQAAABQBACdASoUAA8APrlKn0onJCKhsAgA4BcJQBOmUGVsichPYV9iO+oSEPsAAP72qPI+UOdQhrf+lwgVGYKY3W+B2b5+kTszw30OY6qTeBHnaEAxHyWFHTXE7hGUS6AMulFx2hzXIvW3HtPccfPOOXCTqEg4AA==");background-size:100% 100%;background-repeat:no-repeat}
@media (min-width:1024px) and (orientation:landscape){
#hero .slide__img{background-image:url("data:image/webp;base64,UklGRoQAAABXRUJQVlA4IHgAAABQBACdASoUAAsAPrlKn0onJCKhsAgA4BcJaACdMoRwACnd3eSn1iUKFvQAAP7xpjsv6q3aWiRVN8TX0RdC1AfYpjE75TqaSwnyjnQpbeJ8BqDl38d7Ql7EiJB8XM+Sqja8pWbC3aUyBJyLDxyiPthIO40Xf4cQAAA=");background-size:100% 100%;background-repeat:no-repeat}
#invite .slide__img{background-image:url("data:image/webp;base64,UklGRnoAAABXRUJQVlA4IG4AAAAQBACdASoUAAsAPrlKn0onJCKhsAgA4BcJZAC7AB4bENKC4GrUnyQYAAD+9ArGbpe8RbBpTH7tBs3PbIHC2/d0C2oKNwwwJxKzCmwLYPhESis/EQqIs5Nz+xIUUHkBTPoBOupcSos8FqZ138AAAA==");background-size:100% 100%;background-repeat:no-repeat}
#program .slide__img{background-image:url("data:image/webp;base64,UklGRnwAAABXRUJQVlA4IHAAAADQAwCdASoUAAsAPrlKn0onJCKhsAgA4BcJQBYdhCE31vylUImx6gAA/vGE6gpJ2qmhXdtodmZ66Pp1/XP5F1+Yjw5shC0O9d1btIeuw3kt/5NbkB+Qn6rrKyZ59rejRZk+FhqFbVT56hXofXHZAAAA");background-size:100% 100%;background-repeat:no-repeat}
#guests .slide__img{background-image:url("data:image/webp;base64,UklGRnQAAABXRUJQVlA4IGgAAAAQBACdASoUAAsAPrlMn0onJCKhsAgA4BcJZACdMoADTiI+P0EkO+KaAAD+75MUd9vPB9yNPnbnte9cEMTjA4O5M/myL5a0pVsMmwnyWTjfREyk0S4vNe27gtjec6JS2AiPFpEcScqAAA==");background-size:100% 100%;background-repeat:no-repeat}
#dress .slide__img--d{background-image:url("data:image/webp;base64,UklGRnYAAABXRUJQVlA4IGoAAABwBACdASoUAAsAPrlKn0onJCKhsAgA4BcJZgCdMoRwACfrx35/vmZ2vERWoAD+8w10C44uZf7irA7hJ85LP1e8xli/tVObNxsZBRuxMe1/HhyC9gz510KswiDa/U5CTsLy8OKsXR7eAAAA");background-size:100% 100%;background-repeat:no-repeat}
#venue .slide__img{background-image:url("data:image/webp;base64,UklGRngAAABXRUJQVlA4IGwAAAAwBACdASoUAAsAPrlKn0onJCKhsAgA4BcJYgCdL1AB74pW2xHSjl9EUSAA/vG0Rk25aUBWbM7ML8vSEBUIxU5i9DnUybJ4WGFbrwdsJhUcqLTF/PaB2G5JFb5eHYYKj68EeCplGuXj2FhgAAA=");background-size:100% 100%;background-repeat:no-repeat}
.rsvp__art img{background-image:url("data:image/webp;base64,UklGRn4AAABXRUJQVlA4IHIAAAAwBACdASoUAAsAPrlKn0onJCKhsAgA4BcJaACdMoACrfDgA8wADQO5rAAA/u8nQoY74p90JIxnXlBwNqMLlZA3eiAn1bZSccMal6qSqsaQJ7X/fTRsaSzyZFc2C20o6lXSH+3TEL/3GcW18lyCyWoBoAA=");background-size:100% 100%;background-repeat:no-repeat}
.partners__art{background-image:url("data:image/webp;base64,UklGRmQAAABXRUJQVlA4IFgAAAAQBACdASoUAAsAPrlMn0onJCKhsAgA4BcJZQCdACIftwoGmSN1j/dDOAD+8nBgKjkjEr3sAX8OakO4yviz8TGrVoPUrn+TbkWAkOnj8tMneUkYBw74noAA");background-size:100% 100%;background-repeat:no-repeat}
}
/* ◄ конец LQIP ► */
