:root {
  --t:    #5bb8b0;
  --td:   #3a9e96;
  --tl:   #c5eae7;
  --txl:  #eaf7f6;
  --p:    #7b5ea7;
  --pd:   #5c4280;
  --pl:   #d8cff0;
  --pxl:  #f0ecf9;
  --pk:   #e84393;
  --pkd:  #c42d79;
  --pkl:  #f5b8d8;
  --pkxl: #fdeef7;
  --g:    linear-gradient(135deg,#5bb8b0 0%,#7b5ea7 52%,#e84393 100%);
  --gh:   linear-gradient(90deg,#7b5ea7 0%,#e84393 100%);
  --gt:   linear-gradient(90deg,#5bb8b0 0%,#7b5ea7 100%);
  --gd:   linear-gradient(180deg,#5bb8b0 0%,#7b5ea7 52%,#e84393 100%);
  --w:    #ffffff;
  --off:  #f8f8fb;
  --tx:   #0a0814;
  --tx2:  #1a1528;
  --mu:   #6b6480;
  --mu2:  #afa8c0;
  --ln:   rgba(0,0,0,0.07);
  --ln2:  rgba(123,94,167,0.12);
  --ln3:  rgba(232,67,147,0.12);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Space Grotesk',sans-serif;background:#fff;color:var(--tx);overflow-x:hidden;}

/* ── CURSOR ── */
*,a,button{cursor:none!important;}
#c1{position:fixed;width:12px;height:12px;background:var(--pk);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .15s,background .2s,width .2s,height .2s;}
#c2{position:fixed;width:40px;height:40px;border:1.5px solid var(--p);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);opacity:.5;transition:all .28s;}
body:has(a:hover) #c1,body:has(button:hover) #c1{width:16px;height:16px;background:var(--p);}
body:has(a:hover) #c2,body:has(button:hover) #c2{width:58px;height:58px;opacity:1;border-color:var(--pk);}

/* ══════════════════════════
   HERO — dark-accent split
══════════════════════════ */
.hero{min-height:100vh;
background:#fff;
display:grid;
grid-template-columns:1fr 1fr;
position:relative;
overflow:hidden;}

/* diagonal gradient ribbon background */
.hero-ribbon{position:absolute;
top:-30%;
right:-15%;
width:65%;
height:140%;
background:linear-gradient(160deg,var(--txml,#eaf7f6) 0%,var(--pxl) 50%,var(--pkxl) 100%);
transform:skewX(-8deg);
pointer-events:none;
z-index:0;}

/* dot matrix pattern */
.hero-dots{position:absolute;
inset:0;
pointer-events:none;
z-index:0;
background-image:radial-gradient(circle,rgba(123,94,167,.1) 1px,transparent 1px);
background-size:28px 28px;
-webkit-mask-image:radial-gradient(ellipse 50% 70% at 25% 50%,black 0%,transparent 75%);
mask-image:radial-gradient(ellipse 50% 70% at 25% 50%,black 0%,transparent 75%);}

.hero-left{padding:5.5rem 4rem 5.5rem 7rem;
display:flex;
flex-direction:column;
justify-content:center;
position:relative;
z-index:3;}

/* live badge */
.live-badge{display:inline-flex;
align-items:center;
gap:10px;
margin-bottom:2.2rem;
width:fit-content;
opacity:0;
animation:fu .6s .05s ease forwards;}
.lb-pill{background:var(--pk);
color: #fff !important;
font-size:.65rem;
font-weight:700;
letter-spacing:.2em;
text-transform:uppercase;
padding:5px 14px;
border-radius:4px;
font-family:'Unbounded',sans-serif;}
.lb-sep{width:1px;height:20px;background:var(--ln);}
.lb-loc{font-size:.72rem;font-weight:600;color:var(--mu);letter-spacing:.06em;}

/* headline — Unbounded impact */
.hero-h{font-family:'Unbounded',sans-serif;
font-size:clamp(3rem,5.8vw,6.2rem);
font-weight:900;
line-height:.9;
letter-spacing:-.02em;
margin-bottom:2rem;
opacity:0;
animation:fu .9s .15s ease forwards;}
.hero-h .line1{display:block;color:var(--tx);}
.hero-h .line2{display:block;
background:var(--g);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
font-style:italic;
font-family:'Playfair Display',serif;
font-size:1.1em;}
.hero-h .line3{display:block;color:var(--mu);font-weight:400;font-size:.45em;letter-spacing:.02em;font-family:'Space Grotesk',sans-serif;margin-top:.3rem;}

.hero-desc{font-size:.98rem;
color:var(--mu);
line-height:1.8;
max-width:420px;
font-weight:400;
margin-bottom:2.5rem;
opacity:0;
animation:fu .9s .28s ease forwards;}

/* event type chips */
.etype-row{display:flex;
gap:8px;
flex-wrap:wrap;
margin-bottom:2.5rem;
opacity:0;
animation:fu .9s .38s ease forwards;}
.etype{display:inline-flex;
align-items:center;
gap:6px;
padding:7px 15px;
border-radius:6px;
font-size:.73rem;
font-weight:600;
transition:all .22s;}
.etype.t{background:var(--txml,#eaf7f6);color:var(--td);border:1px solid var(--tl);}
.etype.p{background:var(--pxl);color:var(--pd);border:1px solid var(--pl);}
.etype.pk{background:var(--pkxl);color:var(--pkd);border:1px solid var(--pkl);}
.etype:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(123,94,167,.15);}

.hero-ctas{display:flex;
gap:12px;
flex-wrap:wrap;
margin-bottom:3rem;
opacity:0;
animation:fu .9s .48s ease forwards;}

.ba{background:var(--pk);
color: #fff !important;
padding:14px 30px;
border-radius:8px;
font-family:'Space Grotesk',sans-serif;
font-weight:700;
font-size:.85rem;
letter-spacing:.04em;
text-transform:uppercase;
text-decoration:none;
border:none;
display:inline-flex;
align-items:center;
gap:9px;
box-shadow:0 6px 28px rgba(232,67,147,.3);
transition:transform .22s,box-shadow .22s;}
.ba:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(232,67,147,.42);}

.bb{background:#fff;
color:var(--p);
padding:14px 30px;
border-radius:8px;
font-family:'Space Grotesk',sans-serif;
font-weight:700;
font-size:.85rem;
letter-spacing:.04em;
text-transform:uppercase;
text-decoration:none;
border:2px solid var(--p);
display:inline-flex;
align-items:center;
gap:9px;
transition:all .22s;}
.bb:hover{background:var(--p);color: #fff !important;}

.bc2{background:var(--t);
color: #fff !important;
padding:14px 30px;
border-radius:8px;
font-family:'Space Grotesk',sans-serif;
font-weight:700;
font-size:.85rem;
letter-spacing:.04em;
text-transform:uppercase;
text-decoration:none;
border:none;
display:inline-flex;
align-items:center;
gap:9px;
box-shadow:0 6px 28px rgba(91,184,176,.28);
transition:transform .22s,box-shadow .22s;}
.bc2:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(91,184,176,.4);}

/* stats */
.hero-stats{display:flex;
gap:0;
border:1px solid var(--ln);
border-radius:12px;
overflow:hidden;
opacity:0;
animation:fu .9s .58s ease forwards;
width:fit-content;}
.hst{padding:1rem 1.6rem;
border-right:1px solid var(--ln);
text-align:center;
background:#fff;}
.hst:last-child{border-right:none;}
.hst-n{font-family:'Unbounded',sans-serif;
font-size:1.5rem;
font-weight:700;
line-height:1;
background:var(--g);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
display:block;
margin-bottom:3px;}
.hst-l{font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mu2);}

/* ── HERO RIGHT — image panel ── */
.hero-right{position:relative;
z-index:2;
overflow:hidden;}

.hr-bg{position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
filter:brightness(.78) saturate(1.3);
animation:kz 14s ease-in-out infinite alternate;}
@keyframes kz{0%{transform:scale(1);}100%{transform:scale(1.08);}}

.hr-ov1{position:absolute;inset:0;background:linear-gradient(to right,#fff 0%,rgba(255,255,255,.04) 35%,transparent 100%);}
.hr-ov2{position:absolute;inset:0;background:linear-gradient(to top,rgba(255,255,255,.5) 0%,transparent 40%);}
.hr-tint{position:absolute;inset:0;background:rgba(123,94,167,.06);}

/* floating event cards */
.fc{position:absolute;
z-index:5;
background:rgba(255,255,255,.96);
border-radius:16px;
padding:.9rem 1.3rem;
box-shadow:0 8px 32px rgba(0,0,0,.1);
border:1px solid var(--ln);}
.fc1{top:12%;right:6%;animation:flt 5s ease-in-out infinite;}
.fc2{bottom:18%;right:4%;animation:flt 5s 1.2s ease-in-out infinite;}
.fc3{top:50%;right:32%;animation:flt 5s 2.4s ease-in-out infinite;}
@keyframes flt{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}

.fc-cat{font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pk);margin-bottom:4px;}
.fc-val{font-size:.88rem;font-weight:700;color:var(--tx);line-height:1.2;}
.fc-sub{font-size:.67rem;color:var(--mu);margin-top:2px;}

/* neon glow pill on hero-right */
.glow-pill{position:absolute;
bottom:8%;
left:50%;
transform:translateX(-50%);
z-index:5;
background:var(--g);
color: #fff !important;
padding:8px 24px;
border-radius:100px;
font-size:.72rem;
font-weight:700;
letter-spacing:.1em;
text-transform:uppercase;
box-shadow:0 8px 32px rgba(232,67,147,.35);
animation:pillPulse 3s ease-in-out infinite;}
@keyframes pillPulse{0%,100%{box-shadow:0 8px 32px rgba(232,67,147,.35);}50%{box-shadow:0 12px 48px rgba(232,67,147,.55);}}

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

/* ══════════════════════════
   GRADIENT TICKER
══════════════════════════ */
.ticker{background:var(--g);padding:13px 0;overflow:hidden;}
.ticker-in{display:flex;gap:2.5rem;width:max-content;animation:tr 26s linear infinite;}
.ti{display:flex;align-items:center;gap:8px;color: rgba(255,255,255,.9) !important;font-size:.73rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;}
.tx2{color: rgba(255,255,255,.3) !important;}
@keyframes tr{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* ══════════════════════════
   SECTION UTILS
══════════════════════════ */
.s{padding:6rem 7rem;}
.sw{background:#fff;}
.soff{background:var(--off);}
.stl{background:var(--txml,#eaf7f6);}
.spp{background:var(--pxl);}
.spk{background:var(--pkxl);}

.stag{display:inline-flex;
align-items:center;
gap:8px;
font-size:.63rem;
font-weight:700;
letter-spacing:.2em;
text-transform:uppercase;
color:var(--pkd);
margin-bottom:1rem;}
.stag::before{content:'';width:22px;height:2px;background:var(--gh);border-radius:2px;}

.sh{font-family:'Unbounded',sans-serif;
font-size:clamp(2rem,3.2vw,3.2rem);
font-weight:700;
line-height:1.05;
letter-spacing:-.02em;
margin-bottom:1rem;
color:var(--tx);}
.sh .gr{background:var(--g);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.sh .it{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;background:var(--gh);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

.ssub{color:var(--mu);font-size:.95rem;line-height:1.78;max-width:500px;font-weight:400;}

/* ══════════════════════════
   STEPS — numbered timeline
══════════════════════════ */
.steps-tl{display:grid;
grid-template-columns:repeat(4,1fr);
gap:1.5rem;
margin-top:3.5rem;
position:relative;}
.steps-tl::before{content:'';
position:absolute;
top:28px;
left:6%;
right:6%;
height:1px;
background:var(--g);
z-index:0;}
.stl-card{display:flex;
flex-direction:column;
align-items:center;
text-align:center;
padding:0 .5rem;
position:relative;
z-index:1;}
.stl-num{width:56px;
height:56px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-family:'Unbounded',sans-serif;
font-weight:700;
font-size:.9rem;
color: #fff !important;
margin-bottom:1.4rem;
flex-shrink:0;
position:relative;
box-shadow:0 6px 24px rgba(0,0,0,.12);}
.stl-card:nth-child(1) .stl-num{background:var(--t);}
.stl-card:nth-child(2) .stl-num{background:linear-gradient(135deg,var(--t),var(--p));}
.stl-card:nth-child(3) .stl-num{background:var(--p);}
.stl-card:nth-child(4) .stl-num{background:var(--gh);}
.stl-num::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(0,0,0,.07);}
.stl-card h4{font-weight:700;font-size:.9rem;margin-bottom:.5rem;}
.stl-card p{font-size:.79rem;color:var(--mu);line-height:1.6;}

/* ══════════════════════════
   PARTY TYPES — big cards
══════════════════════════ */
.party-grid{display:grid;
grid-template-columns:repeat(3,1fr);
grid-template-rows:300px 300px;
gap:14px;
margin-top:3.5rem;}

.pg-card{position:relative;
overflow:hidden;
border-radius:20px;
cursor:default;}
.pg-card:nth-child(1){grid-row:span 2;}
.pg-card:nth-child(6){grid-column:span 1;}

.pg-img{width:100%;
height:100%;
object-fit:cover;
display:block;
filter:brightness(.75) saturate(1.25);
transition:transform .6s ease,filter .5s;}
.pg-card:hover .pg-img{transform:scale(1.07);filter:brightness(.65) saturate(1.4);}

.pg-ov{position:absolute;
inset:0;
background:linear-gradient(to top,rgba(10,8,20,.88) 0%,rgba(10,8,20,.05) 55%,transparent 100%);}

/* side gradient bar on hover */
.pg-card::before{content:'';
position:absolute;
left:0;
top:0;
bottom:0;
width:4px;
background:var(--g);
z-index:3;
transform:scaleY(0);
transform-origin:bottom;
transition:transform .4s;}
.pg-card:hover::before{transform:scaleY(1);}

/* top pulse dot */
.pg-card::after{content:'';
position:absolute;
top:16px;
right:16px;
width:10px;
height:10px;
border-radius:50%;
background:var(--pk);
z-index:4;
box-shadow:0 0 0 0 rgba(232,67,147,.5);
animation:pgPulse 2.5s ease-out infinite;}
@keyframes pgPulse{0%{box-shadow:0 0 0 0 rgba(232,67,147,.6);}70%{box-shadow:0 0 0 12px rgba(232,67,147,0);}100%{box-shadow:0 0 0 0 rgba(232,67,147,0);}}

.pg-info{position:absolute;
bottom:0;
left:0;
right:0;
padding:1.6rem;
z-index:2;
transform:translateY(5px);
transition:transform .3s;}
.pg-card:hover .pg-info{transform:translateY(0);}

.pg-cat{font-size:.58rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--tl);margin-bottom:5px;}
.pg-name{font-family:'Unbounded',sans-serif;
font-size:1.3rem;
font-weight:700;
color: #fff !important;
line-height:1.1;
margin-bottom:5px;}
.pg-card:nth-child(1) .pg-name{font-size:2rem;}
.pg-desc{font-size:.75rem;color: rgba(255,255,255,.65) !important;line-height:1.5;max-height:0;overflow:hidden;transition:max-height .35s;}
.pg-card:hover .pg-desc{max-height:60px;}

/* ══════════════════════════
   MARQUEE
══════════════════════════ */
.mq{padding:2.5rem 0;
overflow:hidden;
background:#fff;
border-top:1px solid var(--ln);
border-bottom:1px solid var(--ln);}
.mq-in{display:flex;width:max-content;animation:mqr 20s linear infinite;}
.mw{font-family:'Unbounded',sans-serif;
font-size:4rem;
font-weight:900;
padding:0 2rem;
white-space:nowrap;
color:transparent;
-webkit-text-stroke:1.5px rgba(123,94,167,.15);
line-height:1.1;}
.mw.on{-webkit-text-stroke:0;
background:var(--g);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;}
.msep{font-size:1.5rem;line-height:4rem;padding:0 .5rem;color:var(--pk);}
@keyframes mqr{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* ══════════════════════════
   WHY — alternating layout
══════════════════════════ */
.why-wrap{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}

.why-vis{position:relative;}
.wv-main{width:100%;
height:560px;
object-fit:cover;
border-radius:24px;
box-shadow:0 32px 80px rgba(123,94,167,.15);
filter:brightness(.9) saturate(1.1);}

/* floating cards */
.wv-card{position:absolute;
background:#fff;
border-radius:16px;
padding:1rem 1.4rem;
box-shadow:0 12px 40px rgba(0,0,0,.1);
border:1px solid var(--ln);}
.wc1{bottom:-20px;right:-20px;animation:wf1 5s ease-in-out infinite;min-width:155px;}
.wc2{top:20px;left:-20px;animation:wf2 5s 1.2s ease-in-out infinite;min-width:145px;}
@keyframes wf1{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes wf2{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.wc-ico{font-size:1.5rem;display:block;margin-bottom:4px;}
.wc-n{font-family:'Unbounded',sans-serif;
font-size:1.4rem;
font-weight:700;
line-height:1;
background:var(--g);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;}
.wc-l{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);}

/* decorative bracket lines */
.why-vis::before{content:'';
position:absolute;
top:16px;
left:16px;
bottom:-16px;
right:-16px;
border-radius:28px;
border:2px solid var(--tl);
z-index:-1;
pointer-events:none;}

/* feature list */
.feat{display:flex;flex-direction:column;gap:0;margin-top:2.5rem;border:1px solid var(--ln);border-radius:16px;overflow:hidden;}
.fr{display:flex;
align-items:flex-start;
gap:1.2rem;
padding:1.4rem 1.6rem;
background:#fff;
border-bottom:1px solid var(--ln);
transition:all .28s;}
.fr:last-child{border-bottom:none;}
.fr:hover{background:var(--pkxl);}
.fr-ic{width:44px;
height:44px;
border-radius:12px;
display:flex;
align-items:center;
justify-content:center;
font-size:1.1rem;
flex-shrink:0;
border:1px solid var(--ln);
transition:all .28s;}
.fr:nth-child(1) .fr-ic{background:var(--pkxl);border-color:var(--pkl);}
.fr:nth-child(2) .fr-ic{background:var(--pxl);border-color:var(--pl);}
.fr:nth-child(3) .fr-ic{background:var(--txml,#eaf7f6);border-color:var(--tl);}
.fr:nth-child(4) .fr-ic{background:var(--pkxl);border-color:var(--pkl);}
.fr:hover .fr-ic{transform:scale(1.08);}
.fr-tx h4{font-weight:700;font-size:.9rem;margin-bottom:3px;color:var(--tx);}
.fr-tx p{font-size:.78rem;color:var(--mu);line-height:1.55;}
.fr-ar{margin-left:auto;color:var(--mu2);font-size:1rem;padding-top:2px;transition:all .28s;flex-shrink:0;}
.fr:hover .fr-ar{color:var(--pkd);transform:translateX(5px);}

/* ══════════════════════════
   VENUES — horizontal cards
══════════════════════════ */
.venue-grid{display:grid;
grid-template-columns:repeat(3,1fr);
gap:1.2rem;
margin-top:3rem;}
.vc{border-radius:20px;
overflow:hidden;
background:#fff;
border:1px solid var(--ln);
transition:all .32s;
position:relative;}
.vc::before{content:'';
position:absolute;
top:0;
left:0;
right:0;
height:3px;
background:var(--g);
transform:scaleX(0);
transform-origin:left;
transition:transform .32s;}
.vc:hover::before{transform:scaleX(1);}
.vc:hover{transform:translateY(-7px);box-shadow:0 20px 56px rgba(232,67,147,.13);border-color:var(--pkl);}
.vc-img{width:100%;height:185px;object-fit:cover;display:block;transition:transform .5s;}
.vc:hover .vc-img{transform:scale(1.05);}
.vc-body{padding:1.4rem;}
.vc-body h4{font-weight:700;font-size:.92rem;margin-bottom:5px;}
.vc-body p{font-size:.78rem;color:var(--mu);line-height:1.55;}
.vc-tag{display:inline-block;
margin-top:11px;
padding:4px 13px;
border-radius:6px;
font-size:.62rem;
font-weight:700;
letter-spacing:.1em;
text-transform:uppercase;}
.vc:nth-child(1) .vc-tag{background:var(--pkxl);color:var(--pkd);}
.vc:nth-child(2) .vc-tag{background:var(--pxl);color:var(--pd);}
.vc:nth-child(3) .vc-tag{background:var(--txml,#eaf7f6);color:var(--td);}
.vc:nth-child(4) .vc-tag{background:var(--pkxl);color:var(--pkd);}
.vc:nth-child(5) .vc-tag{background:var(--pxl);color:var(--pd);}
.vc:nth-child(6) .vc-tag{background:var(--txml,#eaf7f6);color:var(--td);}

/* ══════════════════════════
   STATS STRIP
══════════════════════════ */
.stats-row{display:grid;
grid-template-columns:repeat(4,1fr);
border-top:1px solid var(--ln);
border-bottom:1px solid var(--ln);
background:#fff;
margin-top:4rem;}
.src{padding:2.2rem 1.5rem;
border-right:1px solid var(--ln);
text-align:center;
transition:background .3s;}
.src:last-child{border-right:none;}
.src:hover{background:var(--pkxl);}
.src-n{font-family:'Unbounded',sans-serif;
font-size:2.8rem;
font-weight:900;
line-height:1;
background:var(--g);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
margin-bottom:.3rem;
display:block;}
.src h4{font-weight:700;font-size:.86rem;margin-bottom:.3rem;}
.src p{font-size:.71rem;color:var(--mu);line-height:1.45;}

/* ══════════════════════════
   CTA — full bleed gradient
══════════════════════════ */
.cta-s{padding:6rem 7rem;background:#fff;}

.cta-box{border-radius:28px;
overflow:hidden;
position:relative;
display:grid;
grid-template-columns:1fr 1fr;
min-height:460px;
background:#fff;
border:1px solid var(--ln3);
box-shadow:0 24px 80px rgba(232,67,147,.1);}
/* gradient top border */
.cta-box::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--g);}
/* dot pattern */
.cta-box::after{content:'';
position:absolute;
inset:0;
background-image:radial-gradient(circle,rgba(232,67,147,.07) 1px,transparent 1px);
background-size:26px 26px;
-webkit-mask-image:radial-gradient(ellipse 80% 90% at 32% 50%,black 20%,transparent 72%);
mask-image:radial-gradient(ellipse 80% 90% at 32% 50%,black 20%,transparent 72%);
pointer-events:none;}

.cta-left{padding:4.5rem;
position:relative;
z-index:2;
display:flex;
flex-direction:column;
justify-content:center;}
.cta-left h2{font-family:'Unbounded',sans-serif;
font-size:3rem;
font-weight:700;
line-height:1.0;
letter-spacing:-.025em;
color:var(--tx);
margin-bottom:.9rem;}
.cta-left h2 .gr{background:var(--g);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.cta-left h2 .it{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;background:var(--gh);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.cta-left p{color:var(--mu);font-size:.95rem;font-weight:400;margin-bottom:2rem;line-height:1.72;max-width:380px;}
.cta-btns{display:flex;gap:12px;flex-wrap:wrap;}

.cta-right{position:relative;overflow:hidden;}
.cta-right img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.85) saturate(1.2);}
.cta-right::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(to right,#fff 0%,transparent 42%);}

/* ══════════════════════════
   SCROLL REVEAL
══════════════════════════ */
.rev{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease;}
.rev.on{opacity:1;transform:translateY(0);}
.rev.d1{transition-delay:.1s;}.rev.d2{transition-delay:.2s;}.rev.d3{transition-delay:.3s;}

/* ══════════════════════════
   RESPONSIVE
══════════════════════════ */
@media(max-width:1100px){
  .hero{grid-template-columns:1fr;min-height:auto;}
  .hero-ribbon{display:none;}
  .hero-left{padding:5rem 3rem 3rem;}
  .hero-right{height:420px;}
  .s,.cta-s{padding:4rem 3rem;}
  .steps-tl{grid-template-columns:repeat(2,1fr);}
  .steps-tl::before{display:none;}
  .party-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 220px;}
  .party-grid .pg-card:nth-child(1){grid-row:span 1;}
  .why-wrap{grid-template-columns:1fr;}
  .venue-grid{grid-template-columns:repeat(2,1fr);}
  .stats-row{grid-template-columns:repeat(2,1fr);}
  .cta-box{grid-template-columns:1fr;}
  .cta-right{height:260px;}
}
@media(max-width:640px){
  .hero-left{padding:4rem 1.5rem 2.5rem;}
  .hero-right{height:320px;}
  .s,.cta-s{padding:3rem 1.5rem;}
  .steps-tl,.venue-grid,.stats-row{grid-template-columns:1fr;}
  .party-grid{grid-template-columns:1fr;grid-template-rows:220px;}
  .party-grid .pg-card:nth-child(n+4){display:none;}
  .stats-row .src{border-right:none;border-bottom:1px solid var(--ln);}
  .mw{font-size:2.8rem;}
  #c1,#c2{display:none;}
}