@import "tailwindcss";

@theme {
  --font-sans: "Pretendard Variable", "Pretendard", "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-serif: "Playfair Display", ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  
  --color-primary-900: #0A1128; /* Dark Navy for text and buttons */
  --color-primary-800: #1A2B5E;
  --color-primary-50: #F4F6FB;
  
  --color-accent: #6C5CE7; /* Purple accent */

  /* INFINITH Semantic Status Colors — pastel palette derived from brand gradient */
  /* Critical/Negative: warm rose (peach-toned) */
  --color-status-critical-bg: #FFF0F0;
  --color-status-critical-text: #7C3A4B;
  --color-status-critical-border: #F5D5DC;
  --color-status-critical-dot: #D4889A;

  /* Warning/Pending: warm sand (cream-toned) */
  --color-status-warning-bg: #FFF6ED;
  --color-status-warning-text: #7C5C3A;
  --color-status-warning-border: #F5E0C5;
  --color-status-warning-dot: #D4A872;

  /* Good/Positive: soft lavender (purple-toned) */
  --color-status-good-bg: #F3F0FF;
  --color-status-good-text: #4A3A7C;
  --color-status-good-border: #D5CDF5;
  --color-status-good-dot: #9B8AD4;

  /* Excellent/Info: cool periwinkle (blue-lavender) */
  --color-status-info-bg: #EFF0FF;
  --color-status-info-text: #3A3F7C;
  --color-status-info-border: #C5CBF5;
  --color-status-info-dot: #7A84D4;

  --animate-blob: blob 7s infinite;
}

@keyframes blob {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  33% {
    transform: translate3d(15px, -25px, 0) scale(1.05);
  }
  66% {
    transform: translate3d(-10px, 10px, 0) scale(0.95);
  }
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.animation-delay-2000 {
  animation-delay: 2s;
}

.animation-delay-4000 {
  animation-delay: 4s;
}

@layer base {
  html {
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.15) transparent;
  }
  html::-webkit-scrollbar {
    width: 6px;
  }
  html::-webkit-scrollbar-track {
    background: transparent;
  }
  html::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.15);
    border-radius: 3px;
  }
  body {
    @apply font-sans text-slate-800 bg-slate-50 antialiased;
  }

  h1, h2, h3, h4, h5, h6 {
    @apply font-serif text-primary-900;
  }

  /* Headings inside dark/white-text containers inherit white */
  .text-white h1, .text-white h2, .text-white h3,
  .text-white h4, .text-white h5, .text-white h6 {
    @apply text-white;
  }
}

.glass-card {
  @apply bg-white/70 backdrop-blur-xl border border-white/40 shadow-[0_8px_32px_0_rgba(31,38,135,0.07)] rounded-2xl;
}

.gradient-bg {
  background: radial-gradient(circle at top left, #fdfbfb, #f3e7e9);
  @apply relative;
}

.gradient-bg::before {
  content: "";
  @apply absolute inset-0 bg-white/30 backdrop-blur-[2px] pointer-events-none;
}

.soft-gradient {
  background: linear-gradient(145deg, #fdfbfb 0%, #ebedee 100%);
}

.text-gradient {
  background: linear-gradient(to right, #0A1128, #3b5998);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

@keyframes blob-large {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  33% {
    transform: translate3d(4vw, -4vh, 0) scale(1.05);
  }
  66% {
    transform: translate3d(-4vw, 4vh, 0) scale(0.95);
  }
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
}

/* GPU-accelerate all blob animations to prevent layout jitter */
.animate-blob, .animate-blob-large {
  will-change: transform;
  contain: layout style;
  backface-visibility: hidden;
}

.animate-blob-large {
  animation: blob-large 25s infinite ease-in-out;
}

.animation-delay-7000 {
  animation-delay: 7s;
}

.animation-delay-14000 {
  animation-delay: 14s;
}