:root{
  --ink:#0b0f18;
  --nav:#0f172a;
  --card:#121826;
  --line:rgba(255,255,255,.10);
  --muted:rgba(255,255,255,.72);
  --muted2:rgba(255,255,255,.55);
  --grad:linear-gradient(90deg,#ff3cac,#00f2ff,#7b2ff7);
  --grad2:linear-gradient(45deg,#ff3cac,#00f2ff);
  --bass:0.35; /* driven by JS when audio is provided */
}
html,body{height:100%;}
body{
  margin:0;
  font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--ink);
  color:#fff;
}
a{color:inherit;text-decoration:none}
.text-muted{color:var(--muted)!important}
.text-muted2{color:var(--muted2)!important}

/* NAV */
.navbar-lux{
  background:transparent;
  transition:all .35s ease;
  padding:18px 0;
  backdrop-filter:saturate(1.2);
}
.navbar-lux.scrolled{
  background:rgba(15,23,42,.92);
  box-shadow:0 20px 50px rgba(0,0,0,.55);
  padding:10px 0;
}
.dropdown-menu{
  background:rgba(18,24,38,.96);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  overflow:hidden;
}
.dropdown-item{color:#fff}
.dropdown-item:hover{background:rgba(255,255,255,.08)}

/* HERO */
.hero{position:relative; min-height:100vh; overflow:hidden;}
.video-wrap{position:absolute; inset:0; z-index:0;}
.video-wrap video{
  position:absolute; top:50%; left:50%;
  width:120%; height:120%;
  transform:translate(-50%,-50%);
  object-fit:cover;
  filter:contrast(1.42) saturate(1.35) brightness(.90);
}
.video-overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(1200px 600px at 70% 22%, rgba(255,60,172,.30), transparent 60%),
    radial-gradient(980px 560px at 22% 62%, rgba(0,242,255,.26), transparent 62%),
    radial-gradient(140% 110% at 50% 50%, rgba(0,0,0,.20), rgba(0,0,0,.96));
}
/* Neon edge vignette */
.neon-edge{
  position:absolute; inset:0;
  pointer-events:none;
  background:
    radial-gradient(1200px 700px at 50% 50%,
      transparent 48%,
      rgba(0,242,255,.18) 70%,
      rgba(255,60,172,.18) 92%);
  mix-blend-mode:screen;
  opacity:.85;
  filter:blur(10px);
}
/* Corner beams */
.beams::before,.beams::after{
  content:'';
  position:absolute;
  inset:-25%;
  pointer-events:none;
  z-index:2;
  mix-blend-mode:screen;
  filter:blur(10px);
  opacity:.55;
  animation:beamSweep 8.2s ease-in-out infinite;
}
.beams::before{
  background:conic-gradient(from 215deg at 10% 12%,
    rgba(0,242,255,0),
    rgba(0,242,255,.40),
    rgba(0,242,255,0) 42%);
}
.beams::after{
  background:conic-gradient(from 330deg at 92% 10%,
    rgba(255,60,172,0),
    rgba(255,60,172,.34),
    rgba(255,60,172,0) 42%);
  animation-duration:9.4s;
  opacity:.48;
}
@keyframes beamSweep{
  0%,100%{transform:rotate(-3deg) translateY(0); opacity:.38;}
  45%{transform:rotate(6deg) translateY(1%); opacity:.62;}
  70%{transform:rotate(-7deg) translateY(-1%); opacity:.52;}
}

.hero-content{
  position:relative;
  z-index:5;
  min-height:100vh;
  display:flex;
  align-items:center;
  text-align:left;
}
.kicker{
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  font-size:.78rem;
  color:rgba(255,255,255,.72);
}
.gradient-text{
  background:var(--grad);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-size:300% 300%;
  animation:grad 6.5s ease infinite;
}
@keyframes grad{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* Bass glow driven by CSS var --bass (set by JS) */
.bass-glow{
  --b: max(0.18, var(--bass));
  text-shadow:
    0 0 calc(24px * var(--b)) rgba(255,60,172,.85),
    0 0 calc(46px * var(--b)) rgba(0,242,255,.80),
    0 18px 70px rgba(0,0,0,.55);
  transform:scale(calc(1 + (var(--b) * .06)));
  transition:transform .10s linear;
}

.btn-grad{
  background:var(--grad2);
  border:none;
  color:#fff;
  border-radius:14px;
  padding:.85rem 1.15rem;
  font-weight:800;
  box-shadow:0 18px 55px rgba(0,0,0,.45);
}
.btn-grad:hover{filter:brightness(1.05)}
.btn-outline-ink{
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  border-radius:14px;
  padding:.85rem 1.15rem;
  font-weight:800;
  background:rgba(0,0,0,.18);
}

/* SECTIONS */
.section{padding:110px 0;}
.glass{
  background:rgba(18,24,38,.78);
  border:1px solid rgba(255,255,255,.10);
  border-radius:22px;
  backdrop-filter: blur(10px) saturate(1.2);
  box-shadow:0 22px 70px rgba(0,0,0,.45);
}
.icon-pill{
  width:42px;height:42px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
}

/* PARALLAX */
.parallax{position:relative; min-height:620px; overflow:hidden;}
.parallax-bg{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  transform:translateY(0) scale(1.12);
  will-change: transform;
}
.parallax-overlay{
  position:absolute; inset:0;
  background:linear-gradient(rgba(0,0,0,.48), rgba(0,0,0,.88));
}

/* PACKAGES */
.package-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media (max-width: 992px){ .package-grid{grid-template-columns:1fr; } }
.package-card{
  position:relative;
  padding:34px;
  border-radius:26px;
  background:rgba(18,24,38,.82);
  border:1px solid rgba(255,255,255,.10);
  transform-style:preserve-3d;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  overflow:hidden;
}
.package-card::before{
  content:'';
  position:absolute; inset:-40%;
  background:radial-gradient(circle at 30% 20%, rgba(255,60,172,.20), transparent 40%),
             radial-gradient(circle at 70% 40%, rgba(0,242,255,.18), transparent 44%);
  transform:translateZ(-1px);
  opacity:.9;
}
.package-card:hover{
  box-shadow:0 28px 70px rgba(0,0,0,.65);
  border-color:rgba(255,255,255,.18);
}
.pkg-title{font-size:1.55rem; font-weight:900; margin:0;}
.pkg-sub{color:rgba(255,255,255,.72); margin-top:6px;}
.pkg-list{margin:18px 0 0; padding-left:18px; color:rgba(255,255,255,.78);}
.pkg-list li{margin:.35rem 0;}
.pkg-cta{margin-top:18px; display:flex; gap:10px; flex-wrap:wrap;}
.ribbon{
  position:absolute; top:18px; right:-44px;
  transform:rotate(18deg);
  background:var(--grad2);
  padding:10px 64px;
  font-weight:900;
  font-size:.78rem;
  letter-spacing:.10em;
  box-shadow:0 0 18px rgba(0,242,255,.35);
  animation:ribbonGlow 1.8s ease-in-out infinite alternate;
}
@keyframes ribbonGlow{
  from{filter:brightness(1); box-shadow:0 0 16px rgba(255,60,172,.35);}
  to{filter:brightness(1.08); box-shadow:0 0 28px rgba(0,242,255,.55);}
}

/* FOOTER */
footer{
  background:#0f172a;
  border-top:1px solid rgba(255,255,255,.10);
  padding:64px 0;
}
.footer-logo{max-width:180px; height:auto; opacity:.95;}
.footer-links a{color:rgba(255,255,255,.72);}
.footer-links a:hover{color:#fff;}

/* --- Photography Slider Layout --- */
.photo-split {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:40px;
}
.photo-split .photo-slider {
  flex:0 0 50%;
  max-width:50%;
}
.photo-split .photo-content {
  flex:0 0 45%;
  max-width:45%;
}
@media(max-width:992px){
  .photo-split .photo-slider,
  .photo-split .photo-content{
    flex:0 0 100%;
    max-width:100%;
  }
}

/* Ken Burns Effect */
.carousel-item img{
  animation: kenburns 14s ease-in-out infinite alternate;
  transform-origin:center center;
}
@keyframes kenburns{
  0% { transform: scale(1) translate(0,0); }
  100% { transform: scale(1.12) translate(-2%, -2%); }
}

/* Partnership Styling */
.partner-badge{
  display:inline-block;
  padding:8px 18px;
  border-radius:40px;
  background:linear-gradient(45deg,#ff3cac,#00f2ff);
  font-weight:700;
  letter-spacing:.05em;
  font-size:.8rem;
  margin-bottom:20px;
}
.partner-note{
  font-size:.9rem;
  color:rgba(255,255,255,.65);
}
