.fr-fc-transition-stage {
  position: fixed;
  inset: 0;
  z-index: 2147482200;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  background: transparent;
  transition: opacity 160ms ease, visibility 0s linear 200ms;
}

.fr-fc-transition-stage.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity 160ms ease, visibility 0s linear 0s;
}

.fr-fc-transition-stage.is-fading {
  opacity: 0;
  visibility: visible;
  transition: opacity var(--fr-fc-overlay-fade-ms, 320ms) ease-out, visibility 0s linear calc(var(--fr-fc-overlay-fade-ms, 320ms) + 40ms);
}

.fr-fc-transition-video-frame {
  position: absolute;
  left: var(--fr-fc-frame-left, 0%);
  top: var(--fr-fc-frame-top, 0%);
  width: var(--fr-fc-frame-width, 100%);
  height: var(--fr-fc-frame-height, 100%);
  z-index: 4;
  opacity: 0;
  overflow: hidden;
  transform: translateZ(0);
}

.fr-fc-transition-stage.is-video-visible .fr-fc-transition-video-frame {
  opacity: var(--fr-fc-overlay-opacity, 1);
}

.fr-fc-transition-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  background: #000;
  transform: translateZ(0);
}


.fr-fc-transition-flavors-clone {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  background: #000;
  transform: translateZ(0);
  will-change: transform, opacity, filter;
}

.fr-fc-transition-stage.is-flavors-clone-visible .fr-fc-transition-flavors-clone {
  opacity: 1;
}

.fr-fc-transition-stage.is-flavors-impulse .fr-fc-transition-flavors-clone {
  transform: translate3d(-14vw, 0, 0) scale(0.985);
  opacity: 0.86;
  filter: brightness(0.86) saturate(0.96);
  transition:
    transform var(--fr-fc-flavors-impulse-ms, 900ms) cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity var(--fr-fc-flavors-impulse-ms, 900ms) ease-out,
    filter var(--fr-fc-flavors-impulse-ms, 900ms) ease-out;
}

.fr-fc-transition-flavors-viewport {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  overflow: hidden;
}

.fr-fc-transition-flavors-viewport > .flavors-collection {
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  overflow: hidden !important;
}

.fr-fc-transition-flavors-viewport .flavors-gallery {
  width: 100% !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
}

.fr-fc-transition-flavors-viewport .flavors-gallery__card {
  opacity: 0 !important;
  visibility: hidden !important;
}

.fr-fc-transition-flavors-viewport .flavors-gallery__card--three {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate3d(0, 0, 0) !important;
  filter: brightness(1) saturate(1) !important;
}

.fr-fc-transition-flavors-viewport .flavors-gallery__copy {
  opacity: 1 !important;
  transform: translate3d(0, -50%, 0) !important;
  animation: none !important;
}

html.fr-fc-transition-lock,
html.fr-fc-transition-lock body {
  overscroll-behavior: none;
}

