@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;500;600;700&display=swap');

/* =============================================================================
   OSMO SCALING SYSTEM INTEGRATION
   ============================================================================= */
:root {
  /* Osmo Color System */
  --color-light: #efeeec;
  --color-dark: #131313;
  --color-primary: #ff4c24;
  --color-neutral-100: #ffffff;
  --color-neutral-200: #efeeec;
  --color-neutral-300: #e3e1de;
  --color-neutral-400: #cbc8c5;
  --color-neutral-500: #818180;
  --color-neutral-600: #2c2c2c;
  --color-neutral-700: #1f1f1f;
  --color-neutral-800: #131313;
  --color-neutral-900: #000000;
  
  /* Enhanced Typography Colors for Space Theme */
  --text-primary: #ffffff;
  --text-secondary: #efeeec;
  --text-muted: #cbc8c5;
  --text-accent: #ff4c24;
  
  /* CTA-ONLY Backgrounds */
  --bg-glass: rgba(255, 255, 255, 0.08);
  --bg-glass-strong: rgba(255, 255, 255, 0.12);
  
  /* Optimized Glass Colors */
  --glass-border: rgba(255, 255, 255, 0.15);
  --glass-border-light: rgba(255, 255, 255, 0.2);
  --glass-highlight: rgba(255, 255, 255, 0.1);
  --glass-subtle: rgba(255, 255, 255, 0.05);
  --text-glass: rgba(255, 255, 255, 0.9);
  --text-muted-glass: rgba(255, 255, 255, 0.7);
  
  /* Osmo Scaling System */
  --size-unit: 16;
  --size-container-ideal: 1440;
  --size-container-min: 992px;
  --size-container-max: 1920px;
  --size-container: clamp(var(--size-container-min), 100vw, var(--size-container-max));
  --size-font: calc(var(--size-container) / (var(--size-container-ideal) / var(--size-unit)));
  
  /* Enhanced spacing */
  --gap: clamp(1rem, 2.5vw, 2.25rem);
  --container-padding: clamp(1rem, 2.5vw, 2.25rem);
}

/* Tablet Scaling */
@media screen and (max-width: 991px) {
  :root {
    --size-container-ideal: 834;
    --size-container-min: 768px;
    --size-container-max: 991px;
    --container-padding: 1.5em;
  }
}

/* Mobile Landscape Scaling */
@media screen and (max-width: 767px) {
  :root {
    --size-container-ideal: 390;
    --size-container-min: 480px;
    --size-container-max: 767px;
    --container-padding: 1em;
  }
}

/* Mobile Portrait Scaling */
@media screen and (max-width: 479px) {
  :root {
    --size-container-ideal: 440;
    --size-container-min: 0px;
    --size-container-max: 479px;
  }
}

/* =============================================================================
   GLOBAL RESET & BASE - ENHANCED
   Cache bust: Fixed logo distortion in iPhone Safari - v11
   ============================================================================= */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-family: 'Inter', sans-serif;
  font-size: var(--size-font);
  color: var(--text-primary);
  background: linear-gradient(135deg, #000011 0%, #000022 100%);
  line-height: 1.4;
  overflow-x: auto;
  overflow-y: auto;
  height: 100vh;
  scroll-behavior: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* iOS safe-area support */
.is-ios .hero-panel,
.is-ios .content-panel,
.is-ios .timeline-section {
  padding-top: calc(env(safe-area-inset-top, 0px) + 1rem);
}

@media (max-width: 767px) and (orientation: landscape) {
  .is-ios .hero-panel,
  .is-ios .content-panel,
  .is-ios .timeline-section {
    padding-top: calc(env(safe-area-inset-top, 0px) + 2rem) !important;
  }
}

body {
  margin: 0;
  padding: 0;
  overflow-x: auto;
  overflow-y: auto;
  height: 100vh;
  width: fit-content;
  min-width: 100vw;
  position: relative;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  background: transparent;
  font-weight: 500;
}

/* Hide scrollbars */
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
}

/* Screen reader only - hide from visual display but keep for accessibility */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* =============================================================================
   NAVIGATION - KEEPS GLASSMORPHISM
   ============================================================================= */
nav {
  position: fixed;
  top: 0;
  width: 100%;
  background: transparent !important;;
  padding: var(--gap) var(--container-padding);
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 100;
  height: calc(1.5em + (var(--gap) * 2));

}

.logo {
  font-family: 'Inter', sans-serif;
  font-size: 1em;
  color: var(--text-primary);
  text-transform: uppercase;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  letter-spacing: 2px;
  padding: 0.75em 1.5em;
  border-radius: 0.75em;
}

.logo-icon {
  height: 1.5em;
  width: auto;
  filter: none;
  /* iPhone Safari fixes */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* Preserve aspect ratio */
  object-fit: contain;
  object-position: center;
  /* Prevent distortion */
  max-width: 100%;
  max-height: 100%;
  /* Safari rendering fix */
  -webkit-transform-origin: center;
  transform-origin: center;
}

.logo-text {
  font-family: 'Inter', sans-serif;
  font-size: 1em;
  color: var(--text-primary);
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: 2px;
  pointer-events: none;
  user-select: none;
}

.logo-link {
  display: inline-block;
  text-decoration: none;
  transition: transform 0.2s ease, opacity 0.2s ease;
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  position: relative;
  z-index: 10;
  pointer-events: auto;
}

.logo-link:hover {
  transform: scale(1.05);
  opacity: 0.9;
}

.logo-link:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

.logo-link:active {
  transform: scale(0.95);
}

.scroll-indicator {
  font-size: 0.8em;
  color: var(--text-accent);
  font-weight: 700;
  font-family: 'Inter', sans-serif;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 0.75em 1.5em;
  border-radius: 0.75em;
}

/* =============================================================================
   ENHANCED TYPOGRAPHY - NO GLASSMORPHISM - SIMPLIFIED ANIMATIONS
   ============================================================================= */

/* Hero Title - Clean Stacked Layout */
.hero-panel h1,
.hero-panel .hero-title {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  margin: 0 0 1.5rem 0; /* INCREASED: Better spacing for visual balance */
  color: var(--text-primary);
  line-height: 1.1; /* IMPROVED: Better readability */
  letter-spacing: -0.02em; /* IMPROVED: Better letter spacing */
  text-transform: uppercase;
  font-size: clamp(2.5rem, 6vw, 5rem); /* REDUCED FOR BETTER FIT */
  
  /* CLEAN TEXT SHADOW - NO DARK BACKGROUNDS */
  text-shadow: 
    0 3px 12px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.8),
    0 0 50px rgba(0, 0, 0, 0.6);
  
  /* Clean positioning - NO BACKGROUND */
  position: relative;
  z-index: 5; /* INCREASED z-index */
  
  /* BLOCK DISPLAY FOR STACKING */
  display: block;
  width: fit-content;
  max-width: 90%; /* ADDED max-width to prevent overflow */
  
  /* Prevent layout issues */
  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
  white-space: normal;
  
  /* CLEAR INITIAL STATE */
  opacity: 1;
  transform: none;
}



/* Content Titles - Clean Bold Design */
.content-panel h2 {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  color: var(--text-primary);
  text-transform: uppercase;
  line-height: 1.2; /* IMPROVED: Better readability */
  letter-spacing: -0.02em; /* IMPROVED: Better letter spacing */
  margin: 0 0 2.5rem 0; /* INCREASED: Better spacing for visual balance */
  
  /* CLEAN TEXT SHADOW - NO BACKGROUND */
  text-shadow: 
    0 2px 8px rgba(0, 0, 0, 0.8),
    0 0 20px rgba(0, 0, 0, 0.6),
    0 0 40px rgba(0, 0, 0, 0.4);
  
  /* Clean positioning - NO BACKGROUND */
  position: relative;
  z-index: 3;
  width: fit-content;
  max-width: 100%;
}

h3 {
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--text-primary);
  font-weight: 800;
  text-shadow: 
    0 2px 6px rgba(0, 0, 0, 0.8),
    0 0 15px rgba(0, 0, 0, 0.6);
}

/* =============================================================================
   SUBTITLE SYSTEM
   ============================================================================= */
.subtitle {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1.1rem, 2.2vw, 1.6rem); /* SLIGHTLY SMALLER */
  color: var(--color-primary); /* OSMO ORANGE */
  margin: 0 0 1.2rem 0; /* REDUCED MARGIN FOR MAGAZINE LAYOUT */
  font-style: italic;
  font-weight: 700;
  line-height: 1.3; /* TIGHTER LINE HEIGHT */
  letter-spacing: 0.01em; /* TIGHTER LETTER SPACING */
  
  /* CLEAN TEXT SHADOW FOR ORANGE TEXT */
  text-shadow: 
    0 2px 6px rgba(0, 0, 0, 0.8),
    0 0 15px rgba(0, 0, 0, 0.6),
    0 0 30px rgba(0, 0, 0, 0.4);
  
  /* Clean positioning - NO BACKGROUND */
  position: relative;
  z-index: 2;
  padding: 0;
  width: fit-content;
  max-width: 100%;
  transition: all 0.4s cubic-bezier(0.65, 0.05, 0, 1);
}



/* =============================================================================
   PARAGRAPH SYSTEM
   ============================================================================= */
.hero-panel p:not(.subtitle),
.content-panel p:not(.subtitle) {
  font-size: clamp(1rem, 2vw, 1.4rem); /* SLIGHTLY SMALLER FOR MAGAZINE */
  color: var(--text-secondary);
  line-height: 1.5; /* TIGHTER LINE HEIGHT */
  margin: 0 0 1rem 0; /* REDUCED MARGIN FOR MAGAZINE LAYOUT */
  font-weight: 500; /* LIGHTER WEIGHT FOR BETTER READABILITY */
  letter-spacing: 0.005em; /* TIGHTER LETTER SPACING */
  
  /* CLEAN TEXT SHADOW */
  text-shadow: 
    0 1px 4px rgba(0, 0, 0, 0.8),
    0 0 12px rgba(0, 0, 0, 0.6);
  
  /* Clean positioning - NO BACKGROUND */
  position: relative;
  z-index: 2;
  padding: 0;
  max-width: 100%;
  transition: all 0.4s cubic-bezier(0.65, 0.05, 0, 1);
  cursor: default;
}



/* Strong emphasis within paragraphs */
.hero-panel p strong,
.content-panel p strong {
  font-weight: 900;
  color: var(--text-primary);
  text-shadow: 
    0 1px 4px rgba(0, 0, 0, 0.9),
    0 0 12px rgba(0, 0, 0, 0.7);
}

/* =============================================================================
   BUTTON SYSTEM - KEEPS GLASSMORPHISM
   ============================================================================= */
.cta-container {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.5vw, 2rem);
  animation: fadeInUp 0.8s cubic-bezier(0.65, 0.05, 0, 1) forwards;
  animation-delay: 0.8s;
  opacity: 0;
  transform: translateY(30px);
}

.case-study-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  
  /* KEEP CTA GLASSMORPHISM */
  background: linear-gradient(135deg, 
    var(--bg-glass-strong) 0%, 
    var(--bg-glass) 100%);
  backdrop-filter: blur(20px);
  border: 2px solid var(--glass-border-light);
  padding: 1.5rem 2rem; /* REDUCED VERTICAL PADDING FOR MAGAZINE LAYOUT */
  text-decoration: none;
  color: var(--text-primary);
  transition: all 0.4s cubic-bezier(0.65, 0.05, 0, 1);
  border-radius: 1rem;
  min-height: 70px; /* REDUCED MIN HEIGHT */
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  
  /* KEEP CTA SHADOWS */
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 0 20px rgba(255, 255, 255, 0.03);
}

.case-study-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, 
    transparent, 
    rgba(255, 76, 36, 0.15), 
    transparent);
  transition: left 0.6s ease;
}

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

.case-study-btn:hover {
  background: linear-gradient(135deg, 
    rgba(255, 76, 36, 0.15) 0%, 
    var(--bg-glass-strong) 100%);
  border-color: var(--color-primary);
  transform: translateY(-5px);
  
  box-shadow: 
    0 12px 40px rgba(0, 0, 0, 0.5),
    0 0 40px rgba(255, 76, 36, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.15),
    inset 0 0 30px rgba(255, 76, 36, 0.08);
}

.btn-text {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  z-index: 2;
  position: relative;
}

.btn-title {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: clamp(1rem, 1.8vw, 1.3rem); /* SLIGHTLY SMALLER FOR MAGAZINE */
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.3px; /* TIGHTER LETTER SPACING */
  
  /* Clean text shadow for buttons */
  text-shadow: 
    0 1px 3px rgba(0, 0, 0, 0.8),
    0 0 8px rgba(0, 0, 0, 0.6);
}

.btn-subtitle {
  font-family: 'Inter', sans-serif;
  font-weight: 500; /* LIGHTER WEIGHT FOR MAGAZINE */
  font-size: clamp(0.9rem, 1.6vw, 1rem); /* SLIGHTLY SMALLER */
  color: var(--text-muted);
  line-height: 1.3; /* TIGHTER LINE HEIGHT */
  
  /* Clean text shadow for buttons */
  text-shadow: 
    0 1px 3px rgba(0, 0, 0, 0.8),
    0 0 6px rgba(0, 0, 0, 0.6);
}

.btn-arrow {
  font-size: 1.6rem;
  color: var(--color-primary);
  transition: all 0.3s cubic-bezier(0.65, 0.05, 0, 1);
  text-shadow: 
    0 0 8px rgba(0, 0, 0, 1),
    0 0 16px rgba(255, 76, 36, 0.5);
  font-weight: 900;
}

.case-study-btn:hover .btn-arrow {
  transform: translateX(8px) scale(1.1);
  color: var(--text-primary);
  text-shadow: 
    0 0 12px rgba(0, 0, 0, 1),
    0 0 24px rgba(255, 76, 36, 0.8);
}

.reference-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  
  /* KEEP CTA GLASSMORPHISM */
  background: linear-gradient(135deg, 
    var(--bg-glass-strong) 0%, 
    var(--bg-glass) 100%);
  backdrop-filter: blur(20px);
  border: 2px solid var(--glass-border-light);
  
  color: var(--text-primary);
  padding: 1.5rem 2rem;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 1rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: all 0.4s cubic-bezier(0.65, 0.05, 0, 1);
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  
  /* Clean text shadow for buttons */
  text-shadow: 
    0 1px 3px rgba(0, 0, 0, 0.8),
    0 0 6px rgba(0, 0, 0, 0.6);
  
  /* KEEP CTA SHADOWS */
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 0 20px rgba(255, 255, 255, 0.03);
}

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

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

