@font-face{font-family:Golos;src:url('./golos-medium.ttf');font-weight:500;font-display:swap}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#d75828}body{color:#fff}
.desktop{min-height:100svh;display:flex;flex-direction:column;gap:32px;padding:24px 20px;font:500 18px/1.1 Golos,sans-serif}
.desktop header{display:grid;grid-template-columns:650fr 440fr 246fr;gap:32px;min-height:44px}
.desktop p,.desktop h1{margin:0}.desktop main{flex:1;display:flex;flex-direction:column;justify-content:center;gap:24px;min-height:480px}
.desktop h1{font-size:clamp(48px,6.111vw,112px);line-height:1.1;letter-spacing:-.04em;font-weight:500}
.address{font-size:40px}.desktop .detail{font-size:20px}.wordmark{display:block;width:100%;height:auto;aspect-ratio:8.7}
.mobile{display:none}
@media(max-width:767px){.desktop{display:none}.mobile{display:block}body{background:var(--bg-base)}}
:root {
  --dur-fast: 160ms;         /* цвет, иконка, чип, нажатие */
  --dur-base: 240ms;         /* обрезка поля, раскрывашка, каскад ответа */
  --dur-theme: 360ms;        /* смена темы — перетекание всего кадра (theme.ts, View Transitions) */
  --dur-tab: 200ms;          /* вход экрана вкладки */
  --dur-exit: 120ms;         /* уход экрана вкладки, заглушки */
  --dur-search: 300ms;       /* поиск: продолжение свайпа без повторного ухода */
  --dur-drawer: 380ms;       /* вход модальной шторки */
  --dur-drawer-exit: 260ms;  /* уход шторки */
  --dur-zoom: 280ms;         /* двойной тап в просмотре фото: масштаб к точке и назад, с --ease-out */
  --dur-calm: 200ms;         /* всё движение в спокойном режиме — одна прозрачность */
  --dur-skeleton: 1400ms;    /* мерцание скелета: туда и обратно, в спокойном режиме выключено */
  --dur-wave: 1600ms;        /* волна по модулям прогресса «Заставки» 551:688, когда прогресса нет; в спокойном режиме — статично */

  --stagger: 40ms;           /* шаг каскада */
  --stagger-max: 120ms;      /* последний блок каскада стартует не позже */
  --tab-shift: 12px;         /* сдвиг экрана по направлению вкладки */
  --press-scale: 0.985;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);        /* вход и выход */
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);    /* перемещение по экрану */
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);     /* шторки (кривая iOS) */

  /* Пружины: «<длительность> linear(…)», пишет installMotion(). Здесь — запасные значения на кадр
     до старта скрипта: та же длительность, ближайшая кривая. */
  --spring-plate: 360ms var(--ease-out);    /* свет активной вкладки, bounce 0.15 */
  --spring-return: 400ms var(--ease-out);   /* шторка возвращается после жеста, bounce 0.15 */
  --spring-island: 500ms var(--ease-out);   /* морф острова, bounce 0.15 */
}

.v3-splash {
  position: fixed;
  inset: 0;
  z-index: 90;
  touch-action: none; /* свайп по заставке никуда не уходит: ни прокрутка под ней, ни адресная строка браузера */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
  padding: var(--inset-top) 24px var(--inset-bottom);
  background: linear-gradient(180deg, var(--bg-base), var(--fade-base-0) 38%), linear-gradient(180deg, var(--hero-top) 0%, var(--hero-mid) 38%, var(--bg-base) 100%);
  color: var(--text-primary);
  text-align: center;
  animation: v3-fade-in var(--dur-base) var(--ease-out);
}
/* Знак бренда тянется на размер Mark: у файлов знаков зашито 26×26 (01.10 — на заставке был крошечный). */
.v3-mark > svg { display: block; width: 100%; height: 100%; }
.v3-splash__sign { filter: drop-shadow(0 12px 48px var(--glow-accent)); }
.v3-splash__progress { display: flex; gap: 4px; }
.v3-splash__mod { position: relative; width: 10px; height: 10px; border-radius: 2px; background: var(--fill-skeleton); }
.v3-splash__mod::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--accent-brand);
  opacity: 0;
  animation: v3-splash-wave var(--dur-wave) var(--ease-in-out) infinite;
  animation-delay: calc(var(--i) * var(--dur-wave) / 10);
}
@keyframes v3-splash-wave { 0%, 60%, 100% { opacity: 0; } 20% { opacity: 1; } }
:root[data-motion='calm'] .v3-splash__mod::after { animation: none; }
:root[data-motion='calm'] .v3-splash__mod:nth-child(-n+4)::after { opacity: 1; }
.v3-splash__sub { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.v3-splash__title { margin: 0; font: var(--type-heading); letter-spacing: var(--type-heading-tracking); }
.v3-splash__text { margin: 0; max-width: 300px; font: var(--type-caption); color: var(--text-secondary); text-wrap: balance; overflow-wrap: anywhere; }
.v3-splash__foot {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 56px;
  margin: 0;
  font: var(--type-label);
  letter-spacing: var(--type-label-tracking);
  text-transform: var(--type-label-case);
  color: var(--text-secondary);
}


.v3-splash__sign{display:block;flex:none}.v3-splash__sub{width:100%;min-width:0}.v3-splash__text{width:100%;max-width:300px}
@media(min-width:768px){.v3-splash{display:none}}
@media(max-height:500px){.v3-splash{gap:16px}.v3-splash__sign{width:72px;height:72px}.v3-splash__foot{bottom:12px}}
@media(prefers-reduced-motion:reduce){.v3-splash,.v3-splash__mod::after{animation:none}.v3-splash__mod:nth-child(-n+4)::after{opacity:1}}
