/* KarivaPlay Master UI layer — additive, reversible visual system */
:root {
  --kp-glow: rgba(229, 9, 20, .32);
  --kp-glass: rgba(22, 22, 34, .72);
  --kp-glass-border: rgba(255,255,255,.10);
  --kp-shadow: 0 18px 60px rgba(0,0,0,.28);
}
body::before, body::after {
  content: ""; position: fixed; pointer-events: none; z-index: -1;
  width: 42vw; height: 42vw; border-radius: 999px; filter: blur(70px); opacity: .16;
  animation: kpFloat 16s ease-in-out infinite alternate;
}
body::before { top: -18vw; left: -12vw; background: #e50914; }
body::after { right: -16vw; bottom: 4vh; background: #6d28d9; animation-delay: -7s; }
.topbar, .bottom-nav { border-color: var(--kp-glass-border); box-shadow: 0 8px 30px rgba(0,0,0,.14); }
.topbar { background: linear-gradient(90deg, rgba(10,10,15,.88), rgba(25,18,30,.72)); }
.brand-logo { box-shadow: 0 0 0 1px rgba(255,255,255,.14), 0 8px 28px var(--kp-glow); animation: kpLogoPulse 3.2s ease-in-out infinite; }
.icon-btn, .btn-secondary, .admin-form-card, .stat-card, .admin-item, .modal-content {
  border-color: var(--kp-glass-border); box-shadow: var(--kp-shadow);
}
.icon-btn, .btn-secondary, .admin-form-card, .stat-card, .admin-item {
  background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
.icon-btn:hover, .btn-primary:hover, .hero-btn:hover, .movie-card:hover { transform: translateY(-2px); }
.icon-btn:hover { box-shadow: 0 0 0 1px rgba(255,255,255,.14), 0 10px 30px var(--kp-glow); }
.btn-primary { position: relative; overflow: hidden; box-shadow: 0 12px 34px var(--kp-glow); }
.btn-primary::after { content:""; position:absolute; inset:0; transform:translateX(-110%); background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent); transition:transform .55s; }
.btn-primary:hover::after { transform:translateX(110%); }
.hero::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(115deg,rgba(229,9,20,.14),transparent 40%,rgba(109,40,217,.12)); mix-blend-mode:screen; }
.hero-content { filter: drop-shadow(0 12px 24px rgba(0,0,0,.35)); }
.movie-card .poster { box-shadow: 0 12px 28px rgba(0,0,0,.35); transition: transform .25s, box-shadow .25s; }
.movie-card:hover .poster { box-shadow: 0 18px 38px rgba(0,0,0,.52), 0 0 0 1px rgba(255,255,255,.10); }
.page-header h1 { letter-spacing: -.7px; text-shadow: 0 4px 20px rgba(0,0,0,.18); }
.modal { background: rgba(0,0,0,.72); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.modal-content { background: linear-gradient(145deg, rgba(20,20,30,.96), rgba(12,12,18,.98)); }
.toast { box-shadow: 0 12px 36px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.08); backdrop-filter: blur(16px); }
@keyframes kpFloat { from { transform: translate3d(-4vw, 0, 0) scale(1); } to { transform: translate3d(5vw, 5vh, 0) scale(1.12); } }
@keyframes kpLogoPulse { 0%,100% { box-shadow: 0 0 0 1px rgba(255,255,255,.14), 0 8px 28px var(--kp-glow); } 50% { box-shadow: 0 0 0 1px rgba(255,255,255,.22), 0 10px 40px rgba(229,9,20,.52); } }
@media (max-width: 600px) { body::before, body::after { width: 70vw; height: 70vw; filter: blur(55px); opacity: .12; } .movie-card:hover, .icon-btn:hover, .btn-primary:hover { transform: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