.reference-btn:hover {
  background: linear-gradient(135deg, 
    rgba(255, 76, 36, 0.15) 0%, 
    var(--bg-glass-strong) 100%);
  border-color: var(--color-primary);
  transform: translateY(-3px);
  color: var(--color-neutral-100);
  
  box-shadow: 
    0 12px 40px rgba(0, 0, 0, 0.5),
    0 0 40px rgba(255, 76, 36, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.15),
    inset 0 0 30px rgba(255, 76, 36, 0.08);
}

/* =============================================================================
   CONTENT PANELS - CLEAN LAYOUT
   ============================================================================= */
.hero-panel,
.content-panel {
  width: 100vw;
  min-width: 100vw;
  max-width: 100vw;
  height: 100vh;
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 50;
  flex-shrink: 0;
  touch-action: pan-x;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0;
  background: transparent;
  overflow: hidden;
  /* ADDED: Better visual separation and distribution */
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  transition: all 0.3s ease;
}

.panel-content {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 1600px;
  padding: clamp(2rem, 4vw, 3rem) clamp(2rem, 5vw, 5rem); /* INCREASED: Better padding for more breathing room */
  gap: clamp(2rem, 5vw, 7rem); /* INCREASED: Better spacing between text and CTA content */
  height: 100vh;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  /* ADDED: Better visual balance and distribution */
  backdrop-filter: blur(1px);
  -webkit-backdrop-filter: blur(1px);
}

.text-content {
  flex: 1;
  max-width: 65%; /* INCREASED: More space for text content */
  display: flex;
  flex-direction: column;
  gap: 2rem; /* INCREASED: Better spacing between text elements */
  padding-top: 3rem;
  z-index: 3;
  position: relative;
  /* ADDED: Better visual hierarchy */
  line-height: 1.6;
}

.cta-content {
  flex: 0 0 30%; /* REDUCED: More balanced with text content */
  max-width: 30%;
  display: flex;
  flex-direction: column;
  gap: 2rem; /* INCREASED: Better spacing between CTA elements */
  padding-top: 3rem;
  z-index: 3;
  position: relative;
  /* ADDED: Better visual alignment */
  justify-content: center;
  align-items: flex-start;
}

/* UX & Interaction Section - Add left margin to separate from timeline */
.content-panel:has(h2.text-materialize) {
  margin-left: 14rem !important; /* INCREASED: More margin to separate from timeline */
}

/* Alternative selector for browsers that don't support :has() */
.content-panel[data-section="ux-interaction"] {
  margin-left: 14rem !important; /* INCREASED: More margin to separate from timeline */
}

/* =============================================================================
   TIMELINE SYSTEM - FIXED CUTOFF ISSUES
   ============================================================================= */

.timeline-section {
  width: 100vw;
  min-width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.5em 2em;
  box-sizing: border-box;
  position: relative;
  z-index: 50;
  flex-shrink: 0;
  background: transparent;
  overflow: visible !important; /* CHANGED: Allow content to be visible */
  margin-right: 0 !important; /* FIXED: Remove margin causing cutoff */
}

.timeline-section h2 {
  font-family: var(--font-primary);
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 900;
  color: #ffffff;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 2em;
  letter-spacing: -0.02em;
  line-height: 1.1;
  
  text-shadow: 
    0 3px 12px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.8),
    0 0 50px rgba(0, 0, 0, 0.6);
  
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: none;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Default Timeline Track Setup - HORIZONTAL LAYOUT */
.timeline-track {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start; /* CHANGED: Better alignment */
  gap: 2em; /* INCREASED: Better spacing */
  padding: 2em 1em;
  position: relative;
  z-index: 5;
  width: 100%;
  max-width: none; /* REMOVED: Width constraint */
  min-height: 200px; /* INCREASED: More space for content */
  overflow: visible !important; /* CHANGED: Allow all content to be visible */
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
}

.timeline-track::-webkit-scrollbar {
  display: none;
}

/* REMOVE THE CONNECTING LINES ENTIRELY */
.timeline-track::before,
.timeline-track::after {
  display: none !important;
}

/* Timeline Station - FIXED DIMENSIONS & VISIBILITY */
.timeline-station {
  position: relative;
  
  background: linear-gradient(135deg, 
    var(--glass-subtle) 0%, 
    rgba(255, 255, 255, 0.02) 100%);
  backdrop-filter: blur(10px);
  border: 2px solid var(--glass-border);
  
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  transition: all 0.4s cubic-bezier(0.65, 0.05, 0, 1);
  border-radius: 1rem;
  text-align: center;
  flex-shrink: 0;
  z-index: 3;
  overflow: visible !important; /* CHANGED: Allow content to be visible */
  
  /* RESPONSIVE DIMENSIONS */
  width: clamp(220px, 22vw, 320px); /* INCREASED: Better width range */
  min-width: 220px; /* INCREASED: Minimum width */
  max-width: 320px; /* INCREASED: Maximum width */
  min-height: 200px; /* INCREASED: More space for content */
  height: auto;
  max-height: none;
  padding: 1.5em; /* INCREASED: More padding */
  
  box-shadow: 
    0 4px 20px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  
  /* FORCE VISIBILITY */
  opacity: 1 !important;
  visibility: visible !important;
  display: flex !important;
  transform: translateY(0) !important;
}

/* Timeline Station Content - BETTER SPACING */
.station-content {
  display: flex;
  flex-direction: column;
  gap: 1rem; /* INCREASED: Better spacing */
  text-align: center;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  padding: 1rem; /* INCREASED: More padding */
  min-height: 0;
  box-sizing: border-box;
  overflow: visible !important; /* CHANGED: Allow content to flow */
}

.station-number {
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0;
  text-shadow: 
    0 1px 4px rgba(0, 0, 0, 0.8),
    0 0 8px rgba(0, 0, 0, 0.6);
}

.station-title {
  font-family: var(--font-primary);
  font-size: 1.2rem;
  font-weight: 900;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin: 0;
  text-shadow: 
    0 2px 6px rgba(0, 0, 0, 0.9),
    0 0 12px rgba(0, 0, 0, 0.7);
}

/* Station Description - VISIBLE ON DESKTOP */
.station-description {
  font-family: var(--font-primary);
  font-size: 0.9rem;
  color: var(--text-muted);
  line-height: 1.4;
  margin: 0;
  text-shadow: 
    0 1px 3px rgba(0, 0, 0, 0.8),
    0 0 6px rgba(0, 0, 0, 0.6);
  /* CHANGED: Show full descriptions on desktop */
  max-height: none;
  overflow: visible;
  display: block;
  -webkit-line-clamp: none;
  -webkit-box-orient: initial;
}

.station-year {
  font-family: var(--font-mono);
  font-size: 1rem;
  color: var(--text-glass);
  font-weight: 600;
  letter-spacing: 0.5px;
  margin: 0;
  text-shadow: 
    0 1px 4px rgba(0, 0, 0, 0.8),
    0 0 8px rgba(0, 0, 0, 0.6);
}

/* Timeline Dots - Hidden */
.station-dot {
  display: none !important;
}



/* All station titles in primary color (red) */
.station-engineering .station-title,
.station-hospitality .station-title,
.station-creative .station-title,
.station-ux .station-title,
.station-teaching .station-title {
  color: var(--color-primary) !important;
}

