*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}

:root{
  --bg:#0d0000;
  --bg2:#160000;
  --red:#cc1122;
  --red-bright:#ff1a2e;
  --red-glow:#ff0020;
  --red-deep:#8b0010;
  --white:#ffffff;
  --off-white:#f5e8e8;
  --white-dim:rgba(255,255,255,0.55);
  --white-mid:rgba(255,255,255,0.8);
  --border:rgba(204,17,34,0.35);
  --border-dim:rgba(255,255,255,0.12);
  --glow: 0 0 40px rgba(204,17,34,0.4), 0 0 80px rgba(204,17,34,0.15);
}

body{
  background:var(--bg);
  color:var(--white);
  font-family:'Montserrat',sans-serif;
  font-weight:300;
  overflow-x:hidden;
}

/* CUSTOM CURSOR */
*, *::before, *::after { cursor: default; }
a, button { cursor: pointer; }

/* SCROLLBAR */
::-webkit-scrollbar{width:3px;}
::-webkit-scrollbar-track{background:#0d0000;}
::-webkit-scrollbar-thumb{background:var(--red); border-radius:2px;}

/* ── LOADING SCREEN ── */
.page-loader {
  position: fixed;
  inset: 0;
  background: linear-gradient(135deg, #0d0000 0%, #160000 50%, #0d0000 100%);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 2rem;
  animation: loaderFadeOut 0.8s ease-in-out 2.2s forwards;
  pointer-events: none;
}

.page-loader.hidden {
  display: none;
}

.loader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}


.secondlogo:hover {
  filter: drop-shadow(0 0 20px rgba(255, 26, 46, 0.6));
  transform: scale(1.07);
  cursor: pointer;
  transition: all 0.3s ease;
}





.loader-spinner {
  width: 60px;
  height: 60px;
  position: relative;
}

.loader-spinner::before {
  content: '';
  position: absolute;
  inset: 0;
  border: 3px solid transparent;
  border-top-color: var(--red-bright);
  border-right-color: var(--red);
  border-radius: 50%;
  animation: spinLoader 1.2s linear infinite;
  box-shadow: 0 0 20px rgba(255, 26, 46, 0.5);
}

.loader-spinner::after {
  content: '';
  position: absolute;
  inset: 8px;
  border: 2px solid transparent;
  border-bottom-color: var(--red-bright);
  border-left-color: var(--red);
  border-radius: 50%;
  animation: spinLoader 1.8s linear infinite reverse;
  opacity: 0.6;
}

.loader-text {
  font-family: 'Cinzel', serif;
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--white-dim);
  animation: textPulseLoader 1.5s ease-in-out infinite;
}

.loader-dots {
  display: flex;
  gap: 0.4rem;
}

.loader-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red-bright);
  animation: dotBounce 1.4s ease-in-out infinite;
}

.loader-dot:nth-child(1) { animation-delay: 0s; }
.loader-dot:nth-child(2) { animation-delay: 0.2s; }
.loader-dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes spinLoader {
  to { transform: rotate(360deg); }
}

@keyframes textPulseLoader {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}

@keyframes dotBounce {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-10px) scale(1.1); opacity: 1; }
}

@keyframes loaderFadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; }
}

/* ── ANIMATED BACKGROUND PARTICLES ── */
.bg-particles {
  position:fixed;
  inset:0;
  z-index:-3;
  overflow:hidden;
  pointer-events:none;
}
.particle {
  position:absolute;
  border-radius:50%;
  background:var(--red);
  opacity:0;
  animation:particleFloat linear infinite;
}

/* ── HERO IMAGE ── */
.hero-img{
  position:fixed;
  inset:0;
  z-index:-2;
  background:linear-gradient(160deg,#1a0000 0%,#0d0000 40%,#1a0005 70%,#050000 100%);
}
.hero-img img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  opacity:0.65;
  filter:saturate(1.1) brightness(0.85);
}
.hero-img::before{
  content:'';
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 60% 30%,rgba(204,17,34,0.25) 0%,transparent 60%),
    radial-gradient(ellipse at 20% 80%,rgba(204,17,34,0.12) 0%,transparent 50%);
  z-index:1;
}
.hero-img::after{
  content:'';
  position:absolute;inset:0;
  background: linear-gradient(to bottom, rgba(13,0,0,0.1) 0%, rgba(13,0,0,0.35) 70%, rgba(13,0,0,0.85) 100%);
  z-index:1;
}

.hero-overlay{
  position:fixed;
  inset:0;
  background:rgba(13,0,0,0.05);
  z-index:-1;
}

/* Sections with bg */
#about,#explore,#events,#gallery,#book,#contact{
  background:rgba(10,0,0,0.38);
  backdrop-filter:blur(1px);
}
.marquee{background:rgba(13,0,0,0.6);}
footer{background:rgba(5,0,0,0.65);}

/* ── STICKY MINI-NAV ── */
#sticky-nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  padding:.8rem 6%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:rgba(10,0,0,0.97);
  backdrop-filter:blur(24px);
  border-bottom:1px solid rgba(204,17,34,0.4);
  transform:translateY(-100%);
  transition:transform .45s cubic-bezier(.77,0,.175,1);
  box-shadow: 0 2px 30px rgba(204,17,34,0.15);
}
#sticky-nav.visible{transform:translateY(0);}
.sticky-brand{
  font-family:'Cinzel',serif;
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.12em;
  color:var(--white);
  text-decoration:none;
  text-transform:uppercase;
  transition: all 0.3s ease;
}
.sticky-brand:hover {
  text-shadow: 0 0 15px rgba(255, 26, 46, 0.6);
  transform: scale(1.02);
}
.sticky-brand span { color:var(--white); }
/* Logo image in nav and footer */
.sticky-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;}
.site-logo{height:44px;width:auto;display:block;}
.brand-text{font-family:'Cinzel',serif;font-size:.85rem;font-weight:600;letter-spacing:.12em;color:var(--white);text-transform:uppercase}
.brand-text span{color:var(--white)}
.footer-brand{display:flex;align-items:center;gap:.8rem;font-family:'Cinzel',serif}
.footer-logo{height:56px;width:auto;display:block}

/* Ensure footer brand text is white on all pages */
footer .footer-brand, footer .footer-brand .brand-text, footer .footer-brand .brand-text span {
  color: var(--white) !important;
}

