/* Global polish */
body { background: #0b0f18; }
.glassy-nav { backdrop-filter: blur(10px); background: rgba(20,25,35,0.5); }
.neon-card { background: linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.btn-glow { position: relative; overflow: hidden; }
.btn-glow::after { content: ""; position: absolute; inset: -40%; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.25), transparent 60%); transform: translateX(-100%); transition: transform .6s ease; }
.btn-glow:hover::after { transform: translateX(100%); }
.gradient-heading { background: linear-gradient(90deg,#6ee7ff,#a78bfa,#f472b6); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Flash shimmer */
.shimmer {
  background: linear-gradient(90deg, rgba(255,255,255,0.15), rgba(255,255,255,0.35), rgba(255,255,255,0.15));
  background-size: 200% 100%;
  animation: shimmer 2.5s infinite;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Fullscreen carousel */
.no-padding .container-fluid { padding: 0 !important; }
.fullscreen-container { position: relative; height: calc(100vh - 66px); }
.carousel, .carousel-inner, .carousel-item, .slide-bg { height: 100%; }
.slide-bg {
  background-size: cover; background-position: center; width: 100%; height: 100%;
  filter: brightness(0.9) saturate(1.05);
}
.kenburns { animation: kenburns 12s ease-in-out infinite alternate; }
@keyframes kenburns {
  from { transform: scale(1) translate(0,0); }
  to   { transform: scale(1.12) translate(-1.5%, -1.5%); }
}

.caption-glass {
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
}
.float-pulse { animation: float 3s ease-in-out infinite; }
@keyframes float {
  0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0); }
}
.animated-title { animation: fadeInUp .7s ease both; }
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.bounce-in { animation: bounceIn .8s ease; }
@keyframes bounceIn {
  0%{transform:scale(.9);opacity:.2} 60%{transform:scale(1.05);opacity:1} 100%{transform:scale(1)}
}

.store-badge {
  position: absolute; top: 12px; left: 12px; padding: 10px 14px; border-radius: 16px;
  background: rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(6px);
}
.login-hint { position: absolute; bottom: 16px; right: 16px; }

/* Detail page */
.detail-card { background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); }
.detail-image { height: 100%; min-height: 340px; background-size: cover; background-position: center; }

/* Modal */
.glassy { background: rgba(20,25,35,0.7); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.15); }

/* Mobile tweaks */
@media (max-width: 576px) {
  .caption-glass { padding: 1rem !important; }
  .display-6 { font-size: 1.5rem; }
}