/* SPECIFIC UX STATION OVERRIDE */
.station-ux {
  background: linear-gradient(135deg, 
    var(--glass-subtle) 0%, 
    rgba(255, 255, 255, 0.02) 100%) !important;
  backdrop-filter: blur(10px) !important;
  border: 2px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 1rem !important;
  position: relative !important;
  z-index: 3 !important;
  overflow: hidden !important;
  min-width: 260px !important;
  max-width: 320px !important;
}
.station-ux .station-title {
  color: #dd88ff;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: 0.85rem !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  text-align: center !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.station-teaching .station-dot {
  background: #66ff66;
  border: 3px solid #8b7c78;
}
.station-teaching .station-title {
  color: #88ff88 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  text-align: center !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* SPECIFIC EDUCATION STATION OVERRIDE */
.station-teaching {
  background: linear-gradient(135deg, 
    var(--glass-subtle) 0%, 
    rgba(255, 255, 255, 0.02) 100%) !important;
  backdrop-filter: blur(10px) !important;
  border: 2px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 1rem !important;
  position: relative !important;
  z-index: 3 !important;
  overflow: hidden !important;
}

/* Timeline Layout Override for Standard Desktop */
@media (min-width: 1200px) {
  .timeline-track {
    gap: 0.8em; /* Smaller gap to match compact design */
    padding: 1.5em 1em; /* Reduced padding */
  }
  
  .timeline-station {
    width: 300px;
    min-width: 300px;
    max-width: 300px;
    min-height: 240px;
    max-height: none;
    padding: 1.5em;
  }
  
  .station-title {
    font-size: var(--text-sm); /* Slightly larger on big screens */
  }
  
  .station-description {
    font-size: 1rem; /* Larger descriptions on big screens */
    overflow: visible;
    display: block;
  }
}

/* =============================================================================
   DESKTOP TIMELINE LAYOUT - IMPROVED VISIBILITY
   ============================================================================= */

@media (min-width: 1025px) {
  .timeline-section {
    overflow: visible !important; /* CHANGED: Allow content to be visible */
    margin-right: 0 !important; /* FIXED: Remove problematic margin */
    padding: 3em 2em; /* INCREASED: More padding */
  }
  
  .timeline-section h2 {
    margin-bottom: 3rem; /* REDUCED: Less spacing to fit content */
    position: relative;
    z-index: 10;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  .timeline-track {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start; /* CHANGED: Better alignment */
    gap: 2rem; /* INCREASED: More space between stations */
    padding: 2rem 1rem; /* INCREASED: More padding */
    width: 100%;
    max-width: none;
    overflow: visible !important; /* CHANGED: Allow horizontal content */
    scroll-snap-type: x mandatory;
    position: relative;
    z-index: 5;
  }
  
  .timeline-station {
    width: 280px; /* FIXED: Consistent width */
    min-width: 280px;
    max-width: 280px;
    min-height: 220px; /* INCREASED: More height */
    padding: 2em;
    scroll-snap-align: center;
    overflow: visible !important; /* ENSURE: Content is visible */
  }
  
  .station-title {
    font-size: 1.1rem;
    white-space: normal; /* ALLOW: Text wrapping */
    overflow: visible !important;
    text-overflow: initial !important;
  }
  
  .station-description {
    font-size: 0.9rem;
    display: block !important; /* SHOW: Descriptions on desktop */
    overflow: visible !important;
    -webkit-line-clamp: none;
    max-height: none;
  }
}

/* Tablet Landscape - IMPROVED LAYOUT */
@media (min-width: 769px) and (max-width: 1024px) {
  /* Fix navbar height and content spacing */
  nav {
    height: 4rem !important;
    min-height: 4rem !important;
  }
  
  /* Ensure content doesn't overlap navbar */
  .hero-panel,
  .content-panel,
  .timeline-section,
  #footer-ctas,
  #signature-panel {
    padding-top: 5rem !important;
  }
  
  /* Fix panel content spacing for laptops */
  .hero-panel .panel-content,
  .content-panel .panel-content {
    padding-top: 6rem !important;
    height: calc(100vh - 5rem) !important;
    min-height: calc(100vh - 5rem) !important;
  }
  
  /* Reduce hero text size for tablets */
  .hero-panel h1,
  .hero-panel .hero-title {
    font-size: clamp(1.8rem, 4vw, 3rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 0.8rem !important;
  }
  
  .hero-panel .subtitle {
    font-size: clamp(0.9rem, 1.8vw, 1.2rem) !important;
    margin-bottom: 1rem !important;
  }
  
  .hero-panel p:not(.subtitle) {
    font-size: clamp(0.8rem, 1.6vw, 1rem) !important;
    line-height: 1.3 !important;
    margin-bottom: 0.8rem !important;
  }
  
  .timeline-section {
    overflow: visible !important; /* CHANGED: Allow content visibility */
    margin-right: 0 !important; /* FIXED: Remove margin */
    padding: 2.5em 1.5em;
  }
  
  .timeline-section h2 {
    margin-bottom: 2.5rem;
    font-size: clamp(2rem, 4vw, 3rem);
  }
  
  .timeline-track {
    display: flex;
    flex-direction: row;
    gap: 1.8rem; /* INCREASED: Better spacing */
    padding: 2rem 1rem;
    overflow: visible !important; /* CHANGED: Allow horizontal scroll if needed */
    scroll-snap-type: x mandatory;
    align-items: flex-start;
  }
  
  .timeline-station {
    width: 240px; /* INCREASED: Better width */
    min-width: 240px;
    max-width: 240px;
    min-height: 200px; /* INCREASED: More height */
    padding: 1.5em;
    scroll-snap-align: center;
  }
  
  .station-description {
    display: block !important; /* SHOW: Descriptions on tablet */
    overflow: visible !important;
    -webkit-line-clamp: 3; /* LIMIT: To 3 lines on tablet */
  }
}

/* =============================================================================
   MOBILE TIMELINE LAYOUT - FIXED CUTOFF ISSUES
   ============================================================================= */
@media (max-width: 768px) {
  .timeline-section {
    height: 100vh !important;
    max-height: 100vh !important;
    padding: 1rem 0.8rem !important;
    padding-top: 4rem !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important; /* CHANGED: Prevent vertical overflow */
    margin-right: 0 !important;
    width: 100vw !important;
    position: relative !important;
    /* ADDED: Ensure horizontal scrolling works properly */
    overflow-x: hidden !important;
    overflow-y: hidden !important;
  }
  
  .timeline-section h2 {
    position: relative !important; /* CHANGED: From absolute for better flow */
    top: 0 !important;
    left: auto !important;
    transform: none !important;
    z-index: 100 !important;
    margin: 0 0 1.5rem 0 !important; /* ADDED: Bottom margin */
    font-size: clamp(1.8rem, 6vw, 2.5rem) !important; /* INCREASED: Larger size */
    text-align: center !important;
    line-height: 1.1 !important;
    width: 100% !important;
  }
  
  .timeline-track {
    flex: 1 !important;
    display: flex !important;
    flex-direction: row !important; /* HORIZONTAL: Cards side by side on mobile */
    align-items: flex-start !important;
    justify-content: flex-start !important;
    overflow-x: auto !important; /* HORIZONTAL SCROLL: Allow horizontal scrolling */
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-behavior: smooth !important;
    gap: 1.5rem !important; /* REDUCED: Smaller gap to fit more items */
    padding: 1rem 0.8rem !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: calc(100vh - 6rem) !important;
    scroll-snap-type: x mandatory !important;
    position: relative !important;
    z-index: 5 !important;
    /* ADDED: Ensure proper scrolling behavior */
    scroll-padding: 1rem !important;
    scroll-margin: 1rem !important;
    /* ADDED: Ensure all items are visible */
    min-width: calc(5 * 280px + 4 * 1.5rem + 2rem) !important; /* 5 items + gaps + padding */
  }
  
  .timeline-station {
    flex-shrink: 0 !important;
    width: 280px !important; /* REDUCED: Smaller width to fit more items */
    max-width: 280px !important;
    min-width: 280px !important;
    height: auto !important;
    min-height: 200px !important; /* REDUCED: More compact for better fit */
    max-height: calc(100vh - 8rem) !important;
    padding: 1.2rem !important; /* REDUCED: Less padding for more content */
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: center !important;
    border-radius: 1rem !important;
    backdrop-filter: blur(15px) !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0.1) !important;
    transition: all 0.2s ease !important;
    overflow: visible !important;
    scroll-snap-align: start !important;
    position: relative !important;
    z-index: 10 !important;
    /* ADDED: Better touch interaction */
    cursor: pointer !important;
    user-select: none !important;
    -webkit-user-select: none !important;
  }
  
  .station-content {
    gap: 1.2rem !important; /* INCREASED: Better spacing between elements */
    padding: 1rem !important; /* INCREASED: More padding */
    width: 100% !important;
    overflow: visible !important; /* ENSURE: Content flows properly */
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }
  
  .station-description {
    display: block !important; /* CHANGED: Show descriptions on mobile */
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    overflow: visible !important;
    max-height: none !important; /* REMOVED: Height restriction */
    -webkit-line-clamp: 2 !important; /* LIMIT: To 2 lines on mobile */
    -webkit-box-orient: vertical !important;
    margin-bottom: 0.5rem !important;
  }
}

/* Ultra-small mobile devices - ENHANCED DISTRIBUTION */
@media (max-width: 479px) {
  .timeline-section {
    padding: 1rem 0.8rem !important; /* INCREASED: Better padding for ultra-small screens */
    padding-top: 4rem !important;
  }
  
  .timeline-section h2 {
    font-size: clamp(1.8rem, 6vw, 2.2rem) !important; /* INCREASED: Better sizing */
    margin-bottom: 1.5rem !important; /* INCREASED: Better spacing */
  }
  
  /* ADDED: Better panel content for ultra-small screens */
  .panel-content {
    padding: 3rem 1rem 2rem !important; /* FURTHER REDUCED: Moved content up significantly (4.5rem to 3rem) */
    gap: clamp(1.5rem, 4vw, 2.5rem) !important; /* INCREASED: Better spacing */
  }
  
  .timeline-track {
    gap: 1rem !important; /* REDUCED: Smaller gap for more items */
    padding: 0.8rem 0.5rem !important;
    max-height: calc(100vh - 7rem) !important; /* CALCULATED: Better height */
    /* ADDED: Ensure all items fit */
    min-width: calc(5 * 240px + 4 * 1rem + 1rem) !important;
  }
  
  .timeline-station {
    width: 240px !important; /* FURTHER REDUCED: Even smaller for tiny screens */
    max-width: 240px !important;
    min-width: 240px !important;
    min-height: 160px !important; /* REDUCED: More compact */
    padding: 0.8rem !important; /* REDUCED: Less padding */
    margin: 0 !important;
  }
  
  .station-description {
    font-size: 0.75rem !important; /* REDUCED: Smaller text */
    -webkit-line-clamp: 2 !important; /* SHOW: 2 lines even on small screens */
    display: -webkit-box !important;
  }
}

/* Landscape mobile orientation - IMPROVED LAYOUT */
@media (max-width: 767px) and (orientation: landscape) {
  :root { --nav-offset-landscape: 3.6rem; }
  
  .timeline-section {
    padding: calc(0.5rem + var(--nav-offset-landscape)) 1rem 1rem !important;
    height: 100vh !important;
    margin-top: 0 !important;
  }
  
  .timeline-section h2 {
    font-size: clamp(1.5rem, 4vw, 2rem) !important;
    margin-bottom: 1.4rem !important; /* extra clearance to avoid overlap */
    position: relative !important;
  }
  
  .timeline-track {
    display: flex !important;
    flex-direction: row !important; /* HORIZONTAL: Cards side by side in landscape */
    align-items: flex-start !important;
    justify-content: flex-start !important;
    overflow-x: auto !important; /* HORIZONTAL SCROLL: Allow horizontal scrolling */
    overflow-y: hidden !important;
    max-height: calc(100vh - 3.5rem) !important; /* CALCULATED: Better height - moved closer to navbar */
    gap: 0.8rem !important; /* REDUCED: Smaller gap for more items */
    padding: 0.5rem 1rem 1rem !important; /* REDUCED: Less top padding to move closer to navbar */
    scroll-snap-type: x mandatory !important; /* HORIZONTAL SNAP: Snap to cards */
    /* ADDED: Ensure all items fit in landscape */
    min-width: calc(5 * 250px + 4 * 0.8rem + 2rem) !important;
  }
  
  .timeline-station {
    width: 250px !important; /* REDUCED: Smaller width to fit more items */
    max-width: 250px !important;
    min-width: 250px !important;
    min-height: 140px !important; /* REDUCED: More compact for landscape */
    padding: 0.8rem !important; /* REDUCED: Less padding */
    margin: 0 !important;
  }
  
  .station-description {
    font-size: 0.8rem !important;
    line-height: 1.3 !important;
    -webkit-line-clamp: 2 !important;
    display: -webkit-box !important;
  }
  /* Avoid cut-offs between panels on landscape mobile */
  .hero-panel:not(:last-child),
  .content-panel:not(:last-child) {
    margin-right: 0 !important;
  }

  /* Ensure panel content fits landscape height */
  .hero-panel .panel-content,
  .content-panel .panel-content {
    height: auto !important;
    min-height: 85vh !important;
  }
  .hero-panel { padding-top: var(--nav-offset-landscape) !important; }
  .content-panel { padding-top: var(--nav-offset-landscape) !important; }
}

/* =============================================================================
   ENHANCED MOBILE LANDSCAPE LAYOUT
   ============================================================================= */
@media (max-width: 767px) and (orientation: landscape) {
  /* Enhanced navbar for landscape mobile */
  nav {
    padding: 0.5rem 1rem !important;
    height: 50px !important;
    min-height: 50px !important;
    background: transparent !important;
  }
  
  .logo {
    font-size: 0.8rem !important;
    padding: 0.3rem 0.6rem !important;
    gap: 0.3rem !important;
  }
  
  .scroll-indicator {
    font-size: 0.7rem !important;
    padding: 0.2rem 0.5rem !important;
  }
  
  /* Make the Journey title more compact */
  .timeline-section h2 {
    font-size: clamp(1rem, 3vw, 1.4rem) !important;
    margin-bottom: 0.6rem !important;
  }

  /* Add headroom below title and tighten spacing */
  .timeline-track {
    max-height: calc(100vh - 4rem) !important;
    padding: 0.6rem 1rem 1rem !important;
    gap: 0.8rem !important;
  }

  /* More compact station cards */
  .timeline-station {
    max-width: 260px !important;
    min-width: 220px !important;
    min-height: 110px !important;
    padding: 0.6rem !important;
  }

  .station-title { font-size: 0.85rem !important; }
  .station-number {
    width: 1.6rem !important;
    height: 1.6rem !important;
    font-size: 0.75rem !important;
  }
  .station-year { font-size: 0.7rem !important; }
}

/* Extra-tight phones in landscape (very short height) */
@media (max-width: 767px) and (orientation: landscape) and (max-height: 380px) {
  .timeline-section h2 {
    font-size: clamp(0.9rem, 2.6vw, 1.2rem) !important;
    margin-bottom: 0.4rem !important;
  }
  .timeline-track {
    max-height: calc(100vh - 2.5rem) !important; /* MOVED CLOSER: Reduced navbar offset */
    padding-top: 0.2rem !important; /* REDUCED: Less top padding */
    gap: 0.6rem !important;
  }
  .timeline-station {
    width: 200px !important; /* FIXED WIDTH: Smaller for ultra-short landscape */
    max-width: 200px !important;
    min-width: 200px !important; /* FIXED MIN-WIDTH: Prevent shrinking */
    min-height: 95px !important;
    padding: 0.5rem !important;
    margin: 0 0.3rem 0 0 !important; /* HORIZONTAL MARGIN: Right margin only */
  }
  .station-title { font-size: 0.8rem !important; }
  .station-number { font-size: 0.7rem !important; }
  .station-year { font-size: 0.65rem !important; }
}

/* =============================================================================
   MOBILE RESPONSIVE SYSTEM - FIXED
   ============================================================================= */

@media (max-width: 768px) {
  nav {
    padding: 0.8rem 1rem;
    height: auto;
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 1000;
    background: transparent;
    transition: all 0.3s ease;
  }
  
  /* Enhanced mobile logo */
  .logo {
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    padding: 0.5rem 0.8rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: nowrap;
    min-width: 0;
    flex: 1;
    max-width: calc(100% - 120px);
    background: transparent;
    transition: all 0.3s ease;
  }
  
  .logo:hover {
    transform: translateY(-1px);
  }
  
  /* Enhanced mobile scroll indicator */
  .scroll-indicator {
    font-size: 0.7rem;
    padding: 0.3rem 0.6rem;
    background: transparent;
    color: var(--color-primary);
    white-space: nowrap;
    flex-shrink: 0;
    transition: all 0.3s ease;
  }
  
  .scroll-indicator:hover {
    transform: translateY(-1px);
  }
  
  .logo-icon {
    height: 0.8rem;
    width: auto;
    flex-shrink: 0;
    min-width: 0.8rem;
    /* iPhone Safari fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    object-fit: contain;
    object-position: center;
    max-width: 100%;
    max-height: 100%;
    -webkit-transform-origin: center;
    transform-origin: center;
  }
  
  .logo-text {
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
  }
  
  .logo-link {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    min-width: 1.1rem;
    min-height: 1.1rem;
  }
  
  .scroll-indicator {
    font-size: 0.65rem;
    padding: 0.5rem 0.8rem;
    white-space: nowrap;
    flex-shrink: 0;
  }
  /* Sections: ensure top offset clears the navbar */
  .hero-panel,
  .content-panel,
  .timeline-section,
  #footer-ctas,
  #signature-panel {
    padding-top: calc(env(safe-area-inset-top, 0px) + 3.6rem) !important;
  }
  /* Safe top offset for mobile to clear fixed navbar */
  :root { --nav-offset-mobile: calc(env(safe-area-inset-top, 0px) + 3.6rem); }
  .hero-panel,
  .content-panel,
  .timeline-section,
  #footer-ctas,
  #signature-panel { padding-top: var(--nav-offset-mobile) !important; }
  .hero-panel .panel-content,
  .content-panel .panel-content { padding-top: 0.5rem !important; }
  
  /* HERO TITLE MOBILE - ENHANCED DISTRIBUTION */
  .hero-panel h1,
  .hero-panel .hero-title {
    font-size: clamp(2.5rem, 10vw, 3.5rem); /* INCREASED: Better mobile sizing */
    line-height: 1.2 !important; /* IMPROVED: Better readability */
    margin-bottom: 2rem; /* INCREASED: Better spacing */
    
    /* BLOCK DISPLAY FOR STACKING */
    display: block !important;
    
    /* FIXED spacing for mobile */
    max-width: 90% !important;
    word-spacing: normal;
    
    /* Clean mobile text shadow */
    text-shadow: 
      0 2px 8px rgba(0, 0, 0, 0.9),
      0 0 20px rgba(0, 0, 0, 0.8),
      0 0 40px rgba(0, 0, 0, 0.6);
  }
  

  
  .content-panel h2 {
    font-size: clamp(2.2rem, 10vw, 3rem); /* INCREASED: Better mobile sizing */
    margin-bottom: 2rem; /* INCREASED: Better spacing */
    line-height: 1.2; /* IMPROVED: Better readability */
  }
  
  .subtitle {
    font-size: clamp(1rem, 4.5vw, 1.4rem);
    margin-bottom: 1.5rem;
    font-weight: 700;
  }
  
  .hero-panel p:not(.subtitle),
  .content-panel p:not(.subtitle) {
    font-size: clamp(1.1rem, 4.5vw, 1.3rem); /* INCREASED: Better mobile readability */
    line-height: 1.6; /* IMPROVED: Better line height */
    margin-bottom: 1.5rem; /* INCREASED: Better spacing */
    font-weight: 600;
    /* ADDED: Better text flow */
    text-align: left;
  }
  
  /* Enhanced Mobile Panel Layout - Better Distribution */
  .panel-content {
    flex-direction: column;
    padding: 4rem 1.5rem 3rem; /* FURTHER REDUCED: Moved content up significantly (5.5rem to 4rem) */
    gap: clamp(2rem, 5vw, 3rem); /* INCREASED: Better spacing between elements */
    text-align: left;
    justify-content: center;
    min-height: calc(100vh - 5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    /* ADDED: Better visual balance */
    max-width: 100%;
    box-sizing: border-box;
  }
  
  .text-content,
  .cta-content {
    flex: none;
    max-width: 100%;
    width: 100%;
    padding-top: 0;
  }
  
  .text-content {
    margin-top: 0; /* handled by panel-content padding-top */
    /* ADDED: Better spacing for mobile text */
    gap: clamp(1.5rem, 4vw, 2.5rem);
    line-height: 1.6;
  }
  
  .cta-content {
    order: 2;
    margin-top: 2rem; /* INCREASED: Better separation from text content */
    /* ADDED: Better CTA spacing */
    gap: clamp(1.5rem, 4vw, 2rem);
  }
  
  /* Enhanced Mobile Buttons - Better Distribution */
  .cta-container {
    gap: clamp(1.5rem, 4vw, 2rem); /* INCREASED: Better spacing between buttons */
    width: 100%;
    max-width: 100%;
    /* ADDED: Better visual balance */
    margin-top: 1rem;
  }
  
  .case-study-btn {
    padding: 1.5rem;
    min-height: 64px;
    border-radius: 1rem;
    border-width: 2px;
    width: 100%;
    background: linear-gradient(135deg, 
      rgba(255, 255, 255, 0.08) 0%, 
      rgba(255, 255, 255, 0.12) 100%);
    backdrop-filter: blur(20px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
  }
  
  .case-study-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4);
    background: linear-gradient(135deg, 
      rgba(255, 76, 36, 0.15) 0%, 
      rgba(255, 255, 255, 0.12) 100%);
  }
  
  .case-study-btn:active {
    transform: translateY(-1px);
    transition: transform 0.1s ease;
  }
  
  .btn-title {
    font-size: clamp(1rem, 4vw, 1.1rem);
    font-weight: 900;
  }
  
  .btn-subtitle {
    font-size: clamp(0.85rem, 3.5vw, 0.95rem);
    font-weight: 600;
  }
  
  .reference-btn {
    padding: 1rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 700;
    width: 100%;
    background: linear-gradient(135deg, 
      rgba(255, 255, 255, 0.06) 0%, 
      rgba(255, 255, 255, 0.1) 100%);
    backdrop-filter: blur(20px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
  }
  
  .reference-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
    background: linear-gradient(135deg, 
      rgba(255, 76, 36, 0.12) 0%, 
      rgba(255, 255, 255, 0.1) 100%);
  }
  
  .reference-btn:active {
    transform: translateY(0);
    transition: transform 0.1s ease;
  }
  
  /* =============================================================================
     MOBILE TIMELINE - VERTICAL LAYOUT IMPROVED - FIXED SCROLL STOPPING
     ============================================================================= */
  
  .timeline-section {
    padding: 3rem 1.5rem; /* INCREASED HORIZONTAL PADDING FOR MOBILE */
    padding-top: 5rem;
    margin-right: 0; /* Fixed: Remove margin that was cutting off timeline */
    overflow: visible !important; /* Fixed: Allow content to be visible */
    min-height: 100vh;
  }
  
  .timeline-section h2 {
    font-size: clamp(2rem, 8vw, 2.8rem);
    margin-bottom: 2.5rem;
    
    position: relative !important;
    z-index: 20 !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: 100% !important;
    text-align: center;
    
    text-shadow: 
      0 3px 10px rgba(0, 0, 0, 0.9),
      0 0 25px rgba(0, 0, 0, 0.8),
      0 0 50px rgba(0, 0, 0, 0.6);
  }
  
  .timeline-track {
    flex-direction: column !important;
    align-items: center;
    justify-content: flex-start;
    overflow-x: visible;
    overflow-y: auto;
    max-height: 75vh;
    gap: 2rem;
    padding: 1.5rem 0.5rem;
    width: 100%;
    max-width: 100%;
    position: relative;
    z-index: 10;
  }
  
  .timeline-station {
    /* Removed conflicting width - use main definition */
    max-width: 95vw;
    padding: 1.5em; /* Osmo em-based scaling */
    position: relative;
    z-index: 5;
  }
  
  .station-content {
    padding: 1rem;
    gap: 1rem;
  }
  
  .station-title {
    font-size: 1rem;
  }
  
  .station-description {
    display: none !important; /* Hide descriptions on mobile */
  }
  
  .station-number {
    font-size: 0.7rem;
  }
  
  .station-year {
    font-size: 0.65rem;
  }
}

/* Mobile timeline: show all content on cards */
@media (max-width: 767px) {
  .timeline-station .station-title,
  .timeline-station .station-year,
  .timeline-station .station-description {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  /* Force visibility with higher specificity */
  .timeline-section .timeline-track .timeline-station .station-title,
  .timeline-section .timeline-track .timeline-station .station-year,
  .timeline-section .timeline-track .timeline-station .station-description {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  .timeline-station .station-title {
    font-size: clamp(1rem, 4vw, 1.2rem) !important;
    font-weight: 900 !important;
    color: var(--color-primary) !important;
    margin-bottom: 0.5rem !important;
    text-align: center !important;
  }
  
  .timeline-station .station-year {
    font-size: clamp(0.8rem, 3vw, 0.9rem) !important;
    color: rgba(255, 255, 255, 0.8) !important;
    margin-bottom: 0.5rem !important;
    text-align: center !important;
  }
  
  .timeline-station .station-description {
    font-size: clamp(0.8rem, 3vw, 0.9rem) !important;
    color: rgba(255, 255, 255, 0.9) !important;
    line-height: 1.4 !important;
    text-align: center !important;
    -webkit-line-clamp: 3 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  
  .timeline-station--in-modal .station-title,
  .timeline-station--in-modal .station-year,
  .timeline-station--in-modal .station-description {
    display: block !important;
  }
}

/* ULTRA-SPECIFIC MOBILE TIMELINE FIX - HIGHEST PRIORITY */
@media (max-width: 767px) {
  body .timeline-section .timeline-track .timeline-station .station-content .station-title,
  body .timeline-section .timeline-track .timeline-station .station-content .station-year,
  body .timeline-section .timeline-track .timeline-station .station-content .station-description {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 10 !important;
  }
  
  body .timeline-section .timeline-track .timeline-station .station-content .station-title {
    font-size: clamp(1rem, 4vw, 1.2rem) !important;
    font-weight: 900 !important;
    color: var(--color-primary) !important;
    margin-bottom: 0.5rem !important;
    text-align: center !important;
    line-height: 1.2 !important;
  }
  
  body .timeline-section .timeline-track .timeline-station .station-content .station-year {
    font-size: clamp(0.8rem, 3vw, 0.9rem) !important;
    color: rgba(255, 255, 255, 0.9) !important;
    margin-bottom: 0.5rem !important;
    text-align: center !important;
    font-weight: 600 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 15 !important;
    background: rgba(0, 0, 0, 0.3) !important;
    padding: 0.3rem 0.6rem !important;
    border-radius: 0.5rem !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
  }
  
  body .timeline-section .timeline-track .timeline-station .station-content .station-description {
    font-size: clamp(0.8rem, 3vw, 0.9rem) !important;
    color: rgba(255, 255, 255, 0.9) !important;
    line-height: 1.4 !important;
    text-align: center !important;
    -webkit-line-clamp: 3 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  
  /* Ensure proper layering for timeline stations */
  .timeline-station:nth-child(1) {
    z-index: 20 !important;
    margin-bottom: 3.5rem !important;
  }
  
  .timeline-station:nth-child(2) {
    z-index: 19 !important;
    margin-bottom: 3.5rem !important;
  }
  
  .timeline-station:nth-child(3) {
    z-index: 18 !important;
    margin-bottom: 3.5rem !important;
  }
  
  .timeline-station:nth-child(4) {
    z-index: 17 !important;
    margin-bottom: 3.5rem !important;
  }
  
  .timeline-station:nth-child(5) {
    z-index: 16 !important;
    margin-bottom: 2rem !important;
  }
}

/* Timeline Modal Content Styling */
.timeline-modal__body .timeline-station--in-modal {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: auto !important;
  position: relative !important;
  z-index: 15 !important;
}

/* Force modal content visibility - override all mobile hiding rules */
#timeline-modal .timeline-modal__body .timeline-station--in-modal .station-title,
#timeline-modal .timeline-modal__body .timeline-station--in-modal .station-description,
#timeline-modal .timeline-modal__body .timeline-station--in-modal .station-number,
#timeline-modal .timeline-modal__body .timeline-station--in-modal .station-year {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #ffffff !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
  margin: 0.5rem 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
}

/* Additional specificity for mobile modal content */
@media (max-width: 768px) {
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #ffffff !important;
    font-size: clamp(1.4rem, 4vw, 1.8rem) !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin-bottom: 1.5rem !important;
    text-align: center !important;
    line-height: 1.2 !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
    word-wrap: break-word !important;
  }
  
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-description {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #ffffff !important;
    font-size: clamp(1rem, 3vw, 1.1rem) !important;
    line-height: 1.6 !important;
    margin-bottom: 2rem !important;
    text-align: center !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }
  
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-number {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    font-size: clamp(1.8rem, 5vw, 2.2rem) !important;
    width: clamp(3rem, 8vw, 3.5rem) !important;
    height: clamp(3rem, 8vw, 3.5rem) !important;
    margin: 0 auto 1rem auto !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, 0.15) !important;
    border-radius: 50% !important;
    color: var(--color-primary) !important;
    font-weight: 700 !important;
    border: 2px solid rgba(255, 255, 255, 0.3) !important;
  }
  
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-year {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--color-primary) !important;
    font-size: clamp(1rem, 3vw, 1.2rem) !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
  }
}

.timeline-modal__body .timeline-station--in-modal .station-content {
  padding: 2rem !important;
  gap: 1.5rem !important;
  text-align: center !important;
  position: relative !important;
  z-index: 20 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: calc(100vh - 4rem) !important;
  box-sizing: border-box !important;
}

.timeline-modal__body .timeline-station--in-modal .station-number {
  font-size: 2.5rem !important;
  width: 4rem !important;
  height: 4rem !important;
  margin: 0 auto 1rem auto !important;
  position: relative !important;
  z-index: 25 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, 0.15) !important;
  border-radius: 50% !important;
  color: var(--color-primary) !important;
  font-weight: 700 !important;
  border: 2px solid rgba(255, 255, 255, 0.3) !important;
}

