/* Evano · jemné animované pozadí sekcí (projektová komponenta, není součást dsgn)
   Použití: sekce dostane třídu .has-ev-bg (position: relative; isolation: isolate)
   a jako první potomek <div class="ev-bg ev-bg--hero"> nebo ev-bg--about.
   Barvy jsou ilustrační (ne UI tokeny), proto žijí ve vlastních proměnných --ev-*. */
.has-ev-bg {
  position: relative;
  isolation: isolate;
}

.ev-bg {
  --ev-sage: 141 166 149;   /* #8DA695 */
  --ev-peach: 235 165 132;  /* #EBA584 */
  --ev-cream: 247 243 238;  /* #F7F3EE */
  --ev-strength: 1;         /* 0–1.5: síla barev */
  --ev-bg: rgb(var(--ev-cream));
  --ev-sage-rgb: rgb(var(--ev-sage));
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  background: var(--ev-bg);
}
.ev-bg > * { position: absolute; will-change: transform; }

/* Měkké barevné „aury“: radiální gradient bez filtru blur = levné na výkon */
.ev-blob {
  --ev-fill: radial-gradient(closest-side, rgb(var(--c) / calc(var(--a) * var(--ev-strength))), rgb(var(--c) / 0) 100%);
  width: var(--s);
  aspect-ratio: 1;
  left: var(--x);
  top: var(--y);
  margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  border-radius: 50%;
  background: var(--ev-fill);
  animation: ev-drift var(--d, 40s) ease-in-out infinite alternate;
  animation-delay: var(--dl, 0s);
}
.ev-blob--sage { --c: var(--ev-sage); }
.ev-blob--peach { --c: var(--ev-peach); }
@keyframes ev-drift {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(var(--mx), var(--my)) scale(1.08); }
  100% { transform: translate(calc(var(--mx) * -.6), calc(var(--my) * .8)) scale(.96); }
}

/* Pulz z portrétu: nepravidelné „dýchající“ kruhy s gradientem dovnitř od linky.
   Rostou od středu ven, pomalu se otáčejí a mizí. */
.ev-pulse {
  left: 50%;
  top: var(--ev-rings-y, 9.375rem);
  width: var(--ev-pulse-size, min(150vw, 81.25rem));
  height: auto;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  overflow: visible;
}
.ev-pulse-ring {
  transform-box: view-box;
  transform-origin: 0 0;
  opacity: 0;
  animation: ev-pulse 30s cubic-bezier(.35, .15, .45, 1) infinite;
}
.ev-spin {
  transform-box: view-box;
  transform-origin: 0 0;
  animation: ev-spin var(--sd, 100s) linear infinite;
}
.ev-pulse-line {
  --ev-stroke: rgb(var(--ev-sage) / calc(.55 * var(--ev-strength)));
  fill: none;
  stroke: var(--ev-stroke);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
@keyframes ev-pulse {
  0%   { transform: scale(.15); opacity: 0; }
  25%  { opacity: .85; }
  70%  { opacity: .5; }
  100% { transform: scale(1); opacity: 0; }
}
@keyframes ev-spin { to { transform: rotate(360deg); } }

/* Dechové vlny: vrstvy přes celou plochu hero, linka nahoře a pod ní jemný gradient.
   Vrstvy se pomalu nadechují (amplituda) a plynou do strany. Kolem textu je zeslabuje maska;
   její střed nastavíš --ev-text-x / --ev-text-y. */
.ev-waves {
  --m: radial-gradient(ellipse var(--ev-mask-w, 40%) var(--ev-mask-h, 34%) at var(--ev-text-x, 26%) var(--ev-text-y, 55%), rgb(0 0 0 / .12) 0%, rgb(0 0 0 / .12) 50%, #000 100%);
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  -webkit-mask-image: var(--m);
  mask-image: var(--m);
}
.ev-line {
  --ev-stroke: rgb(var(--ev-sage) / calc(var(--o) * var(--ev-strength)));
  fill: none;
  stroke: var(--ev-stroke);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.ev-stop-a { stop-color: var(--ev-sage-rgb); stop-opacity: calc(.08 * var(--ev-strength)); }
.ev-stop-b { stop-color: var(--ev-sage-rgb); stop-opacity: 0; }
/* -100 % of the view box = one wave period (the SVG viewBox is 1200 wide, paths repeat every 1200) */
.ev-drift { transform-box: view-box; animation: ev-flow 140s linear infinite; }
.ev-breath { transform-box: fill-box; transform-origin: center; animation: ev-breathe 10s ease-in-out infinite; }
@keyframes ev-breathe {
  0%, 100% { transform: scaleY(.7); }
  45%, 55% { transform: scaleY(1.08); }
}
@keyframes ev-flow { to { transform: translateX(-100%); } }

/* Jemné zrno papíru, sjednotí pozadí s texturou ilustrací */
.ev-grain {
  inset: 0;
  opacity: .35;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .34 0 0 0 0 .26 0 0 0 .35 -.12'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Hero: šalvěj vlevo za textem, broskev vpravo za ordinačními hodinami */
.ev-bg--hero .b1 { --x: 12%; --y: 62%; --s: min(70vw, 47.5rem); --a: .30; --mx: 6vw; --my: -4vh; --d: 46s; }
.ev-bg--hero .b2 { --x: 82%; --y: 38%; --s: min(60vw, 40rem); --a: .30; --mx: -5vw; --my: 5vh; --d: 38s; }
.ev-bg--hero .b3 { --x: 52%; --y: 12%; --s: min(46vw, 30rem); --a: .18; --mx: -4vw; --my: 6vh; --d: 52s; --dl: -12s; }
.ev-bg--hero .b4 { --x: 62%; --y: 96%; --s: min(50vw, 32.5rem); --a: .20; --mx: 5vw; --my: -3vh; --d: 42s; --dl: -20s; }

/* O lékařce: nepravidelný pulz se šíří z portrétu, dvě měkké aury po stranách.
   Střed pulzu = střed portrétu (horní odsazení sekce + polovina 8rem portrétu). */
.ev-bg--about { --ev-rings-y: calc(var(--dsgn-section-pad-y) + 4rem); }
.ev-bg--about .b1 { --x: 16%; --y: 30%; --s: min(56vw, 35rem); --a: .24; --mx: 4vw; --my: 5vh; --d: 44s; }
.ev-bg--about .b2 { --x: 86%; --y: 70%; --s: min(56vw, 36.25rem); --a: .24; --mx: -5vw; --my: -4vh; --d: 40s; --dl: -15s; }

@media (prefers-reduced-motion: reduce) {
  .ev-bg * { animation: none !important; }
  .ev-pulse-ring { opacity: .5; transform: scale(.35); }
  .ev-pulse-ring:nth-child(3) { opacity: .35; transform: scale(.55); }
  .ev-pulse-ring:nth-child(4) { opacity: .2; transform: scale(.78); }
}