html.fr-fc-transition-running #window-5,
html.fr-fc-transition-running #contacts {
  pointer-events: none !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts {
  overflow: visible !important;
  contain: none !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__background,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__berry-orbit,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__background,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__berry-orbit {
  opacity: 1 !important;
  visibility: visible !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-card,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-docs-panel,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-studio-badge,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-copyright-badge,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-card,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-docs-panel,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-studio-badge,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-copyright-badge {
  transition:
    transform var(--fr-fc-contacts-enter-ms, 3000ms) cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity calc(var(--fr-fc-contacts-enter-ms, 3000ms) * 0.82) ease-out,
    filter var(--fr-fc-contacts-enter-ms, 3000ms) ease-out !important;
  opacity: 0 !important;
  filter: blur(1.2px) saturate(1.04) !important;
  pointer-events: none !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__title {
  transform: translate3d(-50%, -120vh, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-card--phone,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-card--email,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-card--telegram,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-card--phone,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-card--email,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-card--telegram {
  transform: translate3d(-120vw, 0, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-card--address,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-card--company,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-card--requisites,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-card--address,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-card--company,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-card--requisites {
  transform: translate3d(120vw, 0, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-docs-panel,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-studio-badge,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-copyright-badge,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-docs-panel,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-studio-badge,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-copyright-badge {
  transform: translate3d(0, 120vh, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__title,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-card,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-docs-panel,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-studio-badge,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-copyright-badge {
  opacity: 1 !important;
  filter: none !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__title {
  transform: translateX(-50%) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-card,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-docs-panel,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-studio-badge,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-copyright-badge {
  transform: translate3d(0, 0, 0) !important;
}


/* 5→6: give the final flavor act a short physical push before Gallery 1 covers it. */
html.fr-fc-transition-flavors-impulse #window-5 .flavors-gallery__card.is-active,
html.fr-fc-transition-flavors-impulse #window-5 .flavors-gallery__card--three.is-active {
  transform: translate3d(-16vw, 0, 0) scale(0.985) !important;
  opacity: 0.78 !important;
  filter: brightness(0.84) saturate(0.95) !important;
  transition:
    transform var(--fr-fc-flavors-impulse-ms, 650ms) cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity var(--fr-fc-flavors-impulse-ms, 650ms) ease-out,
    filter var(--fr-fc-flavors-impulse-ms, 650ms) ease-out !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__artboard,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__artboard {
  transform: translate(-50%, -50%) translate3d(var(--fr-fc-contacts-start-x, 0%), var(--fr-fc-contacts-start-y, 0%), 0) scale(var(--fr-fc-contacts-start-scale, 1.18)) !important;
  transform-origin: 50% 50% !important;
  transition: transform var(--fr-fc-contacts-zoom-out-ms, 1900ms) cubic-bezier(0.16, 0.86, 0.18, 1) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__artboard {
  transform: translate(-50%, -50%) translate3d(0, 0, 0) scale(1) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__title {
  transform: translate3d(-50%, -126vh, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__title {
  transform: translate3d(-50%, 0, 0) !important;
}

.fr-admin-fc-transition {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(255, 133, 184, 0.28);
  border-radius: 18px;
  padding: 14px;
  background: rgba(24, 2, 12, 0.72);
}
.fr-admin-fc-transition__head { display: grid; gap: 4px; color: #fff6fa; }
.fr-admin-fc-transition__head strong { font: 900 13px/1.15 Arial, Helvetica, sans-serif; }
.fr-admin-fc-transition__head span,
.fr-admin-fc-transition__status { color: rgba(255, 231, 240, 0.72); font: 700 11px/1.35 Arial, Helvetica, sans-serif; }
.fr-admin-fc-transition__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fr-admin-fc-transition__grid label { display: grid; gap: 4px; color: rgba(255, 231, 240, 0.76); font: 800 10px/1.2 Arial, Helvetica, sans-serif; }
.fr-admin-fc-transition__grid input { width: 100%; border: 1px solid rgba(255, 133, 184, 0.28); border-radius: 10px; padding: 8px 9px; color: #fff6fa; background: rgba(27, 2, 12, 0.82); font: 800 12px/1.2 Arial, Helvetica, sans-serif; }
.fr-admin-fc-transition__buttons { display: grid; grid-template-columns: 1fr; gap: 8px; }
.fr-admin-fc-transition button { width: 100%; border: 1px solid rgba(255, 133, 184, 0.45); border-radius: 12px; padding: 10px 12px; color: #fff6fa; background: linear-gradient(180deg, rgba(255, 105, 164, 0.44), rgba(128, 16, 59, 0.58)); font: 900 11px/1.1 Arial, Helvetica, sans-serif; cursor: pointer; }
.fr-admin-fc-transition button[aria-pressed="true"] { background: linear-gradient(180deg, rgba(255, 198, 221, 0.36), rgba(168, 31, 86, 0.50)); border-color: rgba(255, 218, 232, 0.65); }
.fr-admin-fc-transition button:disabled { opacity: 0.55; cursor: progress; }
.fr-admin-fc-transition__status.is-error { color: #ffb8cc; }

html.fr-admin-mode .fr-fc-transition-stage { z-index: 2147482100 !important; }

@media (prefers-reduced-motion: reduce), (max-width: 900px), (hover: none) {
  .fr-fc-transition-stage { display: none !important; }
}


/* Root polish for 5→6: camera close-up belongs to the sixth-window scene plane,
   not to the parent artboard that also carries incoming text/cards. Keeping the
   camera on background + berry prevents the title from moving in a bent “Г” path. */
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__artboard,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__artboard {
  transform: translate(-50%, -50%) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__background,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__berry-orbit,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__background,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__berry-orbit {
  transform: translate3d(var(--fr-fc-contacts-start-x, 0%), var(--fr-fc-contacts-start-y, 0%), 0) scale(var(--fr-fc-contacts-start-scale, 1.32)) !important;
  transform-origin: 50% 50% !important;
  transition: transform var(--fr-fc-contacts-zoom-out-ms, 2600ms) cubic-bezier(0.16, 0.86, 0.18, 1) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__background,
html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__berry-orbit {
  transform: translate3d(0, 0, 0) scale(1) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__title {
  transform: translate3d(-50%, -126vh, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__title {
  transform: translate3d(-50%, 0, 0) !important;
}


/* Final guard: the Contacts title enters strictly vertically.
   Camera close-up must affect background/berry plane only; this prevents L-shaped paths. */
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__title {
  transform: translate3d(-50%, -126vh, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__title {
  transform: translate3d(-50%, 0, 0) !important;
}


/* 5→6 / 6→5 binding fixes:
   - contact title moves strictly vertically;
   - side hover-video frames travel with their cards;
   - reverse first performs the same contacts exit before Gallery2 starts. */
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-window__title {
  transform: translate3d(-50%, -126vh, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__title {
  transform: translate3d(-50%, 0, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-hover-video-layer--phone,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-hover-video-layer--email,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-hover-video-layer--telegram,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--phone,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--email,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--telegram {
  transform: translate3d(-120vw, 0, 0) !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-hover-video-layer--address,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-hover-video-layer--company,
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-hover-video-layer--requisites,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--address,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--company,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--requisites {
  transform: translate3d(120vw, 0, 0) !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-hover-video-layer {
  transform: translate3d(0, 0, 0) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-window__background,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-window__berry-orbit {
  transform: translate3d(var(--fr-fc-contacts-start-x, 0%), var(--fr-fc-contacts-start-y, 0%), 0) scale(1.1) !important;
  transition: transform 1150ms cubic-bezier(0.16, 0.86, 0.18, 1) !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--phone,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--email,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--telegram {
  transform: translate3d(-120vw, 0, 0) !important;
  opacity: 0 !important;
  filter: blur(1.2px) saturate(1.04) !important;
  transition:
    transform 1150ms cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity 760ms ease-out,
    filter 1150ms ease-out !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--address,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--company,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--requisites {
  transform: translate3d(120vw, 0, 0) !important;
  opacity: 0 !important;
  filter: blur(1.2px) saturate(1.04) !important;
  transition:
    transform 1150ms cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity 760ms ease-out,
    filter 1150ms ease-out !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-docs-panel,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-studio-badge,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-copyright-badge {
  transform: translate3d(0, 120vh, 0) !important;
  opacity: 0 !important;
  filter: blur(1.2px) saturate(1.04) !important;
  transition:
    transform 1150ms cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity 760ms ease-out,
    filter 1150ms ease-out !important;
}


/* Root fix v3: 5→6 key-point and 6→5 reverse-exit.
   The stage must not draw a black frame while Gallery 2 is still loading.
   The 5th-window impulse is now a real editable rect, not a hardcoded translate. */
.fr-fc-transition-stage:not(.is-video-visible) {
  background: transparent !important;
}

.fr-fc-transition-stage.is-flavors-impulse .fr-fc-transition-flavors-clone {
  left: var(--fr-fc-flavors-impulse-left, -5.6%) !important;
  top: var(--fr-fc-flavors-impulse-top, 0%) !important;
  width: var(--fr-fc-flavors-impulse-width, 100%) !important;
  height: var(--fr-fc-flavors-impulse-height, 100%) !important;
  transform: translate3d(0, 0, 0) !important;
  opacity: 0.86;
  filter: brightness(0.86) saturate(0.96);
  transition:
    left var(--fr-fc-flavors-impulse-ms, 1350ms) cubic-bezier(0.22, 0.72, 0.18, 1),
    top var(--fr-fc-flavors-impulse-ms, 1350ms) cubic-bezier(0.22, 0.72, 0.18, 1),
    width var(--fr-fc-flavors-impulse-ms, 1350ms) cubic-bezier(0.22, 0.72, 0.18, 1),
    height var(--fr-fc-flavors-impulse-ms, 1350ms) cubic-bezier(0.22, 0.72, 0.18, 1),
    opacity var(--fr-fc-flavors-impulse-ms, 1350ms) ease-out,
    filter var(--fr-fc-flavors-impulse-ms, 1350ms) ease-out !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147482190 !important;
  display: block !important;
  width: 100vw !important;
  height: 100svh !important;
  min-height: 100svh !important;
  overflow: hidden !important;
  pointer-events: none !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: #050104 !important;
  contain: none !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-window__title {
  transform: translate3d(-50%, -126vh, 0) !important;
  transition: transform var(--fr-fc-contacts-reverse-exit-ms, 1350ms) cubic-bezier(0.16, 0.86, 0.18, 1) !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--phone,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--email,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--telegram,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--phone,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--email,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--telegram {
  transform: translate3d(-120vw, 0, 0) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  filter: blur(1.2px) saturate(1.04) !important;
  transition:
    transform var(--fr-fc-contacts-reverse-exit-ms, 1350ms) cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity 760ms ease-out,
    filter var(--fr-fc-contacts-reverse-exit-ms, 1350ms) ease-out !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--address,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--company,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-card--requisites,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--address,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--company,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer--requisites {
  transform: translate3d(120vw, 0, 0) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  filter: blur(1.2px) saturate(1.04) !important;
  transition:
    transform var(--fr-fc-contacts-reverse-exit-ms, 1350ms) cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity 760ms ease-out,
    filter var(--fr-fc-contacts-reverse-exit-ms, 1350ms) ease-out !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-docs-panel,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-studio-badge,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-copyright-badge {
  transform: translate3d(0, 120vh, 0) !important;
  opacity: 0 !important;
  filter: blur(1.2px) saturate(1.04) !important;
  transition:
    transform var(--fr-fc-contacts-reverse-exit-ms, 1350ms) cubic-bezier(0.16, 0.86, 0.18, 1),
    opacity 760ms ease-out,
    filter var(--fr-fc-contacts-reverse-exit-ms, 1350ms) ease-out !important;
}

html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-window__background,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-window__berry-orbit {
  transform: translate3d(var(--fr-fc-contacts-start-x, 0%), var(--fr-fc-contacts-start-y, 0%), 0) scale(1.1) !important;
  transition: transform var(--fr-fc-contacts-reverse-exit-ms, 1350ms) cubic-bezier(0.16, 0.86, 0.18, 1) !important;
}

/* Root fix: contacts hover-video is now a local child of its card during
   hover. Transition/pre-exit CSS may move the card, but not the video again. */
html:not(.fr-admin-mode) #contacts .frambini-runtime-local-video-card > .contacts-hover-video-layer.frambini-local-hover-video,
html:not(.fr-admin-mode) #contacts .frambini-runtime-local-video-card > .contacts-hover-video-layer.frambini-local-hover-video.frambini-bound-active,
html:not(.fr-admin-mode) #contacts .frambini-runtime-local-video-card > .contacts-hover-video-layer.frambini-local-hover-video.is-active,
html:not(.fr-admin-mode) .contacts-window .frambini-runtime-local-video-card > .contacts-hover-video-layer.frambini-local-hover-video,
html:not(.fr-admin-mode) .contacts-window .frambini-runtime-local-video-card > .contacts-hover-video-layer.frambini-local-hover-video.frambini-bound-active,
html:not(.fr-admin-mode) .contacts-window .frambini-runtime-local-video-card > .contacts-hover-video-layer.frambini-local-hover-video.is-active {
  position: absolute !important;
  transform: none !important;
  translate: 0 0 !important;
  scale: 1 !important;
  opacity: 0.96 !important;
  visibility: visible !important;
  z-index: 22 !important;
  pointer-events: none !important;
  object-fit: fill !important;
  object-position: center center !important;
  mix-blend-mode: screen !important;
  filter: saturate(1.15) brightness(1.05) !important;
}


/* Runtime guard: contact hover-video planes are visual children of their cards.
   During 5↔6 transitions, only the card may move; old standalone planes stay
   hidden so they cannot leave silver strips on the screen. */
html:not(.fr-admin-mode).fr-fc-transition-running #contacts .contacts-hover-video-layer:not(.frambini-local-hover-video),
html:not(.fr-admin-mode).fr-fc-transition-contacts-prepared #contacts .contacts-hover-video-layer:not(.frambini-local-hover-video),
html:not(.fr-admin-mode).fr-fc-transition-contacts-entering #contacts .contacts-hover-video-layer:not(.frambini-local-hover-video),
html:not(.fr-admin-mode).fr-fc-transition-contacts-reverse-exit #contacts .contacts-hover-video-layer:not(.frambini-local-hover-video) {
  transform: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 120ms ease-out, visibility 0s linear 140ms !important;
}


/* Step 12: final 5→6 seam polish.
   Title movement must respect the saved admin layout. The saved contacts title is
   positioned by left/top/width in contacts-window.css, so adding translateX(-50%)
   during transition makes it enter from the left. These final overrides move it
   only on the Y axis. */
html.fr-fc-transition-forward.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-admin-preview.fr-fc-transition-contacts-prepared #contacts .contacts-window__title,
html.fr-fc-transition-reverse.fr-fc-transition-contacts-reverse-exit #contacts .contacts-window__title {
  transform: translate3d(0, -126vh, 0) !important;
}

html.fr-fc-transition-forward.fr-fc-transition-contacts-entering #contacts .contacts-window__title {
  transform: translate3d(0, 0, 0) !important;
}
