@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@300;400;500;600;700&family=Noto+Sans+TC:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap');

body {
  /* Default font, can be overridden by templates */
  font-family: 'Noto Sans TC', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Default CSS Variables (Fallback) */
:root {
  --brand-50: #fdf4ff;
  --brand-100: #fae8ff;
  --brand-200: #f5d0fe;
  --brand-300: #f0abfc;
  --brand-400: #e879f9;
  --brand-500: #d946ef;
  --brand-600: #c026d3;
  --brand-700: #a21caf;
  --brand-800: #86198f;
  --brand-900: #701a75;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}
html {
  scroll-behavior: smooth;
}

/* === NEW: Animation Keyframes for Visual Upgrades === */
@keyframes floatParticle {
  0%, 100% { transform: translateY(0px) translateX(0px); opacity: 0.15; }
  25% { transform: translateY(-30px) translateX(10px); opacity: 0.3; }
  50% { transform: translateY(-15px) translateX(-8px); opacity: 0.1; }
  75% { transform: translateY(-40px) translateX(5px); opacity: 0.25; }
}
@keyframes fadeSlideUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
