/* Канва по умолчанию — вся страница тёмная */

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
@media (prefers-reduced-transparency: reduce) { .glass { backdrop-filter: none; } }
@media (prefers-contrast: more) { :root { --spot-opacity: 1; } }

:root { 
	view-transition-name: root; 
}

html, body {
	color: var(--ink-1);
	font-family: var(--font-sans);
	line-height: var(--lh-normal);
	user-select: none;         
	-webkit-user-select: none; 
	-ms-user-select: none;   
	-webkit-touch-callout: none; 
	-webkit-user-drag: none;  
	user-drag: none;         
	pointer-events: auto;     
	font-synthesis-weight: none;
	font-synthesis-style: none; 
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overscroll-behavior: contain;
	touch-action: manipulation;      
}

body {
	background-color: var(--bg);
	word-break: break-word; 
	hyphens: auto;
	tab-size: 4;
}

img, a, svg, canvas {
  -webkit-user-drag: none;
}

img, svg, video, canvas {
	
}

img[loading="lazy"] { contain-intrinsic-size: 1px 1px; } /* CLS-страховка */

:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--accent, #8AE3FF);
  outline-offset: 3px;
  border-radius: 8px;
}


body:not(.allow-select) {
  user-select: none;
}


/* Elementor базовые */
.elementor {
  background: var(--bg);
  color: var(--ink-1);
}

/* Карточки/поверхности */
.edqr-surface,
.elementor-widget-container,
.elementor-section,
.elementor-column {
  /* не перебарщиваем — используем локально по месту, но базу держим */
}

/* Заголовки */
h1, .elementor-widget-heading h1 { font-size: var(--fs-2xl); line-height: var(--lh-tight); color: var(--ink-1); }
h2, .elementor-widget-heading h2 { font-size: var(--fs-xl);  line-height: var(--lh-tight); color: var(--ink-1); }
h3, .elementor-widget-heading h3 { font-size: var(--fs-lg);  color: var(--ink-1); }

/* Текст */
p, li, .elementor-widget-text-editor { font-size: var(--fs-md); color: var(--ink-2); }

/* Кнопки Elementor */
.elementor-button {
  background: var(--surface-1);
  color: var(--ink-1);
  border-radius: var(--radius-md);
  border: var(--border-weak);
  box-shadow: var(--shadow-1);
}
.elementor-button:hover {
  background: var(--surface-2);
}

/* Секции */
.elementor-section.edqr-dark {
  background: var(--bg);
}
.elementor-section.edqr-surface-1 {
  background: var(--surface-1);
}
.elementor-section.edqr-surface-2 {
  background: var(--surface-2);
}

/* Бордеры/деликатные разделители */
.hr-weak { border-top: var(--border-weak); }

/* Утилиты отступов — удобны в HTML-виджете Elementor */
.sp-16 { padding: var(--sp-16); }
.mt-32 { margin-top: var(--sp-32); }
.mb-24 { margin-bottom: var(--sp-24); }


/* noise grain effect */
#noise-bg {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none; /* чтобы не мешало кликам */
    z-index: 1;
	opacity:.3;
  }

  canvas#noise-canvas {
    width: 100%;
    height: 100%;
    display: block;
  }

/* 34. vertical lines */
.vertical-lines-wrapper {
position: fixed;
width: 100%;
height: 100%;
overflow: hidden;
left: 0;
top: 0;
margin: 0;
-webkit-pointer-events: none;
   -moz-pointer-events: none;
        pointer-events: none;
z-index: 2;
	opacity:.5;
}

.vertical-lines {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
        opacity: 1;
   -moz-opacity: 1;
-webkit-opacity: 1;
filter: alpha(opacity=100);
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
}

.vertical-effect {
position: relative;
width: 25%;
height: 100%;
float: left;
-webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
        box-sizing: border-box;
border-right: 1px solid rgba(119, 119, 119, .2);
}

.vertical-effect::before {
content: "";
position: absolute;
display: block;
width: 3px;
-webkit-animation-direction: normal;
   -moz-animation-direction: normal;
    -ms-animation-direction: normal;
     -o-animation-direction: normal;
        animation-direction: normal;
}

