/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Hide web bottom sheet when native bridge component is active */
[data-bridge-components~="bottom-sheet"] [data-controller~="bridge--bottom-sheet"] {
  display: none !important;
}

/* Hide web floating buttons when native nav bar bridge components are active */
[data-bridge-components~="nav-bar-like"] .camp-detail-back-btn,
[data-bridge-components~="nav-bar-like"] .camp-detail-save-btn,
[data-bridge-components~="nav-bar-share"] .camp-detail-share-btn {
  display: none !important;
}

/* Turbo Frame loading indicator — dims content while a frame is fetching */
turbo-frame[busy] {
  opacity: 0.5;
  pointer-events: none;
  transition: opacity 200ms ease;
  position: relative;
}

/* Hero image placeholder shimmer + fade-in (#924) */
.hero-image-placeholder {
  background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.hero-image-fade {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.hero-image-fade.loaded {
  opacity: 1;
}
