:root{
  --night:#100600;
  --night-2:#1A0800;
  --night-3:#2A1200;
  --saffron:#EA5A00;
  --saffron-deep:#C04E00;
  --gold:#FFB300;
  --gold-soft:#F7C76B;
  --cream:#FFF8F0;
  --ink:var(--cream);
  --muted:rgba(255,248,240,.72);
  --faint:rgba(255,248,240,.5);
  --line:rgba(255,179,0,.22);
  --grad-cta:linear-gradient(135deg,#FFB300 0%,#EA5A00 55%,#C04E00 100%);
  --section-pad:clamp(96px, 12vw, 120px);
  --content-max:1140px;
  --cursor-dandiya: url("/assets/cursors/dandiya-cursor.png") 32 32, auto;
  --cursor-dandiya-pointer: url("/assets/cursors/dandiya-cursor.png") 32 32, pointer;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:110px; cursor:var(--cursor-dandiya);}
section[id], footer[id]{scroll-margin-top:110px;}
body{
  background:linear-gradient(180deg, var(--night) 0%, var(--night-2) 40%, var(--night-3) 100%);
  color:var(--ink);
  font-family:var(--font-body), "Open Sans", Calibri, sans-serif;
  overflow-x:clip;
  min-height:100vh;
  cursor:var(--cursor-dandiya);
}
a{color:inherit; text-decoration:none; cursor:var(--cursor-dandiya-pointer);}

/* Typography system: "Open Sans", Calibri everywhere */
h1, h2,
.hero-title, .about-title, .section-title, .event-journey-title,
.artists-title, .pass-name, .footer-brand, .policy-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:400;
}
h3, h4,
.section-eyebrow, .nav-links a, .brand-tag, .mobile-title,
.about-pillar-copy h3, .why-feature h3, .flow-card h3,
.faq-q, .contact-card h3, .tb-mood-cell h3{
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
}
p, li, label, input, textarea, button, .btn-primary, .btn-ghost,
.nav-cta, .hero-meta, .about-lead, .footer-meta-line{
  font-family:var(--font-body), "Open Sans", Calibri, sans-serif;
}
.btn-primary, .btn-ghost, .nav-cta, .pay-btn, .tap-music-fab-copy strong{
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
}
img{display:block; max-width:100%;}

@media (pointer: fine){
  button, [role="button"], .btn-primary, .btn-ghost, .nav-cta, .pay-btn,
  .music-fab, .tap-music-fab, .wa-fab, .burger, .mobile-close, .faq-q,
  .tb-nav, .tb-dot, input[type="submit"], label[for]{
    cursor:var(--cursor-dandiya-pointer);
  }
}
@media (pointer: coarse){
  html, body, a, button{cursor:auto;}
}

/* Animated dandiya follower (desktop) */
html.has-dandiya-cursor,
html.has-dandiya-cursor body,
html.has-dandiya-cursor a,
html.has-dandiya-cursor button,
html.has-dandiya-cursor [role="button"],
html.has-dandiya-cursor .btn-primary,
html.has-dandiya-cursor .btn-ghost,
html.has-dandiya-cursor .nav-cta,
html.has-dandiya-cursor .pay-btn,
html.has-dandiya-cursor .music-fab,
html.has-dandiya-cursor .tap-music-fab,
html.has-dandiya-cursor .wa-fab,
html.has-dandiya-cursor input,
html.has-dandiya-cursor textarea,
html.has-dandiya-cursor label{
  cursor:none !important;
}
.dandiya-cursor{
  position:fixed;
  top:0; left:0;
  width:48px; height:48px;
  z-index:9999;
  pointer-events:none;
  will-change:transform;
}
.dandiya-cursor-sway{
  display:block;
  width:100%; height:100%;
  transform-origin:center center;
  animation:dandiya-cursor-wiggle 1.1s ease-in-out infinite;
}
.dandiya-cursor img{
  width:48px; height:48px;
  display:block;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));
  user-select:none;
  -webkit-user-drag:none;
}
@keyframes dandiya-cursor-wiggle{
  0%,100%{transform:rotate(-10deg) translateY(0);}
  50%{transform:rotate(10deg) translateY(-2px);}
}
@media (prefers-reduced-motion: reduce){
  .dandiya-cursor-sway{animation:none;}
}
.dandiya-cursor.is-static .dandiya-cursor-sway{animation:none;}

/* ---------- NAV ---------- */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:28px 4vw 0;
  pointer-events:none;
  transition:padding .3s ease;
}
.site-nav.nav-scrolled{padding:14px 3.5vw 0;}
.site-nav-shell{
  pointer-events:auto;
  position:relative;
  max-width:1120px; margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center; gap:16px;
  padding:10px 14px 10px 12px;
  border-radius:999px;
  background:rgba(16,6,0,.42);
  border:1px solid rgba(255,179,0,.18);
  backdrop-filter:blur(18px) saturate(1.25);
  box-shadow:0 10px 36px rgba(0,0,0,.28);
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease, padding .3s ease;
}
.site-nav.nav-scrolled .site-nav-shell{
  padding:7px 12px 7px 10px;
  background:rgba(16,6,0,.88);
  border-color:rgba(255,179,0,.32);
  box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.scroll-progress{
  position:fixed; top:0; left:0; height:2px; width:0%; z-index:110;
  background:linear-gradient(90deg, #FFB300, #EA5A00, #C04E00);
  box-shadow:0 0 10px rgba(255,179,0,.5);
  pointer-events:none;
}
.brand{
  display:flex; align-items:center; gap:10px;
  justify-self:start;
  min-width:0;
}
.brand-logo-img{
  width:68px;
  height:68px;
  max-width:none;
  object-fit:cover;
  display:block;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.35);
  background:#F2F2F2;
  box-shadow:0 4px 14px rgba(0,0,0,.35);
  filter:none;
  transition:transform .25s ease, width .25s ease, height .25s ease;
}
.brand:hover .brand-logo-img{transform:scale(1.04);}
.site-nav.nav-scrolled .brand-logo-img{width:56px; height:56px;}
.brand-mark{
  display:grid; place-items:center;
  width:42px; height:42px; flex-shrink:0;
  border-radius:50%;
  background:radial-gradient(circle at 40% 35%, rgba(255,179,0,.18), transparent 65%);
  border:1px solid rgba(229,57,53,.35);
  transition:transform .25s ease;
}
.brand:hover .brand-mark{transform:scale(1.05);}
.brand-logo{width:34px; height:34px; display:block;}
.brand-text{display:flex; flex-direction:column; gap:1px; line-height:1.05;}
.brand-name{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700; font-size:clamp(.88rem, 1.8vw, 1.02rem); letter-spacing:.01em;
  white-space:nowrap;
  background:linear-gradient(120deg, #FFF8F0, #FFB300 70%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.brand-tag{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic; font-size:.68rem;
  color:var(--gold-soft); letter-spacing:.04em;
}
.nav-links-wrap{justify-self:center;}
.nav-links{
  list-style:none; display:flex; align-items:center; gap:4px;
  padding:4px; border-radius:999px;
  background:rgba(255,248,240,.04);
  border:1px solid rgba(255,179,0,.1);
}
.nav-links a{
  position:relative;
  display:inline-flex; align-items:center;
  padding:8px 14px; border-radius:999px;
  font-size:.82rem; font-weight:600;
  color:var(--muted);
  letter-spacing:.02em;
  transition:color .2s ease, background .2s ease;
}
.nav-links a::after{
  content:""; position:absolute; left:18%; right:18%; bottom:5px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,179,0,.75), transparent);
  transform:scaleX(0); transform-origin:center;
  transition:transform .25s ease;
}
.nav-links a:hover{
  color:var(--cream);
  background:rgba(255,179,0,.1);
}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-right{
  display:flex; align-items:center; justify-content:flex-end; gap:10px;
  justify-self:end;
}
.nav-cta{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 18px; border-radius:999px;
  background:var(--grad-cta); color:#fff;
  font-weight:700; font-size:.82rem; letter-spacing:.03em;
  box-shadow:0 8px 22px rgba(234,90,0,.28);
  transition:transform .2s, filter .2s, box-shadow .2s;
}
.burger{
  display:none; position:relative;
  width:42px; height:42px;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
  background:rgba(255,248,240,.06);
  border:1px solid rgba(255,179,0,.2);
  border-radius:50%; cursor:var(--cursor-dandiya-pointer);
  transition:background .2s;
}
.burger:hover{background:rgba(255,179,0,.12);}
.burger span{
  display:block; width:16px; height:1.5px;
  background:var(--cream); border-radius:2px;
  transition:transform .25s ease, opacity .2s ease;
}
.burger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-scrim{
  display:none; position:fixed; inset:0; z-index:190;
  background:rgba(8,2,0,.62);
  backdrop-filter:blur(4px);
  opacity:0; pointer-events:none;
  transition:opacity .28s ease;
}
.mobile-scrim.open{opacity:1; pointer-events:auto;}
.mobile-menu{
  display:none; position:fixed; inset:0 0 0 auto; width:min(86vw,340px); z-index:200;
  background:
    radial-gradient(ellipse 80% 40% at 100% 0%, rgba(234,90,0,.22), transparent 55%),
    linear-gradient(180deg, #2A1200 0%, #100600 100%);
  padding:22px 22px 32px;
  flex-direction:column; gap:6px;
  transform:translateX(105%); transition:transform .32s cubic-bezier(.22,1,.36,1);
  border-left:1px solid rgba(255,179,0,.22);
  box-shadow:-20px 0 50px rgba(0,0,0,.5);
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu-head{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:18px; padding-bottom:14px;
  border-bottom:1px solid rgba(255,179,0,.18);
}
.mobile-menu-label{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic; color:var(--gold-soft); font-size:1rem;
}
.mobile-menu a:not(.nav-cta){
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:1.35rem; font-weight:700;
  padding:12px 4px;
  color:var(--cream);
  border-bottom:1px solid rgba(255,179,0,.1);
  transition:color .2s;
}
.mobile-menu a:not(.nav-cta):hover{color:var(--gold);}
.mobile-close{
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,248,240,.06); border:1px solid rgba(255,179,0,.2);
  color:var(--cream); font-size:1.5rem; line-height:1; cursor:var(--cursor-dandiya-pointer);
}
.mobile-cta{margin-top:22px; text-align:center; width:100%;}
.nav-lotus{
  position:absolute;
  left:50%;
  top:calc(100% - 2px);
  transform:translateX(-50%);
  z-index:3;
  pointer-events:none;
}
.nav-lotus-sway{
  transform-origin:top center;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.35));
}
.icon-lotus--nav{
  width:44px;
  height:auto;
  display:block;
  animation:grow-pulse 3.8s ease-in-out infinite;
  transform-origin:center top;
}
.site-nav.nav-scrolled .icon-lotus--nav{width:38px;}
.site-nav.nav-scrolled .nav-lotus{top:calc(100% - 1px);}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:flex-end; justify-content:center;
  padding:0 5vw 10vh;
  overflow:visible;
}
.hero-bg{
  position:absolute; inset:0;
  overflow:hidden;
  z-index:0;
  border-radius:0;
}
.hero-bg-parallax,.hero-bg-breathe{position:absolute; inset:0; overflow:hidden;}
.hero-bg-img{
  object-fit:cover; object-position:center 12%;
  filter:saturate(1.05) contrast(1.05);
}
.hero-bg-fallback{z-index:0;}
.hero-bg-video{
  position:absolute;
  left:0; right:0;
  top:8%;
  z-index:1;
  width:100%; height:100%;
  object-fit:cover; object-position:center 8%;
  filter:saturate(1.08) contrast(1.05) brightness(.92);
}
.hero-bg-video.is-paused{opacity:0;}
.hero-bg-veil{
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(180deg, rgba(16,6,0,.72) 0%, rgba(16,6,0,.38) 22%, rgba(16,6,0,.28) 38%, rgba(16,6,0,.75) 62%, rgba(16,6,0,.92) 82%, #2A1200 100%),
    linear-gradient(90deg, rgba(16,6,0,.6) 0%, transparent 18%, transparent 82%, rgba(16,6,0,.6) 100%),
    radial-gradient(ellipse 70% 50% at 50% 30%, rgba(234,90,0,.18), transparent 60%);
}
.hero-bg-breathe{animation:hero-breathe 8s ease-in-out infinite;}
@keyframes hero-breathe{
  0%,100%{transform:scale(1.05);}
  50%{transform:scale(1.09);}
}
.hero-twinkles{position:absolute; inset:0; pointer-events:none; z-index:3;}
.twinkle{
  position:absolute; width:6px; height:6px; border-radius:50%;
  background:#FFB300;
  box-shadow:0 0 10px 3px rgba(255,179,0,.7);
  animation:twinkle-pop 2.4s ease-in-out infinite;
}
.twinkle.t1{left:18%; top:28%; animation-delay:0s;}
.twinkle.t2{left:72%; top:22%; animation-delay:.6s; width:4px; height:4px;}
.twinkle.t3{left:58%; top:48%; animation-delay:1.1s;}
.twinkle.t4{left:30%; top:55%; animation-delay:1.7s; width:5px; height:5px;}
@keyframes twinkle-pop{
  0%,100%{opacity:.15; transform:scale(.6);}
  40%{opacity:1; transform:scale(1.35);}
  70%{opacity:.4; transform:scale(.9);}
}
.hero-content{
  position:relative; z-index:4;
  width:100%; max-width:820px;
  text-align:center;
  padding-bottom:4px;
}
.hero-kicker{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic; font-weight:600;
  color:var(--gold-soft);
  font-size:clamp(1.05rem, 2.2vw, 1.35rem);
  margin-bottom:10px;
  letter-spacing:.02em;
}
.hero-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:clamp(3rem, 10vw, 6.2rem);
  line-height:1.02;
  letter-spacing:-.02em;
  margin-bottom:14px;
}
.hero-title-word{
  display:inline-block;
  background:linear-gradient(110deg, #FFF8F0 10%, #FFB300 40%, #EA5A00 70%, #FFB300 100%);
  background-size:220% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:title-shimmer 5s linear infinite;
}
@keyframes title-shimmer{
  0%{background-position:0% center;}
  100%{background-position:220% center;}
}
.hero-tagline{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic;
  font-weight:600;
  font-size:clamp(1.15rem, 2.6vw, 1.55rem);
  color:var(--gold-soft);
  margin:0 auto 14px;
  max-width:28ch;
  line-height:1.35;
}
.hero-meta{
  color:var(--muted);
  font-size:clamp(.88rem, 1.6vw, 1rem);
  font-weight:500;
  letter-spacing:.02em;
  margin:0 auto 26px;
  max-width:520px;
}
.hero-sub{
  color:var(--muted);
  font-size:clamp(1rem, 2vw, 1.15rem);
  max-width:440px; margin:0 auto 26px;
  line-height:1.55;
}
.hero-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.btn-primary, .btn-ghost{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 28px; border-radius:999px;
  font-weight:700; font-size:.95rem;
  transition:transform .2s, filter .2s, box-shadow .2s;
}
.btn-primary{
  position:relative;
  background:var(--grad-cta); color:#fff;
  box-shadow:0 12px 30px rgba(234,90,0,.35);
}
.btn-glow::after{
  content:""; position:absolute; inset:-4px; border-radius:999px; z-index:-1;
  background:radial-gradient(circle, rgba(255,179,0,.55), transparent 70%);
  animation:glow-ring 2.2s ease-out infinite;
}
@keyframes glow-ring{
  0%{transform:scale(.92); opacity:.75;}
  70%{transform:scale(1.18); opacity:0;}
  100%{transform:scale(1.18); opacity:0;}
}
.btn-ghost{
  border:1px solid rgba(255,248,240,.28);
  background:rgba(255,248,240,.06);
  color:var(--cream);
  backdrop-filter:blur(8px);
}
.btn-primary:hover, .btn-ghost:hover{transform:translateY(-3px); filter:brightness(1.06);}
.btn-ghost:hover{
  border-color:rgba(255,179,0,.4);
  color:var(--gold-soft);
  background:rgba(255,179,0,.08);
}
.btn-primary:active, .btn-ghost:active, .nav-cta:active, .pay-btn:active{transform:scale(.97);}
.nav-cta:hover{
  filter:brightness(1.06);
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(234,90,0,.42);
}

/* ---------- HANGINGS ---------- */
@keyframes hang-sway{
  0%,100%{transform:rotate(-2.4deg);}
  50%{transform:rotate(2.4deg);}
}
@keyframes hang-float{
  0%,100%{transform:translateY(0) rotate(-1.5deg);}
  50%{transform:translateY(8px) rotate(1.8deg);}
}
@keyframes grow-pulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.07);}
}
@keyframes spark-drift{
  0%{transform:translateY(0) scale(.7);}
  12%{transform:translateY(-8vh) scale(1.15);}
  50%{transform:translateY(-50vh) scale(.9);}
  100%{transform:translateY(-110vh) scale(.6);}
}
@keyframes spark-twinkle{
  0%,100%{opacity:.2;}
  50%{opacity:.9;}
}
.hangings{pointer-events:none; z-index:5;}
.hangings--hero{
  position:absolute;
  inset:0;
  overflow:visible;
  z-index:5;
}
.hangings--section{
  position:absolute; inset:0; overflow:visible; z-index:0;
}
.hanging{
  position:absolute;
  top:0;
  padding-top:12px;
  transform-origin:top center;
}
.hangings--hero .hanging{
  top:120px;
}
.hanging--left{left:clamp(12px, 2.5vw, 32px);}
.hanging--right{right:clamp(12px, 2.5vw, 32px);}
.hangings--hero .hanging--toran::before{
  content:"";
  position:absolute; left:50%; top:0;
  width:2px; height:120px;
  transform:translate(-50%, -100%);
  background:linear-gradient(180deg, transparent 0%, rgba(255,179,0,.35) 40%, rgba(198,40,40,.75) 100%);
  pointer-events:none;
}
.hang-sway{animation:hang-sway 4.8s ease-in-out infinite;}
.hang-sway--alt{animation-delay:-2.4s;}
.hang-sway--slow{animation:hang-float 6.5s ease-in-out infinite;}
.hanging-img{height:auto; user-select:none;}
.icon-toran{
  width:clamp(52px, 7.5vw, 76px);
  height:auto;
  display:block;
  overflow:visible;
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.35));
  animation:grow-pulse 3.2s ease-in-out infinite;
  transform-origin:center top;
}
.hanging--right .icon-toran{animation-delay:1.1s;}
.icon-lotus{
  width:clamp(56px, 9vw, 100px);
  height:auto;
  display:block;
  filter:drop-shadow(0 12px 18px rgba(255,179,0,.28));
  animation:grow-pulse 4s ease-in-out infinite;
  transform-origin:center top;
}
.passes-section{position:relative;}
.about{overflow:visible;}

