/*
  Компьютер: сетка макета шириной 873 px, 1rem = 10 px макета — страница масштабируется целиком.
  Телефон (до 1023 px): своя раскладка на сетке 390 px, 1rem = 10 px.
*/
:root {
  --gold: #d9b26e;
  --gold-light: #f2d595;
  --gold-text: linear-gradient(180deg, #f8e2a8 0%, #e3be78 45%, #c99a52 78%, #e8c682 100%);
  --rust-text: linear-gradient(180deg, #b8612a 0%, #9c4a1c 55%, #b5612c 100%);
  --dark: #04140f;
  --navy: #0b1a2c;
  --ink: #1b1814;
  --ink-soft: #2e2a24;
  --rust: #b06a36;
  --serif: "Playfair Display", "Times New Roman", serif;
  --sans: "Manrope", "Segoe UI", Arial, sans-serif;
  --cond: "Roboto Condensed", "Arial Narrow", sans-serif;
  --narrow-serif: "Oranienbaum", "Playfair Display", serif;
}

html { font-size: calc(min(100vw, 1600px) / 87.3); }
*, *::before, *::after { box-sizing: border-box; }
/* Р¦РёС„СЂС‹ РѕРґРЅРѕР№ РІС‹СЃРѕС‚С‹ (Сѓ Playfair РїРѕ СѓРјРѕР»С‡Р°РЅРёСЋ В«СЃС‚Р°СЂРѕСЃС‚РёР»СЊРЅС‹РµВ»). РЁРѕСЂС‚РєР°С‚ font СЃР±СЂР°СЃС‹РІР°РµС‚ СЌС‚Рѕ СЃРІРѕР№СЃС‚РІРѕ, РїРѕСЌС‚РѕРјСѓ !important. */
* { font-variant-numeric: lining-nums !important; }
body {
  margin: 0;
  background: var(--dark);
  color: #fff;
  font-family: var(--sans);
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
p, h1, h2, h3, ul { margin: 0; padding: 0; }
ul { list-style: none; }
img { display: block; max-width: none; }
.num { font-family: var(--serif); font-variant-numeric: lining-nums; }

section {
  position: relative;
  overflow: clip;
  background: var(--bg) center top / 100% 100% no-repeat;
}
.stage { position: relative; width: 87.3rem; margin: 0 auto; }
.stage > * { position: absolute; }

/* ---------- Логотипы ---------- */
.logos { display: flex; align-items: center; }
.logo--left { width: auto; }
.logo--right { width: auto; }
.logos__sep { width: 1px; background: rgba(255, 255, 255, .45); }

.ornament { display: flex; align-items: center; justify-content: center; gap: .9rem; left: 0; right: 0; }
.ornament span { width: 8.4rem; height: 1px; background: linear-gradient(90deg, transparent, rgba(217, 178, 110, .85)); }
.ornament span:last-child { transform: scaleX(-1); }
.ornament i { width: .75rem; height: .75rem; border: 1px solid var(--gold); transform: rotate(45deg); }

/* ---------- Первый экран ---------- */
.hero { background-color: var(--navy); }
/* Затемнение под заголовком: текст читается на любом фото */
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 30rem 26rem at 50% 50%, rgba(6, 14, 28, .82) 0%, rgba(6, 14, 28, .6) 55%, rgba(6, 14, 28, 0) 100%),
    linear-gradient(180deg, rgba(6, 14, 28, .55) 0%, rgba(6, 14, 28, 0) 28%);
}
.hero .stage { z-index: 1; }
.hero .stage { height: 51rem; }
.hero__photo { display: none; }
.hero__countdown { left: 0; right: 0; top: 37.9rem; display: flex; flex-direction: column; align-items: center; }
.hero__countdown .countdown { margin-top: 1.5rem; }
.logos--hero { left: 26rem; top: 1.7rem; height: 7.2rem; gap: 3.5rem; }
.logos--hero .logo--left { height: 3.2rem; }
.logos--hero .logo--right { height: 7.2rem; }
.logos--hero .logos__sep { height: 5.2rem; }
.hero__text { inset: 0; }
.hero__text > * { position: absolute; left: 0; right: 0; text-align: center; line-height: 1; }
.hero__kicker {
  top: 11.5rem;
  font: 500 1.75rem/1 var(--sans); letter-spacing: .071em; text-transform: uppercase; color: #e2bd76;
}
.hero__title { font-weight: 400; top: 0; bottom: 0; }
.hero__line1 {
  position: absolute; left: 0; right: 0; top: 13.67rem;
  font: 500 5.93rem/1 var(--serif); text-transform: uppercase; white-space: nowrap; letter-spacing: -.01em;
  transform: translateX(.4rem);
  text-shadow: 0 .3rem 1.6rem rgba(0, 0, 0, .45);
}
.hero__line2 {
  position: absolute; left: 0; right: 0; top: 18.65rem;
  display: flex; justify-content: center; align-items: flex-start; gap: .55rem;
  transform: translateX(.9rem);
}
.hero__do {
  margin-top: .92rem;
  font: 500 5.93rem/1 var(--serif); text-transform: uppercase;
  text-shadow: 0 .3rem 1.6rem rgba(0, 0, 0, .45);
}
.hero__script { width: 22.4rem; height: auto; }
.hero__script--text {
  width: auto; margin-top: .5rem;
  font: 400 10rem/1 "Marck Script", cursive;
  background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero__year {
  top: 26.72rem;
  font: 700 2.95rem/1 var(--serif); letter-spacing: .09em; transform: translateX(1rem); color: #f5efe3;
  text-shadow: 0 .2rem 1rem rgba(0, 0, 0, .45);
}
.ornament--hero { top: 31.1rem; }
.hero__subtitle {
  top: 32.8rem;
  font: 500 1.63rem/1.8rem var(--sans) !important; letter-spacing: .03em; text-transform: uppercase;
  text-shadow: 0 .2rem 1rem rgba(0, 0, 0, .55);
}

/* ---------- Дата, кнопка, посадочный талон ---------- */
.info { background-color: var(--dark); }
.info .stage { height: 42.2rem; }
.facts { left: 9.4rem; top: 2.4rem; display: grid; grid-template-columns: 16.5rem 16.2rem 19rem auto; }
.fact { display: flex; align-items: center; gap: 1.6rem; height: 3.4rem; }
.icon { width: 3.4rem; height: 3.4rem; color: var(--gold); flex: none; }
.fact__text { display: flex; flex-direction: column; line-height: 1; transform: translateY(.35rem); }
.fact--big-top .fact__text { transform: none; }
.fact__top { font: 500 1.15rem/1 var(--sans); text-transform: uppercase; color: #fff; letter-spacing: .01em; }
.fact__bottom { margin-top: .46rem; font: 600 1.72rem/1 var(--sans); text-transform: uppercase; color: var(--gold-light); }
.fact__bottom.num { font: 700 1.85rem/1 var(--serif); }
.fact--big-top .fact__top { font: 700 1.85rem/1 var(--serif); }
.fact--big-top .fact__bottom { margin-top: .5rem; font: 500 1.43rem/1 var(--sans); color: var(--gold); }

/* Кнопка карты: крупная, «выпуклая», мягко пульсирует, чтобы на неё нажали */
.btn-map {
  left: 17.15rem; top: 7.3rem; width: 53rem; height: 6.8rem;
  display: flex; align-items: center; gap: 1.6rem; padding: 0 1.1rem 0 1rem;
  border-radius: 99rem; border: 1px solid #fde7ad;
  background: linear-gradient(180deg, #fff0bf 0%, #f6d58c 38%, #e7b765 70%, #d39a48 100%);
  box-shadow:
    0 .55rem 0 #8e5c1f,
    0 1.1rem 2.4rem rgba(0, 0, 0, .6),
    0 0 3rem rgba(246, 204, 120, .45),
    inset 0 .25rem 0 rgba(255, 252, 232, .95),
    inset 0 -.35rem .5rem rgba(150, 95, 30, .35);
  color: #1b1307; text-decoration: none; text-align: left;
  transition: transform .12s, box-shadow .12s, filter .2s;
}
.btn-map::after {
  content: ""; position: absolute; inset: -.6rem; border-radius: 99rem; pointer-events: none;
  border: .2rem solid rgba(248, 214, 140, .75);
  animation: btn-pulse 2.2s ease-out infinite;
}
@keyframes btn-pulse { 0% { transform: scale(.97); opacity: .9; } 100% { transform: scale(1.1, 1.35); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .btn-map::after { animation: none; opacity: .6; } }
.btn-map:hover { filter: brightness(1.05); }
.btn-map:active { transform: translateY(.45rem); box-shadow: 0 .1rem 0 #8e5c1f, 0 .4rem 1rem rgba(0, 0, 0, .5), inset 0 .25rem 0 rgba(255, 252, 232, .9); }
.btn-map__icon {
  width: 4.8rem; height: 4.8rem; flex: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 35% 30%, #3a2a12, #120c04); color: #f6d58c;
  box-shadow: inset 0 .15rem .3rem rgba(255, 220, 150, .25), 0 .15rem .3rem rgba(90, 55, 15, .5);
}
.btn-map__icon svg { width: 2.4rem; height: 2.4rem; }
.btn-map__body { flex: 1; display: flex; flex-direction: column; gap: .45rem; line-height: 1; }
.btn-map__hint { font: 700 1.1rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: #6f4612; }
.btn-map__text { font: 800 1.95rem/1 var(--sans); letter-spacing: .01em; text-transform: uppercase; color: #1b1307; }
.btn-map__arrow {
  width: 4.2rem; height: 4.2rem; flex: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #1b1307; color: #f6d58c;
  animation: btn-nudge 1.6s ease-in-out infinite;
}
.btn-map__arrow svg { width: 2.1rem; height: 2.1rem; }
@keyframes btn-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(.45rem); } }
@media (prefers-reduced-motion: reduce) { .btn-map__arrow { animation: none; } }

.divider {
  display: none;
  left: 14rem; top: 13.8rem; width: 59.8rem; height: 1px; margin: 0; border: 0;
  background: linear-gradient(90deg, transparent, rgba(208, 178, 120, .5) 25%, rgba(208, 178, 120, .5) 75%, transparent);
}

/* Посадочный талон: внутри — свои координаты талона 706×235 */
.ticket {
  left: 9.12rem; top: 17.9rem; width: 70.66rem; height: 23.53rem;
  display: flex; transform: rotate(-2.35deg);
  border-radius: 1.2rem; color: var(--ink);
  background: linear-gradient(170deg, #fbf1dc 0%, #f6e7cc 55%, #f1dfc0 100%);
  box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 240, 210, .4) inset;
}
.ticket::before {
  content: ""; position: absolute; inset: .55rem; border-radius: .8rem; pointer-events: none;
  border: 1px solid rgba(176, 120, 64, .28);
}
.ticket__main { position: relative; width: 61rem; height: 100%; }
.ticket__main > * { position: absolute; }
.ticket__head { left: 3.8rem; top: 1.3rem; right: 5.5rem; height: 4.6rem; }
.ticket__logos { display: flex; align-items: center; height: 100%; gap: 2.7rem; }
.ticket__logo--left { height: 2.6rem; width: auto; }
.ticket__logo--right { height: 4.6rem; width: auto; }
.ticket__logo-sep { width: 1px; height: 3.5rem; background: rgba(40, 36, 30, .55); }
.ticket__brand { position: absolute; right: 0; top: 1.37rem; display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
.ticket__brand-title { font: 500 1.55rem/1 var(--serif); letter-spacing: .13em; text-transform: uppercase; color: var(--rust); }
.ticket__brand-sub { margin-top: .5rem; font: 500 1.05rem/1 var(--serif); letter-spacing: .12em; text-transform: uppercase; color: var(--rust); }
.ticket__brand-plane { position: absolute; right: -4.1rem; top: .1rem; width: 3rem; height: 3rem; color: #c58a4a; }
.ticket__route { left: 3.8rem; top: 7.23rem; right: 2.2rem; display: flex; align-items: flex-start; }
.ticket__point { display: flex; flex-direction: column; line-height: 1; }
.ticket__label { font: 700 1.07rem/1 var(--sans); text-transform: uppercase; color: var(--ink); }
.ticket__city {
  margin-top: 1.33rem; font: 400 3.62rem/1 var(--narrow-serif); text-transform: uppercase;
  white-space: nowrap; color: #15120f; -webkit-text-stroke: .07rem currentColor;
}
.ticket__code { margin-top: .6rem; font: 700 1.29rem/1 var(--sans); }
.ticket__flight { display: flex; align-items: center; gap: .9rem; width: 13rem; margin: 2.1rem 1.6rem 0 1.4rem; color: #15120f; }
.ticket__flight span { flex: 1; border-top: 2px dotted rgba(30, 26, 20, .7); }
.ticket__plane { width: 3.3rem; height: 3.3rem; flex: none; }
.ticket__point--to { margin-left: auto; margin-right: 0; position: absolute; left: 28rem; }
.ticket__details {
  left: 3.8rem; right: 2.2rem; top: 15.75rem; padding-top: 1.75rem;
  border-top: 1px solid rgba(176, 120, 64, .35);
  display: grid; grid-template-columns: 14.8rem 13.2rem 13.9rem auto;
}
.ticket__detail { display: flex; align-items: flex-start; gap: 1.5rem; }
.ticket__detail .icon { width: 2.6rem; height: 2.6rem; margin-top: .55rem; color: var(--ink); }
.ticket__detail-text { display: flex; flex-direction: column; line-height: 1; }
.ticket__detail-label { font: 500 .95rem/1 var(--sans); text-transform: uppercase; color: var(--ink-soft); }
.ticket__detail-value { margin-top: .5rem; font: 700 1.2rem/1.3 var(--sans); text-transform: uppercase; white-space: nowrap; }
.ticket__detail-value.num { margin-top: .55rem; font: 700 1.62rem/1 var(--serif); }
.ticket__detail-note { margin-top: .45rem; font: 500 .95rem/1 var(--sans); text-transform: uppercase; color: var(--ink-soft); }
.ticket__detail-value:not(.num) + .ticket__detail-note { margin-top: .15rem; font: 700 1.2rem/1.3 var(--sans); color: var(--ink); }
.ticket__stub { position: relative; flex: 1; border-left: 1px dashed rgba(150, 105, 60, .45); }
.ticket__barcode {
  position: absolute; left: 1.7rem; top: 2.2rem; width: 3.9rem; height: 19rem;
  background: repeating-linear-gradient(180deg,
    #14110e 0 .2rem, transparent .2rem .35rem, #14110e .35rem .45rem, transparent .45rem .7rem,
    #14110e .7rem 1rem, transparent 1rem 1.12rem, #14110e 1.12rem 1.22rem, transparent 1.22rem 1.45rem,
    #14110e 1.45rem 1.6rem, transparent 1.6rem 1.75rem);
}

/* ---------- Программа ---------- */
.program-section { background-color: var(--dark); }
.program-section .stage { height: 32.2rem; }
.program-section .stage > * { left: 0; right: 0; text-align: center; }
.eyebrow { font: 500 1.6rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; }
.eyebrow--gold { top: 1.35rem; color: #e2bd76; }
.section-title { font: 500 4.02rem/1 var(--serif); text-transform: uppercase; }
.section-title--gold {
  top: 3.15rem;
  background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ornament--program { top: 8.15rem; }
.ornament--program span { width: 5.2rem; }
.program { top: 7.95rem; display: flex; padding-left: 4.4rem; }
.program__item { width: 19.17rem; display: flex; flex-direction: column; align-items: center; }
.program__circle {
  width: 16.1rem; height: 16.1rem; border-radius: 50%; overflow: hidden; flex: none;
  border: .25rem solid #dcb46c;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .45), 0 0 1.8rem rgba(220, 180, 108, .25);
}
.program__circle img { width: 100%; height: 100%; object-fit: cover; }
.program__body { display: flex; flex-direction: column; align-items: center; }
.program__title {
  margin-top: .29rem;
  font: 600 1.57rem/1.8rem var(--sans); text-transform: uppercase; color: #fff;
}
.program__title-line { display: block; }
.program__text { margin-top: .44rem; font: 400 1.3rem/1.5rem var(--sans); color: rgba(255, 255, 255, .88); }

/* ---------- Дресс-код ---------- */
.dress { background-color: #f6e6c9; color: var(--ink); }
.dress .stage { height: 33.2rem; }
.dress .stage > .eyebrow, .dress .stage > .section-title, .dress .stage > .dress__text, .dress .stage > .dress__subtitle { left: 0; right: 0; text-align: center; }
.eyebrow--dark { top: 1.54rem; font-size: 1.65rem; letter-spacing: .27em; color: var(--ink); }
.section-title--rust {
  top: 4rem; font: 400 3.45rem/1 var(--narrow-serif); -webkit-text-stroke: .06rem #a3501f;
  background: var(--rust-text); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.amp { color: #c49a52; padding: 0 .02em; }
.dress__subtitle { top: 7.4rem; font: 600 1.5rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #b48c4a; }
.dress__text { top: 7.65rem; font: 400 1.42rem/1.65rem var(--sans); color: var(--ink-soft); }
.dress__cards { left: 22.25rem; top: 12.05rem; display: flex; gap: 1.2rem; }
.card {
  height: 12rem; width: 20.75rem;
  background: rgba(255, 251, 242, .62); border-radius: .9rem;
  box-shadow: 0 .3rem 1.4rem rgba(120, 80, 30, .12);
}
.card + .card { width: 22.5rem; }
.card__photo { display: none; }
.card__body { padding: .83rem .4rem 0 2.15rem; }
.card__title { font: 700 1.37rem/1 var(--sans); letter-spacing: .02em; text-transform: uppercase; color: var(--ink); }
.card__list { margin-top: 1.05rem; }
.card__list li {
  position: relative; padding-left: 2.4rem; margin-bottom: .55rem;
  font: 500 1.3rem/1.48rem var(--sans); color: #2a2622; white-space: nowrap;
}
.card__list li::before {
  content: ""; position: absolute; left: .2rem; top: .38rem;
  width: .8rem; height: .8rem; background: #f0b058; border: .22rem solid #d9822b; transform: rotate(45deg);
}
.palette { left: 22.13rem; top: 25.65rem; display: flex; }
.palette__item { width: 5.44rem; display: flex; flex-direction: column; align-items: center; }
.palette__dot {
  width: 4rem; height: 4rem; border-radius: 50%; background: var(--c);
  box-shadow: 0 0 0 .15rem rgba(255, 255, 255, .9), 0 .2rem .6rem rgba(60, 40, 20, .3);
}
.palette__name { margin-top: .8rem; font: 700 .98rem/1 var(--cond); letter-spacing: -.01em; text-transform: uppercase; color: #2a2620; white-space: nowrap; }

/* ---------- Таймер и подвал ---------- */
.bottom { background-color: var(--dark); }
.bottom .stage { height: 31.7rem; }
/* Мягкая тёмная подложка под логотипами и надписью подвала */
.bottom .stage::before {
  content: ""; position: absolute; left: 50%; top: 13rem; width: 52rem; height: 20rem; transform: translate(-50%, -50%);
  background: radial-gradient(ellipse at center, rgba(4, 14, 12, .85) 0%, rgba(4, 14, 12, .55) 50%, rgba(4, 14, 12, 0) 75%);
  pointer-events: none;
}
.bottom .stage > .footer__text { left: 0; right: 0; text-align: center; }
.countdown__title {
  font: 500 1.43rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #f1e8d6;
  text-shadow: 0 .2rem 1rem rgba(0, 0, 0, .6);
}
.countdown { display: flex; gap: .97rem; }
.countdown__box {
  width: 9.1rem; height: 7.65rem;
  display: flex; flex-direction: column; align-items: center;
  border: 1px solid rgba(222, 190, 125, .5); border-radius: .6rem;
  background: rgba(8, 14, 22, .55);
  -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
}
.countdown__num {
  margin-top: .77rem; font: 700 3.5rem/1 var(--serif);
  background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.countdown__label { margin-top: 1.02rem; font: 500 1.35rem/1 var(--sans); text-transform: uppercase; color: #fff; }
.logos--footer { left: 28.4rem; top: 6.6rem; height: 6.2rem; gap: 3.3rem; }
.logos--footer .logo--left { height: 2.7rem; }
.logos--footer .logo--right { height: 6.2rem; }
.logos--footer .logos__sep { height: 3.9rem; }
.footer__text { top: 14.6rem; font: 500 1.7rem/2.1rem var(--sans); letter-spacing: .07em; text-transform: uppercase; color: var(--gold); }
.ornament--footer { top: 19.6rem; }
.ornament--footer span { width: 7.5rem; }

/* ================= Телефон и планшет: афиша по телефонному макету, сетка 667 px ================= */
@media (max-width: 1023px) {
  html { font-size: calc(100vw / 66.7); }
  .stage { width: 66.7rem; }
  section { background: var(--bg-m) center top / 100% 100% no-repeat; }
  .hero::before, .divider, .card__photo { display: none; }

  /* Логотипы (сверху и в подвале одинаково) */
  .logos { height: 6.2rem; gap: 2.8rem; }
  .logos .logo--left { height: 2.75rem; }
  .logos .logo--right { height: 6.2rem; }
  .logos .logos__sep { height: 5rem; }
  .logos--hero { left: 18.6rem; top: 2.5rem; }
  .logos--footer { left: 18.2rem; top: 9.6rem; }

  /* Первый экран: блок текста смещён вправо, как в макете */
  .hero .stage { height: 54.8rem; }
  .hero__text { inset: 0 0 0 7.2rem; }
  .hero__kicker { top: 13.1rem; font-size: 1.45rem; letter-spacing: .16em; color: #e6e1d6; }
  .hero__line1 { top: 15.8rem; font-size: 6.25rem; letter-spacing: -.035em; transform: none; }
  .hero__line2 { top: 21.6rem; gap: .4rem; transform: translateX(.9rem); }
  .hero__do { margin-top: .8rem; font-size: 6.25rem; }
  .hero__script { width: 19.6rem; }
  .hero__script--text { font-size: 9rem; }
  .hero__year { top: 30.8rem; font-size: 2.6rem; letter-spacing: .04em; transform: translateX(.6rem); }
  .ornament--hero { top: 34.9rem; }
  .ornament--hero span { width: 6rem; }
  .hero__subtitle { top: 36.6rem; font-size: 1.5rem !important; line-height: 2rem !important; letter-spacing: .04em; transform: translateX(.4rem); }

  /* Дата, время, место и кнопка */
  /* Сверху — фон телефонной афиши, ниже — фон компьютерной версии с местом под талон */
  .info { background: var(--bg-m) center top / 100% 13.2rem no-repeat, var(--bg) center bottom / 100% auto no-repeat, var(--dark); }
  .info .stage { height: 38.2rem; }
  .info .stage > .ticket { left: 3.2rem; top: 17.4rem; transform: rotate(-2.35deg) scale(.86); transform-origin: left top; }
  .facts { left: 5.5rem; top: 3.3rem; grid-template-columns: 15rem 14.3rem 15rem auto; }
  .fact { gap: 1.6rem; height: 2.9rem; }
  .fact .icon { width: 2.9rem; height: 2.9rem; }
  .fact__text { transform: translateY(.1rem); }
  .fact__top { font-size: 1rem; }
  .fact__bottom { margin-top: .5rem; font-size: 1.3rem; }
  .fact__bottom.num { font-size: 1.45rem; }
  .fact--big-top .fact__top { font-size: 1.45rem; }
  .fact--big-top .fact__bottom { margin-top: .45rem; font-size: 1rem; }
  .btn-map { left: 8.85rem; top: 7.6rem; width: 49rem; height: 6.4rem; gap: 1.3rem; }
  .btn-map__icon { width: 4.4rem; height: 4.4rem; }
  .btn-map__text { font-size: 1.75rem; }

  /* Программа */
  .program-section .stage { height: 36rem; }
  .eyebrow { font-size: 1.25rem; letter-spacing: .2em; }
  .eyebrow--gold { top: 4rem; color: #e8e2d4; }
  .section-title--gold { top: 6.3rem; font-size: 3.25rem; letter-spacing: -.01em; }
  .ornament--program { top: 10.6rem; }
  .ornament--program span { width: 4rem; }
  .program { top: 12.1rem; left: 2.25rem; right: auto; padding-left: 0; }
  .program__item { width: 15.5rem; }
  .program__circle { width: 12.9rem; height: 12.9rem; border-width: .2rem; }
  .program__title { margin-top: .95rem; font-size: 1.3rem; line-height: 1.65rem; }
  .program__text { margin-top: .5rem; font-size: 1.05rem; line-height: 1.55rem; }

  /* Дресс-код: фигуры — часть фона */
  .dress .stage { height: 36rem; }
  .eyebrow--dark { top: 2.65rem; font-size: 1.35rem; letter-spacing: .2em; color: #8a6440; }
  .section-title--rust { top: 5.55rem; font-size: 3.55rem; }
  .dress__text { top: 9.95rem; font-size: 1.3rem; line-height: 1.7rem; }
  .dress__cards { left: 19rem; top: 16.2rem; gap: 1.7rem; }
  .card, .card + .card { width: 15rem; height: 11.6rem; border-radius: .8rem; background: rgba(255, 249, 236, .7); box-shadow: 0 .2rem 1rem rgba(120, 80, 30, .1); }
  .card + .card { width: 17.3rem; }
  .palette {
    left: 19rem; top: 28.5rem; width: 34rem; padding: .9rem .6rem .7rem; justify-content: space-between;
    background: rgba(255, 249, 236, .82); border-radius: .8rem; box-shadow: 0 .2rem 1rem rgba(120, 80, 30, .1);
  }
  .palette__item { width: 4rem; }
  .palette__dot { width: 2.7rem; height: 2.7rem; box-shadow: 0 0 0 .12rem rgba(255, 255, 255, .9), 0 .15rem .4rem rgba(60, 40, 20, .3); }
  .palette__name { margin-top: .5rem; font-size: .72rem; }
  .card__body { padding: 1.55rem .6rem 0 1rem; }
  .card__title { font-size: 1.2rem; }
  .card__list { margin-top: 1.25rem; }
  .card__list li { padding-left: 1.6rem; margin-bottom: .6rem; font-size: 1.02rem; line-height: 1.3rem; white-space: normal; }
  .card__list li::before { left: .2rem; top: .32rem; width: .6rem; height: .6rem; border-width: .15rem; }

  /* Таймер и подвал: рамки таймера — часть фона */
  .bottom .stage { height: 40.1rem; }
  .bottom .stage::before { top: 15.5rem; width: 50rem; height: 18rem; }
  .hero__countdown { top: 42.4rem; }
  .hero__countdown .countdown { margin-top: 1.1rem; }
  .countdown__title { font-size: 1.3rem; letter-spacing: .14em; }
  .countdown { gap: .9rem; }
  .countdown__box { width: 8.2rem; height: 8.1rem; }
  .countdown__num { margin-top: 1.55rem; font-size: 3.1rem; }
  .countdown__label { margin-top: 1.45rem; font-size: 1.1rem; }
  .ornament--footer { top: 17.3rem; }
  .ornament--footer span { width: 8.5rem; }
  .footer__text { top: 18.7rem; font-size: 1.35rem; line-height: 1.9rem; letter-spacing: .14em; }
}
