/* «Будь собой» — wow-эффекты. Лёгкие, отключаемые (reduced-motion), не мешающие UX. */

/* 3. Рисующееся подчёркивание ссылок (в тексте) */
main p a:not(.btn), .gm-quote a, article a:not(.btn), .lead a {
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1.5px;
  background-repeat: no-repeat;
  background-position: left 100%;
  text-decoration: none;
  transition: background-size .45s cubic-bezier(.2,.8,.3,1);
  padding-bottom: 1px;
}
main p a:not(.btn):hover, .gm-quote a:hover, article a:not(.btn):hover, .lead a:hover {
  background-size: 100% 1.5px;
}

/* 2. Tilt-карточки: базовые transition (наклон считает JS) */
html.js [data-tilt] { transition: transform .18s ease-out, box-shadow .3s ease; transform-style: preserve-3d; will-change: transform; }
html.js [data-tilt] .tilt-glare {
  position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: radial-gradient(320px circle at var(--gx,50%) var(--gy,50%), rgba(255,255,255,.35), transparent 55%);
  opacity: 0; transition: opacity .3s ease;
}
html.js [data-tilt]:hover .tilt-glare { opacity: 1; }

/* 4. Магнитная кнопка */
html.js [data-magnet] { transition: transform .22s cubic-bezier(.2,.8,.3,1); will-change: transform; }

/* Доп: «дышащее» свечение за главной CTA */
.glow-cta { position: relative; isolation: isolate; }
.glow-cta::before {
  content: ""; position: absolute; inset: -14px -22px; z-index: -1; border-radius: 999px;
  background: radial-gradient(closest-side, rgba(54,171,218,.30), rgba(116,199,224,.16), transparent 75%);
  filter: blur(14px);
  animation: glowBreath 4.5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes glowBreath { 0%,100% { opacity:.55; transform:scale(.96); } 50% { opacity:1; transform:scale(1.05); } }

/* Доп: проявление фото «кляксой» при скролле */
html.js .blob-reveal { clip-path: circle(0% at 55% 42%); filter: blur(6px); transition: clip-path 1.1s cubic-bezier(.3,.7,.2,1), filter .9s ease .15s; }
html.js .blob-reveal.in { clip-path: circle(135% at 55% 42%); filter: blur(0); }

/* Доп: каскад слов hero-заголовка */
html.js .hero-cascade .w { display: inline-block; opacity: 0; transform: translateY(.55em) rotate(2deg); animation: wordIn .7s cubic-bezier(.2,.8,.3,1) forwards; animation-delay: calc(var(--i) * 90ms); }
@keyframes wordIn { to { opacity: 1; transform: none; } }

/* Доп: плавный переход между страницами (там, где поддерживается) */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .28s; }

/* Лепестки: канвас поверх всего, клики сквозь */
#petal-canvas { position: fixed; inset: 0; z-index: 3000; pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
  main p a:not(.btn), .gm-quote a, article a:not(.btn), .lead a { transition: none; }
  html.js [data-tilt], html.js [data-magnet] { transition: none; transform: none !important; }
  .glow-cta::before { animation: none; opacity: .6; }
  html.js .blob-reveal { clip-path: none; filter: none; transition: none; }
  html.js .hero-cascade .w { animation: none; opacity: 1; transform: none; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}
