/* NOVUS Ultra-Luxury Design System & Custom Styles */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Plus+Jakarta+Sans:wght@200;300;400;500;600;700&display=swap');

:root {
  --bg-obsidian: #0A0A0C;
  --bg-card: rgba(18, 18, 22, 0.60);
  --bg-card-solid: #121216;
  --border-glass: rgba(255, 255, 255, 0.08);
  --border-glass-gold: rgba(229, 195, 120, 0.22);
  --border-glass-hover: rgba(229, 195, 120, 0.45);
  --accent-gold: #E5C378;
  --accent-gold-glow: rgba(229, 195, 120, 0.25);
  --accent-champagne: #F5E6C8;
  --accent-platinum: #E2E8F0;
  --text-main: #F8FAFC;
  --text-muted: #8E9BAE;
  --text-dim: #525E71;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  width: 100%;
  height: 100%;
  background-color: var(--bg-obsidian);
  color: var(--text-main);
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  overflow-x: hidden;
  selection-background-color: var(--accent-gold);
  selection-color: #000;
}

::selection {
  background: var(--accent-gold);
  color: #0A0A0C;
}

/* Typography Extensions */
.font-serif-luxury {
  font-family: 'Cormorant Garamond', Georgia, serif;
}

.font-sans-luxury {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}

.tracking-ultra-wide {
  letter-spacing: 0.45em;
}

.tracking-super-wide {
  letter-spacing: 0.35em;
}

.tracking-mega-wide {
  letter-spacing: 0.6em;
}

/* Background Canvas Layer */
#antigravity-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 0;
  pointer-events: auto;
}

/* Gold Gradient Shimmer Text */
.gold-shimmer-text {
  background: linear-gradient(
    135deg,
    #FFFFFF 0%,
    #F3E5AB 30%,
    #E5C378 50%,
    #F5E6C8 70%,
    #FFFFFF 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: goldShimmer 8s ease infinite;
}

@keyframes goldShimmer {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.gold-border-glow {
  box-shadow: 0 0 25px -5px rgba(229, 195, 120, 0.2), inset 0 0 15px -5px rgba(229, 195, 120, 0.15);
}

/* Glassmorphism Cards */
.glass-panel {
  background: rgba(15, 15, 20, 0.55);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--border-glass);
  box-shadow: 0 30px 60px -12px rgba(0, 0, 0, 0.55),
              0 18px 36px -18px rgba(0, 0, 0, 0.7),
              inset 0 1px 1px 0 rgba(255, 255, 255, 0.1);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-panel-luxury {
  background: linear-gradient(135deg, rgba(25, 25, 32, 0.65) 0%, rgba(12, 12, 16, 0.75) 100%);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border: 1px solid var(--border-glass-gold);
  box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.8),
              0 0 30px 0 rgba(229, 195, 120, 0.08),
              inset 0 1px 1px 0 rgba(255, 255, 255, 0.15);
}

.glass-panel-hover:hover {
  border-color: var(--border-glass-hover);
  box-shadow: 0 35px 90px -20px rgba(0, 0, 0, 0.85),
              0 0 35px -5px rgba(229, 195, 120, 0.2),
              inset 0 1px 1px 0 rgba(255, 255, 255, 0.25);
  transform: translateY(-2px);
}

/* Luxury Input Field */
.luxury-input {
  background: rgba(10, 10, 14, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  transition: all 0.35s ease;
}

.luxury-input:focus {
  outline: none;
  background: rgba(15, 15, 22, 0.85);
  border-color: var(--accent-gold);
  box-shadow: 0 0 20px -3px rgba(229, 195, 120, 0.3), inset 0 0 10px rgba(229, 195, 120, 0.05);
}

.luxury-input::placeholder {
  color: #64748B;
  letter-spacing: 0.08em;
  font-weight: 300;
}

/* Sleek Luxury Button Sheen Effect */
.btn-sheen {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #E5C378 0%, #C4A052 100%);
  color: #0A0A0C;
  font-weight: 600;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 10px 25px -5px rgba(229, 195, 120, 0.3);
}

.btn-sheen::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -75%;
  width: 50%;
  height: 200%;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.6) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: rotate(25deg);
  transition: all 0.75s ease;
  pointer-events: none;
}

.btn-sheen:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 35px -5px rgba(229, 195, 120, 0.5), 0 0 20px rgba(229, 195, 120, 0.3);
  background: linear-gradient(135deg, #F3E5AB 0%, #E5C378 100%);
}

.btn-sheen:hover::after {
  left: 125%;
}

