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

/* CSS Variables */
:root {
  --main-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
  --primary-color: #00A9E0;
  --accent-color: #00C4FF;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;
  --letter-spacing-tight: -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.025em;
  /* Responsive spacing variables */
  --slide-padding-desktop: 5vh 8vw;
  --slide-padding-tablet: 4vh 5vw;
  --slide-padding-mobile: 3vh 4vw;
}

/* Global SVG icon styles */
.tech-button-icon svg,
.feature-button-icon svg,
.multimodal-button-icon svg,
.traction-button-icon svg,
.funds-button-icon svg,
.contact-button-icon svg,
.data-icon svg,
.feature-icon svg,
.panel-icon svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.5;
}

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  font-family: var(--main-font);
  color: #ffffff;
  background: linear-gradient(to bottom, #02193B, #000000); /* Gradient from exact 02193B to black */
  -webkit-tap-highlight-color: transparent; /* Remove tap highlight on mobile */
  touch-action: manipulation; /* Improve touch experience */
}

/* Allow scrolling on mobile devices */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  html, body {
    overflow: visible !important;
    height: auto !important;
  }
}

/* Background Canvas fixed behind everything */
#bg-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0; /* behind slides but above body background */
  pointer-events: none;
  filter: blur(25px) brightness(1.1) saturate(1.2); /* Much more blur for interactive elements */
  transition: filter 1s ease-in-out; /* Slower, more eased transition */
}


/* Authentication Overlay */
.auth-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(10px);
  background: rgba(0, 0, 0, 0.8);
  z-index: 1000;
}

.auth-overlay.hidden {
  display: none;
}

.glass {
  background: rgba(30, 41, 59, 0.2);
  border: 1px solid rgba(51, 65, 85, 0.3);
  border-radius: 12px;
  padding: 2rem;
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px);
}

.auth-panel h2 {
  margin-bottom: 1rem;
}

#password-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: none;
  background: rgba(51, 65, 85, 0.4);
  color: #fff;
  margin-bottom: 1rem;
  font-size: max(16px, 1rem); /* Prevent mobile zoom */
}

#auth-button {
  width: 100%;
  padding: 0.75rem;
  background: var(--primary-color);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  color: #fff;
  font-weight: 600;
  transition: background 0.3s;
}

#auth-button:hover {
  background: #00C4FF;
}

.error {
  color: #ff6b6b;
  margin-top: 0.5rem;
  text-align: center;
}

/* Deck & Slides - Updated for better responsiveness */
.deck {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  scroll-snap-type: none;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-behavior: auto;
  -webkit-overflow-scrolling: touch; /* Improve smooth scrolling on iOS */
  overscroll-behavior: none; /* Prevent overscroll effects */
}

/* Completely disable scroll snapping on mobile devices */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  .deck {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
    -webkit-overflow-scrolling: touch !important;
    /* Ensure deck starts at very top */
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
}

/* Slide Numbers */
.slide-number {
  position: absolute;
  top: 1.5rem;
  left: 2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  z-index: 10;
}

/* iOS Safe Area Support */
@supports (padding-top: env(safe-area-inset-top)) {
  .slide-number {
    top: calc(1.5rem + env(safe-area-inset-top));
  }
  
  @media (max-width: 768px) {
    .slide:first-child {
      padding-top: calc(5rem + env(safe-area-inset-top)) !important;
    }
  }
  
  @media (max-width: 480px) {
    .slide:first-child {
      padding-top: calc(4rem + env(safe-area-inset-top)) !important;
    }
  }
}


.slide-number-small {
  font-size: 0.85rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.65); /* Adjusted opacity */
  letter-spacing: 0.05em;
}

@media (max-width: 768px) {
  .slide-number {
    top: 1rem;
    left: 1rem;
  }
  .slide-number-small {
    font-size: 0.75rem;
  }
}
  

@media (max-width: 480px) {
  .slide-number {
    top: 0.75rem;
    left: 0.75rem;
  }
  
  .slide-number-small {
    font-size: 0.65rem;
  }
}
  

/* Updated slide styles for better responsiveness */
.slide {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh; /* use dynamic viewport height where supported */
  height: auto; /* Allow slides to expand based on content */
  display: flex;
  justify-content: center;
  align-items: flex-start; /* Changed from center to flex-start */
  scroll-snap-align: none;
  position: relative;
  transition: transform 0.8s ease, opacity 0.8s ease;
  overflow: visible; /* Changed from hidden to visible */
  box-sizing: border-box;
  padding: var(--slide-padding-desktop);
}

/* Completely disable scroll snap alignment on mobile and touch devices */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  .slide {
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
  }
}

/* Responsive slide padding */
@media (max-width: 1024px) {
  .slide {
    padding: var(--slide-padding-tablet);
  }
}

@media (max-width: 768px) {
  .slide {
    padding: var(--slide-padding-mobile);
    padding-top: 5rem; /* Increased space for slide number and logo visibility */
    padding-bottom: 5rem; /* Extra space for navigation */
  }
  
  /* Extra padding for first slide to ensure logo is visible */
  .slide:first-child {
    padding-top: 6rem !important;
  }
}

@media (max-width: 480px) {
  .slide {
    padding: 4rem 1rem 4rem 1rem; /* Increased top padding for logo visibility */
  }
}

.slide-title {
  font-size: clamp(2rem, 5vw, 6rem);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
  color: #ffffff; /* Ensure slide titles are white */
}

.slide-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease;
  border-radius: 12px;
}

.slide-img.active {
  opacity: 1;
}

/* Gallery Container and Related Elements */
.gallery-container {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: 1200px;
  height: auto;
  z-index: 10;
  padding: 1rem;
}

.gallery-header {
  text-align: center;
  margin-bottom: 2rem;
}

.gallery-title {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
  color: white;
}

.gallery-description {
  font-size: 1.1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  max-width: 700px;
  margin: 0 auto 1.5rem;
}

@media (max-width: 768px) {
  .gallery-header {
    margin-bottom: 1.5rem;
  }
  
  .gallery-title {
    font-size: 2.2rem;
  }
  
  .gallery-description {
    font-size: 1rem;
    max-width: 90%;
    margin-bottom: 1.25rem;
  }
}

@media (max-width: 480px) {
  .gallery-container {
    padding: 0.75rem;
    width: 95%;
  }
  
  .gallery-header {
    margin-bottom: 1.25rem;
  }
  
  .gallery-title {
    font-size: 1.8rem;
  }
  
  .gallery-description {
    font-size: 0.95rem;
    margin-bottom: 1rem;
  }
}

.gallery-presentation {
  position: relative;
  margin-bottom: 2.5rem;
}

.gallery-navigation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
}


.navigation-arrows {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 1rem;
  z-index: 10;
}

.arrow {
  background: rgba(51, 65, 85, 0.4); /* Background similar to inputs */
  color: #ffffff;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.3s, color 0.3s;
  font-size: 1.2rem;
  border: 1px solid rgba(51, 65, 85, 0.3);
}

.arrow:hover {
  background: var(--primary-color); /* Vibrant blue on hover */
  color: #ffffff;
}

/* Generic link styling (can be overridden by more specific selectors) */
a {
  color: var(--primary-color); /* Vibrant blue for links */
  text-decoration: none;
  transition: color 0.3s;
}

a:hover {
  color: #00C4FF; /* Brighter blue on hover */
}

/* Enhanced Image Slideshow */
.slideshow {
  position: relative;
  width: 100%;
  height: 400px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

@media (max-width: 768px) {
  .slideshow {
    height: 300px;
    border-radius: 12px;
  }
}

@media (max-width: 480px) {
  .slideshow {
    height: 220px;
    border-radius: 10px;
  }
}

.center-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}


/* Debug Navigation */
.debug-nav {
  position: fixed;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
  z-index: 950;
}

.primary-btn {
  background: linear-gradient(135deg, #10b981 0%, var(--accent-color) 100%);
  color: white;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, background-position 0.3s ease;
  background-size: 200% 200%;
  background-position: 0% 0%;
  position: relative;
  overflow: hidden;
}

.primary-btn::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 70%);
  opacity: 0;
  transform: scale(0.5);
  transition: transform 0.5s ease, opacity 0.5s ease;
  pointer-events: none;
}

.primary-btn:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2), 0 0 15px rgba(14, 165, 233, 0.4);
  background-position: 100% 100%;
}

.primary-btn:hover::before {
  opacity: 1;
  transform: scale(1);
}

.primary-btn:active {
  transform: translateY(1px) scale(0.98);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.debug-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #10b981 0%, var(--accent-color) 100%);
  color: white;
  border: none;
  font-weight: bold;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transition: transform 0.2s, box-shadow 0.2s;
}

.debug-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}


/* Chatbot */
.chatbot-icon {
  position: fixed;
  top: 2rem;
  right: 2rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 1.5rem 0.5rem 1rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #f0fdfa 0%, #e0f2fe 100%);
  color: #0c4a6e;
  font-weight: 600;
  font-size: 1.1rem;
  cursor: pointer;
  z-index: 900;
  box-shadow: 
    0 4px 24px 0 rgba(16,74,112,0.15), 
    0 1.5px 4px 0 rgba(20,184,166,0.12),
    0 0 0 0 rgba(20,184,166,0);
  border: 1px solid rgba(209, 250, 229, 0.8);
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  user-select: none;
  animation: icon-pulse 4s infinite alternate;
}

/* Locked state for chatbot icon */
.chatbot-icon.locked {
  opacity: 0.4;
  filter: grayscale(0.8);
  cursor: pointer;
  animation: none;
  background: linear-gradient(135deg, #e5e7eb 0%, #d1d5db 100%);
  color: #6b7280;
  border-color: rgba(156, 163, 175, 0.5);
  box-shadow: 
    0 2px 12px 0 rgba(107,114,128,0.1), 
    0 1px 2px 0 rgba(107,114,128,0.08);
  transition: all 0.3s ease;
}

.chatbot-icon.locked:hover {
  transform: none;
  box-shadow: 
    0 2px 12px 0 rgba(107,114,128,0.1), 
    0 1px 2px 0 rgba(107,114,128,0.08);
}

/* Shake animation for locked chatbot */
@keyframes chatbot-shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-3px); }
  20%, 40%, 60%, 80% { transform: translateX(3px); }
}

.chatbot-icon.shake {
  animation: chatbot-shake 0.5s ease-in-out;
}

/* Lock icon for locked state */
.chatbot-lock-icon {
  width: 1.2rem;
  height: 1.2rem;
  margin-left: 0.25rem;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

/* Hide lock icon when unlocked */
.chatbot-icon:not(.locked) .chatbot-lock-icon {
  display: none;
}

/* Locked chatbot tooltip */
.locked-tooltip {
  position: fixed;
  background: rgba(239, 68, 68, 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 2px solid rgba(239, 68, 68, 0.8);
  border-radius: 12px;
  padding: 0.75rem 1rem;
  color: white;
  font-size: 0.85rem;
  font-weight: 500;
  max-width: 220px;
  z-index: 1300;
  opacity: 0;
  transform: scale(0.8) translateY(10px);
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
              0 0 20px rgba(239, 68, 68, 0.2);
  pointer-events: none;
  line-height: 1.3;
  text-align: center;
}

.locked-tooltip.show {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* Removed arrow pointing down (tooltip above chatbot) - now just a simple red box */
/*
.locked-tooltip::before {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid rgba(239, 68, 68, 0.6);
}

.locked-tooltip::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid rgba(0, 0, 0, 0.9);
}
*/

@keyframes icon-pulse {
  0% {
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.15), 
      0 1.5px 4px 0 rgba(20,184,166,0.12),
      0 0 0 0 rgba(20,184,166,0);
  }
  100% {
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.2), 
      0 1.5px 4px 0 rgba(20,184,166,0.15),
      0 0 15px 2px rgba(20,184,166,0.2);
  }
}

/* Unlock burst animation */
@keyframes unlock-burst {
  0% {
    transform: scale(1);
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.15), 
      0 1.5px 4px 0 rgba(20,184,166,0.12),
      0 0 0 0 rgba(34, 192, 196, 0);
  }
  30% {
    transform: scale(1.15);
    box-shadow: 
      0 8px 40px 0 rgba(34, 192, 196, 0.4), 
      0 4px 20px 0 rgba(34, 192, 196, 0.3),
      0 0 30px 5px rgba(34, 192, 196, 0.5);
  }
  60% {
    transform: scale(1.05);
    box-shadow: 
      0 6px 32px 0 rgba(34, 192, 196, 0.3), 
      0 3px 16px 0 rgba(34, 192, 196, 0.25),
      0 0 25px 3px rgba(34, 192, 196, 0.4);
  }
  100% {
    transform: scale(1);
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.2), 
      0 1.5px 4px 0 rgba(20,184,166,0.15),
      0 0 15px 2px rgba(20,184,166,0.2);
  }
}

.chatbot-emoji {
  font-size: 1.5rem;
  margin-right: 0.5rem;
  pointer-events: none; /* Prevent direct clicks on emoji */
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chatbot-emoji svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.5;
}

.chatbot-label {
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #0891b2;
  white-space: nowrap;
  pointer-events: none; /* Prevent direct clicks on label text */
}

.chatbot-icon:hover {
  background: linear-gradient(135deg, #e0f2fe 0%, #ccfbf1 100%);
  box-shadow: 0 8px 32px 0 rgba(16,74,112,0.13), 0 3px 8px 0 rgba(16,185,129,0.11);
}

@media (max-width: 768px) {
  .chatbot-icon {
    top: 1rem;
    right: 1rem;
    width: 44px;
    height: 44px;
    font-size: 1.1rem;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
  }
  .chatbot-emoji {
    font-size: 1.3rem;
    margin-right: 0;
    width: 1.3rem;
    height: 1.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .chatbot-emoji svg {
    width: 100%;
    height: 100%;
    stroke-width: 1.5;
    color: currentColor;
  }
  .chatbot-label {
    display: none; /* Hide label on medium mobile screens */
  }
}

@media (max-width: 480px) {
  .chatbot-icon {
    top: 0.75rem;
    right: 0.75rem;
    width: 40px;
    height: 40px;
    padding: 0.5rem;
    font-size: 0.9rem;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .chatbot-emoji {
    font-size: 1.2rem;
    margin-right: 0;
    width: 1.2rem;
    height: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .chatbot-emoji svg {
    width: 100%;
    height: 100%;
    stroke-width: 1.5;
    color: currentColor;
  }
  .chatbot-label {
    display: none; /* Hide label on small mobile screens */
  }
}

/* Chatbot Panel */
.chatbot-panel {
  position: fixed;
  top: 3.5rem;
  right: 2rem;
  width: 500px;  /* Increased width */
  min-height: 550px; /* Minimum height */
  max-height: 80vh; /* Maximum height */
  height: auto; /* Allow expansion */
  display: flex;
  flex-direction: column;
  border-radius: 24px; /* More rounded corners */
  overflow: hidden;
  z-index: 950;
  box-shadow: 0 10px 40px 0 rgba(0, 0, 0, 0.3), 0 6px 15px 0 rgba(0, 110, 255, 0.15);
  border: 1px solid rgba(14, 165, 233, 0.3);
  background: rgba(15, 23, 42, 0.85); /* Slightly less transparent */
  backdrop-filter: blur(15px); /* Increased blur */
  -webkit-backdrop-filter: blur(15px);
  color: #ffffff;
  transform-origin: top right;
  transition: height 0.3s ease;
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.chatbot-panel header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem 0.75rem 1.25rem;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(14, 165, 233, 0.3);
  position: relative;
}

.chatbot-header-content {
  display: flex;
  align-items: center;
  gap: 10px;
}

.chatbot-logo {
  height: 24px;
  width: auto;
  opacity: 0.9;
}

.chatbot-title {
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 500;
}

.header-spacer {
  flex: 1;
}

#chatbot-close {
  background: none;
  border: none;
  color: #888;
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  transition: background 0.2s;
}
#chatbot-close-btn {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  transition: all 0.2s;
}

#chatbot-close-btn:hover {
  color: rgba(255, 255, 255, 1);
  background: rgba(255, 255, 255, 0.1);
}

/* Chatbot Messages Container */
.chatbot-messages {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  display: flex;
  flex-direction: column;
  gap: 16px; /* Increased spacing between messages */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
  max-height: calc(100% - 180px); /* Account for header and input area */
  overflow-x: hidden;
  height: auto;
  min-height: 200px;
  transition: all 0.3s ease;
}

/* Custom scrollbar for chat container */
.chatbot-messages::-webkit-scrollbar {
  width: 8px;
}

.chatbot-messages::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
}

.chatbot-messages::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.3);
  border-radius: 10px;
}

.chatbot-messages::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.5);
}

/* Special animation class for chatbot panel */
.chatbot-hidden {
  opacity: 0 !important;
  transform: scale(0.92) translateY(-20px) !important;
  pointer-events: none !important;
  visibility: visible !important;
  display: flex !important;
}

/* Message styling */
.message {
  padding: 12px 16px;
  border-radius: 18px; /* More rounded corners */
  max-width: 85%;
  line-height: 1.5;
  word-wrap: break-word;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
  white-space: pre-line; /* Preserve line breaks */
  overflow-wrap: break-word;
}

/* Style for elements inside messages */
.message p {
  margin: 8px 0;
}

.message ul, .message ol {
  margin: 8px 0;
  padding-left: 20px;
}

.message li {
  margin: 4px 0;
}

.message code {
  background: rgba(0, 0, 0, 0.2);
  padding: 2px 4px;
  border-radius: 4px;
  font-family: monospace;
  font-size: 0.9em;
  word-break: break-all;
  white-space: pre-wrap;
}

.message pre {
  background: rgba(0, 0, 0, 0.2);
  padding: 10px;
  border-radius: 6px;
  width: 100%;
  margin: 10px 0;
  white-space: pre-wrap;
  word-break: break-word;
}

.message pre code {
  background: transparent;
  padding: 0;
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Animation for messages appearing */
@keyframes message-fade-in {
  0% {
    opacity: 0;
    transform: translateY(15px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes message-slide-in-right {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes message-slide-in-left {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes message-expand {
  0% {
    max-height: 0;
    transform: scaleY(0.7);
    opacity: 0.7;
  }
  40% {
    opacity: 1;
  }
  100% {
    max-height: 1000px;
    transform: scaleY(1);
    opacity: 1;
  }
}

/* User messages */
.message.user {
  align-self: flex-end;
  background: rgba(14, 165, 233, 0.3); /* Darker blue background */
  color: #ffffff; /* White text */
  border: 1px solid rgba(14, 165, 233, 0.5);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
  animation: message-slide-in-right 0.3s ease-out forwards, message-expand 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: bottom right;
}

/* Assistant messages */
.message.assistant {
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.2); /* More visible background */
  color: #ffffff; /* White text */
  border: 1px solid rgba(255, 255, 255, 0.3);
  animation: message-slide-in-left 0.4s ease-out forwards, message-expand 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: bottom left;
}

/* System messages (warnings, errors, info) */
.message.system {
  align-self: center;
  background: rgba(75, 85, 99, 0.4); /* Darker gray */
  color: #ffffff; /* White text */
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 0.9em;
  padding: 8px 12px;
  max-width: 90%;
  text-align: center;
  animation: message-fade-in 0.3s ease-out forwards, message-expand 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: center;
}

/* Warning styling */
.message.system.warning {
  background: rgba(234, 179, 8, 0.3); /* Darker yellow */
  color: #ffffff; /* White text */
  border: 1px solid rgba(234, 179, 8, 0.5);
}

/* Error styling */
.message.system.error {
  background: rgba(239, 68, 68, 0.3); /* Darker red */
  color: #ffffff; /* White text */
  border: 1px solid rgba(239, 68, 68, 0.5);
}

/* Thinking animation - replaced with spinner */
.message.thinking {
  display: flex;
  align-items: center;
  opacity: 0.8;
}

.message.thinking::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: #ffffff;
  animation: spinner 0.8s linear infinite;
}

@keyframes spinner {
  to { transform: rotate(360deg); }
}

.chatbot-input-area {
  display: flex;
  align-items: center;
  padding: 10px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.2);
  margin: 0 7.5%; /* Added margin to align with 85% max-width messages */
  border-radius: 0 0 16px 16px; /* Rounded bottom corners */
}

.chatbot-disclaimer {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
  padding: 0.5rem 1.25rem 0.75rem;
  line-height: 1.3;
}

/* Mobile navigation buttons for chatbot panel */
.chatbot-mobile-nav {
  display: none;
  flex-direction: row;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.2);
  justify-content: space-between;
}

.chatbot-nav-btn {
  flex: 1;
  padding: 0.75rem 1rem;
  background: rgba(14, 165, 233, 0.2);
  border: 1px solid rgba(14, 165, 233, 0.4);
  border-radius: 8px;
  color: rgba(14, 165, 233, 0.9);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.chatbot-nav-btn:hover {
  background: rgba(14, 165, 233, 0.3);
  color: rgba(14, 165, 233, 1);
  transform: translateY(-1px);
}

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

.chatbot-nav-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

.chatbot-nav-btn:disabled:hover {
  background: rgba(14, 165, 233, 0.2);
  color: rgba(14, 165, 233, 0.9);
  transform: none;
}

/* Show mobile navigation only on mobile devices */
@media (max-width: 768px) {
  .chatbot-mobile-nav {
    display: flex;
  }
}

.contact-link {
  color: rgba(14, 165, 233, 0.8);
  text-decoration: underline;
  cursor: pointer;
  transition: color 0.2s ease;
}

.contact-link:hover {
  color: rgba(14, 165, 233, 1);
}

.mt-4 {
  margin-top: 1rem;
}

#chatbot-input {
  flex: 1;
  border: none;
  padding: 10px 15px;
  resize: none;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  outline: none;
  height: 40px;
  font-size: max(16px, clamp(0.85rem, 1.8vw, 1rem)); /* Prevent mobile zoom */
  border-radius: 20px;
  transition: background 0.2s;
  caret-color: var(--accent-color);
}

#chatbot-input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

#chatbot-input:focus {
  background: rgba(255, 255, 255, 0.15);
}

#chatbot-send-btn {
  border: none;
  background: none;
  color: rgba(14, 165, 233, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-left: 10px;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.2s, opacity 0.3s ease, cursor 0.3s ease;
}

#chatbot-send-btn:hover {
  background: rgba(14, 165, 233, 0.2);
  color: rgba(14, 165, 233, 1);
}

#chatbot-send-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

#chatbot-send-btn:disabled:hover {
  background: none;
  color: rgba(14, 165, 233, 0.8);
}

@media (max-width: 768px) {
  .chatbot-panel {
    width: calc(100vw - 3rem);
    right: 1.5rem;
  }
}

@media (max-width: 480px) {
  .chatbot-panel {
    width: calc(100vw - 2rem);
    right: 1rem;
  }
}

/* Modal Overlay */
.modal-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0,0,0,0.8);
  backdrop-filter: blur(6px);
  z-index: 980;
}

.modal-overlay.hidden { display: none; }

.modal-box {
  background: rgba(30,30,40,0.95);
  border-radius: 12px;
  padding: 2rem;
  max-width: 90vw;
  max-height: 80vh;
  overflow: auto;
  color: #fff;
}

.modal-box h2 {
  margin-bottom: 1rem;
}

