/* ================================================================
   HC Torpedo — Video page animations & shimmer effects
   ================================================================ */

/* ── Page fade-in ── */
@keyframes tp-fade-up {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes tp-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Ice shimmer (silver-blue diagonal sweep) ── */
@keyframes tp-shimmer {
  0%   { background-position: -700px 0; }
  100% { background-position: 700px 0; }
}

/* ── Puck slide ── */
@keyframes tp-slide-right {
  from { opacity: 0; transform: translateX(-24px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ── Page title ── */
.page-head__title {
  animation: tp-slide-right .55s cubic-bezier(.22,1,.36,1) both;
}

.page-head__breadcrumbs {
  animation: tp-fade-in .5s .2s both;
}

/* ── Filter / navbar ── */
.list-news__navbar {
  animation: tp-fade-up .45s .15s cubic-bezier(.22,1,.36,1) both;
}

/* ── Cards staggered entrance ── */
.list-news__item {
  animation: tp-fade-up .55s cubic-bezier(.22,1,.36,1) both;
  animation-delay: calc(var(--tp-item-idx, 0) * 80ms + 200ms);
}

/* ── Card hover — ice lift ── */
.list-news__item-wrapper {
  display: block;
  transition: transform .22s cubic-bezier(.22,1,.36,1),
              box-shadow .22s ease;
  will-change: transform;
}

.list-news__item-wrapper:hover {
  transform: translateY(-6px) scale(1.012);
  box-shadow: 0 18px 48px rgba(0, 32, 91, .22),
              0 4px 12px rgba(200, 16, 46, .12);
}

/* ── Image container position fix for shimmer overlay ── */
.list-news__item-img-container {
  position: relative;
  overflow: hidden;
}

/* ── Shimmer skeleton BEFORE image loads ── */
.list-news__item-img-container::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    #0c1931 0%,
    #1a2d52 30%,
    #2a4a8a 48%,
    #1a2d52 65%,
    #0c1931 100%
  );
  background-size: 700px 100%;
  animation: tp-shimmer 1.6s ease-in-out infinite;
  opacity: 1;
  transition: opacity .35s ease;
  border-radius: inherit;
  z-index: 1;
  pointer-events: none;
}

/* Remove shimmer once image is loaded */
.list-news__item-img-container.img-loaded::after {
  opacity: 0;
}

/* ── Image reveal animation ── */
.list-news__item-img {
  transition: transform .38s cubic-bezier(.22,1,.36,1),
              opacity .35s ease;
  opacity: 0;
}

.list-news__item-img.img-loaded {
  opacity: 1;
}

.list-news__item-wrapper:hover .list-news__item-img {
  transform: scale(1.06);
}

/* ── Category badge hover glow ── */
.list-news__item-type {
  transition: box-shadow .18s ease, transform .18s ease;
}

.list-news__item-wrapper:hover .list-news__item-type {
  box-shadow: 0 0 12px rgba(200, 16, 46, .55);
  transform: scale(1.05);
}

/* ── Title underline sweep ── */
.list-news__item-title {
  position: relative;
  display: inline;
  background-image: linear-gradient(#c8102e, #c8102e);
  background-size: 0 2px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-size .28s cubic-bezier(.22,1,.36,1);
}

.list-news__item-wrapper:hover .list-news__item-title {
  background-size: 100% 2px;
}

/* ── "Читать подробнее" btn slide-in on hover ── */
.list-news__item-btn {
  transition: opacity .22s ease, transform .22s cubic-bezier(.22,1,.36,1);
}

.list-news__item:not(:hover) .list-news__item-btn {
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
}

.list-news__item:hover .list-news__item-btn {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* ── Big item special ── */
.list-news__big-container .list-news__item-wrapper:hover {
  transform: translateY(-8px) scale(1.008);
  box-shadow: 0 24px 64px rgba(0, 32, 91, .28),
              0 6px 20px rgba(200, 16, 46, .15);
}

/* ── Date fade on hover ── */
.list-news__item-date {
  transition: color .18s ease;
}

.list-news__item-wrapper:hover .list-news__item-date {
  color: #c8102e;
}

/* ── Page transition overlay (puck whoosh) ── */
#tp-page-transition {
  position: fixed;
  inset: 0;
  background: #00205b;
  z-index: 9999;
  pointer-events: none;
  transform: translateX(-101%);
  transition: transform .38s cubic-bezier(.86,0,.07,1);
}

#tp-page-transition.active {
  transform: translateX(0);
}

/* ── Dropdown fade ── */
.dropdown__content {
  animation: tp-fade-up .25s cubic-bezier(.22,1,.36,1);
}