/* ---------- SPARKS ---------- */
.sparks{position:fixed; inset:0; pointer-events:none; z-index:0;}
.spark{
  position:absolute; border-radius:50%; filter:blur(.4px);
  animation-name:spark-drift, spark-twinkle;
  animation-timing-function:linear, ease-in-out;
  animation-iteration-count:infinite, infinite;
}

/* ---------- EVENT JOURNEY STRIP ---------- */
.event-journey{
  position:relative;
  padding:88px 5vw 96px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 70% 60% at 50% 40%, #2A1200 0%, #160700 50%, #100600 100%);
  border-block:1px solid rgba(255,179,0,.14);
}
.event-journey-glow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 40% 35% at 50% 35%, rgba(234,90,0,.16), transparent 70%),
    radial-gradient(ellipse 28% 22% at 50% 58%, rgba(255,179,0,.08), transparent 65%);
}
.event-journey-rings{
  position:absolute; left:50%; top:38%;
  width:min(120vw, 1100px); height:min(120vw, 1100px);
  transform:translate(-50%, -50%);
  pointer-events:none; opacity:.7;
}
.event-journey-rings span{
  position:absolute; inset:0; margin:auto;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.07);
}
.event-journey-rings span:nth-child(1){inset:12%;}
.event-journey-rings span:nth-child(2){inset:26%;}
.event-journey-rings span:nth-child(3){inset:40%; border-color:rgba(255,179,0,.11);}
.event-journey-inner{
  position:relative; z-index:2;
  max-width:760px; margin:0 auto;
  text-align:center;
  padding:0 clamp(0px, 8vw, 72px);
}
.event-dancers{
  position:absolute; inset:0;
  pointer-events:none; z-index:1;
}
.event-dancer{
  position:absolute;
  top:50%;
  width:clamp(96px, 13vw, 168px);
  opacity:.55;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.3));
  transform:translateY(-50%);
}
.event-dancer--left{left:clamp(0px, 1.5vw, 20px);}
.event-dancer--right{right:clamp(0px, 1.5vw, 20px);}
.icon-dandiya{
  width:100%; height:auto; display:block;
  overflow:visible;
}
.dance-sway{animation:dance-sway 3.6s ease-in-out infinite;}
.dance-sway--alt{animation-delay:-1.8s; animation-name:dance-sway-alt;}
@keyframes dance-sway{
  0%,100%{transform:translateY(-50%) rotate(-4deg);}
  50%{transform:translateY(calc(-50% - 10px)) rotate(5deg);}
}
@keyframes dance-sway-alt{
  0%,100%{transform:translateY(-50%) rotate(4deg);}
  50%{transform:translateY(calc(-50% - 12px)) rotate(-5deg);}
}
.event-journey-head{
  position:relative;
  margin:0 auto 28px;
  max-width:560px;
  min-height:52px;
  display:flex; align-items:flex-end; justify-content:center;
}
.event-journey-ornament{
  position:absolute; left:0; right:0; bottom:10px;
  height:40px; pointer-events:none;
}
.event-journey-rail{
  position:absolute; left:0; right:0; top:70%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,179,0,.5) 18%, rgba(255,179,0,.5) 82%, transparent);
}
.event-journey-arch{
  position:absolute; left:50%; top:100%;
  width:132px; height:36px;
  transform:translate(-50%, -100%);
  border:1px solid rgba(255,179,0,.5);
  border-bottom:none;
  border-radius:140px 140px 0 0;
  background:linear-gradient(180deg, transparent, rgba(16,6,0,.85));
}
.event-journey-bead{
  position:absolute; top:70%;
  width:6px; height:6px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #FFE08A, #EA5A00 70%);
  box-shadow:0 0 10px 2px rgba(255,179,0,.55);
  transform:translate(-50%, -50%);
  animation:twinkle-pop 2.8s ease-in-out infinite;
}
.event-journey-bead.b1{left:12%;}
.event-journey-bead.b2{left:28%; animation-delay:.4s;}
.event-journey-bead.b3{left:72%; animation-delay:.8s;}
.event-journey-bead.b4{left:88%; animation-delay:1.2s;}
.event-journey-eyebrow{
  position:relative; z-index:2;
  font-size:.7rem; font-weight:700;
  letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold-soft);
  margin:0 0 6px;
  background:radial-gradient(ellipse at center, #1A0800 40%, transparent 75%);
  padding:0 14px;
}
.event-journey-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:clamp(2rem, 5vw, 3.1rem);
  line-height:1.12;
  letter-spacing:-.02em;
  color:#FFF8F0;
  margin:0 0 10px;
}
.event-journey-sub{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic;
  font-size:clamp(1.05rem, 2.2vw, 1.3rem);
  background:linear-gradient(120deg, #FFF8F0 10%, #FFB300 55%, #EA5A00 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  margin:0 0 32px;
}
.event-journey-chips{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  margin:0 auto 28px;
  max-width:680px;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,179,0,.22);
  background:rgba(255,179,0,.12);
  backdrop-filter:blur(12px);
  box-shadow:0 16px 40px rgba(0,0,0,.25);
}
.event-journey-chips--four{
  grid-template-columns:repeat(2, 1fr);
  max-width:760px;
}
.event-journey-chips--two{
  grid-template-columns:repeat(2, 1fr);
  max-width:560px;
  margin-bottom:0;
}
.event-fact{
  text-align:center;
  padding:18px 14px;
  background:rgba(16,6,0,.72);
}
.event-label{
  display:block;
  font-size:.65rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-soft); font-weight:700; margin-bottom:8px;
}
.event-value{
  display:block;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:clamp(.82rem, 1.5vw, .98rem);
  line-height:1.35;
  color:#FFF8F0;
}
.event-day-title{
  display:block;
  margin-top:8px;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic;
  font-size:.88rem;
  color:var(--muted);
  line-height:1.35;
}
.event-journey-cta{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 22px;
  border-radius:999px;
  font-weight:700; font-size:.88rem;
  color:#fff;
  background:var(--grad-cta);
  box-shadow:0 10px 28px rgba(234,90,0,.32);
  transition:transform .2s, filter .2s;
}
.event-journey-cta:hover{transform:translateY(-2px); filter:brightness(1.06);}
.event-journey-cta:active{transform:scale(.97);}
.event-journey-cta span{transition:transform .2s;}
.event-journey-cta:hover span{transform:translateX(3px);}

/* ---------- ABOUT / THE EXPERIENCE ---------- */
.about{
  position:relative;
  padding:96px 5vw 100px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 55% 50% at 18% 40%, rgba(234,90,0,.12), transparent 60%),
    radial-gradient(ellipse 40% 40% at 85% 70%, rgba(255,179,0,.06), transparent 65%);
}
.about-glow{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,.12), transparent);
}
.about-orbs{
  position:absolute; inset:0; pointer-events:none; z-index:0; overflow:hidden;
}
.about-orb{
  position:absolute; border-radius:50%;
  filter:blur(2px);
  background:radial-gradient(circle, rgba(255,179,0,.55), transparent 70%);
  box-shadow:0 0 24px rgba(255,179,0,.35);
}
.about-orb.o1{width:10px; height:10px; left:12%; top:22%;}
.about-orb.o2{width:7px; height:7px; right:18%; top:34%; animation-delay:.4s;}
.about-orb.o3{width:12px; height:12px; left:42%; bottom:18%;}
.model-stage{width:100%; height:100%; min-height:0;}
.model-stage--loading,
.model-stage--fallback{display:flex; align-items:center; justify-content:center; min-height:inherit;}
.model-stage__pulse{
  width:22px; height:22px; border-radius:50%;
  background:radial-gradient(circle, var(--gold), transparent 70%);
  animation:pulse 1.2s ease-in-out infinite;
}
.model-stage__static{
  width:18px; height:18px; rotate:45deg;
  background:linear-gradient(135deg, #FFE08A, #EA5A00);
  box-shadow:0 0 12px rgba(255,179,0,.45);
}
.model-stage--fallback .why-svg{
  width:40px; height:40px;
}
.about-diya{
  position:absolute;
  right:-18px; bottom:18px;
  width:88px; height:88px;
  z-index:4;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.45);
  background:
    radial-gradient(circle at 40% 30%, rgba(255,179,0,.28), transparent 65%),
    rgba(16,6,0,.75);
  box-shadow:0 12px 28px rgba(0,0,0,.35), 0 0 0 6px rgba(255,179,0,.06);
  overflow:hidden;
  pointer-events:none;
}
.about-diya-model{min-height:88px;}
@keyframes pulse{
  0%,100%{transform:scale(.85); opacity:.5;}
  50%{transform:scale(1.15); opacity:1;}
}

