/* Custom keyframes and global overrides */

/* Tối ưu typography cho các heading */
h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

/* Scroll margin top cho anchor links để không bị che bởi sticky header */
html {
  scroll-padding-top: 80px;
}

/* Scroll reveal animations */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.active {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered delay cho các phần tử con */
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-stagger.active > * {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger.active > *:nth-child(1) { transition-delay: 0.1s; }
.reveal-stagger.active > *:nth-child(2) { transition-delay: 0.2s; }
.reveal-stagger.active > *:nth-child(3) { transition-delay: 0.3s; }
.reveal-stagger.active > *:nth-child(4) { transition-delay: 0.4s; }
.reveal-stagger.active > *:nth-child(5) { transition-delay: 0.5s; }

/* Hero background pattern nhẹ nhàng */
.hero-pattern {
  background-color: #ffffff;
  background-image: radial-gradient(#DBEAFE 2px, transparent 2px);
  background-size: 30px 30px;
}

/* Custom underline cho text link */
.link-underline {
  text-decoration: underline;
  text-decoration-color: rgba(37, 99, 235, 0.3); /* brand-blue/30 */
  text-underline-offset: 4px;
  transition: text-decoration-color 0.2s;
}

.link-underline:hover {
  text-decoration-color: #2563EB; /* brand-blue */
}
