/* ============================================================
   Свадебный сайт — Даша & Олег · 12.09.2026
   Палитра: тёплая слоновая кость, графит, тонкое золото
   ============================================================ */

:root {
  --bg:        #eef2f7;   /* воздушный светло-голубой   */
  --bg-card:   #ffffff;   /* карточки                   */
  --ink:       #26374b;   /* основной текст (глубокий синий) */
  --ink-soft:  #5f7288;   /* приглушённый сине-серый    */
  --line:      #d1dbe6;   /* тонкие линии               */
  --gold:      #6e869b;   /* акцент — стальной голубой   */
  --gold-deep: #46617c;   /* глубокий синий акцент       */
  --white:     #ffffff;
  --shadow:    0 24px 60px -30px rgba(38, 55, 75, .35);

  --serif: "Cormorant Garamond", "Times New Roman", serif;
  --sans:  "Montserrat", "Helvetica Neue", Arial, sans-serif;

  --maxw: 1100px;
}

/* ---------- Сброс ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: auto; }

/* служебные стили Lenis (обязательны для корректной работы плавного скролла) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-smooth iframe { pointer-events: none; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 300;
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

/* ---------- Типографика ---------- */
.script,
h1, h2, h3 { font-family: var(--serif); font-weight: 400; letter-spacing: .01em; }

.eyebrow {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--gold-deep);
  font-weight: 400;
}

h2.section-title {
  font-size: clamp(52px, 12vw, 150px);
  line-height: .98;
  letter-spacing: -.02em;
  margin: 14px 0 0;
  color: var(--ink);
}
/* заголовки на тёмных секциях — светлые */
.rsvp .section-title { color: var(--white); }

/* тонкий орнамент-разделитель */
.divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 22px auto 0;
  color: var(--gold);
}
.divider::before,
.divider::after {
  content: "";
  height: 1px;
  width: 54px;
  background: linear-gradient(90deg, transparent, var(--gold));
}
.divider::after { background: linear-gradient(90deg, var(--gold), transparent); }
.divider span { font-size: 15px; letter-spacing: .3em; }

/* ---------- Раскладка секций ---------- */
section { position: relative; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.pad  { padding: clamp(70px, 12vh, 130px) 0; }
.center { text-align: center; }

/* появление при скролле — более выразительное */
.reveal {
  opacity: 0;
  transform: translateY(46px) scale(.985);
  filter: blur(6px);
  transition: opacity 1.1s cubic-bezier(.22,.61,.36,1),
              transform 1.1s cubic-bezier(.22,.61,.36,1),
              filter 1.1s ease;
}
.reveal.in { opacity: 1; transform: none; filter: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal { transition: none; filter: none; transform: none; opacity: 1; }
}

/* ============================================================
   ДИНАМИКА
   ============================================================ */

/* полоса прогресса скролла */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0;
  background: linear-gradient(90deg, var(--gold), var(--gold-deep));
  z-index: 200; transition: width .12s ease-out;
}