.about-inner{
  position:relative; z-index:1;
  max-width:1140px; margin:0 auto;
  display:grid; grid-template-columns:0.95fr 1.05fr; gap:64px; align-items:center;
}
.about-visual{position:relative;}
.about-portrait{
  position:relative;
  border-radius:28px;
  overflow:hidden;
  aspect-ratio:4/5;
  background:#000;
  border:1px solid rgba(255,179,0,.28);
  box-shadow:
    0 30px 70px rgba(0,0,0,.45),
    0 0 0 1px rgba(255,179,0,.08) inset;
  will-change:transform;
}
.about-portrait-shine{
  position:absolute; inset:-40% -60%;
  z-index:3; pointer-events:none;
  background:linear-gradient(115deg, transparent 35%, rgba(255,248,240,.18) 48%, transparent 62%);
  animation:about-shine 5.5s ease-in-out infinite;
}
@keyframes about-shine{
  0%{transform:translateX(-30%) rotate(12deg);}
  100%{transform:translateX(130%) rotate(12deg);}
}
.about-portrait-img,
.about-portrait-video{
  width:100%; height:100%;
  object-fit:cover; object-position:center center;
  display:block;
  will-change:transform;
}
.about-portrait-video{
  position:absolute; inset:0;
  z-index:0;
}
.about-portrait-veil{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, transparent 45%, rgba(16,6,0,.75) 100%),
    radial-gradient(ellipse 70% 50% at 50% 20%, rgba(255,179,0,.15), transparent 60%);
  pointer-events:none;
}
.about-portrait-ring{
  position:absolute; inset:10px; z-index:2; pointer-events:none;
  border-radius:22px;
  border:1px solid rgba(255,179,0,.2);
  animation:about-ring-pulse 3.2s ease-in-out infinite;
}
@keyframes about-ring-pulse{
  0%,100%{opacity:.35; transform:scale(1);}
  50%{opacity:.85; transform:scale(0.985);}
}
.about-visual-caption{
  margin-top:16px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic;
  color:var(--gold-soft);
  letter-spacing:.04em;
  font-size:.95rem;
}
.about-cap-dot{
  width:5px; height:5px; border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 8px rgba(255,179,0,.7);
  animation:twinkle-pop 2.4s ease-in-out infinite;
}
.about-kicker{
  display:flex; align-items:center; gap:14px;
  margin-bottom:14px;
}
.about-kicker-line{
  width:36px; height:1px;
  background:linear-gradient(90deg, var(--gold), transparent);
  display:block;
  transform-origin:left center;
}
.about-kicker .section-eyebrow{margin:0;}
.about-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.12;
  letter-spacing:-.02em;
  margin:0 0 18px;
  color:#FFF8F0;
  perspective:600px;
}
.about-title-line{display:block;}
.about-title-accent{
  background:linear-gradient(120deg, #FFF8F0 5%, #FFB300 50%, #EA5A00 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.about-lead{
  color:var(--muted);
  line-height:1.75;
  margin:0 0 28px;
  font-size:1.05rem;
  max-width:38ch;
}
.about-pillars{
  display:grid;
  gap:0;
  margin-bottom:32px;
  border-top:1px solid rgba(255,179,0,.18);
}
.about-pillar{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:14px;
  align-items:start;
  padding:18px 4px;
  border-bottom:1px solid rgba(255,179,0,.14);
  position:relative;
  overflow:hidden;
  transition:background .25s, transform .25s, padding .25s;
}
.about-pillar-glow{
  position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, transparent, #FFB300, transparent);
  opacity:0;
  transition:opacity .3s;
}
.about-pillar:hover{
  background:rgba(255,179,0,.05);
  padding-left:10px; padding-right:10px;
  border-radius:12px;
  transform:translateX(4px);
}
.about-pillar:hover .about-pillar-glow{opacity:1;}
.about-pillar-num{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:.95rem;
  color:var(--gold);
  letter-spacing:.04em;
  padding-top:2px;
  animation:grow-pulse 3s ease-in-out infinite;
}
.about-pillar-copy h3{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:1.02rem;
  font-weight:700;
  margin:0 0 6px;
}
.about-pillar-copy p{
  margin:0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.55;
}
.about-actions{
  display:flex; flex-wrap:wrap; gap:12px; align-items:center;
}
.about-ghost{
  border-color:rgba(255,179,0,.28);
  background:rgba(255,179,0,.06);
}
.about-ghost:hover{
  border-color:rgba(255,179,0,.5);
  color:var(--gold-soft);
}

/* ---------- MODAL / BOOKING ---------- */
.modal-root{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
}
.modal-backdrop{
  position:absolute; inset:0; border:none; cursor:var(--cursor-dandiya-pointer);
  background:rgba(8,3,0,.72); backdrop-filter:blur(6px);
}
.modal-panel{
  position:relative; z-index:1;
  width:min(100%, 420px);
  padding:28px 24px 24px;
  border-radius:22px;
  background:linear-gradient(180deg, #2A1200, #1A0800);
  border:1px solid var(--line);
  box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.modal-panel h2{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:1.45rem; margin-bottom:6px;
}
.modal-close{
  position:absolute; top:10px; right:14px;
  background:none; border:none; color:var(--cream);
  font-size:1.6rem; cursor:var(--cursor-dandiya-pointer); line-height:1;
}
.modal-price{color:var(--gold); font-weight:700; font-size:1.2rem; margin-bottom:18px;}
.modal-unit{
  margin:-4px 0 10px;
  color:var(--faint);
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
}

/* Full-screen booking sheet (legacy overlay) */
.booking-screen{
  position:fixed; inset:0; z-index:320;
  display:flex; flex-direction:column;
  background:#100600;
  overflow:auto;
  overscroll-behavior:contain;
}
.booking-screen-bg{
  position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(ellipse 50% 40% at 50% 0%, rgba(234,90,0,.22), transparent 55%),
    radial-gradient(ellipse 40% 35% at 80% 80%, rgba(255,179,0,.08), transparent 50%),
    linear-gradient(180deg, #1A0800 0%, #100600 55%, #2A1200 100%);
}
.booking-screen-top{
  position:sticky; top:0; z-index:2;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 5vw;
  background:rgba(16,6,0,.72);
  border-bottom:1px solid rgba(255,179,0,.16);
  backdrop-filter:blur(14px);
}
.booking-back{
  border:1px solid rgba(255,179,0,.28);
  background:rgba(255,179,0,.08);
  color:var(--cream);
  font:inherit;
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
  font-size:.88rem; font-weight:700;
  padding:10px 16px;
  border-radius:999px;
  cursor:var(--cursor-dandiya-pointer);
}
.booking-back:hover{background:rgba(255,179,0,.16);}
.booking-screen-kicker{
  margin:0;
  color:var(--gold-soft);
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
  font-size:.78rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
}
.booking-screen-body{
  position:relative; z-index:1;
  flex:1;
  display:flex; justify-content:center;
  padding:28px 5vw 48px;
}
.booking-screen-card{
  width:min(100%, 560px);
  padding:36px 28px 30px;
  border-radius:28px;
  background:linear-gradient(165deg, rgba(255,179,0,.1), rgba(16,6,0,.55));
  border:1px solid rgba(255,179,0,.28);
  box-shadow:0 28px 70px rgba(0,0,0,.45);
}
.booking-screen-card h2{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1.8rem, 4vw, 2.4rem);
  font-weight:400;
  margin:8px 0 6px;
  line-height:1.15;
}

/* Dedicated /booking page — header only chrome */
.booking-page{
  min-height:100vh;
  background:
    radial-gradient(ellipse 55% 40% at 50% 0%, rgba(234,90,0,.2), transparent 55%),
    linear-gradient(180deg, #1A0800 0%, #100600 50%, #2A1200 100%);
  color:var(--cream);
}
.booking-page-header{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 5vw;
  background:rgba(16,6,0,.78);
  border-bottom:1px solid rgba(255,179,0,.18);
  backdrop-filter:blur(16px);
}
.booking-page-brand{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:1.15rem;
  color:var(--cream);
}
.booking-page-logo{
  width:48px; height:48px;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.35);
  background:#F2F2F2;
  object-fit:cover;
}
.booking-page-back{
  display:inline-flex; align-items:center;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid rgba(255,179,0,.28);
  background:rgba(255,179,0,.08);
  color:var(--cream);
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
  font-size:.88rem; font-weight:700;
}
.booking-page-back:hover{background:rgba(255,179,0,.16);}
.booking-page-main{
  display:flex; justify-content:center;
  padding:36px 5vw 64px;
}
.booking-page-card{
  width:min(100%, 640px);
  padding:36px 28px 30px;
  border-radius:28px;
  background:linear-gradient(165deg, rgba(255,179,0,.1), rgba(16,6,0,.55));
  border:1px solid rgba(255,179,0,.28);
  box-shadow:0 28px 70px rgba(0,0,0,.45);
}
.booking-page-card h1{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1.9rem, 4.5vw, 2.6rem);
  font-weight:400;
  margin:8px 0 10px;
  line-height:1.12;
}
.booking-page-lead{
  margin:0 0 22px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.55;
  max-width:36ch;
}
.booking-pass-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.booking-pass-chip{
  display:flex; flex-direction:column; align-items:flex-start; gap:4px;
  text-align:left;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(255,179,0,.2);
  background:rgba(255,248,240,.04);
  color:var(--cream);
  font:inherit;
  cursor:var(--cursor-dandiya-pointer);
  transition:border-color .2s, background .2s;
}
.booking-pass-chip strong{
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
  font-size:.92rem; font-weight:700;
}
.booking-pass-chip span{
  color:var(--faint);
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.booking-pass-chip.is-active{
  border-color:rgba(255,179,0,.55);
  background:rgba(255,179,0,.14);
}
.thank-inline .thank-copy{margin:0 0 16px; color:var(--muted); line-height:1.55;}
.thank-inline .thank-id{display:block; margin-bottom:18px;}
.thank-inline .btn-primary{
  display:inline-flex; justify-content:center; width:100%;
}

.booking-summary{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin:0 0 8px;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(255,179,0,.12);
  border:1px solid rgba(255,179,0,.28);
}
.booking-summary span{
  color:var(--muted);
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
  font-size:.9rem; font-weight:600;
}
.booking-summary strong{
  color:var(--gold);
  font-size:1.35rem; font-weight:700;
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
}
.booking-secure-note{
  margin:4px 0 0;
  text-align:center;
  color:var(--faint);
  font-size:.78rem;
}
.booking-form{display:grid; gap:14px;}
.booking-duration{
  border:none;
  margin:0;
  padding:0;
  min-width:0;
}
.booking-duration legend{
  margin-bottom:8px;
  color:var(--muted);
  font-size:.82rem;
  font-weight:600;
}
.booking-form .pass-toggle{
  margin-bottom:0;
}
.booking-form .pass-toggle button{
  font-size:.78rem;
  padding:12px 10px;
  line-height:1.25;
}
.booking-form label{
  display:grid; gap:6px;
  font-size:.82rem; font-weight:600; color:var(--muted);
}
.booking-form input{
  width:100%;
  padding:14px 16px; border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,248,240,.05);
  color:var(--cream); font:inherit;
}
.booking-form select{
  width:100%;
  padding:14px 16px; border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,248,240,.05);
  color:var(--cream); font:inherit;
  appearance:none;
}
.booking-form input:focus,
.booking-form select:focus{
  outline:1px solid var(--gold);
}
a.pay-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  text-decoration:none;
}
@media (max-width:600px){
  .booking-pass-grid{grid-template-columns:1fr;}
  .booking-page-card{padding:28px 20px 24px;}
}
.pay-btn:disabled{opacity:.7; cursor:wait;}
.thank-panel{text-align:center;}
.thank-copy{color:var(--muted); line-height:1.6; margin:10px 0 16px;}
.thank-id{
  display:block;
  padding:12px; margin-bottom:18px;
  border-radius:12px;
  background:rgba(255,179,0,.08);
  border:1px solid var(--line);
  color:var(--gold-soft);
  font-size:.85rem; word-break:break-all;
}
.thank-panel .btn-primary{width:100%; border:none; cursor:var(--cursor-dandiya-pointer);}