.info-btn {
  margin-top: 1rem;
  padding: 0.5rem 1rem;
  background: linear-gradient(90deg, #10b981 0%, var(--accent-color) 100%);
  border: none;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
}

/* Slide Navigation Button Group */
.slide-nav-btns {
  position: fixed;
  bottom: 6.5rem; /* leaves space for chatbot icon */
  right: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  z-index: 950;
  align-items: flex-end;
}

.next-btn, .prev-btn {
  padding: 0.75rem 1.25rem;
  background: #ffffff10;
  border: 1px solid #ffffff30;
  border-radius: 30px;
  color: #fff;
  font-size: 1rem;
  backdrop-filter: blur(10px);
  cursor: pointer;
  transition: background 0.3s;
  min-width: 130px;
  text-align: center;
}

.next-btn:hover, .prev-btn:hover {
  background: #ffffff25;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  /* Hide navigation buttons on mobile - users can swipe/scroll naturally */
  .slide-nav-btns {
    display: none;
  }
  
  .slide-nav-btns {
    bottom: 1rem;
    padding: 0 1rem;
    position: sticky; /* Change from fixed to sticky */
    background: rgba(0, 0, 0, 0.8); /* Add background for better visibility */
    backdrop-filter: blur(10px);
    border-radius: 12px;
    padding: 0.5rem;
    margin: 0 auto;
    width: calc(100% - 2rem);
    max-width: 400px;
  }
  
  .next-btn, .prev-btn {
    padding: 0.6rem 1rem;
    font-size: 0.9rem;
  }
}

@media (max-width: 480px) {
  .slide-nav-btns {
    bottom: 0.5rem;
    gap: 0.5rem;
    width: calc(100% - 1rem);
  }
  
  .next-btn, .prev-btn {
    padding: 0.5rem 0.8rem;
    font-size: 0.85rem;
    min-width: auto;
  }
}

/* Button Group - Apple-inspired design */
.button-group {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
}

.modal-btn {
  /* Larger size */
  padding: 0.85rem 1.8rem;
  
  /* Modern styling */
  border-radius: 12px;
  background: var(--primary-color); /* Vibrant blue for modal buttons */
  color: #ffffff;
  border: none;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.01em;
  margin: 0.5rem;
  
  /* Interaction */
  cursor: pointer;
  transition: background 0.3s, transform 0.2s;
  position: relative;
  overflow: hidden;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 169, 224, 0.25); /* Shadow with new blue */
}

.modal-btn:hover {
  background: #00C4FF; /* Brighter blue on hover */
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 169, 224, 0.3);
}

.modal-btn.secondary {
  background: rgba(51, 65, 85, 0.5); /* Darker, less prominent secondary buttons */
  color: #cbd5e1; /* Lighter text for secondary */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.modal-btn.secondary:hover {
  background: rgba(71, 85, 105, 0.7);
  color: #ffffff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Modal System */
.modal-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  /* Add padding on mobile for easier closing */
  padding: 1rem;
}

.modal-container.active {
  display: flex;
  opacity: 1;
  pointer-events: auto;
  z-index: 1100; /* Ensure it's above chatbot when active */
}

.modal-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 1; /* Backdrop should be behind modal content */
}

.modal {
  position: fixed !important; /* Changed to fixed for better mobile centering */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translateY(20px);
  width: 90%;
  max-width: 750px; /* Increased from 600px to accommodate 16:9 images */
  max-height: 90vh; /* Increased from 85vh for better space utilization */
  overflow-y: auto;
  border-radius: 20px;
  padding: 0;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 169, 224, 0.1);
  -webkit-overflow-scrolling: touch; /* Improve mobile scrolling */
  opacity: 0;
  display: none;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(0, 169, 224, 0.15);
  z-index: 10; /* Modal content above backdrop */
  margin: 0 !important; /* Ensure no margin offsets */
}

.modal.active {
  transform: translate(-50%, -50%) translateY(0) !important; /* Force centering */
  opacity: 1;
  display: block;
}

.modal header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid rgba(0, 169, 224, 0.15);
  background: rgba(0, 169, 224, 0.05);
  position: relative;
}

/* Ensure modal header is positioned for absolute close button */
.modal header {
  position: relative;
}

@media (max-width: 768px) {
  .modal {
    width: 95%;
    max-width: none;
    max-height: 95vh; /* Slightly more space on tablets */
  }
  
  /* Ensure modals appear above avatar experience on mobile */
  .modal-container.active {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
  
  .modal-backdrop {
    z-index: 9999999998 !important; /* Just below modal but above avatar */
  }
  
  .modal {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
}

@media (max-width: 480px) {
  .modal {
    width: 95%;
    max-width: none;
    max-height: 95vh;
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
  }
  
  /* Ensure modals appear above avatar experience on small mobile */
  .modal-container.active {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
  
  .modal-backdrop {
    z-index: 9999999998 !important; /* Just below modal but above avatar */
  }
  
  .modal {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
  
  .modal header {
    padding: 0.8rem 1rem;
  }
  
  .modal header h3 {
    font-size: 1.1rem; /* Reduced from var(--font-size-xl) */
    font-weight: var(--font-weight-semibold);
    letter-spacing: var(--letter-spacing-tight);
    padding-right: 40px; /* Space for close button */
  }
  
  .modal-close {
    font-size: 1.2rem;
    /* Large touch target on small screens */
    width: 50px !important;
    height: 50px !important;
    padding: 0 !important;
    margin: 0 !important;
    position: absolute !important;
    top: 50% !important;
    right: 1rem !important;
    transform: translateY(-50%) !important;
  }
  
  .modal-content {
    padding: 1rem;
  }
}

.modal header h3 {
  margin: 0;
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-tight);
  color: rgba(0, 169, 224, 1);
  line-height: var(--line-height-tight);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.modal-close {
  position: absolute !important;
  top: 50% !important;
  right: 1.5rem !important;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.2rem;
  cursor: pointer;
  transition: all 0.2s ease;
  /* Significantly larger click area */
  width: 60px !important;
  height: 60px !important;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Only use transform for vertical centering */
  transform: translateY(-50%) !important;
  /* Ensure the button stays clickable */
  z-index: 10000 !important; /* Very high z-index to ensure it's always on top */
  /* Remove conflicting padding/margin styles */
  padding: 0 !important;
  margin: 0 !important;
  /* Ensure it's not affected by parent transforms */
  pointer-events: all !important;
  /* Add outline for debugging (can be removed later) */
  outline: none;
  /* Ensure button creates its own stacking context */
  isolation: isolate;
}

.modal-close:hover {
  color: white;
  transform: translateY(-50%) scale(1.1) !important;
}

.modal-content {
  padding: 2rem;
  overflow-y: auto;
  max-height: 60vh;
}

/* Typography */
.modal-content p, .modal-content ul, .modal-content ol {
  margin-bottom: 1.25rem;
  line-height: var(--line-height-normal);
  font-size: clamp(1rem, 2.2vw, 1.15rem); /* Responsive typography */
  color: rgba(255, 255, 255, 0.95);
  font-weight: var(--font-weight-normal);
}

.modal-content h4 {
  margin: 1.5rem 0 0.75rem;
  color: rgba(14, 165, 233, 0.9);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-tight);
  line-height: var(--line-height-tight);
}

.modal-content h4:first-child {
  margin-top: 0;
}

.modal-content ul, .modal-content ol {
  padding: 0.5rem 0 1rem 0.5rem;
  margin: 0;
}

.modal-content li {
  margin-bottom: 1.25rem;
  position: relative;
  line-height: 1.6;
  padding-left: 1.75rem;
  list-style-type: none;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  color: rgba(255, 255, 255, 0.95);
}

.modal-content li:before {
  content: '';
  position: absolute;
  left: 0.4rem;
  top: 0.65em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: rgba(0, 169, 224, 0.9);
  box-shadow: 0 0 4px rgba(0, 169, 224, 0.4);
}

/* Apple-inspired Premium Hero Layout - Fully Responsive */
/* Modern hero container with improved layout */
.hero-container {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  height: auto; /* Changed from 100% to auto */
  min-height: calc(100vh - 10vh); /* Ensure minimum height */
  padding: 1rem 2rem;
  padding-bottom: 2rem;
  max-height: none;
  overflow: visible;
  gap: 1rem; /* Consistent spacing between elements */
}

/* Responsive hero container */
@media (max-width: 1024px) {
  .hero-container {
    min-height: auto;
    padding: 1rem 1.5rem;
    gap: 0.75rem;
  }
}

@media (max-width: 768px) {
  .hero-container {
    padding: 1rem 1rem 0.5rem 1rem; /* Increased top padding for logo visibility */
    gap: 0.5rem;
  }
}

@media (max-width: 480px) {
  .hero-container {
    padding: 1rem 0.5rem 0.5rem 0.5rem; /* Increased top padding for logo visibility */
    gap: 0.5rem;
  }
}

.hero-header {
  text-align: center;
  margin-bottom: 0.5rem;
}

/* Responsive logo container */
.logo-container {
  padding-top: 0;
  margin-bottom: 0.75rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.logo-container img {
  max-width: 100%;
  height: auto;
  max-height: clamp(50px, 8vh, 80px);
}

@media (max-width: 768px) {
  .logo-container {
    margin-bottom: 0.5rem;
  }
  
  .logo-container img {
    max-height: 50px;
  }
}

/* Responsive main title */
.main-title {
  font-size: clamp(1.75rem, 4vw + 0.5rem, 3.5rem);
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 0.75rem 0;
  text-align: center;
  color: #ffffff;
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  max-width: 100%;
}

/* Responsive hero description */
.hero-description {
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 400;
  max-width: 800px;
  text-align: center;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 auto 0.5rem;
  padding: 0 0.5rem;
  line-height: 1.5;
  letter-spacing: 0.01em;
}

@media (max-width: 768px) {
  .main-title {
    margin-bottom: 0.5rem;
  }
  
  .hero-description {
    margin-bottom: 0.5rem;
    padding: 0;
  }
}

/* Hero panels with responsive layout */
.hero-panels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  justify-content: center;
  align-items: stretch;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}

@media (max-width: 1024px) {
  .hero-panels {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.25rem;
  }
}

@media (max-width: 768px) {
  .hero-panels {
    grid-template-columns: 1fr;
    gap: 1rem;
    max-width: 500px;
  }
}

@media (max-width: 480px) {
  .hero-panels {
    gap: 0.75rem;
  }
}

/* Adjust hero visuals for mid-sized screens */
@media (max-height: 1023px) {
  .hero-container {
    padding: 0.5rem 1rem;
    padding-bottom: 4rem;
    justify-content: flex-start;
    gap: 0.5rem;
  }
  
  .logo-container {
    margin-bottom: 0.5rem;
  }
  
  .logo-container img {
    max-height: 50px;
  }
  
  .main-title {
    font-size: clamp(1.5rem, 4vw, 2.2rem);
    margin-bottom: 0.5rem;
  }
  
  .hero-description {
    font-size: clamp(0.9rem, 1.5vw, 1rem);
    margin-bottom: 0.25rem;
  }
  
  .avatar-button-container {
    margin: 0.25rem 0;
  }
  
  .hero-panels {
    gap: 0.75rem;
    margin-top: 0.25rem;
  }
  
  .hero-panel {
    padding: 1rem;
  }
  
  .hero-visuals {
    display: none;
  }
}

/* Hide visuals on mid-sized screens to make room for content */
@media (max-height: 1023px) {
  .hero-visuals {
    display: none;
  }
}

/* End of hero adjustments */

.reveal-animation {
  opacity: 0;
  transform: translateY(20px);
  animation: revealContent 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.content-section.reveal-animation {
  animation-delay: 0.3s;
}

@keyframes revealContent {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.product-label {
  display: inline-block;
  font-size: 0.875rem; /* 14px */
  font-weight: 600;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 1rem;
  padding: 0.5rem 0;
  position: relative;
}

.product-label::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
}

/* Enhanced main title with better typography */
.main-title {
  font-size: clamp(1.8rem, 4.5vw, 3.5rem);
  font-weight: 800;
  margin: 0 auto 0.8rem;
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: #fff;
  opacity: 1;
  animation: fadeIn 1s ease-out;
  max-width: 90%;
  padding: 0;
  position: relative;
  z-index: 2;
  text-align: center;
}

.main-title .highlight {
  background: linear-gradient(90deg, var(--primary-color), #4A90E2);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #00A9E0; /* Fallback color for browsers that don't support background-clip */
  font-weight: 700;
  transition: all 0.3s ease;
  display: inline-block;
}

/* Fallback for browsers that don't support background-clip: text */
@supports not (-webkit-background-clip: text) {
  .main-title .highlight {
    -webkit-text-fill-color: initial;
    color: #00A9E0;
    background: none;
  }
}

.main-title .highlight:hover {
  background: linear-gradient(90deg, #22C0C4, #34D399);
  -webkit-background-clip: text;
  background-clip: text;
  transform: translateY(-2px);
  text-shadow: 0 6px 20px rgba(34, 192, 196, 0.5);
}

.highlight-text {
  position: relative;
  z-index: 1;
  color: white;
}

/* Enhanced subtitle with better readability */
.subtitle {
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
  color: rgba(255, 255, 255, 0.9);
  margin: 0 auto 2.5rem;
  max-width: 750px;
  opacity: 1;
  transform: none;
  animation: fadeIn 1.2s ease-out 0.2s both;
  line-height: 1.5;
  font-weight: 400;
  padding: 0 1rem;
  font-family: var(--main-font);
  position: relative;
  z-index: 2;
  text-align: center;
}

.title-3d-wrapper {
  display: inline-block;
  transform-origin: center center;
  transition: transform 0.45s cubic-bezier(0.2, 0.82, 0.2, 1), text-shadow 0.5s ease-out, opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, text-shadow, opacity;
  /* Add subtle animation to make it feel more alive */
  animation: subtle-float 6s ease-in-out infinite alternate;
}

@keyframes subtle-float {
  0% { transform: translateY(0px); }
  100% { transform: translateY(-5px); }
}

@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.highlight-text::before {
  content: '';
  position: absolute;
  left: -5%;
  bottom: 5%;
  width: 110%;
  height: 30%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(14, 165, 233, 0.4),
    transparent
  );
  z-index: -1;
  filter: blur(10px);
  transform: skewX(-5deg);
}

/* Main hero layout */
.hero-layout {
  display: grid;
  grid-template-columns: 1fr 1fr; /* Two equal columns by default */
  gap: 2rem; /* Consistent gap */
  align-items: center; /* Center align for better visual balance */
  width: 100%;
  margin-top: 0; /* No extra margin since subtitle already has margin */
  max-height: min(calc(85vh - 5rem), 650px); /* Adjusted for better content visibility */
  overflow: visible; /* Allow content to be visible */
  box-sizing: border-box; /* Include padding in width/height calculations */
  justify-content: center;
}

/* Hero container */
.hero-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 2rem;
  padding-bottom: 4rem;
  position: relative;
  z-index: 1;
  gap: 1rem; /* Reduced spacing to fit panels better */
}

/* Hero header styling - similar to opportunity-header */
.hero-header {
  text-align: center;
  position: relative;
  z-index: 2;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-description {
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  font-weight: 400;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 0.5rem;
  max-width: 800px;
  text-align: center;
}

/* Hero panels styling - similar to opportunity-panels */
.hero-panels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  width: 100%;
  max-width: 1100px;
  margin: 0.5rem auto 0;
  justify-content: center;
}

.hero-panel {
  background: rgba(15, 23, 42, 0.3);
  border-radius: 12px;
  padding: clamp(1rem, 2vw, 1.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  min-height: 280px; /* Ensure consistent height */
  height: auto;
  justify-content: space-between; /* Push button to bottom */
}

@media (max-width: 768px) {
  .hero-panel {
    padding: 1rem;
  }
}

@media (max-width: 480px) {
  .hero-panel {
    padding: 0.875rem;
  }
}

.hero-panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 4px;
  background: linear-gradient(90deg, var(--accent-color), #4A90E2);
  transition: opacity 0.3s ease;
  opacity: 0.7;
  border-radius: 0 0 4px 4px;
}

.hero-panel:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

.hero-panel:hover::before {
  opacity: 1;
}

#empowerment-panel::before {
  background: linear-gradient(90deg, var(--accent-color), #38bdf8);
}

#simplicity-panel::before {
  background: linear-gradient(90deg, #10b981, #34d399);
}

#tools-panel::before {
  background: linear-gradient(90deg, #6366f1, #8b5cf6);
}

.panel-desc {
  margin: 0.5rem 0 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  flex-grow: 1; /* Take up available space */
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .panel-desc {
    margin: 0.375rem 0 0.75rem;
    font-size: clamp(1rem, 2.5vw, 1.15rem);
  }
}

.small-btn {
  padding: clamp(0.5rem, 1vw, 0.6rem) clamp(1rem, 2vw, 1.2rem);
  font-size: clamp(0.8rem, 1vw, 0.9rem);
  white-space: nowrap;
}

@media (max-width: 768px) {
  .small-btn {
    padding: 0.5rem 1rem;
    font-size: clamp(0.9rem, 2vw, 1rem);
  }
}

/* Panel icons for hero section */
.panel-icon-access::before,
.panel-icon-ai::before,
.panel-icon-journey::before {
  display: none; /* Remove emoji pseudo-elements */
}

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

/* CSS Variables */
:root {
  --main-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
  --primary-color: #00A9E0;
  --accent-color: #00C4FF;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;
  --letter-spacing-tight: -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.025em;
  /* Responsive spacing variables */
  --slide-padding-desktop: 5vh 8vw;
  --slide-padding-tablet: 4vh 5vw;
  --slide-padding-mobile: 3vh 4vw;
}

/* Global SVG icon styles */
.tech-button-icon svg,
.feature-button-icon svg,
.multimodal-button-icon svg,
.traction-button-icon svg,
.funds-button-icon svg,
.contact-button-icon svg,
.data-icon svg,
.feature-icon svg,
.panel-icon svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.5;
}

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  font-family: var(--main-font);
  color: #ffffff;
  background: linear-gradient(to bottom, #02193B, #000000); /* Gradient from exact 02193B to black */
  -webkit-tap-highlight-color: transparent; /* Remove tap highlight on mobile */
  touch-action: manipulation; /* Improve touch experience */
}

/* Allow scrolling on mobile devices */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  html, body {
    overflow: visible !important;
    height: auto !important;
  }
}

/* Background Canvas fixed behind everything */
#bg-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0; /* behind slides but above body background */
  pointer-events: none;
  filter: blur(25px) brightness(1.1) saturate(1.2); /* Much more blur for interactive elements */
  transition: filter 1s ease-in-out; /* Slower, more eased transition */
}


/* Authentication Overlay */
.auth-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(10px);
  background: rgba(0, 0, 0, 0.8);
  z-index: 1000;
}

.auth-overlay.hidden {
  display: none;
}

.glass {
  background: rgba(30, 41, 59, 0.2);
  border: 1px solid rgba(51, 65, 85, 0.3);
  border-radius: 12px;
  padding: 2rem;
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px);
}

.auth-panel h2 {
  margin-bottom: 1rem;
}

#password-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: none;
  background: rgba(51, 65, 85, 0.4);
  color: #fff;
  margin-bottom: 1rem;
  font-size: max(16px, 1rem); /* Prevent mobile zoom */
}

#auth-button {
  width: 100%;
  padding: 0.75rem;
  background: var(--primary-color);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  color: #fff;
  font-weight: 600;
  transition: background 0.3s;
}

#auth-button:hover {
  background: #00C4FF;
}

.error {
  color: #ff6b6b;
  margin-top: 0.5rem;
  text-align: center;
}

/* Deck & Slides - Updated for better responsiveness */
.deck {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  scroll-snap-type: none;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-behavior: auto;
  -webkit-overflow-scrolling: touch; /* Improve smooth scrolling on iOS */
  overscroll-behavior: none; /* Prevent overscroll effects */
}

/* Completely disable scroll snapping on mobile devices */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  .deck {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
    -webkit-overflow-scrolling: touch !important;
    /* Ensure deck starts at very top */
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
}

/* Slide Numbers */
.slide-number {
  position: absolute;
  top: 1.5rem;
  left: 2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  z-index: 10;
}

/* iOS Safe Area Support */
@supports (padding-top: env(safe-area-inset-top)) {
  .slide-number {
    top: calc(1.5rem + env(safe-area-inset-top));
  }
  
  @media (max-width: 768px) {
    .slide:first-child {
      padding-top: calc(5rem + env(safe-area-inset-top)) !important;
    }
  }
  
  @media (max-width: 480px) {
    .slide:first-child {
      padding-top: calc(4rem + env(safe-area-inset-top)) !important;
    }
  }
}


.slide-number-small {
  font-size: 0.85rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.65); /* Adjusted opacity */
  letter-spacing: 0.05em;
}

@media (max-width: 768px) {
  .slide-number {
    top: 1rem;
    left: 1rem;
  }
  .slide-number-small {
    font-size: 0.75rem;
  }
}
  

@media (max-width: 480px) {
  .slide-number {
    top: 0.75rem;
    left: 0.75rem;
  }
  
  .slide-number-small {
    font-size: 0.65rem;
  }
}
  

/* Updated slide styles for better responsiveness */
.slide {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh; /* use dynamic viewport height where supported */
  height: auto; /* Allow slides to expand based on content */
  display: flex;
  justify-content: center;
  align-items: flex-start; /* Changed from center to flex-start */
  scroll-snap-align: none;
  position: relative;
  transition: transform 0.8s ease, opacity 0.8s ease;
  overflow: visible; /* Changed from hidden to visible */
  box-sizing: border-box;
  padding: var(--slide-padding-desktop);
}

/* Completely disable scroll snap alignment on mobile and touch devices */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  .slide {
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
  }
}

/* Responsive slide padding */
@media (max-width: 1024px) {
  .slide {
    padding: var(--slide-padding-tablet);
  }
}

@media (max-width: 768px) {
  .slide {
    padding: var(--slide-padding-mobile);
    padding-top: 5rem; /* Increased space for slide number and logo visibility */
    padding-bottom: 5rem; /* Extra space for navigation */
  }
  
  /* Extra padding for first slide to ensure logo is visible */
  .slide:first-child {
    padding-top: 6rem !important;
  }
}

@media (max-width: 480px) {
  .slide {
    padding: 4rem 1rem 4rem 1rem; /* Increased top padding for logo visibility */
  }
}

.slide-title {
  font-size: clamp(2rem, 5vw, 6rem);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
  color: #ffffff; /* Ensure slide titles are white */
}

.slide-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease;
  border-radius: 12px;
}

.slide-img.active {
  opacity: 1;
}

/* Gallery Container and Related Elements */
.gallery-container {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: 1200px;
  height: auto;
  z-index: 10;
  padding: 1rem;
}

.gallery-header {
  text-align: center;
  margin-bottom: 2rem;
}

.gallery-title {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
  color: white;
}

.gallery-description {
  font-size: 1.1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  max-width: 700px;
  margin: 0 auto 1.5rem;
}

@media (max-width: 768px) {
  .gallery-header {
    margin-bottom: 1.5rem;
  }
  
  .gallery-title {
    font-size: 2.2rem;
  }
  
  .gallery-description {
    font-size: 1rem;
    max-width: 90%;
    margin-bottom: 1.25rem;
  }
}

@media (max-width: 480px) {
  .gallery-container {
    padding: 0.75rem;
    width: 95%;
  }
  
  .gallery-header {
    margin-bottom: 1.25rem;
  }
  
  .gallery-title {
    font-size: 1.8rem;
  }
  
  .gallery-description {
    font-size: 0.95rem;
    margin-bottom: 1rem;
  }
}

.gallery-presentation {
  position: relative;
  margin-bottom: 2.5rem;
}

.gallery-navigation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
}


.navigation-arrows {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 1rem;
  z-index: 10;
}

.arrow {
  background: rgba(51, 65, 85, 0.4); /* Background similar to inputs */
  color: #ffffff;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.3s, color 0.3s;
  font-size: 1.2rem;
  border: 1px solid rgba(51, 65, 85, 0.3);
}

