body {
  font-family: "Inter", sans-serif;
}
.font-serif-custom {
  font-family: "Newsreader", serif;
}
html {
  -webkit-scroll-behavior: smooth;
  scroll-behavior: smooth;
}
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
@-webkit-keyframes float-subtle {
  0%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
@keyframes float-subtle {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}
.animate-float {
  -webkit-animation: float-subtle 6s ease-in-out infinite;
  animation: float-subtle 6s ease-in-out infinite;
}
.delay-200 {
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms;
}
.delay-500 {
  -webkit-animation-delay: 500ms;
  animation-delay: 500ms;
}
@keyframes dash-flow {
  0% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: -1000;
  }
}
.animate-beam {
  stroke-dasharray: 40 400;
  -webkit-animation: dash-flow 10s linear infinite;
  animation: dash-flow 10s linear infinite;
}
[style*="--border-gradient"]::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: var(--border-radius-before, inherit);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -moz-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  -moz-mask-composite: subtract;
  mask-composite: subtract;
  background: var(--border-gradient);
  pointer-events: none;
}
/* Motion / reveal */
@-webkit-keyframes fade-up {
  0% {
    opacity: 0;
    -webkit-transform: translateY(16px);
    transform: translateY(16px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes fade-up {
  0% {
    opacity: 0;
    transform: translateY(16px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.reveal {
  opacity: 0;
  transform: translateY(16px);
}
.reveal.is-in {
  -webkit-animation: fade-up 800ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
  animation: fade-up 800ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
.reveal.is-in.delay-1 {
  -webkit-animation-delay: 120ms;
  animation-delay: 120ms;
}
.reveal.is-in.delay-2 {
  -webkit-animation-delay: 240ms;
  animation-delay: 240ms;
}
.reveal.is-in.delay-3 {
  -webkit-animation-delay: 360ms;
  animation-delay: 360ms;
}
.reveal.is-in.delay-4 {
  -webkit-animation-delay: 480ms;
  animation-delay: 480ms;
}
@-webkit-keyframes shimmer {
  0% {
    -webkit-transform: translateX(-60%);
    transform: translateX(-60%);
    opacity: 0;
  }
  25% {
    opacity: 0.9;
  }
  100% {
    -webkit-transform: translateX(60%);
    transform: translateX(60%);
    opacity: 0;
  }
}
@keyframes shimmer {
  0% {
    transform: translateX(-60%);
    opacity: 0;
  }
  25% {
    opacity: 0.9;
  }
  100% {
    transform: translateX(60%);
    opacity: 0;
  }
}
.shimmer:after {
  content: "";
  position: absolute;
  inset: -20%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(221, 153, 0, 0.18),
    transparent
  );
  -webkit-transform: translateX(-60%);
  transform: translateX(-60%);
  -webkit-animation: shimmer 4.5s ease-in-out infinite;
  animation: shimmer 4.5s ease-in-out infinite;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .accordion-item {
    flex: 1;
    -webkit-transition: flex 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    transition: flex 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  }
  .accordion-item:hover {
    flex: 3;
  }
  .accordion-item:hover .accordion-content-text {
    opacity: 1;
    max-height: 200px;
    margin-top: 0.75rem;
  }
  .accordion-item:hover .accordion-bg {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
    opacity: 0.5;
  }
  .accordion-item:hover .accordion-icon-box {
    background-color: rgba(221, 153, 0, 0.15);
    border-color: rgba(221, 153, 0, 0.3);
  }
}
/* Mobile/Tablet Fallbacks */
.accordion-content-text {
  -webkit-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out;
}
@media (max-width: 1023px) {
  .accordion-content-text {
    opacity: 1;
    max-height: none;
    margin-top: 0.75rem;
  }
  .accordion-bg {
    opacity: 0.3;
  }
}