/* ---------- SITE FABS (music + WhatsApp) ---------- */
.site-audio{
  position:fixed;
  left:0;
  top:0;
  width:1px;
  height:1px;
  opacity:0.01;
  pointer-events:none;
  z-index:-1;
}
.site-fabs{
  position:fixed; right:18px; bottom:18px; z-index:90;
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
}
.tap-music-fab{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-width:148px; height:56px; padding:0 20px 0 16px;
  border-radius:999px;
  border:1px solid rgba(255,179,0,.7);
  background:
    linear-gradient(135deg, #FFB300 0%, #EA5A00 55%, #C04E00 100%);
  color:#FFF8F0;
  font:inherit;
  box-shadow:
    0 12px 32px rgba(234,90,0,.5),
    0 0 0 0 rgba(255,179,0,.35);
  cursor:var(--cursor-dandiya-pointer);
  animation:tap-music-pop 1.5s ease-in-out infinite;
  transition:transform .2s, filter .2s, box-shadow .2s;
  -webkit-tap-highlight-color:transparent;
  overflow:visible;
  isolation:isolate;
}
.tap-music-fab-rings{
  position:absolute; inset:-8px;
  pointer-events:none; z-index:0;
}
.tap-music-fab-rings i{
  position:absolute; inset:0;
  border-radius:999px;
  border:1.5px solid rgba(255,179,0,.55);
  animation:tap-music-ring 1.8s ease-out infinite;
}
.tap-music-fab-rings i:nth-child(2){animation-delay:.55s;}
.tap-music-fab-icon{
  position:relative; z-index:1;
  width:28px; height:28px;
  display:grid; place-items:center;
  border-radius:50%;
  background:rgba(16,6,0,.28);
  box-shadow:0 0 0 1px rgba(255,248,240,.2);
  animation:tap-music-note 1.1s ease-in-out infinite;
}
.tap-music-fab-icon svg{width:16px; height:16px; display:block;}
.tap-music-fab-copy{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:flex-start; gap:1px;
  line-height:1.05; text-align:left;
}
.tap-music-fab-copy strong{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700; font-size:1.05rem; letter-spacing:.04em;
  text-transform:uppercase;
}
.tap-music-fab-copy em{
  font-style:normal;
  font-size:.72rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  opacity:.92;
}
.tap-music-fab:hover{
  transform:translateY(-3px) scale(1.04);
  filter:brightness(1.08);
  box-shadow:0 16px 40px rgba(234,90,0,.6);
}
.tap-music-fab:active{transform:scale(.97);}
@keyframes tap-music-pop{
  0%,100%{transform:scale(1); box-shadow:0 12px 32px rgba(234,90,0,.5), 0 0 0 0 rgba(255,179,0,.3);}
  50%{transform:scale(1.06); box-shadow:0 16px 40px rgba(234,90,0,.65), 0 0 0 10px rgba(255,179,0,0);}
}
@keyframes tap-music-ring{
  0%{transform:scale(.92); opacity:.85;}
  100%{transform:scale(1.35); opacity:0;}
}
@keyframes tap-music-note{
  0%,100%{transform:translateY(0) rotate(-4deg);}
  50%{transform:translateY(-2px) rotate(4deg);}
}
.music-fab{
  display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; padding:0;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.4);
  background:rgba(16,6,0,.82);
  color:var(--gold-soft);
  backdrop-filter:blur(12px);
  box-shadow:0 10px 24px rgba(0,0,0,.35);
  cursor:var(--cursor-dandiya-pointer);
  transition:transform .2s, border-color .2s, color .2s, background .2s;
}
.music-fab svg{width:20px; height:20px; display:block;}
.music-fab:hover{
  transform:translateY(-2px);
  border-color:rgba(255,179,0,.7);
  color:#FFF8F0;
}
.music-fab.is-muted{
  color:rgba(255,248,240,.55);
  border-color:rgba(255,248,240,.22);
}
.music-fab.is-pulse{
  animation:music-fab-pulse 1.8s ease-in-out infinite;
}
@keyframes music-fab-pulse{
  0%,100%{box-shadow:0 10px 24px rgba(0,0,0,.35);}
  50%{box-shadow:0 10px 28px rgba(255,179,0,.4), 0 0 0 6px rgba(255,179,0,.12);}
}
.wa-fab{
  position:relative; right:auto; bottom:auto;
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 16px; border-radius:999px;
  background:linear-gradient(135deg, #25D366, #128C7E);
  color:#fff; font-weight:700; font-size:.88rem;
  box-shadow:0 12px 28px rgba(18,140,126,.4);
  animation:fab-pulse 2.6s ease-in-out infinite;
  transition:transform .2s;
}
.wa-fab:hover{transform:translateY(-2px) scale(1.03);}
@keyframes fab-pulse{
  0%,100%{box-shadow:0 12px 28px rgba(18,140,126,.4);}
  50%{box-shadow:0 12px 36px rgba(37,211,102,.65), 0 0 0 8px rgba(37,211,102,.12);}
}
.wa-fab-dot{
  width:8px; height:8px; border-radius:50%;
  background:#fff; box-shadow:0 0 0 4px rgba(255,255,255,.25);
}

/* ---------- SECTIONS ---------- */
section{position:relative; z-index:1; padding:var(--section-pad) 5vw;}
.section-head{max-width:640px; margin:0 auto 48px; text-align:center;}
.section-eyebrow{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic; color:var(--gold-soft);
  margin-bottom:10px; font-size:1.05rem;
  letter-spacing:.03em;
}
.section-head h2{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:clamp(1.8rem, 4vw, 2.6rem);
  letter-spacing:-.02em;
  margin-bottom:10px;
}
.section-head p{color:var(--muted); line-height:1.6;}

.lux-head{text-align:center; max-width:640px; margin:0 auto 48px; position:relative; z-index:1;}
.lux-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.7rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin:0 0 14px;
}
.lux-eyebrow i{
  width:7px; height:7px; rotate:45deg;
  background:var(--gold); box-shadow:0 0 8px rgba(255,179,0,.5);
}
.lux-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:clamp(2rem, 4.5vw, 3rem);
  line-height:1.1; letter-spacing:-.02em;
  color:#FFF8F0; margin:0 0 14px;
}
.lux-title span{
  display:block;
  background:linear-gradient(120deg, #FFF8F0 8%, #FFB300 48%, #EA5A00 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lux-divider{
  display:flex; align-items:center; justify-content:center; gap:12px;
  margin:0 auto 14px;
}
.lux-divider span{
  width:52px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,179,0,.55), transparent);
}
.lux-divider b{
  width:8px; height:8px; rotate:45deg;
  background:linear-gradient(135deg, #FFE08A, #EA5A00);
  box-shadow:0 0 10px rgba(255,179,0,.55);
}
.lux-sub{
  margin:0 auto;
  max-width:40ch;
  color:var(--muted);
  font-size:clamp(.98rem, 1.8vw, 1.08rem);
  line-height:1.55;
}

/* ---------- ABOUT (legacy spacing handled in experience block) ---------- */
.accent-gold{color:var(--gold);}

/* ---------- WHY COME ---------- */
.why{
  position:relative;
  padding:108px 5vw 112px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 60% 48% at 50% 0%, rgba(234,90,0,.18), transparent 58%),
    radial-gradient(ellipse 50% 40% at 50% 70%, rgba(255,179,0,.05), transparent 60%),
    #100600;
  border-block:1px solid rgba(255,179,0,.14);
}
.why-glow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 35% 30% at 20% 90%, rgba(234,90,0,.06), transparent 65%),
    radial-gradient(ellipse 35% 30% at 80% 90%, rgba(234,90,0,.06), transparent 65%);
}
.why-dust{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.why-dust i{
  position:absolute;
  width:3px; height:3px; border-radius:50%;
  background:#FFB300;
  box-shadow:0 0 8px rgba(255,179,0,.65);
  opacity:.4;
  left:calc(10% + (var(--i) * 7%));
  top:calc(18% + ((var(--i) * 19) % 65) * 1%);
  animation:twinkle-pop 2.8s ease-in-out infinite;
  animation-delay:calc(var(--i) * .15s);
}
.why-inner{
  position:relative; z-index:2;
  max-width:980px; margin:0 auto;
}
.why-head{text-align:center; margin-bottom:52px;}
.why-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.7rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin:0 0 14px;
}
.why-eyebrow i{
  width:7px; height:7px; rotate:45deg;
  background:var(--gold);
  box-shadow:0 0 8px rgba(255,179,0,.5);
}
.why-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700;
  font-size:clamp(2.3rem, 5.2vw, 3.5rem);
  line-height:1.08;
  letter-spacing:-.03em;
  color:#FFF8F0;
  margin:0 0 16px;
}
.why-title span{
  display:block;
  background:linear-gradient(120deg, #FFF8F0 8%, #FFB300 48%, #EA5A00 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.why-divider{
  display:flex; align-items:center; justify-content:center; gap:12px;
  margin:0 auto 14px;
}
.why-divider span{
  width:52px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,179,0,.55), transparent);
}
.why-divider b{
  width:8px; height:8px; rotate:45deg;
  background:linear-gradient(135deg, #FFE08A, #EA5A00);
  box-shadow:0 0 10px rgba(255,179,0,.55);
}
.why-sub{
  margin:0 auto;
  max-width:36ch;
  color:var(--muted);
  font-size:clamp(.98rem, 1.8vw, 1.08rem);
  line-height:1.55;
}
.why-mosaic{
  list-style:none;
  margin:0 auto 40px;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  max-width:860px;
  border:1px solid rgba(255,179,0,.22);
  background:linear-gradient(165deg, rgba(255,179,0,.06), rgba(12,5,0,.55));
  box-shadow:0 0 50px rgba(234,90,0,.08), 0 28px 60px rgba(0,0,0,.28);
}
.why-feature{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:16px;
  align-items:center;
  padding:32px 28px;
  overflow:hidden;
  transition:background .3s;
}
.why-feature:nth-child(1),
.why-feature:nth-child(2),
.why-feature:nth-child(3),
.why-feature:nth-child(4){
  border-bottom:1px solid rgba(255,179,0,.18);
}
.why-mosaic--five .why-feature:nth-child(5){
  grid-column:1 / -1;
  border-bottom:none;
  max-width:520px;
  margin:0 auto;
  width:100%;
  border-right:none;
}
.why-feature:nth-child(odd){
  border-right:1px solid rgba(255,179,0,.18);
}
.why-mosaic--five .why-feature:nth-child(5){
  border-right:none;
}
.why-feature-line{
  margin-top:8px !important;
  color:var(--gold-soft) !important;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-style:italic;
  font-size:.88rem !important;
}
.why-feature:hover{
  background:rgba(255,179,0,.06);
}
.why-feature-num{
  position:absolute;
  right:10px; top:6px;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(2.8rem, 5vw, 3.6rem);
  font-weight:700;
  line-height:1;
  letter-spacing:-.06em;
  background:linear-gradient(180deg, rgba(255,179,0,.28), rgba(255,179,0,.02));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  pointer-events:none; user-select:none;
}
.why-feature-ico{
  width:64px; height:64px;
  display:grid; place-items:center;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.4);
  background:
    radial-gradient(circle at 40% 30%, rgba(255,179,0,.28), transparent 65%),
    rgba(16,6,0,.55);
  box-shadow:0 0 0 6px rgba(255,179,0,.05), 0 10px 24px rgba(0,0,0,.25);
  transition:transform .28s, border-color .28s, box-shadow .28s;
  overflow:hidden;
}
.why-feature-ico--3d{
  width:84px; height:84px;
  min-width:84px;
}
.why-feature:hover .why-feature-ico{
  transform:scale(1.06);
  border-color:rgba(255,179,0,.65);
  box-shadow:0 0 0 8px rgba(255,179,0,.08), 0 14px 28px rgba(234,90,0,.22);
}
.why-model{min-height:84px; pointer-events:none;}
.why-svg{
  width:34px; height:34px;
  display:block;
  filter:drop-shadow(0 4px 10px rgba(234,90,0,.35));
}
.why-feature-copy{
  position:relative; z-index:1;
  min-width:0;
}
.why-feature h3{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1.25rem, 2vw, 1.45rem);
  font-weight:700;
  margin:0 0 6px;
  color:#FFF8F0;
}
.why-feature p{
  margin:0;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.5;
  max-width:28ch;
}
.why-cta{text-align:center; margin-top:8px;}
.why-cta .btn-primary{padding:13px 28px;}

/* ---------- ARTISTS ---------- */
.artists{
  position:relative;
  padding:96px 5vw 100px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 55% 40% at 50% 0%, rgba(234,90,0,.12), transparent 55%),
    transparent;
  border-block:1px solid rgba(255,179,0,.12);
}
.artists-glow{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 40% 30% at 50% 100%, rgba(255,179,0,.05), transparent 60%);
}
.artists-reveal{
  position:relative; z-index:1;
  max-width:640px; margin:0 auto;
  padding:56px 28px;
  text-align:center;
  border-radius:28px;
  border:1px solid rgba(255,179,0,.28);
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(255,179,0,.14), transparent 55%),
    linear-gradient(165deg, rgba(255,179,0,.08), rgba(16,6,0,.7));
  box-shadow:0 28px 60px rgba(0,0,0,.3);
  overflow:hidden;
}
.artists-reveal-ring{
  position:absolute; left:50%; top:50%;
  width:280px; height:280px;
  transform:translate(-50%, -50%);
  border-radius:50%;
  border:1px solid rgba(255,179,0,.16);
  box-shadow:0 0 0 40px rgba(255,179,0,.04);
  pointer-events:none;
}
.artists-reveal-core{position:relative; z-index:1;}
.artists-reveal-kicker{
  font-size:.7rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin:0 0 12px;
}
.artists-reveal-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1.8rem, 3.5vw, 2.4rem);
  font-weight:700; margin:0 0 12px; color:#FFF8F0;
}
.artists-reveal-body{
  margin:0 auto; max-width:36ch;
  color:var(--muted); font-size:.95rem; line-height:1.55;
}