.vertical-effect:first-child::before,
.vertical-effect:last-child::before {
content: "";
position: absolute;
right: -2px;
}

.vertical-effect:first-child::before {
top: 0;
-webkit-animation: raindrop 6s ease-out infinite;
   -moz-animation: raindrop 6s ease-out infinite;
    -ms-animation: raindrop 6s ease-out infinite;
     -o-animation: raindrop 6s ease-out infinite;
        animation: raindrop 6s ease-out infinite;
background: -webkit-linear-gradient(top, rgba(225, 225, 225, 0), rgba(225, 225, 225, 1));
background: -ms-linear-gradient(top, rgba(225, 225, 225, 0), rgba(225, 225, 225, 1));
background: linear-gradient(top, rgba(225, 225, 225, 0), rgba(225, 225, 225, 1));
}

.vertical-effect:last-child::before {
bottom: 0;
-webkit-animation: raindrop-reverse 6s ease-out infinite;
   -moz-animation: raindrop-reverse 6s ease-out infinite;
    -ms-animation: raindrop-reverse 6s ease-out infinite;
     -o-animation: raindrop-reverse 6s ease-out infinite;
        animation: raindrop-reverse 6s ease-out infinite;
background: -webkit-linear-gradient(top, rgba(225, 225, 225, 1), rgba(225, 225, 225, 0));
background: -ms-linear-gradient(top, rgba(225, 225, 225, 1), rgba(225, 225, 225, 0));
background: linear-gradient(top, rgba(225, 225, 225, 1), rgba(225, 225, 225, 0));
}

@-webkit-keyframes raindrop {
  0% {
    top: -10%;
    opacity: 0;
    height: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    top: 100%;
    height: 35%;
  }
}
@-ms-keyframes raindrop {
  0% {
    top: -10%;
    opacity: 0;
    height: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    top: 100%;
    height: 35%;
  }
}
@keyframes raindrop {
  0% {
    top: -10%;
    opacity: 0;
    height: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    top: 100%;
    height: 35%;
  }
}

@-webkit-keyframes raindrop-reverse {
  0% {
    bottom: -10%;
    opacity: 0;
    height: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    bottom: 100%;
    height: 35%;
  }
}
@-ms-keyframes raindrop-reverse {
  0% {
    bottom: -10%;
    opacity: 0;
    height: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    bottom: 100%;
    height: 35%;
  }
}
@keyframes raindrop-reverse {
  0% {
    bottom: -10%;
    opacity: 0;
    height: 0;
  }
  50% {
    opacity: 1;
   }
  100% {
    bottom: 100%;
    height: 35%;
  }
}

/* spotlight */

.edqr-spotlight {
  position: fixed; 
  top: 0; left: 0; 
  width: 100vw;
  height: 100vh;
  z-index: 0;        
  pointer-events: none;
}

/* ===== 3) Canvas-оверлей + вход/выход ===== */
.edqr-spotlight__canvas{
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  transition: opacity .6s cubic-bezier(.2,.7,0,1);
  will-change: opacity;
}
/* Активна (в вьюпорте) → красиво появляется */
.edqr-spotlight.is-active .edqr-spotlight__canvas{
  opacity: var(--spot-opacity);
}
/* Нет движения → плавно исчезает */
.edqr-spotlight.is-idle .edqr-spotlight__canvas{
  opacity: 0;
}

/* Едва заметная виньетка по краям секции (эстетика, дешевле канваса) */
.edqr-spotlight::after{
  content:"";
  position:absolute; inset:-1px; z-index:0; pointer-events:none;
  background:
    radial-gradient(120% 120% at 50% 50%, transparent 60%, rgba(0,0,0,.18) 100%);
}

/* Доступность и экономия на мобилках */
@media (prefers-reduced-motion: reduce){
  .edqr-spotlight__canvas{ transition: none; }
}
@media (pointer: coarse){
  .edqr-spotlight__canvas{ display: none; } /* отключаем на тач-устройствах */
}


