/**
 * Hamed Academic Dashboard 4.0.0
 * Selectable homepage image reveals and progressive trend-line drawing.
 */

/* --------------------------------------------------------------------------
   What’s New image effects
   -------------------------------------------------------------------------- */
.had-home-v320 .had-news-media {
  isolation: isolate;
  background-image: none !important;
}
.had-home-v320 .had-news-image-base,
.had-home-v320 .had-news-effect-pieces > i {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  background-image: var(--had-news-image) !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  pointer-events: none;
}
.had-home-v320 .had-news-image-base {
  z-index: 1;
  display: block;
  opacity: 1;
  transform: none;
  filter: none;
  clip-path: inset(0);
}
.had-home-v320 .had-news-effect-pieces {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  overflow: hidden;
  pointer-events: none;
}
.had-home-v320 .had-news-effect-pieces > i {
  display: block !important;
  opacity: 0;
  clip-path: inset(
    var(--had-piece-top)
    var(--had-piece-right)
    var(--had-piece-bottom)
    var(--had-piece-left)
  );
  transform-origin: center;
  will-change: transform, opacity, filter, clip-path;
}
.had-home-v320 .had-news-scanner {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: none;
  overflow: hidden;
  pointer-events: none;
}
.had-home-v320 .had-news-scanner::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -12%;
  height: 12%;
  border-bottom: 2px solid rgba(34, 211, 238, .94);
  background: linear-gradient(180deg, rgba(34, 211, 238, 0), rgba(34, 211, 238, .22));
  box-shadow: 0 8px 22px rgba(34, 211, 238, .38);
}
.had-home-v320 .had-news-frame {
  position: absolute !important;
  inset: 10px !important;
  z-index: 6 !important;
}
.had-home-v320 .had-news-media::before {
  z-index: 4 !important;
}
.had-home-v320 .had-news-media > b {
  z-index: 7 !important;
}

/* Do not start until JavaScript has resolved any random mode. */
.had-home-v320 .had-news-console:not(.had-news-effects-ready) .had-news-image-base {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  clip-path: inset(0) !important;
}
.had-home-v320 .had-news-console:not(.had-news-effects-ready) .had-news-effect-pieces,
.had-home-v320 .had-news-console:not(.had-news-effects-ready) .had-news-scanner {
  display: none !important;
}

