html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

#loader {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9999 !important;
  background: #091A30 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
  gap: 18px !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .7s cubic-bezier(.16,.8,.24,1), visibility .7s cubic-bezier(.16,.8,.24,1) !important;
}

#loader.hide {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Capt. Palacio loader logo */
#loader .loader-icon {
  width: 90px !important;
  height: 90px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  animation: cpvm-loader-pulse 1.6s ease-in-out infinite;
}
#loader .loader-icon .loader-logo {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 0 18px rgba(212,175,55,.35)) !important;
}

#loader .loader-text {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: .72rem !important;
  line-height: 1.2 !important;
  letter-spacing: .3em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.55) !important;
}

@keyframes cpvm-loader-pulse {
  0%, 100% { transform: scale(1); opacity: .7; }
  50% { transform: scale(1.12); opacity: 1; }
}

#progress {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  height: 3px !important;
  width: 0%;
  background: linear-gradient(90deg, #D4AF37, #F3DA8A) !important;
  z-index: 1001 !important;
  transition: width .1s linear !important;
  pointer-events: none !important;
}

#rail {
  position: fixed !important;
  left: 38px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 500 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 26px !important;
  pointer-events: auto !important;
}

#rail .rail-item {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  cursor: pointer !important;
}

#rail .rail-dot {
  width: 9px !important;
  height: 9px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(13,43,82,.35) !important;
  transition: all .4s cubic-bezier(.16,.8,.24,1) !important;
  flex-shrink: 0 !important;
  position: relative !important;
  background: transparent !important;
}

#rail .rail-dot::after {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid transparent;
  transition: border-color .4s cubic-bezier(.16,.8,.24,1);
}

#rail .rail-label {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: .66rem !important;
  line-height: 1.2 !important;
  letter-spacing: .14em !important;
  color: rgba(27,27,27,.42) !important;
  opacity: 0;
  transform: translateX(-8px);
  transition: all .4s cubic-bezier(.16,.8,.24,1) !important;
  white-space: nowrap !important;
  text-transform: uppercase !important;
}

#rail .rail-item.active .rail-dot {
  background: #D4AF37 !important;
  border-color: #D4AF37 !important;
  box-shadow: 0 0 0 4px rgba(212,175,55,.14) !important;
}

#rail .rail-item.active .rail-label {
  opacity: 1 !important;
  transform: translateX(0) !important;
  color: #0D2B52 !important;
  font-weight: 600 !important;
}

#rail .rail-item:hover .rail-label,
#rail .rail-item:focus-visible .rail-label {
  opacity: 1 !important;
  transform: translateX(0) !important;
}

#rail .rail-item:focus-visible {
  outline: 2px solid #D4AF37 !important;
  outline-offset: 6px;
}

@media (max-width: 1180px) {
  #rail { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  #loader .loader-logo,
  #loader .loader-icon { animation: none !important; }
  html { scroll-behavior: auto !important; }
  #loader, #rail .rail-label, #rail .rail-dot { transition-duration: .001ms !important; }
}

/* Public/editor visibility hardening for the converted Marquee block. */
body .entry-content > .cpvm,
body .entry-content .wp-block-captain-palacio-visual-marquee > .cpvm,
.wp-block-captain-palacio-visual-marquee,
.cpvm {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  min-height: 54px !important;
  height: auto !important;
  background: #0D2B52 !important;
  color: #FFFFFF !important;
  overflow: hidden !important;
}
.cpvm__viewport {
  display: block !important;
  min-height: 54px !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.cpvm__track {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}