/* ---------- PASSES ---------- */
.passes-section{
  position:relative;
  overflow:hidden;
  padding:96px 5vw 100px;
  background:
    radial-gradient(ellipse 55% 40% at 50% 0%, rgba(234,90,0,.14), transparent 55%),
    #120700;
  border-block:1px solid rgba(255,179,0,.12);
}
.passes-glow{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 40% 30% at 50% 100%, rgba(255,179,0,.05), transparent 60%);
}
.passes{
  position:relative; z-index:1;
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
  align-items:stretch;
}
.passes--four{
  max-width:1200px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.passes{perspective:1200px;}
.pass-card{
  position:relative;
  padding:22px 16px 20px;
  border-radius:20px;
  background:linear-gradient(165deg, rgba(255,179,0,.06), rgba(16,6,0,.45));
  border:1px solid var(--line);
  transform-style:preserve-3d;
  transition:transform .35s, box-shadow .28s, border-color .28s;
  min-width:0;
}
.pass-card:hover{
  transform:translateY(-8px) rotateX(4deg) rotateY(-3deg);
  border-color:rgba(255,179,0,.5);
  box-shadow:0 20px 48px rgba(234,90,0,.2);
}
.pass-card.featured{
  background:linear-gradient(165deg, rgba(255,179,0,.14), rgba(234,90,0,.08));
  border-color:rgba(255,179,0,.45);
  transform:translateY(-6px);
  box-shadow:0 20px 50px rgba(234,90,0,.15);
}
.pass-card.featured:hover{transform:translateY(-12px) rotateX(5deg) rotateY(-4deg);}
.pass-badges{
  display:flex; flex-wrap:wrap; gap:8px;
  min-height:28px;
  margin-bottom:12px;
}
.pass-badge{
  display:inline-block;
  margin-bottom:0;
  padding:5px 10px;
  border-radius:999px;
  font-size:.7rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
}
.pass-badge--hot{
  background:rgba(229,57,53,.2); color:#FFB4A8; border:1px solid rgba(229,57,53,.35);
  animation:grow-pulse 2.8s ease-in-out infinite;
}
.pass-badge--soon{
  background:rgba(255,179,0,.12); color:var(--gold-soft); border:1px solid rgba(255,179,0,.35);
}
.pass-card h3{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1rem, 1.1vw + .7rem, 1.2rem); font-weight:400; margin-bottom:6px;
  line-height:1.2;
}
.pass-unit{
  margin:0 0 14px;
  color:var(--faint);
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
}
.pass-toggle{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-bottom:12px;
  padding:4px;
  border-radius:999px;
  background:rgba(16,6,0,.35);
  border:1px solid rgba(255,179,0,.18);
}
.pass-toggle button{
  border:none;
  background:transparent;
  color:var(--muted);
  font:inherit;
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:9px 8px;
  border-radius:999px;
  cursor:var(--cursor-dandiya-pointer);
  transition:background .2s, color .2s;
}
.pass-toggle button.is-active{
  background:var(--grad-cta);
  color:#fff;
  box-shadow:0 6px 16px rgba(234,90,0,.3);
}
.pass-rates{
  display:grid;
  gap:8px;
  margin-bottom:18px;
}
.pass-rate{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,179,0,.08);
  border:1px solid rgba(255,179,0,.18);
  transition:border-color .2s, background .2s;
}
.pass-rate.is-selected{
  background:rgba(255,179,0,.16);
  border-color:rgba(255,179,0,.45);
}
.pass-rate span{
  color:var(--muted);
  font-size:.85rem;
  font-weight:500;
}
.pass-rate strong{
  color:var(--gold);
  font-size:clamp(1rem, 1vw + .7rem, 1.2rem);
  font-weight:700;
  font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
  letter-spacing:.01em;
  white-space:nowrap;
}
.pass-card .price{
  font-size:2.1rem; font-weight:700; color:var(--gold);
  display:flex; flex-direction:column; gap:2px; margin-bottom:18px; line-height:1;
}
.pass-card .price--soon{
  font-size:1.35rem;
  letter-spacing:.02em;
  color:var(--gold-soft);
}
.pass-card .price small{font-size:.8rem; color:var(--faint); font-weight:500;}
.pass-card ul{list-style:none; margin-bottom:16px;}
.pass-card li{
  color:var(--muted); font-size:.78rem; line-height:1.35;
  padding:6px 0; border-bottom:1px solid rgba(255,179,0,.12);
}
.pass-desc{
  margin:0 0 10px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.35;
}
.pay-btn{
  width:100%; border:none; cursor:var(--cursor-dandiya-pointer);
  padding:11px 12px; border-radius:999px;
  background:var(--grad-cta); color:#fff;
  font-weight:700; font-size:.82rem; font-family:inherit;
  box-shadow:0 10px 24px rgba(234,90,0,.28);
  transition:transform .2s, filter .2s, box-shadow .2s;
}
.pay-btn--enquire{
  background:linear-gradient(135deg, rgba(255,179,0,.18), rgba(234,90,0,.22));
  border:1px solid rgba(255,179,0,.45);
  color:#FFF8F0;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.pay-btn:hover{
  filter:brightness(1.06);
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(234,90,0,.38);
}
.pay-btn--enquire:hover{
  border-color:rgba(255,179,0,.65);
  box-shadow:0 12px 28px rgba(234,90,0,.28);
}
.pass-card.featured .pay-btn{
  box-shadow:0 12px 28px rgba(234,90,0,.4);
}
.pass-card.featured .pay-btn--enquire{
  box-shadow:0 10px 24px rgba(234,90,0,.28);
}

.pass-desc{margin:0 0 12px;color:var(--muted);font-size:.88rem;line-height:1.45;min-height:2.6em}
.pay-btn--disabled{
  display:inline-flex;align-items:center;justify-content:center;
  opacity:.55;cursor:not-allowed;pointer-events:none;
}
.passes--one{max-width:420px;margin-left:auto;margin-right:auto}

.passes-note{
  position:relative; z-index:1;
  max-width:640px; margin:28px auto 0;
  text-align:center;
  color:var(--faint);
  font-size:.85rem; line-height:1.55;
}
a.pay-btn{
  display:inline-flex; align-items:center; justify-content:center;
  text-align:center; text-decoration:none;
}

/* ---------- BOOKING FLOW ---------- */
.flow{
  position:relative;
  padding:96px 4vw 100px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 60% 45% at 50% 0%, rgba(234,90,0,.14), transparent 55%),
    #120700;
  border-block:1px solid rgba(255,179,0,.12);
}
.flow-glow{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 40% 30% at 50% 80%, rgba(255,179,0,.06), transparent 60%);
}
.flow-dust{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.flow-dust i{
  position:absolute;
  width:3px; height:3px; border-radius:50%;
  background:#FFB300;
  box-shadow:0 0 8px rgba(255,179,0,.7);
  opacity:.4;
  left:calc(6% + (var(--i) * 5.1%));
  top:calc(10% + ((var(--i) * 23) % 75) * 1%);
  animation:twinkle-pop 2.8s ease-in-out infinite;
  animation-delay:calc(var(--i) * .12s);
}
.flow-head{position:relative; z-index:1; text-align:center; max-width:720px; margin:0 auto 48px;}
.flow-eyebrow{
  font-size:.7rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold-soft); margin:0 0 12px;
}
.flow-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700; font-size:clamp(1.9rem, 4vw, 2.9rem);
  line-height:1.12; letter-spacing:-.02em; color:#FFF8F0; margin:0 0 16px;
}
.flow-divider{
  display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:14px;
}
.flow-divider span{
  width:56px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,179,0,.55), transparent);
}
.flow-divider i{
  width:8px; height:8px; rotate:45deg;
  background:var(--gold); box-shadow:0 0 10px rgba(255,179,0,.6);
}
.flow-sub{margin:0 auto; max-width:42ch; color:var(--muted); line-height:1.55; font-size:.98rem;}
.flow-board{
  position:relative; z-index:1;
  max-width:1100px; margin:0 auto;
  padding-top:8px;
}
.flow-line{
  position:absolute;
  left:8%; right:8%; top:26px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,179,0,.45) 12%, rgba(255,179,0,.45) 88%, transparent);
  pointer-events:none;
}
.flow-line::before,
.flow-line::after{
  content:""; position:absolute; top:50%;
  width:7px; height:7px; rotate:45deg;
  transform:translateY(-50%);
  background:var(--gold);
  box-shadow:0 0 8px rgba(255,179,0,.55);
}
.flow-line::before{left:18%;}
.flow-line::after{right:18%;}
.flow-track{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(5, 1fr); gap:14px;
  perspective:1000px;
}
.flow-step{position:relative; text-align:center; padding-top:4px;}
.flow-num{
  position:relative; z-index:2;
  display:inline-grid; place-items:center;
  width:36px; height:36px; margin:0 auto -10px;
  border-radius:50%;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:.72rem; font-weight:700;
  color:#1A0800;
  background:linear-gradient(135deg, #FFE08A, #EA5A00);
  box-shadow:0 0 0 4px rgba(234,90,0,.15), 0 8px 18px rgba(234,90,0,.35);
}
.flow-card{
  padding:28px 12px 20px;
  border-radius:28px 28px 16px 16px;
  border:1px solid rgba(255,179,0,.28);
  background:linear-gradient(180deg, rgba(255,179,0,.1), rgba(16,6,0,.62));
  transform-style:preserve-3d;
  transition:transform .3s, border-color .25s, box-shadow .25s;
}
.flow-step:hover .flow-card{
  transform:translateY(-6px) rotateX(5deg) rotateY(-4deg);
  border-color:rgba(255,179,0,.48);
  box-shadow:0 16px 36px rgba(0,0,0,.28);
}
.flow-icon{
  width:44px; height:44px; margin:0 auto 12px;
  color:#FFF8F0;
}
.flow-icon svg{width:100%; height:100%;}
.flow-card h3{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:.86rem; font-weight:700; margin:0 0 8px; color:#FFF8F0;
}
.flow-card p{margin:0; color:var(--muted); font-size:.8rem; line-height:1.45;}
.flow-cta{position:relative; z-index:1; text-align:center; margin-top:36px;}

/* ---------- THROWBACK / GALLERY ---------- */
.tb{
  position:relative;
  padding:88px 0 72px;
  overflow:hidden;
  background:
    radial-gradient(900px 420px at 50% -10%, rgba(234,90,0,.2), transparent 55%),
    linear-gradient(180deg, #0c0400 0%, #140800 50%, #0c0400 100%);
  border-block:1px solid rgba(255,179,0,.12);
}
.tb-glow{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(600px 280px at 80% 90%, rgba(255,179,0,.06), transparent 60%);
}
.tb-head{
  position:relative; z-index:1; text-align:center;
  max-width:560px; margin:0 auto 36px; padding:0 5vw;
}
.tb-eyebrow{
  font-size:.7rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin:0 0 12px;
}
.tb-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700; font-size:clamp(2rem, 4.5vw, 3rem);
  line-height:1.12; margin:0 0 12px; color:#FFF8F0;
}
.tb-title span{
  display:block;
  background:linear-gradient(120deg, #FFF8F0, #FFB300 45%, #EA5A00);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.tb-sub{margin:0 auto; max-width:38ch; color:var(--muted); font-size:1rem; line-height:1.5;}
.tb-tags,.tb-rings,.tb-mood,.tb-ornament,.tb-flower,.tb-arc{display:none !important;}

.reel-stage{
  position:relative; z-index:1;
  max-width:1100px; margin:0 auto;
  padding:0 56px;
}
.reel-track{
  display:flex; gap:18px;
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-padding-inline: max(18px, calc(50% - 140px));
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  padding:18px 8px 28px;
  scrollbar-width:none;
}
.reel-track::-webkit-scrollbar{display:none}
.reel-card{
  position:relative;
  flex:0 0 min(280px, 78vw);
  aspect-ratio:9 / 16;
  border-radius:26px;
  overflow:hidden;
  scroll-snap-align:center;
  border:1px solid rgba(255,179,0,.16);
  background:#080300;
  box-shadow:0 24px 50px rgba(0,0,0,.45);
  transition:transform .4s cubic-bezier(.22,1,.36,1), border-color .3s, box-shadow .35s, opacity .35s;
  opacity:.72;
  transform:scale(.92);
}
.reel-card.is-active{
  opacity:1;
  transform:scale(1);
  border-color:rgba(255,179,0,.55);
  box-shadow:
    0 0 0 1px rgba(234,90,0,.25),
    0 28px 60px rgba(234,90,0,.22),
    0 20px 50px rgba(0,0,0,.5);
}
.reel-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  background:#000;
}
.reel-veil{
  position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(8,3,0,.55) 0%, transparent 26%),
    linear-gradient(0deg, rgba(8,3,0,.92) 0%, rgba(8,3,0,.2) 38%, transparent 55%);
}
.reel-progress{
  position:absolute; top:12px; left:14px; right:48px; z-index:4;
  height:2.5px; border-radius:999px;
  background:rgba(255,255,255,.2);
  overflow:hidden;
}
.reel-progress i{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg, #FFB300, #EA5A00);
  border-radius:inherit;
  transition:width .1s linear;
}
.reel-badge{
  position:absolute; top:22px; left:14px; z-index:4;
  padding:6px 11px; border-radius:999px;
  font-size:.62rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  background:rgba(8,3,0,.55); color:#FFF8F0;
  border:1px solid rgba(255,179,0,.28);
  backdrop-filter:blur(10px);
}
.reel-expand{
  position:absolute; top:16px; right:12px; z-index:5;
  width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(8,3,0,.5);
  color:#fff; display:grid; place-items:center; padding:0;
  cursor:pointer; backdrop-filter:blur(10px);
  transition:background .2s, transform .2s;
}
.reel-expand svg{width:15px; height:15px}
.reel-expand:hover{background:rgba(234,90,0,.5); transform:scale(1.05)}
.reel-caption{
  position:absolute; left:16px; right:16px; top:42%;
  transform:translateY(-50%); z-index:3;
  margin:0; text-align:center;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1.05rem, 3vw, 1.35rem);
  line-height:1.25; color:#FFF8F0;
  text-shadow:0 4px 24px rgba(0,0,0,.7);
  pointer-events:none;
}
.reel-meta,
.reel-caption{display:none!important}
.reel-nav{
  position:absolute; top:50%; z-index:6;
  width:48px; height:48px; margin-top:-24px;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.4);
  background:rgba(16,6,0,.75);
  color:var(--cream);
  display:grid; place-items:center; padding:0;
  cursor:pointer; backdrop-filter:blur(10px);
  transition:background .2s, transform .2s, box-shadow .2s;
}
.reel-nav svg{width:22px; height:22px}
.reel-nav:hover{
  background:rgba(234,90,0,.4);
  transform:scale(1.06);
  box-shadow:0 8px 24px rgba(234,90,0,.25);
}
.reel-nav--prev{left:4px}
.reel-nav--next{right:4px}
.reel-dots{
  position:relative; z-index:1;
  display:flex; justify-content:center; gap:8px;
  margin-top:4px;
}
.reel-dot{
  width:8px; height:8px; border-radius:999px; border:none; padding:0;
  background:rgba(255,179,0,.28); cursor:pointer;
  transition:width .25s, background .25s;
}
.reel-dot.is-on{
  width:26px;
  background:linear-gradient(90deg, #FFB300, #EA5A00);
}
.reel-wrap,.reel-hint{display:none !important;}
@media (max-width:720px){
  .tb{padding:64px 0 56px}
  .reel-stage{padding:0}
  .reel-track{
    gap:12px;
    padding:12px 16px 22px;
    scroll-padding-inline:16px;
  }
  .reel-card{
    flex-basis:min(260px, 78vw);
    border-radius:22px;
  }
  .reel-nav{display:none}
}

.gal-photo-strip{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;
  width:min(1140px, calc(100% - 32px));
  margin:28px auto 0;
}
.gal-photo-card{
  margin:0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,179,0,.22);
  aspect-ratio:3/4;
  background:rgba(16,6,0,.55);
}
.gal-photo-card img{
  width:100%;height:100%;object-fit:cover;display:block;
}