/* Puzzle assemble. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-puzzle .had-news-image-base,
.had-news-effects-ready .had-news-item.is-active.had-news-effect-mosaic .had-news-image-base,
.had-news-effects-ready .had-news-item.is-active.had-news-effect-horizontal-blinds .had-news-image-base,
.had-news-effects-ready .had-news-item.is-active.had-news-effect-vertical-panels .had-news-image-base,
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-image-base,
.had-news-effects-ready .had-news-item.is-active.had-news-effect-pixel-dissolve .had-news-image-base {
  opacity: 0;
}
.had-news-effects-ready .had-news-item.is-active.had-news-effect-puzzle .had-news-effect-pieces > i {
  animation: hadNewsPuzzleAssemble var(--had-news-effect-duration) cubic-bezier(.18, .76, .16, 1) forwards;
  animation-delay: calc(var(--had-piece-index) * 35ms);
}
@keyframes hadNewsPuzzleAssemble {
  0% { opacity: 0; transform: translate3d(0, 28px, 0) scale(.7) rotate(-4deg); filter: brightness(.55) saturate(.55); }
  62% { opacity: 1; transform: translate3d(0, -2px, 0) scale(1.025) rotate(.4deg); filter: brightness(1.09) saturate(1.08); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotate(0); filter: none; }
}

/* Mosaic reveal. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-mosaic .had-news-effect-pieces > i {
  animation: hadNewsMosaicReveal var(--had-news-effect-duration) cubic-bezier(.2, .72, .2, 1) forwards;
  animation-delay: calc(var(--had-piece-random) * 38ms);
}
@keyframes hadNewsMosaicReveal {
  0% { opacity: 0; transform: scale(.18); filter: brightness(1.5) blur(5px); }
  55% { opacity: .94; transform: scale(1.045); filter: brightness(1.15) blur(0); }
  100% { opacity: 1; transform: scale(1); filter: none; }
}

/* Horizontal blinds. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-horizontal-blinds .had-news-effect-pieces > i {
  transform-origin: center top;
  animation: hadNewsHorizontalBlind var(--had-news-effect-duration) cubic-bezier(.18, .74, .18, 1) forwards;
  animation-delay: calc(var(--had-piece-row) * 105ms);
}
@keyframes hadNewsHorizontalBlind {
  0% { opacity: 0; transform: scaleY(.03) translateY(-10px); filter: brightness(.7); }
  65% { opacity: 1; transform: scaleY(1.04) translateY(0); filter: brightness(1.08); }
  100% { opacity: 1; transform: scaleY(1); filter: none; }
}

/* Vertical panels. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-vertical-panels .had-news-effect-pieces > i {
  transform-origin: left center;
  animation: hadNewsVerticalPanel var(--had-news-effect-duration) cubic-bezier(.2, .78, .16, 1) forwards;
  animation-delay: calc(var(--had-piece-column) * 85ms);
}
.had-news-effects-ready .had-news-item.is-active.had-news-effect-vertical-panels .had-news-effect-pieces > i:nth-child(even) {
  transform-origin: right center;
}
@keyframes hadNewsVerticalPanel {
  0% { opacity: 0; transform: scaleX(.025) translateX(-12px); filter: brightness(.68); }
  65% { opacity: 1; transform: scaleX(1.035) translateX(0); filter: brightness(1.08); }
  100% { opacity: 1; transform: scaleX(1); filter: none; }
}

/* Diagonal sweep. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-diagonal-sweep .had-news-image-base {
  animation: hadNewsDiagonalSweep var(--had-news-effect-duration) cubic-bezier(.24, .72, .18, 1) both;
}
@keyframes hadNewsDiagonalSweep {
  0% { opacity: .35; clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); filter: brightness(.65) saturate(.65); }
  65% { opacity: 1; clip-path: polygon(0 0, 88% 0, 62% 100%, 0 100%); filter: brightness(1.06) saturate(1.04); }
  100% { opacity: 1; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); filter: none; }
}

/* Soft zoom and fade. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-soft-zoom .had-news-image-base {
  animation: hadNewsSoftZoom var(--had-news-effect-duration) cubic-bezier(.16, .7, .18, 1) both;
}
@keyframes hadNewsSoftZoom {
  0% { opacity: 0; transform: scale(1.13); filter: brightness(.72); }
  100% { opacity: 1; transform: scale(1); filter: none; }
}

/* Blur to focus. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-blur-focus .had-news-image-base {
  animation: hadNewsBlurFocus var(--had-news-effect-duration) cubic-bezier(.18, .72, .16, 1) both;
}
@keyframes hadNewsBlurFocus {
  0% { opacity: .24; transform: scale(1.07); filter: blur(18px) brightness(.62) saturate(.65); }
  70% { opacity: 1; transform: scale(1.012); filter: blur(1px) brightness(1.06) saturate(1.04); }
  100% { opacity: 1; transform: scale(1); filter: none; }
}

/* Split-screen assemble. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-effect-pieces > i {
  animation: hadNewsSplitScreen var(--had-news-effect-duration) cubic-bezier(.18, .78, .16, 1) forwards;
  animation-delay: calc(var(--had-piece-row) * 45ms);
}
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-effect-pieces > i:nth-child(4n+1),
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-effect-pieces > i:nth-child(4n+2) {
  --had-split-x: -58px;
}
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-effect-pieces > i:nth-child(4n+3),
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-effect-pieces > i:nth-child(4n+4) {
  --had-split-x: 58px;
}
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-effect-pieces > i:nth-child(-n+4) { --had-split-y: -34px; }
.had-news-effects-ready .had-news-item.is-active.had-news-effect-split-screen .had-news-effect-pieces > i:nth-child(n+9) { --had-split-y: 34px; }
@keyframes hadNewsSplitScreen {
  0% { opacity: 0; transform: translate3d(var(--had-split-x, 0), var(--had-split-y, 0), 0) scale(.93); filter: brightness(.62); }
  68% { opacity: 1; transform: translate3d(0, 0, 0) scale(1.018); filter: brightness(1.08); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: none; }
}

/* Data scanner reveal. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-data-scanner .had-news-image-base {
  animation: hadNewsScannerReveal var(--had-news-effect-duration) linear both;
}
.had-news-effects-ready .had-news-item.is-active.had-news-effect-data-scanner .had-news-scanner {
  display: block;
}
.had-news-effects-ready .had-news-item.is-active.had-news-effect-data-scanner .had-news-scanner::before {
  animation: hadNewsScannerLine var(--had-news-effect-duration) cubic-bezier(.18, .72, .18, 1) both;
}
@keyframes hadNewsScannerReveal {
  0% { opacity: .2; clip-path: inset(0 0 100% 0); filter: brightness(.58) saturate(.64); }
  100% { opacity: 1; clip-path: inset(0); filter: none; }
}
@keyframes hadNewsScannerLine {
  0% { transform: translateY(0); opacity: 0; }
  8% { opacity: 1; }
  92% { opacity: 1; }
  100% { transform: translateY(930%); opacity: 0; }
}

/* Pixel dissolve. */
.had-news-effects-ready .had-news-item.is-active.had-news-effect-pixel-dissolve .had-news-effect-pieces > i {
  animation: hadNewsPixelDissolve var(--had-news-effect-duration) steps(7, end) forwards;
  animation-delay: calc(var(--had-piece-random) * 42ms);
}
@keyframes hadNewsPixelDissolve {
  0% { opacity: 0; transform: scale(.68); filter: contrast(1.7) brightness(1.35) blur(4px); }
  45% { opacity: .55; transform: scale(.92); filter: contrast(1.35) brightness(1.16) blur(1.5px); }
  100% { opacity: 1; transform: scale(1); filter: none; }
}