.btn-sheen:active {
  transform: translateY(0);
}

/* Badge Glow */
.badge-prive {
  background: rgba(229, 195, 120, 0.06);
  border: 1px solid rgba(229, 195, 120, 0.25);
  box-shadow: 0 0 15px -3px rgba(229, 195, 120, 0.15);
  backdrop-filter: blur(10px);
}

/* Subtle Floating Animations */
.animate-float-slow {
  animation: floatSlow 7s ease-in-out infinite;
}

.animate-float-delayed {
  animation: floatSlow 8s ease-in-out 3.5s infinite;
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(0.5deg); }
}

/* Countdown Counter Box */
.timer-box {
  position: relative;
  background: rgba(14, 14, 18, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px);
  transition: all 0.3s ease;
}

.timer-box:hover {
  border-color: rgba(229, 195, 120, 0.3);
  background: rgba(18, 18, 24, 0.75);
  box-shadow: 0 10px 30px -10px rgba(229, 195, 120, 0.15);
}

.timer-digit {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-size: 2.75rem;
  line-height: 1;
  color: #FFFFFF;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.2);
}

@media (min-width: 768px) {
  .timer-digit {
    font-size: 3.75rem;
  }
}

/* Custom Modal / VIP Pass Holographic Effect */
.vip-pass-card {
  position: relative;
  background: linear-gradient(135deg, rgba(28, 28, 36, 0.95) 0%, rgba(14, 14, 18, 0.98) 100%);
  border: 1px solid rgba(229, 195, 120, 0.4);
  box-shadow: 0 25px 60px -15px rgba(0, 0, 0, 0.9), 0 0 40px rgba(229, 195, 120, 0.25);
  overflow: hidden;
}

.vip-pass-card::before {
  content: '';
  position: absolute;
  inset: -100%;
  background: linear-gradient(
    45deg,
    transparent 0%,
    rgba(229, 195, 120, 0.05) 45%,
    rgba(255, 255, 255, 0.15) 50%,
    rgba(229, 195, 120, 0.05) 55%,
    transparent 100%
  );
  transform: rotate(30deg);
  animation: holoPass 10s linear infinite;
  pointer-events: none;
}

@keyframes holoPass {
  0% { transform: translateY(-50%) rotate(30deg); }
  100% { transform: translateY(50%) rotate(30deg); }
}

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

::-webkit-scrollbar-track {
  background: #0A0A0C;
}

::-webkit-scrollbar-thumb {
  background: rgba(229, 195, 120, 0.25);
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(229, 195, 120, 0.5);
}

/* Pulsing Indicator Dot */
.pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--accent-gold);
  box-shadow: 0 0 10px var(--accent-gold);
  animation: pulseDot 2s ease-in-out infinite;
}

@keyframes pulseDot {
  0%, 100% { opacity: 1; transform: scale(1); box-shadow: 0 0 10px var(--accent-gold); }
  50% { opacity: 0.4; transform: scale(0.8); box-shadow: 0 0 4px var(--accent-gold); }
}

/* Terminal / Code Editor Mockup */
.terminal-window {
  background: rgba(12, 12, 16, 0.75);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(229, 195, 120, 0.2);
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.8), 0 0 30px -5px rgba(229, 195, 120, 0.12);
  transition: all 0.4s ease;
}

.terminal-window:hover {
  border-color: rgba(229, 195, 120, 0.38);
  box-shadow: 0 25px 60px -10px rgba(0, 0, 0, 0.85), 0 0 40px -5px rgba(229, 195, 120, 0.22);
}

.terminal-cursor {
  display: inline-block;
  width: 7px;
  height: 15px;
  background-color: var(--accent-gold);
  vertical-align: middle;
  margin-left: 2px;
  animation: cursorBlink 1s infinite;
}

@keyframes cursorBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* Code syntax highlighting colors */
.syn-keyword { color: #F472B6; font-weight: 600; } /* Pink/Rose */
.syn-var { color: #E5C378; } /* Gold */
.syn-fn { color: #60A5FA; } /* Blue */
.syn-str { color: #34D399; } /* Emerald */
.syn-prop { color: #CBD5E1; } /* Light Slate */

/* Tech Track Pill Badges */
.tech-pill {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(12px);
  color: #CBD5E1;
  transition: all 0.3s ease;
}

.tech-pill:hover {
  background: rgba(229, 195, 120, 0.08);
  border-color: rgba(229, 195, 120, 0.35);
  color: #F5E6C8;
  box-shadow: 0 0 15px -3px rgba(229, 195, 120, 0.2);
  transform: translateY(-1px);
}