.tb-mood-cell{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(255,179,0,.22);
  background:rgba(16,6,0,.55);
  min-height:280px;
  transition:transform .3s, border-color .3s, box-shadow .3s;
}
.tb-mood-cell:hover{
  transform:translateY(-4px);
  border-color:rgba(255,179,0,.45);
  box-shadow:0 18px 40px rgba(0,0,0,.3);
}
.tb-mood-media{position:absolute; inset:0;}
.tb-mood-img{object-fit:cover;}
.tb-mood-cell.is-contain .tb-mood-media{background:#1A1008;}
.tb-mood-cell.is-contain .tb-mood-img{padding:24px; object-fit:contain;}
.tb-mood-veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(16,6,0,.88) 100%);
}
.tb-mood-cell h3{
  position:absolute; left:18px; right:18px; bottom:18px; z-index:2;
  margin:0;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:1.15rem; font-weight:700; color:#FFF8F0;
}
.tb-mood-chip{
  position:absolute; top:14px; left:14px; z-index:2;
  padding:5px 10px; border-radius:999px;
  font-size:.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(16,6,0,.65); color:var(--gold-soft);
  border:1px solid rgba(255,179,0,.35);
  backdrop-filter:blur(8px);
}
.tb-stage{
  position:relative; z-index:1;
  max-width:980px; margin:0 auto;
  min-height:420px;
  display:flex; align-items:center; justify-content:center;
}
.tb-rail{
  position:relative; width:min(100%, 720px); height:380px;
}
.tb-card{
  position:absolute; left:50%; top:50%;
  width:min(260px, 58vw); height:340px;
  margin-left:calc(min(260px, 58vw) / -2);
  margin-top:-170px;
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(255,179,0,.18);
  background:#1A0800;
  cursor:var(--cursor-dandiya-pointer);
  transition:transform .45s cubic-bezier(.22,1,.36,1), opacity .35s ease, border-color .3s, box-shadow .3s;
  will-change:transform, opacity;
}
.tb-card.is-active{
  border-color:rgba(255,179,0,.55);
  box-shadow:0 0 0 1px rgba(234,90,0,.35), 0 24px 50px rgba(0,0,0,.4);
}
.tb-badge{
  position:absolute; top:14px; left:14px; z-index:3;
  padding:5px 10px; border-radius:999px;
  font-size:.68rem; font-weight:700; letter-spacing:.04em;
  background:rgba(16,6,0,.75); color:#FFF8F0;
  border:1px solid rgba(255,179,0,.35);
}
.tb-media{position:absolute; inset:0;}
.tb-img{object-fit:cover; object-position:center;}
.tb-veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(16,6,0,.92) 100%);
}
.tb-card h3{
  position:absolute; left:16px; right:16px; bottom:18px; z-index:2;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:.95rem; font-weight:700; margin:0;
}
.tb-card.is-contain .tb-media{background:#1A1008;}
.tb-card.is-contain .tb-img{padding:18px;}
.tb-nav{
  position:absolute; top:50%; z-index:5;
  width:46px; height:46px; margin-top:-23px;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.35);
  background:rgba(16,6,0,.55);
  color:var(--cream);
  display:grid; place-items:center;
  padding:0;
  cursor:var(--cursor-dandiya-pointer); backdrop-filter:blur(8px);
  transition:background .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.tb-nav svg{width:20px; height:20px; display:block;}
.tb-nav:hover{
  background:rgba(234,90,0,.25);
  border-color:rgba(255,179,0,.55);
  transform:scale(1.06);
  box-shadow:0 0 0 1px rgba(255,179,0,.2) inset, 0 8px 20px rgba(0,0,0,.25);
}
.tb-nav--prev{left:0;}
.tb-nav--next{right:0;}
.tb-dots{
  position:relative; z-index:1;
  display:flex; justify-content:center; align-items:center; gap:8px;
  margin-top:18px;
  color:var(--gold);
}
.tb-dot{
  width:7px; height:7px; border-radius:999px; border:none; padding:0;
  background:rgba(255,179,0,.35); cursor:var(--cursor-dandiya-pointer);
  transition:width .25s, background .25s;
}
.tb-dot.is-on{width:28px; background:linear-gradient(90deg, #FFB300, #EA5A00);}

/* ---------- CONTACT ---------- */
.contact{
  position:relative;
  padding:100px 5vw 110px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 55% 42% at 50% 0%, rgba(234,90,0,.16), transparent 58%),
    radial-gradient(ellipse 40% 35% at 15% 80%, rgba(255,179,0,.05), transparent 55%),
    #0E0500;
  border-block:1px solid rgba(255,179,0,.12);
}
.contact-glow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 45% 35% at 50% 100%, rgba(255,179,0,.07), transparent 60%);
}
.contact-dust{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.contact-dust i{
  position:absolute;
  width:3px; height:3px; border-radius:50%;
  background:#FFB300;
  box-shadow:0 0 8px rgba(255,179,0,.7);
  opacity:.35;
  left:calc(8% + (var(--i) * 6.2%));
  top:calc(12% + ((var(--i) * 17) % 70) * 1%);
  animation:twinkle-pop 2.8s ease-in-out infinite;
  animation-delay:calc(var(--i) * .14s);
}
.contact-head{position:relative; z-index:1; text-align:center; max-width:640px; margin:0 auto 44px;}
.contact-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.72rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin:0 0 14px;
}
.contact-eyebrow i{
  width:7px; height:7px; rotate:45deg;
  background:var(--gold); box-shadow:0 0 8px rgba(255,179,0,.55);
}
.contact-title{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700; font-size:clamp(2.1rem, 4.2vw, 3.1rem);
  margin:0 0 12px; color:#FFF8F0; letter-spacing:-.02em;
}
.contact-ornament{
  display:grid; place-items:center; margin:0 auto 12px;
  color:var(--gold); width:18px; height:18px;
}
.contact-ornament svg{width:100%; height:100%;}
.contact-sub{margin:0 auto; max-width:42ch; color:var(--muted); line-height:1.55; font-size:.98rem;}
.contact-grid{
  position:relative; z-index:1;
  max-width:1040px; margin:0 auto;
  display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:stretch;
}
.contact-panel{
  position:relative;
  padding:30px 26px 28px;
  border-radius:24px;
  border:1px solid rgba(255,179,0,.32);
  background:
    linear-gradient(165deg, rgba(255,179,0,.1), rgba(16,6,0,.78) 42%, rgba(10,4,0,.88));
  box-shadow:
    0 0 0 1px rgba(234,90,0,.08),
    0 0 48px rgba(234,90,0,.12),
    0 24px 56px rgba(0,0,0,.35);
  overflow:hidden;
  transition:border-color .3s, box-shadow .3s, transform .3s;
}
.contact-panel:hover{
  border-color:rgba(255,179,0,.48);
  box-shadow:
    0 0 0 1px rgba(234,90,0,.16),
    0 0 60px rgba(234,90,0,.18),
    0 28px 60px rgba(0,0,0,.4);
  transform:translateY(-3px);
}
.contact-panel-shine{
  position:absolute; inset:-20% -10% auto;
  height:55%;
  background:linear-gradient(180deg, rgba(255,179,0,.12), transparent 70%);
  pointer-events:none;
}
.contact-panel::before,
.contact-panel::after{
  content:""; position:absolute; width:20px; height:20px;
  border:1.5px solid rgba(255,179,0,.6);
  z-index:2;
}
.contact-panel::before{top:12px; left:12px; border-right:none; border-bottom:none;}
.contact-panel::after{bottom:12px; right:12px; border-left:none; border-top:none;}
.contact-panel--info::after{display:none;}
.contact-panel--info::before{display:block;}
.contact-panel--form::before{
  content:""; top:auto; bottom:12px; left:12px; right:auto;
  border:1.5px solid rgba(255,179,0,.6);
  border-right:none; border-top:none;
}
.contact-panel--form::after{
  top:12px; right:12px; bottom:auto; left:auto;
  border:1.5px solid rgba(255,179,0,.6);
  border-left:none; border-bottom:none;
}
.contact-panel-head{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:12px; margin-bottom:12px;
}
.contact-panel-head h3{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1.4rem, 2.2vw, 1.7rem); font-weight:700; color:var(--gold); margin:0;
}
.contact-ico{
  display:grid; place-items:center;
  width:34px; height:34px; flex-shrink:0;
}
.contact-ico-frame{
  display:grid; place-items:center;
  width:24px; height:24px; rotate:45deg;
  border:1px solid rgba(255,179,0,.7);
  background:rgba(234,90,0,.12);
  box-shadow:0 0 12px rgba(255,179,0,.25);
  color:var(--gold);
  transition:transform .25s, border-color .25s, box-shadow .25s, background .25s;
}
.contact-list li:hover .contact-ico-frame,
.contact-panel-head:hover .contact-ico-frame{
  transform:scale(1.08);
  border-color:rgba(255,179,0,.95);
  background:rgba(234,90,0,.22);
  box-shadow:0 0 16px rgba(255,179,0,.4);
}
.contact-ico-frame svg{
  width:13px; height:13px; rotate:-45deg;
}
.contact-lead{
  position:relative; z-index:1;
  color:var(--muted); font-size:.92rem; line-height:1.55; margin:0 0 22px;
}
.contact-list{
  position:relative; z-index:1;
  list-style:none; margin:0; padding:0; display:grid; gap:4px;
}
.contact-list li{
  display:grid; grid-template-columns:34px 1fr; gap:12px; align-items:center;
  padding:12px 0;
  border-bottom:1px solid rgba(255,179,0,.12);
}
.contact-list li:last-child{border-bottom:none;}
.contact-label{
  display:block;
  font-size:.66rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-soft); margin-bottom:2px;
}
.contact-list a, .contact-list span:not(.contact-label){
  color:#FFF8F0; font-weight:600; font-size:.95rem; word-break:break-word;
}
.contact-list a:hover{color:var(--gold);}
.contact-split{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  padding:8px 0;
}
.contact-split i,
.contact-split b{
  width:8px; height:8px; rotate:45deg;
  background:linear-gradient(135deg, #FFE08A, #EA5A00);
  box-shadow:0 0 10px rgba(255,179,0,.5);
}
.contact-split b{width:11px; height:11px;}
.contact-split span{
  width:1px; height:36px;
  background:linear-gradient(180deg, transparent, rgba(255,179,0,.55), transparent);
}
.contact-form{position:relative; z-index:1; display:grid; gap:12px;}
.contact-field{
  position:relative; display:block;
}
.contact-field-ico{
  position:absolute; left:14px; top:14px;
  width:18px; height:18px; color:var(--gold-soft); pointer-events:none;
}
.contact-field-ico svg{width:100%; height:100%;}
.contact-field--area .contact-field-ico{top:16px;}
.contact-form input,
.contact-form textarea{
  width:100%;
  padding:13px 14px 13px 42px;
  border-radius:14px;
  border:1px solid rgba(255,179,0,.22);
  background:rgba(255,248,240,.035);
  color:var(--cream); font:inherit;
  transition:border-color .2s, background .2s, box-shadow .2s;
}
.contact-form textarea{resize:vertical; min-height:110px;}
.contact-form input::placeholder,
.contact-form textarea::placeholder{color:rgba(255,248,240,.42);}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:rgba(255,179,0,.55);
  background:rgba(255,248,240,.06);
  box-shadow:0 0 0 3px rgba(234,90,0,.12);
}
.contact-submit{
  margin-top:4px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  width:100%; border:none; cursor:var(--cursor-dandiya-pointer);
  padding:15px 20px; border-radius:999px;
  background:linear-gradient(90deg, #FFB300 0%, #EA5A00 55%, #C04E00 100%);
  color:#fff;
  font-weight:700; font-size:.95rem; font-family:inherit;
  box-shadow:0 14px 32px rgba(234,90,0,.35);
  transition:transform .2s, filter .2s, box-shadow .2s;
}
.contact-submit svg{width:18px; height:18px; flex-shrink:0;}
.contact-submit em{font-style:normal; opacity:.9;}
.contact-submit:hover{
  transform:translateY(-2px);
  filter:brightness(1.06);
  box-shadow:0 18px 36px rgba(234,90,0,.42);
}
.contact-submit:active{transform:scale(.98);}

/* ---------- FAQ ---------- */
.faq-section{
  position:relative;
  padding:96px 5vw 108px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 55% 42% at 0% 0%, rgba(234,90,0,.16), transparent 55%),
    radial-gradient(ellipse 40% 35% at 100% 100%, rgba(255,179,0,.08), transparent 55%),
    #0c0500;
  border-block:1px solid rgba(255,179,0,.12);
}
.faq-glow{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 35% 30% at 50% 100%, rgba(255,179,0,.06), transparent 60%);
}
.faq-shell{
  position:relative; z-index:1;
  max-width:1040px; margin:0 auto;
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr);
  gap:40px 48px;
  align-items:start;
}
.faq-intro{position:sticky; top:96px;}
.faq-eyebrow{
  margin:0 0 12px;
  font-size:.68rem; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); font-family:var(--font-sub), "Open Sans", Calibri, sans-serif;
}
.faq-title{
  margin:0 0 12px;
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:400; font-size:clamp(1.9rem, 4vw, 2.7rem);
  line-height:1.12; color:#FFF8F0;
}
.faq-title span{
  display:block;
  background:linear-gradient(120deg, #FFF8F0, #FFB300 48%, #EA5A00);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.faq-sub{
  margin:0 0 22px; max-width:30ch;
  color:var(--muted); font-size:.98rem; line-height:1.55;
}
.faq-help{
  display:inline-flex; align-items:center; gap:6px;
  font-weight:700; font-size:.9rem; color:#1a0800;
  padding:11px 18px; border-radius:999px;
  background:var(--grad-cta);
  box-shadow:0 10px 24px rgba(234,90,0,.3);
  transition:transform .18s, filter .18s;
}
.faq-help:hover{color:#1a0800; filter:brightness(1.06); transform:translateY(-2px)}
.faq-wrap{display:grid; gap:8px;}
.faq-item{
  border:1px solid rgba(255,179,0,.14);
  border-radius:16px;
  background:rgba(255,248,240,.028);
  overflow:hidden;
  transition:border-color .25s, background .25s, box-shadow .25s;
}
.faq-item:hover{border-color:rgba(255,179,0,.3)}
.faq-item.open{
  border-color:rgba(255,179,0,.42);
  background:linear-gradient(145deg, rgba(42,22,8,.75), rgba(14,7,0,.7));
  box-shadow:0 18px 40px rgba(0,0,0,.28);
}
.faq-q{
  width:100%; display:flex; align-items:center; gap:14px;
  background:none; border:none; color:inherit;
  cursor:var(--cursor-dandiya-pointer);
  font:inherit; text-align:left;
  padding:17px 16px 17px 18px;
  min-height:58px;
  position:relative;
}
.faq-item.open .faq-q::before{
  content:"";
  position:absolute; left:0; top:14px; bottom:14px; width:3px;
  border-radius:0 4px 4px 0;
  background:linear-gradient(180deg, #FFB300, #EA5A00);
}
.faq-q-text{
  flex:1; min-width:0;
  font-weight:650; font-size:1.02rem; line-height:1.35;
  color:#FFF8F0;
}
.faq-chevron{
  flex:0 0 auto;
  width:30px; height:30px; border-radius:50%;
  border:1px solid rgba(255,179,0,.28);
  background:rgba(255,179,0,.07);
  position:relative;
  transition:transform .25s, background .25s, border-color .25s;
}
.faq-chevron::before{
  content:"";
  position:absolute; left:50%; top:46%;
  width:8px; height:8px;
  border-right:2px solid var(--gold);
  border-bottom:2px solid var(--gold);
  transform:translate(-50%,-60%) rotate(45deg);
  transition:transform .25s;
}
.faq-item.open .faq-chevron{
  background:rgba(255,179,0,.16);
  border-color:rgba(255,179,0,.5);
}
.faq-item.open .faq-chevron::before{
  transform:translate(-50%,-30%) rotate(225deg);
}
.faq-a{
  max-height:0; overflow:hidden;
  transition:max-height .35s ease;
}
.faq-a p{
  margin:0;
  padding:0 52px 18px 18px;
  color:var(--muted); font-size:.95rem; line-height:1.65;
}
.faq-item.open .faq-a{max-height:320px;}
.faq-num,.faq-icon,.faq-head{display:none !important;}
@media (max-width:860px){
  .faq-shell{grid-template-columns:1fr; gap:26px}
  .faq-intro{position:static; text-align:center}
  .faq-sub{margin-left:auto; margin-right:auto}
  .faq-title span{display:inline}
}
@media (max-width:560px){
  .faq-section{padding:68px 4vw 78px}
  .faq-q{padding:15px 14px; min-height:52px}
  .faq-q-text{font-size:.95rem}
  .faq-a p{padding:0 16px 16px 16px}
}

/* ---------- FOOTER ---------- */
.site-footer{
  position:relative;
  overflow:hidden;
  padding:72px 5vw 28px;
  border-top:1px solid rgba(255,179,0,.14);
  background:
    radial-gradient(ellipse 55% 40% at 50% 0%, rgba(234,90,0,.14), transparent 55%),
    linear-gradient(180deg, #140800 0%, #0A0400 100%);
}
.footer-glow{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 40% 30% at 80% 100%, rgba(255,179,0,.05), transparent 55%);
}
.footer-arch{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center; gap:12px;
  margin:0 auto 40px; max-width:420px;
}
.footer-arch span{
  flex:1; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,179,0,.5), transparent);
}
.footer-arch i{
  width:9px; height:9px; rotate:45deg;
  background:linear-gradient(135deg, #FFE08A, #EA5A00);
  box-shadow:0 0 12px rgba(255,179,0,.55);
}
.footer-inner{
  position:relative; z-index:1;
  max-width:1100px; margin:0 auto;
  display:grid;
  grid-template-columns:minmax(220px, 1.1fr) 1.6fr;
  gap:48px 56px;
  align-items:start;
  padding-bottom:36px;
}
.footer-brand-block{max-width:320px;}
.footer-logo{display:block; margin:0 0 14px; width:52px; height:52px;}
.footer-logo-img{
  display:block;
  width:148px;
  height:148px;
  max-width:none;
  object-fit:cover;
  margin:0 0 16px;
  border-radius:50%;
  border:1px solid rgba(255,179,0,.35);
  background:#F2F2F2;
  box-shadow:0 8px 22px rgba(0,0,0,.4);
  filter:none;
}
.footer-brand{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-weight:700; font-size:clamp(1.35rem, 2.4vw, 1.75rem);
  color:#FFF8F0; margin:0 0 8px; letter-spacing:-.01em;
}
.footer-tagline{
  margin:0 0 10px;
  color:var(--muted); font-size:.95rem; line-height:1.5;
}
.footer-meta-line{
  margin:0 0 22px;
  color:var(--faint);
  font-size:.88rem; line-height:1.55;
}
.footer-cta{display:inline-flex; padding:12px 22px; font-size:.88rem;}
.footer-cols{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:28px 24px;
}
.footer-col h3{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); margin:0 0 14px;
}
.footer-col ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.footer-col a{
  color:rgba(255,248,240,.78); font-size:.92rem; font-weight:600;
  transition:color .2s;
}
.footer-col a:hover{color:var(--gold);}
.footer-meta li{display:grid; gap:2px;}
.footer-meta span{
  font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--faint);
}
.footer-meta strong,
.footer-meta a{
  color:#FFF8F0; font-size:.9rem; font-weight:600;
}
.footer-bottom{
  position:relative; z-index:1;
  max-width:1100px; margin:0 auto;
  padding-top:22px;
  border-top:1px solid rgba(255,179,0,.12);
  display:flex; flex-wrap:wrap; align-items:center;
  justify-content:space-between; gap:12px 20px;
}
.social-row{display:flex; gap:18px; flex-wrap:wrap;}
.social-row a{
  color:var(--faint); font-size:.82rem; font-weight:700; letter-spacing:.04em;
  transition:color .2s;
}
.social-row a:hover{color:var(--gold);}
.social-muted{
  color:rgba(255,248,240,.28); font-size:.82rem; font-weight:700; letter-spacing:.04em;
}
.footer-copy{color:var(--faint); font-size:.8rem; margin:0;}
.contact-error{
  margin:0;
  color:#FF8A65;
  font-size:.85rem;
  font-weight:600;
}

