@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

body {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Dark mode styles */
.dark .bg-white {
  background-color: #1f2937;
}

.dark .text-gray-900 {
  color: #f3f4f6;
}

.dark .border-gray-200 {
  border-color: #374151;
}

.dark .bg-white\/70 {
  background-color: white;
}

.poppins-thin {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: normal;
}

.poppins-extralight {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: normal;
}

.poppins-light {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.poppins-regular {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.poppins-bold {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.poppins-extrabold {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: normal;
}

.poppins-black {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.poppins-thin-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: italic;
}

.poppins-extralight-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: italic;
}

.poppins-light-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: italic;
}

.poppins-regular-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.poppins-medium-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.poppins-semibold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: italic;
}

.poppins-bold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: italic;
}

.poppins-extrabold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: italic;
}

.poppins-black-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: italic;
}

:focus-visible { outline: 2px solid #22c55e; outline-offset: 3px; border-radius: 12px; }


/* Custom animations */
.pulse-animation {
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.05);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 0.8;
  }
}

.slide-in-right {
  animation: slideInRight 0.5s forwards;
}

@keyframes slideInRight {
  from {
    transform: translateX(50px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.slide-in-left {
  animation: slideInLeft 0.5s forwards;
}

@keyframes slideInLeft {
  from {
    transform: translateX(-50px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.fade-in-up {
  animation: fadeInUp 0.7s forwards;
}

@keyframes fadeInUp {
  from {
    transform: translateY(30px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

    @keyframes float-slow {
      0%   { transform: translateY(0) }
      50%  { transform: translateY(-10px) }
      100% { transform: translateY(0) }
    }
    .animate-float-slow { animation: float-slow 8s ease-in-out infinite }

    @media (prefers-reduced-motion: reduce) {
      .animate-float-slow { animation: none !important }
      .will-animate { transition: none !important }
    }


/* Tambahkan di bagian bawah file */

/* Text size accessibility styles */
.large-text {
  /* Increase text size */
  font-size: 120%;
}

.large-text h1 {
  font-size: 2.5rem;
}

.large-text h2 {
  font-size: 2rem;
}

.large-text h3 {
  font-size: 1.75rem;
}

.large-text p, .large-text a, .large-text button, .large-text span {
  font-size: 1.2rem;
}

.large-text input, .large-text textarea {
  font-size: 1.2rem;
}

/* Active state for text size toggle button */
.text-size-active {
  background-color: #0388A7 !important;
  color: white !important;
}

.text-size-active svg {
  stroke: white !important;
}

/* High contrast mode */
.high-contrast {
  --contrast-bg: #000000;
  --contrast-text: #ffffff;
  --contrast-link: #ffff00;
  --contrast-button: #ffff00;
  --contrast-border: #ffffff;
}

.high-contrast body,
.high-contrast nav,
.high-contrast div,
.high-contrast section,
.high-contrast footer {
  background-color: var(--contrast-bg) !important;
  color: var(--contrast-text) !important;
}

.high-contrast a,
.high-contrast button:not(.bg-blue-800):not(.bg-blue-700):not(.bg-blue-600):not(.bg-blue-500) {
  color: var(--contrast-link) !important;
}

.high-contrast .bg-blue-800,
.high-contrast .bg-blue-700,
.high-contrast .bg-blue-600,
.high-contrast .bg-blue-500 {
  background-color: #0000aa !important;
  color: var(--contrast-text) !important;
}

.high-contrast img {
  filter: grayscale(100%) contrast(120%);
}

.high-contrast input,
.high-contrast textarea,
.high-contrast select {
  background-color: #000 !important;
  color: #fff !important;
  border: 2px solid var(--contrast-border) !important;
}

.high-contrast svg {
  fill: var(--contrast-text);
  stroke: var(--contrast-text);
}

.high-contrast .border,
.high-contrast .border-2 {
  border-color: var(--contrast-border) !important;
}

/* Active state for accessibility toggle button */
.accessibility-active {
  background-color: #0388A7 !important;
  color: white !important;
}

.accessibility-active svg {
  stroke: white !important;
}