/* Image modal styles */
.img-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:4000}
.img-modal.open{display:flex}
.img-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(4px)}
.img-modal-content{position:relative;max-width:90vw;max-height:90vh;padding:1rem;display:flex;align-items:center;justify-content:center}
.img-modal-body{position:relative;background:linear-gradient(180deg,rgba(13,0,0,0.7),rgba(13,0,0,0.9));padding:1rem;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,0.6);display:flex;flex-direction:column;gap:1rem;max-width:100%;max-height:100%}
.img-modal-body img{max-width:86vw;max-height:60vh;object-fit:contain;border-radius:4px;display:block;margin:0 auto}
.img-modal-caption{color:var(--white-dim);max-width:86vw}
.img-modal-caption h3{color:var(--white);margin-bottom:.5rem}
.img-modal-close{position:absolute;top:-8px;right:-8px;background:var(--red);color:var(--white);border:none;border-radius:50%;width:38px;height:38px;font-size:1rem;cursor:pointer;box-shadow:0 6px 20px rgba(204,17,34,0.25)}
.gal-inner{cursor:pointer}
.gal-inner, .gal-thumb {pointer-events: auto}
.gal-thumb{display:block}
.sticky-links{
  display:flex;
  gap:2rem;
  list-style:none;
}
.sticky-links a{
  color:var(--white-dim);
  text-decoration:none;
  font-size:.58rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:500;
  transition:color .3s, text-shadow .3s;
  position:relative;
}
.sticky-links a::after{
  content:'';
  position:absolute;
  bottom:-3px;left:0;right:100%;
  height:1px;background:var(--red-bright);
  transition:right .3s ease;
}
.sticky-links a:hover::after,
.sticky-links a.active::after{right:0;}
.sticky-links a:hover,
.sticky-links a.active{
  color:var(--white);
  text-shadow: 0 0 10px rgba(255, 26, 46, 0.4);
}
.sticky-stream{
  font-size:.58rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--white);
  text-decoration:none;
  background:var(--red);
  padding:.45rem 1.2rem;
  transition:background .3s, box-shadow .3s, transform .2s;
  white-space:nowrap;
  font-weight:500;
  position: relative;
  overflow: hidden;
}
.sticky-stream::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red-bright);
  transform: translateX(-100%);
  transition: transform 0.4s ease;
  z-index: -1;
}
.sticky-stream:hover::before {
  transform: translateX(0);
}
.sticky-stream:hover{
  box-shadow: 0 0 20px rgba(255,26,46,0.5), inset 0 0 20px rgba(255,255,255,0.1);
  transform:translateY(-1px);
}
.sticky-hbg{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;padding:4px;
  transition: all 0.3s ease;
}

/* Top-nav social icons (horizontal) */
.nav-social{
  display:flex;
  gap:0.6rem;
  align-items:center;
  margin-left:1rem;
}
.nav-social a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;color:var(--white-dim);text-decoration:none;transition:background .18s,transform .12s,box-shadow .12s}
.nav-social a:hover{background:rgba(255,26,46,0.06);color:var(--white);transform:translateY(-2px);box-shadow:0 6px 18px rgba(204,17,34,0.12)}

@media (max-width:768px){
  .nav-social{display:none}
}
.sticky-hbg span{width:22px;height:1px;background:var(--white);display:block; transition:background .3s, transform .3s;}
.sticky-hbg:hover span{background:var(--red-bright);}
.sticky-hbg:hover span:nth-child(1) { transform: rotate(45deg) translateY(8px); }
.sticky-hbg:hover span:nth-child(2) { opacity: 0; }
.sticky-hbg:hover span:nth-child(3) { transform: rotate(-45deg) translateY(-8px); }

/* MOBILE MENU */
.mob-menu{
  position:fixed;inset:0;
  background:rgba(10,0,0,0.99);
  z-index:2000;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:2.2rem;
  transform:translateX(100%);
  transition:transform .5s cubic-bezier(.77,0,.175,1);
}
.mob-menu.open{transform:translateX(0);}
.mob-menu a{
  font-family:'Cinzel',serif;
  font-size:1.5rem;
  color:var(--white);
  text-decoration:none;
  letter-spacing:.08em;
  transition:color .3s, letter-spacing .3s, text-shadow .3s;
  text-transform:uppercase;
  position: relative;
}
.mob-menu a::before {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 0;
  right: 100%;
  height: 2px;
  background: var(--red-bright);
  transition: right 0.3s ease;
}
.mob-menu a:hover::before {
  right: 0;
}
.mob-menu a:hover{
  color:var(--red-bright);
  letter-spacing:.14em;
  text-shadow: 0 0 15px rgba(255, 26, 46, 0.5);
}
.mob-close{
  position:absolute;top:2rem;right:2.5rem;
  background:none;border:none;
  color:var(--white-dim);font-size:1.2rem;cursor:pointer;
  transition:color .3s, transform .3s;
}
.mob-close:hover{color:var(--red-bright); transform:rotate(90deg) scale(1.2);}

/* ── HERO ── */
#hero{
  height:100vh;
  min-height:600px;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  text-align:center;
}

.hero-inner{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  padding:0 5%;
  width:100%;
}

/* Glowing red line above name */
.hero-line-top {
  width:0;
  height:1px;
  background:linear-gradient(to right, transparent, var(--red-bright), transparent);
  margin-bottom:1.5rem;
  opacity:0;
  animation:expandLine 1s .2s forwards;
  box-shadow: 0 0 20px rgba(255, 26, 46, 0.6);
}
@keyframes expandLine {
  to { width:200px; opacity:1; }
}

.hero-name{
  font-family:'Cinzel',serif;
  font-size:clamp(3.2rem,9vw,8.5rem);
  font-weight:700;
  line-height:.92;
  letter-spacing:.08em;
  color:var(--white);
  text-decoration:none;
  display:block;
  opacity:0;
  animation:heroReveal 1.2s .4s forwards;
  text-transform:uppercase;
  position:relative;
  transition: text-shadow 0.3s ease;
}
.hero-name:hover {
  text-shadow: 0 0 30px rgba(255, 26, 46, 0.5), 0 0 60px rgba(255, 26, 46, 0.2);
}
.hero-name::after {
  content: attr(data-text);
  position:absolute;
  inset:0;
  color: var(--red-bright);
  clip-path: inset(0 100% 0 0);
  animation: textRevealClip 1.8s .6s ease forwards;
  opacity:0.5;
  filter: blur(8px);
}
@keyframes textRevealClip {
  to { clip-path: inset(0 0% 0 0); opacity:0; filter:blur(0); }
}

.hero-name em{
  font-style:italic;
  color:var(--red-bright);
  font-weight:400;
  font-size:.72em;
  display:block;
  letter-spacing:.05em;
  text-shadow: var(--glow);
  transition: text-shadow 0.3s ease;
}

.hero-name em:hover {
  text-shadow: 0 0 40px rgba(255, 26, 46, 0.8), 0 0 80px rgba(255, 26, 46, 0.4);
}

@keyframes heroReveal{
  0%{opacity:0;transform:translateY(30px) scale(0.97);}
  100%{opacity:1;transform:translateY(0) scale(1);}
}