.arrow:hover {
  background: var(--primary-color); /* Vibrant blue on hover */
  color: #ffffff;
}

/* Generic link styling (can be overridden by more specific selectors) */
a {
  color: var(--primary-color); /* Vibrant blue for links */
  text-decoration: none;
  transition: color 0.3s;
}

a:hover {
  color: #00C4FF; /* Brighter blue on hover */
}

/* Enhanced Image Slideshow */
.slideshow {
  position: relative;
  width: 100%;
  height: 400px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

@media (max-width: 768px) {
  .slideshow {
    height: 300px;
    border-radius: 12px;
  }
}

@media (max-width: 480px) {
  .slideshow {
    height: 220px;
    border-radius: 10px;
  }
}

.center-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}


/* Debug Navigation */
.debug-nav {
  position: fixed;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
  z-index: 950;
}

.primary-btn {
  background: linear-gradient(135deg, #10b981 0%, var(--accent-color) 100%);
  color: white;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, background-position 0.3s ease;
  background-size: 200% 200%;
  background-position: 0% 0%;
  position: relative;
  overflow: hidden;
}

.primary-btn::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 70%);
  opacity: 0;
  transform: scale(0.5);
  transition: transform 0.5s ease, opacity 0.5s ease;
  pointer-events: none;
}

.primary-btn:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2), 0 0 15px rgba(14, 165, 233, 0.4);
  background-position: 100% 100%;
}

.primary-btn:hover::before {
  opacity: 1;
  transform: scale(1);
}

.primary-btn:active {
  transform: translateY(1px) scale(0.98);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.debug-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #10b981 0%, var(--accent-color) 100%);
  color: white;
  border: none;
  font-weight: bold;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transition: transform 0.2s, box-shadow 0.2s;
}

.debug-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}


/* Chatbot */
.chatbot-icon {
  position: fixed;
  top: 2rem;
  right: 2rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 1.5rem 0.5rem 1rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #f0fdfa 0%, #e0f2fe 100%);
  color: #0c4a6e;
  font-weight: 600;
  font-size: 1.1rem;
  cursor: pointer;
  z-index: 900;
  box-shadow: 
    0 4px 24px 0 rgba(16,74,112,0.15), 
    0 1.5px 4px 0 rgba(20,184,166,0.12),
    0 0 0 0 rgba(20,184,166,0);
  border: 1px solid rgba(209, 250, 229, 0.8);
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  user-select: none;
  animation: icon-pulse 4s infinite alternate;
}

/* Locked state for chatbot icon */
.chatbot-icon.locked {
  opacity: 0.4;
  filter: grayscale(0.8);
  cursor: pointer;
  animation: none;
  background: linear-gradient(135deg, #e5e7eb 0%, #d1d5db 100%);
  color: #6b7280;
  border-color: rgba(156, 163, 175, 0.5);
  box-shadow: 
    0 2px 12px 0 rgba(107,114,128,0.1), 
    0 1px 2px 0 rgba(107,114,128,0.08);
  transition: all 0.3s ease;
}

.chatbot-icon.locked:hover {
  transform: none;
  box-shadow: 
    0 2px 12px 0 rgba(107,114,128,0.1), 
    0 1px 2px 0 rgba(107,114,128,0.08);
}

/* Shake animation for locked chatbot */
@keyframes chatbot-shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-3px); }
  20%, 40%, 60%, 80% { transform: translateX(3px); }
}

.chatbot-icon.shake {
  animation: chatbot-shake 0.5s ease-in-out;
}

/* Lock icon for locked state */
.chatbot-lock-icon {
  width: 1.2rem;
  height: 1.2rem;
  margin-left: 0.25rem;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

/* Hide lock icon when unlocked */
.chatbot-icon:not(.locked) .chatbot-lock-icon {
  display: none;
}

/* Locked chatbot tooltip */
.locked-tooltip {
  position: fixed;
  background: rgba(239, 68, 68, 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 2px solid rgba(239, 68, 68, 0.8);
  border-radius: 12px;
  padding: 0.75rem 1rem;
  color: white;
  font-size: 0.85rem;
  font-weight: 500;
  max-width: 220px;
  z-index: 1300;
  opacity: 0;
  transform: scale(0.8) translateY(10px);
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
              0 0 20px rgba(239, 68, 68, 0.2);
  pointer-events: none;
  line-height: 1.3;
  text-align: center;
}

.locked-tooltip.show {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* Removed arrow pointing down (tooltip above chatbot) - now just a simple red box */
/*
.locked-tooltip::before {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid rgba(239, 68, 68, 0.6);
}

.locked-tooltip::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid rgba(0, 0, 0, 0.9);
}
*/

@keyframes icon-pulse {
  0% {
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.15), 
      0 1.5px 4px 0 rgba(20,184,166,0.12),
      0 0 0 0 rgba(20,184,166,0);
  }
  100% {
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.2), 
      0 1.5px 4px 0 rgba(20,184,166,0.15),
      0 0 15px 2px rgba(20,184,166,0.2);
  }
}

/* Unlock burst animation */
@keyframes unlock-burst {
  0% {
    transform: scale(1);
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.15), 
      0 1.5px 4px 0 rgba(20,184,166,0.12),
      0 0 0 0 rgba(34, 192, 196, 0);
  }
  30% {
    transform: scale(1.15);
    box-shadow: 
      0 8px 40px 0 rgba(34, 192, 196, 0.4), 
      0 4px 20px 0 rgba(34, 192, 196, 0.3),
      0 0 30px 5px rgba(34, 192, 196, 0.5);
  }
  60% {
    transform: scale(1.05);
    box-shadow: 
      0 6px 32px 0 rgba(34, 192, 196, 0.3), 
      0 3px 16px 0 rgba(34, 192, 196, 0.25),
      0 0 25px 3px rgba(34, 192, 196, 0.4);
  }
  100% {
    transform: scale(1);
    box-shadow: 
      0 4px 24px 0 rgba(16,74,112,0.2), 
      0 1.5px 4px 0 rgba(20,184,166,0.15),
      0 0 15px 2px rgba(20,184,166,0.2);
  }
}

.chatbot-emoji {
  font-size: 1.5rem;
  margin-right: 0.5rem;
  pointer-events: none; /* Prevent direct clicks on emoji */
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chatbot-emoji svg {
  width: 100%;
  height: 100%;
  stroke-width: 1.5;
}

.chatbot-label {
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #0891b2;
  white-space: nowrap;
  pointer-events: none; /* Prevent direct clicks on label text */
}

.chatbot-icon:hover {
  background: linear-gradient(135deg, #e0f2fe 0%, #ccfbf1 100%);
  box-shadow: 0 8px 32px 0 rgba(16,74,112,0.13), 0 3px 8px 0 rgba(16,185,129,0.11);
}

@media (max-width: 768px) {
  .chatbot-icon {
    top: 1rem;
    right: 1rem;
    width: 44px;
    height: 44px;
    font-size: 1.1rem;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
  }
  .chatbot-emoji {
    font-size: 1.3rem;
    margin-right: 0;
    width: 1.3rem;
    height: 1.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .chatbot-emoji svg {
    width: 100%;
    height: 100%;
    stroke-width: 1.5;
    color: currentColor;
  }
  .chatbot-label {
    display: none; /* Hide label on medium mobile screens */
  }
}

@media (max-width: 480px) {
  .chatbot-icon {
    top: 0.75rem;
    right: 0.75rem;
    width: 40px;
    height: 40px;
    padding: 0.5rem;
    font-size: 0.9rem;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .chatbot-emoji {
    font-size: 1.2rem;
    margin-right: 0;
    width: 1.2rem;
    height: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .chatbot-emoji svg {
    width: 100%;
    height: 100%;
    stroke-width: 1.5;
    color: currentColor;
  }
  .chatbot-label {
    display: none; /* Hide label on small mobile screens */
  }
}

/* Chatbot Panel */
.chatbot-panel {
  position: fixed;
  top: 3.5rem;
  right: 2rem;
  width: 500px;  /* Increased width */
  min-height: 550px; /* Minimum height */
  max-height: 80vh; /* Maximum height */
  height: auto; /* Allow expansion */
  display: flex;
  flex-direction: column;
  border-radius: 24px; /* More rounded corners */
  overflow: hidden;
  z-index: 950;
  box-shadow: 0 10px 40px 0 rgba(0, 0, 0, 0.3), 0 6px 15px 0 rgba(0, 110, 255, 0.15);
  border: 1px solid rgba(14, 165, 233, 0.3);
  background: rgba(15, 23, 42, 0.85); /* Slightly less transparent */
  backdrop-filter: blur(15px); /* Increased blur */
  -webkit-backdrop-filter: blur(15px);
  color: #ffffff;
  transform-origin: top right;
  transition: height 0.3s ease;
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.chatbot-panel header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem 0.75rem 1.25rem;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(14, 165, 233, 0.3);
  position: relative;
}

.chatbot-header-content {
  display: flex;
  align-items: center;
  gap: 10px;
}

.chatbot-logo {
  height: 24px;
  width: auto;
  opacity: 0.9;
}

.chatbot-title {
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 500;
}

.header-spacer {
  flex: 1;
}

#chatbot-close {
  background: none;
  border: none;
  color: #888;
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  transition: background 0.2s;
}
#chatbot-close-btn {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  transition: all 0.2s;
}

#chatbot-close-btn:hover {
  color: rgba(255, 255, 255, 1);
  background: rgba(255, 255, 255, 0.1);
}

/* Chatbot Messages Container */
.chatbot-messages {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  display: flex;
  flex-direction: column;
  gap: 16px; /* Increased spacing between messages */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
  max-height: calc(100% - 180px); /* Account for header and input area */
  overflow-x: hidden;
  height: auto;
  min-height: 200px;
  transition: all 0.3s ease;
}

/* Custom scrollbar for chat container */
.chatbot-messages::-webkit-scrollbar {
  width: 8px;
}

.chatbot-messages::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
}

.chatbot-messages::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.3);
  border-radius: 10px;
}

.chatbot-messages::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.5);
}

/* Special animation class for chatbot panel */
.chatbot-hidden {
  opacity: 0 !important;
  transform: scale(0.92) translateY(-20px) !important;
  pointer-events: none !important;
  visibility: visible !important;
  display: flex !important;
}

/* Message styling */
.message {
  padding: 12px 16px;
  border-radius: 18px; /* More rounded corners */
  max-width: 85%;
  line-height: 1.5;
  word-wrap: break-word;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
  white-space: pre-line; /* Preserve line breaks */
  overflow-wrap: break-word;
}

/* Style for elements inside messages */
.message p {
  margin: 8px 0;
}

.message ul, .message ol {
  margin: 8px 0;
  padding-left: 20px;
}

.message li {
  margin: 4px 0;
}

.message code {
  background: rgba(0, 0, 0, 0.2);
  padding: 2px 4px;
  border-radius: 4px;
  font-family: monospace;
  font-size: 0.9em;
  word-break: break-all;
  white-space: pre-wrap;
}

.message pre {
  background: rgba(0, 0, 0, 0.2);
  padding: 10px;
  border-radius: 6px;
  width: 100%;
  margin: 10px 0;
  white-space: pre-wrap;
  word-break: break-word;
}

.message pre code {
  background: transparent;
  padding: 0;
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Animation for messages appearing */
@keyframes message-fade-in {
  0% {
    opacity: 0;
    transform: translateY(15px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes message-slide-in-right {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes message-slide-in-left {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes message-expand {
  0% {
    max-height: 0;
    transform: scaleY(0.7);
    opacity: 0.7;
  }
  40% {
    opacity: 1;
  }
  100% {
    max-height: 1000px;
    transform: scaleY(1);
    opacity: 1;
  }
}

/* User messages */
.message.user {
  align-self: flex-end;
  background: rgba(14, 165, 233, 0.3); /* Darker blue background */
  color: #ffffff; /* White text */
  border: 1px solid rgba(14, 165, 233, 0.5);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
  animation: message-slide-in-right 0.3s ease-out forwards, message-expand 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: bottom right;
}

/* Assistant messages */
.message.assistant {
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.2); /* More visible background */
  color: #ffffff; /* White text */
  border: 1px solid rgba(255, 255, 255, 0.3);
  animation: message-slide-in-left 0.4s ease-out forwards, message-expand 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: bottom left;
}

/* System messages (warnings, errors, info) */
.message.system {
  align-self: center;
  background: rgba(75, 85, 99, 0.4); /* Darker gray */
  color: #ffffff; /* White text */
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 0.9em;
  padding: 8px 12px;
  max-width: 90%;
  text-align: center;
  animation: message-fade-in 0.3s ease-out forwards, message-expand 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: center;
}

/* Warning styling */
.message.system.warning {
  background: rgba(234, 179, 8, 0.3); /* Darker yellow */
  color: #ffffff; /* White text */
  border: 1px solid rgba(234, 179, 8, 0.5);
}

/* Error styling */
.message.system.error {
  background: rgba(239, 68, 68, 0.3); /* Darker red */
  color: #ffffff; /* White text */
  border: 1px solid rgba(239, 68, 68, 0.5);
}

/* Thinking animation - replaced with spinner */
.message.thinking {
  display: flex;
  align-items: center;
  opacity: 0.8;
}

.message.thinking::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: #ffffff;
  animation: spinner 0.8s linear infinite;
}

@keyframes spinner {
  to { transform: rotate(360deg); }
}

.chatbot-input-area {
  display: flex;
  align-items: center;
  padding: 10px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.2);
  margin: 0 7.5%; /* Added margin to align with 85% max-width messages */
  border-radius: 0 0 16px 16px; /* Rounded bottom corners */
}

.chatbot-disclaimer {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
  padding: 0.5rem 1.25rem 0.75rem;
  line-height: 1.3;
}

/* Mobile navigation buttons for chatbot panel */
.chatbot-mobile-nav {
  display: none;
  flex-direction: row;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.2);
  justify-content: space-between;
}

.chatbot-nav-btn {
  flex: 1;
  padding: 0.75rem 1rem;
  background: rgba(14, 165, 233, 0.2);
  border: 1px solid rgba(14, 165, 233, 0.4);
  border-radius: 8px;
  color: rgba(14, 165, 233, 0.9);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.chatbot-nav-btn:hover {
  background: rgba(14, 165, 233, 0.3);
  color: rgba(14, 165, 233, 1);
  transform: translateY(-1px);
}

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

.chatbot-nav-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

.chatbot-nav-btn:disabled:hover {
  background: rgba(14, 165, 233, 0.2);
  color: rgba(14, 165, 233, 0.9);
  transform: none;
}

/* Show mobile navigation only on mobile devices */
@media (max-width: 768px) {
  .chatbot-mobile-nav {
    display: flex;
  }
}

.contact-link {
  color: rgba(14, 165, 233, 0.8);
  text-decoration: underline;
  cursor: pointer;
  transition: color 0.2s ease;
}

.contact-link:hover {
  color: rgba(14, 165, 233, 1);
}

.mt-4 {
  margin-top: 1rem;
}

#chatbot-input {
  flex: 1;
  border: none;
  padding: 10px 15px;
  resize: none;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  outline: none;
  height: 40px;
  font-size: max(16px, clamp(0.85rem, 1.8vw, 1rem)); /* Prevent mobile zoom */
  border-radius: 20px;
  transition: background 0.2s;
  caret-color: var(--accent-color);
}

#chatbot-input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

#chatbot-input:focus {
  background: rgba(255, 255, 255, 0.15);
}

#chatbot-send-btn {
  border: none;
  background: none;
  color: rgba(14, 165, 233, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-left: 10px;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.2s, opacity 0.3s ease, cursor 0.3s ease;
}

#chatbot-send-btn:hover {
  background: rgba(14, 165, 233, 0.2);
  color: rgba(14, 165, 233, 1);
}

#chatbot-send-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

#chatbot-send-btn:disabled:hover {
  background: none;
  color: rgba(14, 165, 233, 0.8);
}

@media (max-width: 768px) {
  .chatbot-panel {
    width: calc(100vw - 3rem);
    right: 1.5rem;
  }
}

@media (max-width: 480px) {
  .chatbot-panel {
    width: calc(100vw - 2rem);
    right: 1rem;
  }
}

/* Modal Overlay */
.modal-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0,0,0,0.8);
  backdrop-filter: blur(6px);
  z-index: 980;
}

.modal-overlay.hidden { display: none; }

.modal-box {
  background: rgba(30,30,40,0.95);
  border-radius: 12px;
  padding: 2rem;
  max-width: 90vw;
  max-height: 80vh;
  overflow: auto;
  color: #fff;
}

.modal-box h2 {
  margin-bottom: 1rem;
}

.info-btn {
  margin-top: 1rem;
  padding: 0.5rem 1rem;
  background: linear-gradient(90deg, #10b981 0%, var(--accent-color) 100%);
  border: none;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
}

/* Slide Navigation Button Group */
.slide-nav-btns {
  position: fixed;
  bottom: 6.5rem; /* leaves space for chatbot icon */
  right: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  z-index: 950;
  align-items: flex-end;
}

.next-btn, .prev-btn {
  padding: 0.75rem 1.25rem;
  background: #ffffff10;
  border: 1px solid #ffffff30;
  border-radius: 30px;
  color: #fff;
  font-size: 1rem;
  backdrop-filter: blur(10px);
  cursor: pointer;
  transition: background 0.3s;
  min-width: 130px;
  text-align: center;
}

.next-btn:hover, .prev-btn:hover {
  background: #ffffff25;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  /* Hide navigation buttons on mobile - users can swipe/scroll naturally */
  .slide-nav-btns {
    display: none;
  }
  
  .slide-nav-btns {
    bottom: 1rem;
    padding: 0 1rem;
    position: sticky; /* Change from fixed to sticky */
    background: rgba(0, 0, 0, 0.8); /* Add background for better visibility */
    backdrop-filter: blur(10px);
    border-radius: 12px;
    padding: 0.5rem;
    margin: 0 auto;
    width: calc(100% - 2rem);
    max-width: 400px;
  }
  
  .next-btn, .prev-btn {
    padding: 0.6rem 1rem;
    font-size: 0.9rem;
  }
}

@media (max-width: 480px) {
  .slide-nav-btns {
    bottom: 0.5rem;
    gap: 0.5rem;
    width: calc(100% - 1rem);
  }
  
  .next-btn, .prev-btn {
    padding: 0.5rem 0.8rem;
    font-size: 0.85rem;
    min-width: auto;
  }
}

/* Button Group - Apple-inspired design */
.button-group {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
}

.modal-btn {
  /* Larger size */
  padding: 0.85rem 1.8rem;
  
  /* Modern styling */
  border-radius: 12px;
  background: var(--primary-color); /* Vibrant blue for modal buttons */
  color: #ffffff;
  border: none;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.01em;
  margin: 0.5rem;
  
  /* Interaction */
  cursor: pointer;
  transition: background 0.3s, transform 0.2s;
  position: relative;
  overflow: hidden;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 169, 224, 0.25); /* Shadow with new blue */
}

.modal-btn:hover {
  background: #00C4FF; /* Brighter blue on hover */
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 169, 224, 0.3);
}

.modal-btn.secondary {
  background: rgba(51, 65, 85, 0.5); /* Darker, less prominent secondary buttons */
  color: #cbd5e1; /* Lighter text for secondary */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.modal-btn.secondary:hover {
  background: rgba(71, 85, 105, 0.7);
  color: #ffffff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Modal System */
.modal-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  /* Add padding on mobile for easier closing */
  padding: 1rem;
}

.modal-container.active {
  display: flex;
  opacity: 1;
  pointer-events: auto;
  z-index: 1100; /* Ensure it's above chatbot when active */
}

.modal-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 1; /* Backdrop should be behind modal content */
}

.modal {
  position: fixed !important; /* Changed to fixed for better mobile centering */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translateY(20px);
  width: 90%;
  max-width: 750px; /* Increased from 600px to accommodate 16:9 images */
  max-height: 90vh; /* Increased from 85vh for better space utilization */
  overflow-y: auto;
  border-radius: 20px;
  padding: 0;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 169, 224, 0.1);
  -webkit-overflow-scrolling: touch; /* Improve mobile scrolling */
  opacity: 0;
  display: none;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(0, 169, 224, 0.15);
  z-index: 10; /* Modal content above backdrop */
  margin: 0 !important; /* Ensure no margin offsets */
}

.modal.active {
  transform: translate(-50%, -50%) translateY(0) !important; /* Force centering */
  opacity: 1;
  display: block;
}

.modal header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid rgba(0, 169, 224, 0.15);
  background: rgba(0, 169, 224, 0.05);
  position: relative;
}

/* Ensure modal header is positioned for absolute close button */
.modal header {
  position: relative;
}

