html {
  background: #1d23c4;
  scroll-behavior: smooth;
}

body {
  overscroll-behavior-y: none;
}

body.cian-motion-ready {
  --cian-cursor-x: 50%;
  --cian-cursor-y: 50%;
}

@media (min-width: 1024px) {
  .cian-motion-ready .App p,
  .cian-motion-ready .App li,
  .cian-motion-ready .App a,
  .cian-motion-ready .App button {
    font-size: max(1rem, 16px) !important;
    line-height: 1.55 !important;
  }

  .cian-motion-ready .App .label-mono,
  .cian-motion-ready .App [class*="text-sm"],
  .cian-motion-ready .App [class*="text-xs"] {
    font-size: max(.86rem, 13.75px) !important;
    line-height: 1.45 !important;
  }

  .cian-motion-ready .App h2 {
    font-size: clamp(3rem, 5.4vw, 5.8rem) !important;
    line-height: .96 !important;
  }
}

.cian-nav-polish {
  backdrop-filter: blur(18px);
}

.cian-nav-polish a,
.cian-nav-polish button {
  transition:
    opacity 360ms ease,
    color 260ms ease,
    background-color 260ms ease,
    border-color 260ms ease;
  transition-delay: var(--cian-nav-delay, 0ms);
}

.cian-nav-polish a:hover,
.cian-nav-polish button:hover {
  opacity: .72;
}

.cian-hero-upgraded {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
}

.cian-hero-upgraded > *:not(.cian-hero-stage) {
  position: relative;
  z-index: 2;
}

.cian-hero-stage {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: auto;
  background: #1d23c4;
}

.cian-hero-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(29, 35, 196, .88) 0%, rgba(29, 35, 196, .62) 34%, rgba(29, 35, 196, .18) 74%, rgba(29, 35, 196, .5) 100%),
    linear-gradient(0deg, rgba(29, 35, 196, .8) 0%, transparent 42%, rgba(29, 35, 196, .42) 100%);
}

.cian-hero-img,
.cian-hero-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cian-hero-img {
  z-index: 1;
  filter: contrast(1.05) saturate(.96);
}

.cian-hero-canvas {
  z-index: 2;
  opacity: .96;
}

.cian-hero-upgraded .cian-media-reactive {
  box-shadow: none;
}

.cian-hero-original-media {
  display: none !important;
}

.cian-labelled-section {
  position: relative;
}

.cian-labelled-section::before {
  content: attr(data-cian-label);
  position: absolute;
  left: clamp(1rem, 2.2vw, 1.75rem);
  top: clamp(1rem, 2.2vw, 1.75rem);
  z-index: 4;
  color: currentColor;
  font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .68rem;
  letter-spacing: .08em;
  line-height: 1;
  opacity: .58;
  pointer-events: none;
  text-transform: uppercase;
}

.cian-proof-priority {
  border-top-width: 1px;
}

.cian-proof-priority .cian-media-reactive {
  min-height: clamp(18rem, 42vw, 34rem);
}

.cian-sticky-process {
  overflow: visible !important;
}

@media (min-width: 1024px) {
  .cian-sticky-process .cian-media-reactive {
    position: sticky !important;
    top: 6rem;
  }
}

.cian-section-reveal,
.cian-soft-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 900ms cubic-bezier(.16, 1, .3, 1),
    transform 900ms cubic-bezier(.16, 1, .3, 1);
  transition-delay: var(--cian-delay, 0ms);
}

.cian-section-reveal.cian-in,
.cian-soft-reveal.cian-in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.cian-split {
  overflow: hidden;
}

.cian-split-line {
  display: block;
  transform: translate3d(0, 115%, 0);
  transition: transform 1000ms cubic-bezier(.16, 1, .3, 1);
  transition-delay: var(--cian-line-delay, 0ms);
  will-change: transform;
}

.cian-split.cian-in .cian-split-line {
  transform: translate3d(0, 0, 0);
}

.cian-media-reactive {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
  transform: translate3d(0, var(--cian-parallax, 0px), 0);
  transition:
    transform 700ms cubic-bezier(.16, 1, .3, 1),
    box-shadow 420ms ease;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .12);
  will-change: transform;
}

.cian-media-reactive::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(29, 35, 196, .82) 0%, rgba(29, 35, 196, .48) 44%, rgba(29, 35, 196, .76) 100%),
    linear-gradient(0deg, rgba(29, 35, 196, .74) 0%, rgba(29, 35, 196, .12) 44%, rgba(29, 35, 196, .46) 100%);
  mix-blend-mode: multiply;
  opacity: .9;
  transition: opacity 360ms ease;
}