.timeline-modal__body .timeline-station--in-modal .station-title {
  font-size: 2rem !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  margin-bottom: 1.5rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  position: relative !important;
  z-index: 25 !important;
  text-align: center !important;
  line-height: 1.2 !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

.timeline-modal__body .timeline-station--in-modal .station-description {
  font-size: 1.2rem !important;
  line-height: 1.7 !important;
  color: #ffffff !important;
  margin-bottom: 2rem !important;
  text-align: center !important;
  max-width: 100% !important;
  position: relative !important;
  z-index: 25 !important;
  font-weight: 400 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
}

.timeline-modal__body .timeline-station--in-modal .station-year {
  font-size: 1.3rem !important;
  color: var(--color-primary) !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  position: relative !important;
  z-index: 25 !important;
  text-align: center !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
  margin-top: 0.5rem !important;
}

.timeline-modal__note {
  margin-top: 2rem !important;
  padding-top: 1.5rem !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-muted) !important;
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
  text-align: center !important;
  font-style: italic !important;
  position: relative !important;
  z-index: 25 !important;
}

/* Mobile Portrait - Optimized */
@media (max-width: 480px) {
  .timeline-section {
    padding: 3rem 1.5rem; /* INCREASED HORIZONTAL PADDING FOR SMALL MOBILE */
    padding-top: 5rem;
    margin-right: 0; /* Fixed: Remove margin that was cutting off timeline */
    overflow: visible !important; /* Fixed: Allow content to be visible */
  }
  
  .timeline-section h2 {
    font-size: clamp(2rem, 8vw, 2.8rem);
    margin-bottom: 2.5rem;
    
    position: relative !important;
    z-index: 25 !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: 100% !important;
    text-align: center !important;
  }
  
  .timeline-track {
    flex-direction: column !important;
    align-items: center;
    justify-content: flex-start;
    overflow-x: visible;
    overflow-y: auto;
    max-height: 65vh;
    gap: 1.5rem;
    padding: 1rem 0.5rem;
    width: 100%;
    max-width: 100%;
  }
  
  .timeline-station {
    width: 95%;
    max-width: 350px;
    min-width: 280px;
    min-height: 180px; /* Increased height */
    max-height: 220px; /* ADDED MAX HEIGHT */
    height: auto;
    padding: 1.2rem;
  }
  
  .station-content {
    padding: 0.8rem;
    gap: 0.8rem;
  }
  
  .station-title {
    font-size: 0.9rem;
  }
  
  .station-description {
    display: none !important; /* Hide descriptions on mobile portrait */
  }
  
  .station-number {
    font-size: 0.65rem;
  }
  
  .station-year {
    font-size: 0.6rem;
  }
}

/* =============================================================================
   COMPREHENSIVE MOBILE LANDSCAPE OPTIMIZATION
   ============================================================================= */