/* Hero nav */
.hero-nav{
  display:flex;
  gap:0;
  list-style:none;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:2.5rem;
  opacity:0;
  animation:fadeUp .9s .9s forwards;
  border-top:1px solid rgba(204,17,34,0.25);
  border-bottom:1px solid rgba(204,17,34,0.25);
}
.hero-nav li a{
  display:block;
  color:var(--white-mid);
  text-decoration:none;
  font-size:.58rem;
  letter-spacing:.25em;
  text-transform:uppercase;
  font-weight:500;
  padding:.6rem 1.4rem;
  transition:color .3s, background .3s, text-shadow .3s;
  position:relative;
  font-family:'Montserrat',sans-serif;
}
.hero-nav li a::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s ease;
  z-index:-1;
}
.hero-nav li a:hover{
  color:var(--white);
  text-shadow: 0 0 10px rgba(255, 26, 46, 0.4);
}
.hero-nav li a:hover::before{transform:scaleX(1);}
.hero-nav li a.stream-link{
  color:var(--white);
  background:var(--red);
  margin-left:.6rem;
  padding:.5rem 1.2rem;
  font-weight:600;
  position: relative;
  overflow: hidden;
}
.hero-nav li a.stream-link::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red-bright);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.35s ease;
  z-index: -1;
}
.hero-nav li a.stream-link:hover::after {
  transform: scaleX(1);
}
.hero-nav li a.stream-link:hover{
  box-shadow: 0 0 20px rgba(255,26,46,0.4), inset 0 0 15px rgba(255,255,255,0.1);
}
.hero-nav li a.stream-link::before{display:none;}

.hero-tagline{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:clamp(1rem,1.8vw,1.25rem);
  color:var(--off-white);
  max-width:520px;
  line-height:1.85;
  margin-top:2.2rem;
  opacity:0;
  animation:fadeUp .9s 1.2s forwards;
  text-shadow:0 2px 20px rgba(0,0,0,0.8);
  transition: text-shadow 0.3s ease;
}

.hero-tagline:hover {
  text-shadow: 0 2px 30px rgba(0,0,0,0.8), 0 0 20px rgba(255, 26, 46, 0.3);
}

/* scroll indicator */
.hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  z-index:2;opacity:0;animation:fadeIn 1s 1.8s forwards;
  transition: all 0.3s ease;
}
.hero-scroll:hover {
  transform: translateX(-50%) scale(1.1);
}
.hero-scroll span{font-size:.5rem;letter-spacing:.45em;text-transform:uppercase;color:var(--white-dim);}
.scroll-line{width:1px;height:44px;background:linear-gradient(to bottom,var(--red-bright),transparent);animation:scrollPulse 2s ease-in-out infinite;}

/* ── ANIMATED RED CROSS / CROSS ORNAMENT ── */
.hero-cross {
  position:absolute;
  right:8%;
  top:50%;
  transform:translateY(-50%);
  opacity:0;
  animation:fadeIn 1.5s 1.5s forwards;
  z-index:2;
  pointer-events:none;
  transition: all 0.3s ease;
}
.hero-cross:hover {
  transform: translateY(-50%) scale(1.1);
}
.cross-svg {
  width:80px;
  height:80px;
  opacity:0.18;
  animation: crossPulse 3s ease-in-out infinite;
  transition: opacity 0.3s ease;
}
.hero-cross:hover .cross-svg {
  opacity: 0.35;
}
@keyframes crossPulse {
  0%,100%{opacity:0.15; transform:scale(1);}
  50%{opacity:0.35; transform:scale(1.05);}
}

/* ── MARQUEE ── */
.marquee{
  overflow:hidden;
  padding:1rem 0;
  border-top:1px solid rgba(204,17,34,0.3);
  border-bottom:1px solid rgba(204,17,34,0.3);
  position:relative;
}
.marquee::before,.marquee::after {
  content:'';
  position:absolute;top:0;bottom:0;width:80px;z-index:2;
}
.marquee::before{left:0;background:linear-gradient(to right,rgba(13,0,0,0.9),transparent);}
.marquee::after{right:0;background:linear-gradient(to left,rgba(13,0,0,0.9),transparent);}
.mq-track{
  display:flex;
  white-space:nowrap;
  animation:marquee 30s linear infinite;
}
.mq-track span{
  flex-shrink:0;
  padding:0 2rem;
  color:var(--white-dim);
  font-size:.55rem;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.mq-track b{color:var(--red-bright);margin:0 .8rem;font-weight:600;}

/* ── CONTAINER & SECTIONS ── */
.container{max-width:1100px;margin:0 auto;padding:0 6%;}
section{padding:8rem 0;}
section:nth-child(even) { background: rgba(204,17,34,0.02); }

.sec-tag{
  font-size:.54rem;letter-spacing:.48em;text-transform:uppercase;
  color:var(--red-bright);display:block;margin-bottom:.8rem;
  font-family:'Montserrat',sans-serif;font-weight:600;
  animation: fadeUp 0.6s ease;
}
.sec-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.8rem,4vw,3rem);
  font-weight:700;
  line-height:1.2;
  color:var(--white);
  margin-bottom:1.5rem;
  animation: fadeUp 0.8s 0.1s ease backwards;
}
.sec-title em{
  color:var(--red-bright);
  font-style:italic;
  font-weight:700;
}
.rule{
  width:60px;height:1px;
  background:linear-gradient(to right,var(--red-bright),transparent);
  margin-bottom:1.5rem;
  animation: expandLine 0.8s 0.2s ease backwards;
}
.rule.center{margin-left:auto;margin-right:auto;}
.body{
  font-size:.95rem;
  line-height:1.85;
  color:var(--white-dim);
  margin-bottom:1.2rem;
  animation: fadeUp 0.8s 0.3s ease backwards;
}

/* Highlight used when scrolling to a referenced paragraph */
.highlight{
  animation: highlightPulse 2.2s ease forwards;
  background: linear-gradient(90deg, rgba(255,26,46,0.06), rgba(255,26,46,0.04));
  box-shadow: 0 14px 48px rgba(204,17,34,0.18);
  border-left: 4px solid var(--red-bright);
  transition: box-shadow .2s, background .2s, transform .15s;
  transform: translateY(-2px);
}

@keyframes highlightPulse{
  0%{ box-shadow: 0 0 0 rgba(204,17,34,0); }
  40%{ box-shadow: 0 12px 36px rgba(204,17,34,0.16); }
  100%{ box-shadow: 0 8px 30px rgba(204,17,34,0.12); }
}

/* ── REVEAL ANIMATIONS ── */
.rv,.rl,.rr{opacity:0;}
.rv.vis{animation:fadeUp .8s ease forwards;}
.rl.vis{animation:slideInLeft .8s ease forwards;}
.rr.vis{animation:slideInRight .8s ease forwards;}

@keyframes slideInLeft{
  from{opacity:0;transform:translateX(-40px);}
  to{opacity:1;transform:translateX(0);}
}
@keyframes slideInRight{
  from{opacity:0;transform:translateX(40px);}
  to{opacity:1;transform:translateX(0);}
}