@media (max-width: 768px) {
  .modal {
    width: 95%;
    max-width: none;
    max-height: 95vh; /* Slightly more space on tablets */
  }
  
  /* Ensure modals appear above avatar experience on mobile */
  .modal-container.active {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
  
  .modal-backdrop {
    z-index: 9999999998 !important; /* Just below modal but above avatar */
  }
  
  .modal {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
}

@media (max-width: 480px) {
  .modal {
    width: 95%;
    max-width: none;
    max-height: 95vh;
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
  }
  
  /* Ensure modals appear above avatar experience on small mobile */
  .modal-container.active {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
  
  .modal-backdrop {
    z-index: 9999999998 !important; /* Just below modal but above avatar */
  }
  
  .modal {
    z-index: 9999999999 !important; /* Higher than avatar experience */
  }
  
  .modal header {
    padding: 0.8rem 1rem;
  }
  
  .modal header h3 {
    font-size: 1.1rem; /* Reduced from var(--font-size-xl) */
    font-weight: var(--font-weight-semibold);
    letter-spacing: var(--letter-spacing-tight);
    padding-right: 40px; /* Space for close button */
  }
  
  .modal-close {
    font-size: 1.2rem;
    /* Large touch target on small screens */
    width: 50px !important;
    height: 50px !important;
    padding: 0 !important;
    margin: 0 !important;
    position: absolute !important;
    top: 50% !important;
    right: 1rem !important;
    transform: translateY(-50%) !important;
  }
  
  .modal-content {
    padding: 1rem;
  }
}

.modal header h3 {
  margin: 0;
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-tight);
  color: rgba(0, 169, 224, 1);
  line-height: var(--line-height-tight);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.modal-close {
  position: absolute !important;
  top: 50% !important;
  right: 1.5rem !important;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.2rem;
  cursor: pointer;
  transition: all 0.2s ease;
  /* Significantly larger click area */
  width: 60px !important;
  height: 60px !important;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Only use transform for vertical centering */
  transform: translateY(-50%) !important;
  /* Ensure the button stays clickable */
  z-index: 10000 !important; /* Very high z-index to ensure it's always on top */
  /* Remove conflicting padding/margin styles */
  padding: 0 !important;
  margin: 0 !important;
  /* Ensure it's not affected by parent transforms */
  pointer-events: all !important;
  /* Add outline for debugging (can be removed later) */
  outline: none;
  /* Ensure button creates its own stacking context */
  isolation: isolate;
}

.modal-close:hover {
  color: white;
  transform: translateY(-50%) scale(1.1) !important;
}

.modal-content {
  padding: 2rem;
  overflow-y: auto;
  max-height: 60vh;
}

/* Typography */
.modal-content p, .modal-content ul, .modal-content ol {
  margin-bottom: 1.25rem;
  line-height: var(--line-height-normal);
  font-size: clamp(1rem, 2.2vw, 1.15rem); /* Responsive typography */
  color: rgba(255, 255, 255, 0.95);
  font-weight: var(--font-weight-normal);
}

.modal-content h4 {
  margin: 1.5rem 0 0.75rem;
  color: rgba(14, 165, 233, 0.9);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-tight);
  line-height: var(--line-height-tight);
}

.modal-content h4:first-child {
  margin-top: 0;
}

.modal-content ul, .modal-content ol {
  padding: 0.5rem 0 1rem 0.5rem;
  margin: 0;
}

.modal-content li {
  margin-bottom: 1.25rem;
  position: relative;
  line-height: 1.6;
  padding-left: 1.75rem;
  list-style-type: none;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  color: rgba(255, 255, 255, 0.95);
}

.modal-content li:before {
  content: '';
  position: absolute;
  left: 0.4rem;
  top: 0.65em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: rgba(0, 169, 224, 0.9);
  box-shadow: 0 0 4px rgba(0, 169, 224, 0.4);
}

/* Apple-inspired Premium Hero Layout - Fully Responsive */
/* Modern hero container with improved layout */
.hero-container {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  height: auto; /* Changed from 100% to auto */
  min-height: calc(100vh - 10vh); /* Ensure minimum height */
  padding: 1rem 2rem;
  padding-bottom: 2rem;
  max-height: none;
  overflow: visible;
  gap: 1rem; /* Consistent spacing between elements */
}

/* Responsive hero container */
@media (max-width: 1024px) {
  .hero-container {
    min-height: auto;
    padding: 1rem 1.5rem;
    gap: 0.75rem;
  }
}

@media (max-width: 768px) {
  .hero-container {
    padding: 1rem 1rem 0.5rem 1rem; /* Increased top padding for logo visibility */
    gap: 0.5rem;
  }
}

@media (max-width: 480px) {
  .hero-container {
    padding: 1rem 0.5rem 0.5rem 0.5rem; /* Increased top padding for logo visibility */
    gap: 0.5rem;
  }
}

.hero-header {
  text-align: center;
  margin-bottom: 0.5rem;
}

/* Responsive logo container */
.logo-container {
  padding-top: 0;
  margin-bottom: 0.75rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.logo-container img {
  max-width: 100%;
  height: auto;
  max-height: clamp(50px, 8vh, 80px);
}

@media (max-width: 768px) {
  .logo-container {
    margin-bottom: 0.5rem;
  }
  
  .logo-container img {
    max-height: 50px;
  }
}

/* Responsive main title */
.main-title {
  font-size: clamp(1.75rem, 4vw + 0.5rem, 3.5rem);
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 0.75rem 0;
  text-align: center;
  color: #ffffff;
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  max-width: 100%;
}

/* Responsive hero description */
.hero-description {
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 400;
  max-width: 800px;
  text-align: center;
  color: rgba(255, 255, 255, 0.95);
  margin: 0 auto 0.5rem;
  padding: 0 0.5rem;
  line-height: 1.5;
  letter-spacing: 0.01em;
}

@media (max-width: 768px) {
  .main-title {
    margin-bottom: 0.5rem;
  }
  
  .hero-description {
    margin-bottom: 0.5rem;
    padding: 0;
  }
}

/* Hero panels with responsive layout */
.hero-panels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  justify-content: center;
  align-items: stretch;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}

@media (max-width: 1024px) {
  .hero-panels {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.25rem;
  }
}

@media (max-width: 768px) {
  .hero-panels {
    grid-template-columns: 1fr;
    gap: 1rem;
    max-width: 500px;
  }
}

@media (max-width: 480px) {
  .hero-panels {
    gap: 0.75rem;
  }
}

/* Adjust hero visuals for mid-sized screens */
@media (max-height: 1023px) {
  .hero-container {
    padding: 0.5rem 1rem;
    padding-bottom: 4rem;
    justify-content: flex-start;
    gap: 0.5rem;
  }
  
  .logo-container {
    margin-bottom: 0.5rem;
  }
  
  .logo-container img {
    max-height: 50px;
  }
  
  .main-title {
    font-size: clamp(1.5rem, 4vw, 2.2rem);
    margin-bottom: 0.5rem;
  }
  
  .hero-description {
    font-size: clamp(0.9rem, 1.5vw, 1rem);
    margin-bottom: 0.25rem;
  }
  
  .avatar-button-container {
    margin: 0.25rem 0;
  }
  
  .hero-panels {
    gap: 0.75rem;
    margin-top: 0.25rem;
  }
  
  .hero-panel {
    padding: 1rem;
  }
  
  .hero-visuals {
    display: none;
  }
}

/* Hide visuals on mid-sized screens to make room for content */
@media (max-height: 1023px) {
  .hero-visuals {
    display: none;
  }
}

/* End of hero adjustments */

.reveal-animation {
  opacity: 0;
  transform: translateY(20px);
  animation: revealContent 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.content-section.reveal-animation {
  animation-delay: 0.3s;
}

@keyframes revealContent {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.product-label {
  display: inline-block;
  font-size: 0.875rem; /* 14px */
  font-weight: 600;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 1rem;
  padding: 0.5rem 0;
  position: relative;
}

.product-label::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
}

/* Enhanced main title with better typography */
.main-title {
  font-size: clamp(1.8rem, 4.5vw, 3.5rem);
  font-weight: 800;
  margin: 0 auto 0.8rem;
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: #fff;
  opacity: 1;
  animation: fadeIn 1s ease-out;
  max-width: 90%;
  padding: 0;
  position: relative;
  z-index: 2;
  text-align: center;
}

.main-title .highlight {
  background: linear-gradient(90deg, var(--primary-color), #4A90E2);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #00A9E0; /* Fallback color for browsers that don't support background-clip */
  font-weight: 700;
  transition: all 0.3s ease;
  display: inline-block;
}

/* Fallback for browsers that don't support background-clip: text */
@supports not (-webkit-background-clip: text) {
  .main-title .highlight {
    -webkit-text-fill-color: initial;
    color: #00A9E0;
    background: none;
  }
}

.main-title .highlight:hover {
  background: linear-gradient(90deg, #22C0C4, #34D399);
  -webkit-background-clip: text;
  background-clip: text;
  transform: translateY(-2px);
  text-shadow: 0 6px 20px rgba(34, 192, 196, 0.5);
}

.highlight-text {
  position: relative;
  z-index: 1;
  color: white;
}

/* Enhanced subtitle with better readability */
.subtitle {
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
  color: rgba(255, 255, 255, 0.9);
  margin: 0 auto 2.5rem;
  max-width: 750px;
  opacity: 1;
  transform: none;
  animation: fadeIn 1.2s ease-out 0.2s both;
  line-height: 1.5;
  font-weight: 400;
  padding: 0 1rem;
  font-family: var(--main-font);
  position: relative;
  z-index: 2;
  text-align: center;
}

.title-3d-wrapper {
  display: inline-block;
  transform-origin: center center;
  transition: transform 0.45s cubic-bezier(0.2, 0.82, 0.2, 1), text-shadow 0.5s ease-out, opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, text-shadow, opacity;
  /* Add subtle animation to make it feel more alive */
  animation: subtle-float 6s ease-in-out infinite alternate;
}

@keyframes subtle-float {
  0% { transform: translateY(0px); }
  100% { transform: translateY(-5px); }
}

@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.highlight-text::before {
  content: '';
  position: absolute;
  left: -5%;
  bottom: 5%;
  width: 110%;
  height: 30%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(14, 165, 233, 0.4),
    transparent
  );
  z-index: -1;
  filter: blur(10px);
  transform: skewX(-5deg);
}

/* Main hero layout */
.hero-layout {
  display: grid;
  grid-template-columns: 1fr 1fr; /* Two equal columns by default */
  gap: 2rem; /* Consistent gap */
  align-items: center; /* Center align for better visual balance */
  width: 100%;
  margin-top: 0; /* No extra margin since subtitle already has margin */
  max-height: min(calc(85vh - 5rem), 650px); /* Adjusted for better content visibility */
  overflow: visible; /* Allow content to be visible */
  box-sizing: border-box; /* Include padding in width/height calculations */
  justify-content: center;
}

/* Hero container */
.hero-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 2rem;
  padding-bottom: 4rem;
  position: relative;
  z-index: 1;
  gap: 1rem; /* Reduced spacing to fit panels better */
}

/* Hero header styling - similar to opportunity-header */
.hero-header {
  text-align: center;
  position: relative;
  z-index: 2;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-description {
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  font-weight: 400;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 0.5rem;
  max-width: 800px;
  text-align: center;
}

/* Hero panels styling - similar to opportunity-panels */
.hero-panels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  width: 100%;
  max-width: 1100px;
  margin: 0.5rem auto 0;
  justify-content: center;
}

.hero-panel {
  background: rgba(15, 23, 42, 0.3);
  border-radius: 12px;
  padding: clamp(1rem, 2vw, 1.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  min-height: 280px; /* Ensure consistent height */
  height: auto;
  justify-content: space-between; /* Push button to bottom */
}

@media (max-width: 768px) {
  .hero-panel {
    padding: 1rem;
  }
}

@media (max-width: 480px) {
  .hero-panel {
    padding: 0.875rem;
  }
}

.hero-panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 4px;
  background: linear-gradient(90deg, var(--accent-color), #4A90E2);
  transition: opacity 0.3s ease;
  opacity: 0.7;
  border-radius: 0 0 4px 4px;
}

.hero-panel:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

.hero-panel:hover::before {
  opacity: 1;
}

#empowerment-panel::before {
  background: linear-gradient(90deg, var(--accent-color), #38bdf8);
}

#simplicity-panel::before {
  background: linear-gradient(90deg, #10b981, #34d399);
}

#tools-panel::before {
  background: linear-gradient(90deg, #6366f1, #8b5cf6);
}

.panel-desc {
  margin: 0.5rem 0 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  flex-grow: 1; /* Take up available space */
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .panel-desc {
    margin: 0.375rem 0 0.75rem;
    font-size: clamp(1rem, 2.5vw, 1.15rem);
  }
}

.small-btn {
  padding: clamp(0.5rem, 1vw, 0.6rem) clamp(1rem, 2vw, 1.2rem);
  font-size: clamp(0.8rem, 1vw, 0.9rem);
  white-space: nowrap;
}

@media (max-width: 768px) {
  .small-btn {
    padding: 0.5rem 1rem;
    font-size: clamp(0.9rem, 2vw, 1rem);
  }
}

/* Panel icons for hero section */
.panel-icon-access::before,
.panel-icon-ai::before,
.panel-icon-journey::before {
  display: none; /* Remove emoji pseudo-elements */
}

/* Hero visuals container */
.hero-visuals {
  display: grid;
  grid-template-columns: 1fr;
  justify-content: center;
  align-items: center;
  margin: 0.5rem auto 0;
  max-height: min(calc(50vh - 8rem), 350px); /* Further reduced height */
  width: 100%;
  position: relative;
}

/* Video unlock instruction text */
.video-unlock-text {
  position: absolute;
  bottom: -3rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.95);
  font-size: 1.1rem;
  font-weight: 600;
  text-align: center;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(12px);
  padding: 0.75rem 1.5rem;
  border-radius: 25px;
  border: 2px solid rgba(34, 192, 196, 0.6);
  opacity: 1;
  transition: all 0.3s ease;
  z-index: 10;
  box-shadow: 
    0 0 20px rgba(34, 192, 196, 0.4),
    0 0 40px rgba(34, 192, 196, 0.2),
    inset 0 0 10px rgba(34, 192, 196, 0.1);
  animation: unlock-text-pulse 2s ease-in-out infinite alternate;
  cursor: pointer;
  user-select: none;
}

.video-unlock-text:hover {
  background: rgba(0, 0, 0, 0.6);
  border-color: rgba(34, 192, 196, 0.8);
  box-shadow: 
    0 0 25px rgba(34, 192, 196, 0.5),
    0 0 50px rgba(34, 192, 196, 0.3),
    inset 0 0 15px rgba(34, 192, 196, 0.15);
  transform: translateX(-50%) scale(1.05);
}

.video-unlock-text.hidden {
  opacity: 0;
  pointer-events: none;
}

/* Unlock text pulsing animation */
@keyframes unlock-text-pulse {
  0% {
    box-shadow: 
      0 0 20px rgba(34, 192, 196, 0.4),
      0 0 40px rgba(34, 192, 196, 0.2),
      inset 0 0 10px rgba(34, 192, 196, 0.1);
    border-color: rgba(34, 192, 196, 0.6);
  }
  100% {
    box-shadow: 
      0 0 30px rgba(34, 192, 196, 0.6),
      0 0 60px rgba(34, 192, 196, 0.4),
      inset 0 0 15px rgba(34, 192, 196, 0.2);
    border-color: rgba(34, 192, 196, 0.8);
  }
}

/* Adjust visuals on smaller screens */
@media (max-width: 1200px) {
  .hero-visuals {
    max-height: 400px;
  }
}

@media (max-width: 1024px) {
  .hero-visuals {
    max-height: 350px;
  }
}

/* Content section */
.hero-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start; /* Align to top */
  width: 100%;
  overflow-y: auto; /* Allow scrolling if needed */
  max-height: min(100%, 650px); /* Increased for better content fit */
  padding-right: 0.5rem; /* Space for scrollbar */
  box-sizing: border-box; /* Include padding in width/height calculations */
  scrollbar-width: thin; /* Thin scrollbar for Firefox */
  -ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
  -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
}

/* Hide scrollbar for Chrome, Safari and Opera */
.hero-content::-webkit-scrollbar {
  width: 0.4rem;
}

.hero-content::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
}

.hero-content::-webkit-scrollbar-thumb {
  background: rgba(14, 165, 233, 0.3);
  border-radius: 0.25rem;
}

.hero-tagline {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-relaxed);
  margin-bottom: 1.5rem; /* Consistent spacing */
  color: rgba(255, 255, 255, 0.85);
  max-width: 100%;
  font-weight: var(--font-weight-normal);
  margin-left: 0;
  margin-right: 0;
  text-align: center; /* Left alignment */
  width: 100%;
}

/* Side Panels Container */
.side-panels-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  width: 100%;
  margin: 2rem 0 0;
  position: relative;
  z-index: 2;
}

/* Hide scrollbar for Chrome, Safari and Opera */
.side-panels-container::-webkit-scrollbar {
  width: 0.4rem;
}

.side-panels-container::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
}

.side-panels-container::-webkit-scrollbar-thumb {
  background: rgba(14, 165, 233, 0.3);
  border-radius: 0.25rem;
}

/* Side Panel Styling */
.side-panel {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 18px;
  overflow: hidden;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2);
  position: relative;
  overflow: hidden;
  display: none !important;
}

.side-panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
}

.side-panel:hover {
  box-shadow: 0 0 15px rgba(14, 165, 233, 0.3);
  border-color: rgba(14, 165, 233, 0.5);
}

.panel-trigger {
  padding: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  z-index: 1;
}

.panel-trigger::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, rgba(0, 169, 224, 0.1) 0%, rgba(74, 144, 226, 0.1) 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}

.panel-trigger:hover {
  transform: translateY(-2px);
}

.panel-trigger:hover::after {
  opacity: 1;
}

.panel-icon {
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: 1rem;
  color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  padding: 4px;
}

.panel-trigger:hover .panel-icon {
  transform: translateX(4px);
  color: var(--primary-color);
}

.panel-icon svg {
  width: 100%;
  height: 100%;
}

.panel-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  background: rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.panel-content.active {
  max-height: min(50vh, 300px); /* Responsive max height with absolute maximum */
  padding: min(3vh, 1.25rem) min(5vw, 1.25rem);
  border-top: 1px solid rgba(51, 65, 85, 0.3);
  overflow-y: auto; /* Allow scrolling if needed */
}

/* Feature cards for modals */
.feature-card {
  display: block;
  margin-bottom: 1.5rem;
  padding: 1.5rem 2rem;
  background: rgba(0, 169, 224, 0.05);
  border-radius: 12px;
  border: 1px solid rgba(0, 169, 224, 0.1);
  transition: all 0.3s ease;
  min-height: auto;
  width: 100%;
  box-sizing: border-box;
}

.feature-card:hover {
  background: rgba(0, 169, 224, 0.1);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.feature-card:last-child {
  margin-bottom: 0.5rem;
}

.feature-icon {
  font-size: 1.5rem;
  margin-right: 1rem;
  background: rgba(0, 169, 224, 0.1);
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--primary-color);
  padding: 0.75rem;
}

.feature-text {
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 400;
}

.feature-list li {
  position: relative;
  padding-left: 1.75rem;
  margin-bottom: 0.75rem;
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 400;
  letter-spacing: -0.01em;
  font-family: var(--main-font);
}

.feature-list li:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary-color), #4A90E2);
  transform: translateY(-50%);
}

.close-panel {
  background: rgba(14, 165, 233, 0.2);
  border: 1px solid rgba(14, 165, 233, 0.4);
  color: rgba(14, 165, 233, 0.9);
  padding: 0.5rem 1.25rem;
  border-radius: 8px;
  margin-top: 1rem;
  cursor: pointer;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-wide);
  transition: all 0.3s ease;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.close-panel:hover {
  background: rgba(14, 165, 233, 0.3);
}

/* Interactive metrics cards */
.key-metrics {
  display: flex;
  flex-wrap: wrap; /* Allow buttons to wrap */
  gap: clamp(1rem, 2vw, 1.25rem); /* Responsive gap */
  justify-content: center;
  align-items: stretch;
  margin-bottom: 2.5rem;
  width: 100%; /* Ensure full width for centering calculation */
  max-width: 900px; /* Max width for the metrics container on large screens */
  padding: 0 clamp(0.5rem, 2vw, 1rem); /* Responsive padding */
}

.metric-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: clamp(0.7rem, 1.5vw, 1rem) clamp(1rem, 2vw, 1.25rem); /* Further adjusted vertical padding */
  flex: 1 1 200px; /* Adjusted flex-basis */
  min-width: 180px; /* Adjusted min-width */
  max-width: 260px; /* Adjusted max-width */
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 15px -10px rgba(0, 0, 0, 0.1);
}

/* Add cursor pointer to metric cards that are interactive (have data-modal attribute) */
.metric-card[data-modal] {
  cursor: pointer;
}

.metric-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 30px -10px rgba(0, 169, 224, 0.2); /* Glow effect with main accent color */
}

.metric-card::before {
  content: '';
  position: absolute;
  left: -100%;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255, 255, 255, 0.1),
    transparent
  );
  transition: left 0.6s ease;
}

.metric-card:hover::before {
  left: 100%;
}

.metric-value {
  font-size: clamp(1.6rem, 3.5vw, 2rem); /* Slightly more conservative responsive font size */
  font-weight: 700;
  color: var(--primary-color); 
  margin-bottom: 0.3em; /* Changed from 0.5rem for adaptive spacing */
  line-height: 1.2;
  overflow-wrap: break-word; /* Prevent long words from overflowing */
  word-break: break-word; /* Alternative for wider browser support for breaking words */
}

.metric-label {
  font-size: clamp(0.8rem, 1.8vw, 0.9rem); /* Responsive font size */
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 0.5em; /* Changed from 0.75rem for adaptive spacing */
  line-height: 1.3;
}

.metric-trend {
  font-size: clamp(0.75rem, 1.5vw, 0.8rem); /* Responsive font size */
  color: rgba(255, 255, 255, 0.5); 
  display: flex;
  align-items: center;
  justify-content: center; 
  line-height: 1.3;
}

.action-buttons {
  display: flex;
  flex-wrap: wrap; /* Allow buttons to wrap */
  gap: clamp(0.75rem, 2vw, 1rem); /* Responsive gap */
  justify-content: flex-start; /* Left-aligned on desktop */
  width: 100%;
  margin-top: 1rem; /* Added margin for spacing */
}

@media (max-width: 767px) {
  .action-buttons {
    justify-content: center; /* Center on mobile */
  }
}

/* Visual elements container */
.hero-visual {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 100%; /* Ensure it takes full width when stacked */
  min-height: 200px; /* Reduced minimum height to improve vertical balance */
}

/* --- Responsive adjustments for hero section --- */

/* Small screens (mobile) */
@media (max-width: 480px) {
  .slide {
    padding: 0.75rem; /* Slightly increased padding for more breathing room */
  }
  
  .hero-container {
    padding: 1rem;
    padding-bottom: 4rem;
    min-height: 85vh; /* Ensure hero content takes up most of the viewport and can be centered */
    width: 98%; /* Wider container on mobile */
  }
  
  .hero-headline {
    margin-bottom: 1.25rem;
  }
  
  .logo-container {
    margin: 0 0 1rem 0;
  }
  
  .hero-logo {
    max-width: 100px;
  }
  
  .main-title {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
  }
  
  .subtitle {
    font-size: clamp(0.9rem, 3.5vw, 1rem);
  }
  
  .hero-layout {
    gap: 1.25rem;
  }
  
  .hero-content {
    padding: 0;
  }
  
  .hero-tagline {
    font-size: var(--font-size-base);
    line-height: var(--line-height-normal);
    margin: 0 auto 1.25rem;
    padding: 0;
    max-width: 95%;
    text-align: center; /* Center on mobile */
  }
  
  .side-panels-container {
    width: 100%;
    max-width: 95%; /* Slightly wider on mobile */
    gap: 0.75rem; /* Consistent spacing */
    max-height: min(calc(45vh - 2rem), 300px);
    margin-top: 0;
    margin-left: auto;
    margin-right: auto;
  }
  
  .panel-trigger {
    padding: 0.75rem 1rem;
  }
  
  .panel-trigger h3 {
    font-size: var(--font-size-base);
    letter-spacing: var(--letter-spacing-normal);
  }
  
  .panel-content.active {
    padding: 1rem;
    max-height: 200px;
  }
  
  .feature-list li {
    font-size: var(--font-size-sm);
    margin-bottom: 0.75rem;
    padding-left: 1.25rem;
    line-height: var(--line-height-normal);
  }
  
  .close-panel {
    padding: 0.5rem 1rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    margin-top: 1rem;
    border-radius: 6px;
  }
  
  .hero-visual {
    display: none; /* Hide visual elements on small screens to save space */
  }
}

/* Medium screens (tablets) */
@media (min-width: 768px) {
  .hero-container {
    padding: 1.5rem 2rem;
    padding-bottom: 4rem;
    min-height: 85vh;
  }
  
  .hero-layout {
    grid-template-columns: 1fr;
    gap: 2rem; /* Consistent with desktop */
    text-align: center;
    max-height: calc(75vh - 6rem);
  }
  
  .hero-headline {
    margin-bottom: 1.5rem;
  }
  
  .logo-container {
    margin: 0 0 1.5rem 0;
  }
  
  .hero-logo {
    max-width: 150px;
  }
  
  .main-title {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
  }
  
  .subtitle {
    font-size: clamp(0.9rem, 2vw, 1.1rem);
  }
  
  .hero-tagline {
    margin-bottom: 1.5rem;
    font-size: 1rem;
  }
  
  .side-panels-container {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    max-height: calc(50vh - 2rem);
  }
  
  .panel-trigger h3 {
    font-size: 1.1rem;
  }
  
  .feature-list li {
    font-size: 0.95rem;
  }
  
  .key-metrics {
    gap: 1.5rem;
  }
  
  .metric-card {
    flex-basis: 220px; /* Slightly larger base for tablets */
  }
}

/* Hero Layout */
.hero-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1rem;
  box-sizing: border-box;
  justify-content: center;
}

.hero-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 100%;
}