/* General Mobile Landscape - All Heights */
@media (max-width: 768px) and (orientation: landscape) {
  :root {
    --container-padding: 0.8em;
    --gap: 1.2em;
  }
  
  /* Navigation Optimization */
  nav {
    padding: 0.5rem 1rem;
    height: 2.5rem;
  }
  
  .logo {
    font-size: 0.75rem;
    padding: 0.4rem 0.6rem;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: nowrap;
    min-width: 0;
    flex: 1;
    max-width: calc(100% - 100px);
  }
  
  .logo-icon {
    height: 1rem;
    width: auto;
    flex-shrink: 0;
    min-width: 1rem;
    /* iPhone Safari fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    object-fit: contain;
    object-position: center;
    max-width: 100%;
    max-height: 100%;
    -webkit-transform-origin: center;
    transform-origin: center;
  }
  
  .logo-text {
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 150px;
  }
  
  .logo-link {
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }
  
  .scroll-indicator {
    font-size: 0.65rem;
    padding: 0.4rem 0.8rem;
  }
  
  /* Hero Panel Landscape Optimization */
  .hero-panel {
    min-height: 95vh !important;
    padding: 0.5rem 0 !important;
  }
  
  .hero-panel .panel-content {
    flex-direction: row !important;
    padding: 0.5rem 1.5rem !important; /* FURTHER REDUCED: Moved content up more for landscape */
    gap: 2rem !important; /* INCREASED: Better spacing between text and CTA */
    align-items: center !important;
    justify-content: space-between !important;
    height: 90vh !important;
    margin-top: 2rem !important; /* REDUCED: Less margin-top for higher positioning */
    overflow: hidden !important;
    /* ADDED: Better visual balance */
    max-width: 100%;
  }
  
  .hero-panel .text-content {
    flex: 1 !important;
    max-width: 60% !important; /* INCREASED: More space for text in landscape */
    padding-top: 0 !important;
    margin-top: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    /* ADDED: Better spacing for landscape */
    gap: 1.5rem;
  }
  
  .hero-panel .cta-content {
    flex: 0 0 35% !important; /* REDUCED: More balanced with text content */
    max-width: 35% !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
    order: initial !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    /* ADDED: Better spacing for landscape */
    gap: 1.5rem;
  }
  
  /* Hero Title Landscape - Horizontal Layout - FIXED OVERLAP */
  .hero-panel h1,
  .hero-panel .hero-title {
    font-size: clamp(1.4rem, 3.5vw, 2rem) !important; /* FURTHER REDUCED for landscape */
    line-height: 1.2 !important; /* BETTER line height */
    margin-bottom: 0.8rem !important;
    display: block !important; /* BLOCK DISPLAY FOR STACKING */
    max-width: 85% !important; /* PREVENT OVERFLOW */
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    
    /* NO OVERFLOW ISSUES */
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: initial !important;
  }


  
  .subtitle {
    font-size: clamp(0.9rem, 2.2vw, 1.1rem) !important;
    margin: 0.8rem 0 1.2rem 0 !important;
    line-height: 1.3 !important;
  }
  
  .hero-panel p:not(.subtitle) {
    font-size: clamp(0.85rem, 2vw, 1rem) !important;
    line-height: 1.4 !important;
    margin-bottom: 1rem !important;
  }
  
  /* Content Panels Landscape */
  .content-panel .panel-content {
    flex-direction: row !important;
    padding: 0.8rem 1.2rem !important;
    gap: clamp(1rem, 2.5vw, 2rem) !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 90vh !important;
    overflow: hidden !important;
  }
  
  .content-panel .text-content {
    flex: 1 !important;
    max-width: 60% !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
  
  .content-panel .cta-content {
    flex: 0 0 35% !important;
    max-width: 35% !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
    order: initial !important;
  }
  
  .content-panel h2 {
    font-size: clamp(1.3rem, 3.2vw, 1.8rem) !important;
    margin-bottom: 0.8rem !important;
    line-height: 1.1 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
  
  .content-panel p:not(.subtitle) {
    font-size: clamp(0.75rem, 1.6vw, 0.9rem) !important;
    line-height: 1.3 !important;
    margin-bottom: 0.6rem !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
  
  /* CTA Optimization for Landscape */
  .cta-container {
    gap: 1rem !important;
  }
  
  .case-study-btn {
    padding: 1rem 1.2rem !important;
    min-height: 45px !important;
  }
  
  .btn-title {
    font-size: clamp(0.85rem, 2vw, 1rem) !important;
  }
  
  .btn-subtitle {
    font-size: clamp(0.75rem, 1.6vw, 0.85rem) !important;
  }
  
  .reference-btn {
    padding: 0.8rem 1.2rem !important;
    font-size: clamp(0.75rem, 1.6vw, 0.85rem) !important;
    min-height: 40px !important;
  }
  
  /* Timeline Landscape - Horizontal Layout */
  .timeline-section {
    padding: 2rem 1rem !important;
    padding-top: 3rem !important;
    margin-right: 0 !important; /* Fixed: Remove margin that was cutting off timeline */
    overflow: visible !important; /* Fixed: Allow content to be visible */
  }
  
  .timeline-section h2 {
    font-size: clamp(1.8rem, 4.5vw, 2.5rem) !important;
    margin-bottom: 2rem !important;
  }
  
  .timeline-track {
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    max-height: 60vh !important;
    gap: 1.5rem !important;
    padding: 1rem 1.5rem !important;
    align-items: flex-start !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
  }
  
  .timeline-station {
    width: 180px !important; /* Restored working size */
    min-width: 180px !important;
    max-width: 180px !important;
    height: auto !important;
    min-height: 100px !important; /* Restored working height */
    max-height: 120px !important;
    padding: 0.6rem !important;
    scroll-snap-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }
  
  .station-title {
    font-size: 0.9rem !important;
    line-height: 1.2 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    margin-bottom: 0.4rem !important;
  }
  
  .station-description {
    display: none !important; /* Hide descriptions on landscape */
  }
  
  .station-number {
    font-size: 0.7rem !important;
    margin-bottom: 0.3rem !important;
  }
  
  .station-year {
    font-size: 0.7rem !important;
    margin-top: 0.3rem !important;
  }
}

/* Medium Height Mobile Landscape (501px - 600px) */
@media (max-width: 768px) and (orientation: landscape) and (min-height: 501px) and (max-height: 600px) {
  .hero-panel .panel-content {
    height: 85vh !important;
    margin-top: 3rem !important;
  }
  
  .content-panel .panel-content {
    height: 85vh !important;
  }
  
  .timeline-track {
    max-height: 55vh !important;
  }
  
  .timeline-station {
    min-height: 150px !important;
    max-height: 170px !important;
  }
  
  .station-description {
    -webkit-line-clamp: 3 !important;
  }
}

/* Ultra-Short Mobile Landscape (≤500px height) */
@media (max-width: 768px) and (orientation: landscape) and (max-height: 500px) {
  :root {
    --container-padding: 0.5em;
    --gap: 0.8em;
  }
  
  /* Ultra-compact navigation */
  nav {
    padding: 0.3rem 0.8rem;
    height: 2rem;
  }
  
  .logo {
    font-size: 0.65rem;
    padding: 0.2rem 0.4rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: nowrap;
    min-width: 0;
    flex: 1;
    max-width: calc(100% - 80px);
  }
  
  .logo-icon {
    height: 0.8rem;
    width: auto;
    flex-shrink: 0;
    min-width: 0.8rem;
    /* iPhone Safari fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    object-fit: contain;
    object-position: center;
    max-width: 100%;
    max-height: 100%;
    -webkit-transform-origin: center;
    transform-origin: center;
  }
  
  .logo-text {
    font-size: 0.65rem;
    letter-spacing: 0.25px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
  }
  
  .logo-link {
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }
  
  .scroll-indicator {
    font-size: 0.6rem;
    padding: 0.2rem 0.5rem;
  }
  
  /* Hero ultra-compact */
  .hero-panel {
    min-height: 98vh !important;
  }
  
  .hero-panel .panel-content {
    height: 95vh !important;
    padding: 0.5rem 1rem !important;
    gap: 1.5rem !important;
    margin-top: 2rem !important;
  }
  
  .hero-panel h1,
  .hero-panel .hero-title {
    font-size: clamp(1.4rem, 3.8vw, 2rem) !important;
    line-height: 0.85 !important;
    margin-bottom: 0.6rem !important;
    display: block !important; /* BLOCK DISPLAY FOR STACKING */
  }
  
  .subtitle {
    font-size: clamp(0.75rem, 1.8vw, 0.9rem) !important;
    margin: 0.5rem 0 0.8rem 0 !important;
  }
  
  .hero-panel p:not(.subtitle) {
    font-size: clamp(0.7rem, 1.6vw, 0.8rem) !important;
    line-height: 1.3 !important;
    margin-bottom: 0.6rem !important;
  }
  
  /* Content ultra-compact */
  .content-panel .panel-content {
    height: 95vh !important;
    padding: 0.5rem 1rem !important;
    gap: 1.5rem !important;
  }
  
  .content-panel h2 {
    font-size: clamp(1.2rem, 3vw, 1.6rem) !important;
    margin-bottom: 0.6rem !important;
  }
  
  .content-panel p:not(.subtitle) {
    font-size: clamp(0.65rem, 1.4vw, 0.75rem) !important;
    line-height: 1.3 !important;
    margin-bottom: 0.5rem !important;
  }
  
  /* CTA ultra-compact */
  .case-study-btn {
    padding: 0.6rem 0.8rem !important;
    min-height: 35px !important;
  }
  
  .btn-title {
    font-size: clamp(0.7rem, 1.6vw, 0.8rem) !important;
  }
  
  .btn-subtitle {
    font-size: clamp(0.6rem, 1.3vw, 0.7rem) !important;
  }
  
  .reference-btn {
    padding: 0.5rem 0.8rem !important;
    font-size: clamp(0.6rem, 1.3vw, 0.7rem) !important;
    min-height: 30px !important;
  }
  
  /* Timeline ultra-compact */
  .timeline-section {
    padding: 1.5rem 0.8rem !important;
    padding-top: 2.5rem !important;
  }
  
  .timeline-section h2 {
    font-size: clamp(1.4rem, 3.5vw, 1.8rem) !important;
    margin-bottom: 1.5rem !important;
  }
  
  .timeline-track {
    max-height: 50vh !important;
    gap: 1rem !important;
    padding: 0.8rem 1rem !important;
  }
  
  .timeline-station {
    width: 200px !important;
    min-width: 200px !important;
    min-height: 110px !important;
    max-height: 120px !important;
    padding: 0.6rem !important;
  }
  
  .station-content {
    padding: 0.5rem !important;
    gap: 0.4rem !important;
  }
  
  .station-title {
    font-size: 0.75rem !important;
  }
  
  .station-description {
    font-size: 0.65rem !important;
    line-height: 1.2 !important;
    -webkit-line-clamp: 2 !important;
  }
  
  .station-number {
    font-size: 0.55rem !important;
  }
  
  .station-year {
    font-size: 0.5rem !important;
  }
}

/* Extra-Wide Mobile Landscape (iPhone 14 Pro Max, etc.) */
@media (max-width: 932px) and (min-width: 769px) and (orientation: landscape) {
  .hero-panel .text-content {
    max-width: 50% !important;
  }
  
  .hero-panel .cta-content {
    flex: 0 0 45% !important;
    max-width: 45% !important;
  }
  
  .content-panel .text-content {
    max-width: 55% !important;
  }
  
  .content-panel .cta-content {
    flex: 0 0 40% !important;
    max-width: 40% !important;
  }
  
  .timeline-station {
    width: 260px !important;
    min-width: 260px !important;
  }
}

/* =============================================================================
   COLLABORATE SECTION - FIXED LAYOUT
   ============================================================================= */

/* Enhanced Panel Layout for Collaborate Section */
.hero-panel#footer {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 0;
  position: relative;
}

.hero-panel#footer .panel-content {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 1400px;
  padding: 3rem 4rem;
  gap: 5rem;
  min-height: 80vh;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  margin: 0 auto;
}

.hero-panel#footer .text-content {
  flex: 1;
  max-width: 50%;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding-right: 2rem;
  z-index: 3;
  position: relative;
  justify-content: center;
}

.hero-panel#footer .cta-content {
  flex: 0 0 45%;
  max-width: 45%;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  z-index: 3;
  position: relative;
  justify-content: center;
}

/* Enhanced CTA Container for Collaborate */
.hero-panel#footer .cta-container {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  opacity: 1;
  transform: translateY(0);
}

/* Ensure proper text styling for collaborate section */
.hero-panel#footer h1 {
  font-size: clamp(3rem, 6vw, 5rem) !important;
  line-height: 0.9 !important;
  margin-bottom: 2rem !important;
  text-align: left !important;
}

.hero-panel#footer .subtitle {
  font-size: clamp(1.2rem, 2.5vw, 1.8rem) !important;
  margin: 1.5rem 0 !important;
  color: var(--color-primary) !important;
}

.hero-panel#footer p {
  font-size: clamp(1.1rem, 2vw, 1.4rem) !important;
  line-height: 1.6 !important;
  margin-bottom: 1.5rem !important;
  max-width: 100% !important;
}

/* Large Desktop Adjustments */
@media (min-width: 1441px) {
  .hero-panel#footer .panel-content {
    max-width: 1600px;
    gap: 6rem;
    padding: 3rem 6rem;
  }
  
  .hero-panel#footer .text-content {
    max-width: 48%;
    padding-right: 3rem;
  }
  
  .hero-panel#footer .cta-content {
    flex: 0 0 47%;
    max-width: 47%;
  }
}

/* Laptop Screens (1025px-1440px) - Specific Laptop Fixes */
@media (min-width: 1025px) and (max-width: 1440px) {
  /* Fix navbar height and content spacing */
  nav {
    height: 4.5rem !important;
    min-height: 4.5rem !important;
  }
  
  /* Ensure content doesn't overlap navbar */
  .hero-panel,
  .content-panel,
  .timeline-section,
  #footer-ctas,
  #signature-panel {
    padding-top: 5.5rem !important;
  }
  
  /* Fix panel content spacing for laptops */
  .hero-panel .panel-content,
  .content-panel .panel-content {
    padding-top: 7rem !important;
    height: calc(100vh - 5.5rem) !important;
    min-height: calc(100vh - 5.5rem) !important;
  }
  
  /* Reduce hero text size for laptops */
  .hero-panel h1,
  .hero-panel .hero-title {
    font-size: clamp(2rem, 4.5vw, 3.5rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 1rem !important;
  }
  
  .hero-panel .subtitle {
    font-size: clamp(1rem, 2vw, 1.3rem) !important;
    margin-bottom: 1.2rem !important;
  }
  
  .hero-panel p:not(.subtitle) {
    font-size: clamp(0.9rem, 1.8vw, 1.1rem) !important;
    line-height: 1.4 !important;
    margin-bottom: 1rem !important;
  }
}

/* Large Desktop Screens (1441px+) - Ensure Proper Spacing */
@media (min-width: 1441px) {
  /* Fix navbar height and content spacing */
  nav {
    height: 5rem !important;
    min-height: 5rem !important;
  }
  
  /* Ensure content doesn't overlap navbar */
  .hero-panel,
  .content-panel,
  .timeline-section,
  #footer-ctas,
  #signature-panel {
    padding-top: 6rem !important;
  }
  
  /* Fix panel content spacing for large desktops */
  .hero-panel .panel-content,
  .content-panel .panel-content {
    padding-top: 8rem !important;
    height: calc(100vh - 6rem) !important;
    min-height: calc(100vh - 6rem) !important;
  }
}

/* Tablet Adjustments for Collaborate */
@media (min-width: 769px) and (max-width: 1024px) {
  .hero-panel#footer .panel-content {
    padding: 2rem;
    gap: 3rem;
    max-width: 95%;
  }
  
  .hero-panel#footer .text-content {
    max-width: 48%;
    padding-right: 1.5rem;
  }
  
  .hero-panel#footer .cta-content {
    flex: 0 0 47%;
    max-width: 47%;
  }
  
  .hero-panel#footer h1 {
    font-size: clamp(2.5rem, 5vw, 3.5rem) !important;
  }
}

/* Mobile Layout for Collaborate - STACKED */
@media (max-width: 768px) {
  .hero-panel#footer {
    min-height: 100vh;
    align-items: flex-start;
    padding-top: 0;
  }
  
  .hero-panel#footer .panel-content {
    flex-direction: column !important;
    padding: 1.5rem 1rem;
    gap: 2.5rem;
    text-align: left;
    justify-content: flex-start;
    min-height: 90vh;
    align-items: stretch;
    margin-top: 4rem;
    max-width: 100%;
  }
  
  .hero-panel#footer .text-content {
    flex: none;
    max-width: 100% !important;
    width: 100%;
    padding-right: 0;
    order: 1;
    justify-content: flex-start;
  }
  
  .hero-panel#footer .cta-content {
    flex: none;
    max-width: 100% !important;
    width: 100%;
    order: 2;
    justify-content: flex-start;
  }
  
  .hero-panel#footer .cta-container {
    width: 100% !important;
    max-width: 100% !important;
    gap: 1.2rem;
  }
  
  .hero-panel#footer .case-study-btn,
  .hero-panel#footer .reference-btn {
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 60px !important;
  }
  
  /* Mobile typography for collaborate */
  .hero-panel#footer h1 {
    font-size: clamp(2.2rem, 8vw, 3.2rem) !important;
    line-height: 1.1 !important;
    margin-bottom: 1.5rem !important;
    margin-top: 0 !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
  
  .hero-panel#footer .subtitle {
    font-size: clamp(1rem, 4vw, 1.3rem) !important;
    margin: 1rem 0 !important;
  }
  
  .hero-panel#footer p {
    font-size: clamp(0.95rem, 3.8vw, 1.1rem) !important;
    line-height: 1.5 !important;
    margin-bottom: 1.2rem !important;
  }
}

