/* Hilbert Hero Video — v1.1.3 (staggered reveal) */
.hhv{
  position:relative;
  width:100%;
  min-height:var(--hhv-height,85vh);
  color:var(--hhv-text,#fff);
  overflow:hidden;
  isolate:isolate;
  background:#000;
}
@media (max-width:767px){
  .hhv{min-height:var(--hhv-mobile-height,85vh);margin-bottom: -50px; z-index: 10;}
}

/* video + overlay */
.hhv__video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center center;
  opacity:0; transition:opacity .9s cubic-bezier(.22,.61,.36,1);
}
.hhv.is-ready .hhv__video{ opacity:1; }

.hhv__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg,
    rgba(0,0,0,calc(var(--hhv-overlay,.35) + .15)) 0%,
    rgba(0,0,0,var(--hhv-overlay,.35)) 35%,
    rgba(0,0,0,calc(var(--hhv-overlay,.35) + .2)) 100%);
  pointer-events:none;
  opacity:0; transition:opacity .9s cubic-bezier(.22,.61,.36,1) .15s;
}
.hhv.is-ready .hhv__overlay{ opacity:1; }

/* content layout (без общей анимации контейнера) */
.hhv__content{
  position:absolute;
  left:clamp(16px,6vw,80px); right:clamp(16px,6vw,80px);
  bottom:clamp(16px,3vh,120px);
  max-width:min(960px,90vw);
  z-index:2;
}
.hhv--align-center .hhv__content{
  left:50%; right:auto; transform:translateX(-50%); text-align:center;
}
.hhv--align-right .hhv__content{ left:auto; right:clamp(16px,6vw,80px); text-align:right; }

/* pieces: начальные состояния — прозрачные и слегка ниже */
.hhv__eyebrow,
.hhv__title,
.hhv__subtitle,
.hhv__slot{
  opacity:0;
  transform:translate3d(0,16px,0);
  will-change:opacity, transform;
}

/* последовательная анимация появления */
@keyframes hhv-fade-up {
  0%   { opacity:0; transform:translate3d(0,18px,0); }
  100% { opacity:1; transform:translate3d(0,0,0); }
}

.hhv.is-visible .hhv__eyebrow{
  animation:hhv-fade-up .75s cubic-bezier(.22,.61,.36,1) .06s both;
}
.hhv.is-visible .hhv__title{
  animation:hhv-fade-up .9s cubic-bezier(.22,.61,.36,1) .28s both;
}
.hhv.is-visible .hhv__subtitle{
  animation:hhv-fade-up 1.05s cubic-bezier(.22,.61,.36,1) .52s both;
}
.hhv.is-visible .hhv__slot{
  animation:hhv-fade-up 1.05s cubic-bezier(.22,.61,.36,1) .74s both;
}

/* typography */
.hhv__eyebrow{
  font-size:clamp(7px,1.1vw,16px);
  font-weight:500; letter-spacing:.02em;
  display:inline-flex; align-items:center; gap:.5em;
  opacity:.95; color:var(--hhv-text,#fff);
  margin-bottom: clamp(3px, 0.3vh, 12px);
}
.hhv__dot{
  width:10px; height:10px; border-radius:0px;
  background:#af0b0b; display:inline-block; flex:0 0 10px;
  box-shadow:0 0 0 0 rgba(175,11,11,.7);
  animation:hhv-pulse 2.2s ease-in-out infinite;
}
@keyframes hhv-pulse{
  0%{ box-shadow:0 0 0 0 rgba(175,11,11,.6); }
  70%{ box-shadow:0 0 0 8px rgba(175,11,11,0); }
  100%{ box-shadow:0 0 0 0 rgba(175,11,11,0); }
}

.hhv__title{
  font-weight:500; line-height:1.15;
  font-size:clamp(12px,3.8vw,48px);
  margin:0 0 .35em 0; color:var(--hhv-text,#fff);
  text-wrap:balance;
}
.hhv__subtitle{
  font-size:clamp(9px,1.4vw,18px);
  line-height:1.5; opacity:.92; color:var(--hhv-text,#fff);
  max-width:800px;
}

/* Play button (когда автоплей заблокирован) */
.hhv__play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:64px; height:64px; border-radius:999px; border:none;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.45); color:#fff; backdrop-filter:blur(3px);
  box-shadow:0 6px 24px rgba(0,0,0,.35);
  transition:transform .2s ease, opacity .2s ease;
  cursor:pointer; z-index:3; opacity:0; pointer-events:none;
}
.hhv__play:focus{ outline:2px solid #af0b0b; outline-offset:2px; }
.hhv.need-user .hhv__play{ opacity:1; pointer-events:auto; }
.hhv__play:hover{ transform:translate(-50%,-50%) scale(1.04); }

/* Respect Reduced Motion */
@media (prefers-reduced-motion: reduce){
  .hhv__dot{ animation:none; }
  .hhv__video, .hhv__overlay{ transition:none !important; }
  .hhv__eyebrow, .hhv__title, .hhv__subtitle, .hhv__slot{
    opacity:1 !important; transform:none !important; animation:none !important;
  }
}

@media (max-width: 767px){ 
.hhv__title {
	margin: 0 0 .0em 0;
	}
.hhv__dot {
    width: 5px;
    height: 5px;
	flex: 0 0 5px;
	}}