/* бегущая строка */
.marquee {
  overflow: hidden; white-space: nowrap;
  background: var(--ink); color: var(--white);
  padding: 26px 0; border-block: 1px solid rgba(255,255,255,.08);
}
.marquee__track {
  display: inline-flex; align-items: center; gap: 40px;
  animation: marquee 26s linear infinite;
  will-change: transform;
}
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee span {
  font-family: var(--serif); font-size: clamp(30px, 5vw, 60px);
  font-style: italic; font-weight: 400; letter-spacing: .01em;
}
.marquee span.dot { color: var(--gold); font-style: normal; }
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* анимация появления обложки */
.hero__eyebrow { animation: heroUp 1s ease both .15s; }
.hero__date    { animation: heroUp 1s ease both .4s; }
.hero__scroll  { animation: fadeIn 1.2s ease both .8s; }
@keyframes heroUp { from { opacity: 0; transform: translateY(48px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: .85; } }

/* живой ховер таймлайна */
.tl-item { transition: transform .4s ease; }
.tl-item:hover { transform: translateX(10px); }
.tl-item:hover .tl-time { color: var(--gold); }
.tl-time { transition: color .3s ease; }

/* «выпрыгивание» кружочков дресс-кода по очереди */
.swatches .sw {
  opacity: 0; transform: scale(.3);
  transition: transform .6s cubic-bezier(.34,1.56,.64,1), opacity .45s ease;
}
.reveal.in .swatches .sw { opacity: 1; transform: scale(1); }
.reveal.in .swatches .sw:hover { transform: translateY(-5px) scale(1.1); }

/* ступенчатое появление цифр отсчёта */
.count-cell {
  opacity: 0; transform: translateY(26px) scale(.92);
  transition: transform .75s cubic-bezier(.22,.61,.36,1), opacity .6s ease;
}
.reveal.in .count-cell { opacity: 1; transform: none; }
.reveal.in .count-cell:nth-child(1) { transition-delay: .05s; }
.reveal.in .count-cell:nth-child(2) { transition-delay: .16s; }
.reveal.in .count-cell:nth-child(3) { transition-delay: .27s; }
.reveal.in .count-cell:nth-child(4) { transition-delay: .38s; }

/* БЕЛЫЕ САМОЛЁТИКИ — только в секции календаря */
#date { position: relative; overflow: hidden; }
#date > .wrap { position: relative; z-index: 1; }
.planes { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.plane {
  position: absolute; left: 0; color: #ffffff; opacity: .9;
  filter: drop-shadow(0 4px 10px rgba(60, 80, 105, .35));
}
.plane svg { width: 100%; height: auto; fill: currentColor; display: block; animation: planeBob 3s ease-in-out infinite; }
.plane--1 { top: 12%; width: 34px; animation: flyRight 15s linear infinite 0s; }
.plane--2 { top: 52%; width: 28px; animation: flyRight 19s linear infinite 4s; }
.plane--2 svg { animation-duration: 3.6s; }
.plane--3 { top: 80%; width: 40px; animation: flyRight 13s linear infinite 8s; }
.plane--3 svg { animation-duration: 2.6s; }
@keyframes flyRight {
  from { transform: translateX(-20vw) rotate(6deg); }
  to   { transform: translateX(122vw) rotate(-4deg); }
}
@keyframes planeBob {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  50%      { transform: translateY(-22px) rotate(5deg); }
}

@media (prefers-reduced-motion: reduce) {
  .swatches .sw, .count-cell { opacity: 1; transform: none; transition: none; }
  .cal-grid .day.mark { animation: none; }
  .planes { display: none; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;          /* фон-параллакс обрезается внутри обложки */
  height: 100svh;
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--white);
  background: #b7c5d3;
  overflow: hidden;
}
.hero__bg {
  position: absolute; inset: 0;
  background-image: url("images/hero.jpg?v=3");
  background-size: cover;
  background-position: center 42%;
  transform: scale(1.15);
  will-change: transform;
}
.hero__bg::after {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 92% 42% at 50% 42%, rgba(6,14,30,.42) 0%, rgba(6,14,30,0) 68%),
    linear-gradient(180deg,
      rgba(8,16,34,.36) 0%,
      rgba(8,16,34,.10) 40%,
      rgba(8,12,22,.10) 72%,
      rgba(8,12,22,.34) 100%);
}
.hero__inner { position: relative; z-index: 2; padding: 24px; transform: translateY(-17vh); }
@media (min-width: 900px) { .hero__inner { transform: translateY(-8vh); } }
.hero__eyebrow {
  font-size: 13px; letter-spacing: .5em; text-transform: uppercase;
  font-weight: 400; opacity: .92;
}
.hero__names {
  font-family: var(--serif);
  font-size: clamp(76px, 22vw, 300px);
  line-height: .84;
  letter-spacing: -.025em;
  margin: 10px 0;
  font-weight: 500;
  text-shadow: 0 8px 40px rgba(0,0,0,.35);
}
.hero__names .amp { display: block; font-size: .42em; font-style: italic; color: #dbe6f0; margin: .1em 0; }
.hero__date {
  font-size: 15px; letter-spacing: .42em; text-transform: uppercase;
  margin-top: 14px; font-weight: 400;
}
.hero__scroll {
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%);
  z-index: 2; color: var(--white); opacity: .85;
  font-size: 11px; letter-spacing: .3em; text-transform: uppercase;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.hero__scroll .mouse {
  width: 22px; height: 34px; border: 1px solid rgba(255,255,255,.7); border-radius: 12px;
  position: relative;
}
.hero__scroll .mouse::after {
  content: ""; position: absolute; left: 50%; top: 7px; width: 3px; height: 6px;
  background: #fff; border-radius: 2px; transform: translateX(-50%);
  animation: wheel 1.6s infinite;
}
@keyframes wheel { 0%{opacity:1;top:7px} 100%{opacity:0;top:16px} }

/* ============================================================
   ПРИГЛАШЕНИЕ
   ============================================================ */
.invite p {
  max-width: 640px; margin: 26px auto 0; color: var(--ink-soft);
  font-size: 19px; line-height: 1.9;
}
.invite .big {
  font-family: var(--serif); font-size: clamp(26px, 4vw, 38px);
  color: var(--ink); margin-top: 30px; line-height: 1.3;
}

/* ============================================================
   ОБРАТНЫЙ ОТСЧЁТ
   ============================================================ */
.countdown {
  background: radial-gradient(ellipse at 12% 100%, rgba(232,152,82,.16), rgba(232,152,82,0) 46%), var(--ink);
  color: var(--white); text-align: center;
}
.countdown .eyebrow { color: #a9c1d4; }
.count-grid {
  display: flex; justify-content: center; gap: clamp(16px, 5vw, 64px);
  margin-top: 34px; flex-wrap: wrap;
}
.count-cell { min-width: 78px; }
.count-cell .num {
  font-family: var(--serif); font-size: clamp(42px, 7vw, 76px); line-height: 1;
  font-weight: 500;
}
.count-cell .lbl {
  font-size: 11px; letter-spacing: .28em; text-transform: uppercase;
  color: #90a6bd; margin-top: 10px;
}

/* ============================================================
   ПРОГРАММА ДНЯ (таймлайн)
   ============================================================ */
.timeline { max-width: 620px; margin: 46px auto 0; }
.tl-item {
  display: grid; grid-template-columns: 96px 1fr; gap: 26px;
  padding: 26px 0; border-bottom: 1px solid var(--line); align-items: baseline;
}
.tl-item:last-child { border-bottom: none; }
.tl-time { font-family: var(--serif); font-size: 30px; color: var(--gold-deep); }
.tl-body h3 { font-size: 24px; margin: 0 0 4px; }
.tl-body p  { margin: 0; color: var(--ink-soft); font-size: 15px; }

/* тёплые закатные лучи из угла (секция «Программа дня») */
#program { position: relative; overflow: hidden; }
#program > .wrap { position: relative; z-index: 1; }
.sun-rays {
  position: absolute; z-index: 0; pointer-events: none;
  top: 0; left: 0; width: 135%; height: 135%;
  transform-origin: 0% 0%;
  background:
    repeating-conic-gradient(from 78deg at 0% 0%,
      rgba(236,174,92,0)    0deg 3deg,
      rgba(236,174,92,.20)  3deg 4.6deg,
      rgba(236,174,92,0)    4.6deg 8.5deg),
    radial-gradient(circle at 0% 0%, rgba(250,206,132,.55), rgba(250,206,132,0) 52%);
  -webkit-mask: radial-gradient(circle at 0% 0%, #000 0, #000 10%, transparent 60%);
          mask: radial-gradient(circle at 0% 0%, #000 0, #000 10%, transparent 60%);
  animation: raysShimmer 22s ease-in-out infinite alternate;
}
@keyframes raysShimmer {
  from { transform: rotate(-2.5deg) scale(1);    opacity: .78; }
  to   { transform: rotate(2.5deg)  scale(1.06); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .sun-rays { animation: none; } }

/* ============================================================
   ЛОКАЦИЯ
   ============================================================ */
.venue { background: var(--bg-card); }
.venue-card { text-align: center; max-width: 680px; margin: 40px auto 0; }
.venue-card .name { font-family: var(--serif); font-size: clamp(30px,5vw,46px); }
.venue-card .addr { color: var(--ink-soft); margin-top: 10px; letter-spacing: .04em; }
.venue-card .venue-note {
  margin-top: 12px; color: var(--gold-deep); font-size: 13px;
  letter-spacing: .12em; text-transform: uppercase;
}
.btn {
  display: inline-block; margin-top: 30px;
  padding: 15px 40px; border: 1px solid var(--gold);
  color: var(--gold-deep); background: transparent;
  font-family: var(--sans); font-size: 12px; letter-spacing: .28em; text-transform: uppercase;
  text-decoration: none; transition: all .35s ease; cursor: pointer;
}
.btn:hover { background: var(--gold); color: #fff; }

/* ============================================================
   КАЛЕНДАРЬ
   ============================================================ */
.calendar-wrap { max-width: 460px; margin: 44px auto 0; text-align: center; }
.cal-head { font-family: var(--serif); font-size: 30px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 24px; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.cal-grid .dow {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-soft); padding-bottom: 10px;
}
.cal-grid .day {
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
  font-size: 16px; color: var(--ink); border-radius: 50%;
}
.cal-grid .day.empty { color: transparent; }
.cal-grid .day.mark {
  color: #fff; background: var(--gold); font-weight: 500;
  box-shadow: 0 8px 22px -8px rgba(110,134,155,.9);
  position: relative;
  animation: datePulse 2.6s ease-in-out infinite;
}
@keyframes datePulse {
  0%, 100% { transform: scale(1);    box-shadow: 0 8px 22px -8px rgba(110,134,155,.85); }
  50%      { transform: scale(1.07); box-shadow: 0 16px 34px -8px rgba(110,134,155,1); }
}
.cal-grid .day.mark::after {
  content: "♥"; position: absolute; top: -18px; font-size: 12px; color: var(--gold);
}

/* ============================================================
   ГАЛЕРЕЯ
   ============================================================ */
.gallery { background: var(--bg); }
.gal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 44px; }
.gal-grid .cell {
  aspect-ratio: 3/4; overflow: hidden; background: #e6ded1;
}
.gal-grid .cell.tall { grid-row: span 2; aspect-ratio: 3/5; }
.gal-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.gal-grid .cell:hover img { transform: scale(1.06); }
.gal-empty {
  display: flex; align-items: center; justify-content: center; height: 100%;
  color: var(--ink-soft); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-align: center; padding: 12px;
}

/* ============================================================
   ДРЕСС-КОД
   ============================================================ */
.dresscode { background: var(--bg-card); }
.dc-intro {
  max-width: 620px; margin: 26px auto 0; color: var(--ink-soft);
  font-size: 18px; line-height: 1.85;
}
.dc-groups {
  display: flex; justify-content: center; gap: clamp(30px, 8vw, 100px);
  margin-top: 50px; flex-wrap: wrap;
}
.dc-group { max-width: 320px; }
.dc-group h3 {
  font-size: 30px; margin: 0 0 6px; color: var(--ink);
}
.dc-group > p {
  color: var(--ink-soft); font-size: 15px; margin: 0 0 22px; min-height: 44px;
}
.swatches {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 12px;
}
.sw {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--c);
  border: 1px solid rgba(43, 40, 36, .12);
  box-shadow: 0 6px 14px -6px rgba(43, 40, 36, .4);
  transition: transform .3s ease;
}
.sw:hover { transform: translateY(-4px) scale(1.08); }
.dc-note {
  margin-top: 48px; color: var(--ink-soft); font-style: italic;
  font-family: var(--serif); font-size: 20px;
}

/* ============================================================
   КОЛЕЧКИ ДЫМА по кнопке (левый угол дресс-кода)
   ============================================================ */
.smoke-corner { position: absolute; left: 24px; bottom: 24px; z-index: 3; text-align: left; }
.smoke-stage {
  position: relative; width: 150px; height: 300px;
  margin: 0 0 8px; pointer-events: none;
}
.smoke-ring {
  position: absolute; bottom: 0; left: 45px;
  width: 60px; height: 40px; border-radius: 50%;
  background: radial-gradient(ellipse at center,
    rgba(112,133,156,0)   0 30%,
    rgba(112,133,156,.55) 42%,
    rgba(112,133,156,.16) 56%,
    rgba(112,133,156,0)   70%);
  filter: blur(3px);
  transform: translateY(0) scale(.5);
  opacity: 0;
}
.smoke-btn { margin-top: 0; padding: 13px 26px; font-size: 11px; }

@media (max-width: 720px) {
  .smoke-corner { left: 14px; bottom: 14px; }
}

/* ============================================================
   АНКЕТА (RSVP)
   ============================================================ */
.rsvp {
  background: radial-gradient(ellipse at 88% 0%, rgba(232,152,82,.15), rgba(232,152,82,0) 48%), var(--ink);
  color: var(--white);
}
.rsvp .eyebrow { color: #a9c1d4; }
.rsvp .lead { max-width: 560px; margin: 24px auto 0; color: #c2d0dd; text-align: center; }
.rsvp-form { max-width: 620px; margin: 46px auto 0; }
.field { margin-bottom: 30px; }
.field > label.q {
  display: block; font-family: var(--serif); font-size: 22px; margin-bottom: 14px; color: #fdfaf4;
}
.field input[type="text"],
.field input[type="number"],
.field textarea {
  width: 100%; background: transparent; border: none; border-bottom: 1px solid #43566c;
  color: #fff; font-family: var(--sans); font-size: 16px; font-weight: 300;
  padding: 12px 2px; transition: border-color .3s;
}
.field input::placeholder, .field textarea::placeholder { color: #6d8296; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--gold); }
.field textarea { resize: vertical; min-height: 60px; }

.opts { display: flex; flex-direction: column; gap: 12px; }
.opts.row { flex-direction: row; flex-wrap: wrap; gap: 12px; }
.opt {
  display: flex; align-items: center; gap: 12px; cursor: pointer;
  padding: 13px 20px; border: 1px solid #3b4d61; border-radius: 40px;
  transition: all .25s ease; user-select: none; font-size: 15px;
}
.opts.row .opt { flex: 0 0 auto; }
.opt:hover { border-color: var(--gold); }
.opt input { accent-color: var(--gold); width: 16px; height: 16px; }
.opt.checked { border-color: var(--gold); background: rgba(110,134,155,.18); }

/* условные блоки */
.conditional { display: none; }
.conditional.show { display: block; animation: fade .4s ease; }
@keyframes fade { from{opacity:0; transform:translateY(-6px)} to{opacity:1;transform:none} }

.rsvp .btn { border-color: var(--gold); color: #fff; width: 100%; padding: 18px; margin-top: 8px; font-size: 13px; }
.rsvp .btn:hover { background: var(--gold); }

.form-status { text-align: center; margin-top: 22px; font-size: 14px; min-height: 22px; letter-spacing: .04em; }
.form-status.ok  { color: #a9d3a0; }
.form-status.err { color: #e0a3a3; }

.rsvp-success {
  display: none; text-align: center; max-width: 520px; margin: 30px auto 0;
}
.rsvp-success.show { display: block; animation: fade .5s ease; }
.rsvp-success .ic { font-size: 46px; color: var(--gold); }
.rsvp-success h3 { font-size: 32px; margin: 10px 0; color: #fff; }
.rsvp-success p  { color: #c2d0dd; }

/* ============================================================
   ФУТЕР
   ============================================================ */
.foot { text-align: center; padding: 60px 24px; color: var(--ink-soft); }
.foot .names { font-family: var(--serif); font-size: 40px; color: var(--ink); }
.foot .date  { letter-spacing: .32em; text-transform: uppercase; font-size: 12px; margin-top: 10px; }

/* ============================================================
   Адаптив
   ============================================================ */
@media (max-width: 720px) {
  body { font-size: 16px; }
  .tl-item { grid-template-columns: 74px 1fr; gap: 16px; }
  .tl-time { font-size: 24px; }
  .gal-grid { grid-template-columns: repeat(2, 1fr); }
  .gal-grid .cell.tall { grid-row: span 1; aspect-ratio: 3/4; }
  .count-grid { gap: 20px 30px; }
}

/* ============================================================
   КИНО-РЕЖИМ «ПУТЬ ЗАКАТА»: небо + солнце + звёзды + панели
   ============================================================ */

/* фиксированные слои фона */
html, body { background: transparent; }
.sky   { position: fixed; inset: 0; z-index: -3; background: linear-gradient(180deg, #96b9d6, #cedee9); will-change: background; }
.stars { position: fixed; inset: 0; z-index: -2; pointer-events: none; opacity: 0; }
.star  { position: absolute; border-radius: 50%; background: #fff; box-shadow: 0 0 4px rgba(255,255,255,.8); }
.sun {
  position: fixed; left: 50%; top: 16vh;
  width: clamp(140px, 22vw, 260px); aspect-ratio: 1; transform: translateX(-50%);
  border-radius: 50%; z-index: -2; pointer-events: none; will-change: top, background;
  background: radial-gradient(circle, rgba(255,247,224,1) 0%, rgba(255,236,190,.55) 42%, rgba(255,236,190,0) 70%);
}

/* секции прозрачны — небо видно насквозь */
section, .invite, .venue, .dresscode, .hookah, .countdown, .rsvp, .foot { background: transparent !important; }
.hero__bg::after { /* оставляем тёплый оверлей обложки */ }

/* фрост-стеклянные панели контента поверх неба */
.invite > .wrap, #program > .wrap, .venue > .wrap, #date > .wrap,
.dresscode > .wrap, .hookah > .wrap, .countdown > .wrap, .rsvp > .wrap {
  background: rgba(16, 20, 38, 0.34);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  backdrop-filter: blur(18px) saturate(1.15);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 30px;
  box-shadow: 0 40px 90px -50px rgba(0,0,0,.7);
  padding: clamp(42px, 6vw, 84px) clamp(24px, 5vw, 60px);
}

/* светлый текст поверх неба */
.section-title { color: #fff !important; }
.eyebrow { color: #f4d6a8 !important; }
.invite p, .invite .big, .tl-body p, .dc-intro, .dc-note,
.venue-card .addr, .hookah-text, .rsvp .lead, .count-cell .lbl {
  color: rgba(255,255,255,0.84) !important;
}
.tl-time, .dc-group h3, .venue-card .name, .cal-head,
.count-cell .num, .rsvp-success h3 { color: #fff !important; }
.cal-grid .dow { color: rgba(255,255,255,0.6) !important; }
.cal-grid .day { color: rgba(255,255,255,0.92) !important; }
.venue-card .venue-note, .invite-sign { color: #f4d6a8 !important; }
.divider { color: #f2c98a; }
.divider span { color: #f2c98a; }

/* кнопки — светлые контуры на стекле */
.btn { border-color: rgba(255,255,255,.55); color: #fff; }
.btn:hover { background: rgba(255,255,255,.14); border-color: #fff; }

/* футер тоже на стекле */
.foot .names { color: #fff; }
.foot .date { color: rgba(255,255,255,.7); }

@media (prefers-reduced-motion: reduce) {
  .sky { background: linear-gradient(180deg, #4a5f78, #b98a4e) !important; }
}

/* ============================================================
   ВСПЫШКА ПРИ ОТПРАВКЕ АНКЕТЫ — сияние, лучи, россыпь звёзд
   ============================================================ */
.burst { position: fixed; inset: 0; pointer-events: none; z-index: 400; overflow: hidden; }
.burst__glow {
  position: absolute; left: 50%; top: 50%; width: 60px; height: 60px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,236,188,.95) 0%, rgba(255,206,130,.5) 38%, rgba(255,206,130,0) 70%);
  transform: translate(-50%,-50%) scale(0); mix-blend-mode: screen;
}
.burst__ray {
  position: absolute; left: 50%; top: 50%; width: 3px; height: 46vh; margin-left: -1.5px;
  transform-origin: 50% 0%;
  background: linear-gradient(to bottom, rgba(255,234,182,.9) 0%, rgba(255,234,182,0) 88%);
}
.burst__star {
  position: absolute; left: 50%; top: 50%; font-size: 16px; color: #ffe7b0;
  text-shadow: 0 0 8px rgba(255,220,150,.9); will-change: transform, opacity;
}