/* Mobile Portrait - Ultra Small Screens */
@media (max-width: 480px) {
  .hero-panel#footer .panel-content {
    padding: 1rem;
    margin-top: 3rem;
    gap: 2rem;
    min-height: 85vh;
  }
  
  .hero-panel#footer h1 {
    font-size: clamp(1.8rem, 7vw, 2.5rem) !important;
    line-height: 1.0 !important;
    margin-bottom: 1.2rem !important;
  }
  
  .hero-panel#footer .subtitle {
    font-size: clamp(0.9rem, 3.5vw, 1.1rem) !important;
    margin: 0.8rem 0 !important;
  }
  
  .hero-panel#footer p {
    font-size: clamp(0.85rem, 3.5vw, 1rem) !important;
    line-height: 1.4 !important;
    margin-bottom: 1rem !important;
  }
  
  .hero-panel#footer .case-study-btn {
    padding: 1.2rem !important;
    min-height: 55px !important;
  }
  
  .hero-panel#footer .reference-btn {
    padding: 1rem 1.2rem !important;
    min-height: 50px !important;
    font-size: 0.85rem !important;
  }
}

/* Landscape mobile specific fixes */
@media (max-width: 768px) and (orientation: landscape) and (max-height: 500px) {
  .hero-panel#footer {
    min-height: 95vh;
  }
  
  .hero-panel#footer .panel-content {
    flex-direction: row !important;
    margin-top: 2rem;
    min-height: 90vh;
    gap: 2rem !important;
    padding: 1rem !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
  
  .hero-panel#footer .text-content {
    flex: 1 !important;
    max-width: 50% !important;
    width: 50% !important;
    padding-right: 1rem !important;
    order: 1 !important;
    justify-content: center !important;
    margin-top: 0 !important;
  }
  
  .hero-panel#footer .cta-content {
    flex: 0 0 45% !important;
    max-width: 45% !important;
    width: 45% !important;
    order: 2 !important;
    justify-content: center !important;
    margin-top: 0 !important;
  }
  
  .hero-panel#footer h1 {
    font-size: clamp(1.2rem, 3.5vw, 1.8rem) !important;
    margin-bottom: 0.8rem !important;
    line-height: 1 !important;
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  
  .hero-panel#footer .subtitle {
    font-size: clamp(0.7rem, 2vw, 0.9rem) !important;
    margin: 0.4rem 0 !important;
  }
  
  .hero-panel#footer p {
    font-size: clamp(0.65rem, 1.8vw, 0.8rem) !important;
    margin-bottom: 0.6rem !important;
    line-height: 1.3 !important;
  }
  
  .hero-panel#footer .case-study-btn {
    padding: 0.6rem !important;
    min-height: 35px !important;
  }
  
  .hero-panel#footer .reference-btn {
    padding: 0.5rem 0.8rem !important;
    min-height: 30px !important;
    font-size: 0.65rem !important;
  }
  
  .hero-panel#footer .cta-container {
    gap: 0.8rem !important;
  }
}

/* Medium Height Landscape for Collaborate */
@media (max-width: 768px) and (orientation: landscape) and (min-height: 501px) and (max-height: 600px) {
  .hero-panel#footer .panel-content {
    flex-direction: row !important;
    gap: 2.5rem !important;
    padding: 1.2rem !important;
  }
  
  .hero-panel#footer .text-content {
    max-width: 52% !important;
  }
  
  .hero-panel#footer .cta-content {
    max-width: 43% !important;
  }
  
  .hero-panel#footer h1 {
    font-size: clamp(1.4rem, 3.8vw, 2rem) !important;
  }
  
  .hero-panel#footer .subtitle {
    font-size: clamp(0.8rem, 2.2vw, 1rem) !important;
  }
  
  .hero-panel#footer p {
    font-size: clamp(0.75rem, 1.9vw, 0.9rem) !important;
  }
}

/* General Landscape for Collaborate */
@media (max-width: 768px) and (orientation: landscape) and (min-height: 601px) {
  .hero-panel#footer .panel-content {
    flex-direction: row !important;
    gap: 3rem !important;
    padding: 1.5rem !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 85vh !important;
  }
  
  .hero-panel#footer .text-content {
    flex: 1 !important;
    max-width: 55% !important;
    padding-right: 1.5rem !important;
    order: 1 !important;
    margin-top: 0 !important;
  }
  
  .hero-panel#footer .cta-content {
    flex: 0 0 40% !important;
    max-width: 40% !important;
    order: 2 !important;
    margin-top: 0 !important;
  }
  
  .hero-panel#footer h1 {
    font-size: clamp(1.6rem, 4vw, 2.4rem) !important;
    margin-bottom: 1rem !important;
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  
  .hero-panel#footer .subtitle {
    font-size: clamp(0.9rem, 2.3vw, 1.2rem) !important;
    margin: 0.8rem 0 !important;
  }
  
  .hero-panel#footer p {
    font-size: clamp(0.8rem, 2vw, 1rem) !important;
    margin-bottom: 0.8rem !important;
  }
}

/* =============================================================================
   SIMPLIFIED ANIMATIONS - REMOVED CONFLICTING ANIMATIONS
   ============================================================================= */
@keyframes heroReveal {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =============================================================================
   CONTAINER SYSTEM
   ============================================================================= */
#three-canvas {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 1 !important;
  opacity: 1 !important;
  pointer-events: none !important;
  width: 100vw !important;
  height: 100vh !important;
  touch-action: none !important;
  display: block !important;
  visibility: visible !important;
}

#container {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding: 0;
  height: 100vh;
  width: fit-content;
  min-width: 100vw;
  position: relative;
  z-index: 10;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
  overflow-x: auto;
  overflow-y: hidden;
  background: transparent;
  cursor: grab;
}

#container:active {
  cursor: grabbing;
}

/* Enhanced panel spacing - FIXED CALCULATIONS */
.hero-panel:not(:last-child),
.content-panel:not(:last-child) {
  margin-right: 85vw; /* KEEP: Existing working margin */
}

.timeline-section {
  margin-right: 0 !important; /* OVERRIDE: Remove timeline margin completely */
}

/* Container width calculation fix */
#container {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  padding: 0;
  height: 100vh;
  width: fit-content;
  min-width: 100vw;
  position: relative;
  z-index: 10;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
  overflow: visible !important; /* CHANGED: Allow content to be visible */
  background: transparent;
  cursor: grab;
}

/* Force timeline visibility */
.timeline-section,
.timeline-track,
.timeline-station,
.station-content {
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* =============================================================================
   ACCESSIBILITY & PERFORMANCE
   ============================================================================= */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
  
  .hero-panel h1,
  .content-panel h2,
  .subtitle,
  p,
  .cta-container,
  .timeline-station {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Enhanced Focus States */
*:focus {
  outline: 3px solid var(--color-primary);
  outline-offset: 3px;
}

.case-study-btn:focus,
.reference-btn:focus {
  outline: 3px solid var(--color-primary);
  outline-offset: 4px;
  box-shadow: 
    0 0 0 6px rgba(255, 76, 36, 0.2),
    0 8px 25px rgba(0, 0, 0, 0.4);
}

/* Enhanced Selection */
::selection {
  background-color: var(--color-primary);
  color: var(--color-neutral-100);
  text-shadow: none;
}

::-moz-selection {
  background-color: var(--color-primary);
  color: var(--color-neutral-100);
  text-shadow: none;
}

/* =============================================================================
   EDITORIAL STYLES
   ============================================================================= */
.editorial .editorial-text {
  margin-bottom: 0.5rem !important;
  line-height: 1.4 !important;
}

.editorial .editorial-text:last-of-type {
  margin-bottom: 0 !important;
}

.editorial .editorial-subtitle {
  margin-top: 1.5rem !important;
  margin-bottom: 0.3rem !important;
  line-height: 1.3 !important;
}

.editorial .editorial-subtitle + .editorial-text {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Specific styling for collaborate section */
#collaborate .text-content {
  max-width: 600px;
  margin: 0 auto;
}

#collaborate .paragraph {
  font-size: 1.1rem;
  color: var(--text-glass);
}

/* CTAs section styling */
#footer-ctas .panel-content {
  justify-content: center !important;
  align-items: center !important;
}

#footer-ctas .cta-content {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}

/* Signature Panel Styling */
#signature-panel {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

#signature-panel .signature-content {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  width: 100%;
}

/* Glassmorphism Signature CTA */
.glassmorphism-signature {
  margin: 0;
  padding: 2.5rem 3rem;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 1.5rem;
  box-shadow: 
    0 12px 40px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
  max-width: 400px;
  width: 100%;
}

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

.glassmorphism-signature:hover::before {
  left: 100%;
}

.glassmorphism-signature:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.25);
  box-shadow: 
    0 12px 40px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

/* Clickable signature styles */
#signature-clickable {
  cursor: pointer;
  user-select: none;
}

#signature-clickable:active {
  transform: translateY(0);
  transition: transform 0.1s ease;
}

.signature-text {
  font-size: 2rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 0.5rem;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.signature-role {
  font-size: 1rem;
  font-weight: 400;
  color: var(--text-muted-glass);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.signature-year {
  font-size: 0.8rem;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.1em;
  margin-top: 0.5rem;
}

/* Mobile adjustments for signature */
@media (max-width: 768px) {
  #signature-panel .signature-content {
    padding: 2rem;
  }
  
  .glassmorphism-signature {
    padding: 2rem 2.5rem;
    border-radius: 1.2rem;
    max-width: 350px;
  }
  
  .signature-text {
    font-size: 1.6rem;
  }
  
  .signature-role {
    font-size: 0.9rem;
  }
  
  .signature-year {
    font-size: 0.75rem;
  }
}

/* =============================================================================
   PRINT STYLES
   ============================================================================= */
@media print {
  #three-canvas {
    display: block !important;
  }
  
  #container {
    width: 100% !important;
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }
  
  .hero-panel,
  .content-panel,
  .timeline-section {
    width: 100% !important;
    height: auto !important;
    page-break-inside: avoid;
    margin-bottom: 2rem;
    margin-right: 0 !important;
  }
  
  * {
    text-shadow: none !important;
    box-shadow: none !important;
    background: white !important;
    color: black !important;
  }
  
  .case-study-btn,
  .reference-btn {
    border: 2px solid black !important;
  }
}

/* =============================================================================
   MOBILE LINK & TOUCH IMPROVEMENTS
   ============================================================================= */
@media (max-width: 767px) {
  /* Ensure adequate touch targets for mobile */
  .case-study-btn,
  .reference-btn {
    min-height: 44px !important; /* iOS recommended minimum */
    min-width: 44px !important;
    padding: 1rem !important;
    touch-action: manipulation !important; /* Optimize for touch */
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0.1) !important;
    user-select: none !important;
    position: relative !important;
    z-index: 10 !important; /* Ensure links are above other elements */
  }
  
  /* Improve touch feedback */
  .case-study-btn:active,
  .reference-btn:active {
    transform: scale(0.98) !important;
    transition: transform 0.1s ease !important;
  }
  
  /* Ensure links are properly clickable on mobile */
  .case-study-btn a,
  .reference-btn a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
  }
  
  /* Prevent scroll interference on interactive elements */
  .case-study-btn,
  .reference-btn,
  .logo,
  .scroll-indicator,
  .timeline-station {
    touch-action: manipulation !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
  }
  
  /* Improve mobile navigation */
  nav {
    padding: 1rem !important;
    height: auto !important;
    min-height: 60px !important;
    z-index: 100 !important;
  }
  
  .logo {
    font-size: 0.9rem !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    gap: 0.4rem !important;
    flex-wrap: nowrap !important;
    min-width: 0 !important;
    flex: 1 !important;
    max-width: calc(100% - 120px) !important;
    padding: 0.5rem 0.8rem !important;
  }
  
  .logo-icon {
    height: 0.7rem !important;
    width: auto !important;
    flex-shrink: 0 !important;
    min-width: 0.7rem !important;
    /* iPhone Safari fixes */
    -webkit-transform: translateZ(0) !important;
    transform: translateZ(0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    object-fit: contain !important;
    object-position: center !important;
    max-width: 100% !important;
    max-height: 100% !important;
    -webkit-transform-origin: center !important;
    transform-origin: center !important;
  }
  
  .logo-text {
    font-size: 0.9rem !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 180px !important;
  }
  
  .logo-link {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
  }
  
  .scroll-indicator {
    min-height: 44px !important;
    min-width: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }
  
  /* Ensure timeline stations are touchable */
  .timeline-station {
    min-height: 44px !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    z-index: 5 !important;
  }
  
  /* Improve mobile text readability */
  .btn-title {
    font-size: clamp(1rem, 4vw, 1.2rem) !important;
    line-height: 1.3 !important;
    pointer-events: none !important; /* Prevent text from interfering with link clicks */
  }
  
  .btn-subtitle {
    font-size: clamp(0.9rem, 3.5vw, 1rem) !important;
    line-height: 1.4 !important;
    pointer-events: none !important; /* Prevent text from interfering with link clicks */
  }
  
  /* Ensure button text doesn't interfere with clicks */
  .btn-text {
    pointer-events: none !important;
  }
  
  /* Make sure the entire button area is clickable */
  .case-study-btn *,
  .reference-btn * {
    pointer-events: none !important;
  }
  
  .case-study-btn,
  .reference-btn {
    pointer-events: auto !important;
  }
}