@media (max-width:900px){
  .footer-inner{grid-template-columns:1fr; gap:36px;}
  .footer-brand-block{max-width:none; text-align:center;}
  .footer-logo{margin-left:auto; margin-right:auto;}
  .footer-logo-img{margin-left:auto; margin-right:auto;}
  .footer-cols{grid-template-columns:1fr 1fr; text-align:left;}
  .footer-bottom{justify-content:center; text-align:center;}
}
@media (max-width:560px){
  .footer-cols{grid-template-columns:1fr;}
  .site-footer{padding:56px 5vw 24px;}
}
@media (max-width:1100px){
  .passes--four{grid-template-columns:repeat(2,1fr); max-width:720px; gap:16px;}
}
@media (max-width:980px){
  .site-nav-shell{
    grid-template-columns:1fr auto;
    border-radius:22px;
    padding:8px 10px 8px 10px;
  }
  .nav-links-wrap{display:none;}
  .burger{display:flex;}
  .mobile-scrim{display:block;}
  .mobile-menu{display:flex;}
  .nav-cta:not(.mobile-cta){display:none;}
  .nav-lotus{display:none;}
  .about-inner{grid-template-columns:1fr; gap:36px;}
  .about-visual{max-width:440px; margin:0 auto;}
  .about-lead{max-width:none;}
  .about-portrait{aspect-ratio:3/4;}
  .artist-grid{grid-template-columns:repeat(2,1fr);}
  .artists-reveal{padding:44px 22px;}
  .passes{grid-template-columns:1fr; max-width:420px;}
  .passes--four{grid-template-columns:1fr; max-width:420px;}
  .pass-card.featured{transform:none;}
  .pass-card:hover,
  .pass-card.featured:hover{transform:translateY(-6px);}
  .event-journey{padding:64px 5vw 72px;}
  .event-journey-inner{padding:0;}
  .event-journey-chips{grid-template-columns:1fr; max-width:420px;}
  .event-journey-chips--two{grid-template-columns:1fr 1fr; max-width:480px;}
  .event-dancer{display:none;}
  .event-journey-title{font-size:clamp(1.75rem, 7vw, 2.2rem);}
  .about-diya{width:72px; height:72px; right:8px; bottom:12px;}
  .about-diya-model{min-height:72px;}
  .flow-track{grid-template-columns:repeat(2, 1fr); gap:18px 14px; max-width:560px;}
  .flow-line{display:none;}
  .flow-board{max-width:560px;}
  .contact-grid{grid-template-columns:1fr; max-width:480px;}
  .contact-split{flex-direction:row; padding:4px 0;}
  .contact-split span{width:48px; height:1px;}
  .tb-mood{grid-template-columns:1fr; max-width:420px;}
  .tb-mood-cell{min-height:240px;}
  .tb-nav{width:40px; height:40px; font-size:1.35rem;}
  .why-feature{padding:26px 20px;}
  .why-feature-ico--3d{width:72px; height:72px; min-width:72px;}
  .why-model{min-height:72px;}
  .icon-toran{width:52px;}
  .hangings--section .icon-lotus{width:64px;}
}
@media (max-width:600px){
  section{padding:72px 5vw;}
  .hero{align-items:flex-end; padding-bottom:8vh;}
  .hangings--hero .hanging--toran{opacity:.7;}
  .why-mosaic{grid-template-columns:1fr;}
  .why-feature:nth-child(odd){border-right:none;}
  .why-mosaic--five .why-feature:nth-child(5){max-width:none;}
  .why-feature:nth-child(1),
  .why-feature:nth-child(2),
  .why-feature:nth-child(3),
  .why-feature:nth-child(4){border-bottom:1px solid rgba(255,179,0,.18);}
  .why-feature:nth-child(5){border-bottom:none;}
  .flow-track{grid-template-columns:1fr; max-width:320px;}
  .flow-board{max-width:320px;}
  .event-journey-chips--two{grid-template-columns:1fr;}
  .tb-stage{min-height:360px;}
  .tb-rail{height:340px;}
  .tb-card{height:300px; margin-top:-150px;}
  .icon-toran{width:40px;}
  .hangings--section{display:none;}
  .wa-fab{right:auto; bottom:auto; padding:11px 14px; font-size:.8rem;}
  .site-fabs{right:12px; bottom:12px;}
  .music-fab{width:42px; height:42px;}
}
@media (prefers-reduced-motion: reduce){
  .hang-sway, .hang-sway--slow, .spark, .spark-twinkle,
  .hero-bg-breathe, .twinkle, .btn-glow::after, .title-shimmer,
  .hero-title-word, .icon-toran, .icon-lotus, .icon-lotus--nav, .pass-badge, .wa-fab,
  .tap-music-fab,
  .tap-music-fab-rings i,
  .tap-music-fab-icon,
  .music-fab.is-pulse,
  .event-journey-bead, .dance-sway, .dance-sway--alt,
  .about-shine, .about-portrait-shine, .about-portrait-ring, .about-cap-dot, .about-pillar-num, .about-orb,
  .why-dust i, .flow-dust i, .tb-arc i, .contact-dust i,
  .pass-badge--hot, .model-stage__pulse{
    animation:none !important;
  }
  .pass-card:hover,
  .pass-card.featured:hover,
  .flow-step:hover .flow-card{
    transform:none;
  }
  .hero-bg-video{display:none;}
}

/* ---------- POLICY PAGES ---------- */
.policy-page{
  min-height:100vh;
  padding:120px 5vw 80px;
  background:
    radial-gradient(ellipse 55% 40% at 50% 0%, rgba(234,90,0,.14), transparent 55%),
    #100600;
}
.policy-inner{max-width:720px; margin:0 auto;}
.policy-back{
  display:inline-flex; margin-bottom:24px;
  color:var(--gold-soft); font-weight:700; font-size:.9rem;
}
.policy-back:hover{color:var(--gold);}
.policy-page h1{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:clamp(1.8rem, 4vw, 2.6rem);
  margin:0 0 28px; color:#FFF8F0;
}
.policy-body h2{
  font-family:var(--font-display), "Open Sans", Calibri, sans-serif;
  font-size:1rem; font-weight:700;
  color:var(--gold); margin:28px 0 10px;
}
.policy-body p{
  color:var(--muted); line-height:1.65; margin:0 0 12px; font-size:.95rem;
}
.policy-body a{color:var(--gold-soft); text-decoration:underline;}
.footer-col ul span{color:rgba(255,248,240,.78); font-size:.92rem; font-weight:600;}

/* ---------- BOOKING / ADMIN / SCANNER ---------- */
.booking-select,
.booking-form select{
  width:100%;
  padding:14px 16px; border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,248,240,.05);
  color:var(--cream); font:inherit;
}
.booking-error{color:#ffb4a8; font-size:.9rem; margin:0;}
.booking-actions-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;}
.booking-actions-row .btn-primary,
.booking-actions-row .btn-ghost{flex:1; text-align:center; justify-content:center;}

