/* Custom Styles & Handwritten Doodle Aesthetic - Hani & Fauzan with Illustrated Avatars & Ribbon Theme */
@import url('https://fonts.googleapis.com/css2?family=Patrick+Hand&family=Mali:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,600&family=Caveat:wght@400;600;700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=Fredoka:wght@400;500;600&display=swap');

:root {
  --primary-blue: #234FE3;
  --royal-blue: #1D4ED8;
  --ribbon-red: #C82333;
  --soft-red: #FFF1F2;
  --soft-blue: #EEF4FF;
  --accent-pink: #FF6B8B;
  --light-pink: #FFE8EC;
  --bg-pure: #FFFFFF;
  --bg-soft: #F8FAFD;
  --text-dark: #1E293B;
  --text-muted: #64748B;
}

html {
  scroll-behavior: smooth;
  font-family: 'Patrick Hand', 'Mali', cursive, sans-serif;
  background-color: #F1F5F9;
  color: var(--text-dark);
}

.font-doodle {
  font-family: 'Patrick Hand', cursive, sans-serif;
}

.font-marker {
  font-family: 'Mali', 'Patrick Hand', cursive, sans-serif;
}

.font-caveat {
  font-family: 'Caveat', cursive;
}

.font-sans-clean {
  font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Doodle Card Container with Blue Loop Border */
.doodle-card {
  background: #FFFFFF;
  border-radius: 28px;
  position: relative;
  box-shadow: 0 10px 30px -5px rgba(35, 79, 227, 0.08), 0 4px 12px -2px rgba(0, 0, 0, 0.03);
}

/* Loopy Doodle Border Effect */
.loopy-border {
  border: 3.5px solid #234FE3;
  border-radius: 32px;
  position: relative;
}

/* Ribbon Red Border */
.ribbon-border {
  border: 3px solid #C82333;
  border-radius: 28px;
  position: relative;
}

/* Avatar Card Bounce on Hover */
.avatar-card {
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s ease;
}

.avatar-card:hover {
  transform: translateY(-6px) scale(1.02);
}

/* Music Disc Spin Animation */
@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.spin-slow {
  animation: spin-slow 8s linear infinite;
}

.paused {
  animation-play-state: paused !important;
}

/* Floating animation */
@keyframes float {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-6px) rotate(0.8deg);
  }
}

.animate-float {
  animation: float 4s ease-in-out infinite;
}

/* Floating gentle for doodle items */
@keyframes float-subtle {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-4px) rotate(-1deg);
  }
}

.animate-float-subtle {
  animation: float-subtle 3s ease-in-out infinite;
}

/* Heartbeat animation */
@keyframes heartbeat {
  0%, 100% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.12);
  }
  40% {
    transform: scale(1);
  }
  60% {
    transform: scale(1.08);
  }
}

.animate-heartbeat {
  animation: heartbeat 2s ease-in-out infinite;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 7px;
}

::-webkit-scrollbar-track {
  background: #F1F5F9;
}

::-webkit-scrollbar-thumb {
  background: #93C5FD;
  border-radius: 9999px;
}

::-webkit-scrollbar-thumb:hover {
  background: #234FE3;
}

/* Fade in on scroll transition */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

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