/* Responsive adjustments - keeping hero content centered at all screen sizes */
@media (min-width: 1024px) {
  .hero-layout {
    grid-template-columns: 6fr 4fr;
    gap: 3rem;
    text-align: center;
  }
  
  .hero-content {
    align-items: center;
    text-align: center;
  }
  
  .hero-headline,
  .main-title,
  .subtitle,
  .hero-tagline {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
  
  .key-metrics {
    justify-content: center;
  }
  
  .side-panels-container {
    align-items: center;
  }
}

@media (max-width: 1024px) {
  .side-panels-container {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .side-panels-container {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .hero-container {
    padding: 2rem min(5vw, 2rem);
    padding-bottom: 4rem;
  }
  
  .hero-headline {
    margin-bottom: 2rem;
  }
  
  .hero-layout {
    gap: 2rem;
  }
}

@media (max-width: 480px) {
  .hero-container {
    padding: 1rem min(3vw, 1rem);
    padding-bottom: 4rem;
  }
  
  .hero-headline {
    margin-bottom: 1.25rem;
  }
  
  .hero-layout {
    gap: 1.25rem;
  }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.action-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  width: 100%;
  margin-top: 2rem;
}

/* Side panels responsive styles */
.side-panels-container {
  width: 100%;
  align-items: center;
}

.panel-content.active {
  max-height: 250px;
  overflow: hidden;
  transition: max-height 0.3s ease-in-out;
}

/* Hero headline section styles for different screen sizes */
@media (max-width: 1024px) {
  .hero-headline {
    margin-bottom: 1.5rem;
    padding: 0 1rem;
  }
  
  .main-title {
    font-size: clamp(2.5rem, 5vw, 4rem);
  }
  
  .subtitle {
    font-size: clamp(1.125rem, 1.8vw, 1.5rem);
    margin-bottom: 2rem;
    padding: 0 1rem;
  }
  
  .hero-layout {
    gap: 1.5rem;
  }
}

/* Extra large screens */
@media (min-width: 1440px) {
  .hero-headline .main-title {
    font-size: clamp(3.8rem, 5vw, 5rem); /* Even larger on very wide screens */
  }
  .subtitle {
    font-size: clamp(1.4rem, 2vw, 1.6rem);
  }
}

/* Chart Container and Related Elements */
.chart-container {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: 1200px;
  height: auto;
  z-index: 10;
  padding: 1rem;
}

/* Main slide funding chart container */
.funds-visual .chart-container {
  max-width: 500px;
  margin: 0 auto 30px;
  height: 350px;
}

@media (max-width: 768px) {
  .funds-visual .chart-container {
    height: 300px;
    padding: 0.5rem;
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .funds-visual .chart-container {
    height: 250px;
    padding: 0.25rem;
  }
}

@media (max-width: 768px) {
  .chart-container {
    width: 95%;
    padding: 0.8rem;
  }
  
  .chart-title {
    font-size: 2.2rem;
  }
  
  .chart-description {
    font-size: 1rem;
  }
  
  .charts-container {
    flex-direction: column;
    gap: 2.5rem;
  }
  
  .chart-section {
    min-width: 100%;
  }
  
  .market-3d-container {
    height: 350px;
  }
  
  .chart-legend {
    gap: 1rem;
  }
}

@media (max-width: 480px) {
  .chart-container {
    width: 98%;
    padding: 0.6rem;
  }
  
  .section-badge {
    font-size: 0.8rem;
    padding: 0.4rem 0.8rem;
    margin-bottom: 0.5rem;
  }
  
  .chart-title {
    font-size: 1.8rem;
    margin-bottom: 0.75rem;
  }
  
  .chart-description {
    font-size: 0.95rem;
    line-height: 1.5;
  }
  
  .market-3d-container {
    height: 280px;
  }
  
  .chart-visualization {
    height: 250px;
    padding: 1rem;
  }
  
  .chart-metrics {
    flex-direction: column;
    gap: 0.5rem;
  }
  
  .metric {
    padding: 0.5rem;
  }
  
  .metric-value {
    font-size: 1.2rem;
  }
  
  .chart-section-title {
    font-size: 1.1rem;
  }
  
  .button-group {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 0.5rem;
  }
  
  .primary-btn {
    width: 100%;
  }
  #chartbot-input {
    padding: 8px 12px;
    font-size: clamp(0.8rem, 1.8vw, 0.95rem);
    height: 36px;
  }
}

.chart-header {
  text-align: center;
  margin-bottom: 2rem;
}

.section-badge {
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 0.75rem;
  padding: 0.5rem 1rem;
  border-radius: 20px;
  background-color: rgba(14, 165, 233, 0.1);
  border: 1px solid rgba(14, 165, 233, 0.2);
}

.chart-title {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
  color: white;
}

.chart-description {
  font-size: 1.1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  max-width: 700px;
  margin: 0 auto 1.5rem;
}

/* 3D Market Visualization */
.market-3d-container {
  position: relative;
  width: 100%;
  height: 400px;
  margin-bottom: 2rem;
  border-radius: 14px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.market-3d-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
  z-index: 5;
}

.market-3d-canvas {
  width: 100%;
  height: 100%;
  display: block;
  cursor: grab;
}

.market-3d-canvas:active {
  cursor: grabbing;
}

.visualization-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.9rem;
  padding: 0.75rem;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(5px);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* 2D Charts Container */
.charts-container {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin-bottom: 2rem;
}

.chart-section {
  flex: 1;
  min-width: 300px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.chart-section-title {
  font-size: 1.3rem;
  font-weight: 600;
  color: #FFFFFF;
  margin-bottom: 0.25rem;
  text-align: center;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.chart-section-description {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
  text-align: center;
  margin-bottom: 1rem;
  font-weight: 400;
  letter-spacing: 0.02em;
}

.chart-visualization canvas {
  margin-top: 0.5rem;
  height: calc(100% - 70px) !important;
  width: 100% !important;
}

.chart-visualization {
  position: relative;
  width: 100%;
  height: 420px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 14px;
  padding: 1rem 1.5rem 2.5rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.chart-visualization:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

.chart-visualization::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
  z-index: 5;
}

.chart-visualization canvas {
  width: 100% !important;
  height: 100% !important;
  z-index: 2;
  position: relative;
}

/* Metrics display */
.chart-metrics {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.5rem;
}

.metric {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.75rem;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: transform 0.2s ease, background 0.2s ease;
}

.metric:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.06);
}

.metric-value {
  font-size: 1.4rem;
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 0.25rem;
}

.metric:nth-child(1) .metric-value {
  color: rgba(14, 165, 233, 0.9); /* Healthcare blue */
}

.metric:nth-child(2) .metric-value {
  color: rgba(16, 185, 129, 0.9); /* Wellness green */
}

.metric:nth-child(3) .metric-value {
  color: rgba(249, 115, 22, 0.9); /* Growth orange */
}

.metric-label {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.chart-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.chart-legend {
  display: flex;
  gap: 2rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.legend-color {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  display: inline-block;
}

.legend-label {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 768px) {
  .chart-title {
    font-size: 2rem;
  }
  
  .chart-description {
    font-size: 1rem;
  }
  
  .chart-legend {
    gap: 1rem;
  }
}

/* Hide the old HTML chart legend/controls on slide-1 specifically */
#slide-1 .chart-controls {
  display: none;
}

/* Video Slide Container and Elements */
.video-container {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: 1200px;
  height: auto;
  z-index: 10;
  padding: 1rem;
}

/* Contact Slide Container and Elements */
.contact-container {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: 1200px;
  height: auto;
  z-index: 10;
  padding: 1rem;
  margin: 0 auto;
}

.video-header {
  text-align: center;
  margin-bottom: 2rem;
}

.video-title {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
  color: white;
}

.video-description {
  font-size: 1.1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  max-width: 700px;
  margin: 0 auto 1.5rem;
}

.video-presentation {
  position: relative;
  width: 100%;
  margin-bottom: 2rem;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.video-presentation::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--primary-color), #00C4FF); /* New blue gradient */
  z-index: 2;
}

.video-presentation video {
  width: 100%;
  display: block;
  border-radius: 16px;
}

.video-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(10px);
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.95rem;
  color: white;
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.caption-icon {
  font-size: 0.8rem;
  color: var(--primary-color); /* Vibrant blue for caption icon */
}

.caption-text {
  font-weight: 500;
}

.video-presentation:hover .video-caption {
  transform: translateY(0);
}

.video-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (max-width: 768px) {
  .video-title {
    font-size: 2.2rem;
  }
  
  .video-description {
    font-size: 1rem;
  }
  
  .video-caption {
    padding: 0.75rem;
    font-size: 0.85rem;
  }
}

/* Modal Video Container */
.modal-video-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  margin-bottom: 1.5rem;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.modal-video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 8px;
}

/* Image Container */
.modal-image {
  width: 100%;
  border-radius: 8px;
  margin: 1rem 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Chart Container */
.modal-chart-container {
  width: 100%;
  height: 300px;
  margin: 1.5rem 0;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.1);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .modal-container {
    padding: 0.5rem; /* Ensure some padding around modals on tablets */
  }
  
  .modal {
    width: 95%;
    max-width: none;
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
  }
  
  .modal header h3 {
    font-size: 1.25rem !important; /* Reduced from 2xl */
    padding-right: 50px; /* Space for close button */
    line-height: 1.2;
  }
  
  .modal-content {
    padding: 1rem;
  }
  
  .modal-content p,
  .modal-content ul,
  .modal-content ol {
    font-size: 0.9rem; /* Slightly smaller text on mobile */
  }
  
  .modal-content li {
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
  }
  
  .modal-video-container {
    margin-bottom: 1rem;
  }
  
  .modal-chart-container {
    height: 250px;
  }
}

.mini-gallery {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.mini-gallery img {
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease;
}

.mini-gallery img:hover {
  transform: scale(1.05);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .chatbot-panel {
    width: calc(100% - 3rem);
    right: 1.5rem;
  }
}

/* Generic responsive iframe container */
.iframe-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  overflow: hidden;
}
.iframe-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Responsive YouTube video container */
.youtube-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  overflow: hidden;
  border-radius: 12px; /* Optional: if you want rounded corners on the video player */
}

.youtube-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* --- Primary Button Styles --- */
.primary-btn {
  padding: 0.85rem 1.8rem;
  min-width: 160px;
  border-radius: 12px;
  background: rgba(14, 165, 233, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(14, 165, 233, 0.3);
  color: white;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.01em;
  margin: 0.5rem;
  
  /* Interaction */
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1.0);
  position: relative;
  overflow: hidden;
  text-align: center;
  text-decoration: none; /* Ensure no underline if used as an anchor */
}

.primary-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg, 
    transparent, 
    rgba(14, 165, 233, 0.25), /* Slightly more visible sheen */
    transparent
  );
  transition: left 0.6s ease;
}

.primary-btn:hover {
  transform: translateY(-2px) scale(1.02); /* Subtle lift and scale */
  background: rgba(14, 165, 233, 0.15); /* Slightly darker on hover */
  box-shadow: 
    0 8px 20px -5px rgba(0, 0, 0, 0.25),
    0 0 12px rgba(0, 169, 224, 0.4), /* Main accent glow */
    0 0 20px rgba(0, 200, 255, 0.2); /* Brighter accent glow */
  border-color: rgba(14, 165, 233, 0.5);
}

.primary-btn:hover::before {
  left: 100%;
}

.primary-btn:active {
  transform: translateY(0px) scale(0.98);
  box-shadow: 0 4px 10px -3px rgba(0,0,0,0.2);
}

/* Slide 5 (ID: slide-4) Specific Text Styling */
#slide-4 .slide-title {
  font-size: clamp(2.2rem, 3.5vw, 3.8rem); /* Adjusted for better fit and readability */
  line-height: 1.3;
  margin-bottom: 0.6em; /* Spacing below title */
}

#slide-4 .center-content p {
  font-size: clamp(1rem, 1.8vw, 1.25rem); /* Ensure paragraph is well-proportioned */
  line-height: 1.6;
  margin-bottom: 2.5rem; /* More space before buttons */
  max-width: 65ch; /* Improve readability for the paragraph */
  margin-left: auto; /* Center the paragraph if max-width is applied */
  margin-right: auto; /* Center the paragraph if max-width is applied */
}

/* Contact Slide Specific Styling */
.contact-header {
  text-align: center;
  margin-bottom: 2rem;
}

.contact-title {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
  color: white;
  transition: text-shadow 0.3s ease;
}

.contact-title:hover {
  text-shadow: 0 0 15px rgba(14, 165, 233, 0.6);
}

.contact-description {
  font-size: 1.1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  max-width: 700px;
  margin: 0 auto 1.5rem;
  transition: color 0.3s ease;
}

.contact-description:hover {
  color: rgba(255, 255, 255, 1);
}

.contact-content {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 1.5rem;
}

.contact-info {
  flex: 1;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  padding: 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.contact-actions {
  flex: 1;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  padding: 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.contact-info h3,
.contact-actions h3 {
  font-size: 1.4rem;
  margin-bottom: 1rem;
  color: rgba(14, 165, 233, 0.9);
  font-weight: 600;
  transition: color 0.3s ease, transform 0.3s ease;
}

.contact-info h3:hover,
.contact-actions h3:hover {
  color: rgba(14, 165, 233, 1);
  transform: scale(1.03);
}

.contact-info ul {
  list-style-type: none;
  padding: 0;
}

.contact-info li {
  margin-bottom: 0.8rem;
  padding-left: 1.5rem;
  position: relative;
  line-height: 1.5;
  transition: transform 0.3s ease, color 0.3s ease;
  cursor: default;
}

.contact-info li:hover {
  transform: translateX(5px);
  color: rgba(255, 255, 255, 1);
}

.contact-info li:before {
  content: '•';
  color: #10b981;
  position: absolute;
  left: 0;
  font-weight: bold;
}

.contact-info li strong {
  color: var(--accent-color);
  font-weight: 600;
}

.button-group.vertical {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

@media (max-width: 768px) {
  .contact-content {
    flex-direction: column;
    gap: 1.5rem;
  }
  
  .contact-title {
    font-size: 2.2rem;
  }
  
  .contact-description {
    font-size: 1rem;
  }
  
  .contact-info h3,
  .contact-actions h3 {
    font-size: 1.2rem;
  }
}

@media (max-width: 480px) {
  .contact-header {
    margin-bottom: 1.25rem;
  }
  
  .contact-title {
    font-size: 1.8rem;
  }
  
  .contact-description {
    font-size: 0.95rem;
    margin-bottom: 1rem;
  }
  
  .contact-info h3,
  .contact-actions h3 {
    font-size: 1.1rem;
  }
}

/* Responsive design as a core feature, not an afterthought */
/* Tablet and smaller desktops */
@media (max-width: 1024px) {
  .slide {
    padding: 4vh 6vw;
  }
  
  .hero-container {
    padding: 1.5rem 2rem;
    padding-bottom: 4rem;
    min-height: 85vh;
  }
  
  .hero-headline {
    margin-bottom: 1.5rem;
  }
  
  .logo-container {
    margin: 0 0 1.5rem 0;
  }
  
  .hero-logo {
    max-width: 150px;
  }
  
  .main-title {
    font-size: clamp(2.2rem, 5vw, 4rem);
  }
  
  .subtitle {
    max-width: 700px;
  }
  
  .hero-button-group {
    max-width: 900px;
  }
}

/* Tablets and large phones */
@media (max-width: 1023px) {
  /* Allow flexible height for slides on mobile */
  .slide {
    height: auto !important;
    min-height: 100vh;
    max-height: none !important;
    padding: 80px 5vw 3.5vh 5vw; /* Top padding for slide number */
    overflow: visible !important; /* Allow content to expand */
    justify-content: flex-start; /* Start content from top */
    display: flex;
    flex-direction: column;
    scroll-snap-align: none !important; /* Disable snap alignment on mobile */
    scroll-snap-stop: normal !important;
  }
  
  /* Adjust deck scrolling for mobile */
  .deck {
    scroll-snap-type: none !important; /* Disable snap completely on mobile for free scrolling */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: auto !important;
  }
  
  /* Ensure all containers can expand */
  .slide > * {
    flex-shrink: 0; /* Prevent content from shrinking */
  }
  
  .hero-container,
  .opportunity-container,
  .problem-container,
  .team-container,
  .progress-container,
  .netflix-vh-container,
  .multimodal-container,
  .traction-container,
  .funds-container,
  .contact-container {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    flex: 0 0 auto; /* Don't grow or shrink, maintain natural height */
  }
  
  .hero-headline {
    padding: 0 1rem;
    justify-content: flex-start;
  }
  
  .logo-container {
    margin: 0 0 1.5rem 0;
  }
  
  .hero-logo {
    max-width: 120px;
  }
  
  .main-title {
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    margin-bottom: 1.2rem;
  }
  
  .subtitle {
    font-size: clamp(1.1rem, 1.8vw, 1.5rem);
    margin-bottom: 2rem;
    max-width: 600px;
  }
  
  .hero-button-group {
    gap: 1.2rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1rem;
  }
  
  .hero-btn-with-desc {
    width: calc(50% - 1.5rem);
    min-width: 200px;
  }
  
  .btn-desc {
    font-size: 0.85rem;
    max-width: 200px;
  }
}

/* Small phones */
@media (max-width: 480px) {
  .slide {
    height: auto !important;
    min-height: 100vh;
    max-height: none !important;
    padding: 70px 4vw 5rem 4vw; /* Top padding for slide number, bottom for navigation */
    overflow: visible !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }
  
  /* Ensure containers can grow with content */
  .slide > * {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    flex-shrink: 0;
  }
  
  .hero-headline {
    padding: 0 0.5rem;
  }
  
  .logo-container {
    margin: 0 0 1rem 0;
  }
  
  .hero-logo {
    max-width: 100px;
  }
  
  .main-title {
    font-size: clamp(1.8rem, 5vw, 2.8rem);
    margin: 0 0 0.8rem;
    line-height: 1.2;
  }
  
  .subtitle {
    font-size: clamp(0.95rem, 1.8vw, 1.3rem);
    margin: 0 auto 1.5rem;
    line-height: 1.5;
  }
  
  .hero-button-group {
    flex-direction: column;
    align-items: center;
    gap: 1.2rem;
    margin-top: 0.5rem;
    margin-bottom: 1rem;
  }
  
  .hero-btn-with-desc {
    width: 100%;
    max-width: 280px;
  }
  
  .btn-desc {
    max-width: 250px;
  }
  
  .modal-btn {
    padding: 0.9rem 1.5rem;
    font-size: 0.95rem;
  }
}

/* Very small phones */
@media (max-width: 360px) {
  .slide {
    height: auto !important;
    min-height: 100vh;
    max-height: none !important;
    padding: 60px 3vw 4rem 3vw;
    overflow: visible !important;
  }
  
  .logo-container {
    margin: 0 0 0.8rem 0;
  }
  
  .hero-logo {
    max-width: 80px;
  }
  
  .main-title {
    font-size: clamp(1.5rem, 5vw, 2.2rem);
    margin-bottom: 0.6rem;
  }
  
  .subtitle {
    font-size: 0.85rem;
    margin-bottom: 1.2rem;
    line-height: 1.4;
  }
  
  .hero-button-group {
    gap: 1rem;
  }
  
  .hero-btn-with-desc {
    max-width: 220px;
  }
  
  .btn-desc {
    font-size: 0.75rem;
    margin-top: 0.5rem;
  }
  
  .modal-btn {
    padding: 0.8rem 1.2rem;
  }
}

/* Enhanced button group with better spacing */
.hero-button-group {
  display: flex;
  gap: clamp(0.8rem, 2vw, 1.5rem);
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 0.5rem;
  width: 100%;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  animation: fadeIn 1.4s ease-out 0.4s both;
  padding: 0 1rem;
}

/* Enhanced button with description container */
.hero-btn-with-desc {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(220px, 30%, 280px);
  margin-bottom: 1.5rem;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative;
}

.hero-btn-with-desc:hover {
  transform: translateY(-8px);
}

.hero-btn-with-desc:after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--accent-color), #4A90E2);
  transition: width 0.3s ease;
  opacity: 0;
}

.hero-btn-with-desc:hover:after {
  width: 60%;
  opacity: 1;
}

/* Enhanced button description text */
.btn-desc {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 0.8rem;
  text-align: center;
  line-height: 1.5;
  max-width: 240px;
  transition: all 0.3s ease;
  padding: 0 0.5rem;
}

.hero-btn-with-desc:hover .btn-desc {
  color: rgba(255, 255, 255, 1);
  transform: scale(1.03);
}

/* Enhanced modal button with better visual appeal */
.modal-btn {
  appearance: none;
  background: rgba(0, 169, 224, 0.1);
  border: 1px solid rgba(0, 169, 224, 0.25);
  padding: 1rem 1.8rem;
  border-radius: 14px;
  color: #fff;
  font-weight: 600;
  font-size: clamp(0.95rem, 1.8vw, 1.1rem);
  letter-spacing: 0.02em;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
  cursor: pointer;
  box-shadow: 0 6px 20px -4px rgba(0, 0, 0, 0.25), 0 0 0 rgba(0, 169, 224, 0);
  position: relative;
  overflow: hidden;
  width: 100%;
  text-align: center;
}

/* Enhanced hover state for modal buttons */
.modal-btn:hover {
  background: rgba(0, 169, 224, 0.25);
  box-shadow: 0 8px 25px -5px rgba(0, 169, 224, 0.8), 0 0 15px rgba(0, 169, 224, 0.3);
  transform: translateY(-3px) scale(1.02);
  border-color: rgba(0, 169, 224, 0.5);
}

.modal-btn:before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  border-radius: 13px;
  background: linear-gradient(45deg, var(--primary-color), #4A90E2);
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.modal-btn:hover:before {
  opacity: 0.5;
}

.modal-btn:active {
  transform: translateY(-1px) scale(0.99);
  box-shadow: 0 2px 10px -4px rgba(0, 169, 224, 0.6);
}

/* Opportunity Slide Styles */
.opportunity-container {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: 1200px;
  height: auto;
  z-index: 10;
  padding: 1rem;
}

.opportunity-chart {
  height: 420px;
}

/* Opportunity Panel Styles for Slide 2 */
.opportunity-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 2rem;
  width: 100%;
}

.opportunity-title {
  font-size: 2.2rem;
  font-weight: 700;
  margin-top: 0.5rem;
  background: linear-gradient(90deg, var(--accent-color), #8b5cf6);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  line-height: 1.3;
}

.opportunity-description {
  margin-top: 1rem;
  font-size: clamp(1.1rem, 2.5vw, 1.3rem);
  line-height: 1.6;
  max-width: 800px;
  color: rgba(255, 255, 255, 0.95);
  font-weight: 400;
  letter-spacing: 0.01em;
}

.opportunity-panels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  width: 100%;
  margin-top: 1rem;
  min-height: 40vh;
}

.opportunity-panel {
  position: relative;
  background: rgba(15, 23, 42, 0.3);
  border-radius: 12px;
  border: 1px solid rgba(51, 65, 85, 0.3);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden;
}

.opportunity-panel:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3);
  background: rgba(15, 23, 42, 0.4);
}

.opportunity-panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--accent-color), #8b5cf6);
  transition: opacity 0.3s ease;
  opacity: 0.7;
}

.opportunity-panel:hover::before {
  opacity: 1;
}

#demand-drivers-panel::before {
  background: linear-gradient(90deg, var(--accent-color), #38bdf8);
}

#subscription-model-panel::before {
  background: linear-gradient(90deg, #10b981, #34d399);
}

#data-advantage-panel::before {
  background: linear-gradient(90deg, #6366f1, #8b5cf6);
}

.panel-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(40px, 4vw, 50px);
  height: clamp(40px, 4vw, 50px);
  border-radius: 50%;
  margin-bottom: 0.75rem;
  background: rgba(15, 23, 42, 0.5);
  border: 1px solid rgba(51, 65, 85, 0.5);
  font-style: normal;
  font-weight: normal;
  flex-shrink: 0;
  color: var(--accent-color);
  padding: 0.5rem;
}

