/* Живой след · Загрузочная заставка
   Названия классов намеренно изолированы от стилей существующего сайта.
   Фон: #061B15; название: Georgia, #D8B968;
   подпись: Inter, #ADB9B0, letter-spacing .145em. */
:root {
  --zs-splash-bg: #061B15;
  --zs-splash-title: #F2EFE6;
  --zs-splash-caption: #D8B968;
  --zs-splash-leave-ms: 620ms;
}

#zs-splash {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: none;
  place-items: center;
  padding: 24px;
  overflow: hidden;
  background: var(--zs-splash-bg);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity var(--zs-splash-leave-ms) cubic-bezier(.22,.61,.36,1),
              visibility 0s linear var(--zs-splash-leave-ms);
  isolation: isolate;
}

/* The overlay is opt-in: without JavaScript no opaque screen obscures the content.
   The document bootstrap adds zs-boot-*; the navigation script adds --playing.
   If the navigation script fails to load after bootstrap, CSS releases the page. */
html.zs-boot-first #zs-splash,
html.zs-boot-short #zs-splash,
html.zs-transitioning #zs-splash,
#zs-splash.zs-splash--playing {
  display: grid;
}
html.zs-boot-first #zs-splash,
html.zs-boot-short #zs-splash {
  animation: zs-bootstrap-failsafe 1ms steps(1, end) 7000ms forwards;
}
@keyframes zs-bootstrap-failsafe {
  to { opacity: 0; visibility: hidden; pointer-events: none; }
}

/* Skip link appears on keyboard focus only; no impact on the normal layout. */
.zs-skip-link {
  position: fixed;
  inset-inline-start: 16px;
  top: max(12px, env(safe-area-inset-top));
  z-index: 2147483001;
  display: block;
  padding: 12px 16px;
  border: 1px solid #D8B968;
  border-radius: 4px;
  background: #061B15;
  color: #F2EFE6;
  font: 600 14px/1.35 system-ui, sans-serif;
  text-decoration: none;
  transform: translateY(calc(-100% - 40px));
  transition: transform .15s ease-out;
}
.zs-skip-link:focus,
.zs-skip-link:focus-visible {
  transform: none;
  outline: 2px solid #D8B968;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .zs-skip-link { transition: none; }
}

/* Небольшая глубина заданными цветами — без шума, ореолов и бликов. */
#zs-splash::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 65% at 50% 47%, #071F18 0%, #061B15 57%, #041711 100%);
  opacity: .42;
  z-index: -1;
}

.zs-splash__identity {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  text-align: center;
  transform: translateY(-1.5vh);
}

.zs-splash__title {
  margin: 0;
  padding: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(42px, 5.2vw, 79px);
  line-height: 1.11;
  letter-spacing: -.015em;
  white-space: nowrap;
  color: var(--zs-splash-title);
  opacity: 0;
  filter: blur(2.5px);
  transform: translateY(7px);
}

.zs-splash__subtitle {
  margin: clamp(11px, 1.7vw, 19px) 0 0;
  padding: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(9px, 1.06vw, 14px);
  line-height: 1.5;
  letter-spacing: .145em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--zs-splash-caption);
  opacity: 0;
  transform: translateY(4px);
}

#zs-splash.zs-splash--playing .zs-splash__title {
  animation: zs-title-reveal 680ms cubic-bezier(.22,.61,.36,1) 110ms both;
}
#zs-splash.zs-splash--playing .zs-splash__subtitle {
  animation: zs-subtitle-reveal 570ms cubic-bezier(.22,.61,.36,1) 415ms both;
}
#zs-splash.zs-splash--leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@keyframes zs-title-reveal {
  from { opacity: 0; filter: blur(2.5px); transform: translateY(7px); }
  to   { opacity: 1; filter: blur(0); transform: translateY(0); }
}
@keyframes zs-subtitle-reveal {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width:700px) {
  #zs-splash { padding: 14px; }
  .zs-splash__title { font-size: clamp(34px, 9.3vw, 61px); letter-spacing: -.023em; }
  .zs-splash__subtitle { font-size: clamp(7.1px, 2.12vw, 11px); letter-spacing: .105em; margin-top: 12px; }
}
@media (max-width:380px) {
  .zs-splash__title { font-size: 9vw; }
  .zs-splash__subtitle { font-size: 1.96vw; letter-spacing: .08em; }
}
@media (prefers-reduced-motion:reduce) {
  #zs-splash { transition-duration: 0.01ms; }
  #zs-splash.zs-splash--playing .zs-splash__title,
  #zs-splash.zs-splash--playing .zs-splash__subtitle {
    animation: none;
    opacity: 1;
    filter: none;
    transform: none;
  }
}

/* Site integration: splash is decorative, cannot be selected or called up as an image. */
#zs-splash, #zs-splash * { -webkit-user-select:none!important;user-select:none!important;
  -webkit-touch-callout:none!important;cursor:default!important; }
/* Between internal routes a brief cover merges into the same brand scene. */
html.zs-transitioning #zs-splash {visibility:visible!important;pointer-events:all;opacity:1;
  animation:zs-route-cover 190ms ease-out both!important;}
html.zs-transitioning #zs-splash .zs-splash__title,
html.zs-transitioning #zs-splash .zs-splash__subtitle {
  opacity:1!important;filter:none!important;transform:none!important;animation:none!important;
}
@keyframes zs-route-cover { from{opacity:0}to{opacity:1} }
@media(prefers-reduced-motion:reduce) {
 html.zs-transitioning #zs-splash {display:none!important;}
}
