@layer components {
  /* Анимированный логотип «Инновационный Сосудистый Центр».
     Знак обведён по растровому логотипу. Анимация: кольцо замыкается от основания,
     сосуды прорастают по осевым линиям; при наведении — импульс по красным ветвям.
     Состояния: .is-playing — проиграть анимацию; .has-pulse — импульс при наведении. */
  .isc-logo{font-family:var(--font);--isc-logo-blue:#1B75BC;display:inline-flex;align-items:center;gap:8px;text-decoration:none;border-radius:12px}
  .isc-logo:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
  .isc-logo__svg{width:40px;height:40px;display:block;flex-shrink:0;overflow:visible}
  .isc-logo__word{position:relative;display:flex;flex-direction:column;color:var(--isc-logo-blue);font-weight:700;font-size:11px;line-height:12px;letter-spacing:.01em;white-space:nowrap}
  .isc-logo__city{font-weight:500;font-size:10px;letter-spacing:0;margin-top:2px}
  /* Сдвиг через left, а не transform: слой GPU после анимации снимается, и текст на дробной координате подскакивал. Высоты строк целые по той же причине. */
  @keyframes isc-rise{from{opacity:0;left:-8px}
  to{opacity:1;left:0}
  }
  .isc-logo--slow{--isc-logo-d:2200ms}
  .isc-logo--normal{--isc-logo-d:1600ms}
  .isc-logo--fast{--isc-logo-d:1100ms}
  .isc-logo__ln{stroke-dasharray:1;stroke-dashoffset:0}
  .isc-logo.is-playing .isc-logo__ln{animation:isc-draw 1s linear both}
  .isc-logo.is-playing .isc-logo__ring{animation:isc-draw calc(var(--isc-logo-d)*.45) cubic-bezier(.45,.05,.25,1) both}
  .isc-logo__fill{opacity:1}
  .isc-logo.is-playing .isc-logo__fill{animation:isc-fadein calc(var(--isc-logo-d)*.1) linear calc(var(--isc-logo-d)*0.82) both}
  .isc-logo.is-playing .isc-logo__word{animation:isc-rise calc(var(--isc-logo-d)*.4) cubic-bezier(.2,.7,.2,1) calc(var(--isc-logo-d)*.4) both}
  @keyframes isc-draw{0%{stroke-dashoffset:1;opacity:0}
  2%{opacity:1}
  100%{stroke-dashoffset:0;opacity:1}
  }
  @keyframes isc-fadein{from{opacity:0}
  to{opacity:1}
  }
  .isc-logo__pulse{stroke-dasharray:60 4000;stroke-dashoffset:60;opacity:0}
  .isc-logo.is-playing .isc-logo__vb0{animation-delay:calc(var(--isc-logo-d)*0.12);animation-duration:calc(var(--isc-logo-d)*0.68)}
  .isc-logo.is-playing .isc-logo__vb1{animation-delay:calc(var(--isc-logo-d)*0.785);animation-duration:calc(var(--isc-logo-d)*0.02)}
  .isc-logo.is-playing .isc-logo__vb2{animation-delay:calc(var(--isc-logo-d)*0.594);animation-duration:calc(var(--isc-logo-d)*0.192)}
  .isc-logo.is-playing .isc-logo__vb3{animation-delay:calc(var(--isc-logo-d)*0.734);animation-duration:calc(var(--isc-logo-d)*0.036)}
  .isc-logo.is-playing .isc-logo__vb4{animation-delay:calc(var(--isc-logo-d)*0.745);animation-duration:calc(var(--isc-logo-d)*0.023)}
  .isc-logo.is-playing .isc-logo__vb5{animation-delay:calc(var(--isc-logo-d)*0.484);animation-duration:calc(var(--isc-logo-d)*0.252)}
  .isc-logo.is-playing .isc-logo__vb6{animation-delay:calc(var(--isc-logo-d)*0.315);animation-duration:calc(var(--isc-logo-d)*0.393)}
  .isc-logo.is-playing .isc-logo__vb7{animation-delay:calc(var(--isc-logo-d)*0.65);animation-duration:calc(var(--isc-logo-d)*0.048)}
  .isc-logo.is-playing .isc-logo__vb8{animation-delay:calc(var(--isc-logo-d)*0.684);animation-duration:calc(var(--isc-logo-d)*0.02)}
  .isc-logo.is-playing .isc-logo__vb9{animation-delay:calc(var(--isc-logo-d)*0.659);animation-duration:calc(var(--isc-logo-d)*0.021)}
  .isc-logo.is-playing .isc-logo__vb10{animation-delay:calc(var(--isc-logo-d)*0.573);animation-duration:calc(var(--isc-logo-d)*0.106)}
  .isc-logo.is-playing .isc-logo__vb11{animation-delay:calc(var(--isc-logo-d)*0.612);animation-duration:calc(var(--isc-logo-d)*0.036)}
  .isc-logo.is-playing .isc-logo__vb12{animation-delay:calc(var(--isc-logo-d)*0.592);animation-duration:calc(var(--isc-logo-d)*0.055)}
  .isc-logo.is-playing .isc-logo__vb13{animation-delay:calc(var(--isc-logo-d)*0.466);animation-duration:calc(var(--isc-logo-d)*0.091)}
  .isc-logo.is-playing .isc-logo__vr0{animation-delay:calc(var(--isc-logo-d)*0.3);animation-duration:calc(var(--isc-logo-d)*0.466)}
  .isc-logo.is-playing .isc-logo__vr1{animation-delay:calc(var(--isc-logo-d)*0.544);animation-duration:calc(var(--isc-logo-d)*0.179)}
  .isc-logo.is-playing .isc-logo__vr2{animation-delay:calc(var(--isc-logo-d)*0.655);animation-duration:calc(var(--isc-logo-d)*0.049)}
  .isc-logo.is-playing .isc-logo__vr3{animation-delay:calc(var(--isc-logo-d)*0.685);animation-duration:calc(var(--isc-logo-d)*0.02)}
  .isc-logo.is-playing .isc-logo__vr4{animation-delay:calc(var(--isc-logo-d)*0.632);animation-duration:calc(var(--isc-logo-d)*0.049)}
  .isc-logo.is-playing .isc-logo__vr5{animation-delay:calc(var(--isc-logo-d)*0.466);animation-duration:calc(var(--isc-logo-d)*0.188)}
  .isc-logo.is-playing .isc-logo__vr6{animation-delay:calc(var(--isc-logo-d)*0.346);animation-duration:calc(var(--isc-logo-d)*0.198)}
  @media (hover:hover){
  .isc-logo.has-pulse:hover .isc-logo__pulse-0{animation:isc-pulse-0 1000ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-1{animation:isc-pulse-1 909ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-2{animation:isc-pulse-2 867ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-3{animation:isc-pulse-3 866ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-4{animation:isc-pulse-4 819ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-5{animation:isc-pulse-5 760ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-6{animation:isc-pulse-6 524ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b0{--isc-pulse-len:618;animation:isc-pulse-b 989ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b1{--isc-pulse-len:604;animation:isc-pulse-b 966ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b3{--isc-pulse-len:560;animation:isc-pulse-b 896ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b4{--isc-pulse-len:509;animation:isc-pulse-b 814ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b5{--isc-pulse-len:526;animation:isc-pulse-b 842ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b6{--isc-pulse-len:531;animation:isc-pulse-b 850ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b7{--isc-pulse-len:393;animation:isc-pulse-b 629ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b8{--isc-pulse-len:477;animation:isc-pulse-b 763ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-b9{--isc-pulse-len:505;animation:isc-pulse-b 808ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-br0{--isc-pulse-len:763;animation:isc-pulse-b 1221ms cubic-bezier(.4,.1,.6,1) both}
  .isc-logo.has-pulse:hover .isc-logo__pulse-br1{--isc-pulse-len:763;animation:isc-pulse-b 1221ms cubic-bezier(.4,.1,.6,1) both}
  }
  /* Синие ветви и кольцо: длина пробега — в --isc-pulse-len (у каждой ветви своя) */
  @keyframes isc-pulse-b{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:calc(-1px * var(--isc-pulse-len));opacity:0}
  }
  @keyframes isc-pulse-0{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:-440;opacity:0}
  }
  @keyframes isc-pulse-1{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:-400;opacity:0}
  }
  @keyframes isc-pulse-2{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:-381;opacity:0}
  }
  @keyframes isc-pulse-3{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:-381;opacity:0}
  }
  @keyframes isc-pulse-4{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:-360;opacity:0}
  }
  @keyframes isc-pulse-5{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:-334;opacity:0}
  }
  @keyframes isc-pulse-6{0%{stroke-dashoffset:60;opacity:0}
  10%{opacity:.85}
  85%{opacity:.85}
  100%{stroke-dashoffset:-231;opacity:0}
  }
  @media (prefers-reduced-motion:reduce){.isc-logo .isc-logo__ln,.isc-logo .isc-logo__word,.isc-logo .isc-logo__fill,.isc-logo .isc-logo__pulse{animation:none!important}
  }
}
