/* =========================================================
   BAGIAN 25 — PREMIUM MICRO INTERACTIONS
========================================================= */
html{scroll-behavior:smooth}

.reveal-up{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1);
}

.reveal-up.is-visible{
  opacity:1;
  transform:none;
}

.unified-header{
  transition:box-shadow .25s ease,background .25s ease,transform .25s ease;
}

.unified-header.is-scrolled{
  background:rgba(255,255,255,.95);
  box-shadow:0 12px 34px rgba(7,31,80,.08);
}

.public-main-nav a,
.nav-dropdown-toggle,
.btn,
.filter-pill,
.showcase-detail-btn{
  will-change:transform;
}

.public-main-nav a:active,
.nav-dropdown-toggle:active,
.btn:active,
.filter-pill:active,
.showcase-detail-btn:active{
  transform:scale(.97);
}

.candidate-card,
.premium-candidate-card,
.showcase-card,
.public-award-card,
.award-premium-card,
.premium-pair-card,
.winner-podium-card{
  transform-origin:center bottom;
}

.candidate-photo,
.showcase-photo,
.premium-photo,
.award-photo,
.public-winner-photo,
.public-final-photo{
  transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .45s ease;
}

.candidate-card:hover .candidate-photo,
.showcase-card:hover .showcase-photo,
.premium-candidate-card:hover .premium-photo,
.public-award-card:hover .award-photo,
.award-premium-card:hover .premium-photo,
.premium-pair-card:hover .premium-photo,
.winner-podium-card:hover .premium-photo{
  transform:scale(1.035);
}

.results-hero-copy,
.hero-copy,
.showcase-hero-copy{
  animation:heroEnter .75s cubic-bezier(.2,.8,.2,1) both;
}

.hero-visual,
.showcase-hero-panel{
  animation:heroVisualEnter .85s .08s cubic-bezier(.2,.8,.2,1) both;
}

@keyframes heroEnter{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}

@keyframes heroVisualEnter{
  from{opacity:0;transform:translateX(24px)}
  to{opacity:1;transform:none}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }

  .reveal-up{
    opacity:1!important;
    transform:none!important;
  }
}