/* ── ABOUT ── */
.about-grid{
  display:grid;grid-template-columns:1fr 1.2fr;gap:5rem;align-items:start;
}
.about-photo{
  position:relative;
  overflow:hidden;
  aspect-ratio:.85;
  background:linear-gradient(135deg,#200004,#0d0000);
  border:1px solid var(--border);
  box-shadow: 0 0 60px rgba(204,17,34,0.2);
  transition: all 0.4s ease;
}
.about-photo:hover {
  box-shadow: 0 0 100px rgba(204,17,34,0.4), inset 0 0 40px rgba(255, 26, 46, 0.1);
  transform: translateY(-5px);
}
.about-photo-inner{
  width:100%;height:100%;
  overflow:hidden;
  position:relative;
}
.about-photo-inner img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.25,.46,.45,.94);
}
.about-photo:hover .about-photo-inner img{
  transform:scale(1.05);
}
.about-photo-label{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(to top,rgba(10,0,0,0.95),transparent);
  padding:1.5rem 1rem .8rem;
  font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--white);font-family:'Montserrat',sans-serif;font-weight:600;
  opacity:0;transition:opacity .4s;
}
.about-photo:hover .about-photo-label{opacity:1;}
.about-stats{
  display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.5rem;
}
.stat{
  background:rgba(13,0,0,0.7);
  padding:1.4rem 1.2rem;
  text-align:center;
  transition:background .3s, transform .3s, box-shadow .3s;
  border: 1px solid transparent;
  position: relative;
  overflow: hidden;
}
.stat::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 26, 46, 0.1), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.stat:hover {
  background:rgba(204,17,34,0.12);
  border-color: rgba(255, 26, 46, 0.3);
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(204, 17, 34, 0.2);
}
.stat:hover::before {
  opacity: 1;
}
.stat-num{
  font-family:'Cinzel',serif;
  font-size:2rem;font-weight:700;
  color:var(--red-bright);
  display:block;
  text-shadow:0 0 20px rgba(255,26,46,0.3);
  transition: all 0.3s ease;
}
.stat:hover .stat-num {
  text-shadow: 0 0 30px rgba(255, 26, 46, 0.6);
  transform: scale(1.1);
}
.stat-lbl{
  font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--white-dim);margin-top:.3rem;
  font-family:'Montserrat',sans-serif;font-weight:500;
  transition: color 0.3s ease;
}
.stat:hover .stat-lbl {
  color: var(--white);
}
.about-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0;}
.tag{
  padding:.35rem .9rem;
  border:1px solid rgba(204,17,34,0.35);
  font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--white-dim);
  font-family:'Montserrat',sans-serif;
  transition:border-color .3s, color .3s, background .3s, transform .2s;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.tag::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: -1;
}
.tag:hover::before {
  transform: scaleX(1);
}
.tag:hover{
  border-color:var(--red-bright);
  color:var(--white);
  transform: translateY(-2px);
}
blockquote.pull{
  border-left:3px solid var(--red-bright);
  padding:1.6rem 1.8rem;
  background:rgba(204,17,34,0.06);
  margin-top:2rem;
  position:relative;
  transition: all 0.3s ease;
  border-radius: 2px;
}
blockquote.pull:hover {
  background: rgba(204, 17, 34, 0.12);
  border-left-color: var(--red-glow);
  box-shadow: 0 0 30px rgba(204, 17, 34, 0.2);
  transform: translateX(5px);
}
blockquote.pull::before{
  content:'"';
  position:absolute;top:-10px;left:12px;
  font-family:'Playfair Display',serif;
  font-size:4rem;
  color:var(--red);
  opacity:0.3;
  line-height:1;
  transition: all 0.3s ease;
}
blockquote.pull:hover::before {
  opacity: 0.5;
  text-shadow: 0 0 20px rgba(255, 26, 46, 0.3);
}
blockquote.pull p{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:1.05rem;line-height:1.85;
  color:var(--white);
  margin:0;
  transition: color 0.3s ease;
}
blockquote.pull:hover p {
  color: var(--off-white);
}
blockquote.pull cite{
  display:block;margin-top:.8rem;
  font-size:.55rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--red-bright);font-style:normal;
  font-family:'Montserrat',sans-serif;font-weight:600;
}

/* ── EXPLORE / SOUND ── */
.explore-header{text-align:center;max-width:580px;margin:0 auto 5rem;}
.sound-art{
  width:100%;max-width:380px;margin:0 auto;
  aspect-ratio:1;
  background:linear-gradient(135deg,#200004,#0d0000);
  border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  position:relative;
  overflow:hidden;
  box-shadow: 0 0 60px rgba(204,17,34,0.2);
  transition: all .4s ease;
}
.sound-art:hover{
  box-shadow: 0 0 100px rgba(204,17,34,0.4), inset 0 0 40px rgba(255, 26, 46, 0.1);
  transform: scale(1.02) translateY(-5px);
}
.vinyl{
  width:70%;height:70%;
  border-radius:50%;
  border:1px solid rgba(204,17,34,0.4);
  animation:spin 12s linear infinite;
  position:absolute;
  box-shadow: 0 0 30px rgba(204,17,34,0.1);
  transition: all 0.3s ease;
}
.sound-art:hover .vinyl {
  box-shadow: 0 0 50px rgba(255, 26, 46, 0.3);
}
.vinyl::before{
  content:'';
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:18%;height:18%;
  background:var(--red-bright);border-radius:50%;opacity:.5;
  box-shadow: 0 0 15px rgba(255,26,46,0.6);
  transition: all 0.3s ease;
}
.sound-art:hover .vinyl::before {
  box-shadow: 0 0 25px rgba(255, 26, 46, 0.8);
  opacity: 0.8;
}
.vinyl::after{
  content:'';
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:6%;height:6%;
  background:#fff;border-radius:50%;
}
.sound-note{
  font-size:5rem;
  color:rgba(204,17,34,0.12);
  position:absolute;
  animation:noteFloat 4s ease-in-out infinite;
  transition: all 0.3s ease;
}
.sound-art:hover .sound-note {
  color: rgba(255, 26, 46, 0.25);
  animation-duration: 2s;
}
@keyframes noteFloat{
  0%,100%{transform:translateY(0) rotate(-5deg);}
  50%{transform:translateY(-12px) rotate(5deg);}
}
.sound-grid{
  display:grid;grid-template-columns:1fr 1.2fr;gap:6rem;
  align-items:center;margin-top:2rem;
}
.release-label{
  font-size:.54rem;letter-spacing:.48em;text-transform:uppercase;
  color:var(--red-bright);display:block;margin-bottom:.8rem;
  font-family:'Montserrat',sans-serif;font-weight:600;
}
.release-title{
  font-family:'Playfair Display',serif;
  font-size:2.4rem;font-weight:700;
  color:var(--white);margin-bottom:.3rem;
  transition: all 0.3s ease;
}
.release-title:hover {
  color: var(--red-bright);
  text-shadow: 0 0 20px rgba(255, 26, 46, 0.4);
}
.release-artist{
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--white-dim);margin-bottom:1.5rem;
  font-family:'Montserrat',sans-serif;
  transition: color 0.3s ease;
}
.release-artist:hover {
  color: var(--white);
}
/* Explore page header lines styling */
.explore-line{
  display:block;
  position:relative;
  font-family: 'Playfair Display', serif;
  font-size: 1.05rem;
  font-weight: 600;
  background: linear-gradient(90deg, rgba(204,17,34,0.12), rgba(204,17,34,0.08));
  color: var(--white);
  padding: .6rem 1rem .6rem 2.6rem;
  border-radius: 8px;
  margin: .45rem 0;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  border: 1px solid rgba(204,17,34,0.18);
  cursor: default;
}
.explore-line:hover{
  /* keep the subtle base background but add a red glow instead of a solid red fill */
  background: linear-gradient(90deg, rgba(204,17,34,0.12), rgba(204,17,34,0.08));
  color: #fff;
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 20px 60px rgba(255,26,46,0.28), 0 0 40px rgba(255,26,46,0.12);
  text-shadow: 0 0 16px rgba(255,26,46,0.28);
}
.explore-line:active{
  transform: translateY(-1px) scale(.998);
}

