/* ==========================================================================
   Journey Line - Golden Path Styling
   Used in Hero section and Journey Map
   ========================================================================== */

:root {
  /* Golden ribbon colors */
  --journey-line-color: #f0d590;
  --journey-line-color-light: #faecc5;
  --journey-line-color-dark: #d4a84b;
  --journey-line-stroke-width: 5px;
}

/* ==========================================================================
   Base Journey Line
   ========================================================================== */

.journey-line {
  position: relative;
  width: 100%;
  pointer-events: none;
  overflow: visible;
  z-index: 1;
}

.journey-line svg {
  display: block;
  width: 100%;
  height: auto;
}

.journey-line path {
  fill: none;
  stroke: var(--journey-line-color);
  stroke-width: var(--journey-line-stroke-width);
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ==========================================================================
   Hero Exit Line - Small Hint Fading Off-Screen
   ========================================================================== */

.hero .journey-line--hero-exit {
  position: absolute;
  bottom: -12px;
  right: 10%;
  width: 35%;
  max-width: 350px;
  height: 45px;
  z-index: 5;
  pointer-events: none;
  opacity: 0.45;
  mask-image: linear-gradient(to left, black 50%, transparent 100%);
  -webkit-mask-image: linear-gradient(to left, black 50%, transparent 100%);
}

.hero .journey-line--hero-exit svg {
  width: 100%;
  height: 100%;
}

/* ==========================================================================
   Desktop/Mobile SVG Switching
   ========================================================================== */

.journey-line__svg--mobile {
  display: none;
}

.journey-line__svg--desktop {
  display: block;
}

@media (max-width: 768px) {
  .journey-line__svg--desktop {
    display: none;
  }

  .journey-line__svg--mobile {
    display: block;
  }
}

/* ==========================================================================
   Scroll Indicator Interaction
   ========================================================================== */

.journey-line--hero-exit.is-highlighted {
  opacity: 0.65;
  transition: opacity 0.3s ease;
}

.journey-line--hero-exit.is-highlighted path {
  stroke: #f8dc9a;
  transition: stroke 0.3s ease;
}

@keyframes journey-line-flash {
  0% { opacity: 0.45; }
  50% { opacity: 0.8; }
  100% { opacity: 0.45; }
}

.journey-line--hero-exit.is-flashing {
  animation: journey-line-flash 0.4s ease-out;
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 1024px) {
  :root {
    --journey-line-stroke-width: 4px;
  }

  .hero .journey-line--hero-exit {
    width: 30%;
    max-width: 280px;
    height: 38px;
    opacity: 0.4;
  }
}

@media (max-width: 768px) {
  :root {
    --journey-line-stroke-width: 3px;
  }

  .hero .journey-line--hero-exit {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 35%;
    max-width: 140px;
    height: 28px;
    bottom: -8px;
    opacity: 0.35;
  }
}

@media (max-width: 480px) {
  .hero .journey-line--hero-exit {
    width: 30%;
    max-width: 100px;
    height: 22px;
    bottom: -6px;
    opacity: 0.3;
  }
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .journey-line--hero-exit.is-flashing {
    animation: none;
  }

  .journey-line--hero-exit.is-highlighted {
    transition: none;
  }
}

@media (hover: none) and (pointer: coarse) {
  .journey-line--hero-exit.is-flashing {
    animation: none;
  }
}