/* Ultra-small mobile devices */
@media (max-width: 479px) {
  /* Ultra-compact navbar */
  nav {
    padding: 0.6rem 0.8rem !important;
    min-height: 55px !important;
  }
  
  .logo {
    font-size: 0.8rem !important;
    padding: 0.4rem 0.6rem !important;
    gap: 0.3rem !important;
  }
  
  .logo-icon {
    height: 0.6rem !important;
    /* iPhone Safari fixes */
    -webkit-transform: translateZ(0) !important;
    transform: translateZ(0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    object-fit: contain !important;
    object-position: center !important;
    max-width: 100% !important;
    max-height: 100% !important;
    -webkit-transform-origin: center !important;
    transform-origin: center !important;
  }
  
  .logo-text {
    font-size: 0.85rem !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
  }
  
  /* Enhanced ultra-small timeline */
  .timeline-section h2 {
    font-size: clamp(1.2rem, 6vw, 1.6rem) !important;
    margin-bottom: 1rem !important;
  }
  
  .timeline-track {
    gap: 0.8rem !important;
    padding: 0.5rem !important;
  }
  
  .timeline-station {
    padding: 0.6rem 0.8rem !important;
    border-radius: 0.6rem !important;
  }
  
  .station-title {
    font-size: clamp(0.8rem, 3.5vw, 0.95rem) !important;
  }
  
  .station-year {
    font-size: clamp(0.7rem, 3vw, 0.8rem) !important;
  }
  
  .case-study-btn,
  .reference-btn {
    padding: 1.2rem 1rem !important;
    min-height: 48px !important;
  }
  
  .btn-title {
    font-size: clamp(0.9rem, 4.5vw, 1.1rem) !important;
  }
  
  .btn-subtitle {
    font-size: clamp(0.8rem, 4vw, 0.95rem) !important;
  }
}

/* Enhanced Landscape Mobile Layout - REMOVED (consolidated with earlier breakpoint) */

/* =============================================================================
   IPHONE SAFARI SPECIFIC FIXES
   ============================================================================= */

/* iPhone Safari logo fixes */
@supports (-webkit-touch-callout: none) {
  .logo-icon {
    -webkit-transform: translateZ(0) !important;
    transform: translateZ(0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    -webkit-perspective: 1000px !important;
    perspective: 1000px !important;
    will-change: transform !important;
    -webkit-will-change: transform !important;
  }
}

/* iPhone Safari specific media query */
@media screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 767px) {
  .logo-icon {
    height: 0.6rem !important;
    width: auto !important;
    -webkit-transform: translateZ(0) !important;
    transform: translateZ(0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    -webkit-perspective: 1000px !important;
    perspective: 1000px !important;
    will-change: transform !important;
    -webkit-will-change: transform !important;
    /* Prevent Safari from scaling the SVG */
    -webkit-transform-origin: center !important;
    transform-origin: center !important;
    /* Ensure proper rendering */
    image-rendering: -webkit-optimize-contrast !important;
    image-rendering: crisp-edges !important;
    /* Prevent overlap with text */
    margin-right: 0.3rem !important;
  }
}

/* =============================================================================
   MOBILE LINK FIXES
   ============================================================================= */

/* Ensure all links work properly on mobile */
@media (max-width: 767px) {
  a[href] {
    -webkit-tap-highlight-color: rgba(255, 76, 36, 0.3) !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    /* Ensure links are clickable */
    pointer-events: auto !important;
    cursor: pointer !important;
    /* Prevent zoom on double tap */
    touch-action: manipulation !important;
  }
  
  /* Specific fixes for case study buttons */
  .case-study-btn[href] {
    -webkit-tap-highlight-color: rgba(255, 76, 36, 0.2) !important;
    /* Ensure the entire button area is clickable */
    position: relative !important;
    z-index: 10 !important;
  }
  
  /* Fix for external links */
  a[href^="http"] {
    -webkit-tap-highlight-color: rgba(255, 76, 36, 0.2) !important;
  }
  
  /* Fix for mailto links */
  a[href^="mailto"] {
    -webkit-tap-highlight-color: rgba(255, 76, 36, 0.2) !important;
  }
}
  
  .case-study-btn,
  .reference-btn {
    min-height: 40px !important;
    padding: 0.8rem 1rem !important;
  }
  
  .cta-container {
    gap: 0.6rem !important;
  }
}

/* Additional mobile link improvements */
@media (max-width: 767px) {
  /* Ensure links work even with scroll events */
  .case-study-btn,
  .reference-btn {
    will-change: transform !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
  }
  
  /* Prevent any scroll interference */
  .case-study-btn:focus,
  .reference-btn:focus {
    outline: 2px solid rgba(255, 76, 36, 0.5) !important;
    outline-offset: 2px !important;
  }
  
  /* Ensure proper touch response */
  .case-study-btn:active,
  .reference-btn:active {
    transform: scale(0.95) !important;
    transition: transform 0.05s ease !important;
  }
}

/* Timeline Station Hover Effects */
.timeline-station:hover {
  background: linear-gradient(135deg, 
    rgba(255, 76, 36, 0.1) 0%, 
    rgba(255, 255, 255, 0.05) 100%);
  transform: translateY(-3px) scale(1.02);
  border-color: rgba(255, 76, 36, 0.4);
  
  box-shadow: 
    0 8px 30px rgba(0, 0, 0, 0.4),
    0 0 30px rgba(255, 76, 36, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.timeline-station:hover .station-dot {
  transform: translateX(-50%) scale(1.2);
  box-shadow: 
    0 0 0 5px rgba(255, 255, 255, 0.3),
    0 6px 20px rgba(0, 0, 0, 0.5);
}

.timeline-station:hover .station-title {
  color: var(--color-primary);
  text-shadow: 
    0 2px 8px rgba(255, 76, 36, 0.8),
    0 0 15px rgba(255, 76, 36, 0.6);
}

/* Timeline Station Animation */
.timeline-station {
  animation: timelineStationFadeIn 0.6s ease-out forwards;
  animation-delay: calc(var(--station-index, 0) * 0.1s);
  opacity: 0;
  transform: translateY(20px);
}

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

/* Timeline Track Animation */
.timeline-track {
  animation: timelineTrackSlideIn 0.8s ease-out forwards;
  animation-delay: 0.3s;
  opacity: 0;
  transform: translateX(-30px);
}

@keyframes timelineTrackSlideIn {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Timeline Section Title Animation */
.timeline-section h2 {
  animation: timelineTitleFadeIn 0.8s ease-out forwards;
  animation-delay: 0.1s;
  opacity: 0;
  transform: translateY(-20px);
}

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

/* Timeline Station Focus States for Accessibility */
.timeline-station:focus-within {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  transform: translateY(-2px) scale(1.01);
}

/* Timeline Station Active States */
.timeline-station:active {
  transform: translateY(-1px) scale(0.98);
  transition: transform 0.1s ease;
}

/* Timeline Station Selection Indicator */
.timeline-station.selected {
  background: linear-gradient(135deg, 
    rgba(255, 76, 36, 0.2) 0%, 
    rgba(255, 255, 255, 0.08) 100%);
  border-color: var(--color-primary);
  transform: translateY(-2px) scale(1.01);
}

.timeline-station.selected .station-dot {
  background: var(--color-primary);
  transform: translateX(-50%) scale(1.3);
}

/* Timeline Progress Indicator */
.timeline-progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.1);
  z-index: 5;
}

.timeline-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary), #ff8c42);
  width: 0%;
  transition: width 0.4s ease;
  border-radius: 0 2px 2px 0;
}

/* Timeline Station Counter */
.timeline-counter {
  position: absolute;
  top: -30px;
  right: 1rem;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text-muted);
  z-index: 10;
}

/* Timeline Station Navigation - REMOVED (consolidated with enhanced version below) */

/* Timeline Station Content Improvements */
.station-content {
  position: relative;
  z-index: 2;
}

.station-content::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, 
    transparent 0%, 
    rgba(255, 255, 255, 0.02) 50%, 
    transparent 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}

.timeline-station:hover .station-content::before {
  opacity: 1;
}

/* Timeline Station Year Badge */
.station-year {
  position: relative;
  background: rgba(255, 255, 255, 0.1);
  padding: 0.3rem 0.6rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(5px);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.5px;
  margin-top: 0.5rem;
}

/* Timeline Station Number Enhancement */
.station-number {
  position: relative;
  background: var(--color-primary);
  color: white;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  box-shadow: 
    0 2px 8px rgba(255, 76, 36, 0.4),
    0 0 20px rgba(255, 76, 36, 0.2);
}

.station-number::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, var(--color-primary), #ff8c42);
  border-radius: 50%;
  z-index: -1;
  opacity: 0.3;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.3;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.5;
  }
}

/* Timeline Instructions */
.timeline-instructions {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  z-index: 10;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

.timeline-instructions p {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin: 0;
  font-family: var(--font-mono);
  letter-spacing: 0.5px;
}

.timeline-instructions:hover {
  opacity: 1;
}

/* Timeline Counter Enhancement */
.timeline-counter {
  position: absolute;
  top: 1rem;
  right: 2rem;
  font-family: var(--font-mono);
  font-size: 0.9rem;
  color: var(--text-muted);
  z-index: 100;
  background: rgba(255, 255, 255, 0.1);
  padding: 0.5rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  transition: all 0.3s ease;
}

.timeline-counter:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.3);
  transform: translateY(-1px);
}

/* Timeline Station Focus States Enhancement */
.timeline-station:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  transform: translateY(-2px) scale(1.01);
}

.timeline-station:focus .station-dot {
  transform: translateX(-50%) scale(1.1);
  box-shadow: 
    0 0 0 4px rgba(255, 76, 36, 0.3),
    0 4px 15px rgba(0, 0, 0, 0.4);
}

/* Timeline Station Selection Enhancement */
.timeline-station.selected {
  background: linear-gradient(135deg, 
    rgba(255, 76, 36, 0.15) 0%, 
    rgba(255, 255, 255, 0.08) 100%);
  border-color: var(--color-primary);
  transform: translateY(-2px) scale(1.01);
  box-shadow: 
    0 8px 30px rgba(0, 0, 0, 0.4),
    0 0 30px rgba(255, 76, 36, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.timeline-station.selected .station-dot {
  background: var(--color-primary);
  transform: translateX(-50%) scale(1.3);
  box-shadow: 
    0 0 0 5px rgba(255, 76, 36, 0.4),
    0 6px 20px rgba(255, 76, 36, 0.6);
}

.timeline-station.selected .station-title {
  color: var(--color-primary);
  text-shadow: 
    0 2px 8px rgba(255, 76, 36, 0.8),
    0 0 15px rgba(255, 76, 36, 0.6);
}

/* Timeline Station Hover Enhancement */
.timeline-station:hover {
  cursor: pointer;
}

.timeline-station:hover .station-content::before {
  opacity: 1;
}

/* Timeline Progress Enhancement */
.timeline-progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.1);
  z-index: 5;
  border-radius: 0 0 2px 2px;
  overflow: hidden;
}

.timeline-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary), #ff8c42);
  width: 0%;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 0 0 2px 2px;
  position: relative;
}

.timeline-progress-bar::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255, 255, 255, 0.3) 50%, 
    transparent 100%);
  animation: progressShine 2s infinite;
}

@keyframes progressShine {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

/* Timeline Navigation Enhancement */
.timeline-nav {
  position: absolute;
  bottom: 3rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 1rem;
  z-index: 10;
}

.timeline-nav-btn {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
  padding: 0.6rem 1.2rem;
  border-radius: 0.8rem;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0.85rem;
  font-weight: 500;
  backdrop-filter: blur(10px);
  font-family: var(--font-primary);
  letter-spacing: 0.5px;
  min-width: 100px;
}

.timeline-nav-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.3);
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.timeline-nav-btn:active:not(:disabled) {
  transform: translateY(0);
}

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

.timeline-nav-btn:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Timeline Station Content Enhancement */
.station-content {
  position: relative;
  z-index: 2;
  width: 100%;
}

.station-content::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, 
    transparent 0%, 
    rgba(255, 255, 255, 0.02) 50%, 
    transparent 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
  border-radius: 0.5rem;
}

/* Timeline Station Year Badge Enhancement */
.station-year {
  position: relative;
  background: rgba(255, 255, 255, 0.1);
  padding: 0.4rem 0.8rem;
  border-radius: 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(5px);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.5px;
  margin-top: 0.8rem;
  transition: all 0.3s ease;
}

.timeline-station:hover .station-year {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.3);
  transform: translateY(-1px);
}

/* Timeline Station Number Enhancement */
.station-number {
  position: relative;
  background: var(--color-primary);
  color: white;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 0.8rem;
  box-shadow: 
    0 2px 8px rgba(255, 76, 36, 0.4),
    0 0 20px rgba(255, 76, 36, 0.2);
  transition: all 0.3s ease;
}

.station-number::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, var(--color-primary), #ff8c42);
  border-radius: 50%;
  z-index: -1;
  opacity: 0.3;
  animation: pulse 2s infinite;
}

.timeline-station:hover .station-number {
  transform: scale(1.1);
  box-shadow: 
    0 4px 12px rgba(255, 76, 36, 0.6),
    0 0 25px rgba(255, 76, 36, 0.4);
}

/* Timeline Station Description Enhancement */
.station-description {
  font-family: var(--font-primary);
  font-size: 0.9rem;
  color: var(--text-muted);
  line-height: 1.4;
  margin: 0;
  text-shadow: 
    0 1px 3px rgba(0, 0, 0, 0.8),
    0 0 6px rgba(0, 0, 0, 0.6);
  /* Show full descriptions without height limit */
  overflow: visible;
  display: block;
  transition: all 0.3s ease;
}

.timeline-station:hover .station-description {
  color: var(--text-secondary);
  text-shadow: 
    0 1px 4px rgba(0, 0, 0, 0.9),
    0 0 8px rgba(0, 0, 0, 0.7);
}

/* Timeline Station Title Enhancement */
.station-title {
  font-family: var(--font-primary);
  font-size: 1.2rem;
  font-weight: 900;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin: 0;
  text-shadow: 
    0 2px 6px rgba(0, 0, 0, 0.9),
    0 0 12px rgba(0, 0, 0, 0.7);
  transition: all 0.3s ease;
}

.timeline-station:hover .station-title {
  color: var(--color-primary);
  text-shadow: 
    0 2px 8px rgba(255, 76, 36, 0.8),
    0 0 15px rgba(255, 76, 36, 0.6);
  transform: scale(1.02);
}

/* Timeline Station Dot Enhancement */
.station-dot {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 24px;
  border-radius: 50%;
  z-index: 3;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 
    0 0 0 3px rgba(255, 255, 255, 0.1),
    0 3px 8px rgba(0, 0, 0, 0.3);
}

.timeline-station:hover .station-dot {
  width: 28px;
  height: 28px;
  top: -14px;
  box-shadow: 
    0 0 0 5px rgba(255, 255, 255, 0.3),
    0 6px 20px rgba(0, 0, 0, 0.5);
  transform: translateX(-50%) scale(1.2);
}