.admin-shell{
  min-height:100vh;
  padding:28px 5vw 64px;
  background:
    radial-gradient(ellipse 50% 35% at 50% 0%, rgba(234,90,0,.18), transparent 55%),
    #100600;
  color:var(--cream);
}
.admin-shell--wide{max-width:1280px; margin:0 auto;}
.admin-login-card{
  width:min(100%, 420px);
  margin:10vh auto 0;
  padding:32px 26px;
  border-radius:24px;
  border:1px solid rgba(255,179,0,.28);
  background:linear-gradient(165deg, rgba(255,179,0,.1), rgba(16,6,0,.6));
}
.admin-top{
  display:flex; justify-content:space-between; gap:16px; align-items:flex-start;
  margin-bottom:24px; flex-wrap:wrap;
}
.admin-top h1{margin:4px 0 0; font-family:var(--font-display), "Open Sans", Calibri, sans-serif; font-weight:400;}
.admin-top-actions{display:flex; flex-wrap:wrap; gap:8px;}
.admin-stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px;
  margin-bottom:22px;
}
.admin-stats > div{
  padding:14px; border-radius:16px;
  border:1px solid rgba(255,179,0,.2);
  background:rgba(255,179,0,.06);
  display:flex; flex-direction:column; gap:6px;
}
.admin-stats span{color:var(--faint); font-size:.75rem; text-transform:uppercase; letter-spacing:.06em;}
.admin-stats strong{font-size:1.25rem; color:var(--gold);}
.admin-search{display:flex; gap:10px; margin-bottom:16px;}
.admin-search input{
  flex:1; padding:12px 14px; border-radius:12px;
  border:1px solid var(--line); background:rgba(255,248,240,.05); color:var(--cream); font:inherit;
}
.admin-table-wrap{overflow:auto; border:1px solid rgba(255,179,0,.18); border-radius:16px;}
.admin-table{width:100%; border-collapse:collapse; font-size:.88rem;}
.admin-table th,.admin-table td{padding:12px 10px; border-bottom:1px solid rgba(255,179,0,.12); text-align:left; vertical-align:top;}
.admin-table th{background:rgba(255,179,0,.08); color:var(--gold-soft);}
.admin-table small{color:var(--faint);}
.admin-link{
  background:none; border:none; color:var(--gold); cursor:pointer; font:inherit; text-decoration:underline;
}
.scanner-form{max-width:560px; display:grid; gap:12px; margin-bottom:20px;}
.scanner-tabs{
  display:flex; gap:8px; margin:0 0 18px; flex-wrap:wrap;
}
.scanner-tabs button{
  appearance:none; border:1px solid rgba(255,179,0,.28); background:rgba(255,179,0,.06);
  color:var(--muted); padding:10px 16px; border-radius:999px; font-weight:600; cursor:pointer;
}
.scanner-tabs button.is-active{
  background:rgba(234,90,0,.22); border-color:rgba(234,90,0,.55); color:var(--gold);
}
.scanner-form label{display:grid; gap:6px; color:var(--muted); font-size:.85rem; font-weight:600;}
.scanner-form input{
  padding:14px 16px; border-radius:14px; border:1px solid var(--line);
  background:rgba(255,248,240,.05); color:var(--cream); font:inherit;
}
.scanner-result{
  max-width:560px; padding:24px; border-radius:20px; margin-bottom:16px;
  border:1px solid rgba(255,179,0,.25);
}
.scanner-result.is-ok{background:rgba(46,160,67,.18); border-color:rgba(46,160,67,.45);}
.scanner-result.is-bad{background:rgba(229,57,53,.18); border-color:rgba(229,57,53,.45);}
.scanner-result h2{margin:0 0 8px; font-family:var(--font-display), "Open Sans", Calibri, sans-serif;}
.scanner-result ul{margin:12px 0 16px; padding-left:18px; color:var(--muted);}

.payment-demo-box{
  margin-top:8px;
  padding:16px;
  border-radius:16px;
  border:1px dashed rgba(255,179,0,.45);
  background:rgba(255,179,0,.08);
  display:grid;
  gap:10px;
}
.payment-demo-badge{
  margin:0;
  width:fit-content;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(255,179,0,.2);
  color:var(--gold-soft);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.payment-razorpay-alt{
  margin-top:12px;
  width:100%;
  text-align:center;
  justify-content:center;
}
.payment-methods{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 18px;
  padding:0;
}
.payment-methods li{
  padding:6px 12px;
  border-radius:999px;
  border:1px solid rgba(255,179,0,.28);
  background:rgba(255,179,0,.08);
  color:var(--gold-soft);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.04em;
}

/* PHP port helpers — keep original look */
.festive-hangings--hero{
  position:absolute; inset:0; pointer-events:none; z-index:2;
  display:flex; justify-content:space-between; align-items:flex-start;
  padding:12px 4vw 0; opacity:.9;
}
.festive-hangings--hero .hang-toran{width:min(420px,42vw); height:auto; margin:0 auto; position:absolute; left:50%; transform:translateX(-50%); top:0;}
.festive-hangings--hero .hang-lotus{width:64px; margin-top:8px;}
.mobile-drawer{
  position:fixed; inset:0; z-index:200; background:rgba(16,6,0,.96);
  display:none; align-items:center; justify-content:center;
}
.mobile-drawer.is-open{display:flex;}
.mobile-drawer-inner{display:grid; gap:18px; text-align:center; font-family:var(--font-sub),"Open Sans", Calibri,sans-serif; font-weight:600;}
.mobile-drawer-inner a{font-size:1.2rem; color:var(--gold-soft);}
.flow-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; width:min(var(--content-max),92%); margin:0 auto 48px;}
.flow-card,.contact-card{
  border:1px solid var(--line); border-radius:20px; padding:22px;
  background:linear-gradient(180deg,rgba(42,18,0,.9),rgba(16,6,0,.9));
}
.faq-list{width:min(720px,92%); margin:0 auto 64px; display:grid; gap:10px;}
.faq-list .faq-item{border:1px solid var(--line); border-radius:16px; padding:4px 16px; background:rgba(255,179,0,.05);}
.faq-list .faq-q{cursor:pointer; list-style:none; padding:14px 0; font-family:var(--font-sub),"Open Sans", Calibri,sans-serif; font-weight:600; color:var(--gold-soft);}
.faq-list .faq-a{padding:0 0 14px; color:var(--muted); line-height:1.55;}
.footer-copy{text-align:center; padding:0 16px 40px; color:var(--faint); font-size:.85rem;}
.site-nav.is-scrolled{padding-top:14px;}

/* Transparent hangings — no white card behind toran/lotus */
.hangings--hero .hanging--toran,
.hangings--hero .icon-toran,
.hangings--section .icon-lotus,
.icon-toran,
.icon-lotus,
.icon-lotus--nav{
  background:transparent !important;
  box-shadow:none;
}
.hangings--hero .hanging--toran img,
.hangings--hero .icon-toran{
  background:transparent !important;
  mix-blend-mode:normal;
}
.icon-toran svg,
svg.icon-toran{
  display:block;
  background:transparent;
}

/* Phone / small viewport polish */
@media (max-width:980px){
  .hangings--hero .hanging{
    top:88px;
  }
  .hangings--hero .icon-toran{
    width:44px;
  }
  .hero-content{
    padding-left:max(16px, env(safe-area-inset-left));
    padding-right:max(16px, env(safe-area-inset-right));
    padding-bottom:max(28px, env(safe-area-inset-bottom));
  }
  .hero-title{
    font-size:clamp(2.4rem, 12vw, 3.4rem);
    line-height:1.05;
  }
  .hero-actions{
    flex-direction:column;
    width:min(100%, 320px);
    margin-inline:auto;
    gap:12px;
  }
  .hero-actions .btn-primary,
  .hero-actions .btn-ghost{
    width:100%;
    justify-content:center;
    min-height:48px;
  }
  .site-fabs{
    right:max(12px, env(safe-area-inset-right));
    bottom:max(16px, env(safe-area-inset-bottom));
  }
  .tap-music-fab,
  .wa-fab{
    min-height:44px;
  }
  .booking-page{
    padding:max(12px, env(safe-area-inset-top)) 16px 40px;
  }
  .booking-page-card{
    padding:22px 16px;
  }
  .booking-pass-grid{
    grid-template-columns:1fr;
  }
  .contact-grid{
    grid-template-columns:1fr;
    width:100%;
    max-width:100%;
    gap:16px;
    margin:0;
  }
  .contact-head{
    margin-bottom:28px;
    padding:0 4px;
  }
  .contact-title{
    font-size:clamp(1.75rem, 7vw, 2.2rem);
  }
  .contact-sub{
    font-size:.9rem;
    max-width:34ch;
  }
  .contact-panel{
    padding:22px 18px 20px;
    border-radius:20px;
  }
  .contact-panel:hover{
    transform:none;
  }
  .contact-list li{
    grid-template-columns:32px 1fr;
    gap:10px;
    align-items:flex-start;
    padding:14px 0;
  }
  .contact-list a,
  .contact-list span:not(.contact-label){
    word-break:break-word;
    overflow-wrap:anywhere;
    line-height:1.4;
  }
  .contact-form input,
  .contact-form textarea{
    font-size:16px; /* prevent iOS zoom */
    min-height:48px;
  }
  .contact-submit{
    min-height:50px;
    font-size:.92rem;
  }
  .contact-split{
    justify-content:center;
    padding:2px 0 6px;
  }
  .mobile-menu{
    padding-top:max(24px, env(safe-area-inset-top));
    padding-bottom:max(24px, env(safe-area-inset-bottom));
  }
  .ops-shell{
    padding:20px 14px 40px;
  }
  .ops-stats{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:560px){
  .hangings--hero .hanging--left{left:4px;}
  .hangings--hero .hanging--right{right:4px;}
  .hangings--hero .icon-toran{width:36px;}
  .event-journey-chips--two{
    grid-template-columns:1fr;
  }
  .why-mosaic--five{
    grid-template-columns:1fr;
  }
  .tb-mood{
    grid-template-columns:1fr;
  }
  .flow-track{
    grid-template-columns:1fr;
  }
  .contact{
    padding:72px 16px 88px;
  }
}

/* ---------- Experience cards with photos ---------- */
.why-inner:has(.why-mosaic--photos){max-width:1100px;}
.why-mosaic.why-mosaic--photos{
  max-width:none;
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:20px;
  border:0; background:none; box-shadow:none;
}
.why-mosaic.why-mosaic--photos > .why-feature--photo{
  grid-column:span 2;
  display:flex; flex-direction:column; align-items:stretch;
  max-width:none; width:auto; margin:0; padding:0;
  border:1px solid rgba(255,179,0,.2);
  border-radius:20px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(255,179,0,.08), rgba(16,6,0,.85) 60%);
  box-shadow:0 22px 46px -26px rgba(0,0,0,.85);
  transition:transform .4s ease, border-color .4s, box-shadow .4s;
}
.why-mosaic.why-mosaic--photos > .why-feature--photo:nth-child(n+4){grid-column:span 3;}
.why-mosaic.why-mosaic--photos > .why-feature--photo:hover{
  transform:translateY(-6px);
  border-color:rgba(255,179,0,.55);
  background:linear-gradient(180deg, rgba(255,179,0,.12), rgba(16,6,0,.85) 60%);
  box-shadow:0 30px 60px -28px rgba(234,90,0,.55), 0 0 0 1px rgba(255,179,0,.15);
}
.why-feature-photo{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#120700;
}
.why-mosaic--photos > .why-feature--photo:nth-child(n+4) .why-feature-photo{aspect-ratio:2/1;}
.why-feature-photo img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .8s ease;
}
.why-feature-photo::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(12,5,0,.15) 0%, transparent 35%, transparent 60%, rgba(16,6,0,.9) 100%);
}
.why-feature--photo:hover .why-feature-photo img{transform:scale(1.07);}
.why-photo-num{
  position:absolute; left:14px; top:14px; z-index:1;
  display:inline-grid; place-items:center;
  min-width:38px; height:28px; padding:0 10px; border-radius:999px;
  background:linear-gradient(135deg, #FFC93C, #EA5A00);
  color:#1d0900; font-size:.76rem; font-weight:700; letter-spacing:.06em;
  box-shadow:0 6px 16px rgba(234,90,0,.45);
}
.why-mosaic--photos .why-feature--photo .why-feature-copy{
  position:relative; z-index:1;
  margin-top:-34px;
  padding:0 22px 24px;
}
.why-mosaic--photos .why-feature--photo .why-feature-copy::before{
  content:""; display:block;
  width:34px; height:3px; margin-bottom:12px; border-radius:3px;
  background:linear-gradient(90deg, #FFB300, #EA5A00);
  transition:width .4s ease;
}
.why-mosaic--photos .why-feature--photo:hover .why-feature-copy::before{width:64px;}
.why-mosaic--photos .why-feature--photo h3{font-size:1.15rem; margin:0 0 6px;}
.why-mosaic--photos .why-feature--photo p{max-width:none; font-size:.9rem;}
.why-swipe{display:none;}
@media (max-width:900px){
  .why-mosaic.why-mosaic--photos{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px;}
  .why-mosaic.why-mosaic--photos > .why-feature--photo,
  .why-mosaic.why-mosaic--photos > .why-feature--photo:nth-child(n+4){grid-column:auto;}
  .why-mosaic.why-mosaic--photos > .why-feature--photo:nth-child(5){grid-column:1 / -1;}
  .why-mosaic--photos > .why-feature--photo:nth-child(n+4) .why-feature-photo{aspect-ratio:4/3;}
  .why-mosaic--photos > .why-feature--photo:nth-child(5) .why-feature-photo{aspect-ratio:21/9;}
}
@media (max-width:600px){
  .why-mosaic.why-mosaic--photos{
    display:flex; gap:14px;
    overflow-x:auto; scroll-snap-type:x mandatory;
    margin:0 -5vw 18px; padding:6px 5vw 16px;
    scrollbar-width:none;
  }
  .why-mosaic.why-mosaic--photos::-webkit-scrollbar{display:none;}
  .why-mosaic.why-mosaic--photos > .why-feature--photo,
  .why-mosaic.why-mosaic--photos > .why-feature--photo:nth-child(n+4),
  .why-mosaic.why-mosaic--photos > .why-feature--photo:nth-child(5){flex:0 0 82%; scroll-snap-align:center;}
  .why-mosaic.why-mosaic--photos > .why-feature--photo:hover{transform:none;}
  .why-mosaic--photos > .why-feature--photo .why-feature-photo,
  .why-mosaic--photos > .why-feature--photo:nth-child(n+4) .why-feature-photo,
  .why-mosaic--photos > .why-feature--photo:nth-child(5) .why-feature-photo{aspect-ratio:4/3;}
  .why-mosaic--photos .why-feature--photo .why-feature-copy{padding:0 18px 20px;}
  .why-swipe{
    display:flex; align-items:center; justify-content:center; gap:8px;
    margin:0 0 22px; color:var(--gold-soft); font-size:.8rem; font-weight:600; letter-spacing:.04em;
  }
}