.cian-media-reactive.cian-media-active::after {
  opacity: .78;
}

.cian-distortion-canvas {
  position: absolute;
  inset: 0;
  z-index: 4;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: .7;
  transition: opacity 360ms ease;
}

.cian-original-media {
  display: none !important;
}

.cian-reflection-source {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: contrast(1.02) saturate(.82);
  transition:
    filter 520ms cubic-bezier(.16, 1, .3, 1),
    transform 520ms cubic-bezier(.16, 1, .3, 1);
}

.cian-media-reactive > canvas:not(.cian-distortion-canvas),
.cian-media-reactive > img:not(.cian-reflection-source) {
  transition:
    transform 520ms cubic-bezier(.16, 1, .3, 1),
    filter 520ms cubic-bezier(.16, 1, .3, 1),
    opacity 520ms ease;
  will-change: transform, filter;
}

.cian-media-reactive.cian-media-active {
  box-shadow: 0 34px 110px rgba(0, 0, 0, .2);
}

.cian-media-reactive.cian-media-active > canvas:not(.cian-distortion-canvas),
.cian-media-reactive.cian-media-active > img:not(.cian-reflection-source),
.cian-media-reactive.cian-media-active .cian-reflection-source {
  filter: contrast(1.08) saturate(1.02) brightness(1.02);
  transform:
    translate3d(calc(var(--cian-panel-x, 0px) * .006), calc(var(--cian-panel-y, 0px) * .006), 0)
    scale(1.018);
}

.cian-media-reactive.cian-media-active .cian-distortion-canvas {
  opacity: .98;
}

.cian-project-grid .cian-soft-reveal {
  border-color: rgba(29, 35, 196, .2);
  transition:
    opacity 900ms cubic-bezier(.16, 1, .3, 1),
    transform 900ms cubic-bezier(.16, 1, .3, 1),
    background-color 320ms ease,
    color 320ms ease;
}

.cian-project-grid .cian-soft-reveal:hover {
  background-color: #1d23c4 !important;
  color: #e8e6dd !important;
}

.cian-footer-polish {
  position: relative;
  overflow: hidden;
}

.cian-footer-polish::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .36;
  background:
    linear-gradient(90deg, rgba(232, 230, 221, .1) 1px, transparent 1px),
    linear-gradient(0deg, rgba(232, 230, 221, .08) 1px, transparent 1px);
  background-size: 44px 44px;
}

.cian-login-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2rem);
  background: rgba(8, 13, 78, .68);
  backdrop-filter: blur(18px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms cubic-bezier(.16, 1, .3, 1);
}

.cian-login-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.cian-login-panel {
  width: min(92vw, 520px);
  color: #e8e6dd;
  background: #1d23c4;
  border: 1px solid rgba(232, 230, 221, .28);
  box-shadow: 0 34px 120px rgba(0, 0, 0, .28);
}

.cian-login-panel__media {
  position: relative;
  height: 220px;
  overflow: hidden;
}

.cian-login-panel__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: contrast(1.02) saturate(.82);
}

.cian-login-panel__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(29, 35, 196, .78), rgba(29, 35, 196, .38)),
    linear-gradient(0deg, rgba(29, 35, 196, .7), transparent);
  mix-blend-mode: multiply;
}

.cian-login-panel__body {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.cian-login-panel__kicker {
  margin-bottom: 1rem;
  font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .68;
}

.cian-login-panel h2 {
  margin: 0;
  font-size: clamp(2rem, 5vw, 3.4rem);
  line-height: .95;
}

.cian-login-panel p {
  margin-top: 1rem;
  max-width: 34rem;
  opacity: .76;
}

.cian-login-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.5rem;
}

.cian-login-panel__actions a,
.cian-login-panel__actions button {
  border: 1px solid rgba(232, 230, 221, .5);
  padding: .85rem 1rem;
  color: inherit;
  background: transparent;
  text-decoration: none;
}

.cian-login-panel__actions a {
  color: #1d23c4;
  background: #e8e6dd;
}

@media (max-width: 760px), (hover: none), (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .cian-section-reveal,
  .cian-soft-reveal,
  .cian-split-line,
  .cian-media-reactive,
  .cian-media-reactive > canvas,
  .cian-media-reactive > img {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .cian-distortion-canvas {
    display: none;
  }

  .cian-original-media {
    display: block !important;
  }
}