/* No-animation mode is an explicit, complete image. */
.had-news-effects-ready .had-news-item.had-news-effect-none .had-news-image-base {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  clip-path: inset(0) !important;
  animation: none !important;
}
.had-news-effects-ready .had-news-item.had-news-effect-none .had-news-effect-pieces,
.had-news-effects-ready .had-news-item.had-news-effect-none .had-news-scanner {
  display: none !important;
}

/* --------------------------------------------------------------------------
   Trend-line drawing
   JavaScript supplies exact path length and progressive delays.
   -------------------------------------------------------------------------- */
svg.had-trend-animation-ready .had-funding-line,
svg.had-trend-animation-ready .had-year-trend-line,
svg.had-trend-animation-ready .had-scholar-line {
  will-change: stroke-dashoffset;
}
svg.had-trend-animation-ready .had-funding-area,
svg.had-trend-animation-ready .had-year-trend-area,
svg.had-trend-animation-ready .had-scholar-area,
svg.had-trend-animation-ready .had-funding-point,
svg.had-trend-animation-ready .had-year-trend-point,
svg.had-trend-animation-ready .had-funding-point-value,
svg.had-trend-animation-ready .had-year-trend-value,
svg.had-trend-animation-ready .had-scholar-point > line,
svg.had-trend-animation-ready .had-scholar-point > circle,
svg.had-trend-animation-ready .had-scholar-value {
  will-change: opacity, transform;
}

@media (max-width: 700px) {
  .had-home-v320 .had-news-effect-pieces > i {
    animation-delay: calc(var(--had-piece-index) * 22ms) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .had-home-v320 .had-news-image-base {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: inset(0) !important;
    animation: none !important;
  }
  .had-home-v320 .had-news-effect-pieces,
  .had-home-v320 .had-news-scanner {
    display: none !important;
  }
}