/* bullet for each explore line */
.explore-line::before{
  content: '•';
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--red-bright);
  font-size: 1.3rem;
  line-height: 1;
}

.explore-line:hover::before{
  color: var(--red-bright);
  text-shadow: 0 0 12px rgba(255,26,46,0.9), 0 6px 18px rgba(255,26,46,0.12);
}
.platforms{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:2rem;}
.plat{
  display:flex;align-items:center;gap:.7rem;
  padding:.8rem 1rem;
  border:1px solid var(--border-dim);
  text-decoration:none;
  transition:border-color .3s, background .3s, transform .2s, box-shadow .3s;
  position: relative;
  overflow: hidden;
}
.plat::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 26, 46, 0.1), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.plat:hover::before {
  opacity: 1;
}
.plat:hover{
  border-color:var(--red-bright);
  background:rgba(204,17,34,0.08);
  transform:translateY(-2px);
  box-shadow: 0 5px 20px rgba(204, 17, 34, 0.2);
}
.plat-icon{font-size:1rem;transition: all 0.3s ease;}
.plat:hover .plat-icon {
  transform: scale(1.2);
  color: var(--red-bright);
}
.plat-name{
  font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--white-mid);font-family:'Montserrat',sans-serif;font-weight:500;
  transition: color 0.3s ease;
}
.plat:hover .plat-name {
  color: var(--white);
}

/* EVENTS */
.events-header{text-align:center;max-width:560px;margin:0 auto 4rem;}
.no-events-box{
  border:1px solid rgba(204,17,34,0.2);
  padding:5rem 3rem;
  text-align:center;
  max-width:600px;margin:0 auto;
  background:rgba(204,17,34,0.03);
  position:relative;
  overflow:hidden;
  transition: all 0.3s ease;
}
.no-events-box:hover {
  border-color: rgba(204, 17, 34, 0.4);
  background: rgba(204, 17, 34, 0.08);
  box-shadow: 0 0 40px rgba(204, 17, 34, 0.15);
}
.no-events-box::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at center, rgba(204,17,34,0.05) 0%, transparent 70%);
  transition: all 0.3s ease;
}
.no-events-box:hover::before {
  background: radial-gradient(ellipse at center, rgba(204, 17, 34, 0.15) 0%, transparent 70%);
}
.no-events-icon{
  font-size:2.5rem;
  color:var(--red-bright);
  opacity:.3;
  margin-bottom:1.2rem;
  transition: all 0.3s ease;
}
.no-events-box:hover .no-events-icon {
  opacity: 0.6;
  transform: scale(1.1);
}
.no-events-box p{
  font-family:'Playfair Display',serif;
  font-style:italic;
  color:var(--white-dim);font-size:1.05rem;
  margin-bottom:1.8rem;line-height:1.8;
  transition: color 0.3s ease;
}
.no-events-box:hover p {
  color: var(--white);
}

/* GALLERY */
.gallery-header{margin-bottom:3rem;}
.gal-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
}
.gal-item{
  aspect-ratio:.9;
  position:relative;
  overflow:hidden;
  cursor:pointer;
  background:linear-gradient(135deg,#200004,#0d0000);
  transition: all 0.3s ease;
  animation: fadeUp 0.6s ease backwards;
}
.gal-item:nth-child(1) { animation-delay: 0s; }
.gal-item:nth-child(2) { animation-delay: 0.1s; }
.gal-item:nth-child(3) { animation-delay: 0.2s; }
.gal-item:nth-child(4) { animation-delay: 0.3s; }
.gal-item:nth-child(5) { animation-delay: 0.4s; }
.gal-item:nth-child(6) { animation-delay: 0.5s; }
.gal-item:hover {
  box-shadow: 0 0 40px rgba(204, 17, 34, 0.4), inset 0 0 30px rgba(255, 26, 46, 0.1);
  transform: scale(1.05);
}
.gal-inner{
  width:100%;height:100%;
  display:block;
  overflow:hidden;
  transition:transform .7s cubic-bezier(.25,.46,.45,.94);
  background:#0d0000;
}
.gal-item:hover .gal-inner{transform:scale(1.08);}
.gal-caption{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,0,0,.85) 0%, rgba(204,17,34,0.2) 50%, transparent 100%);
  opacity:0;transition:opacity .4s;
  display:flex;align-items:flex-end;padding:1.4rem;
}
.gal-item:hover .gal-caption{opacity:1;}
.gal-caption span{
  font-size:.55rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--white);
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  animation: slideUp 0.4s ease;
}

@keyframes slideUp {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* CONTACT */
.contact-grid{
  display:grid;grid-template-columns:1fr 1.4fr;gap:7rem;
  align-items:start;margin-top:4rem;
}
.contact-detail{
  display:flex;
  gap:1rem;
  margin-bottom:.9rem;
  align-items:baseline;
  transition: all 0.3s ease;
  padding: 0.5rem;
  border-radius: 2px;
}
.contact-detail:hover {
  background: rgba(204, 17, 34, 0.08);
  transform: translateX(5px);
}
.cd-lbl{
  font-size:.55rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--red-bright);
  min-width:68px;
  font-family:'Montserrat',sans-serif;
  font-weight:500;
  transition: color 0.3s ease;
}
.contact-detail:hover .cd-lbl {
  color: var(--white);
}
.cd-val{
  font-family:'Playfair Display',serif;
  color:var(--white-dim);
  font-size:.95rem;
  letter-spacing:.03em;
  transition: all 0.3s ease;
}
.contact-detail:hover .cd-val {
  text-shadow: 0 0 15px rgba(255, 26, 46, 0.5);
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.fg{display:flex;flex-direction:column;gap:.45rem;}
.fg.full{grid-column:1/-1;}
.fg label{
  font-size:.55rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--white-dim);
  font-family:'Montserrat',sans-serif;
  font-weight:500;
  transition: color 0.3s ease;
}
.fg:focus-within label {
  color: var(--red-bright);
}
.fg input,.fg select,.fg textarea{
  background:rgba(20,0,0,0.8);
  border:1px solid rgba(204,17,34,0.2);
  padding:.9rem 1rem;
  color:var(--white);
  font-family:'Montserrat',sans-serif;font-size:.78rem;
  outline:none;
  transition:border-color .3s, box-shadow .3s, background .3s;
  resize:vertical;
  position: relative;
}
.fg input:focus,.fg select:focus,.fg textarea:focus{
  border-color:rgba(204,17,34,0.6);
  box-shadow: 0 0 20px rgba(204,17,34,0.15), inset 0 0 10px rgba(255, 26, 46, 0.05);
  background: rgba(30, 0, 0, 0.9);
}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(255,255,255,0.25);}
.fg select option{background:var(--bg);}
.fg textarea{min-height:110px;}
.btn-submit{
  width:100%;padding:1rem;margin-top:.5rem;
  background:var(--red);color:var(--white);
  font-family:'Montserrat',sans-serif;
  font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;
  font-weight:700;border:none;cursor:pointer;
  transition:background .3s, box-shadow .3s, transform .2s;
  position:relative;
  overflow:hidden;
}