@media (max-width: 768px) {
  .panel-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 0.5rem;
  }
}

.panel-icon-graph::before,
.panel-icon-subscription::before,
.panel-icon-data::before {
  display: none; /* Remove emoji pseudo-elements */
}

.panel-title {
  font-size: var(--font-size-lg);
  font-weight: 600;
  margin-bottom: 1rem;
}

.panel-list {
  list-style: none;
  margin-left: 0.5rem;
}

.panel-list li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.75rem;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 400;
}

.panel-list li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--accent-color);
}

#demand-drivers-panel .panel-list li::before {
  color: #38bdf8;
}

#subscription-model-panel .panel-list li::before {
  color: #34d399;
}

#data-advantage-panel .panel-list li::before {
  color: #8b5cf6;
}

@media (max-width: 1024px) {
  .opportunity-panels {
    grid-template-columns: repeat(2, 1fr);
  }
  
  #data-advantage-panel {
    grid-column: span 2;
  }
}

@media (max-width: 768px) {
  .opportunity-container {
    width: 95%;
    padding: 0.8rem;
  }
  
  .opportunity-panels {
    grid-template-columns: 1fr;
  }
  
  #data-advantage-panel {
    grid-column: span 1;
  }
  
  .opportunity-title {
    font-size: 1.8rem;
  }
  
  .opportunity-panel {
    padding: 1.25rem;
  }
  
  /* Hero mobile responsiveness */
  .hero-panels {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 2rem; /* Add bottom margin for spacing */
    width: 100%;
  }
  
  .hero-panel {
    min-height: auto; /* Remove minimum height constraint */
    padding: 1.25rem;
    height: auto;
  }
  
  /* Ensure all grid and flex containers expand properly */
  .flip-cards-container,
  .technology-buttons,
  .feature-buttons-container,
  .multimodal-buttons-container,
  .traction-buttons-container,
  .funds-buttons-container,
  .contact-buttons-container {
    height: auto !important;
    min-height: auto !important;
  }
  
  .hero-visual {
    max-height: 40vh;
    display: none; /* Hide complex visuals on mobile to save space */
  }
  
  .hero-visuals {
    display: none; /* Hide the visual container entirely on mobile */
  }
  
  .hero-header {
    margin-bottom: 1rem;
  }
  
  .main-title {
    font-size: clamp(2rem, 8vw, 3rem);
    margin-bottom: 1rem;
  }
  
  .subtitle {
    font-size: clamp(1rem, 4vw, 1.25rem);
    margin-bottom: 1.5rem;
  }
  
  .hero-button-group {
    flex-direction: column;
    width: 100%;
    max-width: 300px;
    gap: 0.75rem;
  }
  
  .modal-btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .opportunity-container {
    width: 98%;
    padding: 0.6rem;
  }
  
  .opportunity-title {
    font-size: 1.5rem;
  }
  
  .panel-title {
    font-size: 1.2rem;
  }
  
  /* Ensure modals fit on small screens */
  .modal {
    max-height: 90vh;
    overflow-y: auto;
    margin: 1rem;
  }
  
  /* Adjust hero panels for very small screens */
  .hero-panel {
    padding: 1rem;
    margin-bottom: 0.75rem;
  }
  
  .panel-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 0.75rem;
  }
  
  .panel-desc {
    font-size: 0.85rem;
    margin: 0.5rem 0 1rem;
  }
}

/* Problem Section */
.problem-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  gap: 2rem;
}

.problem-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

