@charset "UTF-8";

/* 테마 컬러 변수 정의 */
:root {
  --color-primary: #480058;        /* 딥 로열 바이올렛 */
  --color-primary-dark: #2a0033;   /* 다크 바이올렛 */
  --color-primary-light: #721689;  /* 브라이트 바이올렛 */
  --color-accent: #ADEEC5;         /* 아쿠아 세이지 민트 */
  --color-accent-soft: rgba(173, 238, 197, 0.25);
  --color-accent-glow: rgba(173, 238, 197, 0.5);
  --bg-gradient-light: linear-gradient(135deg, #1f0529 0%, #2f083d 25%, #1b0a2c 50%, #0d1e18 75%, #180524 100%);
}

/* 폰트 기본 설정 및 화사하고 은은한 배경 그라데이션 */
body {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
  word-break: keep-all;
  overflow-x: hidden;
  background: radial-gradient(circle at 50% 0%, rgba(173, 238, 197, 0.18) 0%, transparent 50%),
              radial-gradient(circle at 85% 30%, rgba(255, 255, 255, 0.12) 0%, transparent 40%),
              radial-gradient(circle at 15% 70%, rgba(173, 238, 197, 0.15) 0%, transparent 45%),
              linear-gradient(180deg, #160320 0%, #260734 20%, #1a082b 40%, #151a22 60%, #22082e 80%, #13021c 100%);
  background-attachment: fixed;
  color: #f3f4f6;
}

/* 프리미엄 브라이트 글래스모피즘 카드 */
.glass-panel {
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(173, 238, 197, 0.35);
}

.glass-panel-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08) 0%, rgba(72, 0, 88, 0.45) 100%);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(173, 238, 197, 0.28);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25), inset 0 1px 1px rgba(255, 255, 255, 0.2);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-panel-card:hover {
  transform: translateY(-8px) scale(1.01);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.14) 0%, rgba(72, 0, 88, 0.6) 100%);
  border-color: #ADEEC5;
  box-shadow: 0 20px 45px rgba(173, 238, 197, 0.22), 0 0 30px rgba(255, 255, 255, 0.15);
}

/* 네온 글로우 텍스트 */
.text-glow-accent {
  text-shadow: 0 0 14px rgba(173, 238, 197, 0.7), 0 0 28px rgba(173, 238, 197, 0.4);
}

/* 화이트 소프트 글로우 */
.text-glow-white {
  text-shadow: 0 0 16px rgba(255, 255, 255, 0.8);
}

/* 라이브 티커 무한 롤링 애니메이션 */
@keyframes tickerLoop {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.ticker-track {
  display: flex;
  width: max-content;
  animation: tickerLoop 30s linear infinite;
}

.ticker-track:hover {
  animation-play-state: paused;
}

/* 펄스 애니메이션 */
@keyframes pulseGlow {
  0%, 100% { transform: scale(1); opacity: 1; filter: drop-shadow(0 0 6px #ADEEC5); }
  50% { transform: scale(1.15); opacity: 0.85; filter: drop-shadow(0 0 16px #ADEEC5); }
}

.animate-pulse-glow {
  animation: pulseGlow 2s infinite ease-in-out;
}

/* 부드러운 플로팅 애니메이션 */
@keyframes floatingAnim {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
}

.animate-float {
  animation: floatingAnim 4s ease-in-out infinite;
}

.animate-float-delayed {
  animation: floatingAnim 4s ease-in-out infinite 2s;
}

/* 빛나는 쉬머(Shimmer) 애니메이션 */
@keyframes shimmerPass {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.shimmer-card {
  background: linear-gradient(90deg, rgba(255,255,255,0.02) 0%, rgba(255, 255, 255, 0.15) 50%, rgba(255,255,255,0.02) 100%);
  background-size: 200% 100%;
  animation: shimmerPass 6s infinite;
}

/* 은은한 화이트 & 민트 앰비언트 오로라 라이트 */
@keyframes auraPulse {
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
}

.odd-section-aura {
  animation: auraPulse 7s ease-in-out infinite;
}

/* 스크롤 시 부드럽게 나타나는 Reveal 애니메이션 */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal.active {
  opacity: 1;
  transform: translateY(0);
}

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

/* 그래프 차오름 애니메이션 */
.chart-bar-fill {
  transition: width 1.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* 커스텀 스크롤바 */
::-webkit-scrollbar {
  width: 9px;
}
::-webkit-scrollbar-track {
  background: #14031d;
}
::-webkit-scrollbar-thumb {
  background: #640f78;
  border-radius: 4px;
  border: 1px solid rgba(173, 238, 197, 0.3);
}
::-webkit-scrollbar-thumb:hover {
  background: #ADEEC5;
}

/* 하단 고정 플로팅 푸터 바 (Sticky Quick Call Bar) */
.fixed-sticky-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  background: rgba(14, 2, 20, 0.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 2px solid #ADEEC5;
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.6), 0 0 20px rgba(173, 238, 197, 0.25);
  padding: 12px 16px;
  animation: slideUpFooter 0.5s ease-out;
}

@keyframes slideUpFooter {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