/* Book form: transparent dark card */
#bookFormWrap{
  background: rgba(255,255,255,0.04);
  color: var(--white);
  padding: 1.25rem;
  border-radius: 12px;
  border: 1px solid rgba(204,17,34,0.2);
  box-shadow: 0 14px 40px rgba(0,0,0,0.2);
  backdrop-filter: blur(8px);
}

#bookFormWrap .form-grid{ background: transparent; }

#bookFormWrap label{
  color: var(--white);
  font-weight: 500;
}

#bookFormWrap .fg input,
#bookFormWrap .fg select,
#bookFormWrap .fg textarea{
  background: rgba(255,255,255,0.06);
  color: var(--white);
  border: 1px solid rgba(204,17,34,0.2);
}

#bookFormWrap .fg input::placeholder,
#bookFormWrap .fg textarea::placeholder{
  color: rgba(255,255,255,0.3);
}

#bookFormWrap .fg select option{
  background: #1a0000;
  color: #fff;
}

/* Keep the submit button visible */
#bookFormWrap .btn-submit{
  background: var(--red);
  color: #fff;
  border-radius: 8px;
}

/* Inputs focus state */
#bookFormWrap .fg input:focus,#bookFormWrap .fg select:focus,#bookFormWrap .fg textarea:focus{
  border-color: rgba(204,17,34,0.6);
  box-shadow: 0 0 20px rgba(204,17,34,0.15), inset 0 0 10px rgba(255,26,46,0.05);
  background: rgba(255,255,255,0.1);
}
.btn-submit::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--red-bright);
  transform:translateX(-100%);
  transition:transform .4s ease;
  z-index:-1;
}
.btn-submit:hover::before{transform:translateX(0);}
.btn-submit:hover{
  box-shadow: 0 0 30px rgba(255,26,46,0.3), inset 0 0 20px rgba(255,255,255,0.1);
  transform:translateY(-1px);
}
.btn-submit:active {
  transform: translateY(1px);
}

/* BOOKING */
.book-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:6rem;align-items:start;}
.book-info{display:grid;grid-template-columns:1fr;gap:1rem;}
.book-card{
  background:rgba(204,17,34,0.04);
  border:1px solid rgba(204,17,34,0.15);
  padding:1.8rem;
  transition:border-color .3s, background .3s, transform .3s, box-shadow .3s;
  position: relative;
  overflow: hidden;
}
.book-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 26, 46, 0.1), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.book-card:hover {
  border-color:var(--red-bright);
  background:rgba(204,17,34,0.12);
  transform:translateY(-3px);
  box-shadow: 0 10px 30px rgba(204, 17, 34, 0.2);
}
.book-card:hover::before {
  opacity: 1;
}
.book-card-icon{
  font-size:1.4rem;
  color:var(--red-bright);
  margin-bottom:.8rem;
  opacity:.7;
  transition: all 0.3s ease;
}
.book-card:hover .book-card-icon {
  opacity: 1;
  transform: scale(1.2);
}
.book-card-title{
  font-family:'Cinzel',serif;
  font-size:.9rem;font-weight:700;letter-spacing:.05em;
  color:var(--white);margin-bottom:.5rem;
  text-transform:uppercase;
  transition: color 0.3s ease;
}
.book-card:hover .book-card-title {
  color: var(--red-bright);
}
.book-card-body{
  font-size:.78rem;
  line-height:1.7;
  color:var(--white-dim);
  font-family:'Montserrat',sans-serif;
  transition: color 0.3s ease;
}
.book-card:hover .book-card-body {
  color: var(--white);
}
.book-form-wrap{
  background:rgba(10,0,0,0.4);
  border:1px solid rgba(255,255,255,0.05);
  padding:2.5rem;
  transition: all 0.3s ease;
  border-radius: 2px;
}
.book-form-wrap:hover {
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(10, 0, 0, 0.6);
  box-shadow: 0 0 30px rgba(204, 17, 34, 0.1);
}

/* FOOTER */
.footer-inner{max-width:1100px;margin:0 auto;padding:0 6%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.35rem;}
.footer-brand{
  font-family:'Cinzel',serif;
  font-size:1.05rem;font-weight:700;letter-spacing:.06em;
  color:var(--white);
  margin-bottom:0;
  text-transform:uppercase;
  transition: all 0.3s ease;
}
footer{padding:1rem 0 0.8rem;border-top:1px solid rgba(255,255,255,0.05);}
.footer-brand:hover {
  color: var(--red-bright);
  text-shadow: 0 0 20px rgba(255, 26, 46, 0.4);
}
.footer-brand span{color:var(--red-bright);}
.footer-tagline{
  font-size:.54rem;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--white-dim);
  font-family:'Montserrat',sans-serif;
  transition: color 0.3s ease;
}
.footer-brand:hover ~ .footer-tagline {
  color: var(--white);
}
.footer-quote{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:clamp(.9rem,1.5vw,1.05rem);
  color:var(--white-dim);
  max-width:620px;
  line-height:1.9;
  margin:.35rem 0;
  transition: all 0.3s ease;
}
.footer-quote:hover {
  color: var(--off-white);
  text-shadow: 0 0 20px rgba(255, 26, 46, 0.2);
}
.footer-links{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;}
.footer-links a{
  font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--white-dim);text-decoration:none;
  transition:color .3s, text-shadow .3s;
  font-family:'Montserrat',sans-serif;font-weight:500;
  position: relative;
}
.footer-links a::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  right: 100%;
  height: 1px;
  background: var(--red-bright);
  transition: right 0.3s ease;
}
.footer-links a:hover::after {
  right: 0;
}
.footer-links a:hover{
  color:var(--red-bright);
  text-shadow: 0 0 10px rgba(255, 26, 46, 0.4);
}
.footer-social{display:flex;gap:.25rem;justify-content:center;}
.soc{
  width:36px;height:36px;border:1px solid rgba(204,17,34,0.3);
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;font-size:.85rem;color:var(--white-dim);
  transition:border-color .3s,color .3s, background .3s, transform .3s, box-shadow .3s;
  position: relative;
  overflow: hidden;
}
.soc::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red);
  transform: scale(0);
  transition: transform 0.3s ease;
  z-index: -1;
}
.soc:hover::before {
  transform: scale(1);
}
.soc:hover{
  border-color:var(--red-bright);
  color:var(--white);
  background:rgba(204,17,34,0.15);
  transform:scale(1.1);
  box-shadow: 0 0 20px rgba(204, 17, 34, 0.3);
}
.footer-copy{
  font-size:.55rem;
  letter-spacing:.12em;
  color:rgba(255,255,255,0.2);
  margin-top:.3rem;
  transition: color 0.3s ease;
}
.footer-copy:hover {
  color: rgba(255, 255, 255, 0.4);
}