/* Problem header specific styling (not related to badge) */
.problem-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.problem-title {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 700;
  margin: 1rem 0;
  background: linear-gradient(90deg, var(--primary-color), #4F46E5);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Flip Cards Container */
.flip-cards-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 2rem;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* Flip Card */
.flip-card {
  perspective: 1000px;
  width: 100%;
  height: 200px;
  cursor: pointer;
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.8s;
}

.flip-card:hover .flip-card-inner {
  transform: rotateY(180deg);
}

.flip-card-front,
.flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  backface-visibility: hidden;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.flip-card-front {
  background: rgba(14, 165, 233, 0.15);
  border: 1px solid rgba(14, 165, 233, 0.3);
}

.flip-card-front h3 {
  font-size: 1.75rem;
  font-weight: 700;
  color: #ffffff;
}

.flip-card-back {
  transform: rotateY(180deg);
  background: rgba(30, 41, 59, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(99, 102, 241, 0.3);
  text-align: center;
  overflow-y: auto;
}

.flip-card-back p {
  font-size: clamp(1.1rem, 2.2vw, 1.25rem);
  line-height: 1.6;
  color: #ffffff;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.flip-card-back strong {
  font-size: 1.25rem;
  display: block;
  margin-bottom: 0.5rem;
  color: var(--primary-color);
}

/* Media Queries for Flip Cards */
@media (max-width: 768px) {
  .flip-cards-container {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, 1fr);
    gap: 1.5rem;
  }
  
  .flip-card {
    height: 200px; /* Increased height for better text fit */
  }
  
  .flip-card-back p {
    font-size: 0.8rem;
    line-height: 1.3;
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  
  .flip-card-back strong {
    font-size: 1rem;
    margin-bottom: 0.4rem;
    display: block;
  }
  
  .flip-card-front,
  .flip-card-back {
    padding: 0.8rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
  
  .flip-card-front h3 {
    font-size: 1.4rem;
    margin: 0;
  }
}

@media (max-width: 480px) {
  .flip-card {
    height: 180px; /* Slightly smaller for very small screens */
  }
  
  .flip-card-back p {
    font-size: 0.7rem;
    line-height: 1.25;
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  
  .flip-card-back strong {
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
    display: block;
  }
  
  .flip-card-front,
  .flip-card-back {
    padding: 0.6rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
  
  .flip-card-front h3 {
    font-size: 1.2rem;
    margin: 0;
  }
}

/* Hide mobile break on desktop */
.mobile-break {
  display: none;
}

/* Show mobile break only on small screens */
@media (max-width: 480px) {
  .mobile-break {
    display: inline;
  }
}

/* Hero Container Layout */
.hero-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 2rem 3rem;
  padding-bottom: 4rem;
  gap: 3rem;
  max-width: 1400px;
  margin: 0 auto;
  position: relative;
}

.hero-header {
  max-width: 900px;
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.hero-description {
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  max-width: 750px;
  margin: 1.5rem auto 0;
  line-height: 1.5;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
}

/* Team Container Styles */
.team-container {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: 1000px;
  height: 85vh;
  margin: 0 auto;
  padding: 20px 0;
  overflow: hidden;
}

@media (max-width: 768px) {
  .team-container {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  
  .team-content {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  
  .team-tab-content {
    max-height: none !important;
    overflow: visible !important;
    height: auto !important;
  }
  
  .team-panel {
    height: auto !important;
  }
}

.team-header {
  text-align: center;
  margin-bottom: 2rem;
}

.team-title {
  font-size: clamp(1.8rem, 3.5vw, 3.2rem);
  background: linear-gradient(90deg, #ffffff 0%, #22C0C4 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0.5rem 0;
  line-height: 1.2;
  font-weight: 700;
}

/* Standard badge styling matching Vision and Opportunity slides */
.section-badge.standard-badge {
  display: inline-block;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  background: linear-gradient(90deg, var(--accent-color), #10b981);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 1rem;
  padding: 0.75rem 1.5rem;
  border-radius: 20px;
  border: 1px solid rgba(14, 165, 233, 0.3);
  text-shadow: none;
}

/* Team Content Container */
.team-content {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow: hidden;
  background: rgba(30, 41, 59, 0.2);
  border-radius: 16px;
  border: 1px solid rgba(14, 165, 233, 0.3);
  padding: 20px;
  height: 92%;
}

/* Team Tabs */
.team-tabs {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.team-tab {
  background: rgba(30, 41, 59, 0.4);
  color: #ffffff;
  border: 1px solid rgba(14, 165, 233, 0.3);
  border-radius: 8px;
  padding: 0.75rem 1.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

.team-tab:hover {
  background: rgba(14, 165, 233, 0.3);
}

.team-tab.active {
  background: rgba(14, 165, 233, 0.4);
  border-color: rgba(14, 165, 233, 0.6);
  box-shadow: 0 0 10px rgba(14, 165, 233, 0.3);
}

/* Team Tab Content */
.team-tab-content {
  flex: 1;
  overflow-y: auto;
  padding: 0 10px;
}

.team-panel {
  display: none;
  height: 100%;
}

.team-panel.active {
  display: block;
}

/* Team Members Grid */
.team-members {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.advisors-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

/* Individual Team Member */
.team-member {
  background-color: rgba(17, 24, 39, 0.7);
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.team-member:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 15px rgba(0, 0, 0, 0.2);
}

.team-member .member-photo {
  width: 120px;
  height: 120px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid rgba(34, 192, 196, 0.3);
  transition: all 0.3s ease;
  position: relative;
  background: linear-gradient(135deg, rgba(34, 192, 196, 0.1), rgba(31, 116, 188, 0.1));
}

.team-member .member-photo::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, transparent, rgba(34, 192, 196, 0.2));
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 1;
}

.team-member:hover .member-photo {
  border-color: rgba(34, 192, 196, 0.6);
  transform: scale(1.05);
  box-shadow: 0 8px 25px rgba(34, 192, 196, 0.3);
}

.team-member:hover .member-photo::before {
  opacity: 1;
}

.team-member .member-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s ease;
}

.team-member:hover .member-photo img {
  transform: scale(1.1);
}

.team-member h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
  color: #ffffff;
}

.team-member p {
  font-size: clamp(1rem, 2vw, 1.1rem);
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 0.5rem;
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* Member Details Styling */
.member-details {
  margin-top: 0.75rem;
  text-align: left;
  padding-top: 0.5rem;
}

.member-details ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.member-details li {
  position: relative;
  padding-left: 1rem;
  margin-bottom: 0.4rem;
  line-height: 1.4;
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: rgba(255, 255, 255, 0.85);
  font-weight: 400;
}

.member-details li::before {
  content: '•';
  color: var(--accent-color);
  position: absolute;
  left: 0;
  font-size: 1rem;
}

/* Scrollbar Styling */
.team-tab-content::-webkit-scrollbar {
  width: 8px;
}

.team-tab-content::-webkit-scrollbar-track {
  background: rgba(30, 41, 59, 0.2);
  border-radius: 10px;
}

.team-tab-content::-webkit-scrollbar-thumb {
  background: rgba(14, 165, 233, 0.4);
  border-radius: 10px;
}

.team-tab-content::-webkit-scrollbar-thumb:hover {
  background: rgba(14, 165, 233, 0.6);
}

/* Media Queries for Team Section */
@media (max-width: 900px) {
  .team-members,
  .advisors-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 1023px) {
  .team-tabs {
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }
  
  .team-tab {
    width: 100%;
    max-width: 300px;
  }
  
  .team-members,
  .advisors-list {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  
  .team-member .member-photo {
    width: 100px;
    height: 100px;
  }
  
  .team-container {
    height: 75vh;
  }
}

@media (max-width: 480px) {
  .team-member .member-photo {
    width: 80px;
    height: 80px;
    border-width: 2px;
  }
  
  .team-member h3 {
    font-size: 1.1rem;
  }
  
  .team-member p {
    font-size: 0.8rem;
  }
  
  .member-details li {
    font-size: 0.7rem;
  }
}

/* Progress Container and Styles */
.progress-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 2rem;
  position: relative;
}

.progress-header {
  text-align: center;
  margin-bottom: 4rem;
}

.progress-title {
  font-size: clamp(1.8rem, 3.5vw, 3.2rem);
  background: linear-gradient(90deg, #ffffff 0%, #22C0C4 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0.5rem 0;
  line-height: 1.2;
  font-weight: 700;
}

.progress-subtitle {
  font-size: clamp(1.2rem, 2.8vw, 1.5rem);
  color: rgba(255, 255, 255, 0.9);
  margin-top: 1rem;
  line-height: 1.5;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* Technology Buttons Grid */
.technology-buttons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.tech-button-wrapper {
  display: flex;
  justify-content: center;
}

.tech-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 300px;
  background: rgba(31, 41, 55, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(31, 116, 188, 0.4);
  border-radius: 16px;
  padding: 2rem 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.tech-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
}

.tech-button:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
  border-color: rgba(34, 192, 196, 0.5);
}

.tech-button:active {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.tech-button-icon {
  font-size: 3rem;
  margin-bottom: 1.5rem;
  color: #22C0C4;
  transition: transform 0.3s ease;
  width: 3rem;
  height: 3rem;
}

.tech-button-icon svg {
  width: 100%;
  height: 100%;
}

.tech-button:hover .tech-button-icon {
  transform: scale(1.1);
}

.tech-button-text {
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
  font-weight: 600;
  color: #ffffff;
  text-align: center;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* Icon styles */
.icon-interface::before {
  content: '\e909';
  font-size: 2.8rem;
  font-family: 'icomoon';
}

.icon-engineering::before {
  content: '\e90a';
  font-size: 2.8rem;
  font-family: 'icomoon';
}

.icon-multimodal::before {
  content: '\e90b';
  font-size: 2.8rem;
  font-family: 'icomoon';
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .progress-header {
    margin-bottom: 2.5rem;
  }
  
  .technology-buttons {
    gap: 1.25rem;
  }
  
  .tech-button {
    padding: 1.5rem 1.25rem;
  }
  
  .tech-button-icon {
    font-size: 2.5rem;
    margin-bottom: 1rem;
  }
}

@media (max-width: 640px) {
  .progress-container {
    padding: 1.5rem 1rem;
  }
  
  .technology-buttons {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  
  .tech-button {
    max-width: 100%;
    padding: 1.5rem;
  }
  
  .tech-button-icon {
    margin-bottom: 0.75rem;
  }
}

/* Feature list styling for modals */
.feature-list {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.feature-list li {
  position: relative;
  padding: 0.75rem 0 0.75rem 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  line-height: 1.5;
  list-style-type: none;
}

.feature-list li:last-child {
  border-bottom: none;
}

.feature-list li::before {
  content: '•';
  position: absolute;
  left: 0.25rem;
  top: 0.75rem;
  color: #22C0C4;
  font-size: 1.2rem;
}

/* Legacy Timeline Styles */
.timeline {
  width: 80%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.timeline-item {
  position: relative;
  padding-left: 1.5rem;
}
.timeline-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 0.75rem;
  height: 0.75rem;
  background: var(--accent-color);
  border-radius: 50%;
}

/* Tabs */
.tabs {
  width: 80%;
  margin: 0 auto;
}

/* Netflix of Virtual Health Container Styles */
.netflix-vh-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
}

.netflix-vh-header {
  text-align: center;
  margin-bottom: 3rem;
  animation: fadeIn 0.8s ease-out;
}

.netflix-vh-title {
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  margin: 1rem 0;
  line-height: 1.2;
  background: linear-gradient(90deg, #ffffff, #00C4FF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: 0 2px 10px rgba(0, 196, 255, 0.2);
}

.netflix-vh-subtitle {
  font-size: clamp(1.2rem, 2.8vw, 1.5rem);
  color: rgba(255, 255, 255, 0.9);
  margin-top: 1rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* Feature Buttons */
.feature-buttons-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 3rem;
}

.feature-button-wrapper {
  display: flex;
  justify-content: center;
}

.feature-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 300px;
  background: rgba(31, 41, 55, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(31, 116, 188, 0.4);
  border-radius: 16px;
  padding: 2rem 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.feature-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
}

.feature-button:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
  border-color: rgba(34, 192, 196, 0.5);
}

.feature-button:active {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.feature-button-icon {
  font-size: 3rem;
  margin-bottom: 1.5rem;
  color: #22C0C4;
  transition: transform 0.3s ease;
  width: 3rem;
  height: 3rem;
}

.feature-button:hover .feature-button-icon {
  transform: scale(1.1);
}

.feature-button-text {
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
  font-weight: 600;
  color: #ffffff;
  text-align: center;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* UVX Tablet Visual */
.uvx-tablet-visual {
  width: 100%;
  max-width: 900px;
  height: auto;
  margin: 0 auto;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.uvx-tablet-image {
  width: 100%;
  max-width: 700px;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 
              0 0 20px rgba(34, 192, 196, 0.2);
  transition: all 0.3s ease;
  filter: brightness(1.02) contrast(1.05);
}

.uvx-tablet-image:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), 
              0 0 30px rgba(34, 192, 196, 0.3);
  filter: brightness(1.05) contrast(1.08);
}

/* Device Mockups */
.device-mockup {
  position: absolute;
  background: rgba(31, 41, 55, 0.7);
  border-radius: 12px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(59, 130, 246, 0.3);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  transition: all 0.5s ease;
  z-index: 2;
}

.device-mockup .screen {
  background: rgba(22, 28, 36, 0.8);
  border-radius: 8px;
  overflow: hidden;
  padding: 10px;
}

.device-mockup.laptop {
  width: 400px;
  height: 240px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
}

.device-mockup.laptop .screen {
  width: 100%;
  height: 100%;
}

.device-mockup.tablet {
  width: 200px;
  height: 150px;
  top: 60%;
  left: 20%;
  transform: translate(-50%, -50%) rotate(-5deg);
}

.device-mockup.phone {
  width: 100px;
  height: 180px;
  top: 40%;
  left: 80%;
  transform: translate(-50%, -50%) rotate(5deg);
}

/* Content Grid Animation */
.content-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  grid-auto-rows: 60px;
  gap: 10px;
  width: 100%;
  height: 100%;
}

.content-item {
  background: linear-gradient(135deg, rgba(34, 192, 196, 0.4), rgba(31, 116, 188, 0.4));
  border-radius: 6px;
  animation: pulse 3s infinite alternate;
  position: relative;
  overflow: hidden;
}

.content-item::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  animation: shimmer 2s infinite;
}

@keyframes pulse {
  0% {
    opacity: 0.7;
  }
  100% {
    opacity: 1;
  }
}

@keyframes shimmer {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}

/* Modal Bullet List */
.modal-bullet-list {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.modal-bullet-list li {
  position: relative;
  padding: 0.75rem 0 0.75rem 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
}

.modal-bullet-list li:last-child {
  border-bottom: none;
}

.modal-bullet-list li::before {
  content: '•';
  position: absolute;
  left: 0.25rem;
  top: 0.75rem;
  color: #22C0C4;
  font-size: 1.2rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .feature-buttons-container {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
  
  .uvx-tablet-visual {
    max-width: 100%;
    padding: 0 1rem;
  }
  
  .uvx-tablet-image {
    max-width: 500px;
  }
}

@media (max-width: 640px) {
  .netflix-vh-container {
    padding: 0 1rem;
  }
  
  .feature-buttons-container {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  
  .feature-button {
    max-width: 100%;
    padding: 1.5rem 1rem;
  }
  
  .uvx-tablet-visual {
    padding: 0 0.5rem;
  }
  
  .uvx-tablet-image {
    max-width: 400px;
    border-radius: 12px;
  }
}

/* Multi-Modal Data + AI Slide Styles */
.multimodal-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
}

.multimodal-header {
  text-align: center;
  margin-bottom: 2.5rem;
  animation: fadeIn 0.8s ease-out;
}

.multimodal-title {
  /* Adjusted clamp for better readability on tablets and laptops */
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 700;
  margin: 1rem 0;
  line-height: 1.2;
  background: linear-gradient(90deg, #ffffff, #22C0C4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: 0 2px 10px rgba(34, 192, 196, 0.2);
}

/* Multi-Modal Buttons */
.multimodal-buttons-container {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.5rem;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 3rem;
}

.multimodal-button-wrapper {
  display: flex;
  justify-content: center;
}

.multimodal-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 220px;
  background: rgba(31, 41, 55, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(31, 116, 188, 0.4);
  border-radius: 16px;
  padding: 1.5rem 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.multimodal-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
}

.multimodal-button:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
  border-color: rgba(34, 192, 196, 0.5);
}

.multimodal-button:active {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.multimodal-button-icon {
  font-size: 2.5rem;
  margin-bottom: 1.2rem;
  color: #22C0C4;
  transition: transform 0.3s ease;
  width: 2.5rem;
  height: 2.5rem;
}

.multimodal-button:hover .multimodal-button-icon {
  transform: scale(1.1);
}

.multimodal-button-text {
  font-size: clamp(1rem, 2vw, 1.2rem);
  font-weight: 600;
  color: #ffffff;
  text-align: center;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* Data Flow Animation */
.multimodal-visual {
  width: 100%;
  max-width: 900px;
  height: 300px;
  margin: 0 auto;
  position: relative;
}

.data-flow-animation {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  height: 100%;
}

/* Data Source Elements - Positioned in perfect circle around center */
.data-source {
  position: absolute;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(31, 41, 55, 0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
  z-index: 4;
  border: 2px solid rgba(34, 192, 196, 0.6);
  animation: pulse-gentle 3s infinite alternate;
}

/* Position sources in a perfect circle around the center - 140px radius - 5 elements at 72° intervals */
.data-source.eye-tracking {
  /* Top position (0°) */
  top: calc(50% - 140px);
  left: calc(50% - 40px);
}

.data-source.facial-expression {
  /* 72° position */
  top: calc(50% - 43px);
  left: calc(50% + 93px);
}

.data-source.motion-voice {
  /* 144° position */
  top: calc(50% + 73px);
  left: calc(50% + 42px);
}

.data-source.ai-processing {
  /* 216° position */
  top: calc(50% + 73px);
  left: calc(50% - 122px);
}

.data-source.gamified {
  /* 288° position */
  top: calc(50% - 43px);
  left: calc(50% - 173px);
}

.data-icon {
  font-size: 2rem;
  width: 2rem;
  height: 2rem;
  color: #ffffff;
}

/* Connecting Lines - Static lines from data sources to center */
.data-flow-animation::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2px;
  height: 140px;
  background: linear-gradient(to bottom, rgba(34, 192, 196, 0.6), rgba(34, 192, 196, 0.2));
  transform: translate(-50%, -50%) translateY(-70px);
  z-index: 1;
}

.data-flow-animation::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 140px;
  height: 2px;
  background: linear-gradient(to right, rgba(34, 192, 196, 0.6), rgba(34, 192, 196, 0.2));
  transform: translate(-50%, -50%) translateX(-70px);
  z-index: 1;
}

/* Additional connecting lines */
.central-processor::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2px;
  height: 140px;
  background: linear-gradient(to top, rgba(34, 192, 196, 0.6), rgba(34, 192, 196, 0.2));
  transform: translate(-50%, -50%) translateY(70px);
  z-index: 1;
}

.central-processor::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 140px;
  height: 2px;
  background: linear-gradient(to left, rgba(34, 192, 196, 0.6), rgba(34, 192, 196, 0.2));
  transform: translate(-50%, -50%) translateX(70px);
  z-index: 1;
}

/* Data Streams - Animated flowing data */
.data-stream {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60px;
  height: 4px;
  background: linear-gradient(90deg, transparent, rgba(34, 192, 196, 1), rgba(255, 255, 255, 0.8), transparent);
  border-radius: 2px;
  transform-origin: center center;
  pointer-events: none;
  z-index: 2;
}

/* Eye tracking - from top to center */
.data-source.eye-tracking .data-stream {
  transform: translate(-50%, -50%) rotate(90deg) translateX(40px);
  animation: data-flow-pulse 2s infinite linear;
}

/* Motion voice - from left to center */
.data-source.motion-voice .data-stream {
  transform: translate(-50%, -50%) rotate(0deg) translateX(40px);
  animation: data-flow-pulse 1.8s infinite linear;
}

/* AI processing - from bottom to center */
.data-source.ai-processing .data-stream {
  transform: translate(-50%, -50%) rotate(-90deg) translateX(40px);
  animation: data-flow-pulse 2.2s infinite linear;
}

/* Gamified - from right to center */
.data-source.gamified .data-stream {
  transform: translate(-50%, -50%) rotate(180deg) translateX(40px);
  animation: data-flow-pulse 1.9s infinite linear;
}

/* Central Processor */
.central-processor {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: rgba(31, 116, 188, 0.2);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  z-index: 3;
  border: 3px solid rgba(34, 192, 196, 0.4);
}

.processor-core {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, #22C0C4, #1F74BC);
  box-shadow: 0 0 30px rgba(34, 192, 196, 0.7);
  animation: pulse 2s infinite alternate;
  position: relative;
  z-index: 5;
}

.pulse-rings {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}

.pulse-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2px solid rgba(34, 192, 196, 0.6);
  opacity: 0;
}

.pulse-ring:nth-child(1) {
  width: 160px;
  height: 160px;
  animation: pulse-ring-connect 3s infinite;
}

.pulse-ring:nth-child(2) {
  width: 200px;
  height: 200px;
  animation: pulse-ring-connect 3s infinite 0.8s;
}

.pulse-ring:nth-child(3) {
  width: 280px;
  height: 280px;
  animation: pulse-ring-connect 3s infinite 1.6s;
}

@keyframes pulse-gentle {
  0% {
    transform: scale(1);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  }
  100% {
    transform: scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
  }
}

@keyframes data-flow-pulse {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(var(--rotation, 0deg)) translateX(40px) scaleX(0);
  }
  20% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(var(--rotation, 0deg)) translateX(40px) scaleX(0.5);
  }
  50% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(var(--rotation, 0deg)) translateX(40px) scaleX(1);
  }
  80% {
    opacity: 0.8;
    transform: translate(-50%, -50%) rotate(var(--rotation, 0deg)) translateX(40px) scaleX(0.8);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(var(--rotation, 0deg)) translateX(40px) scaleX(0);
  }
}

@keyframes data-flow {
  0% {
    opacity: 0;
    transform-origin: left center;
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 1;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  100% {
    opacity: 0;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}

@keyframes pulse-ring-connect {
  0% {
    opacity: 0.8;
    transform: translate(-50%, -50%) scale(0.5);
    border-color: rgba(34, 192, 196, 0.8);
  }
  50% {
    opacity: 0.4;
    transform: translate(-50%, -50%) scale(1);
    border-color: rgba(34, 192, 196, 0.4);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.2);
    border-color: rgba(34, 192, 196, 0.1);
  }
}

@keyframes pulse-ring {
  0% {
    opacity: 0.7;
    width: 60%;
    height: 60%;
  }
  100% {
    opacity: 0;
    width: 110%;
    height: 110%;
  }
}

/* Responsive Adjustments for Multi-Modal Slide */
@media (max-width: 1024px) {
  .multimodal-buttons-container {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
  
  .data-source {
    width: 70px;
    height: 70px;
  }
  
  /* Adjust circle radius for smaller screens - 120px radius */
  .data-source.eye-tracking {
    /* Top position (0°) */
    top: calc(50% - 120px);
    left: calc(50% - 35px);
  }
  
  .data-source.facial-expression {
    /* 72° position */
    top: calc(50% - 37px);
    left: calc(50% + 79px);
  }
  
  .data-source.motion-voice {
    /* 144° position */
    top: calc(50% + 62px);
    left: calc(50% + 36px);
  }
  
  .data-source.ai-processing {
    /* 216° position */
    top: calc(50% + 62px);
    left: calc(50% - 106px);
  }
  
  .data-source.gamified {
    /* 288° position */
    top: calc(50% - 37px);
    left: calc(50% - 149px);
  }
  
  .central-processor {
    width: 120px;
    height: 120px;
  }
  
  .processor-core {
    width: 70px;
    height: 70px;
  }
  
  .pulse-ring:nth-child(1) {
    width: 140px;
    height: 140px;
  }
  
  .pulse-ring:nth-child(2) {
    width: 180px;
    height: 180px;
  }
  
  .pulse-ring:nth-child(3) {
    width: 240px;
    height: 240px;
  }
}

@media (max-width: 768px) {
  .multimodal-container {
    padding: 0 1.5rem;
  }
  
  .multimodal-buttons-container {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
  }
  
  .multimodal-button {
    padding: 1.5rem 1rem;
  }
  
  .multimodal-button-icon {
    font-size: 2.2rem;
    margin-bottom: 1rem;
  }
  
  .multimodal-visual {
    height: 250px;
  }
  
  .data-source {
    width: 50px;
    height: 50px;
  }
  
  .data-icon {
    font-size: 1.7rem;
  }
}

@media (max-width: 640px) {
  .multimodal-container {
    padding: 0 1rem;
  }
  
  .multimodal-buttons-container {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  
  .multimodal-button {
    max-width: 100%;
    padding: 1.2rem 1rem;
  }
  
  .multimodal-visual {
    height: 200px;
  }
  
  .data-source.eye-tracking {
    top: 30%;
    left: 20%;
  }
  
  .data-source.motion-voice {
    top: 70%;
    left: 20%;
  }
  
  .data-source.ai-processing {
    top: 30%;
    left: 80%;
  }
  
  .data-source.gamified {
    top: 70%;
    left: 80%;
  }
  
  .data-source.eye-tracking .data-stream,
  .data-source.motion-voice .data-stream,
  .data-source.ai-processing .data-stream,
  .data-source.gamified .data-stream {
    width: 100px;
  }
}

/* Traction · Prototype to Live Platform Slide Styles */
.traction-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
}

.traction-header {
  text-align: center;
  margin-bottom: 3rem;
  animation: fadeIn 0.8s ease-out;
}

.traction-title {
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  margin: 1rem 0;
  line-height: 1.2;
  background: linear-gradient(90deg, #ffffff, #22C0C4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: 0 2px 10px rgba(34, 192, 196, 0.2);
}

/* Timeline Visual */
.timeline-visual {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 3rem;
  position: relative;
  padding: 2rem 0;
}

.timeline-track {
  position: relative;
  height: 5px;
  background: #0a1525;
  border-radius: 4px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 1;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
}

.timeline-track::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 42%; /* Position at the SOC-2 marker (reflecting May 2025 - current) */
  background: #111e30;
  border-radius: 4px;
  z-index: 2;
  box-shadow: 0 0 5px rgba(17, 30, 48, 0.8);
}

.timeline-marker {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 3;
}

.marker-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #1F2937;
  border: 2px solid rgba(34, 192, 196, 0.8);
  margin-bottom: 0.75rem;
  z-index: 10;
  box-shadow: 0 0 12px rgba(34, 192, 196, 0.4);
}

.timeline-marker.completed .marker-dot {
  background: #22C0C4;
  border-color: #22C0C4;
  box-shadow: 0 0 10px rgba(34, 192, 196, 0.5);
}

.timeline-marker.active .marker-dot {
  background: #ffffff;
  border-color: #22C0C4;
  box-shadow: 0 0 15px rgba(34, 192, 196, 0.7);
  animation: pulse 2s infinite alternate;
}

.marker-label {
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 0.5rem;
  text-align: center;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  position: relative;
  z-index: 10;
}

.marker-date {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
  text-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
  position: relative;
  z-index: 10;
}

.timeline-marker.completed .marker-label,
.timeline-marker.active .marker-label {
  color: #22C0C4;
}

/* Traction Buttons */
.traction-buttons-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

/* Traction Grid Layout */
.traction-content {
  width: 100%;
  margin: 40px 0;
}

.traction-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  max-width: 800px;
  margin: 0 auto;
}

.traction-item {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  transition: all 0.3s ease;
}

.traction-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

.traction-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 16px;
  color: #00d4ff;
}

.traction-icon svg {
  width: 100%;
  height: 100%;
}

.traction-item h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 8px;
  color: #ffffff;
}

.traction-item p {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
  line-height: 1.4;
}

@media (max-width: 768px) {
  .traction-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  
  .traction-item {
    padding: 20px;
  }
}

.traction-button-wrapper {
  display: flex;
  justify-content: center;
}

.traction-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 280px;
  background: rgba(31, 41, 55, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(31, 116, 188, 0.4);
  border-radius: 16px;
  padding: 1.8rem 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.traction-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
}

.traction-button:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
  border-color: rgba(34, 192, 196, 0.5);
}

.traction-button:active {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.traction-button-icon {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  color: #22C0C4;
  transition: transform 0.3s ease;
  width: 2.5rem;
  height: 2.5rem;
}

.traction-button:hover .traction-button-icon {
  transform: scale(1.1);
}

.traction-button-text {
  font-size: clamp(1.1rem, 1.8vw, 1.3rem);
  font-weight: 600;
  color: #ffffff;
  text-align: center;
}

/* Modal Styling for Traction Slide */
.milestone-list li {
  position: relative;
  padding-left: 2.5rem;
}

.milestone-list li.completed::before {
  content: '\2714';
  color: #22C0C4;
  position: absolute;
  left: 0.25rem;
  top: 0.75rem;
  font-size: 1.2rem;
}

/* Timeline Section Styling */
.timeline-section {
  margin: 2rem 0;
}

.timeline-section .section-title {
  font-size: 1.2rem;
  font-weight: 600;
  color: #22C0C4;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(34, 192, 196, 0.3);
}

/* Enhanced Modal Styling for Slide 1 */
.modal-content .feature-card {
  background: rgba(31, 41, 55, 0.3);
  border: 1px solid rgba(34, 192, 196, 0.2);
  border-radius: 12px;
  padding: 1.75rem 2.25rem;
  margin-bottom: 1rem;
  display: block;
  transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
  position: relative;
  overflow: hidden;
  opacity: 1;
  transform: translateX(0) scale(1);
  cursor: pointer;
  z-index: 1;
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.modal-content .feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(34, 192, 196, 0.1), transparent);
  transition: left 0.5s ease;
}

.modal-content .feature-card:hover::before {
  left: 100%;
}

.modal-content .feature-card:hover {
  border-color: rgba(34, 192, 196, 0.4);
  background: rgba(31, 41, 55, 0.6);
  transform: translateX(0) scale(1.02);
  box-shadow: 0 8px 25px rgba(34, 192, 196, 0.15);
  z-index: 10;
  padding: 1.75rem 2.25rem;
}

/* Feature text styling for better readability and alignment */
.modal-content .feature-text {
  font-size: clamp(1.1rem, 2.5vw, 1.25rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  transition: color 0.3s ease;
  font-weight: 400;
  letter-spacing: 0.01em;
  margin: 0;
  padding: 0;
  text-align: left;
  width: 100%;
  display: block;
}

/* Responsive adjustments for feature cards */
@media (max-width: 768px) {
  .modal-content .feature-card {
    padding: 1.5rem 1.75rem;
    min-height: 70px;
  }
  
  .modal-content .feature-card:hover {
    padding: 1.5rem 1.75rem;
    transform: translateX(0) scale(1.01);
  }
}

@media (max-width: 480px) {
  .modal-content .feature-card {
    padding: 1.25rem 1.5rem;
    min-height: 60px;
  }
  
  .modal-content .feature-card:hover {
    padding: 1.25rem 1.5rem;
  }
  
  .modal-content .feature-text {
    font-size: clamp(1rem, 2.2vw, 1.15rem);
  }
}

.modal-content .feature-card:hover .feature-text {
  color: #ffffff;
}

/* Simplified entrance for feature cards - no jittering */
@keyframes fadeInGently {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.modal.active .feature-card {
  opacity: 0;
  animation: fadeInGently 0.4s ease forwards;
}

.modal.active .feature-card:nth-child(1) {
  animation-delay: 0.05s;
}

.modal.active .feature-card:nth-child(2) {
  animation-delay: 0.1s;
}

.modal.active .feature-card:nth-child(3) {
  animation-delay: 0.15s;
}

/* Enhanced modal header styling */
.modal header h3 {
  position: relative;
  padding-bottom: 0.5rem;
}

.modal header h3::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
  transition: width 0.5s ease;
}

.modal.active header h3::after {
  width: 100%;
}

/* Responsive Adjustments */
@media (max-width: 1024px) {
  .timeline-visual {
    padding: 1.5rem 0;
  }
  
  .marker-dot {
    width: 14px;
    height: 14px;
  }
  
  .marker-label {
    font-size: 0.9rem;
  }
  
  .marker-date {
    font-size: 0.8rem;
  }
}

@media (max-width: 768px) {
  .traction-container {
    padding: 0 1.5rem;
  }
  
  .traction-buttons-container {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
  }
  
  .timeline-visual {
    margin-bottom: 2.5rem;
  }
  
  .timeline-track::before {
    width: 50%;
  }
  
  .marker-label {
    font-size: 0.85rem;
  }
  
  .marker-date {
    font-size: 0.75rem;
  }
}

@media (max-width: 640px) {
  .traction-container {
    padding: 0 1rem;
  }
  
  .traction-buttons-container {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  
  .traction-button {
    max-width: 100%;
    padding: 1.5rem 1.2rem;
  }
  
  .marker-label {
    font-size: 0.7rem;
    max-width: 60px;
    overflow-wrap: break-word;
  }
  
  .marker-date {
    font-size: 0.7rem;
  }
}
.tab-buttons {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}
.tab-button {
  background: rgba(30,41,59,0.4);
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  cursor: pointer;
  color: #fff;
}
.tab-button.active {
  background: var(--accent-color);
}
.tab-content {
  display: none;
  background: rgba(30,41,59,0.3);
  padding: 1rem;
  border-radius: 6px;
}
.tab-content.active {
  display: block;
}

/* Accordion */
.accordion {
  width: 80%;
  margin: 0 auto;
}
.accordion-header {
  background: rgba(30,41,59,0.4);
  padding: 0.75rem 1rem;
  border: none;
  width: 100%;
  text-align: left;
  border-radius: 6px;
  cursor: pointer;
  color: #fff;
  margin-bottom: 0.5rem;
}
.accordion-header.active {
  background: var(--accent-color);
}
.accordion-content {
  display: none;
  padding: 0.75rem 1rem;
  background: rgba(30,41,59,0.3);
  border-radius: 6px;
  margin-bottom: 0.5rem;
}
.accordion-content.active {
  display: block;
}

.placeholder {
  width: 80%;
  margin: 2rem auto;
  text-align: center;
  opacity: 0.7;
}
/* Funds · Use of Funds & Milestones Slide Styles */
.funds-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
}

.funds-header {
  text-align: center;
  margin-bottom: 2.5rem;
  animation: fadeIn 0.8s ease-out;
}

.funds-title {
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  margin: 1rem 0;
  line-height: 1.2;
  background: linear-gradient(90deg, #ffffff, #22C0C4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: 0 2px 10px rgba(34, 192, 196, 0.2);
}

.funds-description {
  font-size: clamp(1.2rem, 2.8vw, 1.4rem);
  color: rgba(255, 255, 255, 0.9);
  max-width: 800px;
  margin: 0 auto;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.5;
}

/* Funds Chart Visualization */
.funds-visual {
  width: 100%;
  max-width: 800px;
  margin: 0 auto 3rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.funds-chart {
  position: relative;
  width: 100%;
  height: 60px;
  border-radius: 30px;
  overflow: hidden;
  background: #0a1525;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  display: flex;
}

.chart-segment {
  height: 100%;
  width: calc(var(--percentage));
  position: relative;
  transition: all 0.5s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.chart-segment:hover {
  transform: translateY(-5px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  z-index: 10;
}

.chart-segment.platform {
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
}

.chart-segment.content {
  background: linear-gradient(90deg, #1F74BC, #4A56E2);
}

.chart-segment.marketing {
  background: linear-gradient(90deg, #4A56E2, #8A4FFF);
}

.chart-segment.legal {
  background: linear-gradient(90deg, #8A4FFF, #C44D99);
}

.chart-segment.hires {
  background: linear-gradient(90deg, #C44D99, #E34C67);
}

.segment-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: white;
  text-align: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  padding: 0.5rem;
  line-height: 1.2;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.chart-segment:hover .segment-label {
  opacity: 1;
}

/* Funds Buttons */
.funds-buttons-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

/* Two column layout for slide 9 */
.funds-buttons-container.funds-buttons-two-col {
  grid-template-columns: repeat(2, 1fr);
  max-width: 600px;
  gap: 2rem;
}

/* One column layout for slide 9 */
.funds-buttons-container.funds-buttons-one-col {
  grid-template-columns: 1fr;
  max-width: 400px;
  gap: 2rem;
}

.funds-button-wrapper {
  display: flex;
  justify-content: center;
}

.funds-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 280px;
  background: rgba(31, 41, 55, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(31, 116, 188, 0.4);
  border-radius: 16px;
  padding: 1.8rem 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.funds-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
}

.funds-button:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
  border-color: rgba(34, 192, 196, 0.5);
}

.funds-button:active {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.funds-button-icon {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  color: #22C0C4;
  transition: transform 0.3s ease;
  width: 2.5rem;
  height: 2.5rem;
}

.funds-button:hover .funds-button-icon {
  transform: scale(1.1);
}

.funds-button-text {
  font-size: clamp(1.1rem, 1.8vw, 1.3rem);
  font-weight: 600;
  color: #ffffff;
  text-align: center;
}

/* Subtle funding terms link */
.subtle-funding-info {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 2rem;
}

.funding-terms-link {
  margin: 0;
  text-align: center;
}

.discrete-link {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  border: none;
  background: none;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  transition: all 0.3s ease;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.discrete-link:hover {
  color: #22C0C4;
  background: rgba(34, 192, 196, 0.1);
  border-color: rgba(34, 192, 196, 0.3);
  text-decoration: none;
}

/* Mobile-friendly funds list */
.funds-mobile-list {
  display: none;
  width: 100%;
  max-width: 500px;
  margin: 0 auto 3rem;
  background: rgba(31, 41, 55, 0.3);
  border-radius: 16px;
  padding: 1.5rem;
  border: 1px solid rgba(31, 116, 188, 0.3);
}

.funds-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.funds-item:last-child {
  border-bottom: none;
}

.funds-item-label {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
}

.funds-item-value {
  font-size: 1.1rem;
  color: #22C0C4;
  font-weight: 600;
  text-align: right;
}

/* Responsive Adjustments */
@media (max-width: 1024px) {
  .funds-chart {
    height: 50px;
  }
  
  .segment-label {
    font-size: 0.75rem;
  }
}

@media (max-width: 768px) {
  .funds-container {
    padding: 0 1.5rem;
  }
  
  .funds-buttons-container {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
  }
  
  .funds-chart {
    height: 40px;
  }
  
  .segment-label {
    font-size: 0.7rem;
  }
}

@media (max-width: 640px) {
  .funds-container {
    padding: 0 1rem;
  }
  
  .funds-buttons-container {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  
  .funds-button {
    max-width: 100%;
    padding: 1.5rem 1.2rem;
  }
  
  /* Hide the chart and show the list on mobile */
  .funds-visual {
    display: none;
  }
  
  .funds-mobile-list {
    display: block;
  }
  
  .funds-item {
    padding: 0.75rem 0;
  }
  
  .funds-item-label {
    font-size: 0.9rem;
  }
  
  .funds-item-value {
    font-size: 1rem;
  }
  
  /* Mobile styling for subtle funding link */
  .subtle-funding-info {
    margin-top: 1.5rem;
  }
  
  .discrete-link {
    font-size: 0.85rem;
    padding: 0.4rem 0.8rem;
  }
}

/* Contact Slide Styles */
.contact-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
  height: 100%;
  justify-content: center;
}

.contact-header {
  text-align: center;
  margin-bottom: 3rem;
  animation: fadeIn 0.8s ease-out;
}

.contact-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  margin: 1rem 0;
  line-height: 1.2;
  color: #ffffff; /* Default text color for non-highlighted text */
  text-align: center;
  width: 100%;
}

.contact-title .highlight-text {
  background: linear-gradient(90deg, #ffffff, #22C0C4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: 0 2px 10px rgba(34, 192, 196, 0.2);
  display: inline; /* This helps with inline text flow */
}

.contact-description {
  font-size: clamp(1.3rem, 3vw, 1.6rem);
  color: rgba(255, 255, 255, 0.9);
  max-width: 800px;
  margin: 0 auto;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.5;
}

/* Contact Buttons */
.contact-buttons-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  width: 100%;
  max-width: 400px;
  margin: 0 auto 3rem;
}

.contact-button-wrapper {
  display: flex;
  justify-content: center;
}

.contact-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 300px;
  background: rgba(31, 41, 55, 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(31, 116, 188, 0.4);
  border-radius: 16px;
  padding: 2.5rem 2rem;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.contact-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #22C0C4, #1F74BC);
}

.contact-button:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
  border-color: rgba(34, 192, 196, 0.5);
}

.contact-button:active {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.contact-button-icon {
  font-size: 3rem;
  margin-bottom: 1.5rem;
  color: #22C0C4;
  transition: transform 0.3s ease;
  width: 3rem;
  height: 3rem;
}

.contact-button:hover .contact-button-icon {
  transform: scale(1.1);
}

.contact-button-text {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 600;
  color: #ffffff;
  text-align: center;
}

.contact-footer {
  text-align: center;
  margin-top: 1rem;
}

.thank-you {
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  animation: pulse 2s infinite alternate;
}

.modal-text {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.modal-link {
  color: #22C0C4;
  text-decoration: none;
  transition: color 0.2s ease, text-decoration 0.2s ease;
}

.modal-link:hover {
  color: #ffffff;
  text-decoration: underline;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
  .contact-container {
    padding: 0 1.5rem;
  }
  
  .contact-buttons-container {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  
  .contact-button {
    max-width: 100%;
    padding: 2rem 1.5rem;
  }
  
  .contact-title {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
  }
  
  .contact-description {
    font-size: clamp(1rem, 2vw, 1.2rem);
  }
}

.closing {
  text-align: center;
  margin-top: 30vh;
}

@media (max-width: 480px) {
  /* Hide navigation buttons on small mobile devices */
  .slide-nav-btns {
    display: none;
  }
  
  .slide {
    padding: 0.75rem; /* Slightly increased padding for more breathing room */
  }
  
  .hero-container {
    padding: 1rem;
    padding-bottom: 4rem;
    min-height: 85vh; /* Ensure hero content takes up most of the viewport and can be centered */
    width: 98%; /* Wider container on mobile */
  }
  
  .hero-headline {
    margin-bottom: 1.25rem;
  }
  
  .logo-container {
    margin: 0 0 1rem 0;
  }
  
  .hero-logo {
    max-width: 100px;
  }
  
  .main-title {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
  }
  
  .subtitle {
    font-size: clamp(0.9rem, 3.5vw, 1rem);
  }
  
  .hero-layout {
    gap: 1.25rem;
  }
  
  .hero-content {
    padding: 0;
  }
  
  .hero-tagline {
    font-size: var(--font-size-base);
    line-height: var(--line-height-normal);
    margin: 0 auto 1.25rem;
    padding: 0;
    max-width: 95%;
    text-align: center; /* Center on mobile */
  }
  
  .side-panels-container {
    width: 100%;
    max-width: 95%; /* Slightly wider on mobile */
    gap: 0.75rem; /* Consistent spacing */
    max-height: min(calc(45vh - 2rem), 300px);
    margin-top: 0;
    margin-left: auto;
    margin-right: auto;
  }
  
  .panel-trigger {
    padding: 0.75rem 1rem;
  }
  
  .panel-trigger h3 {
    font-size: var(--font-size-base);
    letter-spacing: var(--letter-spacing-normal);
  }
  
  .panel-content.active {
    padding: 1rem;
    max-height: 200px;
  }
  
  .feature-list li {
    font-size: var(--font-size-sm);
    margin-bottom: 0.75rem;
    padding-left: 1.25rem;
    line-height: var(--line-height-normal);
  }
  
  .close-panel {
    padding: 0.5rem 1rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    margin-top: 1rem;
    border-radius: 6px;
  }
  
  .hero-visual {
    display: none; /* Hide visual elements on small screens to save space */
  }
}

/* Comprehensive mobile fixes to ensure content doesn't clip */
@media (max-width: 768px) {
  /* Remove all height constraints and overflow hidden on mobile */
  .slide,
  .slide > *,
  .hero-container,
  .opportunity-container,
  .problem-container,
  .team-container,
  .progress-container,
  .netflix-vh-container,
  .multimodal-container,
  .traction-container,
  .funds-container,
  .contact-container,
  .hero-header,
  .hero-content,
  .hero-panels,
  .opportunity-panels,
  .flip-cards-container,
  .technology-buttons,
  .feature-buttons-container,
  .multimodal-buttons-container,
  .traction-buttons-container,
  .funds-buttons-container,
  .contact-buttons-container,
  .side-panels-container,
  .key-metrics,
  .action-buttons,
  .team-content,
  .team-tab-content {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
  }
  
  /* Ensure deck doesn't constrain content */
  .deck {
    -webkit-overflow-scrolling: touch;
    height: 100vh;
  }
  
  /* Ensure slide content can expand naturally */
  .slide {
    min-height: 100vh;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 80px; /* Space for slide number */
    padding-bottom: 80px; /* Space for bottom navigation if any */
  }
  
  /* Make sure all flex containers don't shrink their content */
  .slide * {
    flex-shrink: 0;
  }
}

/* Compact hero layout on short screens */
@media (max-height: 850px) {
  .hero-container {
    padding-bottom: 2rem;
  }
  .hero-panels {
    gap: 1rem;
  }
  .avatar-button-container {
    margin: 0.25rem 0;
  }
}

/* Very small screens need even more careful handling */
@media (max-width: 480px) {
  .slide {
    padding: 70px 1rem 70px 1rem;
  }
  
  /* Ensure all typography scales properly */
  .main-title,
  .opportunity-title,
  .progress-title,
  .netflix-vh-title,
  .multimodal-title,
  .traction-title,
  .funds-title,
  .contact-title {
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
  }
}

/* Additional responsive fixes for hero slide */
@media (max-width: 1200px) and (max-height: 900px) {
  .hero-container {
    gap: 0.75rem;
  }
  
  .hero-panels {
    margin-top: 0.5rem;
  }
  
  .hero-panel {
    padding: 1rem;
  }
  
  .panel-icon {
    width: 45px;
    height: 45px;
  }
}

/* Ensure content stays within viewport on all devices */
@media (max-aspect-ratio: 3/4) {
  /* Portrait orientation */
  .slide {
    padding: 3rem 1rem 4rem 1rem;
  }
  
  .hero-panels {
    grid-template-columns: 1fr;
  }
  
  .hero-visuals {
    display: none;
  }
}

/* Fix for Safari specific issues */
@supports (-webkit-touch-callout: none) {
  .slide {
    min-height: -webkit-fill-available;
  }
  
  .hero-container {
    min-height: calc(-webkit-fill-available - 10vh);
  }
}

/* Ensure avatar button doesn't break layout */
.avatar-button-container {
  max-width: 100%;
  overflow: hidden;
}

/* Final override to ensure nothing clips */
* {
  max-width: 100vw;
}

/* Mobile scroll-snap override - targeted approach */
@media (max-width: 768px) {
  .deck {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  
  .slide {
    scroll-snap-align: none !important;
  }
}

/* --- Mobile scrolling override (append) --- */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  html, body {
    height: auto !important;
    overflow: auto !important;
    position: relative !important;
  }

  .deck {
    height: 100vh !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: none !important;
    position: relative !important;
  }
}

/* ============================= */
/* Modal Image Enhancements */
/* ============================= */

.modal-content .modal-image {
  width: 320px;
  height: 320px;
  margin: 0;
  display: block;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  opacity: 0;
  animation: fadeInScale 0.6s ease-out forwards;
  background: rgba(255, 255, 255, 0.05);
  object-fit: cover;
  flex-shrink: 0;
}

/* Modal Hero Icons */
.modal-hero-icon {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 120px;
  height: 120px;
  margin: 20px auto;
  background: rgba(34, 192, 196, 0.1);
  border-radius: 50%;
  border: 2px solid rgba(34, 192, 196, 0.3);
  transition: all 0.3s ease;
  position: relative;
  /* Continuous pulsing animation */
  animation: heroPulse 3s ease-in-out infinite;
}

/* Modal Hero Images - Square Display */
.modal-hero-image {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 320px;
  height: 320px;
  margin: 0;
  background: rgba(34, 192, 196, 0.08);
  border-radius: 20px;
  border: 3px solid rgba(34, 192, 196, 0.4);
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(34, 192, 196, 0.15), 
              0 4px 12px rgba(0, 0, 0, 0.2);
  /* Continuous pulsing animation */
  animation: heroPulse 4s ease-in-out infinite;
  flex-shrink: 0;
}

.hero-modal-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  border-radius: 16px;
  padding: 6px; /* Reduced from 8px to show more of the photo */
  filter: brightness(1.02) contrast(1.05) saturate(1.1);
}

.modal-hero-icon::before {
  content: '';
  position: absolute;
  top: -10px;
  left: -10px;
  right: -10px;
  bottom: -10px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(34, 192, 196, 0.3) 0%, rgba(34, 192, 196, 0.1) 50%, transparent 100%);
  animation: heroGlow 3s ease-in-out infinite;
  z-index: -1;
}

.modal-hero-icon svg {
  width: 60px;
  height: 60px;
  color: #22C0C4;
  transition: all 0.3s ease;
  animation: heroIconFloat 3s ease-in-out infinite;
}

.modal-hero-icon:hover {
  background: rgba(34, 192, 196, 0.15);
  border-color: rgba(34, 192, 196, 0.4);
  transform: scale(1.05);
  box-shadow: 0 10px 30px rgba(34, 192, 196, 0.3);
  animation: none; /* Stop pulsing on hover */
}

.modal-hero-icon:hover::before {
  background: radial-gradient(circle, rgba(34, 192, 196, 0.35) 0%, rgba(34, 192, 196, 0.15) 50%, transparent 100%);
  animation: none; /* Stop glow animation on hover */
}

.modal-hero-icon:hover svg {
  color: #22C0C4;
  transform: scale(1.1);
  animation: none; /* Stop float animation on hover */
}

/* Modal Hero Image Hover Effects */
.modal-hero-image::before {
  content: '';
  position: absolute;
  top: -10px;
  left: -10px;
  right: -10px;
  bottom: -10px;
  border-radius: 26px;
  background: radial-gradient(circle, rgba(34, 192, 196, 0.3) 0%, rgba(34, 192, 196, 0.1) 50%, transparent 100%);
  animation: heroGlow 3s ease-in-out infinite;
  z-index: -1;
}

.modal-hero-image:hover {
  background: rgba(34, 192, 196, 0.12);
  border-color: rgba(34, 192, 196, 0.6);
  transform: scale(1.03) translateY(-3px);
  box-shadow: 0 20px 50px rgba(34, 192, 196, 0.25), 
              0 8px 20px rgba(0, 0, 0, 0.3),
              0 0 30px rgba(34, 192, 196, 0.4);
  animation: none; /* Stop pulsing on hover */
}

.modal-hero-image:hover::before {
  background: radial-gradient(circle, rgba(34, 192, 196, 0.25) 0%, rgba(34, 192, 196, 0.1) 50%, transparent 100%);
  animation: none; /* Stop glow animation on hover */
}

.modal-hero-image:hover .hero-modal-img {
  transform: scale(1.02);
  filter: brightness(1.08) contrast(1.1) saturate(1.15);
}

/* Keyframes for hero icon animations */
@keyframes heroPulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 20px rgba(34, 192, 196, 0.3);
  }
  50% {
    transform: scale(1.08);
    box-shadow: 0 0 40px rgba(34, 192, 196, 0.5);
  }
}

@keyframes heroGlow {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}

@keyframes heroIconFloat {
  0%, 100% {
    transform: translateY(0px) scale(1);
  }
  50% {
    transform: translateY(-3px) scale(1.05);
  }
}

@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.modal-content .image-caption {
  text-align: center;
  font-size: 0.9em;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 10px;
  font-style: italic;
}

/* Modal content with image layout */
.modal-content.with-image {
  display: flex;
  flex-direction: row;
  gap: 30px;
  align-items: flex-start;
}

.modal-content.with-image .modal-hero-image {
  flex-shrink: 0;
}

.modal-content.with-image .feature-cards-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.modal-content.side-by-side {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  align-items: start;
}

.modal-content.side-by-side .modal-image {
  margin: 0;
  width: 320px;
  height: 320px;
  object-fit: cover;
  flex-shrink: 0;
}

@media (max-width: 1024px) {
  .modal-hero-image,
  .modal-content .modal-image,
  .modal-content.side-by-side .modal-image {
    width: 280px;
    height: 280px; /* Maintain square ratio */
  }
}

@media (max-width: 768px) {
  .modal-content.side-by-side {
    grid-template-columns: 1fr;
  }
  
  .modal-content.with-image {
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }
  
  .modal-hero-image,
  .modal-content .modal-image,
  .modal-content.side-by-side .modal-image {
    width: 260px;
    height: 260px; /* Maintain square ratio */
    margin: 0 auto;
  }
}

@media (max-width: 480px) {
  .modal-hero-image,
  .modal-content .modal-image,
  .modal-content.side-by-side .modal-image {
    width: 240px;
    height: 240px; /* Maintain square ratio */
    margin: 0 auto;
  }
}

@media (max-width: 360px) {
  .modal-hero-image,
  .modal-content .modal-image,
  .modal-content.side-by-side .modal-image {
    width: 220px;
    height: 220px; /* Maintain square ratio */
    margin: 0 auto;
  }
}

/* ============================= */
/* Flip Card Background Images */
/* ============================= */

.flip-card-back {
  position: relative;
  overflow: hidden;
}

.flip-card-back::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.15;
  filter: blur(1px);
  z-index: 0;
  transition: opacity 0.3s ease;
}

.flip-card-back p {
  position: relative;
  z-index: 1;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Individual flip card backgrounds */
.flip-card:nth-child(1) .flip-card-back::before {
  background-image: url('assets/shannonleonard_sleek_laptop_and_phone_freedom_from_bulky_hard_88d8e4a2-99a5-4944-8395-e2c9d16bb83c_0.png');
}

.flip-card:nth-child(2) .flip-card-back::before {
  background-image: url('assets/shannonleonard_Glowing_browser_address_bar_fading_mobile-app__b0faa223-a183-4e55-9ebc-9e5da4424306_0.png');
}

.flip-card:nth-child(3) .flip-card-back::before {
  background-image: url('assets/shannonleonard_Floating_glass_data_cubes_separated_by_broken__38077bdf-a833-4ac0-94d6-41cec020a793_2.png');
}

.flip-card:nth-child(4) .flip-card-back::before {
  background-image: url('assets/shannonleonard_Single_micro-server_duplicating_into_a_cloud_o_afa42847-477a-4646-8523-f346f0314a1c_0.png');
}

/* Hover effect for flip cards */
.flip-card:hover .flip-card-back::before {
  opacity: 0.25;
}

/* Flip card icon styling */
.flip-card-icon-container {
  margin-bottom: 15px;
  opacity: 0.8;
}

.flip-card-icon {
  width: 48px;
  height: 48px;
  color: var(--accent-color);
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.flip-card-front {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.flip-card-front h3 {
  margin: 0;
}

/* ============================= */
/* Interactive Chart Styles */
/* ============================= */

.chart-container {
  width: 100%;
  max-width: 500px;
  margin: 20px auto;
  padding: 20px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  backdrop-filter: blur(10px);
}

.chart-title {
  text-align: center;
  font-size: 1.1em;
  margin-bottom: 15px;
  color: rgba(255, 255, 255, 0.9);
}

canvas.interactive-chart {
  max-height: 300px;
}

/* Chart legend styling */
.chart-legend {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 15px;
  flex-wrap: wrap;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9em;
}

.legend-color {
  width: 16px;
  height: 16px;
  border-radius: 3px;
}

/* ============================= */
/* Icon Library Integration */
/* ============================= */

.icon-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(60px, 1fr));
  gap: 15px;
  margin: 20px 0;
}

.icon-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  transition: all 0.3s ease;
}

.icon-item:hover {
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-2px);
}

.icon-item svg {
  width: 40px;
  height: 40px;
  color: var(--accent-color);
}

.icon-label {
  font-size: 0.8em;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
}

/* Hero Video Styling - Simplified for Cross-Browser Compatibility */
.hero-video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
  opacity: 0.95;
  transition: opacity 0.3s ease;
  /* Performance optimizations */
  will-change: opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  /* Prevent video from being selected */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Removed hover effect for cleaner interaction */

/* Loading state for hero video */
.hero-video:not([src]) {
  background: linear-gradient(45deg, rgba(34, 192, 196, 0.1), rgba(34, 192, 196, 0.2));
  background-size: 400% 400%;
  animation: videoLoadingGradient 2s ease-in-out infinite;
}

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

/* Center sphere - Larger size with simple interactive glow */
.center-sphere {
  position: relative;
  width: 720px;
  height: 320px;
  border-radius: 24px;
  overflow: hidden;
  /* Simple base glow */
  box-shadow: 0 0 40px rgba(34, 192, 196, 0.3),
              0 0 80px rgba(34, 192, 196, 0.2),
              inset 0 0 20px rgba(34, 192, 196, 0.1);
  transition: box-shadow 0.4s ease, transform 0.2s ease;
  cursor: pointer;
  margin: 0 auto;
  /* Performance optimizations */
  will-change: box-shadow;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

.center-sphere:hover {
  box-shadow: 0 0 60px rgba(34, 192, 196, 0.5),
              0 0 120px rgba(34, 192, 196, 0.4),
              0 0 180px rgba(34, 192, 196, 0.2),
              inset 0 0 30px rgba(34, 192, 196, 0.15);
}

.center-sphere:active {
  transform: scale(0.98) translateZ(0);
  transition: transform 0.1s ease;
}

/* Responsive adjustments for video - Larger proportions */
@media (max-width: 1200px) {
  .center-sphere {
    width: 640px;
    height: 280px;
  }
}

@media (max-width: 1024px) {
  .center-sphere {
    width: 560px;
    height: 240px;
  }
}

@media (max-width: 768px) {
  .center-sphere {
    width: 360px;
    height: 155px;
    display: block !important; /* Ensure video shows on mobile */
  }
  
  /* Ensure hero visuals container shows on tablets */
  .hero-visuals {
    display: block !important;
    max-height: none !important;
    margin: 1rem auto;
  }
  
  /* Optimize video performance on mobile */
  .hero-video {
    /* Simplified for mobile performance */
    transition: opacity 0.2s ease;
  }
  
  /* Adjust tooltip for mobile */
  .video-tooltip {
    max-width: 240px;
    font-size: 0.85rem;
    padding: 0.8rem 1.2rem;
  }
}

@media (max-width: 480px) {
  .center-sphere {
    width: 300px;
    height: 130px;
    display: block !important; /* Ensure video shows on mobile */
  }
  
  /* Ensure hero visuals container shows on mobile */
  .hero-visuals {
    display: block !important;
    max-height: none !important;
    margin: 1rem auto;
  }
  
  /* Adjust tooltip for small mobile */
  .video-tooltip {
    max-width: 200px;
    font-size: 0.8rem;
    padding: 0.7rem 1rem;
  }
}

/* Prefers reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .hero-video {
    animation: none;
    transition: none;
  }
  
  .center-sphere {
    transition: none;
  }
  
  .center-sphere:hover {
    transform: none;
  }
  
  .shockwave {
    animation: none !important;
  }
  
  .video-tooltip {
    animation: none !important;
    transition: opacity 0.3s ease;
  }
}

/* Shockwave Effect - Enhanced visibility */
.shockwave {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: radial-gradient(circle, 
    rgba(34, 192, 196, 0.8) 0%, 
    rgba(34, 192, 196, 0.6) 20%, 
    rgba(34, 192, 196, 0.4) 40%, 
    rgba(34, 192, 196, 0.2) 60%, 
    rgba(34, 192, 196, 0.1) 80%, 
    transparent 100%);
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1; /* Above video but below tooltip */
  opacity: 0;
  box-shadow: 
    0 0 50px rgba(34, 192, 196, 0.6),
    0 0 100px rgba(34, 192, 196, 0.4),
    0 0 150px rgba(34, 192, 196, 0.2);
}

.shockwave.active {
  animation: shockwaveExpand 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

@keyframes shockwaveExpand {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
    transform: translate(-50%, -50%) scale(0);
  }
  25% {
    opacity: 0.9;
    transform: translate(-50%, -50%) scale(0.3);
  }
  50% {
    opacity: 0.7;
    transform: translate(-50%, -50%) scale(0.6);
  }
  75% {
    opacity: 0.4;
    transform: translate(-50%, -50%) scale(0.8);
  }
  100% {
    width: 1400px;
    height: 1400px;
    opacity: 0;
    transform: translate(-50%, -50%) scale(1);
  }
}

/* Video Click Tooltip - Positioned to point to chatbot */
.video-tooltip {
  position: fixed;
  background: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 2px solid rgba(34, 192, 196, 0.6);
  border-radius: 16px;
  padding: 1rem 1.5rem;
  color: white;
  font-size: 0.95rem;
  font-weight: 500;
  max-width: 300px;
  z-index: 1200;
  opacity: 0;
  transform: scale(0.8) translateY(10px);
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
              0 0 20px rgba(34, 192, 196, 0.2),
              0 0 40px rgba(34, 192, 196, 0.3);
  pointer-events: none;
  line-height: 1.4;
  text-align: center;
}

.video-tooltip.show {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* Arrow pointing to chatbot - positioned dynamically */
.video-tooltip::before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 8px solid transparent;
  z-index: 1;
}

.video-tooltip::after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 6px solid transparent;
  z-index: 2;
}

/* Arrow pointing up (tooltip below chatbot) */
.video-tooltip.arrow-up::before {
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  border-bottom-color: rgba(34, 192, 196, 0.6);
}

.video-tooltip.arrow-up::after {
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  border-bottom-color: rgba(0, 0, 0, 0.9);
}

/* Arrow pointing down (tooltip above chatbot) */
.video-tooltip.arrow-down::before {
  bottom: -16px;
  left: 50%;
  transform: translateX(-50%);
  border-top-color: rgba(34, 192, 196, 0.6);
}

.video-tooltip.arrow-down::after {
  bottom: -12px;
  left: 50%;
  transform: translateX(-50%);
  border-top-color: rgba(0, 0, 0, 0.9);
}

/* Arrow pointing left (tooltip right of chatbot) */
.video-tooltip.arrow-left::before {
  left: -16px;
  top: 50%;
  transform: translateY(-50%);
  border-right-color: rgba(34, 192, 196, 0.6);
}

.video-tooltip.arrow-left::after {
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  border-right-color: rgba(0, 0, 0, 0.9);
}

/* Arrow pointing right (tooltip left of chatbot) */
.video-tooltip.arrow-right::before {
  right: -16px;
  top: 50%;
  transform: translateY(-50%);
  border-left-color: rgba(34, 192, 196, 0.6);
}

.video-tooltip.arrow-right::after {
  right: -12px;
  top: 50%;
  transform: translateY(-50%);
  border-left-color: rgba(0, 0, 0, 0.9);
}

/* UVX1 logo in tooltip */
.tooltip-logo {
  height: 1.2em;
  width: auto;
  vertical-align: middle;
  margin: 0 2px;
  opacity: 0.9;
  filter: brightness(1.1);
}

/* Tooltip animation entrance effect */
.video-tooltip.entering {
  animation: tooltipEntrance 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes tooltipEntrance {
  0% {
    opacity: 0;
    transform: scale(0.5) translateY(20px) rotate(-5deg);
  }
  60% {
    opacity: 0.8;
    transform: scale(1.05) translateY(-5px) rotate(1deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0) rotate(0deg);
  }
}


/* Enhanced Shockwave Effect for Unlock Animation */
.shockwave.enhanced {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: radial-gradient(circle, 
    rgba(16, 185, 129, 0.9) 0%, 
    rgba(16, 185, 129, 0.7) 20%, 
    rgba(16, 185, 129, 0.5) 40%, 
    rgba(16, 185, 129, 0.3) 60%, 
    rgba(16, 185, 129, 0.1) 80%, 
    transparent 100%);
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 10; /* Higher z-index to stay above background effect */
  opacity: 0;
  box-shadow: 
    0 0 60px rgba(16, 185, 129, 0.8),
    0 0 120px rgba(16, 185, 129, 0.6),
    0 0 180px rgba(16, 185, 129, 0.4);
}

.shockwave.enhanced.active {
  animation: enhancedShockwaveExpand 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

@keyframes enhancedShockwaveExpand {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
    transform: translate(-50%, -50%) scale(0);
    box-shadow: 
      0 0 60px rgba(16, 185, 129, 0.8),
      0 0 120px rgba(16, 185, 129, 0.6),
      0 0 180px rgba(16, 185, 129, 0.4);
  }
  25% {
    opacity: 0.9;
    transform: translate(-50%, -50%) scale(0.3);
    box-shadow: 
      0 0 80px rgba(16, 185, 129, 0.9),
      0 0 160px rgba(16, 185, 129, 0.7),
      0 0 240px rgba(16, 185, 129, 0.5);
  }
  50% {
    opacity: 0.7;
    transform: translate(-50%, -50%) scale(0.6);
    box-shadow: 
      0 0 100px rgba(16, 185, 129, 0.8),
      0 0 200px rgba(16, 185, 129, 0.6),
      0 0 300px rgba(16, 185, 129, 0.4);
  }
  75% {
    opacity: 0.4;
    transform: translate(-50%, -50%) scale(0.8);
    box-shadow: 
      0 0 120px rgba(16, 185, 129, 0.6),
      0 0 240px rgba(16, 185, 129, 0.4),
      0 0 360px rgba(16, 185, 129, 0.2);
  }
  100% {
    width: 1600px;
    height: 1600px;
    opacity: 0;
    transform: translate(-50%, -50%) scale(1);
    box-shadow: 
      0 0 140px rgba(16, 185, 129, 0.3),
      0 0 280px rgba(16, 185, 129, 0.2),
      0 0 420px rgba(16, 185, 129, 0.1);
  }
}

/* Subtle background color change animation for unlock */
.hero-container.unlock-flash {
  position: relative;
}

.hero-container.unlock-flash::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at center, 
    rgba(6, 78, 59, 0.15) 0%,    /* Dark green center - very subtle */
    rgba(4, 47, 46, 0.12) 30%,   /* Darker green-teal */
    rgba(2, 25, 59, 0.08) 60%,   /* Blend to original dark blue */
    transparent 100%);
  z-index: 1; /* Behind the shockwave but above background */
  opacity: 0;
  animation: unlockBackgroundFlash 1.2s ease-in-out forwards;
  pointer-events: none;
}

@keyframes unlockBackgroundFlash {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  15% {
    opacity: 0.3;
    transform: scale(0.9);
  }
  30% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.05);
  }
  70% {
    opacity: 0.5;
    transform: scale(1.02);
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}

/* Ensure center sphere content stays above the background effect */
.center-sphere {
  position: relative;
  z-index: 5;
}

.center-sphere .hero-video {
  position: relative;
  z-index: 6;
} 

