:root {
  --ink: #09060b;
  --ink-soft: #130b14;
  --paper: #f8f2f7;
  --muted: #bcaeb9;
  --pink: #ff238d;
  --pink-deep: #bc075c;
  --violet: #7b2cff;
  --cyan: #ff238d;
  --line: rgba(255, 255, 255, .13);
  --display: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  --body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Premium booking quick brief */
.booking-studio{position:relative;display:flex;flex-direction:column;gap:1rem;padding:1.35rem;border:1px solid rgba(255,255,255,.16);border-radius:1.2rem;background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,35,141,.06));box-shadow:0 18px 60px rgba(8,2,14,.35),inset 0 1px 0 rgba(255,255,255,.12);overflow:hidden}
.booking-studio::before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 78% 18%,rgba(255,35,141,.22),transparent 38%),radial-gradient(circle at 18% 90%,rgba(0,229,255,.14),transparent 36%);pointer-events:none;animation:bookingGlow 9s ease-in-out infinite alternate}
.booking-studio>*{position:relative;z-index:1}
.booking-label{display:block;margin-bottom:.6rem;color:#f4dce9;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase}
.booking-picks{display:flex;flex-wrap:wrap;gap:.5rem}
.booking-pick{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.6rem .78rem;background:rgba(8,4,14,.32);color:#fff;font:inherit;font-size:.72rem;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}
.booking-pick:hover,.booking-pick:focus-visible{transform:translateY(-2px);border-color:rgba(255,35,141,.72);outline:none;box-shadow:0 0 0 3px rgba(255,35,141,.12)}
.booking-pick.is-active{border-color:var(--pink);background:linear-gradient(135deg,rgba(255,35,141,.25),rgba(111,72,255,.24));box-shadow:0 0 22px rgba(255,35,141,.2)}
.booking-details{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.booking-details label{display:grid;gap:.38rem;color:#e3ccd9;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}
.booking-details input{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.17);border-radius:.65rem;padding:.68rem .72rem;background:rgba(0,0,0,.22);color:#fff;font:inherit;font-size:.78rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.booking-details input::placeholder{color:#aa93a7}.booking-details input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,229,255,.12)}
.booking-summary{margin:0;color:#f7e6ef;font-size:.78rem;line-height:1.5}
.booking-trust{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.2rem;color:#cbb3c5;font-size:.66rem;line-height:1.4}
.booking-trust span{padding:.52rem .65rem;border:1px solid rgba(255,255,255,.12);border-radius:.65rem;background:rgba(255,255,255,.04)}
.booking-trust strong{display:block;color:#fff;font-size:.64rem;letter-spacing:.1em}
.service-card{font:inherit}
.gallery-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.3rem}
.gallery-filter{border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:.55rem .75rem;background:rgba(255,255,255,.04);color:#d9c4d4;font:inherit;font-size:.66rem;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,color .2s ease}
.gallery-filter:hover,.gallery-filter:focus-visible{transform:translateY(-2px);border-color:var(--pink);outline:none;color:#fff}.gallery-filter.is-active{border-color:var(--pink);background:rgba(255,35,141,.16);color:#fff}
@media(max-width:980px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@keyframes bookingGlow{from{transform:translate3d(-2%,1%,0) scale(.98)}to{transform:translate3d(3%,-2%,0) scale(1.04)}}
@media(max-width:700px){.booking-studio{padding:1rem}.booking-details{grid-template-columns:1fr}.booking-pick{font-size:.68rem;padding:.55rem .66rem}.booking-trust{gap:.45rem}.booking-trust span{flex:1 1 42%}.service-grid{grid-template-columns:1fr 1fr;gap:.6rem}.service-card{min-height:13rem;padding:.85rem}.service-card h3{font-size:1.2rem}.service-card p{font-size:.68rem}}
@media(prefers-reduced-motion:reduce){.booking-studio::before{animation:none}.booking-pick,.gallery-filter{transition:none}}
.chatbot-toggle{border-radius:1rem;width:4.6rem;height:5.5rem;box-shadow:0 10px 35px rgba(255,35,141,.34)}.chatbot-toggle img{object-position:center 12%;border-radius:.8rem;mask-image:linear-gradient(to bottom,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 85%,transparent 100%)}.riya-hover-bubble{position:fixed;z-index:45;max-width:15rem;padding:.65rem .8rem;border:1px solid rgba(255,35,141,.45);border-radius:.8rem;background:rgba(19,8,18,.96);box-shadow:0 14px 40px rgba(0,0,0,.42);color:#fff;font-size:.76rem;line-height:1.35;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease}.riya-hover-bubble.is-visible{opacity:1;transform:translateY(0)}@media(max-width:600px){.chatbot-toggle{width:4.2rem;height:5rem}.riya-hover-bubble{display:none}}@media(prefers-reduced-motion:reduce){.riya-hover-bubble{transition:none}}

/* Final hero sizing override: full image, no panel crop. */
.hero-image-panel { inset: 0 !important; }
.hero-image-panel .hero-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 72% center !important;
}
@media(max-width:640px){
  .hero-image-panel .hero-image { inset:0 !important; width:100% !important; height:100% !important; object-fit:cover !important; object-position:72% center !important; }
}

/* Keep the full-bleed portrait in front while letting the uploaded clips show through. */
.hero-video-visual { z-index: -2 !important; opacity: .88 !important; }
.hero-video-visual .hero-video { opacity: .82 !important; }
.hero-image-panel { z-index: -1 !important; background: transparent !important; }
.hero-image-panel .hero-image { opacity: .7 !important; }
.hero-image-panel::before { opacity: .22 !important; }

/* Desktop split hero: uploaded VDJ video left, full-height VDJ image right. */
@media (min-width: 641px) {
  .hero-video-visual { inset: 0 50% 0 0 !important; z-index: -2 !important; opacity: 1 !important; }
  .hero-video-visual .hero-video { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center 46% !important; opacity: .92 !important; }
  .hero-video-visual::after { background: linear-gradient(90deg, rgba(7,3,7,.05), rgba(7,3,7,.05) 75%, rgba(7,3,7,.32)); }
  .hero-image-panel { inset: 0 0 0 50% !important; z-index: -1 !important; background: #10070d !important; box-shadow: -22px 0 56px rgba(7,3,7,.42) !important; }
  .hero-image-panel .hero-image { object-fit: cover !important; object-position: 72% center !important; opacity: 1 !important; }
  .hero-image-panel::before { opacity: .18 !important; }
  .hero-image-reveal { display: none !important; }
  .hero-copy { width: min(44vw, 540px) !important; margin: 4rem 0 0 calc((50vw - min(44vw, 540px)) / 2) !important; }
  .hero-logo { width: min(100%, 29rem) !important; }
}
@media (max-width: 640px) {
  .hero-video-visual { inset: 0 0 50% 0 !important; z-index: -2 !important; opacity: 1 !important; }
  .hero-video-visual .hero-video { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center 46% !important; opacity: .9 !important; }
  .hero-image-panel { inset: 50% 0 0 0 !important; z-index: -1 !important; background: #10070d !important; box-shadow: 0 -20px 48px rgba(7,3,7,.42) !important; }
  .hero-image-panel .hero-image { object-fit: cover !important; object-position: 72% center !important; opacity: 1 !important; }
  .hero-image-panel::before { opacity: .14 !important; }
  .hero-image-reveal { display: none !important; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
.chatbot-toggle{position:fixed;right:1.25rem;bottom:1.25rem;z-index:40;width:3.8rem;height:3.8rem;padding:0;border:2px solid var(--pink);border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--pink),var(--pink-deep));box-shadow:0 10px 35px rgba(255,35,141,.48);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.chatbot-toggle img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 22%;filter:saturate(1.08) contrast(1.04)}.chatbot-toggle::after{position:absolute;right:.1rem;bottom:.1rem;width:.68rem;height:.68rem;border:2px solid #120711;border-radius:50%;background:#5cff9a;content:""}.chatbot-toggle:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 14px 42px rgba(255,35,141,.62)}
.chatbot{position:fixed;right:1.25rem;bottom:5.35rem;z-index:41;width:min(22rem,calc(100vw - 2rem));overflow:hidden;border:1px solid rgba(255,35,141,.5);border-radius:1.1rem;background:rgba(15,8,15,.96);box-shadow:0 22px 70px rgba(0,0,0,.5);backdrop-filter:blur(16px);color:#fff}.chatbot[hidden]{display:none}.chatbot-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .85rem;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(110deg,rgba(255,35,141,.22),transparent)}.chatbot-head strong,.chatbot-head small{display:block}.chatbot-head small{margin-top:.2rem;color:var(--muted);font-size:.7rem}.chatbot-close{border:0;background:transparent;color:#fff;font-size:1.45rem;cursor:pointer}.chatbot-messages{display:grid;gap:.55rem;max-height:13rem;overflow:auto;padding:.9rem}.chatbot-msg{max-width:88%;padding:.65rem .75rem;border-radius:.8rem;font-size:.78rem;line-height:1.4}.chatbot-msg.bot{border:1px solid rgba(255,35,141,.25);background:rgba(255,35,141,.1)}.chatbot-msg.user{justify-self:end;background:var(--pink);color:#170711}.chatbot-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;padding:0 .9rem .75rem}.chatbot-actions button{padding:.55rem .45rem;border:1px solid rgba(255,255,255,.14);border-radius:.55rem;color:#fff;background:rgba(255,255,255,.06);font-size:.68rem;cursor:pointer}.chatbot-actions button:hover{border-color:var(--pink);background:rgba(255,35,141,.14)}.chatbot-form{display:flex;gap:.45rem;padding:.75rem;border-top:1px solid rgba(255,255,255,.12)}.chatbot-form input{min-width:0;flex:1;padding:.65rem .7rem;border:1px solid rgba(255,255,255,.17);border-radius:.55rem;color:#fff;background:rgba(255,255,255,.07);outline:none}.chatbot-form input:focus{border-color:var(--pink)}.chatbot-form button{width:2.3rem;border:0;border-radius:.55rem;color:#fff;background:var(--pink);cursor:pointer}@media(max-width:600px){.chatbot-toggle{right:1rem;bottom:1rem}.chatbot{right:1rem;bottom:5rem}}
.chatbot-whatsapp{display:block;margin:0 .9rem .7rem;padding:.6rem;border:1px solid rgba(92,255,154,.4);border-radius:.55rem;color:#8fffb5;background:rgba(92,255,154,.08);font-size:.7rem;font-weight:800;text-align:center;text-decoration:none}
/* Keep off-screen sections out of the initial render while preserving layout space. */
main > section:not(.hero), main > .ticker { content-visibility: auto; contain-intrinsic-size: 720px; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--paper);
  background:
    radial-gradient(circle at 86% 8%, rgba(123,44,255,.16), transparent 24rem),
    radial-gradient(circle at 8% 43%, rgba(255,35,141,.09), transparent 26rem),
    var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.chatbot-toggle{border-radius:1rem!important;width:4.6rem!important;height:3.2rem!important;font-weight:800;letter-spacing:.04em}.chatbot-toggle img{display:none!important}.chatbot-toggle::before{content:"Riya"}

body::before {
  position: fixed;
  inset: 0;
  z-index: 99;
  pointer-events: none;
  content: "";
  opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.skip-link {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 120;
  padding: .65rem 1rem;
  color: #000;
  background: #fff;
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 20;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: min(100% - 5rem, 1480px);
  margin: 0 auto;
  padding: 1.45rem 0;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.brand { display: inline-flex; align-items: center; width: max-content; }
.brand img { width: clamp(8.2rem, 11vw, 11rem); height: auto; filter: drop-shadow(0 6px 18px rgba(255,35,141,.18)); }
.brand-mark {
  display: grid;
  place-items: center;
  width: 2.25rem;
  aspect-ratio: 1;
  color: #fff;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  background: linear-gradient(145deg, var(--pink), var(--violet));
  font-size: .88rem;
  font-weight: 900;
  transform: rotate(-8deg);
}

.site-nav { display: flex; align-items: center; gap: 2.3rem; }
.site-nav a { position: relative; color: #e6dde4; font-size: .78rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.site-nav a::after { position: absolute; right: 0; bottom: -.5rem; left: 0; height: 2px; content: ""; background: var(--pink); transform: scaleX(0); transition: transform .25s ease; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { transform: scaleX(1); }
.site-nav a.is-active { color: #fff; text-shadow: 0 0 16px rgba(255,35,141,.5); }
.site-nav a.is-active::after { transform: scaleX(1); }

.header-cta { justify-self: end; padding: .7rem 1rem; border: 1px solid rgba(255,255,255,.35); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; transition: .25s ease; }
.header-cta:hover, .header-cta:focus-visible { color: #10050b; border-color: var(--pink); background: var(--pink); }
.menu-toggle { display: none; }

.hero {
  position: relative;
  display: flex;
  min-height: 100svh;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  background: #09060b;
}
.hero-video-visual { position: absolute; inset: 0; z-index: -5; overflow: hidden; background: #09060b; opacity: .32; }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .76; filter: saturate(1.08) contrast(1.05); }
.hero-video-two { opacity: .42; mix-blend-mode: screen; animation: heroVideoFade 12s ease-in-out infinite alternate; }
.hero-video-visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(7,3,7,.2), rgba(7,3,7,.2) 55%, rgba(7,3,7,.9)), linear-gradient(0deg, rgba(7,3,7,.46), transparent 42%); pointer-events: none; }
.hero-image-panel { position: absolute; inset: 0; z-index: -4; overflow: hidden; background: #10070d; box-shadow: none; }
.hero-image { width: 100%; height: 100%; object-fit: contain; object-position: center; background: #10070d; filter: saturate(1.05) contrast(1.03); }
.hero-image-panel::before { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(90deg, rgba(7,3,7,.7), transparent 28%), linear-gradient(0deg, rgba(7,3,7,.3), transparent 35%); pointer-events: none; }
.hero-vignette { position: absolute; inset: 0; z-index: -3; background: linear-gradient(90deg, rgba(7,3,7,.08) 0%, transparent 54%, rgba(7,3,7,.35) 100%), linear-gradient(0deg, rgba(7,3,7,.62), transparent 38%); pointer-events: none; }
.hero-orbit { position: absolute; z-index: -2; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; }
.orbit-one { top: 10%; right: -7%; width: 44vw; aspect-ratio: 1; box-shadow: 0 0 100px rgba(255,35,141,.15) inset; }
.orbit-two { top: 18%; right: 0; width: 31vw; aspect-ratio: 1; border-color: rgba(34,215,230,.18); }

.hero-copy { width: min(100% - 5rem, 1480px); margin: 4rem auto 0; }
.eyebrow { display: flex; align-items: center; gap: .75rem; margin: 0 0 1.2rem; font-size: .78rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow span { width: 2.6rem; height: 2px; background: var(--pink); }
.hero h1, .sound-heading h2, .live-copy h2, .section-top h2, .listen-copy h2, .rider h2, .contact h2 {
  margin: 0;
  font-family: var(--display);
  font-weight: 900;
  letter-spacing: .005em;
  line-height: .84;
  text-transform: uppercase;
}
.hero h1 { max-width: 760px; font-size: clamp(5rem, 10vw, 10.2rem); }
.hero h1 em, h2 em { color: var(--pink); font-style: normal; -webkit-text-stroke: 0; }
.hero-description { max-width: 36rem; margin: 1.7rem 0 2rem; color: #d7cad4; font-size: 1.08rem; }
.hero-actions { display: flex; align-items: center; gap: 1.75rem; }

@keyframes heroVideoFade { 0%, 42% { opacity: .12; } 58%, 100% { opacity: .5; } }

.button { display: inline-flex; align-items: center; justify-content: center; gap: .65rem; min-height: 3.25rem; padding: .85rem 1.3rem; border: 1px solid transparent; font-size: .78rem; font-weight: 850; letter-spacing: .1em; line-height: 1; text-transform: uppercase; transition: transform .22s ease, background .22s ease, color .22s ease; }
.button:hover, .button:focus-visible { transform: translateY(-3px); }
.button-primary { color: white; background: linear-gradient(115deg, var(--pink), var(--pink-deep)); box-shadow: 0 14px 42px rgba(255,35,141,.2); }
.button-light { color: #12050b; background: #fff; }
.text-link { display: inline-flex; align-items: center; gap: .6rem; font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.text-link span { color: var(--pink); }
.text-link.bright { padding-bottom: .28rem; border-bottom: 1px solid rgba(255,255,255,.35); }

.hero-meta { position: absolute; right: max(2.5rem, calc((100vw - 1480px) / 2)); bottom: 2.4rem; display: flex; gap: 2.2rem; }
.hero-meta div { display: flex; align-items: center; gap: .7rem; }
.hero-meta strong { font-family: var(--display); font-size: 2.3rem; line-height: 1; }
.hero-meta span { color: #cabcc6; font-size: .68rem; font-weight: 700; letter-spacing: .09em; line-height: 1.4; text-transform: uppercase; }
.scroll-cue { position: absolute; bottom: 2rem; left: 50%; display: grid; justify-items: center; gap: .5rem; transform: translateX(-50%); }
.scroll-cue span { font-size: .62rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; writing-mode: vertical-rl; }
.scroll-cue i { width: 1px; height: 2.5rem; background: linear-gradient(var(--pink), transparent); }

.ticker { overflow: hidden; padding: .68rem 0; color: #13030b; background: var(--pink); transform: rotate(-.7deg) scale(1.02); }
.ticker-track { display: flex; width: max-content; align-items: center; gap: 1.5rem; animation: ticker 24s linear infinite; font-family: var(--display); font-size: 1.35rem; letter-spacing: .05em; white-space: nowrap; }
.ticker-track i { font-style: normal; }
@keyframes ticker { to { transform: translateX(-50%); } }

.section { width: min(100% - 5rem, 1320px); margin: 0 auto; padding: 8rem 0; }
.section-label { display: flex; align-items: center; gap: .75rem; margin-bottom: 3.5rem; color: #a998a6; font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.section-label::after { width: min(9rem, 18vw); height: 1px; content: ""; background: var(--line); }
.section-label span { color: var(--pink); }
.overline { margin: 0 0 1rem; color: var(--pink); font-size: .74rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }

.about-grid { display: grid; grid-template-columns: 1fr .84fr; align-items: center; gap: clamp(3rem, 7vw, 8rem); }
.about-copy h2 { margin: 0 0 2rem; font-family: var(--display); font-size: clamp(3.6rem, 6vw, 7rem); letter-spacing: .005em; line-height: .89; text-transform: uppercase; }
.about-copy h2 span { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.7); }
.about-copy .lead { max-width: 44rem; color: #f4eaf1; font-size: 1.25rem; line-height: 1.58; }
.about-copy > p:not(.overline):not(.lead) { max-width: 39rem; color: var(--muted); }
.about-copy .text-link { margin-top: 1.35rem; }
.portrait-frame { position: relative; margin: 0; }
.portrait-frame::before { position: absolute; top: -1.2rem; right: -1.2rem; bottom: 3.2rem; left: 1.2rem; z-index: -1; content: ""; border: 1px solid rgba(255,35,141,.45); }
.portrait-frame img { width: 100%; max-height: 710px; object-fit: cover; object-position: center 28%; filter: saturate(.9) contrast(1.03); }
.portrait-frame figcaption { display: flex; justify-content: space-between; padding-top: .75rem; color: #aa9ba7; font-size: .66rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.portrait-number { position: absolute; right: -2.1rem; bottom: 7rem; z-index: 2; color: transparent; font-family: var(--display); font-size: clamp(4rem, 7vw, 8rem); line-height: 1; writing-mode: vertical-rl; -webkit-text-stroke: 1px rgba(255,255,255,.3); }

.sound { border-top: 1px solid var(--line); }
.sound-heading, .section-top { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 4rem; }
.sound-heading h2, .section-top h2, .listen-copy h2, .rider h2 { font-size: clamp(4rem, 7vw, 8rem); }
.sound-heading p, .section-top > p { max-width: 24rem; margin: 0 0 .5rem; color: var(--muted); }
.genre-list { border-top: 1px solid var(--line); }
.genre-list article { display: grid; grid-template-columns: 4rem 1fr minmax(15rem, 28rem); align-items: center; gap: 1.5rem; padding: 1.45rem 1rem; border-bottom: 1px solid var(--line); transition: background .25s ease, padding .25s ease; }
.genre-list article:hover { padding-right: 1.5rem; padding-left: 1.5rem; background: linear-gradient(90deg, rgba(255,35,141,.14), rgba(123,44,255,.06)); }
.genre-list span { color: var(--pink); font-size: .7rem; font-weight: 850; }
.genre-list h3 { margin: 0; font-size: clamp(1.5rem, 2.5vw, 2.4rem); letter-spacing: -.03em; }
.genre-list p { margin: 0; color: var(--muted); }

.live-banner { position: relative; min-height: 85svh; overflow: hidden; background: #050305; }
.live-banner > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.live-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,3,5,.83), rgba(5,3,5,.06) 58%, rgba(5,3,5,.2)), linear-gradient(0deg, rgba(5,3,5,.7), transparent 45%); }
.live-scanner { position: absolute; inset: clamp(1rem, 3vw, 3rem); z-index: 1; overflow: hidden; pointer-events: none; border: 1px solid rgba(255,255,255,.07); }
.live-scanner::before, .live-scanner::after, .live-scanner span::before, .live-scanner span::after { position: absolute; width: 2rem; height: 2rem; content: ""; border-color: var(--cyan); border-style: solid; opacity: .72; }
.live-scanner::before { top: -.05rem; left: -.05rem; border-width: 2px 0 0 2px; }
.live-scanner::after { top: -.05rem; right: -.05rem; border-width: 2px 2px 0 0; }
.live-scanner span::before { bottom: -.05rem; left: -.05rem; border-width: 0 0 2px 2px; }
.live-scanner span::after { right: -.05rem; bottom: -.05rem; border-width: 0 2px 2px 0; }
.live-scanner i { position: absolute; right: 0; left: 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(34,215,230,.8), rgba(255,35,141,.75), transparent); box-shadow: 0 0 18px rgba(34,215,230,.4); animation: xrScan 5s ease-in-out infinite; }
.live-scanner b { position: absolute; top: 1rem; left: 1rem; width: .5rem; aspect-ratio: 1; border-radius: 50%; background: var(--pink); box-shadow: 0 0 16px var(--pink); animation: xrBlink 1.4s ease-in-out infinite; }
.live-copy { position: absolute; bottom: 7%; left: max(2.5rem, calc((100vw - 1320px) / 2)); }
.live-copy p { font-size: .73rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.live-copy h2 { font-size: clamp(5rem, 11vw, 11rem); }
.live-badge { position: absolute; top: 15%; right: 8%; display: grid; place-items: center; width: 9rem; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(7,3,7,.42); backdrop-filter: blur(10px); transform: rotate(8deg); }
.live-badge span { color: var(--pink); font-size: .72rem; font-weight: 900; letter-spacing: .2em; }
.live-badge b { margin-top: -.9rem; font-family: var(--display); font-size: 2.7rem; line-height: 1; }

.section-top .text-link { margin-bottom: .7rem; }
.gallery-grid { display: flex; align-items: center; gap: clamp(.75rem, 2vw, 1.5rem); width: 100vw; margin-left: calc(50% - 50vw); padding: 2rem max(12vw, calc((100vw - 1320px) / 2)); overflow-x: auto; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-padding-inline: max(12vw, calc((100vw - 1320px) / 2)); scroll-snap-type: x mandatory; scrollbar-width: none; }
.gallery-grid::-webkit-scrollbar { display: none; }
.gallery-card { position: relative; flex: 0 0 min(68vw, 880px); aspect-ratio: 16 / 10; min-height: 0; overflow: hidden; padding: 0; color: #fff; border: 0; background: #171017; cursor: zoom-in; scroll-snap-align: center; opacity: .36; filter: saturate(.62) brightness(.62); transform: scale(.84); transition: opacity .45s ease, filter .45s ease, transform .55s cubic-bezier(.2,.75,.2,1), border-color .35s ease, box-shadow .35s ease; }
.gallery-card.is-active { z-index: 2; opacity: 1; filter: none; transform: scale(1); }
.gallery-card-wide, .gallery-card-tall, .gallery-card-feature { aspect-ratio: 16 / 10; }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.75,.2,1), filter .35s ease; }
.gallery-card::after { position: absolute; inset: 0; pointer-events: none; content: ""; background: linear-gradient(180deg, transparent 58%, rgba(7,3,7,.72)); }
.gallery-card:hover img, .gallery-card:focus-visible img { filter: saturate(1.12); transform: scale(1.035); }
.gallery-card span { position: absolute; bottom: 0; left: 0; z-index: 1; padding: .8rem .95rem; font-size: .67rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; background: rgba(7,3,7,.72); backdrop-filter: blur(8px); }
.gallery-controls { display: flex; align-items: center; justify-content: center; gap: 1.2rem; margin-top: 1rem; }
.gallery-controls p { display: flex; align-items: center; gap: .65rem; min-width: 8rem; margin: 0; color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .14em; }
.gallery-controls p i { width: 4rem; height: 1px; background: linear-gradient(90deg, var(--pink), rgba(255,255,255,.2)); }
.gallery-current { color: #fff; }
.gallery-arrow { display: grid; place-items: center; width: 3.2rem; aspect-ratio: 1; color: #fff; font-size: 1.2rem; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(255,255,255,.055); backdrop-filter: blur(12px); cursor: pointer; transition: border-color .25s ease, background .25s ease, transform .25s ease; }
.gallery-arrow:hover, .gallery-arrow:focus-visible { border-color: var(--pink); background: rgba(255,35,141,.16); transform: scale(1.06); }

.events { border-top: 1px solid var(--line); }
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1.8rem 0 2rem}
.service-card{position:relative;min-height:15rem;padding:1.1rem;text-align:left;border:1px solid rgba(255,255,255,.13);border-radius:1rem;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,35,141,.035));color:#fff;cursor:pointer;overflow:hidden;transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
.service-card::after{content:"";position:absolute;inset:auto -25% -45% 20%;height:8rem;background:radial-gradient(ellipse,rgba(255,35,141,.26),transparent 65%);opacity:.6;transition:transform .35s ease,opacity .35s ease;pointer-events:none}
.service-card:hover,.service-card:focus-visible{transform:translateY(-6px);border-color:rgba(255,35,141,.7);outline:none;box-shadow:0 20px 48px rgba(255,35,141,.12)}
.service-card:hover::after,.service-card:focus-visible::after{transform:translate(-12%,-12%) scale(1.14);opacity:1}
.service-card>*{position:relative;z-index:1}.service-index{display:block;color:#bea7ba;font-size:.62rem;font-weight:800;letter-spacing:.14em}.service-icon{display:block;margin:.75rem 0 .55rem;color:var(--pink);font-size:1.25rem}.service-card h3{margin:0;font-size:1.45rem;line-height:.95;letter-spacing:-.04em}.service-card h3 em{color:var(--pink);font-style:normal}.service-card p{margin:.8rem 0 1rem;color:#cbb8c7;font-size:.72rem;line-height:1.45}.service-link{color:#fff;font-size:.63rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.instagram-event-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.instagram-event-card { min-width: 0; overflow: hidden; padding: 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 1.35rem; background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,35,141,.035)); box-shadow: 0 22px 65px rgba(0,0,0,.3); }
.instagram-event-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .2rem .2rem 1rem; }
.instagram-event-heading span { color: var(--pink); font-size: .68rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.instagram-event-heading time { color: #fff; font-size: .72rem; font-weight: 850; letter-spacing: .1em; white-space: nowrap; }
.instagram-event-card .instagram-media { width: 100% !important; min-width: 0 !important; margin: 0 auto !important; border-radius: .9rem !important; }
.instagram-event-card .instagram-media > a { display: grid; min-height: 34rem; place-items: center; padding: 2rem; color: #fff; border: 1px solid rgba(255,255,255,.12); border-radius: .9rem; background: #100b10; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.event-list { display: grid; gap: .8rem; }
.event-card { position: relative; display: grid; grid-template-columns: 12rem 8rem 1fr auto; align-items: center; min-height: 10rem; overflow: hidden; border: 1px solid var(--line); background: rgba(255,255,255,.025); transition: border .25s ease, transform .25s ease; }
.event-card:hover { border-color: rgba(255,35,141,.55); transform: translateX(.35rem); }
.event-card > img { width: 100%; height: 100%; min-height: 10rem; object-fit: cover; filter: saturate(.8); }
.event-card time { display: flex; align-items: center; gap: .65rem; padding: 0 1.5rem; }
.event-card time b { font-family: var(--display); font-size: 3.6rem; line-height: 1; }
.event-card time span { color: var(--pink); font-size: .62rem; font-weight: 850; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }
.event-card div p { margin: 0 0 .25rem; color: #a999a5; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.event-card h3 { margin: 0; font-size: clamp(1.4rem, 2.3vw, 2.4rem); letter-spacing: -.03em; }
.event-arrow { padding: 2rem; color: var(--pink); font-size: 1.5rem; }

.listen { border-top: 1px solid var(--line); }
.listen-grid { display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: clamp(3rem, 6vw, 7rem); }
.video-wrap { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border: 1px solid rgba(255,255,255,.18); background: #000; box-shadow: 0 24px 90px rgba(123,44,255,.18); }
.video-wrap::before { position: absolute; top: -30%; right: -10%; z-index: -1; width: 50%; aspect-ratio: 1; content: ""; border-radius: 50%; background: var(--violet); filter: blur(80px); opacity: .25; }
.video-wrap iframe { width: 100%; height: 100%; border: 0; }
.listen-copy p:not(.overline) { color: var(--muted); }
.video-section-head { display:grid; grid-template-columns:1fr auto; align-items:end; gap:2rem; margin-bottom:clamp(2.5rem,5vw,5rem); }
.video-section-head h2 { font-size:clamp(4rem,7vw,8rem); line-height:.86; margin:.5rem 0 0; }
.channel-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.75rem; }
.video-library { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.video-card { background:rgba(255,255,255,.045); border:1px solid var(--line); border-radius:1.25rem; overflow:hidden; transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease; }
.video-card:hover { transform:translateY(-5px); border-color:rgba(255,67,157,.55); box-shadow:0 20px 50px rgba(0,0,0,.3); }
.video-facade { position:relative; display:block; width:100%; aspect-ratio:16/9; padding:0; border:0; background:#09090b; overflow:hidden; cursor:pointer; }
.video-facade img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .35s ease; }
.video-card:hover .video-facade img { transform:scale(1.045); filter:saturate(1.12); }
.video-play { position:absolute; inset:50% auto auto 50%; translate:-50% -50%; display:grid; place-items:center; width:4rem; height:4rem; padding-left:.2rem; border-radius:50%; color:#fff; background:linear-gradient(135deg,#ff2e93,#8b5cff); box-shadow:0 0 0 10px rgba(255,255,255,.12),0 12px 35px rgba(255,46,147,.45); transition:scale .25s ease; }
.video-facade:hover .video-play { scale:1.1; }
.video-card iframe { width:100%; aspect-ratio:16/9; display:block; border:0; }
.video-info { padding:1rem 1.1rem 1.2rem; display:grid; grid-template-columns:1fr auto; gap:.3rem 1rem; }
.video-info span,.video-info time { color:var(--muted); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.video-info time { text-align:right; }
.video-info h3 { grid-column:1/-1; margin:.25rem 0 0; font-size:clamp(1rem,1.5vw,1.25rem); line-height:1.25; }
.release-meta { display: flex; gap: 1rem; margin: 1.7rem 0; padding: .8rem 0; border-block: 1px solid var(--line); color: #d4c5d0; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.release-meta span + span { padding-left: 1rem; border-left: 1px solid var(--line); }

.craft { border-top: 1px solid var(--line); }
.craft-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.craft-grid article { position: relative; min-height: 20rem; padding: 2rem; border: 1px solid var(--line); border-right: 0; background: linear-gradient(145deg, rgba(255,35,141,.08), transparent 55%); }
.craft-grid article:last-child { border-right: 1px solid var(--line); }
.craft-grid span { color: var(--pink); font-size: .7rem; font-weight: 850; }
.craft-grid h3 { max-width: 12rem; margin: 5rem 0 1rem; font-family: var(--display); font-size: 2.7rem; line-height: .9; text-transform: uppercase; }
.craft-grid p { max-width: 19rem; margin: 0; color: var(--muted); }

.rider { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(3rem, 8vw, 9rem); border-top: 1px solid var(--line); }
.rider-copy > p:last-child { max-width: 32rem; color: var(--muted); }
.gear-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.gear-list li { position: relative; padding: 1.2rem 1rem 1.2rem 1.7rem; border-bottom: 1px solid var(--line); }
.gear-list li:nth-child(odd) { border-right: 1px solid var(--line); }
.gear-list li::before { position: absolute; top: 1.65rem; left: .2rem; width: .38rem; aspect-ratio: 1; content: ""; border-radius: 50%; background: var(--pink); box-shadow: 0 0 16px var(--pink); }

.contact { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 3rem; width: min(100% - 3rem, 1480px); overflow: hidden; margin-bottom: 2rem; padding: clamp(4rem, 8vw, 8rem); border: 1px solid rgba(255,255,255,.18); background: linear-gradient(125deg, #210818, #6d0b43 52%, #35127a); }
.contact::before { position: absolute; inset: 0; content: ""; background: repeating-linear-gradient(120deg, transparent 0 78px, rgba(255,255,255,.035) 80px 81px); }
.contact > * { position: relative; }
.contact h2 { font-size: clamp(5rem, 10vw, 10rem); }
.contact h2 em { color: #fff; -webkit-text-stroke: 1px #fff; }
.contact-copy > p:last-child { max-width: 42rem; color: #eadde7; }
.contact-actions { justify-self: end; }
.contact-actions p { margin: 1.2rem 0 0; color: #d8c1d1; font-size: .76rem; }
.contact-glow { position: absolute; right: 20%; bottom: -8rem; width: 26rem; aspect-ratio: 1; border-radius: 50%; background: #ff2a92; filter: blur(120px); opacity: .38; }

.site-footer { display: grid; gap: 1.2rem; width: min(100% - 5rem, 1480px); margin: 0 auto; padding: 2.5rem 0; color: #ad9da9; font-size: .72rem; }
.footer-services { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem 1.4rem; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255,255,255,.09); }
.footer-services a { font-weight: 760; letter-spacing: .07em; text-transform: uppercase; transition: color .2s ease; }
.footer-services a:hover, .footer-services a:focus-visible { color: var(--pink); }
.footer-bottom { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; }
.footer-socials { display: flex; flex-wrap: wrap; gap: .7rem; }
.footer-socials a { font-weight: 750; letter-spacing: .06em; text-transform: uppercase; transition: color .2s ease; }
.footer-socials .social-link { display: inline-flex; align-items: center; gap: .48rem; min-height: 2.35rem; padding: .5rem .7rem; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(255,255,255,.035); letter-spacing: .03em; text-transform: none; will-change: transform; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.footer-socials .social-icon { width: 1.05rem; height: 1.05rem; flex: 0 0 auto; fill: currentColor; }
.footer-socials a:hover, .footer-socials a:focus-visible { color: var(--pink); }
.footer-socials .social-link:hover, .footer-socials .social-link:focus-visible { border-color: rgba(255,57,141,.58); background: rgba(255,57,141,.09); transform: translateY(-2px); }
.footer-bottom > p { justify-self: end; margin: 0; }
.footer-brand img { width: 9.5rem; }

.lightbox { width: min(92vw, 1200px); max-width: none; padding: 0; border: 1px solid rgba(255,255,255,.22); background: #070407; box-shadow: 0 30px 100px rgba(0,0,0,.7); }
.lightbox::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(6px); }
.lightbox img { width: 100%; max-height: 84vh; object-fit: contain; }
.lightbox-close { position: absolute; top: .7rem; right: .7rem; z-index: 2; display: grid; place-items: center; width: 2.5rem; aspect-ratio: 1; color: white; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: rgba(0,0,0,.62); cursor: pointer; }

.reveal { opacity: 0; transform: translateY(2rem); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

:focus-visible { outline: 2px solid var(--cyan); outline-offset: 4px; }

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; width: min(100% - 2.5rem, 1480px); }
  .menu-toggle { display: grid; gap: .45rem; justify-self: end; width: 2.8rem; padding: .65rem; color: white; border: 1px solid rgba(255,255,255,.28); background: rgba(8,4,8,.45); }
  .menu-toggle span { display: block; width: 100%; height: 1px; background: currentColor; }
  .site-nav { position: absolute; top: calc(100% + .6rem); right: 0; display: none; width: min(22rem, calc(100vw - 2.5rem)); align-items: stretch; flex-direction: column; gap: 0; padding: 1rem; border: 1px solid var(--line); background: rgba(10,5,10,.96); backdrop-filter: blur(20px); }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: .9rem .5rem; border-bottom: 1px solid var(--line); }
  .header-cta { display: none; }
  .hero-copy, .section { width: min(100% - 2.5rem, 1320px); }
  .hero-meta { display: none; }
  .scroll-cue { left: auto; right: 1rem; transform: none; }
  .about-grid, .listen-grid, .rider { grid-template-columns: 1fr; }
  .video-section-head { grid-template-columns:1fr; }
  .channel-links { justify-content:flex-start; }
  .video-library { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portrait-frame { width: min(100%, 38rem); }
  .sound-heading, .section-top { align-items: start; flex-direction: column; }
  .genre-list article { grid-template-columns: 3rem 1fr; }
  .genre-list p { grid-column: 2; }
  .gallery-card { flex-basis: min(76vw, 760px); }
  .event-card { grid-template-columns: 8rem 7rem 1fr auto; }
  .craft-grid { grid-template-columns: 1fr; }
  .craft-grid article { min-height: auto; border-right: 1px solid var(--line); border-bottom: 0; }
  .craft-grid article:last-child { border-bottom: 1px solid var(--line); }
  .craft-grid h3 { margin-top: 2.5rem; }
  .contact { grid-template-columns: 1fr; }
  .contact-actions { justify-self: start; }
  .site-footer { grid-template-columns: 1fr; justify-items: start; gap: 1.5rem; width: min(100% - 2.5rem, 1480px); }
  .site-footer > p { justify-self: start; }
}

@media (max-width: 640px) {
  .site-header { width: calc(100% - 2rem); }
  .hero { min-height: 760px; align-items: end; padding-bottom: 6.4rem; }
  .hero-video-visual { inset: 0; opacity: .2; }
  .hero-image-panel { inset: 0; box-shadow: none; }
  .hero-image { object-position: center; object-fit: contain; }
  .hero-vignette { background: linear-gradient(0deg, rgba(7,3,7,.98) 0%, rgba(7,3,7,.7) 56%, rgba(7,3,7,.22) 100%); }
  .hero-copy { width: calc(100% - 2rem); margin: 0 auto; }
  .hero h1 { font-size: clamp(4.3rem, 22vw, 7.5rem); }
  .hero-description { font-size: 1rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.1rem; }
  .orbit-one { top: 19%; right: -36%; width: 92vw; }
  .orbit-two { top: 25%; right: -21%; width: 65vw; }
  .section { width: calc(100% - 2rem); padding: 5.5rem 0; }
  .section-label { margin-bottom: 2.5rem; }
  .about-grid { gap: 4rem; }
  .about-copy h2 { font-size: clamp(3.3rem, 16vw, 5.2rem); }
  .portrait-frame::before { right: -.5rem; left: .5rem; }
  .portrait-number { right: -.5rem; }
  .sound-heading h2, .section-top h2, .listen-copy h2, .rider h2 { font-size: clamp(3.5rem, 17vw, 5.6rem); }
  .video-section-head h2 { font-size:clamp(3.5rem,17vw,5.6rem); }
  .video-library { grid-template-columns:1fr; gap:1rem; }
  .channel-links .button { flex:1 1 100%; text-align:center; }
  .genre-list article { grid-template-columns: 2rem 1fr; gap: .8rem; padding-right: 0; padding-left: 0; }
  .live-banner { min-height: 690px; }
  .live-banner > img { object-position: 55% center; }
  .live-copy { bottom: 5%; left: 1rem; }
  .live-copy h2 { font-size: clamp(4.6rem, 24vw, 7rem); }
  .live-badge { top: 15%; right: 5%; width: 6.5rem; }
  .live-badge b { font-size: 2rem; }
  .gallery-grid { gap: .75rem; padding: 1.25rem 8vw; scroll-padding-inline: 8vw; }
  .gallery-card, .gallery-card-wide, .gallery-card-feature, .gallery-card-tall { flex-basis: 84vw; aspect-ratio: 4 / 3; opacity: .42; transform: scale(.9); }
  .gallery-card.is-active { transform: scale(1); }
  .gallery-controls { margin-top: .5rem; }
  .event-card { grid-template-columns: 5.2rem 1fr auto; min-height: 8rem; }
  .event-card > img { width: 5.2rem; min-height: 8rem; }
  .event-card time { display: none; }
  .event-card div { padding: 1rem; }
  .event-card h3 { line-height: 1.2; }
  .event-arrow { padding: 1rem; }
  .release-meta { flex-direction: column; }
  .release-meta span + span { padding-left: 0; border-left: 0; }
  .gear-list { grid-template-columns: 1fr; }
  .gear-list li:nth-child(odd) { border-right: 0; }
  .contact { width: calc(100% - 1.25rem); padding: 3rem 1.25rem; }
  .contact h2 { font-size: clamp(4.5rem, 22vw, 7rem); }
  .footer-services { gap: .6rem 1rem; }
  .footer-bottom { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .footer-socials { justify-content: center; gap: .55rem; }
  .footer-bottom > p { justify-self: center; }
}

/* Date-controlled Indian festival experience */
body[data-festival="ganesh-chaturthi"] {
  --pink: #ff3d86;
  --pink-deep: #c81958;
  --violet: #7c244d;
  --cyan: #ffb52e;
  --line: rgba(255,207,108,.2);
  background:
    radial-gradient(circle at 8% 9%, rgba(255,165,26,.2), transparent 25rem),
    radial-gradient(circle at 90% 20%, rgba(220,33,91,.16), transparent 24rem),
    linear-gradient(180deg,#100408,#050205 36%,#090306);
}
body[data-festival="ganesh-chaturthi"] .site-header {
  border-color: rgba(255,194,77,.27);
  background: rgba(24,7,11,.72);
  box-shadow: 0 12px 45px rgba(0,0,0,.28), inset 0 1px rgba(255,207,108,.1);
}
body[data-festival="ganesh-chaturthi"] .header-cta,
body[data-festival="ganesh-chaturthi"] .button-primary {
  color: #2a0908;
  background: linear-gradient(115deg,#ffca4b,#ff8a1f);
  box-shadow: 0 10px 32px rgba(255,147,31,.28);
}
body[data-festival="ganesh-chaturthi"] .hero-vignette {
  background:
    linear-gradient(90deg,#100408 0%,rgba(16,4,8,.97) 25%,rgba(16,4,8,.56) 50%,rgba(16,4,8,.04) 76%),
    linear-gradient(0deg,rgba(10,2,5,.9),transparent 46%);
}
body[data-festival="ganesh-chaturthi"] .hero-glass {
  border-color: rgba(255,207,108,.22);
  background: linear-gradient(145deg,rgba(81,17,31,.38),rgba(255,163,42,.04));
  box-shadow: 0 30px 100px rgba(0,0,0,.32), inset 0 1px rgba(255,218,134,.12);
}
body[data-festival="ganesh-chaturthi"] .ticker {
  color: #30100a;
  background: linear-gradient(90deg,#e35d20,#ffc34a,#e53570);
}

/* VDJ LOVE birthday: champagne gold, blush pink and candlelight */
body[data-festival="birthday"] {
  --ink: #160d12;
  --ink-soft: #25151d;
  --paper: #fff7f1;
  --muted: #ddc5bd;
  --pink: #ef9fa8;
  --pink-deep: #ba6474;
  --violet: #c69a5f;
  --cyan: #ffd78b;
  --line: rgba(255,224,178,.22);
  background:
    radial-gradient(circle at 84% 4%, rgba(255,216,144,.24), transparent 24rem),
    radial-gradient(circle at 6% 41%, rgba(237,157,168,.14), transparent 27rem),
    linear-gradient(180deg, #26151b 0%, #120a0f 42%, #190f14 100%);
}
body[data-festival="birthday"] .site-header {
  border-color: rgba(255,223,173,.32);
  background: linear-gradient(180deg, rgba(32,18,23,.74), rgba(32,18,23,.18));
  box-shadow: inset 0 1px rgba(255,240,210,.13);
}
body[data-festival="birthday"] .brand img { filter: drop-shadow(0 6px 20px rgba(255,210,128,.32)); }
body[data-festival="birthday"] .header-cta,
body[data-festival="birthday"] .button-primary {
  color: #2b1517;
  background: linear-gradient(115deg, #ffe0a1, #eda2aa 58%, #c97585);
  box-shadow: 0 12px 36px rgba(235,163,143,.3);
}
body[data-festival="birthday"] .hero-vignette {
  background:
    linear-gradient(90deg, rgba(29,15,20,.94) 0%, rgba(29,15,20,.72) 38%, rgba(29,15,20,.12) 73%, rgba(29,15,20,.3) 100%),
    linear-gradient(0deg, rgba(19,10,14,.78), transparent 47%);
}
body[data-festival="birthday"] .hero-image-reveal { background: linear-gradient(90deg, #1d0e14 0%, #3a2028 44%, rgba(29,14,20,.9) 70%, transparent 100%); }
body[data-festival="birthday"] .hero-light-sweep { opacity:.62; background:linear-gradient(108deg, transparent 28%, rgba(255,222,164,.06) 42%, rgba(255,217,153,.25) 49%, rgba(237,156,168,.16) 55%, transparent 69%); }
body[data-festival="birthday"] .hero-prism { opacity:.28; background:radial-gradient(circle at 74% 30%,rgba(255,222,164,.28),transparent 19%),radial-gradient(circle at 65% 62%,rgba(237,156,168,.2),transparent 28%); }
body[data-festival="birthday"] .hero h1 { text-shadow: 0 8px 32px rgba(32,9,19,.36); }
body[data-festival="birthday"] .ticker { color:#352017; background:linear-gradient(90deg,#ed9da9,#ffe3a6,#ddb77c,#ed9da9); }
body[data-festival="birthday"] .festival-motion { display:block; }
body[data-festival="birthday"] .festival-motion i {
  width:.5rem; height:.5rem; border-radius:2px;
  background:linear-gradient(135deg,#ffe59e,#ed9ea8 52%,#b97181);
  box-shadow:0 0 12px rgba(255,225,159,.46);
  transform:rotate(18deg);
}

.festival-motion { position:absolute; inset:0; z-index:2; overflow:hidden; pointer-events:none; display:none; }
body[data-festival="ganesh-chaturthi"] .festival-motion { display:block; }
body[data-festival="birthday"] .festival-motion { display:block; }
.festival-motion i {
  position:absolute;
  top:-8%;
  width:.65rem;
  height:1.05rem;
  border-radius:70% 20% 70% 20%;
  background:linear-gradient(145deg,#ffd063,#e23462);
  box-shadow:0 0 12px rgba(255,167,44,.35);
  opacity:0;
  animation:festivalPetal 9s linear infinite;
}
.festival-motion i:nth-child(1){left:8%;animation-delay:-1s}.festival-motion i:nth-child(2){left:19%;animation-delay:-6s;scale:.7}.festival-motion i:nth-child(3){left:32%;animation-delay:-3s;scale:1.15}.festival-motion i:nth-child(4){left:47%;animation-delay:-8s;scale:.8}.festival-motion i:nth-child(5){left:61%;animation-delay:-4s}.festival-motion i:nth-child(6){left:73%;animation-delay:-7s;scale:.65}.festival-motion i:nth-child(7){left:85%;animation-delay:-2s;scale:1.1}.festival-motion i:nth-child(8){left:94%;animation-delay:-5s;scale:.75}

.festival-wish {
  position:relative;
  min-height:min(78svh,820px);
  overflow:hidden;
  margin:1rem;
  border:1px solid rgba(255,207,108,.24);
  border-radius:2rem;
  background:#100408;
  box-shadow:0 35px 100px rgba(0,0,0,.48),0 0 60px rgba(255,133,35,.08);
}
.festival-wish[hidden]{display:none}
.festival-wish>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.festival-wish-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,4,8,.96),rgba(16,4,8,.72) 35%,rgba(16,4,8,.08) 69%),linear-gradient(0deg,rgba(16,4,8,.65),transparent 45%)}
.festival-wish-copy{position:absolute;top:50%;left:max(1.5rem,calc((100vw - 1320px)/2));width:min(43vw,42rem);transform:translateY(-50%);padding:clamp(1rem,2.4vw,2rem)}
.festival-wish-copy.is-visible{transform:translateY(-50%)}
.festival-wish-copy p{margin:0 0 1rem;color:#ffc95e;font-size:.78rem;font-weight:850;letter-spacing:.18em;text-transform:uppercase}
.festival-wish-copy h2{margin:0;font-family:var(--display);font-size:clamp(3.5rem,6.6vw,7rem);line-height:.88;text-transform:uppercase;text-shadow:0 16px 55px rgba(0,0,0,.42)}
.festival-wish-copy .festival-wish-message{max-width:38rem;margin:1.3rem 0 0;color:#fff2d4;font-size:clamp(.95rem,1.25vw,1.1rem);font-weight:500;line-height:1.6;letter-spacing:0;text-transform:none}
.festival-wish-copy span{display:inline-block;margin-top:1.25rem;padding:.55rem 1rem;border:1px solid rgba(255,207,108,.32);border-radius:999px;color:#ffe5a7;background:rgba(38,8,13,.45);font-weight:750;letter-spacing:.11em;text-transform:uppercase;backdrop-filter:blur(12px)}

@keyframes festivalPetal {
  0%{opacity:0;transform:translate3d(0,-5vh,0) rotate(0deg)}
  10%{opacity:.8}
  88%{opacity:.55}
  100%{opacity:0;transform:translate3d(7vw,110vh,0) rotate(620deg)}
}

@media(max-width:640px){
  body[data-festival="ganesh-chaturthi"] .hero-image{object-position:64% top}
  body[data-festival="ganesh-chaturthi"] .hero-vignette{background:linear-gradient(0deg,#100408 0%,rgba(16,4,8,.96) 29%,rgba(16,4,8,.12) 67%,rgba(16,4,8,.12) 100%)}
  body[data-festival="birthday"] .hero-image{object-position:68% center}
  body[data-festival="birthday"] .hero-vignette{background:linear-gradient(0deg,rgba(23,12,17,.96) 0%,rgba(23,12,17,.78) 32%,rgba(23,12,17,.1) 71%,rgba(23,12,17,.14) 100%)}
  .festival-wish{min-height:760px;margin:.5rem;border-radius:1.25rem}
  .festival-wish>img{object-position:72% center}
  .festival-wish-shade{background:linear-gradient(0deg,rgba(16,4,8,.96),rgba(16,4,8,.72) 38%,rgba(16,4,8,.05) 72%)}
  .festival-wish-copy{top:auto;right:.75rem;bottom:1.25rem;left:.75rem;width:auto;transform:none;padding:1rem .5rem;text-align:center}
  .festival-wish-copy.is-visible{transform:none}
  .festival-wish-copy h2{font-size:clamp(2.65rem,12.5vw,4.15rem);line-height:.9}
  .festival-wish-copy .festival-wish-message{margin:1rem auto 0;font-size:.94rem;line-height:1.5}
  .festival-wish-copy span{margin-top:1rem;font-size:.72rem;white-space:normal}
}

@media(prefers-reduced-motion:reduce){.festival-motion{display:none!important}}

/* Premium motion + glass experience */
body {
  --mouse-x: 50%;
  --mouse-y: 20%;
  background:
    radial-gradient(circle at var(--mouse-x) var(--mouse-y), rgba(255,35,141,.12), transparent 26rem),
    radial-gradient(circle at 86% 8%, rgba(123,44,255,.18), transparent 30rem),
    linear-gradient(160deg, #070408 0%, #100711 48%, #070309 100%);
}

body.is-loading { overflow: hidden; }
main, .site-header, .site-footer { transition: opacity .65s ease; }
body.is-loading main, body.is-loading .site-header, body.is-loading .site-footer { opacity: 0; }

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 1.5rem;
  overflow: hidden;
  background: radial-gradient(ellipse at 50% 46%, #29232a 0%, #100d11 34%, #030303 74%);
  transition: opacity .9s ease, visibility .9s ease;
  contain: strict;
  transform: translateZ(0);
}
.page-loader::before { position:absolute; inset:-8%; content:""; background:radial-gradient(ellipse at 30% 44%,rgba(36,214,230,.1),transparent 35%),radial-gradient(ellipse at 70% 52%,rgba(255,35,141,.14),transparent 38%); opacity:0; will-change:transform,opacity; transform:translateZ(0); animation:stylishLoaderLight 4s ease-in-out both; }
.page-loader::after { position:absolute; right:0; bottom:17%; left:0; height:1px; content:""; background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),rgba(255,35,141,.42),rgba(255,255,255,.1),transparent); box-shadow:0 12px 70px rgba(255,35,141,.28); opacity:0; transform:scaleX(.1); animation:stylishFloorLine 4s ease both; }
.loader-logo-liquid { position:relative; z-index:2; display:grid; width:min(72vw,70rem); min-height:min(46vw,31rem); place-items:center; isolation:isolate; perspective:1400px; transform:translateZ(0); }
.loader-logo-liquid::before,.loader-logo-liquid::after { position:absolute; inset:0; z-index:1; content:""; background:url('/assets/vdj-love-logo.png') center/contain no-repeat; opacity:0; mix-blend-mode:screen; pointer-events:none; }
.loader-logo-liquid::before { filter:hue-rotate(105deg) saturate(1.65); will-change:transform,opacity; animation:stylishLogoEchoLeft 4s cubic-bezier(.2,.7,.2,1) both; }
.loader-logo-liquid::after { filter:hue-rotate(-32deg) saturate(1.65); will-change:transform,opacity; animation:stylishLogoEchoRight 4s cubic-bezier(.2,.7,.2,1) both; }
.loader-logo-liquid img { position:relative; z-index:3; width:min(68vw,66rem); filter:drop-shadow(0 22px 34px rgba(0,0,0,.62)); backface-visibility:hidden; will-change:transform,opacity; transform:translateZ(0); animation:stylishLogoReveal 4s cubic-bezier(.2,.72,.2,1) both; }
.loader-logo-liquid > span { position:absolute; z-index:4; width:58%; height:2px; border-radius:0; background:linear-gradient(90deg,transparent,#24d7e6 18%,#fff 48%,#ff238d 78%,transparent); box-shadow:0 0 28px rgba(255,255,255,.52); opacity:0; mix-blend-mode:screen; transform:rotate(-12deg) scaleX(.1); animation:stylishLogoSlash 4s ease-in-out both; }
.loader-logo-liquid > span:nth-child(1) { top:31%; left:4%; }
.loader-logo-liquid > span:nth-child(2) { right:1%; bottom:35%; animation-delay:.18s; }
.loader-logo-liquid > span:nth-child(3) { top:49%; right:18%; width:34%; animation-delay:.36s; }
.page-loader p { position:relative; z-index:3; margin:0; color:#f3eaf0; font-size:.72rem; font-weight:800; letter-spacing:.26em; text-transform:uppercase; opacity:0; animation:stylishLoaderCaption 4s ease both; }
.loader-line { position:relative; z-index:3; width:min(26rem,70vw); height:2px; overflow:hidden; background:rgba(255,255,255,.11); opacity:0; animation:stylishLoaderCaption 4s ease both; }
.loader-line span { display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--pink),#ff9fd0,var(--cyan)); box-shadow:0 0 18px var(--pink); transform:scaleX(0); transform-origin:left; animation:stylishLoaderProgress 4s cubic-bezier(.12,.7,.18,1) both; }
body.is-ready .page-loader { visibility: hidden; opacity: 0; pointer-events: none; }

.scroll-progress { position: fixed; inset: 0 0 auto; z-index: 210; height: 3px; pointer-events: none; }
.scroll-progress span { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, var(--pink), var(--violet), var(--cyan)); box-shadow: 0 0 16px var(--pink); transform: scaleX(0); transform-origin: left; }

.ambient { position: fixed; z-index: -1; width: 32rem; aspect-ratio: 1; border-radius: 50%; pointer-events: none; filter: blur(110px); opacity: .14; animation: ambientFloat 12s ease-in-out infinite alternate; }
.ambient-one { top: 18%; left: -12rem; background: var(--pink); }
.ambient-two { right: -13rem; bottom: 4%; background: var(--violet); animation-delay: -5s; }

.site-header {
  position: fixed;
  top: 1rem;
  right: 0;
  left: 0;
  width: min(calc(100% - 3rem), 1480px);
  padding: .7rem 1rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: linear-gradient(120deg, rgba(24,11,24,.7), rgba(10,6,14,.48));
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
  backdrop-filter: blur(20px) saturate(1.25);
  transition: width .35s ease, background .35s ease, box-shadow .35s ease, transform .35s ease;
}
.site-header.is-scrolled { width: min(calc(100% - 2rem), 1360px); background: rgba(10,5,12,.86); box-shadow: 0 20px 60px rgba(0,0,0,.48); }
.brand img { width: clamp(7rem, 9vw, 9.5rem); transition: transform .35s ease, filter .35s ease; }
.brand:hover img { filter: drop-shadow(0 0 22px rgba(255,35,141,.46)); transform: scale(1.04); }
.site-nav { gap: clamp(.9rem, 1.7vw, 1.9rem); }
.header-cta { position: relative; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.05); }

.hero { min-height: 100svh; }
.hero-image { scale: 1; transform: translate3d(0, 0, 0) scale(1.045); transform-origin: 62% 42%; will-change: transform; }
.hero-light-sweep { position: absolute; inset: 0; z-index: -2; pointer-events: none; opacity: .52; mix-blend-mode: screen; background: linear-gradient(108deg, transparent 28%, rgba(255,35,141,.04) 42%, rgba(255,151,214,.2) 49%, rgba(34,215,230,.1) 54%, transparent 68%); transform: translate3d(-70%, 0, 0); }
.hero-prism { position:absolute; inset:0; z-index:-2; pointer-events:none; opacity:0; background:radial-gradient(circle at 76% 38%,rgba(34,215,230,.2),transparent 17%),radial-gradient(circle at 68% 58%,rgba(255,35,141,.22),transparent 24%); mix-blend-mode:screen; will-change:transform,opacity; transform:translate3d(2%,0,0) scale(1.04); }
.hero-image-reveal { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, #09060b 0%, #160914 42%, rgba(9,6,11,.94) 68%, transparent 100%); transform-origin: right center; }
body.is-ready .hero-image { animation: heroImageIn 1.35s cubic-bezier(.2,.75,.2,1) both, heroImageDrift 15s 1.35s ease-in-out infinite alternate; }
body.is-ready .hero-light-sweep { animation: heroLightSweep 7s 1.1s ease-in-out infinite; }
body.is-ready .hero-prism { animation:heroPrism 10s 1.2s ease-in-out infinite alternate; }
body.is-ready .hero-image-reveal { animation: heroCurtain 1.15s cubic-bezier(.7,0,.2,1) both; }
.hero-vignette { background: linear-gradient(90deg, rgba(7,3,7,.94) 0%, rgba(7,3,7,.7) 40%, rgba(7,3,7,.1) 72%, rgba(7,3,7,.48) 100%), linear-gradient(0deg, rgba(7,3,7,.76), transparent 45%); }
.hero-copy { position: relative; z-index: 2; }
.hero-glass {
  width: min(45rem, 62vw);
  padding: clamp(1.5rem, 3vw, 3rem);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: clamp(1.3rem, 2.6vw, 2.4rem);
  background: linear-gradient(135deg, rgba(18,8,18,.77), rgba(34,13,30,.35));
  box-shadow: 0 32px 90px rgba(0,0,0,.42), 0 0 70px rgba(255,35,141,.08) inset;
  backdrop-filter: blur(20px) saturate(1.22);
  transform-style: preserve-3d;
  transition: transform .25s ease, border-color .35s ease, box-shadow .35s ease;
}
.hero-glass:hover { border-color: rgba(255,35,141,.4); box-shadow: 0 36px 110px rgba(0,0,0,.48), 0 0 70px rgba(255,35,141,.12) inset; }
.hero h1 { font-size: clamp(4.5rem, 8vw, 8.3rem); }
.hero h1 em { display: inline-block; animation: neonPulse 3.2s ease-in-out infinite; }
.hero-meta div { padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.15); border-radius: 1rem; background: rgba(12,7,14,.38); box-shadow: 0 14px 35px rgba(0,0,0,.18); backdrop-filter: blur(12px); transition: transform .3s ease, border-color .3s ease; }
.hero-meta div:hover { border-color: rgba(255,35,141,.45); transform: translateY(-6px); }
.orbit-one { animation: orbitSpin 18s linear infinite; }
.orbit-two { animation: orbitSpin 14s linear infinite reverse; }

.button { position: relative; overflow: hidden; border-radius: 999px; isolation: isolate; }
.button::before { position: absolute; inset: -30% auto -30% -45%; z-index: -1; width: 32%; content: ""; background: linear-gradient(90deg, transparent, rgba(255,255,255,.58), transparent); transform: skewX(-18deg); transition: left .55s ease; }
.button:hover::before { left: 115%; }
.button-primary { background: linear-gradient(120deg, #ff238d, #c50761 55%, #7b2cff); background-size: 180% 100%; animation: gradientShift 5s ease infinite alternate; }
.ripple { position: absolute; z-index: 3; width: .5rem; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.65); pointer-events: none; transform: translate(-50%, -50%) scale(0); animation: rippleOut .65s ease-out forwards; }

.ticker { box-shadow: 0 0 40px rgba(255,35,141,.28); }
.section { position: relative; content-visibility: auto; contain-intrinsic-size: 900px; }
.section::before { position: absolute; top: 4rem; right: 0; width: 10rem; height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(255,35,141,.58)); transform: scaleX(0); transform-origin: right; transition: transform 1s ease .2s; }
.section:has(.is-visible)::before { transform: scaleX(1); }
.section-label::after { transform-origin: left; transition: transform .8s ease .25s; }
.section-label:not(.is-visible)::after { transform: scaleX(0); }

.portrait-frame, .genre-list article, .event-card, .craft-grid article, .rider, .video-wrap {
  border-color: rgba(255,255,255,.14);
  background: linear-gradient(140deg, rgba(255,255,255,.075), rgba(255,255,255,.018));
  box-shadow: 0 20px 70px rgba(0,0,0,.18);
  backdrop-filter: blur(16px) saturate(1.18);
}
.portrait-frame { padding: .75rem; border: 1px solid rgba(255,255,255,.16); border-radius: 1.6rem; overflow: hidden; transform-style: preserve-3d; }
.portrait-frame img { border-radius: 1.1rem; transition: transform .7s cubic-bezier(.2,.75,.2,1), filter .5s ease; }
.portrait-frame:hover img { filter: saturate(1.05) contrast(1.03); transform: scale(1.025); }
.portrait-frame::before { display: none; }
.genre-list { display: grid; gap: .7rem; border: 0; }
.genre-list article { border: 1px solid rgba(255,255,255,.12); border-radius: 1rem; }
.genre-list article:hover { border-color: rgba(255,35,141,.44); transform: translateX(.35rem); }

.lookbook { width: min(100% - 3rem, 1480px); }
.lookbook::after { position: absolute; top: 10%; left: -18%; z-index: -1; width: 34rem; aspect-ratio: 1; content: ""; border-radius: 50%; background: rgba(123,44,255,.14); filter: blur(100px); }
.look-filters { position: sticky; top: 6.3rem; z-index: 12; display: flex; width: max-content; max-width: 100%; gap: .6rem; overflow-x: auto; margin: 0 0 1.6rem; padding: .55rem; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: rgba(12,6,14,.64); box-shadow: 0 18px 50px rgba(0,0,0,.28); backdrop-filter: blur(20px); scrollbar-width: none; }
.look-filters::-webkit-scrollbar { display: none; }
.look-filter { position: relative; flex: 0 0 auto; overflow: hidden; padding: .7rem 1rem; color: #cdbfc9; border: 1px solid transparent; border-radius: 999px; background: transparent; font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease; }
.look-filter:hover { color: #fff; transform: translateY(-2px); }
.look-filter.is-active { color: #fff; border-color: rgba(255,255,255,.2); background: linear-gradient(115deg, rgba(255,35,141,.82), rgba(123,44,255,.78)); box-shadow: 0 8px 25px rgba(255,35,141,.2); }
.lookbook-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.look-card { position: relative; overflow: hidden; aspect-ratio: 4 / 5; padding: 0; color: #fff; border: 1px solid rgba(255,255,255,.15); border-radius: 1.4rem; background: rgba(255,255,255,.04); box-shadow: 0 24px 60px rgba(0,0,0,.28); cursor: zoom-in; transform-style: preserve-3d; transition: transform .4s cubic-bezier(.2,.75,.2,1), border-color .35s ease, box-shadow .35s ease, opacity .3s ease; }
.look-card::before { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(180deg, transparent 48%, rgba(5,2,7,.9) 100%); pointer-events: none; }
.look-card::after { position: absolute; inset: 0; z-index: 2; content: ""; border-radius: inherit; background: radial-gradient(circle at var(--shine-x, 50%) var(--shine-y, 50%), rgba(255,255,255,.17), transparent 26%); box-shadow: 0 0 0 1px rgba(255,255,255,.08) inset; opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.look-card:hover::after { opacity: 1; }
.look-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .75s cubic-bezier(.2,.75,.2,1), filter .45s ease; }
.look-card > span { position: absolute; right: 0; bottom: 0; left: 0; z-index: 3; display: grid; grid-template-columns: auto 1fr; align-items: end; gap: .55rem; padding: 1rem; font-size: .88rem; font-weight: 800; letter-spacing: .02em; text-align: left; }
.look-card > span b { color: var(--pink); font-size: .69rem; letter-spacing: .12em; }
.look-card > span small { grid-column: 2; color: #cbbbc7; font-size: .62rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.look-card:hover, .look-card:focus-visible { border-color: rgba(255,35,141,.58); box-shadow: 0 30px 80px rgba(0,0,0,.42), 0 0 40px rgba(255,35,141,.12); transform: translateY(-8px); }
.look-card:hover img, .look-card:focus-visible img { filter: saturate(1.08) contrast(1.03); transform: scale(1.045); }
.look-card[hidden] { display: none; }
.lookbook-grid.is-visible .look-card { animation: lookIn .72s both; animation-delay: calc(var(--i, 0) * 42ms); }

.live-banner { margin: 2rem; min-height: calc(90svh - 4rem); border: 1px solid rgba(255,255,255,.14); border-radius: 2.4rem; box-shadow: 0 35px 110px rgba(0,0,0,.48); }
.live-banner > img { transition: transform .25s linear; }
.live-badge { border-color: rgba(255,255,255,.25); background: rgba(24,9,24,.35); box-shadow: 0 18px 50px rgba(0,0,0,.28); backdrop-filter: blur(18px); animation: badgeFloat 3s ease-in-out infinite; }
.gallery-card { border: 1px solid rgba(255,255,255,.13); border-radius: 1.25rem; box-shadow: 0 18px 48px rgba(0,0,0,.24); touch-action: pan-x; transition: opacity .72s ease, filter .72s ease, transform .95s cubic-bezier(.16,.82,.18,1), border-color .6s ease, box-shadow .75s ease; }
.gallery-card:hover { border-color: rgba(255,35,141,.52); box-shadow: 0 25px 65px rgba(0,0,0,.38); }
.gallery-card::after { background: radial-gradient(circle at var(--shine-x, 50%) var(--shine-y, 50%), rgba(255,255,255,.14), transparent 24%), linear-gradient(180deg, transparent 58%, rgba(7,3,7,.72)); opacity: .82; transition: opacity .3s ease; }
.gallery-card:hover::after { opacity: 1; }
.gallery-card span { border-radius: 0 .8rem 0 0; }
.gallery-grid { perspective: 1600px; perspective-origin: 50% 46%; padding-block: 4rem; }
.gallery-card {
  transform: translateY(var(--card-lift, 0)) translateZ(var(--card-z, 0)) rotateY(var(--card-yaw, 0deg)) scale(.88);
  transform-style: preserve-3d;
  backface-visibility: hidden;
  box-shadow: 0 35px 85px rgba(0,0,0,.52), 0 0 0 1px rgba(255,255,255,.08) inset;
}
.gallery-card::before { position:absolute; inset:0; z-index:2; content:""; pointer-events:none; border-radius:inherit; background:linear-gradient(115deg,rgba(255,255,255,.2),transparent 22%,transparent 70%,rgba(255,35,141,.12)); mix-blend-mode:screen; opacity:.55; transition:opacity .45s ease; }
.gallery-card.is-active { transform:translateY(0) translateZ(40px) rotateY(0deg) scale(1); box-shadow:0 45px 110px rgba(0,0,0,.58),0 0 45px rgba(255,35,141,.16),0 0 0 1px rgba(255,255,255,.14) inset; }
.gallery-card.is-active::before { opacity:.9; }

.instagram-event-card {
  position:relative;
  isolation:isolate;
  transform:none !important;
  filter:none !important;
  opacity:1;
  border:1px solid rgba(255,255,255,.2);
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,35,141,.065) 52%,rgba(123,44,255,.075));
  box-shadow:0 28px 75px rgba(0,0,0,.38),0 0 42px rgba(255,35,141,.1),0 0 0 1px rgba(255,255,255,.055) inset;
  transition:none;
}
.instagram-event-card::before {
  position:absolute;
  inset:0;
  z-index:5;
  display:block;
  content:"";
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(120deg,rgba(255,255,255,.2),transparent 21%,transparent 69%,rgba(255,35,141,.11) 84%,rgba(123,44,255,.14));
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;
  opacity:.72;
}
.instagram-event-card:hover {
  transform:none !important;
  border-color:rgba(255,255,255,.26);
  box-shadow:0 28px 75px rgba(0,0,0,.38),0 0 52px rgba(255,35,141,.14),0 0 0 1px rgba(255,255,255,.07) inset;
}

.event-list { gap: .7rem; }
.event-card { border-radius: 1.1rem; }
.event-card:hover { box-shadow: 0 22px 70px rgba(0,0,0,.3); }
.craft-grid { gap: .8rem; }
.craft-grid article, .craft-grid article:last-child { border: 1px solid rgba(255,255,255,.13); border-radius: 1.2rem; transition: transform .35s ease, border-color .35s ease; }
.craft-grid article:hover { border-color: rgba(255,35,141,.45); transform: translateY(-8px); }
.rider { padding: clamp(1.5rem, 4vw, 4rem); border: 1px solid rgba(255,255,255,.13); border-radius: 1.6rem; }
.contact { border-radius: 2.2rem; box-shadow: 0 35px 120px rgba(0,0,0,.42), 0 0 80px rgba(255,35,141,.12) inset; backdrop-filter: blur(16px); }
.lightbox { overflow: visible; border-radius: 1.4rem; background: rgba(7,4,7,.82); backdrop-filter: blur(22px); }
.lightbox img { border-radius: 1.35rem; }
.lightbox[open] { animation: dialogIn .38s ease both; }

.reveal { opacity: 0; filter: blur(8px); transform: perspective(1000px) translateY(2.8rem) rotateX(4deg) scale(.985); transform-origin: center top; transition: opacity .85s ease var(--delay, 0ms), transform .85s cubic-bezier(.2,.75,.2,1) var(--delay, 0ms), filter .85s ease var(--delay, 0ms); }
.reveal.is-visible { opacity: 1; filter: blur(0); transform: translateY(0) scale(1); }
.section-top h2, .sound-heading h2, .listen-copy h2, .rider h2 { transform-origin: left bottom; transition: letter-spacing .8s ease, text-shadow .8s ease; }
.section-top.is-visible h2, .sound-heading.is-visible h2, .listen-copy.is-visible h2, .rider-copy.is-visible h2 { letter-spacing: .012em; text-shadow: 0 14px 45px rgba(0,0,0,.35); }
.event-card > *, .craft-grid article > *, .genre-list article > * { transition: transform .35s ease, color .35s ease; }
.event-card:hover > *, .craft-grid article:hover > *, .genre-list article:hover > * { transform: translateY(-2px); }

::view-transition-old(root) { animation: pageOut .25s ease both; }
::view-transition-new(root) { animation: pageIn .42s ease both; }

@keyframes loaderOrbit { to { transform: rotate(360deg); } }
@keyframes loaderLogo { to { transform: translateY(-5px) scale(1.015); } }
@keyframes loaderLiquidLogo { 0% { opacity: 0; transform: translateY(1.2rem) scale(.78) skewX(-7deg); } 55% { opacity: 1; transform: translateY(-.25rem) scale(1.05) skewX(2deg); } 100% { opacity: 1; transform: translateY(0) scale(1) skewX(0); } }
@keyframes loaderLiquidBlob { from { transform: translate3d(-.6rem, .5rem, 0) rotate(-10deg) scale(.82); border-radius: 65% 35% 42% 58% / 48% 62% 38% 52%; } to { transform: translate3d(.8rem, -.5rem, 0) rotate(12deg) scale(1.08); border-radius: 35% 65% 58% 42% / 63% 38% 62% 37%; } }
@keyframes loaderLine { from { transform: translateX(-110%); } to { transform: translateX(250%); } }
@keyframes stylishLoaderLight {
  0%, 8% { opacity: 0; transform: rotate(-18deg) scale(.82); }
  22% { opacity: .55; }
  48% { opacity: .95; transform: rotate(8deg) scale(1.08); }
  72% { opacity: .42; }
  100% { opacity: .12; transform: rotate(22deg) scale(1.2); }
}
@keyframes stylishFloorLine {
  0%, 52% { opacity: 0; transform: scaleX(.06); }
  68% { opacity: .72; transform: scaleX(.72); }
  84%, 100% { opacity: .35; transform: scaleX(1); }
}
@keyframes stylishLogoEchoLeft {
  0% { opacity: 0; transform: translate3d(-10%, 2%, 0) rotate(-4deg) scale(1.48); }
  22% { opacity: .5; transform: translate3d(-5%, 1%, 0) rotate(-2deg) scale(1.28); }
  48% { opacity: .3; transform: translate3d(-2%, 0, 0) rotate(-.5deg) scale(1.02); }
  70%, 100% { opacity: 0; transform: translate3d(0, 0, 0) rotate(0) scale(.76); }
}
@keyframes stylishLogoEchoRight {
  0% { opacity: 0; transform: translate3d(10%, -2%, 0) rotate(4deg) scale(1.48); }
  24% { opacity: .46; transform: translate3d(5%, -1%, 0) rotate(2deg) scale(1.27); }
  50% { opacity: .28; transform: translate3d(2%, 0, 0) rotate(.5deg) scale(1.01); }
  71%, 100% { opacity: 0; transform: translate3d(0, 0, 0) rotate(0) scale(.76); }
}
@keyframes stylishLogoReveal {
  0% { opacity: 0; transform: translate3d(-5%, 4%, 0) rotate(-6deg) scale(1.56); }
  18% { opacity: .58; transform: translate3d(-3%, 2.5%, 0) rotate(-3.8deg) scale(1.39); }
  38% { opacity: 1; transform: translate3d(2%, -.5%, 0) rotate(1.8deg) scale(1.18); }
  60% { opacity: 1; transform: translate3d(0, 0, 0) rotate(0) scale(.9); }
  78%, 100% { opacity: 1; transform: translate3d(0, 0, 0) rotate(0) scale(.76); }
}
@keyframes stylishLogoSlash {
  0%, 17% { opacity: 0; transform: rotate(-12deg) translateX(-55%) scaleX(.08); }
  25% { opacity: .9; transform: rotate(-12deg) translateX(-8%) scaleX(.72); }
  35% { opacity: .18; transform: rotate(-12deg) translateX(35%) scaleX(1.1); }
  43% { opacity: .82; transform: rotate(-12deg) translateX(-3%) scaleX(.86); }
  55% { opacity: .12; transform: rotate(-12deg) translateX(52%) scaleX(.35); }
  66%, 100% { opacity: 0; transform: rotate(-12deg) translateX(80%) scaleX(.08); }
}
@keyframes stylishLoaderCaption {
  0%, 58% { opacity: 0; transform: translateY(.8rem); }
  72%, 94% { opacity: .9; transform: translateY(0); }
  100% { opacity: .72; transform: translateY(0); }
}
@keyframes stylishLoaderProgress {
  0% { transform: scaleX(0); }
  18% { transform: scaleX(.12); }
  48% { transform: scaleX(.5); }
  76% { transform: scaleX(.82); }
  100% { transform: scaleX(1); }
}
@keyframes ambientFloat { to { transform: translate3d(5rem, -4rem, 0) scale(1.15); } }
@keyframes orbitSpin { to { rotate: 360deg; } }
@keyframes neonPulse { 50% { filter: drop-shadow(0 0 20px rgba(255,35,141,.62)); } }
@keyframes heroImageIn { from { opacity: .25; filter: saturate(.55) contrast(1.12); transform: translate3d(2%, 0, 0) scale(1.12); } to { opacity: 1; filter: saturate(1) contrast(1); transform: translate3d(0, 0, 0) scale(1.045); } }
@keyframes heroImageDrift { from { transform: translate3d(0, 0, 0) scale(1.045); } to { transform: translate3d(-1.4%, -.6%, 0) scale(1.095); } }
@keyframes heroImageMobileIn { from { opacity: .2; filter: saturate(.6) contrast(1.08); transform: translate3d(0, .8rem, 0) scale(.98); } to { opacity: 1; filter: saturate(1) contrast(1); transform: translate3d(0, 0, 0) scale(1); } }
@keyframes heroImageMobileDrift { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(0, -.5rem, 0) scale(1.025); } }
@keyframes heroLightSweep { 0%, 28% { opacity: 0; transform: translate3d(-70%, 0, 0); } 48% { opacity: .55; } 68%, 100% { opacity: 0; transform: translate3d(72%, 0, 0); } }
@keyframes heroPrism { from { opacity:.16; transform:translate3d(2%,1%,0) scale(1.04); } to { opacity:.42; transform:translate3d(-2%,-1%,0) scale(1.1); } }
@keyframes heroCurtain { from { transform: scaleX(1); } to { transform: scaleX(0); } }
@keyframes xrBlink { 50% { opacity: .25; transform: scale(.75); } }
@keyframes xrScan { 0%, 100% { top: 3%; opacity: 0; } 15%, 85% { opacity: 1; } 50% { top: 96%; } }
@keyframes gradientShift { to { background-position: 100% 50%; } }
@keyframes badgeFloat { 50% { transform: translateY(-10px) rotate(5deg); } }
@keyframes lookIn { from { opacity: 0; transform: translateY(2rem) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes dialogIn { from { opacity: 0; transform: scale(.94) translateY(1rem); } to { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes pageOut { to { opacity: 0; filter: blur(8px); } }
@keyframes pageIn { from { opacity: 0; filter: blur(8px); } }
@keyframes rippleOut { to { opacity: 0; transform: translate(-50%, -50%) scale(32); } }

@media (max-width: 1180px) {
  .lookbook-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-nav { gap: 1rem; }
  .site-nav a { font-size: .69rem; }
}

@media (max-width: 980px) {
  .site-header { top: .75rem; grid-template-columns: 1fr auto; width: calc(100% - 1.5rem); border-radius: 1.2rem; }
  .site-header.is-scrolled { width: calc(100% - 1rem); }
  .site-nav { top: calc(100% + .55rem); border-radius: 1rem; background: rgba(10,5,12,.9); box-shadow: 0 22px 60px rgba(0,0,0,.4); }
  .hero-glass { width: min(42rem, 80vw); }
  .lookbook-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .look-filters { top: 5.6rem; }
  .live-banner { margin: 1rem; min-height: 78svh; border-radius: 1.6rem; }
}

@media (max-width: 640px) {
  .page-loader { gap: 1rem; padding: 1rem; }
  .loader-logo-liquid { width: 96vw; min-height: 52vw; perspective: 900px; }
  .loader-logo-liquid img { width: 92vw; }
  .loader-logo-liquid::before, .loader-logo-liquid::after { display:none; }
  .loader-logo-liquid > span:nth-child(2), .loader-logo-liquid > span:nth-child(3) { display:none; }
  .page-loader p { max-width: 90vw; font-size: .61rem; letter-spacing: .18em; text-align: center; }
  .loader-line { width: min(20rem, 76vw); }
  .brand img { width: 7.2rem; }
  .hero { min-height: 820px; }
  .hero-image {
    top: 5rem;
    bottom: auto;
    height: 52svh;
    object-fit: contain;
    object-position: center top;
    scale: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: center top;
  }
  body.is-ready .hero-image { animation: heroImageMobileIn 1.15s cubic-bezier(.2,.75,.2,1) both, heroImageMobileDrift 12s 1.15s ease-in-out infinite alternate; }
  .hero-light-sweep { opacity: .34; }
  .hero-prism { opacity:.18; background:radial-gradient(circle at 62% 25%,rgba(34,215,230,.14),transparent 24%),radial-gradient(circle at 70% 42%,rgba(255,35,141,.16),transparent 28%); }
  .hero-vignette { background: linear-gradient(0deg, rgba(7,3,7,.99) 0%, rgba(7,3,7,.88) 42%, rgba(7,3,7,.08) 76%, rgba(7,3,7,.18) 100%); }
  .hero-glass { width: 100%; padding: 1.2rem; border-radius: 1.25rem; }
  .hero h1 { font-size: clamp(3.7rem, 18vw, 5.4rem); }
  .lookbook { width: calc(100% - 1rem); }
  .lookbook-grid { gap: .65rem; }
  .look-card { border-radius: 1rem; }
  .look-card > span { padding: .75rem; font-size: .74rem; }
  .look-card > span small { font-size: .56rem; letter-spacing: .08em; }
  .look-filters { top: 5.3rem; margin-inline: .25rem; }
  .live-banner { margin: .5rem; min-height: 700px; border-radius: 1.2rem; }
  .rider { padding: 1.2rem; }
  .contact { border-radius: 1.4rem; }
}

@media (max-width: 980px) {
  .instagram-event-grid { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .gallery-grid { padding-block:2.25rem; }
  .gallery-card { transform:translateY(var(--card-lift,0)) translateZ(var(--card-z,0)) rotateY(var(--card-yaw,0deg)) scale(.92); }
  .gallery-card.is-active { transform:translateY(0) translateZ(20px) rotateY(0deg) scale(1); }
  .video-library { display:grid !important; grid-template-columns:1fr !important; width:100%; opacity:1 !important; visibility:visible !important; filter:none !important; transform:none !important; }
  .video-card { display:block; width:100%; min-width:0; min-height:15rem; opacity:1; visibility:visible; }
  .video-facade { display:block; min-height:11rem; }
  .video-facade[hidden] { display:none; }
  .video-facade img { display:block; min-height:11rem; background:linear-gradient(135deg,#1d0b1a,#211044); }
  .instagram-event-card { padding: .65rem; border-radius: 1rem; }
  .instagram-event-heading { padding: .35rem .35rem .75rem; }
  .instagram-event-card .instagram-media > a { min-height: 29rem; }
  .live-scanner { inset: .8rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .hero-image { transform: none !important; }
  .hero-light-sweep, .hero-prism, .hero-image-reveal { display: none; }
  .live-scanner i, .live-scanner b { animation: none !important; }
  .page-loader { display: none; }
  body.is-loading { overflow: auto; }
  body.is-loading main, body.is-loading .site-header, body.is-loading .site-footer { filter: none; opacity: 1; }
  .reveal { opacity: 1; filter: none; transform: none; }
  .gallery-card,.gallery-card.is-active { transform:none !important; }
}

/* Futuristic VDJ LOVE theme */
:root {
  --ink: #030206;
  --ink-soft: #0b0711;
  --paper: #fff8fd;
  --muted: #b9aabd;
  --pink: #ff1493;
  --pink-deep: #c00068;
  --violet: #5b26df;
  --cyan: #00d9ff;
  --line: rgba(255,255,255,.14);
}

body {
  background:
    radial-gradient(circle at 8% 7%, rgba(255,20,147,.16), transparent 25rem),
    radial-gradient(circle at 91% 22%, rgba(0,217,255,.11), transparent 24rem),
    radial-gradient(circle at 53% 64%, rgba(91,38,223,.1), transparent 30rem),
    #030206;
}

.ambient { opacity: .36; filter: blur(100px); }
.site-header {
  top: 1rem;
  width: min(calc(100% - 2rem), 1480px);
  padding: .7rem 1rem;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 1.2rem;
  background: rgba(5,3,9,.58);
  box-shadow: 0 12px 45px rgba(0,0,0,.25);
  backdrop-filter: blur(18px) saturate(135%);
  transition: background .3s ease, border-color .3s ease, transform .3s ease;
}
.site-header.is-scrolled { position: fixed; background: rgba(5,3,9,.86); border-color: rgba(255,20,147,.25); }
.brand img { width: clamp(7.8rem, 10vw, 9.5rem); }
.site-nav { gap: clamp(1rem, 2.4vw, 2.6rem); }
.site-nav a { font-size: .69rem; letter-spacing: .12em; }
.header-cta {
  min-width: 8.8rem;
  padding: .72rem 1.15rem;
  border: 0;
  border-radius: .65rem;
  color: #fff;
  background: linear-gradient(115deg, #ff1493, #e50082);
  box-shadow: 0 8px 28px rgba(255,20,147,.28);
  text-align: center;
}

.hero { min-height: 100svh; background: #020105; }
.hero::after {
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  height: 24%;
  content: "";
  pointer-events: none;
  background: linear-gradient(transparent, #030206);
}
.hero-image {
  inset: 0 0 0 auto;
  width: 66%;
  object-position: 62% 22%;
  filter: saturate(.95) contrast(1.05);
}
.hero-vignette {
  background:
    linear-gradient(90deg, #030206 0%, rgba(3,2,6,.98) 24%, rgba(3,2,6,.6) 48%, rgba(3,2,6,.05) 72%),
    linear-gradient(0deg, rgba(3,2,6,.84), transparent 45%);
}
.hero-copy { position: relative; z-index: 3; width: min(calc(100% - 5rem), 1480px); margin: 4.5rem auto 0; }
.hero-glass {
  width: min(46vw, 42rem);
  padding: clamp(1.25rem, 2vw, 2rem);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 1.5rem;
  background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,20,147,.025));
  box-shadow: 0 30px 100px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
}
.hero-logo {
  width: min(38vw, 35rem);
  filter: drop-shadow(0 20px 42px rgba(255,20,147,.24));
  animation: heroLogoFloat 5.5s ease-in-out infinite alternate;
}
.hero h1 {
  margin-top: 1.7rem;
  font-family: var(--body);
  font-size: clamp(1.05rem, 1.75vw, 1.55rem);
  font-weight: 650;
  letter-spacing: .48em;
  line-height: 1.2;
  white-space: nowrap;
}
.hero h1::after { display: block; width: 5rem; height: 2px; margin-top: 1.1rem; content: ""; background: linear-gradient(90deg,var(--pink),transparent); }
.hero-actions { margin-top: 1.75rem; }
.hero-play {
  display: grid;
  place-items: center;
  width: 3.25rem;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
.hero-play:hover { transform: scale(1.08); border-color: var(--pink); background: rgba(255,20,147,.18); }
.scroll-cue { z-index: 4; }

.ticker { color: #fff; background: linear-gradient(90deg,#b80065,#ff1493,#611de0); box-shadow: 0 0 40px rgba(255,20,147,.2); }
.section { width: min(calc(100% - 3rem), 1380px); }
.section-label { margin-bottom: 2.5rem; }
.about-grid, .listen-grid, .rider { gap: clamp(2rem,6vw,7rem); }
.portrait-frame img, .video-wrap, .gallery-card, .event-card, .video-card, .craft-grid article {
  border-radius: 1.25rem;
}
.portrait-frame::before { border-radius: 1.35rem; }
.portrait-frame img { box-shadow: 0 30px 90px rgba(255,20,147,.1); }
.genre-list article {
  margin-bottom: .65rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 1rem;
  background: rgba(255,255,255,.025);
  backdrop-filter: blur(12px);
}
.live-banner { margin: 0 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 2rem; box-shadow: 0 35px 110px rgba(0,0,0,.55); }
.gallery-grid, .instagram-event-grid, .video-library { perspective: 1200px; }
.gallery-card, .instagram-event-card, .video-card {
  border-color: rgba(255,255,255,.16);
  background: linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,20,147,.04));
  box-shadow: 0 24px 70px rgba(0,0,0,.38), inset 0 1px rgba(255,255,255,.09);
  backdrop-filter: blur(14px);
}
.video-card:hover { border-color: rgba(255,20,147,.58); box-shadow: 0 30px 80px rgba(0,0,0,.48), 0 0 38px rgba(255,20,147,.14); }
.contact { background: linear-gradient(125deg,rgba(23,8,25,.96),rgba(128,5,77,.88) 55%,rgba(47,18,119,.92)); }

@keyframes heroLogoFloat { from { transform: translate3d(0,0,0); } to { transform: translate3d(0,-8px,0); } }

@media (max-width: 980px) {
  .site-header { top: .65rem; width: calc(100% - 1rem); }
  .hero-copy { width: calc(100% - 2rem); }
  .hero-glass { width: min(34rem, 70vw); }
  .hero-logo { width: min(31rem, 62vw); }
}

@media (max-width: 640px) {
  .site-header { padding: .6rem .75rem; }
  .brand img { width: 6.4rem; }
  .header-cta { display: none; }
  .hero { min-height: 790px; align-items: flex-end; padding-bottom: 5rem; }
  .hero-image {
    top: 4.7rem;
    right: 0;
    width: 100%;
    height: 61svh;
    object-fit: contain;
    object-position: center top;
  }
  .hero-vignette {
    background: linear-gradient(0deg,#030206 0%,rgba(3,2,6,.97) 28%,rgba(3,2,6,.2) 63%,rgba(3,2,6,.1) 100%);
  }
  .hero-copy { margin: 0 auto; }
  .hero-glass {
    width: 100%;
    padding: 1.1rem;
    border-radius: 1.2rem;
    background: rgba(7,4,10,.67);
    backdrop-filter: blur(14px);
  }
  .hero-logo { width: min(82vw, 30rem); margin: 0 auto; }
  .hero h1 { font-size: .9rem; letter-spacing: .34em; text-align: center; }
  .hero h1::after { margin-inline: auto; }
  .hero-actions { justify-content: center; }
  .scroll-cue { display: none; }
  .section { width: calc(100% - 1.25rem); padding: 5rem 0; }
  .live-banner { margin: .5rem; border-radius: 1.25rem; }
}

body[data-festival="ganesh-chaturthi"] .page-loader {
  background:
    linear-gradient(90deg,rgba(16,4,8,.93),rgba(16,4,8,.58)),
    url('/assets/wish-ganesh-chaturthi-2026.png') center/cover no-repeat;
}
body[data-festival="ganesh-chaturthi"] .loader-line { background:rgba(255,207,108,.18); }
body[data-festival="ganesh-chaturthi"] .loader-line span { background:linear-gradient(90deg,transparent,#ffc34a,transparent); }

/* Ganesh Chaturthi — full-site festive direction */
body[data-festival="ganesh-chaturthi"] {
  --pink:#ffb21c;
  --violet:#d85a16;
  --ink:#170506;
  --festival-gold:#ffc95e;
  --festival-saffron:#f57b16;
  --festival-maroon:#570d19;
  background:
    radial-gradient(circle at 12% 14%,rgba(255,184,42,.16),transparent 28rem),
    radial-gradient(circle at 88% 34%,rgba(180,37,31,.2),transparent 32rem),
    linear-gradient(155deg,#100305 0%,#26070b 44%,#100305 100%);
}
body[data-festival="ganesh-chaturthi"]::before {
  position:fixed;inset:0;z-index:-1;content:"";pointer-events:none;opacity:.18;
  background-image:repeating-radial-gradient(circle at 0 0,transparent 0 28px,rgba(255,201,94,.11) 29px 30px,transparent 31px 58px);
  mask-image:linear-gradient(90deg,#000,transparent 35%,transparent 65%,#000);
}
body[data-festival="ganesh-chaturthi"] .ambient-one{background:#f79a19;opacity:.16}
body[data-festival="ganesh-chaturthi"] .ambient-two{background:#a92224;opacity:.18}
body[data-festival="ganesh-chaturthi"] .site-header{
  border-color:rgba(255,201,94,.3);background:linear-gradient(120deg,rgba(35,7,10,.82),rgba(97,18,19,.54));
  box-shadow:0 14px 50px rgba(34,3,7,.42),inset 0 1px 0 rgba(255,229,167,.1);backdrop-filter:blur(20px) saturate(135%);
}
body[data-festival="ganesh-chaturthi"] .site-nav a{transition:color .35s ease,text-shadow .35s ease,transform .35s ease}
body[data-festival="ganesh-chaturthi"] .site-nav a:hover{color:#ffd978;text-shadow:0 0 20px rgba(255,184,42,.5);transform:translateY(-2px)}
body[data-festival="ganesh-chaturthi"] .hero-glass{
  position:relative;overflow:hidden;
  border-color:rgba(255,201,94,.3);background:linear-gradient(135deg,rgba(42,7,11,.72),rgba(107,19,19,.32));
  box-shadow:0 28px 90px rgba(24,2,5,.46),inset 0 1px 0 rgba(255,233,177,.13);
}
body[data-festival="ganesh-chaturthi"] .hero-glass::after{
  position:absolute;inset:0;border-radius:inherit;content:"";pointer-events:none;
  background:linear-gradient(110deg,transparent 20%,rgba(255,220,139,.14) 46%,transparent 70%);transform:translateX(-130%);animation:festivalGlassSweep 7s ease-in-out infinite;
}
body[data-festival="ganesh-chaturthi"] .button-primary{color:#24070a;background:linear-gradient(135deg,#ffe19a,#ffad20 52%,#e76613);box-shadow:0 12px 34px rgba(245,123,22,.28)}
body[data-festival="ganesh-chaturthi"] .button-secondary,body[data-festival="ganesh-chaturthi"] .button-light{border-color:rgba(255,201,94,.42);background:rgba(74,12,16,.35)}
body[data-festival="ganesh-chaturthi"] .ticker{border-color:rgba(255,201,94,.22);background:linear-gradient(90deg,#3b080f,#8b2418,#3b080f);box-shadow:0 14px 45px rgba(18,1,4,.4)}
body[data-festival="ganesh-chaturthi"] .ticker i,body[data-festival="ganesh-chaturthi"] .section-label span,body[data-festival="ganesh-chaturthi"] .eyebrow{color:#ffc95e}
body[data-festival="ganesh-chaturthi"] .section{position:relative}
body[data-festival="ganesh-chaturthi"] .section::before{
  position:absolute;top:2.5rem;left:0;width:5rem;height:1px;content:"";background:linear-gradient(90deg,#ffc95e,transparent);box-shadow:0 0 18px rgba(255,201,94,.5);
}
body[data-festival="ganesh-chaturthi"] .portrait-frame,
body[data-festival="ganesh-chaturthi"] .gallery-card,
body[data-festival="ganesh-chaturthi"] .look-card,
body[data-festival="ganesh-chaturthi"] .instagram-event-card,
body[data-festival="ganesh-chaturthi"] .video-card,
body[data-festival="ganesh-chaturthi"] .rider,
body[data-festival="ganesh-chaturthi"] .sound{
  border-color:rgba(255,201,94,.22);background:linear-gradient(145deg,rgba(69,11,16,.58),rgba(24,5,9,.78));
  box-shadow:0 24px 65px rgba(15,1,4,.34),inset 0 1px 0 rgba(255,226,157,.08);
  transition:transform .6s cubic-bezier(.2,.75,.2,1),border-color .45s ease,box-shadow .55s ease,filter .45s ease;
}
body[data-festival="ganesh-chaturthi"] .gallery-card:hover,
body[data-festival="ganesh-chaturthi"] .look-card:hover,
body[data-festival="ganesh-chaturthi"] .instagram-event-card:hover,
body[data-festival="ganesh-chaturthi"] .video-card:hover{
  transform:translateY(-8px);border-color:rgba(255,201,94,.58);box-shadow:0 34px 85px rgba(24,2,5,.5),0 0 34px rgba(245,123,22,.13);filter:saturate(1.06);
}
body[data-festival="ganesh-chaturthi"] .gallery-card img,body[data-festival="ganesh-chaturthi"] .look-card img{transition:transform 1.1s cubic-bezier(.2,.75,.2,1),filter .65s ease}
body[data-festival="ganesh-chaturthi"] .gallery-card:hover img,body[data-festival="ganesh-chaturthi"] .look-card:hover img{transform:scale(1.045);filter:saturate(1.08) contrast(1.02)}
body[data-festival="ganesh-chaturthi"] .live-banner{border-color:rgba(255,201,94,.28);box-shadow:0 30px 90px rgba(18,2,4,.48),0 0 45px rgba(239,111,20,.1)}
body[data-festival="ganesh-chaturthi"] .live-overlay{background:linear-gradient(90deg,rgba(29,4,7,.86),rgba(93,13,18,.38),rgba(18,2,5,.25))}
body[data-festival="ganesh-chaturthi"] .contact{background:linear-gradient(125deg,#28070b,#8d2518 55%,#43100e);box-shadow:inset 0 1px 0 rgba(255,225,150,.14)}
body[data-festival="ganesh-chaturthi"] .site-footer{border-top-color:rgba(255,201,94,.2);background:#100305}
body[data-festival="ganesh-chaturthi"] .scroll-progress span{background:linear-gradient(90deg,#ff8a18,#ffe09a)}

@keyframes festivalGlassSweep{0%,55%{transform:translateX(-130%);opacity:0}64%{opacity:1}84%,100%{transform:translateX(130%);opacity:0}}

@media(max-width:640px){
  body[data-festival="ganesh-chaturthi"] .section::before{top:2.2rem;width:3.5rem}
  body[data-festival="ganesh-chaturthi"] .gallery-card:hover,body[data-festival="ganesh-chaturthi"] .look-card:hover,body[data-festival="ganesh-chaturthi"] .instagram-event-card:hover,body[data-festival="ganesh-chaturthi"] .video-card:hover{transform:translateY(-4px)}
}
@media(prefers-reduced-motion:reduce){body[data-festival="ganesh-chaturthi"] .hero-glass::after{animation:none}}

/* VDJ LOVE media library */
.media-menu{position:relative;align-self:center}
.media-menu summary{list-style:none;cursor:pointer;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;transition:color .25s ease}
.media-menu summary::-webkit-details-marker{display:none}
.media-menu[open] summary,.media-menu summary:hover{color:#fff}
.media-menu-panel{position:absolute;top:calc(100% + .8rem);right:0;z-index:20;display:grid;min-width:13rem;padding:.55rem;border:1px solid rgba(255,255,255,.14);border-radius:.8rem;background:rgba(14,8,16,.94);box-shadow:0 1.2rem 3rem rgba(0,0,0,.35);backdrop-filter:blur(18px)}
.media-menu-panel a{padding:.7rem .8rem;color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border-radius:.5rem;transition:background .2s ease,color .2s ease}
.media-menu-panel a:hover{color:#09060b;background:var(--pink)}
.media-subnav{display:flex;gap:.6rem;flex-wrap:wrap;margin:-1.5rem 0 2.3rem}
.media-subnav a{padding:.65rem .9rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;transition:color .25s ease,background .25s ease,border-color .25s ease}
.media-subnav a:hover,.media-subnav a.is-active{color:#0b070d;border-color:var(--pink);background:var(--pink)}
.media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.media-empty{padding:2.5rem 1.5rem;border:1px dashed rgba(255,255,255,.2);border-radius:1rem;color:var(--muted);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;background:rgba(255,255,255,.025)}
.media-card{display:grid;gap:.65rem;padding:.65rem;border:1px solid rgba(255,255,255,.12);border-radius:1rem;background:linear-gradient(145deg,rgba(255,255,255,.1),rgba(255,255,255,.025));box-shadow:0 .9rem 2.2rem rgba(0,0,0,.18);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.media-card:hover{transform:translateY(-5px);border-color:rgba(255,35,141,.7);box-shadow:0 1.2rem 2.6rem rgba(255,35,141,.16)}
.media-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:.65rem;background:#160e19}
.media-card span{padding:.2rem .2rem 0;color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.media-card b{display:inline-flex;justify-content:center;padding:.65rem .5rem;border:1px solid rgba(255,255,255,.2);border-radius:.55rem;color:#fff;font-size:.64rem;letter-spacing:.15em;transition:background .2s ease,color .2s ease}
.media-card:hover b{color:#09060b;background:#fff}
.logo-download-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,25rem);align-items:center;gap:2rem;padding:2rem;border:1px solid rgba(255,255,255,.14);border-radius:1rem;background:linear-gradient(130deg,rgba(255,35,141,.12),rgba(255,255,255,.035))}
.logo-download-card img{width:100%;max-height:16rem;object-fit:contain;padding:1rem;background:rgba(0,0,0,.3);border-radius:.7rem}
.logo-download-card div{display:grid;gap:1rem}.logo-download-card span{color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:980px){.media-menu{justify-self:end}.media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.logo-download-card{grid-template-columns:1fr}}
@media(max-width:640px){.media-menu-panel{right:-.5rem;min-width:12rem}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.media-card{padding:.45rem;border-radius:.75rem}.media-card span{font-size:.58rem}.media-card b{font-size:.56rem;padding:.55rem .35rem}.logo-download-card{padding:1rem}.logo-download-card img{max-height:10rem}}

/* Cinematic Ganesh Chaturthi opening — greeting, then luxury doors */
.festival-intro{display:none}
body[data-festival="ganesh-chaturthi"] .page-loader{
  display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#6f2117 0%,#2b080c 38%,#0d0204 78%);perspective:1600px;
}
body[data-festival="ganesh-chaturthi"] .page-loader::before{
  inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,211,111,.2),transparent 31%),repeating-radial-gradient(circle at 50% 48%,transparent 0 46px,rgba(255,203,91,.055) 47px 48px);opacity:1;animation:introAura 5.6s ease both;
}
body[data-festival="ganesh-chaturthi"] .page-loader::after{bottom:8%;background:linear-gradient(90deg,transparent,#d9831e,#ffe6a5,#d9831e,transparent);animation:introFloor 5.6s ease both}
body[data-festival="ganesh-chaturthi"] .loader-logo-liquid,body[data-festival="ganesh-chaturthi"] .loader-line{display:none}
body[data-festival="ganesh-chaturthi"] .festival-intro{position:absolute;inset:0;z-index:3;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.festival-intro-copy{position:absolute;top:7%;z-index:8;width:min(92vw,72rem);text-align:center;filter:drop-shadow(0 12px 30px rgba(0,0,0,.46));animation:introGreeting 5.6s cubic-bezier(.2,.72,.2,1) both}
.festival-intro-copy small{display:block;margin-bottom:.7rem;color:#ffd982;font-size:clamp(.68rem,1.15vw,.95rem);font-weight:850;letter-spacing:.34em}
.festival-intro-copy strong{display:block;color:#fff5dc;font-family:var(--display);font-size:clamp(3.1rem,7.8vw,8.2rem);line-height:.82;letter-spacing:.015em;text-transform:uppercase;background:linear-gradient(180deg,#fff8e4 8%,#ffd476 48%,#bd6815 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 42px rgba(255,191,63,.08)}
.festival-intro-signature{position:absolute;bottom:5%;z-index:9;color:#ffe9b6;font-size:clamp(.65rem,1vw,.85rem);font-weight:850;letter-spacing:.28em;animation:introSignature 5.6s ease both}
.luxury-doorway{position:absolute;inset:0;z-index:4;overflow:hidden;perspective:1800px;background:linear-gradient(180deg,rgba(255,196,70,.08),transparent 22%,transparent 75%,rgba(0,0,0,.42))}
.door-logo{position:absolute;top:50%;left:50%;z-index:1;width:min(52vw,42rem);filter:drop-shadow(0 18px 48px rgba(0,0,0,.6)) drop-shadow(0 0 32px rgba(255,165,31,.18));opacity:0;transform:translate(-50%,-44%) scale(.82);animation:introLogoBehind 5.6s ease both}
.door-light{position:absolute;top:0;bottom:0;left:50%;z-index:2;width:3px;background:#ffe7a3;box-shadow:0 0 18px #ffc753,0 0 55px rgba(255,159,24,.72);opacity:0;transform:translateX(-50%);animation:doorSeamLight 5.6s ease both}
.luxury-door{position:absolute;top:0;bottom:0;width:50.15%;z-index:5;overflow:hidden;background:linear-gradient(135deg,#6d1a16 0%,#2c0709 45%,#5b1213 100%);box-shadow:inset 0 0 0 2px rgba(255,204,99,.3),inset 0 0 80px rgba(0,0,0,.48);backface-visibility:hidden;will-change:transform}
.luxury-door::before{position:absolute;inset:5% 7%;content:"";border:2px solid rgba(255,205,105,.44);background:linear-gradient(135deg,rgba(255,214,125,.09),transparent 28%,rgba(0,0,0,.2));box-shadow:inset 0 0 0 10px rgba(62,8,10,.55),inset 0 0 0 12px rgba(255,205,105,.16)}
.luxury-door::after{position:absolute;inset:14% 14%;content:"";border:1px solid rgba(255,219,142,.34);background:repeating-linear-gradient(45deg,rgba(255,196,76,.035) 0 2px,transparent 2px 18px);box-shadow:inset 0 0 45px rgba(0,0,0,.5)}
.luxury-door i{position:absolute;top:50%;z-index:7;width:1.05rem;aspect-ratio:1;border:2px solid #ffe0a0;border-radius:50%;background:#a85a16;box-shadow:0 0 0 6px rgba(255,205,105,.14),0 0 25px rgba(255,164,31,.32);transform:translateY(-50%)}
.luxury-door b{position:absolute;top:10%;bottom:10%;z-index:6;width:2px;background:linear-gradient(transparent,#d38a28,#ffe1a0,#d38a28,transparent);opacity:.48}
.door-left{left:0;transform-origin:left center;animation:luxuryDoorLeft 5.6s cubic-bezier(.65,0,.2,1) both}.door-left i{right:5.5%}.door-left b{right:2.5%}
.door-right{right:0;transform-origin:right center;animation:luxuryDoorRight 5.6s cubic-bezier(.65,0,.2,1) both}.door-right i{left:5.5%}.door-right b{left:2.5%}
@keyframes introGreeting{0%{opacity:0;transform:translateY(24px) scale(.94);filter:blur(14px)}12%,48%{opacity:1;transform:none;filter:blur(0)}58%,100%{opacity:0;transform:translateY(-18px) scale(1.03);filter:blur(5px)}}
@keyframes introSignature{0%,16%{opacity:0;transform:translateY(10px)}28%,52%{opacity:1;transform:none}62%,100%{opacity:0}}
@keyframes luxuryDoorLeft{0%,50%{transform:rotateY(0)}88%,100%{transform:rotateY(-105deg) translateX(-3%)}}
@keyframes luxuryDoorRight{0%,50%{transform:rotateY(0)}88%,100%{transform:rotateY(105deg) translateX(3%)}}
@keyframes doorSeamLight{0%,42%{opacity:0}50%{opacity:1}80%{opacity:.75;width:5px}100%{opacity:0;width:24vw}}
@keyframes introLogoBehind{0%,53%{opacity:0;transform:translate(-50%,-44%) scale(.82)}72%,94%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.04)}}
@keyframes introAura{0%{filter:brightness(.7)}38%{filter:brightness(1.12)}100%{filter:brightness(.8)}}
@keyframes introFloor{0%,34%{opacity:0;transform:scaleX(.12)}62%,90%{opacity:1;transform:scaleX(.82)}100%{opacity:0;transform:scaleX(1)}}
@media(max-width:640px){.festival-intro-copy{top:9%}.festival-intro-copy strong{font-size:clamp(2.7rem,14vw,4.5rem);line-height:.86}.festival-intro-copy small{letter-spacing:.22em}.door-logo{width:min(78vw,26rem)}.festival-intro-signature{bottom:7%;letter-spacing:.18em}}
@media(prefers-reduced-motion:reduce){body[data-festival="ganesh-chaturthi"] .festival-intro{display:none}body[data-festival="ganesh-chaturthi"] .loader-logo-liquid,body[data-festival="ganesh-chaturthi"] .loader-line{display:grid}}

/* Approved minimal hero: content floats directly over the artwork, without a card. */
.hero-minimal{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  width:min(46vw,42rem);
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  backdrop-filter:none;
}
.hero-minimal .hero-logo{display:block;margin:0 0 1.15rem}
.hero-minimal h1{margin:0;color:#fff;text-shadow:0 12px 38px rgba(0,0,0,.44)}
.hero-minimal .hero-actions{margin-top:1.55rem}

body[data-festival="ganesh-chaturthi"] .hero-minimal{background:none;border:0;box-shadow:none;overflow:visible}
body[data-festival="ganesh-chaturthi"] .hero-minimal::after{display:none}

@media(max-width:980px){
  .hero-minimal{width:min(34rem,70vw)}
}
@media(max-width:640px){
  .hero-minimal{width:100%;align-items:center;text-align:center}
  .hero-minimal .hero-logo{width:min(82vw,30rem);margin:0 auto 1rem}
  .hero-minimal h1{font-size:.9rem;letter-spacing:.34em;text-align:center}
  .hero-minimal h1::after{margin-inline:auto}
  .hero-minimal .hero-actions{justify-content:center;margin-top:1.4rem}
}

/* Birthday hero: show the supplied celebration artwork as one full-screen image.
   These declarations intentionally override the older split-layout hero rules. */
body[data-festival="birthday"] .hero-image{
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:none;
  scale:1;
}
body[data-festival="birthday"] .hero-vignette{
  z-index:1;
  background:
    linear-gradient(90deg,rgba(29,15,20,.28) 0%,rgba(29,15,20,.04) 54%,rgba(29,15,20,.18) 100%),
    linear-gradient(0deg,rgba(15,7,10,.56) 0%,transparent 58%);
}
body[data-festival="birthday"] .hero-image-reveal{
  z-index:2;
  background:linear-gradient(90deg,rgba(29,14,20,.18) 0%,rgba(29,14,20,.02) 56%,rgba(29,14,20,.12) 100%);
}

/* Full-bleed hero image: keep the complete composition visible on every viewport. */
.hero-image-panel { inset: 0 !important; }
.hero-image-panel .hero-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}
@media (max-width: 640px) {
  .hero-image-panel .hero-image {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
  }
}
body[data-festival="birthday"] .hero-light-sweep,
body[data-festival="birthday"] .hero-prism{z-index:2}
body[data-festival="birthday"] .hero-copy,
body[data-festival="birthday"] .festival-motion{z-index:3}
body[data-festival="birthday"] .hero-copy{
  position:absolute;
  left:clamp(1.5rem,6vw,7rem);
  bottom:clamp(5rem,12vh,10rem);
  width:auto;
  margin:0;
  align-items:flex-start;
  text-align:left;
}
body[data-festival="birthday"] .hero-copy .hero-logo{margin-left:0;margin-right:0}
body[data-festival="birthday"] .hero-copy .hero-actions{justify-content:flex-start}
@media(max-width:640px){
  body[data-festival="birthday"] .hero-image{height:100%;object-fit:cover;object-position:62% center}
  body[data-festival="birthday"] .hero-vignette{background:linear-gradient(0deg,rgba(23,12,17,.7) 0%,rgba(23,12,17,.22) 43%,rgba(23,12,17,.05) 76%)}
  body[data-festival="birthday"] .hero-copy{left:1.25rem;right:1.25rem;bottom:4rem;width:auto;align-items:flex-start;text-align:left}
  body[data-festival="birthday"] .hero-copy .hero-logo{margin-left:0;margin-right:0}
  body[data-festival="birthday"] .hero-copy h1{text-align:left}
  body[data-festival="birthday"] .hero-copy h1::after{margin-left:0}
  body[data-festival="birthday"] .hero-copy .hero-actions{justify-content:flex-start}
}

/* Final hero sizing override: full image, no panel crop. */
.hero-image-panel { inset: 0 !important; }
.hero-image-panel .hero-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}
@media(max-width:640px){
  .hero-image-panel .hero-image { inset:0 !important; width:100% !important; height:100% !important; object-fit:contain !important; object-position:center center !important; }
}

/* Full-bleed uploaded hero video. Keep its pixels at full opacity on every viewport. */
.hero-video-visual {
  inset: 0 !important;
  z-index: -2 !important;
  opacity: 1 !important;
  background: #09060b;
}
.hero-video-visual .hero-video {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  animation: none !important;
}
.hero-video-visual::after,
.hero-vignette,
.hero-light-sweep,
.hero-prism,
.hero-image-reveal,
.hero-orbit { display: none !important; }
@media (max-width: 640px) {
  .hero-video-visual .hero-video { object-position: 79% center !important; }
}

/* Video-led immersive theme. The source video stays unfiltered and at full opacity. */
:root{
  --stage-pink:#ff168f;
  --stage-cyan:#18dbea;
  --stage-amber:#ffae45;
  --stage-ink:#07030c;
}
body.video-theme{
  background-color:var(--stage-ink);
  background-image:
    radial-gradient(ellipse 65% 44% at 7% 14%,rgba(255,22,143,.12),transparent 72%),
    radial-gradient(ellipse 54% 38% at 91% 40%,rgba(24,219,234,.09),transparent 74%),
    radial-gradient(ellipse 42% 34% at 42% 92%,rgba(255,174,69,.06),transparent 74%);
}
body.video-theme::before{
  content:"";
  position:fixed;
  z-index:-2;
  inset:0;
  pointer-events:none;
  opacity:.74;
  background:
    radial-gradient(ellipse 32% 52% at 12% 22%,rgba(255,22,143,.09),transparent 70%),
    radial-gradient(ellipse 36% 48% at 88% 55%,rgba(24,219,234,.075),transparent 72%),
    linear-gradient(118deg,transparent 0 43%,rgba(255,174,69,.025) 49%,transparent 57%);
  animation:stageAtmosphere 22s ease-in-out infinite alternate;
}
body.video-theme .site-header{
  isolation:isolate;
  border-bottom-color:rgba(255,255,255,.1);
  box-shadow:0 10px 34px rgba(0,0,0,.2);
}
body.video-theme .site-header::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:0;
  bottom:-1px;
  left:0;
  height:1px;
  opacity:.76;
  background:linear-gradient(90deg,transparent 0%,var(--stage-pink) 28%,var(--stage-cyan) 54%,var(--stage-amber) 74%,transparent 100%);
  background-size:200% 100%;
  animation:neonRail 8s linear infinite;
}
body.video-theme .hero{
  isolation:isolate;
  background:#050207;
}
body.video-theme .hero::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  opacity:.34;
  background:linear-gradient(112deg,rgba(255,22,143,.075) 0%,transparent 26%,transparent 67%,rgba(24,219,234,.08) 100%);
  mix-blend-mode:screen;
}
body.video-theme .hero::after{
  content:"";
  position:absolute;
  z-index:1;
  inset:clamp(1rem,2.5vw,2.8rem);
  height:auto !important;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.15);
  border-image:linear-gradient(120deg,rgba(255,22,143,.55),rgba(255,255,255,.05) 37%,rgba(24,219,234,.52) 70%,rgba(255,174,69,.42)) 1;
  background:transparent !important;
  box-shadow:inset 0 0 40px rgba(0,0,0,.14),0 0 42px rgba(24,219,234,.05);
}
body.video-theme .hero-copy{
  z-index:3;
  animation:heroCopyFloat 1.1s cubic-bezier(.2,.75,.2,1) both;
}
body.video-theme .hero-minimal{
  position:relative;
  padding:clamp(.75rem,1.7vw,1.4rem);
  border-radius:1rem;
  background:linear-gradient(105deg,rgba(6,3,10,.38),rgba(6,3,10,.1));
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.09),0 12px 36px rgba(0,0,0,.12);
  backdrop-filter:blur(2px);
}
body.video-theme .hero-minimal::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-1px;
  border-radius:inherit;
  opacity:.45;
  background:linear-gradient(120deg,rgba(255,22,143,.7),transparent 34%,transparent 62%,rgba(24,219,234,.62));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  padding:1px;
}
body.video-theme .hero-logo{
  filter:drop-shadow(0 0 18px rgba(255,22,143,.22)) drop-shadow(0 8px 24px rgba(0,0,0,.48));
  animation:logoAura 6s ease-in-out infinite;
}
body.video-theme .hero-minimal h1{
  text-shadow:0 3px 2px rgba(0,0,0,.4),0 0 20px rgba(24,219,234,.16);
}
body.video-theme .hero-minimal h1::after{
  background:linear-gradient(90deg,var(--stage-pink),var(--stage-cyan),var(--stage-amber));
  box-shadow:0 0 12px rgba(24,219,234,.46);
}
body.video-theme .hero .btn-primary{
  box-shadow:0 0 0 1px rgba(255,255,255,.16),0 9px 24px rgba(255,22,143,.26),0 0 26px rgba(24,219,234,.13);
}
body.video-theme .hero .btn-primary::before{
  content:"";
  position:absolute;
  inset:1px;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(105deg,transparent 12%,rgba(255,255,255,.42) 45%,transparent 58%);
  background-size:240% 100%;
  opacity:.46;
  animation:buttonShimmer 4.8s ease-in-out infinite;
}
body.video-theme .section,
body.video-theme .live-banner,
body.video-theme .contact{
  position:relative;
  isolation:isolate;
}
body.video-theme .section::after,
body.video-theme .live-banner::after,
body.video-theme .contact::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  opacity:0;
  transform:scaleX(.68);
  transform-origin:center;
  background:
    linear-gradient(105deg,transparent 8%,rgba(255,22,143,.08) 32%,rgba(24,219,234,.065) 53%,rgba(255,174,69,.05) 72%,transparent 93%);
  transition:opacity .9s ease,transform 1.2s cubic-bezier(.2,.7,.2,1);
}
body.video-theme .section.is-onstage::after,
body.video-theme .live-banner.is-onstage::after,
body.video-theme .contact.is-onstage::after{
  opacity:1;
  transform:scaleX(1);
  animation:sectionBeam 13s ease-in-out infinite alternate;
}
body.video-theme .about,
body.video-theme .sound,
body.video-theme .moments,
body.video-theme .listen,
body.video-theme .craft{
  background-image:linear-gradient(112deg,rgba(255,255,255,.016),transparent 33%,rgba(24,219,234,.018));
}
body.video-theme .media-card,
body.video-theme .instagram-event-card,
body.video-theme .video-card,
body.video-theme .gallery-card,
body.video-theme .event-card,
body.video-theme .look-card{
  position:relative;
  overflow:hidden;
  transform:translate3d(0,0,0);
  will-change:transform;
  border-color:rgba(255,255,255,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 12px 32px rgba(0,0,0,.12);
  transition:transform .45s cubic-bezier(.2,.72,.2,1),border-color .45s ease,box-shadow .45s ease;
}
body.video-theme .media-card::after,
body.video-theme .instagram-event-card::after,
body.video-theme .video-card::after,
body.video-theme .gallery-card::after,
body.video-theme .event-card::after,
body.video-theme .look-card::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(116deg,transparent 22%,rgba(255,255,255,.2) 43%,rgba(24,219,234,.16) 49%,transparent 61%);
  background-size:220% 100%;
  transition:opacity .4s ease,background-position .8s ease;
}
body.video-theme .media-card:hover,
body.video-theme .instagram-event-card:hover,
body.video-theme .video-card:hover,
body.video-theme .gallery-card:hover,
body.video-theme .event-card:hover,
body.video-theme .look-card:hover{
  transform:translate3d(0,-7px,0) scale(1.012);
  border-color:rgba(24,219,234,.44);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 18px 42px rgba(0,0,0,.29),0 0 28px rgba(255,22,143,.11),0 0 30px rgba(24,219,234,.08);
}
body.video-theme .media-card:hover::after,
body.video-theme .instagram-event-card:hover::after,
body.video-theme .video-card:hover::after,
body.video-theme .gallery-card:hover::after,
body.video-theme .event-card:hover::after,
body.video-theme .look-card:hover::after{
  opacity:1;
  background-position:100% 0;
}
body.video-theme .media-card img,
body.video-theme .gallery-card img,
body.video-theme .look-card img,
body.video-theme .video-card img{
  transition:transform .7s cubic-bezier(.2,.72,.2,1),filter .7s ease;
}
body.video-theme .media-card:hover img,
body.video-theme .gallery-card:hover img,
body.video-theme .look-card:hover img,
body.video-theme .video-card:hover img{
  transform:scale(1.055);
  filter:saturate(1.08) contrast(1.03);
}
body.video-theme .live-banner{
  border-block-color:rgba(24,219,234,.16);
  box-shadow:0 0 60px rgba(24,219,234,.045),inset 0 1px 0 rgba(255,255,255,.06);
}
body.video-theme .contact{
  background-size:160% 160%;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 48px rgba(255,22,143,.055);
  animation:contactGlow 14s ease-in-out infinite alternate;
}
body.video-theme .contact .btn-primary{
  position:relative;
  overflow:hidden;
  box-shadow:0 10px 25px rgba(255,22,143,.22),0 0 18px rgba(24,219,234,.11);
}
body.video-theme .contact .btn-primary:hover{box-shadow:0 12px 30px rgba(255,22,143,.32),0 0 30px rgba(24,219,234,.28)}
body.video-theme .site-footer{
  background-image:radial-gradient(ellipse 56% 100% at 50% 100%,rgba(255,22,143,.07),transparent 72%),linear-gradient(180deg,rgba(6,3,11,.2),rgba(4,2,7,.84));
}

@keyframes stageAtmosphere{
  0%{transform:translate3d(-2%,-1%,0) scale(1)}
  52%{transform:translate3d(2%,1%,0) scale(1.06)}
  100%{transform:translate3d(-1%,2%,0) scale(1.02)}
}
@keyframes neonRail{to{background-position:200% 0}}
@keyframes heroCopyFloat{from{opacity:0;transform:translate3d(0,18px,0) scale(.985)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes logoAura{0%,100%{filter:drop-shadow(0 0 18px rgba(255,22,143,.22)) drop-shadow(0 8px 24px rgba(0,0,0,.48))}50%{filter:drop-shadow(0 0 22px rgba(24,219,234,.28)) drop-shadow(0 8px 24px rgba(0,0,0,.48))}}
@keyframes buttonShimmer{0%,38%{background-position:130% 0}72%,100%{background-position:-90% 0}}
@keyframes sectionBeam{0%,100%{background-position:0 0;filter:hue-rotate(0deg)}50%{background-position:100% 0;filter:hue-rotate(10deg)}}
@keyframes contactGlow{0%{background-position:0% 45%}100%{background-position:100% 56%}}

@media(max-width:640px){
  body.video-theme .hero::after{inset:.8rem}
  body.video-theme .hero-minimal{padding:.7rem;background:rgba(6,3,10,.25);backdrop-filter:none}
  body.video-theme .media-card:hover,
  body.video-theme .instagram-event-card:hover,
  body.video-theme .video-card:hover,
  body.video-theme .gallery-card:hover,
  body.video-theme .event-card:hover,
  body.video-theme .look-card:hover{transform:translate3d(0,-3px,0)}
  body.video-theme::before{opacity:.46}
}
@media(prefers-reduced-motion:reduce){
  body.video-theme::before,
  body.video-theme .site-header::after,
  body.video-theme .hero-copy,
  body.video-theme .hero-logo,
  body.video-theme .hero .btn-primary::before,
  body.video-theme .section.is-onstage::after,
  body.video-theme .live-banner.is-onstage::after,
  body.video-theme .contact.is-onstage::after,
  body.video-theme .contact{animation:none!important}
  body.video-theme .section::after,
  body.video-theme .live-banner::after,
  body.video-theme .contact::after{transition:none;opacity:.4;transform:none}
  body.video-theme .media-card,
  body.video-theme .instagram-event-card,
  body.video-theme .video-card,
  body.video-theme .gallery-card,
  body.video-theme .event-card,
  body.video-theme .look-card,
  body.video-theme .media-card img,
  body.video-theme .gallery-card img,
  body.video-theme .look-card img,
  body.video-theme .video-card img{transition:none!important}
}

/* Instagram embeds stay inside the card at narrow widths.  Instagram's
   generated iframe carries an inline 326px minimum, so override it here. */
.instagram-event-grid,
.instagram-event-card,
.instagram-event-card .instagram-media,
.instagram-event-card .instagram-media > div,
.instagram-event-card .instagram-media iframe {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box;
}
.instagram-event-card .instagram-media,
.instagram-event-card .instagram-media iframe {
  width: 100% !important;
}
.instagram-event-card .instagram-media {
  overflow: hidden !important;
}
.instagram-feed-intro { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin:2rem 0 1rem; }
.instagram-feed-intro h3 { margin:.3rem 0; color:#fff; font-size:clamp(1.15rem,2vw,1.65rem); }
.instagram-feed-intro p { max-width:38rem; margin:0; color:var(--muted); font-size:.82rem; line-height:1.5; }
.instagram-open-link { display:flex; align-items:center; justify-content:center; min-height:2.6rem; margin-top:.6rem; border:1px solid rgba(255,255,255,.14); border-radius:.7rem; color:#fff; background:rgba(255,255,255,.035); font-size:.68rem; font-weight:800; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.instagram-open-link:hover { border-color:var(--pink); background:rgba(255,20,147,.12); }
@media (max-width: 640px) {
  .reveal { filter:none; transform:translate3d(0, 10px, 0); transition:opacity .38s ease var(--delay, 0ms), transform .38s cubic-bezier(.2,.75,.2,1) var(--delay, 0ms); }
  .reveal.is-visible { filter:none; transform:translate3d(0,0,0); }
  .gallery-grid, .instagram-event-grid, .video-library { perspective:none; }
  body.video-theme .media-card, body.video-theme .instagram-event-card, body.video-theme .video-card, body.video-theme .gallery-card, body.video-theme .event-card, body.video-theme .look-card { will-change:auto; }
  body.video-theme .media-card, body.video-theme .instagram-event-card, body.video-theme .video-card { backdrop-filter:none; box-shadow:0 10px 26px rgba(0,0,0,.22); }
  body.video-theme .media-card::after, body.video-theme .instagram-event-card::after, body.video-theme .video-card::after { display:none; }
  body.video-theme .media-card:hover, body.video-theme .instagram-event-card:hover, body.video-theme .video-card:hover { transform:none; box-shadow:0 10px 26px rgba(0,0,0,.22); }
  .instagram-event-grid { grid-template-columns: minmax(0, 1fr) !important; gap: .85rem; }
  .instagram-event-card { width: 100%; padding: .65rem; }
  .instagram-event-heading { min-width: 0; }
  .instagram-event-heading span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .instagram-event-heading time { flex: 0 0 auto; font-size: .64rem; }
  .instagram-event-card .instagram-media > a { min-height: 19rem; padding: 1.1rem; }
  .instagram-feed-intro { align-items:start; flex-direction:column; margin:1.5rem 0 .8rem; }
  .instagram-feed-intro p { font-size:.75rem; }
  .instagram-open-link { min-height:2.85rem; }
}
@media (hover:none) {
  body.video-theme .media-card, body.video-theme .instagram-event-card, body.video-theme .video-card, body.video-theme .gallery-card, body.video-theme .event-card { transition:transform .18s ease,border-color .18s ease; }
  body.video-theme .media-card:hover, body.video-theme .instagram-event-card:hover, body.video-theme .video-card:hover, body.video-theme .gallery-card:hover, body.video-theme .event-card:hover { transform:none; }
}

/* Hero repair: true 50/50 media split; image is a real element and remains uncropped. */
.hero {
  position: relative;
  min-height: max(720px, 100svh);
  overflow: hidden;
  isolation: isolate;
  background: #08040b;
}
.hero-video-visual {
  position: absolute !important;
  inset: 0 50% 0 0 !important;
  z-index: 0 !important;
  overflow: hidden;
  opacity: 1 !important;
  background: #09060b;
}
.hero-video-visual .hero-video {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 54% !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  animation: none !important;
}
.hero-video-visual::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, rgba(7,3,7,.20), rgba(7,3,7,.10) 74%, rgba(7,3,7,.52));
}
.hero-image-panel {
  position: absolute !important;
  inset: 0 0 0 50% !important;
  z-index: 0 !important;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: #10070d;
  box-shadow: -18px 0 52px rgba(7,3,7,.32);
}
.hero-image-panel::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, rgba(7,3,7,.28), transparent 24%), linear-gradient(0deg, rgba(7,3,7,.18), transparent 30%);
}
.hero-image-panel .hero-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  opacity: 1 !important;
  filter: saturate(1.02) contrast(1.02) !important;
  transform: none !important;
  scale: 1 !important;
  animation: none !important;
  background: #10070d;
}
.hero-vignette, .hero-light-sweep, .hero-prism, .hero-image-reveal, .hero-orbit { display: none !important; }
.hero-copy {
  position: absolute !important;
  z-index: 4 !important;
  top: 50%;
  left: clamp(1.5rem, 5vw, 5rem);
  width: min(40%, 530px) !important;
  margin: 0 !important;
  transform: translateY(-50%);
}
.hero-copy.hero-minimal { align-items: flex-start; text-align: left; }
.hero-copy.hero-minimal h1 { text-align: left; }
.hero-copy.hero-minimal h1::after { margin-left: 0; }
.hero-copy .hero-actions { justify-content: flex-start; }
.scroll-cue { z-index: 5; }
@media (max-width: 640px) {
  .hero { min-height: max(820px, 100svh); height: max(820px, 100svh); padding-bottom: 0 !important; }
  .hero-video-visual { inset: 0 0 66% 0 !important; }
  .hero-video-visual .hero-video { object-position: center 52% !important; }
  .hero-video-visual::after { background: linear-gradient(0deg, rgba(7,3,7,.24), transparent 35%); }
  .hero-image-panel { inset: 32% 0 22% 0 !important; box-shadow: 0 -12px 36px rgba(7,3,7,.26); }
  .hero-image-panel .hero-image { object-fit: contain !important; object-position: center center !important; }
  .hero-image-panel::before { background: linear-gradient(0deg, rgba(7,3,7,.12), transparent 24%); }
  .hero-copy {
    top: auto !important;
    right: 1rem;
    bottom: 1.35rem;
    left: 1rem;
    width: auto !important;
    transform: none !important;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 1rem;
    background: rgba(9,5,12,.78);
    backdrop-filter: blur(12px);
  }
  .hero-logo { width: min(70vw, 18rem) !important; margin: 0 !important; }
  .hero-copy.hero-minimal h1 { margin: .6rem 0 0; font-size: .82rem; letter-spacing: .28em; }
  .hero-copy .hero-actions { gap: .8rem; margin-top: .8rem; align-items: center; flex-direction: row; }
  .hero-copy .button { padding: .7rem 1rem; }
  .hero-play { width: 2.6rem; height: 2.6rem; }
  .scroll-cue { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-video-visual .hero-video { animation: none !important; }
}


/* Desktop and mobile use separate encodings of the same continuous video sequence. */
.hero { min-height: max(720px, 100svh); height: max(720px, 100svh); background: #07030c; }
.hero-video-visual { inset: 0 !important; z-index: 0 !important; opacity: 1 !important; background: transparent; }
.hero-video-visual .hero-video {
  inset: 0 !important; width: 100% !important; height: 100% !important;
  object-fit: cover !important; object-position: center center !important;
  opacity: 1 !important; filter: none !important; mix-blend-mode: normal !important; animation: none !important;
}
.hero-video-visual::after, .hero-image-panel, .hero-vignette, .hero-light-sweep, .hero-prism, .hero-image-reveal, .hero-orbit { display: none !important; }
.hero-copy { z-index: 4 !important; }
@media (max-width: 640px) {
  .hero { min-height: max(820px, 100svh); height: max(820px, 100svh); }
  .hero-video-visual { inset: 0 !important; }
  .hero-video-visual .hero-video { object-fit: cover !important; object-position: center center !important; }
}

/* Latest music release */
.release-section { border-top: 1px solid var(--line); }
.release-card { display: grid; grid-template-columns: minmax(260px, .82fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; padding: clamp(1rem, 3vw, 2.5rem); border: 1px solid rgba(255,255,255,.14); border-radius: 1.5rem; background: linear-gradient(135deg, rgba(255,35,141,.1), rgba(255,255,255,.025) 48%, rgba(255,177,38,.06)); box-shadow: 0 24px 80px rgba(0,0,0,.26); }
.release-artwork { display: block; width: 100%; height: auto; max-width: 560px; max-height: min(68vh, 640px); aspect-ratio: auto; margin: 0 auto; object-fit: contain; object-position: center; border: 1px solid rgba(255,255,255,.14); border-radius: 1rem; box-shadow: 0 18px 55px rgba(0,0,0,.35); }
.release-copy { min-width: 0; }
.release-copy h2 { margin: .45rem 0 0; font-size: clamp(3.5rem, 7vw, 7rem); line-height: .82; letter-spacing: -.065em; }
.release-copy h2 em { color: var(--pink); font-style: normal; }
.release-subtitle { margin: .85rem 0 0; color: #fff; font-size: .8rem; font-weight: 850; letter-spacing: .22em; }
.release-description { max-width: 34rem; margin: 1.1rem 0; color: var(--muted); }
.release-card .release-meta { flex-direction: column; gap: .55rem; }
.release-card .release-meta span + span { padding: 0; border: 0; }
.release-video-wrap { margin: 1.4rem 0 1.2rem; }
.release-video-label { margin: 0 0 .65rem; color: #ffd5e7; font-size: .68rem; font-weight: 850; letter-spacing: .16em; }
.release-video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: .9rem; background: #08060a; box-shadow: 0 14px 40px rgba(0,0,0,.3), 0 0 24px rgba(255,35,141,.08); }
.release-video-frame iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; }
.release-support { margin: 1.3rem 0 1.2rem; }
.release-support > p { margin: 0 0 .7rem; color: #fff; font-size: .72rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.release-social-links { display: flex; flex-wrap: wrap; gap: .55rem 1rem; }
.release-social-links a { color: #ffd5e7; font-size: .76rem; text-underline-offset: .25em; }
.release-social-links a:hover, .release-social-links a:focus-visible { color: #fff; }
.release-support small { display: block; max-width: 34rem; margin-top: .75rem; color: #b6aab4; font-size: .69rem; line-height: 1.55; }
.release-download { margin-top: .3rem; }
@media (max-width: 760px) {
  .release-card { grid-template-columns: 1fr; gap: 1.5rem; padding: 1rem; border-radius: 1.15rem; }
  .release-artwork { width: min(100%, 500px); }
  .release-copy h2 { font-size: clamp(3.3rem, 16vw, 5.4rem); }
  .release-social-links { flex-direction: column; gap: .7rem; }
  .release-download { display: block; width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .release-card, .release-artwork { scroll-behavior: auto; }
}

.release-checks { display: grid; gap: .55rem; margin-top: 1rem; }
.release-checks label { display: flex; align-items: flex-start; gap: .65rem; color: #eee4ec; font-size: .75rem; line-height: 1.45; cursor: pointer; }
.release-checks input { flex: 0 0 auto; width: 1rem; height: 1rem; margin: .08rem 0 0; accent-color: var(--pink); }
.release-download:disabled { cursor: not-allowed; opacity: .5; filter: saturate(.55); box-shadow: none; }
.release-download:not(:disabled) { cursor: pointer; }

/* Latest-release cinematic motion */
.release-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: border-color .45s ease, box-shadow .55s ease, transform .55s cubic-bezier(.2,.75,.2,1);
}
.release-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 auto 0 -42%;
  width: 48%;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(105deg, transparent 8%, rgba(0,229,255,.055) 38%, rgba(255,35,141,.13) 52%, rgba(255,177,38,.07) 63%, transparent 94%);
  transform: translate3d(-110%,0,0) skewX(-13deg);
}
.release-card > * { position: relative; z-index: 1; }
.release-card.is-visible::before { animation: releaseLightSweep 8.5s cubic-bezier(.4,0,.2,1) .45s infinite; }
.release-artwork {
  transform: translate3d(0,0,0) scale(.985);
  transition: transform .8s cubic-bezier(.2,.75,.2,1), border-color .45s ease, box-shadow .65s ease;
  backface-visibility: hidden;
}
.release-card.is-visible .release-artwork { animation: releaseArtworkIn .85s cubic-bezier(.2,.75,.2,1) both; }
.release-card.is-visible .release-copy > * { animation: releaseCopyIn .62s cubic-bezier(.2,.75,.2,1) both; }
.release-card.is-visible .release-copy > :nth-child(1) { animation-delay: .08s; }
.release-card.is-visible .release-copy > :nth-child(2) { animation-delay: .14s; }
.release-card.is-visible .release-copy > :nth-child(3) { animation-delay: .20s; }
.release-card.is-visible .release-copy > :nth-child(4) { animation-delay: .26s; }
.release-card.is-visible .release-copy > :nth-child(5) { animation-delay: .32s; }
.release-card.is-visible .release-copy > :nth-child(6) { animation-delay: .38s; }
.release-card.is-visible .release-copy > :nth-child(7) { animation-delay: .44s; }
.release-card.is-visible .release-copy > :nth-child(8) { animation-delay: .50s; }
.release-card:hover, .release-card:focus-within {
  border-color: rgba(255,35,141,.34);
  box-shadow: 0 28px 86px rgba(0,0,0,.34), 0 0 42px rgba(255,35,141,.09);
}
.release-card:hover .release-artwork, .release-card:focus-within .release-artwork {
  transform: translate3d(0,-4px,0) scale(1.012);
  border-color: rgba(255,177,38,.35);
  box-shadow: 0 24px 60px rgba(0,0,0,.4), 0 0 30px rgba(255,35,141,.14);
}
.release-overline { display: flex; align-items: center; gap: .55rem; }
.release-overline::before {
  content: "";
  width: .42rem;
  height: .42rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--pink);
  box-shadow: 0 0 13px rgba(255,35,141,.8);
  animation: releaseSignal 2.4s ease-in-out infinite;
}
.release-video-frame { transition: border-color .35s ease, box-shadow .45s ease; }
.release-card:hover .release-video-frame, .release-card:focus-within .release-video-frame {
  border-color: rgba(255,35,141,.38);
  box-shadow: 0 18px 48px rgba(0,0,0,.36), 0 0 30px rgba(255,35,141,.13);
}
.release-social-links a { transition: color .25s ease, transform .25s ease; }
.release-social-links a:hover, .release-social-links a:focus-visible { transform: translateX(3px); }
.release-download { transition: transform .25s ease, box-shadow .3s ease, background-color .3s ease; }
.release-download:not(:disabled):hover, .release-download:not(:disabled):focus-visible { transform: translateY(-2px); }
@keyframes releaseLightSweep {
  0%, 12% { opacity: 0; transform: translate3d(-110%,0,0) skewX(-13deg); }
  20% { opacity: .85; }
  36%, 100% { opacity: 0; transform: translate3d(340%,0,0) skewX(-13deg); }
}
@keyframes releaseArtworkIn {
  from { opacity: .72; transform: translate3d(0,12px,0) scale(.97); }
  to { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}
@keyframes releaseCopyIn {
  from { opacity: .35; transform: translate3d(0,12px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes releaseSignal {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .62; transform: scale(.78); }
}
@media (max-width: 760px) {
  .release-card.is-visible::before { animation-duration: 11s; }
  .release-card:hover .release-artwork, .release-card:focus-within .release-artwork { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .release-card, .release-artwork, .release-video-frame, .release-social-links a, .release-download { transition: none !important; animation: none !important; }
  .release-card.is-visible .release-copy > * { animation: none !important; }
  .release-card::before, .release-overline::before { animation: none !important; }
  .release-card.is-visible .release-copy > * { opacity: 1; transform: none; }
  .release-card:hover .release-artwork, .release-card:focus-within .release-artwork, .release-download:not(:disabled):hover, .release-download:not(:disabled):focus-visible { transform: none; }
}