/* ── KEYFRAMES ── */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes scrollPulse{
  0%,100%{opacity:.3;transform:scaleY(1);}
  50%{opacity:1;transform:scaleY(.7);}
}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes marquee{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@keyframes particleFloat{
  0%{transform:translateY(100vh) scale(0);opacity:0;}
  10%{opacity:1;}
  90%{opacity:0.5;}
  100%{transform:translateY(-10vh) scale(1.5);opacity:0;}
}

/* ── GLOWING DIVIDERS ── */
.glow-divider {
  width:100%;
  height:1px;
  background:linear-gradient(to right, transparent, var(--red-bright), var(--red), transparent);
  margin:0;
  opacity:0.4;
  transition: all 0.3s ease;
}
.glow-divider:hover {
  opacity: 0.8;
  box-shadow: 0 0 20px rgba(255, 26, 46, 0.4);
}

/* RESPONSIVE */
@media(max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:4rem;}
  .sound-grid{grid-template-columns:1fr;gap:3rem;}
  .contact-grid{grid-template-columns:1fr;gap:3rem;}
  .book-grid{grid-template-columns:1fr;gap:3rem;}
}
@media(max-width:768px){
  .sticky-links,.sticky-stream{display:none;}
  .sticky-hbg{display:flex;}
  .hero-nav{gap:0;margin-top:1.6rem;}
  .hero-nav li a{padding:.45rem .9rem;font-size:.56rem;}
  .gal-grid{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
  section{padding:5rem 0;}
  .hero-cross{display:none;}
}
@media(max-width:480px){
  .hero-name{font-size:clamp(2.5rem,13vw,4.5rem);}
  .hero-nav{flex-direction:column;align-items:center;gap:.3rem;}
  .hero-nav li a.stream-link{margin-left:0;margin-top:.4rem;}
  .gal-grid{grid-template-columns:1fr;}
  .platforms{grid-template-columns:1fr;}
}

/* ── FOOTER UPDATES ── */
.footer-divider {
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(204,17,34,0.4), transparent);
  margin: 2rem auto;
}
.footer-social-label {
  font-family: 'Montserrat', sans-serif;
  font-size: .5rem;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.3);
  margin-bottom: 1rem;
}
.footer-social { gap: 1rem; margin-bottom: .5rem; }
.soc { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(204,17,34,0.25); }
.soc svg { display: block; }
.footer-inner { gap: 0; }
.footer-quote { margin: 1.8rem 0; }
.footer-links { margin: 0; }

/* Platform accent colours on hover */
.soc-yt:hover { background: rgba(255,0,0,0.18) !important; border-color: #ff0000 !important; box-shadow: 0 0 20px rgba(255,0,0,0.3) !important; }
.soc-tk:hover { background: rgba(0,0,0,0.5) !important; border-color: #69c9d0 !important; box-shadow: 0 0 20px rgba(105,201,208,0.25) !important; }
.soc-fb:hover { background: rgba(24,119,242,0.18) !important; border-color: #1877f2 !important; box-shadow: 0 0 20px rgba(24,119,242,0.3) !important; }
.soc-sp:hover { background: rgba(30,215,96,0.15) !important; border-color: #1ed760 !important; box-shadow: 0 0 20px rgba(30,215,96,0.25) !important; }
.soc-am:hover { background: rgba(252,60,68,0.15) !important; border-color: #fc3c44 !important; box-shadow: 0 0 20px rgba(252,60,68,0.25) !important; }


/* ── UPCOMING EVENTS SECTION ── */
.upcoming-events-section {
  position: relative;
  padding: 3rem 0 6rem;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(10,0,0,0.7) 30%, rgba(10,0,0,0.8) 70%, rgba(0,0,0,0) 100%);
  overflow: hidden;
}
.ue-bg-cross {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(600px, 90vw);
  height: min(600px, 90vw);
  opacity: .5;
  pointer-events: none;
  z-index: 0;
}
.upcoming-events-section .container { position: relative; z-index: 1; }

.ue-header { text-align: center; margin-bottom: 4rem; }
.ue-subtitle {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: clamp(.9rem, 1.5vw, 1.05rem);
  color: var(--white-dim);
  max-width: 500px;
  margin: 1rem auto 0;
  line-height: 1.8;
}

/* Grid: 1 large card + 2 small */
.ue-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 1.8rem;
  max-width: 1100px;
  margin: 0 auto;
  align-items: stretch;
}

/* Base card */
.ue-card {
  position: relative;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  padding: 2.4rem 2rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  transition: border-color .4s, transform .4s, box-shadow .4s;
  overflow: hidden;
  backdrop-filter: blur(6px);
}
.ue-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(204,17,34,0.05) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .4s;
}
.ue-card:hover { border-color: rgba(204,17,34,0.35); transform: translateY(-4px); box-shadow: 0 24px 60px rgba(0,0,0,0.5); }
.ue-card:hover::before { opacity: 1; }

/* Featured card */
.ue-card--featured {
  border-color: rgba(204,17,34,0.25);
  background: rgba(204,17,34,0.04);
}
.ue-card--featured::after {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, transparent, var(--red-bright), transparent);
}
.ue-card-glow {
  position: absolute;
  bottom: -40px; right: -40px;
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(204,17,34,0.15) 0%, transparent 70%);
  pointer-events: none;
  transition: opacity .4s;
}
.ue-card--featured:hover .ue-card-glow { opacity: 1.5; }

/* Badge */
.ue-card-badge {
  position: absolute;
  top: 1.2rem; right: 1.2rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .48rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--red-bright);
  border: 1px solid rgba(204,17,34,0.4);
  padding: .3rem .6rem;
}