/* Timeline Station Hover Effects Enhancement */
.timeline-station:hover {
  background: linear-gradient(135deg, 
    rgba(255, 76, 36, 0.1) 0%, 
    rgba(255, 255, 255, 0.05) 100%);
  transform: translateY(-3px) scale(1.02);
  border-color: rgba(255, 76, 36, 0.4);
  
  box-shadow: 
    0 8px 30px rgba(0, 0, 0, 0.4),
    0 0 30px rgba(255, 76, 36, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

/* Timeline Station Animation Enhancement */
.timeline-station {
  animation: timelineStationFadeIn 0.6s ease-out forwards;
  animation-delay: calc(var(--station-index, 0) * 0.1s);
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Timeline Track Animation Enhancement */
.timeline-track {
  animation: timelineTrackSlideIn 0.8s ease-out forwards;
  animation-delay: 0.3s;
  opacity: 0;
  transform: translateX(-30px);
}

@keyframes timelineTrackSlideIn {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Timeline Section Title Animation Enhancement */
.timeline-section h2 {
  animation: timelineTitleFadeIn 0.8s ease-out forwards;
  animation-delay: 0.1s;
  opacity: 0;
  transform: translateY(-20px);
}

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

/* Timeline Pulse Animation Enhancement */
@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.3;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.5;
  }
}

/* =============================================================================
   SCROLL-ACTIVATED TIMELINE ANIMATIONS
   ============================================================================= */

/* Initial state for timeline stations */
.timeline-station {
  opacity: 0;
  transform: translateY(30px) scale(0.95);
  transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animation when station comes into view */
.timeline-station.animate-in {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Staggered animation delays for each station */
.timeline-station:nth-child(1).animate-in {
  transition-delay: 0.1s;
}

.timeline-station:nth-child(2).animate-in {
  transition-delay: 0.2s;
}

.timeline-station:nth-child(3).animate-in {
  transition-delay: 0.3s;
}

.timeline-station:nth-child(4).animate-in {
  transition-delay: 0.4s;
}

.timeline-station:nth-child(5).animate-in {
  transition-delay: 0.5s;
}

/* Timeline track scroll animation */
.timeline-track {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-track.animate-in {
  opacity: 1;
  transform: translateY(0);
}

/* Journey title scroll animation */
.timeline-section h2 {
  opacity: 0;
  transform: translateY(-30px);
  transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-section h2.animate-in {
  opacity: 1;
  transform: translateY(0);
}

/* Station content scroll animations */
.station-content {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-station.animate-in .station-content {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

/* Station number scroll animation */
.station-number {
  opacity: 0;
  transform: scale(0.8) rotate(-10deg);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-station.animate-in .station-number {
  opacity: 1;
  transform: scale(1) rotate(0deg);
  transition-delay: 0.3s;
}

/* Station title scroll animation */
.station-title {
  opacity: 0;
  transform: translateX(-20px);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-station.animate-in .station-title {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.4s;
}

/* Station description scroll animation */
.station-description {
  opacity: 0;
  transform: translateX(20px);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-station.animate-in .station-description {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.5s;
}

/* Station year scroll animation */
.station-year {
  opacity: 0;
  transform: scale(0.9);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-station.animate-in .station-year {
  opacity: 1;
  transform: scale(1);
  transition-delay: 0.6s;
}

/* Hover animations for scroll-activated elements */
.timeline-station.animate-in:hover {
  transform: translateY(-5px) scale(1.02);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-station.animate-in:hover .station-number {
  transform: scale(1.1) rotate(5deg);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-station.animate-in:hover .station-title {
  transform: translateX(5px);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Progress indicator scroll animation */
.timeline-progress {
  opacity: 0;
  transform: scaleX(0);
  transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: left;
}

.timeline-progress.animate-in {
  opacity: 1;
  transform: scaleX(1);
}

/* Counter scroll animation */
.timeline-counter {
  opacity: 0;
  transform: translateX(20px);
  transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-counter.animate-in {
  opacity: 1;
  transform: translateX(0);
}

/* Navigation buttons scroll animation */
.timeline-nav {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-nav.animate-in {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.8s;
}

/* Instructions scroll animation */
.timeline-instructions {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-instructions.animate-in {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 1s;
}

/* Mobile-specific scroll animations */
@media (max-width: 767px) {
  .timeline-station {
    transform: translateY(20px) scale(0.9);
  }
  
  .timeline-station.animate-in {
    transform: translateY(0) scale(1);
  }
  
  /* Faster animations on mobile */
  .timeline-station,
  .station-content,
  .station-number,
  .station-title,
  .station-description,
  .station-year {
    transition-duration: 0.4s;
  }
  
  /* Reduced delays for mobile */
  .timeline-station:nth-child(1).animate-in { transition-delay: 0.05s; }
  .timeline-station:nth-child(2).animate-in { transition-delay: 0.1s; }
  .timeline-station:nth-child(3).animate-in { transition-delay: 0.15s; }
  .timeline-station:nth-child(4).animate-in { transition-delay: 0.2s; }
  .timeline-station:nth-child(5).animate-in { transition-delay: 0.25s; }
  
  .timeline-station.animate-in .station-content { transition-delay: 0.1s; }
  .timeline-station.animate-in .station-number { transition-delay: 0.15s; }
  .timeline-station.animate-in .station-title { transition-delay: 0.2s; }
  .timeline-station.animate-in .station-description { transition-delay: 0.25s; }
  .timeline-station.animate-in .station-year { transition-delay: 0.3s; }
}

/* Ultra-small device optimizations */
@media (max-width: 479px) {
  .timeline-station,
  .station-content,
  .station-number,
  .station-title,
  .station-description,
  .station-year {
    transition-duration: 0.3s;
  }
  
  /* Even faster animations for tiny screens */
  .timeline-station:nth-child(1).animate-in { transition-delay: 0.03s; }
  .timeline-station:nth-child(2).animate-in { transition-delay: 0.06s; }
  .timeline-station:nth-child(3).animate-in { transition-delay: 0.09s; }
  .timeline-station:nth-child(4).animate-in { transition-delay: 0.12s; }
  .timeline-station:nth-child(5).animate-in { transition-delay: 0.15s; }
}

/* Landscape mobile optimizations */
@media (max-width: 767px) and (orientation: landscape) {
  .timeline-station {
    transform: translateY(15px) scale(0.95);
  }
  
  .timeline-station.animate-in {
    transform: translateY(0) scale(1);
  }
  
  /* Medium speed for landscape */
  .timeline-station,
  .station-content,
  .station-number,
  .station-title,
  .station-description,
  .station-year {
    transition-duration: 0.5s;
  }
}

/* =============================================================================
   TIMELINE MODAL (Mobile)
   ============================================================================= */
#timeline-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: none;
  z-index: 10000;
  width: 100vw;
  height: 100vh;
}

#timeline-modal.is-open,
#timeline-modal[aria-hidden="false"] {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#timeline-modal .timeline-modal__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 1;
}

#timeline-modal .timeline-modal__content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

#timeline-modal .timeline-modal__body {
  background: rgba(20, 20, 20, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  border-radius: 1.5rem;
  width: calc(100vw - 2rem);
  max-width: 720px;
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: 2rem;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  pointer-events: auto;
  position: relative;
  z-index: 10;
  box-shadow: 
    0 20px 60px rgba(0, 0, 0, 0.8),
    0 0 0 1px rgba(255, 255, 255, 0.1);
}

.timeline-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: bold;
  z-index: 20;
  transition: all 0.2s ease;
}

.timeline-modal__close:hover {
  background: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.4);
  transform: scale(1.1);
}

.timeline-modal__close:active {
  transform: scale(0.95);
}

/* Mobile styles */
@media (max-width: 768px) {
  #timeline-modal .timeline-modal__body {
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
    max-height: calc(100vh - 1rem);
    padding: 1.5rem;
    margin: 0.5rem;
    border-radius: 1rem;
  }

  .timeline-modal__close {
    top: 0.8rem;
    right: 0.8rem;
    width: 3rem;
    height: 3rem;
    font-size: 1.6rem;
  }
}

/* Small screens */
@media (max-width: 480px) {
  #timeline-modal .timeline-modal__body {
    width: calc(100vw - 0.5rem);
    max-height: calc(100vh - 0.5rem);
    padding: 1rem;
    border-radius: 0.8rem;
  }
}

#timeline-modal.is-open,
#timeline-modal[aria-hidden="false"] {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#timeline-modal .timeline-modal__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1;
  pointer-events: auto;
}

#timeline-modal .timeline-modal__content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

#timeline-modal .timeline-modal__body {
  background: rgba(0, 0, 0, 0.95);
  border: none;
  color: #fff;
  border-radius: 0;
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  max-height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 3rem 2rem;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  pointer-events: auto;
  position: relative;
  z-index: 10;
  box-shadow: none;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.timeline-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: bold;
  z-index: 1003;
  pointer-events: auto;
  transition: all 0.2s ease;
}

.timeline-modal__close:hover {
  background: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.4);
  transform: scale(1.1);
}

.timeline-modal__close:active {
  transform: scale(0.95);
}

body.modal-open {
  overflow: hidden;
  touch-action: none;
}

/* Simple text-based modal content */
.modal-text-content {
  max-width: 800px;
  margin: 0 auto;
  padding: 2rem 0;
  line-height: 1.6;
}

.modal-title {
  font-size: 2.5rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 2rem 0;
  text-align: center;
  line-height: 1.2;
}

.modal-description {
  font-size: 1.2rem;
  color: #e0e0e0;
  margin: 0 0 3rem 0;
  text-align: left;
  line-height: 1.7;
}

.modal-meta {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.modal-number,
.modal-year {
  font-size: 1rem;
  color: #888;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Mobile responsive text modal */
@media (max-width: 768px) {
  .modal-text-content {
    padding: 1rem 0;
    max-width: 100%;
  }
  
  .modal-title {
    font-size: 2rem;
    margin-bottom: 1.5rem;
  }
  
  .modal-description {
    font-size: 1.1rem;
    margin-bottom: 2rem;
  }
  
  .modal-meta {
    gap: 1.5rem;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
  }
  
  .modal-number,
  .modal-year {
    font-size: 0.9rem;
  }
}

/* Compact mobile timeline cards */
@media (max-width: 768px) {
  .timeline-station {
    padding: 0.8rem !important;
    min-height: auto !important;
  }
  .timeline-station .station-content {
    gap: 0.5rem !important;
  }
  .timeline-station .station-description {
    display: none !important;
  }
}

/* Enhanced mobile responsiveness for all screen sizes */
@media (max-width: 768px) {
  #timeline-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 10000 !important;
    padding: 0.5rem !important;
  }
  
  #timeline-modal.is-open {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
  }
  
  #timeline-modal .timeline-modal__body {
    width: calc(100vw - 1rem) !important;
    max-width: calc(100vw - 1rem) !important;
    max-height: calc(100vh - 1rem) !important;
    padding: 1.5rem !important;
    margin: 0.5rem !important;
    position: relative !important;
    z-index: 10 !important;
    background: rgba(20, 20, 20, 0.98) !important;
    border-radius: 1rem !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
  }
}

/* Small mobile devices (phones in portrait) */
@media (max-width: 480px) {
  #timeline-modal .timeline-modal__body {
    padding: 1rem !important;
    border-radius: 0.8rem !important;
    width: calc(100vw - 0.5rem) !important;
    max-height: calc(100vh - 0.5rem) !important;
  }
  
  .timeline-modal__close {
    top: 0.8rem !important;
    right: 0.8rem !important;
    width: 3rem !important;
    height: 3rem !important;
    font-size: 1.6rem !important;
    min-width: 44px !important; /* iOS touch target minimum */
    min-height: 44px !important;
  }
  
  /* Timeline stations touch targets */
  .timeline-station {
    min-height: 60px !important;
    padding: 1rem !important;
    margin-bottom: 0.8rem !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }
  
  /* Improved text sizes for small screens */
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-title {
    font-size: clamp(1.2rem, 5vw, 1.6rem) !important;
  }
  
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-description {
    font-size: clamp(0.9rem, 4vw, 1rem) !important;
    line-height: 1.5 !important;
  }
}

/* Landscape mobile devices */
@media (max-width: 768px) and (orientation: landscape) {
  #timeline-modal .timeline-modal__body {
    max-height: calc(100vh - 0.5rem) !important;
    padding: 1rem !important;
    overflow-y: auto !important;
  }
  
  #timeline-modal .timeline-modal__body .station-content {
    gap: 0.8rem !important;
    padding: 1rem !important;
  }
}

/* Ultra-small landscape screens (like iPhone SE landscape) */
@media (max-width: 768px) and (orientation: landscape) and (max-height: 500px) {
  #timeline-modal .timeline-modal__body {
    padding: 0.8rem !important;
    max-height: calc(100vh - 0.3rem) !important;
  }
  
  #timeline-modal .timeline-modal__body .station-content {
    gap: 0.5rem !important;
    padding: 0.8rem !important;
  }
  
  .timeline-modal__close {
    top: 0.5rem !important;
    right: 0.5rem !important;
    width: 2rem !important;
    height: 2rem !important;
    font-size: 1.2rem !important;
  }
}

/* Ensure modal is visible on all screen sizes */
@media (min-width: 769px) {
  #timeline-modal.is-open,
  #timeline-modal[aria-hidden="false"] {
    display: flex !important;
  }
}

/* Force modal content visibility - highest priority */
#timeline-modal .timeline-modal__body .timeline-station--in-modal .station-title {
    font-size: 1.5rem !important;
    position: relative !important;
    z-index: 30 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--color-primary) !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 1rem !important;
  }
  
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-description {
    font-size: 1rem !important;
    position: relative !important;
    z-index: 30 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--text-secondary) !important;
    line-height: 1.6 !important;
    margin-bottom: 1.5rem !important;
    text-align: left !important;
    max-width: 100% !important;
  }
  
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-number {
    font-size: 2rem !important;
    width: 3rem !important;
    height: 3rem !important;
    margin: 0 auto 1rem auto !important;
    position: relative !important;
    z-index: 30 !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 50% !important;
    color: var(--color-primary) !important;
    font-weight: 700 !important;
  }
  
  #timeline-modal .timeline-modal__body .timeline-station--in-modal .station-year {
    font-size: 1rem !important;
    color: var(--text-muted) !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    position: relative !important;
    z-index: 30 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    text-align: center !important;
  }
  
  .timeline-modal__note {
    position: relative !important;
    z-index: 30 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

/* Ensure modal is visible on all screen sizes - REMOVED (duplicate) */

/* Force modal content visibility - highest priority */
#timeline-modal.is-open .timeline-modal__body,
#timeline-modal[aria-hidden="false"] .timeline-modal__body {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

#timeline-modal.is-open .timeline-station--in-modal,
#timeline-modal[aria-hidden="false"] .timeline-station--in-modal {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

#timeline-modal.is-open .station-content,
#timeline-modal[aria-hidden="false"] .station-content {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

#timeline-modal.is-open .station-title,
#timeline-modal.is-open .station-description,
#timeline-modal.is-open .station-number,
#timeline-modal.is-open .station-year,
#timeline-modal[aria-hidden="false"] .station-title,
#timeline-modal[aria-hidden="false"] .station-description,
#timeline-modal[aria-hidden="false"] .station-number,
#timeline-modal[aria-hidden="false"] .station-year {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #ffffff !important;
}