/* Date block */
.ue-card-date {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.ue-month {
  font-family: 'Montserrat', sans-serif;
  font-size: .5rem;
  letter-spacing: .35em;
  color: var(--red-bright);
  font-weight: 600;
}
.ue-day {
  font-family: 'Cinzel', serif;
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1;
}
.ue-year {
  font-family: 'Montserrat', sans-serif;
  font-size: .48rem;
  letter-spacing: .3em;
  color: rgba(255,255,255,0.25);
}

/* Card body */
.ue-card-body { display: flex; flex-direction: column; gap: .7rem; flex: 1; }
.ue-card-type {
  font-family: 'Montserrat', sans-serif;
  font-size: .48rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
}
.ue-card-title {
  font-family: 'Cinzel', serif;
  font-size: clamp(1rem, 1.8vw, 1.25rem);
  color: var(--white);
  font-weight: 600;
  line-height: 1.3;
}
.ue-card-desc {
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem;
  line-height: 1.8;
  color: var(--white-dim);
  flex: 1;
}

/* Meta row */
.ue-card-meta {
  display: flex;
  gap: 1.2rem;
  flex-wrap: wrap;
  padding: .8rem 0;
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ue-meta-item {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .7rem;
  color: rgba(255,255,255,0.4);
  letter-spacing: .03em;
}
.ue-meta-item svg { flex-shrink: 0; opacity: .7; }

/* Buttons */
.ue-btn {
  display: inline-block;
  margin-top: .4rem;
  padding: .7rem 1.4rem;
  background: var(--red);
  color: var(--white);
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  font-size: .58rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 600;
  transition: background .3s, box-shadow .3s, transform .2s;
  align-self: flex-start;
}
.ue-btn:hover { background: var(--red-bright); box-shadow: 0 8px 24px rgba(204,17,34,0.4); transform: translateY(-2px); }
.ue-btn--ghost {
  background: transparent;
  border: 1px solid rgba(204,17,34,0.4);
  color: var(--white-dim);
}
.ue-btn--ghost:hover { background: rgba(204,17,34,0.1); border-color: var(--red-bright); color: var(--white); box-shadow: 0 8px 24px rgba(204,17,34,0.2); }

/* CTA row */
.ue-cta {
  text-align: center;
  margin-top: 3.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.4rem;
}
.ue-cta p {
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem;
  letter-spacing: .1em;
  color: rgba(255,255,255,0.3);
}

/* Responsive */
@media(max-width:860px) {
  .ue-grid { grid-template-columns: 1fr; max-width: 500px; }
  .ue-card--featured::after { top: 0; left: 0; right: 0; bottom: auto; width: auto; height: 3px; background: linear-gradient(90deg, transparent, var(--red-bright), transparent); }
}

/* ── UPCOMING EVENTS HERO LAYOUT (index.html) ── */
.ue-hero-event {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 5rem;
  max-width: 1100px;
  margin: 0 auto;
  align-items: center;
}
.ue-hero-poster {
  position: relative;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 40px 100px rgba(0,0,0,0.7), 0 0 60px rgba(204,17,34,0.15);
  flex-shrink: 0;
}
.ue-hero-poster img {
  width: 100%;
  display: block;
  transition: transform .6s ease;
}
.ue-hero-poster:hover img { transform: scale(1.03); }
.ue-hero-poster-glow {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 60%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}
.ue-hero-tag {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .5rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--red-bright);
  margin-bottom: .8rem;
}
.ue-live-dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--red-bright);
  box-shadow: 0 0 8px var(--red-bright);
  animation: livePulse 1.5s ease-in-out infinite;
}
@keyframes livePulse {
  0%,100% { opacity:1; transform:scale(1); box-shadow: 0 0 8px var(--red-bright); }
  50% { opacity:.5; transform:scale(1.3); box-shadow: 0 0 16px var(--red-bright); }
}
.ue-hero-title {
  font-family: 'Cinzel', serif;
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  color: var(--white);
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: .3rem;
}
.ue-hero-title em { font-style: italic; color: var(--red-bright); font-family: 'Playfair Display', serif; }
.ue-hero-sub {
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--white-dim);
  margin-bottom: 2rem;
}
.ue-hero-date-block {
  display: flex;
  flex-direction: column;
  gap: .7rem;
  margin-bottom: 1.6rem;
  padding: 1.4rem 1.6rem;
  border: 1px solid rgba(204,17,34,0.2);
  background: rgba(204,17,34,0.04);
  position: relative;
}
.ue-hero-date-block::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, transparent, var(--red-bright), transparent);
}
.ue-hero-date-item {
  display: flex;
  align-items: center;
  gap: .8rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem;
  color: var(--white);
}
.ue-hero-date-item svg { color: var(--red-bright); flex-shrink: 0; }
.ue-hero-desc {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: clamp(.9rem, 1.4vw, 1rem);
  color: var(--white-dim);
  line-height: 1.9;
  margin-bottom: 2rem;
}
.ue-hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }

@media(max-width: 860px) {
  .ue-hero-event { grid-template-columns: 1fr; gap: 3rem; max-width: 480px; }
  .ue-hero-poster { max-width: 340px; margin: 0 auto; }
}


/* ── EVENTS PAGE FEATURED LAYOUT ── */
#events { padding-top: 12rem; }
.ev-featured {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 5rem;
  max-width: 1060px;
  margin: 0 auto;
  align-items: start;
}
.ev-feat-poster {
  position: relative;
  overflow: hidden;
  box-shadow: 0 40px 100px rgba(0,0,0,0.7), 0 0 60px rgba(204,17,34,0.2);
  flex-shrink: 0;
}
.ev-feat-poster img { width: 100%; display: block; transition: transform .6s; }
.ev-feat-poster:hover img { transform: scale(1.03); }
.ev-feat-poster-shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 50%);
  pointer-events: none;
}
.ev-feat-badge {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .5rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--red-bright);
  border: 1px solid rgba(204,17,34,0.35);
  padding: .35rem .8rem;
  margin-bottom: 1.4rem;
}
.ev-feat-title {
  font-family: 'Cinzel', serif;
  font-size: clamp(2rem, 3.5vw, 3rem);
  color: var(--white);
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: .3rem;
}
.ev-feat-title em { font-style: italic; color: var(--red-bright); font-family: 'Playfair Display', serif; }
.ev-feat-by {
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--white-dim);
  margin-bottom: 2.5rem;
}
.ev-feat-details {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.6rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  margin-bottom: 1.8rem;
  position: relative;
}
.ev-feat-details::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, transparent, var(--red-bright), transparent);
}
.ev-detail-row {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.ev-detail-icon {
  width: 32px; height: 32px;
  border: 1px solid rgba(204,17,34,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--red-bright);
}
.ev-detail-label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: .46rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.3);
  margin-bottom: .2rem;
}
.ev-detail-value {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: .9rem;
  color: var(--white);
  font-weight: 500;
}
.ev-feat-desc {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: clamp(.88rem, 1.3vw, 1rem);
  color: var(--white-dim);
  line-height: 1.9;
  margin-bottom: 2rem;
}

/* Countdown */
.ev-countdown {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  margin-bottom: 2.2rem;
  padding: 1.4rem 1.6rem;
  background: rgba(204,17,34,0.05);
  border: 1px solid rgba(204,17,34,0.2);
}
.ev-count-item { text-align: center; }
.ev-count-num {
  display: block;
  font-family: 'Cinzel', serif;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1;
  margin-bottom: .2rem;
}
.ev-count-label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: .42rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.3);
}
.ev-count-sep {
  color: var(--red-bright);
  font-size: .7rem;
  opacity: .6;
}
.ev-feat-actions { display: flex; gap: 1rem; flex-wrap: wrap; }

@media(max-width: 860px) {
  .ev-featured { grid-template-columns: 1fr; gap: 3rem; max-width: 480px; margin: 0 auto; }
  .ev-feat-poster { max-width: 340px; margin: 0 auto; }
}