
@import url('https://fonts.googleapis.com/css2?family=Anton&family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--bg:#07080d;--panel:#10121a;--panel2:#151823;--white:#fff;--muted:#b9bbc8;--pink:#ff2ea6;--purple:#7b3cff;--cyan:#24d8ff;--lime:#baff29;--line:rgba(255,255,255,.12);--r:26px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:#fff;font-family:'DM Sans',sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{width:100%;display:block;object-fit:cover}button{font:inherit}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}
header{height:78px;position:sticky;top:0;z-index:50;background:rgba(7,8,13,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}nav{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}.logo{font:400 30px/1 Anton,sans-serif;letter-spacing:1px}.logo span{color:var(--pink)}.desktop-nav{display:flex;align-items:center;gap:21px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}.desktop-nav>a:not(.pill){opacity:.78}.desktop-nav>a:hover{opacity:1;color:var(--cyan)}
.pill,.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 18px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;border:1px solid transparent;transition:.25s}.pink{background:var(--pink);box-shadow:0 0 28px rgba(255,46,166,.18)}.ghost{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.03)}.btn:hover,.pill:hover{transform:translateY(-2px)}.menu-btn{display:none;border:0;background:none;color:#fff;font-size:27px;padding:8px}
.mobile-menu{display:none;position:fixed;inset:78px 0 0;background:rgba(7,8,13,.98);z-index:49;padding:24px;overflow:auto}.mobile-menu.open{display:block}.mobile-menu a{display:flex;justify-content:space-between;align-items:center;padding:17px 3px;border-bottom:1px solid var(--line);font:400 27px Anton,sans-serif;text-transform:uppercase}.mobile-menu .mobile-cta{background:var(--pink);border:0;border-radius:18px;margin-top:22px;padding:18px}
.hero{min-height:680px;display:flex;align-items:center;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(5,6,10,.94) 0%,rgba(5,6,10,.63) 43%,rgba(5,6,10,.16) 72%),linear-gradient(0deg,var(--bg),transparent 30%),url('djw-hero.jpg') center 45%/cover}.hero.small{min-height:430px}.hero:after{content:"";position:absolute;width:440px;height:440px;right:-150px;top:30px;background:var(--purple);filter:blur(160px);opacity:.2}.hero-content{position:relative;z-index:2}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--cyan);margin-bottom:18px}h1,h2,h3{font-family:Anton,sans-serif;text-transform:uppercase;font-weight:400;margin:0}h1{font-size:clamp(68px,9vw,132px);line-height:.84;letter-spacing:-1px;max-width:940px}.outline{-webkit-text-stroke:1.5px white;color:transparent}.accent{color:var(--pink)}.hero p{max-width:600px;color:#dedee5;font-size:17px;line-height:1.65;margin:26px 0 30px}.actions{display:flex;gap:10px;flex-wrap:wrap}
.ticker{overflow:hidden;border-block:1px solid var(--line);background:#0c0d14;padding:15px 0}
.ticker-track{display:flex;width:max-content;will-change:transform;animation:tickerLoop 32s linear infinite;transform:translate3d(0,0,0)}
.ticker-group{display:flex;flex:0 0 auto;align-items:center;white-space:nowrap;font:400 17px Anton,sans-serif;letter-spacing:1px}
.ticker-group span{display:inline-block}
.ticker-group b{color:var(--pink);margin:0 25px}
@keyframes tickerLoop{from{transform:translate3d(0,0,0)}to{transform:translate3d(-16.6666667%,0,0)}}
section{padding:90px 0}.section-head{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:38px}.section-head h2,.big-title{font-size:clamp(50px,7vw,88px);line-height:.9}.section-head p{max-width:450px;color:var(--muted);line-height:1.65;margin:0}.kicker{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--cyan);margin-bottom:11px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;position:relative}.card-img{height:260px}.card-body{padding:25px}.card h3{font-size:30px;margin-bottom:9px}.card p{color:var(--muted);line-height:1.6;font-size:14px}.tag{display:inline-block;background:var(--lime);color:#08090c;border-radius:99px;padding:6px 10px;font-size:9px;font-weight:900;letter-spacing:1px;text-transform:uppercase;margin-bottom:12px}.card .btn{margin-top:8px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{background:linear-gradient(145deg,var(--panel2),#0d0f16);border:1px solid var(--line);border-radius:var(--r);padding:32px}.panel h3{font-size:34px;margin-bottom:13px}.panel p,.copy{color:var(--muted);line-height:1.72}.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}.feature-list span{background:rgba(255,255,255,.04);border:1px solid var(--line);padding:13px;border-radius:13px;font-size:12px}.feature-list span:before{content:"✦";color:var(--cyan);margin-right:8px}
.price{font:400 44px Anton,sans-serif;color:#fff}.price small{font:600 11px 'DM Sans';color:var(--muted)}.photo-strip{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.photo-strip img{height:360px;border-radius:22px}.photo-strip img:first-child{height:360px}
.gallery{columns:3;column-gap:14px}.gallery img{border-radius:18px;margin-bottom:14px;break-inside:avoid;min-height:220px;background:#151722}
.faq details{border-top:1px solid var(--line);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;font-weight:700}.faq summary:after{content:"+";font-size:22px;color:var(--cyan)}.faq details[open] summary:after{content:"–"}.faq p{color:var(--muted);line-height:1.65;margin:13px 0 0}
.blog-card time{font-size:10px;color:var(--cyan);font-weight:800;letter-spacing:1px}.blog-card h3{margin-top:9px}.tour{aspect-ratio:16/9;border-radius:25px;overflow:hidden;border:1px solid var(--line);background:#111}.tour iframe{width:100%;height:100%;border:0}
.cta{background:var(--pink);text-align:center;padding:70px 20px}.cta h2{font-size:clamp(48px,7vw,85px);line-height:.9}.cta p{margin:17px auto 24px;max-width:570px}
footer{border-top:1px solid var(--line);padding:48px 0 25px}.foot{display:flex;justify-content:space-between;gap:40px}.foot-logo{font:400 48px Anton,sans-serif}.foot-logo span{color:var(--pink)}.foot-cols{display:flex;gap:50px}.foot-cols div{display:grid;gap:9px}.foot-cols b{font-size:10px;color:var(--cyan);text-transform:uppercase;letter-spacing:1px}.foot-cols a{font-size:12px;color:#999}.copyright{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;color:#666;font-size:10px;display:flex;justify-content:space-between}
.reveal{opacity:0;transform:translateY(20px);transition:.65s}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){.desktop-nav{display:none}.menu-btn{display:block}.hero{min-height:650px;background-position:62% center}.hero.small{min-height:390px}.hero:before{content:"";position:absolute;inset:0;background:rgba(5,6,10,.18)}.section-head{display:block}.section-head p{margin-top:18px}.grid{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.gallery{columns:2}.photo-strip{grid-template-columns:1fr 1fr}.photo-strip img:first-child{grid-column:1/-1}.foot{display:block}.foot-cols{margin-top:28px}}
@media(max-width:600px){.wrap{width:calc(100% - 26px)}header{height:68px}.mobile-menu{inset:68px 0 0}.logo{font-size:27px}.hero{min-height:640px;align-items:flex-end;padding:70px 0 52px;background-position:64% center}.hero.small{min-height:410px;padding-bottom:44px}.hero:before{background:linear-gradient(0deg,rgba(5,6,10,.96),rgba(5,6,10,.25) 80%)}h1{font-size:clamp(60px,19vw,88px);line-height:.87}.hero p{font-size:15px;line-height:1.55;margin:20px 0 24px}.actions{display:grid;grid-template-columns:1fr;width:100%}.actions .btn{min-height:50px}section{padding:65px 0}.section-head{margin-bottom:28px}.section-head h2,.big-title{font-size:52px}.grid{grid-template-columns:1fr}.card-img{height:230px}.card-body{padding:21px}.card h3{font-size:28px}.feature-list{grid-template-columns:1fr}.panel{padding:24px 20px}.photo-strip{grid-template-columns:1fr}.photo-strip img,.photo-strip img:first-child{height:260px;grid-column:auto}.gallery{columns:1}.gallery img{min-height:0}.tour{aspect-ratio:4/5}.foot-cols{display:grid;grid-template-columns:1fr 1fr;gap:30px}.copyright{display:block;line-height:1.8}.ticker{padding:13px 0}.ticker-group{font-size:15px}}


/* Homepage What's On spacing */
.home-whats-on{
  padding-top:110px;
  padding-bottom:105px;
}
.home-whats-on .section-head{
  margin-bottom:48px;
}
.home-whats-on .section-head .kicker{
  margin-bottom:15px;
}
.home-whats-on .section-head h2{
  margin:0;
}
.home-whats-on .section-head p{
  padding-bottom:5px;
}
.home-whats-on .grid{
  gap:22px;
}
.home-whats-on .card-body{
  padding:28px 26px 30px;
}
.home-whats-on .card h3{
  margin-bottom:12px;
}
.home-whats-on .card p{
  margin:0 0 18px;
}

@media(max-width:900px){
  .home-whats-on{
    padding-top:88px;
    padding-bottom:82px;
  }
  .home-whats-on .section-head{
    margin-bottom:38px;
  }
}
@media(max-width:600px){
  .home-whats-on{
    padding-top:72px;
    padding-bottom:70px;
  }
  .home-whats-on .section-head{
    margin-bottom:32px;
  }
  .home-whats-on .section-head p{
    margin-top:20px;
    line-height:1.7;
  }
  .home-whats-on .grid{
    gap:20px;
  }
  .home-whats-on .card-body{
    padding:24px 22px 26px;
  }
  .home-whats-on .card h3{
    margin-bottom:10px;
  }
  .home-whats-on .card p{
    margin-bottom:18px;
  }
}

/* User-provided DJW hero image crop */
@media(max-width:900px){
  .hero{background-position:57% center}
}
@media(max-width:600px){
  .hero{background-position:61% center}
}


/* =========================================================
   SITE-WIDE SPACING / RHYTHM PASS
   ========================================================= */

/* predictable text rhythm */
.section-head > div,
.card-body,
.panel { min-width:0; }

.section-head .kicker { margin-bottom:14px; }
.section-head h2 { margin:0; }
.section-head p { margin:0; }

.card-body > :first-child,
.panel > :first-child { margin-top:0; }
.card-body > :last-child,
.panel > :last-child { margin-bottom:0; }

.card-body h3,
.panel h3 { margin-top:0; }
.card-body h3 { margin-bottom:12px; }
.panel h3 { margin-bottom:16px; }

.card-body p,
.panel p {
  margin-top:0;
  margin-bottom:20px;
}
.card-body p:last-child,
.panel p:last-child { margin-bottom:0; }

.card-body .tag + h3 { margin-top:0; }
.card-body .btn,
.panel .btn { margin-top:6px; }

.price + p { margin-top:14px; }

/* section rhythm */
main > section:not(.hero):not(.cta) {
  padding-top:96px;
  padding-bottom:96px;
}

/* sections intentionally following another content section */
main > section[style*="padding-top:0"] {
  padding-top:0 !important;
  padding-bottom:96px;
}

/* first content area after hero/ticker */
.hero + section:not(.ticker),
.ticker + section {
  padding-top:104px;
}

/* heading blocks */
.section-head {
  margin-bottom:46px;
}
.section-head > div:first-child {
  max-width:690px;
}
.section-head p {
  padding-bottom:4px;
}

/* card / panel layouts */
.grid { gap:22px; }
.two { gap:22px; }
.grid + .two,
.two + .grid,
.panel + .grid,
.grid + .panel { margin-top:22px; }

.card-body { padding:28px 27px 30px; }
.panel { padding:34px 32px; }

.feature-list {
  gap:12px;
  margin-top:22px;
  margin-bottom:24px;
}
.feature-list span {
  padding:14px 14px;
  line-height:1.45;
}

/* action groups */
.actions { margin-top:0; }
.hero .actions { margin-top:2px; }
.actions + p,
.btn + p { margin-top:20px; }

/* FAQ */
.faq details { padding:24px 0; }
.faq details p { margin-top:15px; margin-bottom:0; }

/* gallery */
.gallery { column-gap:18px; }
.gallery img { margin-bottom:18px; }

/* 360 page */
.tour + .copy { margin-top:24px !important; }
.tour + .copy + .btn { margin-top:4px; }

/* footer */
footer { padding-top:58px; }
.copyright { margin-top:42px; padding-top:22px; }

/* Homepage What's On stays intentionally spacious */
.home-whats-on {
  padding-top:104px !important;
  padding-bottom:104px !important;
}
.home-whats-on .section-head { margin-bottom:46px; }
.home-whats-on .grid { gap:22px; }

@media(max-width:900px){
  main > section:not(.hero):not(.cta) {
    padding-top:82px;
    padding-bottom:82px;
  }
  main > section[style*="padding-top:0"] {
    padding-top:0 !important;
    padding-bottom:82px;
  }
  .hero + section:not(.ticker),
  .ticker + section {
    padding-top:88px;
  }
  .section-head { margin-bottom:38px; }
  .section-head p { margin-top:20px; }
  .grid,.two { gap:18px; }
  .panel { padding:30px 27px; }
  .home-whats-on {
    padding-top:88px !important;
    padding-bottom:82px !important;
  }
  .home-whats-on .section-head { margin-bottom:38px; }
}

@media(max-width:600px){
  main > section:not(.hero):not(.cta) {
    padding-top:68px;
    padding-bottom:68px;
  }
  main > section[style*="padding-top:0"] {
    padding-top:0 !important;
    padding-bottom:68px;
  }
  .hero + section:not(.ticker),
  .ticker + section {
    padding-top:72px;
  }

  .section-head {
    margin-bottom:32px;
  }
  .section-head .kicker { margin-bottom:12px; }
  .section-head p {
    margin-top:18px;
    padding-bottom:0;
    line-height:1.7;
  }

  .grid,.two { gap:18px; }
  .grid + .two,
  .two + .grid,
  .panel + .grid,
  .grid + .panel { margin-top:18px; }

  .card-body {
    padding:24px 21px 25px;
  }
  .panel {
    padding:26px 21px;
  }
  .card-body h3 { margin-bottom:11px; }
  .panel h3 { margin-bottom:14px; }

  .card-body p,
  .panel p { margin-bottom:18px; }

  .feature-list {
    margin-top:19px;
    margin-bottom:21px;
    gap:10px;
  }
  .feature-list span { padding:13px; }

  .price { line-height:1.05; }
  .price small {
    display:block;
    margin-top:7px;
    line-height:1.35;
  }

  .faq details { padding:21px 0; }
  .gallery { column-gap:0; }
  .gallery img { margin-bottom:16px; }

  footer { padding-top:46px; }
  .foot-cols { margin-top:32px; }
  .copyright { margin-top:34px; padding-top:20px; }

  .home-whats-on {
    padding-top:72px !important;
    padding-bottom:70px !important;
  }
  .home-whats-on .section-head { margin-bottom:32px; }
}


/* =========================================================
   EVENTS PAGE - PHOTO-LED REDESIGN
   ========================================================= */
.events-page .events-hero{
  min-height:560px;
  background:
    linear-gradient(90deg,rgba(5,6,10,.94) 0%,rgba(5,6,10,.62) 44%,rgba(5,6,10,.15) 74%),
    linear-gradient(0deg,var(--bg),transparent 34%),
    url('djw-hero.jpg') center 45%/cover no-repeat;
}
.event-facts{display:flex;gap:9px;flex-wrap:wrap;margin:24px 0}
.event-facts span{border:1px solid rgba(255,255,255,.26);background:rgba(7,8,13,.45);backdrop-filter:blur(8px);padding:9px 13px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:1px}
.event-inclusions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.event-inclusion{border:1px solid var(--line);background:linear-gradient(145deg,#12151e,#0d0f16);border-radius:20px;padding:25px}
.event-inclusion > strong{display:block;font-size:30px;margin-bottom:18px}
.event-inclusion h3{font-size:25px;margin-bottom:8px}
.event-inclusion p{color:var(--muted);font-size:13px;line-height:1.55;margin:0}
.event-note{display:grid;grid-template-columns:150px 1fr;gap:25px;align-items:start;margin-top:18px;padding:22px 25px;border:1px solid rgba(36,216,255,.22);background:rgba(36,216,255,.045);border-radius:18px}
.event-note span{font-size:10px;color:var(--cyan);font-weight:900;letter-spacing:1.4px}.event-note p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}
.venue-story{background:radial-gradient(circle at 15% 25%,rgba(123,60,255,.12),transparent 25%)}
.story-row{display:grid;grid-template-columns:1.18fr .82fr;gap:55px;align-items:center;margin-bottom:100px}.story-row:last-child{margin-bottom:0}.story-row.reverse{grid-template-columns:.82fr 1.18fr}.story-row.reverse .story-image{order:2}.story-row.reverse .story-copy{order:1}
.story-image{height:520px;border-radius:30px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 65px rgba(0,0,0,.3)}.story-image img{height:100%;width:100%;object-fit:cover}.portrait-feature img{object-position:center}
.story-copy h2{font-size:clamp(54px,6vw,82px);line-height:.88}.story-copy p{color:var(--muted);line-height:1.72;margin:22px 0 0}.mini-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.mini-list span{border:1px solid var(--line);border-radius:99px;padding:8px 11px;font-size:10px;color:#ddd;background:rgba(255,255,255,.03)}
.crowd-section{background:#0b0c12}.crowd-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.crowd-card{border-top:1px solid rgba(255,255,255,.22);padding:24px 5px 5px}.crowd-card>span{font:400 45px Anton,sans-serif;color:var(--pink)}.crowd-card h3{font-size:27px;margin:18px 0 8px}.crowd-card p{color:var(--muted);font-size:12px;line-height:1.6;margin:0}
.vip-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}.vip-photo-card{border-radius:25px;overflow:hidden;border:1px solid var(--line);background:var(--panel)}.vip-image{height:360px}.vip-image img{height:100%;object-fit:cover}.vip-content{padding:25px}.vip-content h3{font-size:34px;margin:4px 0 8px}.vip-content p{color:var(--muted);font-size:13px;line-height:1.6;margin:0}.vip-packages{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.events-final-cta{text-align:center!important;background:radial-gradient(circle at center,rgba(255,46,166,.18),transparent 45%),#090a0f}.events-final-cta .wrap{display:flex;flex-direction:column;align-items:center}.events-final-cta h2{font-size:clamp(70px,10vw,130px);line-height:.82}.events-final-cta h2 span{color:var(--pink)}.events-final-cta p{color:#bbb;font-weight:700;margin:22px 0}.events-final-cta .btn{min-width:180px}

@media(max-width:900px){
 .event-inclusions{grid-template-columns:repeat(2,1fr)}
 .story-row,.story-row.reverse{grid-template-columns:1fr;gap:30px;margin-bottom:72px}
 .story-row.reverse .story-image,.story-row.reverse .story-copy{order:initial}
 .story-image{height:450px}
 .crowd-cards{grid-template-columns:1fr 1fr;gap:25px 18px}
 .vip-image{height:300px}
}
@media(max-width:600px){
 .events-page .events-hero{min-height:600px;background-position:61% center}
 .event-facts{margin:19px 0}.event-facts span{padding:8px 10px}
 .event-inclusions{grid-template-columns:1fr 1fr;gap:10px}
 .event-inclusion{padding:20px 17px}.event-inclusion > strong{font-size:26px;margin-bottom:14px}.event-inclusion h3{font-size:21px}.event-inclusion p{font-size:11px}
 .event-note{grid-template-columns:1fr;gap:9px;padding:20px}
 .story-row,.story-row.reverse{gap:25px;margin-bottom:62px}
 .story-image{height:300px;border-radius:22px}
 .story-copy h2{font-size:52px}.story-copy p{margin-top:17px}
 .crowd-cards{grid-template-columns:1fr 1fr;gap:24px 13px}.crowd-card>span{font-size:38px}.crowd-card h3{font-size:22px;margin-top:12px}
 .vip-photo-grid,.vip-packages{grid-template-columns:1fr}
 .vip-photo-grid{gap:16px}.vip-image{height:250px}.vip-content{padding:22px 20px}.vip-content h3{font-size:30px}
 .events-final-cta h2{font-size:72px}
}


/* =========================================================
   DJW COLOUR + BACKGROUND DETAIL PASS
   ========================================================= */
.title-pink{color:var(--pink);text-shadow:0 0 30px rgba(255,46,166,.12)}
main > section:not(.hero):not(.events-final-cta){position:relative;isolation:isolate}
main > section:not(.hero):not(.events-final-cta) > .wrap{position:relative;z-index:2}
main > section:nth-of-type(odd):not(.hero):not(.events-final-cta)::before{
  content:"★";position:absolute;right:3.5%;top:42px;font:400 88px Anton,sans-serif;
  color:var(--pink);opacity:.045;transform:rotate(14deg);z-index:0;pointer-events:none
}
main > section:nth-of-type(even):not(.hero):not(.events-final-cta)::after{
  content:"INSERT COIN";position:absolute;left:-18px;bottom:28px;font:400 54px Anton,sans-serif;
  letter-spacing:3px;color:var(--cyan);opacity:.025;transform:rotate(-90deg);
  transform-origin:left bottom;z-index:0;pointer-events:none
}
.events-page .event-intro::after{
  content:"♠  ♥  ♣  ♦";position:absolute;right:4%;bottom:25px;font:400 50px Anton,sans-serif;
  letter-spacing:10px;color:var(--pink);opacity:.055;pointer-events:none
}
.events-page .venue-story::before{
  content:"GAME OVER?";position:absolute;right:-12px;top:48%;font:400 74px Anton,sans-serif;
  letter-spacing:2px;color:var(--cyan);opacity:.025;transform:rotate(90deg);pointer-events:none
}
.events-page .crowd-section::after{
  content:"♛";position:absolute;right:5%;bottom:20px;font-size:110px;color:var(--pink);
  opacity:.04;pointer-events:none
}
.event-note strong{color:#fff;font-weight:800}
@media(max-width:600px){
  main > section:nth-of-type(odd):not(.hero):not(.events-final-cta)::before{font-size:55px;right:4%;top:25px}
  main > section:nth-of-type(even):not(.hero):not(.events-final-cta)::after{display:none}
  .events-page .event-intro::after{font-size:31px;letter-spacing:5px;bottom:14px}
  .events-page .venue-story::before{display:none}
}


/* =========================================================
   PARTY HIRE PAGE
   ========================================================= */
.party-page .party-hero{
  min-height:620px;
  background:
    linear-gradient(90deg,rgba(5,6,10,.94) 0%,rgba(5,6,10,.62) 43%,rgba(5,6,10,.12) 72%),
    linear-gradient(0deg,var(--bg),transparent 35%),
    url('party-decor.jpg') center 46%/cover no-repeat;
}
.party-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.party-price-card{border:1px solid var(--line);background:linear-gradient(145deg,#11141d,#0c0e14);border-radius:25px;padding:30px;position:relative;overflow:hidden}
.party-price-card.featured{border-color:rgba(255,46,166,.5);box-shadow:0 0 40px rgba(255,46,166,.09)}
.party-price-card.featured:before{content:"POPULAR";position:absolute;right:-27px;top:18px;transform:rotate(40deg);background:var(--pink);font-size:9px;font-weight:900;letter-spacing:1px;padding:6px 35px}
.party-day{font-size:10px;color:var(--cyan);font-weight:900;letter-spacing:1.5px}
.party-price{font:400 56px Anton,sans-serif;margin:13px 0 0}
.party-capacity{font-size:11px;font-weight:800;letter-spacing:.7px;color:#ddd}
.party-price-card p{color:var(--muted);margin:10px 0 22px}
.party-smallprint{margin-top:18px;border:1px solid rgba(36,216,255,.2);background:rgba(36,216,255,.04);border-radius:16px;padding:18px 22px;color:var(--muted);font-size:13px}
.party-smallprint strong{color:#fff;margin-right:7px}
.party-transform,.party-energy{background:radial-gradient(circle at 18% 25%,rgba(255,46,166,.07),transparent 28%)}
.party-energy{background:radial-gradient(circle at 82% 40%,rgba(123,60,255,.12),transparent 30%)}
.party-extras-note{margin-top:18px;padding:22px 25px;border:1px solid var(--line);border-radius:18px;display:flex;justify-content:space-between;gap:25px;align-items:center;background:rgba(255,255,255,.025)}
.party-extras-note div{display:flex;align-items:center;gap:14px}.party-extras-note strong{font-size:11px;letter-spacing:1px}.party-extras-note span{font:400 34px Anton,sans-serif;color:var(--pink)}.party-extras-note p{margin:0;color:var(--muted);font-size:12px}
.party-final h2{font-size:clamp(58px,8vw,106px)}
@media(max-width:900px){
  .party-price-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .party-page .party-hero{min-height:640px;background-position:61% center}
  .party-price-card{padding:25px 22px}
  .party-price{font-size:50px}
  .party-extras-note{display:block}
  .party-extras-note p{margin-top:10px}
  .party-final h2{font-size:62px}
}


/* Party Hire pricing update */
.party-price-grid.four{grid-template-columns:repeat(4,1fr)}
.party-price-card.deal{
  border-color:rgba(255,46,166,.72);
  box-shadow:0 0 42px rgba(255,46,166,.12);
}
.deal-prices{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:12px}
.deal-prices .party-price{margin:0}
.old-price{
  position:relative;
  display:inline-block;
  font:400 27px Anton,sans-serif;
  color:#888;
  line-height:1;
  padding-bottom:8px;
}
.old-price:after{
  content:"";
  position:absolute;
  left:-4px;
  right:-4px;
  top:45%;
  height:3px;
  background:var(--pink);
  transform:rotate(-8deg);
  border-radius:4px;
}
.party-included strong,
.party-venue strong{color:#fff}
@media(max-width:1100px){
  .party-price-grid.four{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .party-price-grid.four{grid-template-columns:1fr}
}


.event-inclusion p strong{
  display:inline;
  font-size:inherit;
  line-height:inherit;
  margin:0;
  color:#fff;
  font-weight:800;
}


/* =========================================================
   BAR / BAT MITZVAH — COLOUR ONLY THEME
   Keeps DJW fonts, spacing, cards and layout unchanged
   ========================================================= */
.mitzvah-theme{
  --mz-gold:#d5b36a;
  --mz-gold-light:#ecd79f;
  --mz-ivory:#f7f3ea;
  --mz-line:rgba(213,179,106,.22);
}

/* Shared chrome, colours only */
.mitzvah-theme header{
  background:rgba(7,8,13,.88);
  border-bottom-color:var(--mz-line);
}
.mitzvah-theme .logo span,
.mitzvah-theme .foot-logo span{
  color:var(--mz-gold);
}
.mitzvah-theme .desktop-nav>a:hover{
  color:var(--mz-gold-light);
}
.mitzvah-theme .desktop-nav .pill,
.mitzvah-theme .mobile-cta{
  background:var(--mz-gold);
  color:#0a0907;
  box-shadow:0 0 28px rgba(213,179,106,.14);
}
.mitzvah-theme footer{
  border-top-color:var(--mz-line);
}
.mitzvah-theme .foot-cols b{
  color:var(--mz-gold);
}

/* Hero uses the existing DJW font/layout, only with warm-gold lighting */
.mitzvah-theme .mitzvah-page .hero{
  background:
    linear-gradient(90deg,rgba(5,6,10,.96) 0%,rgba(10,9,7,.72) 48%,rgba(5,6,10,.18) 76%),
    radial-gradient(circle at 78% 30%,rgba(213,179,106,.13),transparent 32%),
    url('party-decor.jpg') center 46%/cover no-repeat;
}
.mitzvah-theme .mitzvah-page .hero:after{
  background:var(--mz-gold);
  opacity:.08;
}

/* Replace pink accents with champagne gold */
.mitzvah-theme .mitzvah-page .accent,
.mitzvah-theme .mitzvah-page .title-pink{
  color:var(--mz-gold-light);
  text-shadow:0 0 28px rgba(213,179,106,.12);
}
.mitzvah-theme .mitzvah-page .kicker,
.mitzvah-theme .mitzvah-page .eyebrow{
  color:var(--mz-gold);
}

/* Buttons */
.mitzvah-theme .mitzvah-page .btn.pink,
.mitzvah-theme .mitzvah-page .mitzvah-btn{
  background:var(--mz-gold);
  color:#0b0907;
  box-shadow:0 0 28px rgba(213,179,106,.15);
}
.mitzvah-theme .mitzvah-page .btn.pink:hover,
.mitzvah-theme .mitzvah-page .mitzvah-btn:hover{
  box-shadow:0 0 40px rgba(213,179,106,.26);
}

/* Keep normal DJW panels/cards, just warm their borders/highlights */
.mitzvah-theme .mitzvah-page .panel{
  border-color:rgba(213,179,106,.18);
}
.mitzvah-theme .mitzvah-page .panel:hover{
  border-color:rgba(236,215,159,.34);
}
.mitzvah-theme .mitzvah-page .card{
  border-color:rgba(213,179,106,.15);
}
.mitzvah-theme .mitzvah-page .card:hover{
  border-color:rgba(236,215,159,.30);
}
.mitzvah-theme .mitzvah-page .price{
  color:var(--mz-gold-light);
}
.mitzvah-theme .mitzvah-page .feature-list span{
  border-color:rgba(213,179,106,.15);
  background:rgba(213,179,106,.025);
}
.mitzvah-theme .mitzvah-page .feature-list span:before{
  color:var(--mz-gold);
}

/* Remove pink/arcade background motifs on this page and replace with subtle gold */
.mitzvah-theme .mitzvah-page section:not(.hero):not(.mitzvah-final)::before{
  content:"✦";
  color:var(--mz-gold);
  opacity:.045;
}
.mitzvah-theme .mitzvah-page section:not(.hero):not(.mitzvah-final)::after{
  content:"CELEBRATE";
  color:var(--mz-gold);
  opacity:.018;
}

/* Final CTA keeps the existing DJW type and layout */
.mitzvah-theme .mitzvah-final{
  text-align:center;
  padding:92px 0;
  background:
    radial-gradient(circle at 50% 40%,rgba(213,179,106,.10),transparent 34%),
    #090a0f;
  border-top:1px solid rgba(213,179,106,.16);
}
.mitzvah-theme .mitzvah-final .wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.mitzvah-theme .mitzvah-final h2{
  font-family:Anton,sans-serif;
  text-transform:uppercase;
  font-weight:400;
  font-size:clamp(62px,9vw,118px);
  line-height:.84;
}
.mitzvah-theme .mitzvah-final h2 span{
  color:var(--mz-gold-light);
  text-shadow:0 0 28px rgba(213,179,106,.12);
}
.mitzvah-theme .mitzvah-final p{
  color:#c8c2b7;
  margin:20px 0 26px;
  font-weight:700;
}
.mitzvah-theme .mitzvah-final:before{
  content:"✦  ✧  ✦";
  position:absolute;
  top:26px;
  left:50%;
  transform:translateX(-50%);
  color:var(--mz-gold);
  letter-spacing:15px;
  opacity:.18;
}

@media(max-width:600px){
  .mitzvah-theme .mitzvah-page .hero{
    background-position:61% center;
  }
  .mitzvah-theme .mitzvah-final{
    padding:72px 0;
  }
  .mitzvah-theme .mitzvah-final h2{
    font-size:64px;
  }
}


/* =========================================================
   CORPORATE PAGE V2 — DJW STYLE
   ========================================================= */

.corporate-v2-hero{
  min-height:690px!important;
  background:
    linear-gradient(90deg,rgba(5,6,10,.97) 0%,rgba(5,6,10,.70) 47%,rgba(5,6,10,.18) 77%),
    linear-gradient(0deg,var(--bg),transparent 35%),
    url('djw-hero.jpg') center 46%/cover no-repeat!important;
}
.corp-hero-facts{display:flex;gap:9px;flex-wrap:wrap;margin:25px 0}
.corp-hero-facts span{border:1px solid rgba(255,255,255,.2);background:rgba(7,8,13,.5);backdrop-filter:blur(10px);border-radius:99px;padding:9px 13px;font-size:10px;font-weight:800;letter-spacing:.7px}
.corp-hero-facts b{color:var(--pink);font-weight:900;margin-right:5px}

.corp-intro{background:radial-gradient(circle at 15% 20%,rgba(255,46,166,.08),transparent 28%)}
.corp-intro-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:center}
.corp-intro-copy h2{font-size:clamp(58px,7vw,92px);line-height:.88}
.corp-intro-copy p{color:var(--muted);line-height:1.75;margin:22px 0 0}
.corp-intro-image{height:570px;border-radius:30px;overflow:hidden;border:1px solid var(--line);position:relative}
.corp-intro-image img{height:100%;object-fit:cover}
.corp-image-label{position:absolute;left:20px;bottom:20px;background:rgba(6,7,10,.78);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.16);padding:10px 13px;border-radius:99px;font-size:9px;font-weight:900;letter-spacing:1.2px}

.corp-serious{background:#0b0c12}
.corp-serious-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.corp-serious-card{display:grid;grid-template-columns:82px 1fr;gap:20px;align-items:start;padding:28px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#11131b,#0c0e14)}
.corp-number{font:400 48px Anton,sans-serif;color:var(--pink);line-height:1}
.corp-serious-card h3{font-size:30px;margin-bottom:8px}
.corp-serious-card p{color:var(--muted);font-size:13px;line-height:1.65;margin:0}

.corp-reset{background:radial-gradient(circle at 82% 36%,rgba(123,60,255,.10),transparent 30%)}

.corp-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.corp-type{padding:24px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.025);min-height:190px}
.corp-type>span{font-size:9px;font-weight:900;letter-spacing:1.3px;color:var(--cyan)}
.corp-type h3{font-size:27px;margin:16px 0 8px}
.corp-type p{color:var(--muted);font-size:12px;line-height:1.6;margin:0}

.corp-flow{background:#0b0c12}
.corp-timeline{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.corp-step{padding:28px 18px;border-right:1px solid var(--line);min-height:125px}
.corp-step:last-child{border-right:0}
.corp-step b{display:block;color:var(--pink);font:400 26px Anton,sans-serif;margin-bottom:9px}
.corp-step span{font-size:11px;color:#ccc;line-height:1.45}

.corp-package-section{background:radial-gradient(circle at 18% 30%,rgba(255,46,166,.08),transparent 28%)}
.corp-package-card{display:grid;grid-template-columns:.72fr 1.28fr;border:1px solid rgba(255,46,166,.32);border-radius:28px;overflow:hidden;background:linear-gradient(145deg,#17131a,#0c0d12);box-shadow:0 30px 70px rgba(0,0,0,.26)}
.corp-package-left{padding:42px;border-right:1px solid var(--line)}
.corp-package-label{font-size:9px;font-weight:900;letter-spacing:1.3px;color:var(--cyan)}
.corp-package-price{font:400 62px Anton,sans-serif;margin:14px 0 6px}
.corp-package-price small{font:600 18px "DM Sans";color:var(--muted)}
.corp-package-left p{color:var(--muted);margin:0 0 25px}
.corp-package-right{padding:34px 38px}
.corp-package-right h3{font-size:32px;margin-bottom:15px}
.corp-package-items{display:grid;grid-template-columns:1fr 1fr;gap:0}
.corp-package-items span{padding:14px 5px;border-bottom:1px solid var(--line);font-size:12px;color:#ddd}
.corp-package-items span:before{content:"✦";color:var(--pink);margin-right:8px}
.corp-addons{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.corp-addons>div{display:grid;grid-template-columns:35px 1fr;gap:10px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.02)}
.corp-addons span{font:400 31px Anton,sans-serif;color:var(--pink);line-height:1}
.corp-addons p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.corp-addons b{color:#fff}

.corp-proof{background:#0b0c12}
.corp-brand-grid{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}
.corp-brand-grid span{padding:38px 18px;text-align:center;border-right:1px solid var(--line);font:400 27px Anton,sans-serif;letter-spacing:.6px}
.corp-brand-grid span:last-child{border-right:0}

.corp-location .panel h3{font-size:36px}
.corp-location .actions{margin-top:20px}

.corp-final{text-align:center!important;background:radial-gradient(circle at center,rgba(255,46,166,.17),transparent 42%),#090a0f}
.corp-final .wrap{display:flex;flex-direction:column;align-items:center}
.corp-final h2{font-size:clamp(70px,9vw,118px);line-height:.84}
.corp-final h2 span{color:var(--pink)}
.corp-final p{max-width:600px;color:#bbb;line-height:1.7;margin:22px auto 28px}

@media(max-width:950px){
  .corp-intro-grid{grid-template-columns:1fr;gap:35px}
  .corp-intro-image{height:470px}
  .corp-timeline{grid-template-columns:repeat(3,1fr)}
  .corp-step:nth-child(3){border-right:0}
  .corp-step:nth-child(-n+3){border-bottom:1px solid var(--line)}
  .corp-package-card{grid-template-columns:1fr}
  .corp-package-left{border-right:0;border-bottom:1px solid var(--line)}
  .corp-addons{grid-template-columns:1fr 1fr}
}

@media(max-width:700px){
  .corp-serious-grid,.corp-type-grid{grid-template-columns:1fr}
  .corp-brand-grid{grid-template-columns:1fr 1fr}
  .corp-brand-grid span:nth-child(2){border-right:0}
  .corp-brand-grid span:nth-child(-n+2){border-bottom:1px solid var(--line)}
}

@media(max-width:600px){
  .corporate-v2-hero{min-height:700px!important;background-position:61% center!important}
  .corp-intro-image{height:320px}
  .corp-serious-card{grid-template-columns:58px 1fr;padding:22px 18px;gap:12px}
  .corp-number{font-size:38px}
  .corp-type{min-height:0}
  .corp-timeline{grid-template-columns:1fr 1fr}
  .corp-step{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .corp-step:nth-child(2n){border-right:0}
  .corp-step:nth-child(-n+4){border-bottom:1px solid var(--line)}
  .corp-package-left{padding:28px 22px}
  .corp-package-price{font-size:52px}
  .corp-package-right{padding:26px 21px}
  .corp-package-items{grid-template-columns:1fr}
  .corp-addons{grid-template-columns:1fr}
  .corp-brand-grid span{font-size:21px;padding:28px 8px}
  .corp-final h2{font-size:65px}
}

/* PARTY BUILDER */
.party-builder-section{background:radial-gradient(circle at 85% 15%,rgba(255,46,166,.09),transparent 29%),#0b0c12}
.party-builder{display:grid;grid-template-columns:1.3fr .7fr;gap:20px;align-items:start}
.builder-controls{border:1px solid var(--line);border-radius:27px;background:#0f1118;padding:30px}
.builder-block{padding:30px 0;border-bottom:1px solid var(--line)}.builder-block:first-child{padding-top:0}.builder-block:last-child{padding-bottom:0;border-bottom:0}
.builder-label{display:grid;grid-template-columns:44px 1fr;gap:13px;align-items:start;margin-bottom:20px}
.builder-label>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,46,166,.32);color:var(--pink);font:400 17px Anton,sans-serif}
.builder-label b{display:block;font-size:14px}.builder-label small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:3px}
.builder-day-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.builder-day{appearance:none;border:1px solid var(--line);border-radius:16px;padding:17px 12px;background:#0b0d13;color:#fff;text-align:left;cursor:pointer;transition:.22s}
.builder-day:hover{border-color:rgba(255,46,166,.36);transform:translateY(-2px)}.builder-day.active{background:rgba(255,46,166,.09);border-color:var(--pink);box-shadow:0 0 25px rgba(255,46,166,.08)}
.builder-day.deal:after{content:"DEAL";display:inline-block;margin-top:9px;color:#0b0c10;background:var(--lime);border-radius:99px;padding:4px 7px;font-size:8px;font-weight:900}
.builder-day span{display:block;color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:1px}.builder-day strong{display:block;font:400 29px Anton,sans-serif;margin:7px 0 3px}.builder-day small{display:block;color:#8f919e;font-size:9px;line-height:1.35}
.guest-control{display:flex;align-items:center;justify-content:center;gap:23px;margin:10px 0 15px}.guest-control button{width:47px;height:47px;border-radius:50%;border:1px solid var(--line);background:#151721;color:#fff;font-size:24px;cursor:pointer}
.guest-control div{text-align:center;min-width:95px}.guest-control strong{display:block;font:400 43px Anton,sans-serif;line-height:.9}.guest-control span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.guest-range{width:100%;accent-color:var(--pink)}
.builder-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.builder-extra{display:grid;grid-template-columns:28px 1fr auto;gap:11px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:16px;cursor:pointer;background:#0b0d13}.builder-extra input{position:absolute;opacity:0}.builder-extra:has(input:checked){border-color:rgba(255,46,166,.55);background:rgba(255,46,166,.06)}
.extra-check{width:26px;height:26px;border-radius:7px;border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;color:transparent;font-size:13px;font-weight:900}.builder-extra input:checked + .extra-check{background:var(--pink);border-color:var(--pink);color:#fff}
.builder-extra b{display:block;font-size:12px}.builder-extra small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.builder-extra>strong{font:400 22px Anton,sans-serif}.builder-both-note{font-size:10px!important;color:var(--lime)!important;margin:10px 0 0!important}
.builder-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.builder-chip-grid input{position:absolute;opacity:0}.builder-chip-grid span{display:block;border:1px solid var(--line);border-radius:99px;padding:9px 12px;font-size:10px;color:#bbb;cursor:pointer}.builder-chip-grid input:checked + span{border-color:var(--pink);color:#fff;background:rgba(255,46,166,.08)}
.builder-summary{position:sticky;top:98px;border-radius:27px;padding:28px;background:radial-gradient(circle at 75% 0%,rgba(255,46,166,.13),transparent 35%),#11131b;border:1px solid rgba(255,46,166,.28);box-shadow:0 30px 65px rgba(0,0,0,.28)}
.builder-summary h3{font-size:38px;margin:13px 0 22px}.builder-summary-lines{border-block:1px solid var(--line)}.builder-summary-lines>div{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px}.builder-summary-lines>div:last-child{border-bottom:0}.builder-summary-lines span{color:var(--muted)}
.builder-total{padding:23px 0 20px}.builder-total span{display:block;color:#bbb;font-size:10px;text-transform:uppercase;letter-spacing:1px}.builder-total strong{display:block;font:400 58px Anton,sans-serif;margin-top:3px}.builder-disclaimer{font-size:9px!important;line-height:1.55!important;color:#7f818c!important;margin:0 0 20px!important}.builder-enquire{width:100%}.builder-reset{width:100%;border:0;background:transparent;color:#777;font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:1px;margin-top:13px;cursor:pointer}
@media(max-width:950px){.party-builder{grid-template-columns:1fr}.builder-summary{position:relative;top:auto}.builder-day-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.builder-controls{padding:22px 18px}.builder-day{padding:15px 11px}.builder-extra-grid{grid-template-columns:1fr}.builder-summary{padding:23px 20px}.builder-total strong{font-size:50px}}


/* =========================================================
   HOMEPAGE HERO BALL PIT — CANVAS PHYSICS
   ========================================================= */
.hero{
  position:relative;
  overflow:hidden;
}
.hero .hero-content{
  position:relative;
  z-index:4;
}
.ballpit-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  pointer-events:none;
}
@media(prefers-reduced-motion:reduce){
  .ballpit-canvas{display:none}
}

.ballpit-tilt-btn{display:none;position:absolute;right:16px;bottom:18px;z-index:5;border:1px solid rgba(255,255,255,.25);background:rgba(7,8,13,.64);color:#fff;backdrop-filter:blur(10px);border-radius:999px;padding:10px 13px;font-size:9px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;cursor:pointer}
.ballpit-tilt-btn.show{display:inline-flex}.ballpit-tilt-btn.enabled{display:none}
@media(max-width:600px){.ballpit-tilt-btn.show{display:inline-flex}}


/* =========================================================
   SITE-WIDE SECTION TRANSITIONS
   ========================================================= */
.site-section-transition{
  opacity:0;
  transform:translateY(44px) scale(.99);
  filter:blur(4px);
  transition:opacity .85s cubic-bezier(.2,.75,.25,1),transform .95s cubic-bezier(.16,.8,.24,1),filter .75s ease;
  will-change:opacity,transform,filter
}
.site-section-transition.section-visible{opacity:1;transform:none;filter:none}
.reveal{opacity:0;transform:translateY(30px) scale(.99);filter:blur(3px);transition:opacity .72s cubic-bezier(.2,.75,.25,1),transform .82s cubic-bezier(.16,.8,.24,1),filter .7s ease}
.reveal.in{opacity:1;transform:none;filter:none}
.transition-stagger{opacity:0;transform:translateY(25px);transition:opacity .62s cubic-bezier(.2,.75,.25,1),transform .72s cubic-bezier(.16,.8,.24,1);transition-delay:var(--stagger-delay,0ms)}
.transition-stagger.stagger-visible{opacity:1;transform:none}


/* =========================================================
   HOMEPAGE — FULL-SCREEN RABBIT HOLE TRANSITION
   ========================================================= */
.rabbit-hole-section{position:relative;height:260vh;padding:0!important;background:#05060a;isolation:isolate}
.rabbit-hole-section::before,.rabbit-hole-section::after{display:none!important}
.rabbit-hole-sticky{position:sticky;top:0;width:100%;height:100svh;min-height:600px;overflow:hidden;background:radial-gradient(circle at 50% 52%,rgba(36,216,255,.08),transparent 17%),radial-gradient(circle at 50% 52%,rgba(255,46,166,.12),transparent 38%),#05060a;perspective:1100px;transform-style:preserve-3d}
.rabbit-vignette{position:absolute;inset:-2px;z-index:8;pointer-events:none;background:radial-gradient(circle at center,transparent 32%,rgba(3,4,8,.16) 53%,rgba(3,4,8,.78) 100%),linear-gradient(to bottom,rgba(3,4,8,.35),transparent 16%,transparent 82%,rgba(3,4,8,.46))}
.rabbit-tunnel{position:absolute;inset:0;z-index:1;overflow:hidden;transform-style:preserve-3d}
.rabbit-ring{position:absolute;left:50%;top:50%;width:120px;height:120px;border-radius:50%;border:2px solid rgba(255,255,255,.1);transform:translate(-50%,-50%);box-shadow:0 0 28px rgba(255,46,166,.1),inset 0 0 26px rgba(36,216,255,.06);will-change:transform,opacity}
.rabbit-ring:nth-child(odd){border-color:rgba(255,46,166,.48)}.rabbit-ring:nth-child(even){border-color:rgba(36,216,255,.4)}
.ring-1{width:95px;height:95px}.ring-2{width:170px;height:170px}.ring-3{width:270px;height:270px}.ring-4{width:390px;height:390px}.ring-5{width:540px;height:540px}.ring-6{width:720px;height:720px}.ring-7{width:930px;height:930px;opacity:.7}.ring-8{width:1190px;height:1190px;opacity:.4}
.rabbit-copy{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;pointer-events:none;will-change:transform,opacity,filter}
.rabbit-copy .kicker{color:var(--cyan)}.rabbit-copy h2{margin:0;font-size:clamp(82px,11vw,170px);line-height:.78;letter-spacing:-1.5px}.rabbit-copy h2 span{color:var(--pink);text-shadow:0 0 35px rgba(255,46,166,.22)}.rabbit-copy p{color:#a9abb6;margin:22px 0 0;font-size:13px;font-weight:700;letter-spacing:.4px}
.rabbit-scroll-cue{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:34px;color:#fff;font-size:8px;font-weight:900;letter-spacing:1.8px}.rabbit-scroll-cue b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,46,166,.42);color:var(--pink);font-size:17px;animation:rabbitArrow 1.2s ease-in-out infinite}@keyframes rabbitArrow{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.rabbit-fall-layer{position:absolute;inset:-35vh 0 0;z-index:3;pointer-events:none;will-change:transform}.rabbit-fall-back{z-index:2;filter:blur(.3px)}.rabbit-fall-front{z-index:5}
.rabbit-object{position:absolute;top:0;font:400 50px Anton,sans-serif;line-height:1;will-change:transform,opacity;text-shadow:0 0 25px currentColor}.ro-1{left:8%;color:rgba(255,46,166,.50);font-size:62px}.ro-2{left:24%;color:rgba(36,216,255,.40);font-size:38px;top:24vh}.ro-3{left:42%;color:rgba(255,46,166,.38);font-size:46px;top:-18vh}.ro-4{left:65%;color:rgba(36,216,255,.42);font-size:56px;top:15vh}.ro-5{left:81%;color:rgba(255,255,255,.26);font-size:33px;top:-7vh}.ro-6{left:92%;color:rgba(255,46,166,.42);font-size:40px;top:32vh}.ro-7{left:55%;color:rgba(36,216,255,.34);font-size:31px;top:50vh}.ro-8{left:14%;color:rgba(255,46,166,.32);font-size:39px;top:64vh}
.rabbit-card{position:absolute;width:92px;height:132px;border-radius:12px;background:linear-gradient(145deg,#f7f7f7,#dedede);color:#111;border:1px solid rgba(255,255,255,.78);box-shadow:0 18px 35px rgba(0,0,0,.28);display:flex;flex-direction:column;justify-content:space-between;padding:10px;font-family:DM Sans,sans-serif;will-change:transform,opacity}.rabbit-card b{font-size:23px;line-height:1}.rabbit-card i{font-style:normal;font-size:28px;align-self:flex-end}.rc-1{left:7%;top:-5vh;color:#d71872}.rc-2{left:72%;top:10vh}.rc-3{left:87%;top:57vh;color:#d71872}.rc-4{left:27%;top:65vh}
.rabbit-clock{position:absolute;width:105px;height:105px;border-radius:50%;border:5px solid #d8d8dc;background:linear-gradient(90deg,transparent 49%,#24242c 50%,transparent 51%),linear-gradient(0deg,transparent 49%,#24242c 50%,transparent 51%),#f5f5f2;box-shadow:0 15px 35px rgba(0,0,0,.3);will-change:transform,opacity}.rabbit-clock::before,.rabbit-clock::after{content:"";position:absolute;left:50%;top:50%;width:3px;transform-origin:50% 100%;background:#16161d;border-radius:3px}.rabbit-clock::before{height:29px;transform:translate(-50%,-100%) rotate(35deg)}.rabbit-clock::after{height:21px;transform:translate(-50%,-100%) rotate(120deg)}.clock-1{left:56%;top:-14vh}.clock-2{left:16%;top:35vh;width:72px;height:72px}
.rabbit-exit-title{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;opacity:0;transform:scale(.68);pointer-events:none;will-change:transform,opacity,filter}.rabbit-exit-title span{font-size:10px;font-weight:900;letter-spacing:4px;color:var(--cyan)}.rabbit-exit-title strong{font:400 clamp(76px,12vw,180px) Anton,sans-serif;line-height:.85;color:#fff;text-shadow:0 0 45px rgba(255,46,166,.18)}
.home-whats-on{position:relative;z-index:3}
@media(max-width:700px){.rabbit-hole-section{height:225vh}.rabbit-hole-sticky{height:100svh;min-height:560px}.rabbit-copy h2{font-size:clamp(68px,20vw,105px)}.rabbit-copy p{font-size:11px}.rabbit-card{width:67px;height:96px;border-radius:9px;padding:7px}.rabbit-card b{font-size:17px}.rabbit-card i{font-size:21px}.rabbit-clock{width:72px;height:72px;border-width:4px}.ring-6{width:620px;height:620px}.ring-7{width:790px;height:790px}.ring-8{width:980px;height:980px}.rc-1{left:4%}.rc-2{left:75%}.rc-4{left:20%}}
@media(prefers-reduced-motion:reduce){.site-section-transition,.transition-stagger,.reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.rabbit-hole-section{height:auto;min-height:100svh}.rabbit-hole-sticky{position:relative;min-height:100svh}.rabbit-fall-layer{display:none}.rabbit-scroll-cue b{animation:none}}


/* =========================================================
   DJW HOMEPAGE ARCADE CHALLENGE
   ========================================================= */
.home-arcade{
  background:
    radial-gradient(circle at 12% 12%,rgba(36,216,255,.08),transparent 25%),
    radial-gradient(circle at 88% 30%,rgba(255,46,166,.10),transparent 27%),
    #080a10;
}
.djw-arcade-shell{
  border:1px solid rgba(255,255,255,.12);
  border-radius:30px;
  overflow:hidden;
  background:#0b0d14;
  box-shadow:0 34px 80px rgba(0,0,0,.30);
}
.arcade-game-picker{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid var(--line);
}
.arcade-tab{
  display:grid;
  grid-template-columns:35px 1fr;
  gap:0 10px;
  align-items:center;
  text-align:left;
  padding:22px 24px;
  border:0;
  border-right:1px solid var(--line);
  background:#0e1017;
  color:#fff;
  cursor:pointer;
  transition:.22s;
}
.arcade-tab:last-child{border-right:0}
.arcade-tab>span{
  grid-row:1/3;
  font:400 28px Anton,sans-serif;
  color:#4d5060;
  transition:.22s;
}
.arcade-tab b{font-size:13px}
.arcade-tab small{font-size:9px;color:#777b8c;margin-top:2px}
.arcade-tab.active{
  background:rgba(255,46,166,.075);
}
.arcade-tab.active>span{color:var(--pink)}
.arcade-tab:hover{background:rgba(255,255,255,.035)}

.arcade-layout{
  display:grid;
  grid-template-columns:1.35fr .65fr;
}
.arcade-play{
  min-width:0;
  padding:30px;
  border-right:1px solid var(--line);
}
.arcade-screen{
  position:relative;
  overflow:hidden;
  min-height:510px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.11);
  background:
    radial-gradient(circle at 50% 20%,rgba(36,216,255,.07),transparent 32%),
    #080a10;
}
.arcade-screen-grid{
  position:absolute;
  inset:0;
  opacity:.10;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);
}
.arcade-game{
  display:none;
  position:relative;
  z-index:2;
  min-height:510px;
  padding:34px;
  flex-direction:column;
}
.arcade-game.active{display:flex}
.arcade-game-copy{max-width:520px}
.arcade-game-copy h3{
  font-size:42px;
  margin:14px 0 8px;
}
.arcade-game-copy p{
  color:var(--muted);
  line-height:1.6;
  font-size:12px;
  margin:0;
}

.reaction-pad,
.tap-pad,
.stop-pad{
  flex:1;
  min-height:260px;
  margin-top:26px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(145deg,#141722,#0e1017);
  color:#fff;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  transition:background .12s,border-color .12s,transform .1s;
}
.reaction-pad:active,
.tap-pad:active,
.stop-pad:active{transform:scale(.992)}
.reaction-pad span,
.tap-pad span,
.stop-pad span{
  font-size:10px;
  font-weight:900;
  letter-spacing:1.8px;
  color:#85899a;
}
.reaction-pad strong,
.tap-pad strong,
.stop-pad strong{
  display:block;
  font:400 72px Anton,sans-serif;
  line-height:1;
  margin-top:8px;
}
.reaction-pad.waiting{
  background:linear-gradient(145deg,#161720,#11121a);
}
.reaction-pad.go{
  background:var(--pink);
  border-color:#ff8ed0;
}
.reaction-pad.go span,
.reaction-pad.go strong{color:#fff}
.tap-pad.playing{
  border-color:rgba(36,216,255,.65);
  background:radial-gradient(circle at center,rgba(36,216,255,.13),transparent 55%),#10131b;
}
.stop-pad.running{
  border-color:rgba(255,46,166,.55);
  background:radial-gradient(circle at center,rgba(255,46,166,.10),transparent 52%),#101118;
}
.tap-timer{
  text-align:center;
  color:#7f8391;
  font-size:10px;
  margin-top:12px;
}
.tap-timer span{color:var(--cyan);font-weight:900}

.arcade-result{
  margin-top:16px;
  border:1px solid rgba(255,46,166,.24);
  border-radius:20px;
  padding:20px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  align-items:center;
  background:rgba(255,46,166,.045);
}
.arcade-result[hidden]{display:none}
.arcade-result>div>span{
  color:var(--cyan);
  font-size:9px;
  font-weight:900;
  letter-spacing:1.2px;
}
.arcade-result>div>strong{
  display:block;
  font:400 46px Anton,sans-serif;
  margin:2px 0;
}
.arcade-result>div>p{
  margin:0;
  color:var(--muted);
  font-size:10px;
}
.arcade-score-form{
  display:flex;
  align-items:flex-end;
  gap:9px;
}
.arcade-score-form label span{
  display:block;
  font-size:8px;
  color:#85899a;
  font-weight:800;
  margin:0 0 5px 3px;
}
.arcade-score-form input{
  height:43px;
  width:145px;
  border:1px solid var(--line);
  border-radius:99px;
  background:#090b11;
  color:#fff;
  padding:0 15px;
  outline:none;
}
.arcade-score-form input:focus{border-color:var(--pink)}
.arcade-score-form .btn{height:43px;padding:0 18px}

.arcade-leaderboard{
  padding:30px 27px;
  background:#0e1017;
}
.leaderboard-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:15px;
}
.leaderboard-head h3{
  font-size:34px;
  margin:12px 0 0;
}
.leaderboard-reset{
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:transparent;color:#777;
  cursor:pointer;font-size:18px;
}
.leaderboard-reset:hover{color:#fff;border-color:#555}
.leaderboard-game-tabs{
  display:flex;
  gap:6px;
  margin:22px 0 17px;
}
.leaderboard-game-tabs button{
  flex:1;
  min-width:0;
  border:1px solid var(--line);
  background:transparent;
  color:#777b88;
  border-radius:99px;
  padding:8px 7px;
  font-size:8px;
  font-weight:900;
  cursor:pointer;
}
.leaderboard-game-tabs button.active{
  color:#fff;
  border-color:var(--pink);
  background:rgba(255,46,166,.07);
}
.leaderboard-list{
  list-style:none;
  padding:0;margin:0;
  counter-reset:rank;
}
.leaderboard-list li{
  display:grid;
  grid-template-columns:34px 1fr auto;
  gap:10px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.leaderboard-rank{
  width:27px;height:27px;border-radius:50%;
  display:grid;place-items:center;
  background:#171923;
  color:#8a8d9b;
  font:400 13px Anton,sans-serif;
}
.leaderboard-list li:nth-child(1) .leaderboard-rank{background:#f5d45b;color:#17130a}
.leaderboard-list li:nth-child(2) .leaderboard-rank{background:#bbbfc9;color:#101117}
.leaderboard-list li:nth-child(3) .leaderboard-rank{background:#bb794d;color:#130b07}
.leaderboard-player b{
  display:block;
  font-size:11px;
}
.leaderboard-player small{
  display:block;
  color:#666b79;
  font-size:8px;
  margin-top:2px;
}
.leaderboard-score{
  font:400 21px Anton,sans-serif;
}
.leaderboard-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:44px 10px;
  color:#6f7381;
}
.leaderboard-empty span{font-size:34px;filter:grayscale(1);opacity:.55}
.leaderboard-empty p{font-size:10px;line-height:1.5}
.leaderboard-note{
  color:#5d606d;
  font-size:8px;
  line-height:1.55;
  margin:17px 0 0;
}

@media(max-width:950px){
  .arcade-layout{grid-template-columns:1fr}
  .arcade-play{border-right:0;border-bottom:1px solid var(--line)}
  .arcade-leaderboard{padding-bottom:34px}
}
@media(max-width:650px){
  .arcade-game-picker{grid-template-columns:1fr}
  .arcade-tab{border-right:0;border-bottom:1px solid var(--line);padding:16px 18px}
  .arcade-tab:last-child{border-bottom:0}
  .arcade-tab>span{font-size:23px}
  .arcade-play{padding:16px}
  .arcade-screen,.arcade-game{min-height:470px}
  .arcade-game{padding:23px 18px}
  .arcade-game-copy h3{font-size:34px}
  .reaction-pad,.tap-pad,.stop-pad{min-height:245px}
  .reaction-pad strong,.tap-pad strong,.stop-pad strong{font-size:60px}
  .arcade-result{grid-template-columns:1fr}
  .arcade-score-form{align-items:stretch;flex-direction:column}
  .arcade-score-form input{width:100%;font-size:16px}
  .arcade-score-form .btn{width:100%}
  .arcade-leaderboard{padding:24px 18px}
}


.leaderboard-live{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#9ca0ae;
  font-size:8px;
  font-weight:900;
  letter-spacing:1.2px;
  padding-top:10px;
}
.leaderboard-live i{
  width:7px;
  height:7px;
  border-radius:50%;
  display:block;
  background:var(--lime);
  box-shadow:0 0 12px rgba(186,255,41,.7);
}
.leaderboard-status{
  margin:14px 0 0;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  color:#858998;
  font-size:9px;
  line-height:1.5;
  background:rgba(255,255,255,.025);
}
.leaderboard-status.error{
  border-color:rgba(255,46,166,.32);
  color:#d9a5c5;
}


/* =========================================================
   DJW INTEGRATED ARCADE SHOWCASE
   ========================================================= */
.arcade-showcase{position:relative;background:#05070c;overflow:hidden}
.arcade-showcase-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:58px;align-items:start}
.arcade-venue-copy{padding-top:15px;position:sticky;top:105px}
.arcade-venue-copy h2{font-size:clamp(72px,7.4vw,116px);line-height:.82;margin:14px 0 24px}
.arcade-venue-copy>p{max-width:520px;color:#9da0ab;line-height:1.7;font-size:13px;margin-bottom:34px}
.venue-arcade-list{border-top:1px solid rgba(255,255,255,.15)}
.venue-arcade-list>div{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;min-height:55px;border-bottom:1px solid rgba(255,255,255,.13)}
.venue-arcade-list span{color:#858896;font:400 11px Anton,sans-serif;letter-spacing:1px}
.venue-arcade-list b{font-size:15px}
.venue-arcade-list small{font-size:8px;font-weight:900;letter-spacing:1px;color:var(--cyan)}
.venue-arcade-list s{color:#565a66;margin-right:7px}

.djw-machine{border-radius:30px;padding:14px;background:linear-gradient(145deg,#68baff,#498ce9);border:1px solid rgba(255,255,255,.2);box-shadow:0 40px 90px rgba(0,0,0,.35),0 0 55px rgba(36,216,255,.08);color:#0b0d14}
.machine-topbar{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 9px;color:#173452;font-size:8px;font-weight:900;letter-spacing:1.6px}
.machine-topbar b{display:flex;align-items:center;gap:7px}.machine-topbar i{width:6px;height:6px;border-radius:50%;background:#0b0d14}
.machine-display{position:relative;min-height:445px;border-radius:20px;overflow:hidden;background:#070910;color:#fff;box-shadow:inset 0 0 40px rgba(0,0,0,.7)}
.machine-scanlines{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.09;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(255,255,255,.16) 4px)}
.machine-game-tabs{position:relative;z-index:6;display:flex;justify-content:center;gap:5px;padding:14px}
.machine-game-tabs button{border:1px solid rgba(255,255,255,.13);background:#0b0e16;color:#6c7180;border-radius:999px;padding:8px 12px;font-size:8px;font-weight:900;letter-spacing:.8px;cursor:pointer}
.machine-game-tabs button.active{background:#5aa9fa;border-color:#5aa9fa;color:#07101b}
.machine-game{position:relative;z-index:2;min-height:385px;padding:32px 28px 24px;align-items:center;text-align:center}
.machine-instruction{font-size:8px;letter-spacing:2px;font-weight:900;color:#9aa0ae}
.machine-big-copy{margin-top:14px;font:400 clamp(42px,4.5vw,70px) Anton,sans-serif;line-height:.95;color:#61adfa;text-shadow:0 0 24px rgba(97,173,250,.3)}
.machine-scoreline{margin-top:8px;color:#7e8492;font-size:8px;font-weight:900;letter-spacing:1.3px}.machine-scoreline strong{color:#d5d9e1}

.punch-bag-stage{position:relative;width:240px;height:205px;margin:22px auto 0;border:0;background:transparent;cursor:pointer;overflow:visible}
.punch-rope{position:absolute;left:50%;top:0;width:2px;height:50px;background:#647083;transform:translateX(-50%)}
.punch-bag{position:absolute;left:50%;top:49px;width:94px;height:125px;transform:translateX(-50%);transform-origin:50% 0;border-radius:40px 40px 33px 33px;background:linear-gradient(180deg,#171d2d 0 17%,#090d15 17% 79%,#172137 79%);border:2px solid #02040a;box-shadow:0 20px 28px rgba(0,0,0,.42),inset 0 0 18px rgba(64,131,220,.13);transition:transform .09s ease}
.punch-bag::before,.punch-bag::after{content:"";position:absolute;left:0;right:0;height:4px;background:#66b3ff}.punch-bag::before{top:16px}.punch-bag::after{bottom:23px}
.punch-bag i{position:absolute;top:51px;left:0;right:0;font-style:normal;font:400 21px Anton,sans-serif;color:#62aef7}.punch-bag b{position:absolute;left:0;right:0;top:28px;color:#fff;font-size:19px}
.punch-bag-stage.hit .punch-bag{transform:translateX(-50%) rotate(13deg) translateY(-3px)}.punch-bag-stage.playing .punch-bag{box-shadow:0 20px 28px rgba(0,0,0,.42),0 0 24px rgba(36,216,255,.16)}

.machine-hit-zone{width:min(430px,90%);min-height:170px;margin:38px auto 0;border:1px solid rgba(97,173,250,.34);background:#0c111a;border-radius:20px;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}
.machine-hit-zone span{font-size:8px;font-weight:900;letter-spacing:1.4px;color:#778090}.machine-hit-zone strong{font:400 48px Anton,sans-serif;color:#64affb;margin-top:5px}
.machine-hit-zone.go{background:#ff2ea6;border-color:#ff8fd0}.machine-hit-zone.go span,.machine-hit-zone.go strong{color:#fff}
.machine-lower{margin-top:13px}
.machine-result{background:#09101a;border-color:rgba(255,255,255,.14);color:#fff;margin-bottom:12px}
.machine-save{background:#0b0d14!important;color:#fff!important}
.machine-leaderboard{background:#070910!important;border-radius:18px;padding:19px!important;color:#fff}
.machine-leaderboard .leaderboard-head h3{font-size:26px;margin-top:8px}
.machine-leaderboard .leaderboard-list li{padding:10px 0}
.machine-leaderboard .leaderboard-score{font-size:18px}

@media(max-width:1050px){
  .arcade-showcase-grid{grid-template-columns:1fr}
  .arcade-venue-copy{position:relative;top:auto}
}
@media(max-width:600px){
  .arcade-venue-copy h2{font-size:68px}
  .venue-arcade-list>div{grid-template-columns:32px 1fr auto;gap:8px}
  .venue-arcade-list b{font-size:12px}.venue-arcade-list small{font-size:7px}
  .djw-machine{padding:9px;border-radius:22px}
  .machine-topbar{font-size:6px;letter-spacing:1px}
  .machine-display{min-height:430px;border-radius:15px}
  .machine-game{padding:24px 14px 18px}
  .machine-big-copy{font-size:44px}
  .punch-bag-stage{width:190px;height:195px}
  .machine-game-tabs button{font-size:7px;padding:7px 9px}
}


/* =========================================================
   DJW TWO-ROW VENUE REEL
   ========================================================= */
.venue-reel-section{
  position:relative;
  overflow:hidden;
  background:#06070b;
  padding-left:0!important;
  padding-right:0!important;
}
.venue-reel-heading{
  margin-bottom:48px;
}
.venue-reel-heading h2{
  font-size:clamp(70px,8vw,118px);
  line-height:.82;
  margin:14px 0 20px;
}
.venue-reel-heading p{
  max-width:520px;
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
}
.venue-reel{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:16px;
  overflow:hidden;
  padding:0 0 10px;
}
.venue-reel-row{
  width:100%;
  overflow:hidden;
}
.venue-reel-track{
  display:flex;
  width:max-content;
  will-change:transform;
}
.venue-reel-group{
  display:flex;
  flex:0 0 auto;
  gap:16px;
  padding-right:16px;
}
.venue-reel-card{
  flex:0 0 auto;
  height:235px;
  margin:0;
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.10);
  background:#11131a;
  position:relative;
}
.venue-reel-card.normal{width:300px}
.venue-reel-card.medium{width:350px}
.venue-reel-card.wide{width:420px}
.venue-reel-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .65s cubic-bezier(.2,.75,.25,1),filter .4s ease;
}
.venue-reel-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(to top,rgba(4,5,9,.12),transparent 38%);
}
.reel-right .venue-reel-track{
  animation:venueReelRight 52s linear infinite;
}
.reel-left .venue-reel-track{
  animation:venueReelLeft 56s linear infinite;
}
@keyframes venueReelRight{
  from{transform:translate3d(-50%,0,0)}
  to{transform:translate3d(0,0,0)}
}
@keyframes venueReelLeft{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
@media(hover:hover) and (pointer:fine){
  .venue-reel-card{
    transition:transform .35s cubic-bezier(.2,.75,.25,1), border-color .3s ease, box-shadow .35s ease;
  }
  .venue-reel-card:hover{
    transform:scale(1.035);
    z-index:4;
    border-color:rgba(255,255,255,.22);
    box-shadow:0 18px 38px rgba(0,0,0,.28);
  }
  .venue-reel-card:hover img{
    transform:scale(1.035);
    filter:brightness(1.07);
  }
}
@media(max-width:700px){
  .venue-reel-heading{margin-bottom:32px}
  .venue-reel-heading h2{font-size:67px}
  .venue-reel{gap:10px}
  .venue-reel-group{gap:10px;padding-right:10px}
  .venue-reel-card{
    height:165px;
    border-radius:17px;
  }
  .venue-reel-card.normal{width:215px}
  .venue-reel-card.medium{width:245px}
  .venue-reel-card.wide{width:285px}
  .reel-right .venue-reel-track{animation-duration:62s}
  .reel-left .venue-reel-track{animation-duration:65s}
}
@media(prefers-reduced-motion:reduce){
  .venue-reel-row{
    overflow-x:auto;
    scrollbar-width:none;
  }
  .venue-reel-row::-webkit-scrollbar{display:none}
  .venue-reel-track{animation:none!important}
  .venue-reel-group[aria-hidden="true"]{display:none}
}


/* Safari / iOS arcade tap fix */
.punch-bag-stage,
.reaction-pad,
.stop-pad,
.machine-hit-zone{
  touch-action:manipulation;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;
}
.punch-bag-stage{
  touch-action:none;
}




/* =========================================================
   DJW GALLERY LIGHTBOX REDESIGN
   ========================================================= */
.gallery-hero{
  padding:150px 0 70px;
  background:
    radial-gradient(circle at 82% 18%,rgba(36,216,255,.08),transparent 28%),
    radial-gradient(circle at 12% 72%,rgba(255,46,166,.09),transparent 30%),
    #06070b;
}
.gallery-hero-inner{
  display:grid;
  grid-template-columns:1.15fr .65fr;
  gap:60px;
  align-items:end;
}
.gallery-hero h1{
  margin:14px 0 0;
  font-size:clamp(76px,8.8vw,134px);
  line-height:.82;
}
.gallery-hero p{
  max-width:470px;
  justify-self:end;
  color:var(--muted);
  line-height:1.75;
  font-size:13px;
}
.gallery-page-section{
  padding:30px 0 110px;
  background:#06070b;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:220px;
  gap:14px;
}
.gallery-tile{
  position:relative;
  overflow:hidden;
  border:0;
  padding:0;
  border-radius:24px;
  background:#12151d;
  cursor:pointer;
  min-width:0;
}
.gallery-tile.wide{grid-column:span 2}
.gallery-tile.tall{grid-row:span 2}
.gallery-tile img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.2,.75,.25,1),filter .45s ease;
}
.gallery-tile-overlay{
  position:absolute;
  inset:auto 12px 12px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:11px 13px;
  border-radius:14px;
  background:rgba(7,9,15,.72);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .3s ease,transform .3s ease;
  backdrop-filter:blur(12px);
}
.gallery-tile-overlay b{
  font-size:9px;
  letter-spacing:1px;
  text-transform:uppercase;
}
.gallery-tile-overlay i{
  font-style:normal;
  color:var(--pink);
}
@media(hover:hover) and (pointer:fine){
  .gallery-tile:hover img{transform:scale(1.045);filter:brightness(1.08)}
  .gallery-tile:hover .gallery-tile-overlay{opacity:1;transform:none}
}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  grid-template-columns:72px 1fr 72px;
  align-items:center;
  padding:28px;
  background:rgba(3,4,8,.94);
  backdrop-filter:blur(18px);
}
.gallery-lightbox-figure{
  margin:0;
  width:100%;
  max-width:1280px;
  justify-self:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.gallery-lightbox-figure img{
  display:block;
  max-width:100%;
  max-height:82vh;
  object-fit:contain;
  border-radius:22px;
  box-shadow:0 30px 100px rgba(0,0,0,.55);
}
.gallery-lightbox-figure figcaption{
  width:100%;
  padding-top:13px;
  color:#9096a3;
  font-size:9px;
  font-weight:900;
  letter-spacing:1.2px;
  text-align:center;
}
.gallery-lightbox-close,
.gallery-lightbox-nav{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(12px);
}
.gallery-lightbox-close{
  position:absolute;
  top:22px;
  right:22px;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:28px;
  z-index:3;
}
.gallery-lightbox-nav{
  width:52px;
  height:52px;
  border-radius:50%;
  font-size:22px;
  justify-self:center;
}
.gallery-lightbox button:hover{background:rgba(255,46,166,.18);border-color:rgba(255,46,166,.42)}
body.gallery-open{overflow:hidden}

@media(max-width:900px){
  .gallery-hero-inner{grid-template-columns:1fr;gap:25px}
  .gallery-hero p{justify-self:start}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:190px}
}
@media(max-width:600px){
  .gallery-hero{padding:120px 0 45px}
  .gallery-hero h1{font-size:66px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:145px;gap:8px}
  .gallery-tile{border-radius:16px}
  .gallery-tile.wide{grid-column:span 2}
  .gallery-tile.tall{grid-row:span 2}
  .gallery-lightbox{
    grid-template-columns:48px 1fr 48px;
    padding:16px 8px;
  }
  .gallery-lightbox-nav{width:42px;height:42px;font-size:18px}
  .gallery-lightbox-close{top:14px;right:14px;width:42px;height:42px}
  .gallery-lightbox-figure img{max-height:76vh;border-radius:15px}
}

/* =========================================================
   DJW FAQ ACCORDION REDESIGN
   ========================================================= */
.faq-item{
  border-top:1px solid rgba(255,255,255,.13);
  margin:0;
  background:transparent;
  transition:background .3s ease,border-color .3s ease;
}
.faq-item:last-child{border-bottom:1px solid rgba(255,255,255,.13)}
.faq-item[open]{
  background:linear-gradient(90deg,rgba(255,46,166,.065),rgba(36,216,255,.025),transparent 72%);
  border-color:rgba(255,46,166,.28);
}
.faq-item summary{
  display:grid;
  grid-template-columns:48px 1fr 42px;
  gap:16px;
  align-items:center;
  min-height:88px;
  padding:0 12px;
  cursor:pointer;
  list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-num{
  font:400 12px Anton,sans-serif;
  letter-spacing:1px;
  color:#696e7a;
}
.faq-question{
  font-size:20px;
  font-weight:700;
  letter-spacing:-.02em;
  color:#f4f5f8;
}
.faq-toggle{
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  display:grid;
  place-items:center;
  font-size:22px;
  line-height:1;
  color:var(--pink);
  transition:transform .3s ease,background .3s ease,border-color .3s ease;
}
.faq-item[open] .faq-toggle{
  transform:rotate(45deg);
  background:rgba(255,46,166,.12);
  border-color:rgba(255,46,166,.35);
}
.faq-item > p,
.faq-item > div:not(summary){
  margin:0;
  padding:0 70px 30px 76px;
  max-width:830px;
  color:#9ca2ae;
  font-size:13px;
  line-height:1.75;
}
@media(max-width:600px){
  .faq-item summary{
    grid-template-columns:34px 1fr 36px;
    gap:10px;
    min-height:76px;
    padding:0 4px;
  }
  .faq-question{font-size:16px}
  .faq-toggle{width:34px;height:34px}
  .faq-item > p,
  .faq-item > div:not(summary){
    padding:0 44px 24px 44px;
  }
}


/* =========================================================
   DJW FULL ARCADE PAGE
   ========================================================= */
.arcade-more-cta{
  grid-column:1/-1;
  margin-top:34px;
  padding:28px 30px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(135deg,rgba(255,46,166,.08),rgba(36,216,255,.05));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.arcade-more-cta h3{font:400 34px Anton,sans-serif;margin:6px 0 2px}
.arcade-more-cta p{color:var(--muted);margin:0;font-size:12px}

.games-page{background:#05060a}
.games-hero{
  min-height:78vh;
  display:flex;
  align-items:flex-end;
  padding:150px 0 80px;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 20%,rgba(36,216,255,.12),transparent 28%),
    radial-gradient(circle at 18% 72%,rgba(255,46,166,.13),transparent 34%),
    #05060a;
}
.games-hero::after{
  content:"INSERT COIN  ♥  ♠  ♦  ♣  INSERT COIN  ♥  ♠  ♦  ♣";
  position:absolute;inset:auto -2% 5% -2%;
  font:400 86px Anton,sans-serif;
  color:rgba(255,255,255,.018);
  white-space:nowrap;transform:rotate(-4deg);
}
.games-hero-grid{display:grid;grid-template-columns:1fr .38fr;gap:60px;align-items:end;position:relative;z-index:2}
.games-hero h1{font-size:clamp(82px,10vw,158px);line-height:.79;margin:14px 0 24px}
.games-hero p{max-width:540px;color:#a0a5b1;line-height:1.7}
.games-hero-badge{
  justify-self:end;width:245px;aspect-ratio:1;
  border-radius:50%;border:1px solid rgba(255,255,255,.14);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(8,10,16,.62);backdrop-filter:blur(16px);
  transform:rotate(7deg)
}
.games-hero-badge span{font:400 82px Anton,sans-serif;color:var(--pink);line-height:.8}
.games-hero-badge b{font:400 22px Anton,sans-serif;text-align:center;line-height:.95;margin:9px 0}
.games-hero-badge i{font-style:normal;font-size:7px;font-weight:900;letter-spacing:1.4px;color:#7f8490}

.games-select-section{padding:100px 0;background:#080a10}
.games-select-head{display:grid;grid-template-columns:1fr .6fr;gap:60px;align-items:end;margin-bottom:45px}
.games-select-head h2{font-size:clamp(62px,7vw,104px);line-height:.84;margin:12px 0 0}
.games-select-head p{color:var(--muted);line-height:1.7;max-width:440px;justify-self:end}
.games-cabinet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.game-cabinet{
  min-height:240px;border:1px solid rgba(255,255,255,.10);border-radius:23px;
  background:#0c0f17;color:#fff;padding:20px;text-align:left;cursor:pointer;
  display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden;
  transition:transform .28s ease,border-color .28s ease,background .28s ease;
}
.game-cabinet::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 18%,rgba(36,216,255,.10),transparent 32%);opacity:.7}
.game-cabinet:nth-child(even)::before{background:radial-gradient(circle at 82% 18%,rgba(255,46,166,.12),transparent 32%)}
.game-cabinet>*{position:relative;z-index:1}
.game-cabinet:hover,.game-cabinet.active{transform:translateY(-5px);border-color:rgba(255,46,166,.48);background:#10141f}
.game-cabinet.active{box-shadow:0 0 0 1px rgba(255,46,166,.10) inset}
.game-no{font:400 10px Anton,sans-serif;color:#646a76;letter-spacing:1px}
.game-emoji{font-size:44px;margin:30px 0 18px}
.game-cabinet strong{font:400 27px Anton,sans-serif;line-height:.95}
.game-cabinet small{color:#7d8390;font-size:9px;margin-top:6px}
.game-cabinet i{margin-top:auto;font-style:normal;font-size:8px;font-weight:900;letter-spacing:1px;color:var(--cyan)}

.games-stage-section{padding:70px 0 105px;background:#05060a}
.games-stage{border-radius:32px;border:1px solid rgba(255,255,255,.11);background:#090c13;overflow:hidden}
.full-game{display:none;padding:34px}
.full-game.active{display:block}
.full-game>header{display:grid;grid-template-columns:.4fr 1fr .8fr;gap:25px;align-items:end;padding:4px 2px 30px;border-bottom:1px solid rgba(255,255,255,.10)}
.full-game>header>span{font-size:8px;font-weight:900;letter-spacing:1.4px;color:var(--cyan)}
.full-game>header h2{font:400 clamp(38px,4vw,64px) Anton,sans-serif;line-height:.9;margin:0}
.full-game>header p{color:#8f95a2;font-size:11px;line-height:1.6;margin:0}
.full-game-board{margin-top:24px;min-height:480px;border-radius:24px;background:#05070d;border:1px solid rgba(255,255,255,.08);padding:24px;position:relative;overflow:hidden}
.game-hud{display:flex;justify-content:space-between;gap:20px;font-size:8px;font-weight:900;letter-spacing:1.4px;color:#747b89;position:relative;z-index:4}
.game-hud b{color:#fff;font-size:13px}
.game-message{text-align:center;color:#7e8491;font-size:9px;font-weight:900;letter-spacing:1.2px;margin-top:15px}
.big-game-button{
  display:block;margin:22px auto 0;border:0;border-radius:999px;padding:13px 24px;
  background:var(--pink);color:#fff;font-size:9px;font-weight:900;letter-spacing:1.1px;cursor:pointer
}

/* Punch */
.punch-full-board{text-align:center}
.full-punch-target{display:block;width:280px;height:310px;margin:25px auto 0;border:0;background:transparent;position:relative;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}
.full-punch-rope{position:absolute;top:0;left:50%;width:3px;height:75px;background:#4d5667;transform:translateX(-50%)}
.full-punch-bag{position:absolute;left:50%;top:72px;width:130px;height:180px;transform:translateX(-50%);transform-origin:50% 0;border-radius:52px 52px 40px 40px;background:linear-gradient(180deg,#1b2235 0 15%,#080c14 15% 81%,#17223b 81%);border:2px solid #02030a;box-shadow:0 25px 40px rgba(0,0,0,.5)}
.full-punch-bag::before,.full-punch-bag::after{content:"";position:absolute;left:0;right:0;height:5px;background:#5db2ff}.full-punch-bag::before{top:20px}.full-punch-bag::after{bottom:28px}
.full-punch-bag i{position:absolute;left:0;right:0;top:75px;font:400 30px Anton,sans-serif;font-style:normal;color:#62aff9}
.full-punch-bag b{position:absolute;left:0;right:0;top:41px;color:#fff;font-size:24px}
.full-punch-target.hit .full-punch-bag{animation:punchSwing .13s ease}
@keyframes punchSwing{50%{transform:translateX(-50%) rotate(14deg) translateY(-4px)}}

/* Reaction */
.reaction-full-target{
  width:min(650px,95%);height:320px;margin:55px auto 0;border-radius:28px;
  border:1px solid rgba(255,255,255,.12);background:#0b0e16;color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer
}
.reaction-full-target span{font-size:9px;letter-spacing:1.5px;font-weight:900;color:#7d8492}
.reaction-full-target strong{font:400 clamp(54px,7vw,98px) Anton,sans-serif;color:#5db1fb;margin-top:8px}
.reaction-full-target.waiting strong{color:#ffcf4a}
.reaction-full-target.go{background:#ff2ea6;border-color:#ff8bd0}.reaction-full-target.go span,.reaction-full-target.go strong{color:#fff}

/* Perfect stop */
.perfect-board{text-align:center;padding-top:85px}
.perfect-display{font:400 clamp(88px,11vw,160px) Anton,sans-serif;color:#5eb2ff;line-height:1}

/* Whack */
.whack-grid{width:min(650px,96%);margin:30px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.whack-hole{aspect-ratio:1.15;border:1px solid rgba(255,255,255,.09);border-radius:22px;background:#0c1019;position:relative;overflow:hidden;cursor:pointer}
.whack-hole::after{content:"";position:absolute;left:14%;right:14%;bottom:9%;height:21%;border-radius:50%;background:#03050a}
.whack-hole span{position:absolute;left:50%;bottom:-75%;transform:translateX(-50%);font-size:58px;transition:bottom .12s ease;z-index:2}
.whack-hole.active span{bottom:15%}
.whack-hole.bad span{filter:drop-shadow(0 0 12px rgba(255,46,166,.35))}

/* Fall */
.fall-board{text-align:center}
.fall-canvas{width:min(100%,700px);height:auto;aspect-ratio:700/520;display:block;margin:22px auto 0;border-radius:20px;border:1px solid rgba(255,255,255,.09);background:#05070d;touch-action:none}
.fall-controls{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:15px}
.fall-controls>button{min-width:54px;min-height:46px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#0d111b;color:#fff;font-weight:900;cursor:pointer}
.fall-controls .big-game-button{margin:0;background:var(--pink);border:0;border-radius:999px;padding:13px 24px}

/* Ball pop */
.ball-pop-arena{width:min(760px,100%);height:390px;margin:25px auto 0;border-radius:22px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,#08101c,#05070d);position:relative;overflow:hidden;touch-action:manipulation}
.pop-ball{position:absolute;border:0;border-radius:50%;cursor:pointer;box-shadow:inset -8px -10px 18px rgba(0,0,0,.26),inset 8px 7px 13px rgba(255,255,255,.2),0 9px 20px rgba(0,0,0,.3)}
.pop-ball.pink{background:radial-gradient(circle at 30% 25%,#ff9bd8,#ff2ea6 48%,#b30b6b)}
.pop-ball.blue{background:radial-gradient(circle at 30% 25%,#b5edff,#24d8ff 48%,#087da7)}
.pop-ball.gold{background:radial-gradient(circle at 30% 25%,#fff5b1,#ffcf35 48%,#b77d00)}

/* Hearts */
.hearts-arena{width:min(760px,100%);height:390px;margin:25px auto 0;border-radius:22px;border:1px solid rgba(255,255,255,.09);background:#060810;position:relative;overflow:hidden}
.falling-suit{position:absolute;border:0;background:transparent;color:#fff;font-size:44px;cursor:pointer;text-shadow:0 0 16px rgba(255,255,255,.12);animation:suitFall linear forwards}
.falling-suit.heart{color:#ff2ea6}
@keyframes suitFall{from{transform:translateY(-70px) rotate(0deg)}to{transform:translateY(470px) rotate(260deg)}}

/* Memory */
.memory-grid{width:min(720px,100%);margin:28px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.memory-card{aspect-ratio:1;border:1px solid rgba(255,255,255,.11);border-radius:18px;background:#0e121c;color:transparent;font-size:40px;cursor:pointer;transition:transform .28s ease,background .28s ease,color .28s ease}
.memory-card.flipped,.memory-card.matched{transform:rotateY(180deg);background:#151b29;color:#fff;border-color:rgba(36,216,255,.25)}
.memory-card.matched{background:rgba(255,46,166,.10);border-color:rgba(255,46,166,.34)}

.games-bottom-cta{padding:90px 0 110px;background:#080a10}
.games-bottom-cta .wrap{display:flex;align-items:end;justify-content:space-between;gap:30px}
.games-bottom-cta h2{font-size:clamp(62px,7vw,104px);line-height:.84;margin:12px 0 0}

@media(max-width:1050px){
  .games-cabinet-grid{grid-template-columns:repeat(2,1fr)}
  .games-hero-grid,.games-select-head{grid-template-columns:1fr}
  .games-hero-badge{justify-self:start}
  .full-game>header{grid-template-columns:1fr}
}
@media(max-width:650px){
  .arcade-more-cta{align-items:flex-start;flex-direction:column}
  .games-hero{min-height:auto;padding:125px 0 65px}
  .games-hero h1{font-size:72px}
  .games-hero-badge{width:180px}.games-hero-badge span{font-size:62px}
  .games-select-section{padding:70px 0}
  .games-select-head h2{font-size:62px}
  .games-cabinet-grid{grid-template-columns:1fr 1fr;gap:8px}
  .game-cabinet{min-height:185px;padding:15px;border-radius:17px}
  .game-emoji{font-size:34px;margin:20px 0 12px}
  .game-cabinet strong{font-size:20px}
  .full-game{padding:16px}
  .full-game-board{min-height:430px;padding:15px;border-radius:17px}
  .whack-grid{gap:8px}.whack-hole{border-radius:14px}.whack-hole span{font-size:42px}
  .ball-pop-arena,.hearts-arena{height:330px}
  .memory-grid{gap:7px}.memory-card{border-radius:12px;font-size:29px}
  .games-bottom-cta .wrap{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){
  .falling-suit{animation-duration:0s!important}
}


/* =========================================================
   DJW ARCADE V2 - GAME POLISH
   ========================================================= */

/* Give all game intros more room to breathe */
.full-game{
  padding:44px;
}
.full-game>header{
  grid-template-columns:160px minmax(300px,1.35fr) minmax(260px,.8fr);
  gap:42px;
  padding:8px 4px 40px;
  align-items:start;
}
.full-game>header>span{
  padding-top:8px;
  line-height:1.6;
}
.full-game>header h2{
  line-height:.96;
  letter-spacing:-.01em;
}
.full-game>header p{
  line-height:1.8;
  font-size:12px;
  max-width:430px;
}
.full-game-board{
  margin-top:34px;
}

/* Cabinet state labels */
.game-cabinet i{
  transition:color .2s ease, opacity .2s ease;
}
.game-cabinet.active i{
  color:var(--pink);
}
.game-cabinet.is-playing{
  border-color:rgba(36,216,255,.5);
  box-shadow:0 0 0 1px rgba(36,216,255,.08) inset,0 0 28px rgba(36,216,255,.05);
}
.game-cabinet.is-playing i{
  color:var(--cyan);
}

/* Whack-a-rabbit feedback */
.whack-hole.hit-good{
  box-shadow:0 0 0 2px rgba(36,216,255,.35) inset;
}
.whack-hole.hit-bad{
  box-shadow:0 0 0 2px rgba(255,46,166,.48) inset;
}
.whack-hole span{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

/* Rabbit Hole controls must behave like controls, not page gestures */
.fall-controls,
.fall-controls button,
.fall-canvas{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;
}
.fall-controls button{
  touch-action:none;
  overscroll-behavior:contain;
}
.fall-controls{
  touch-action:pan-x;
}
.fall-canvas{
  touch-action:none;
}
.fall-controls>button:not(.big-game-button){
  font-size:24px;
}

/* Penalty flash for Ball Pit Pop */
.ball-pop-arena.penalty{
  animation:ballPenaltyFlash .18s ease;
}
@keyframes ballPenaltyFlash{
  50%{box-shadow:inset 0 0 0 3px rgba(255,207,53,.72),inset 0 0 55px rgba(255,207,53,.16)}
}
.pop-ball{
  touch-action:manipulation;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

/* Queen of Hearts */
.hearts-arena{
  touch-action:manipulation;
}
.falling-suit{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;
}

@media(max-width:1050px){
  .full-game>header{
    grid-template-columns:1fr;
    gap:15px;
  }
  .full-game>header p{
    max-width:620px;
  }
}
@media(max-width:650px){
  .full-game{
    padding:19px;
  }
  .full-game>header{
    padding-bottom:28px;
    gap:12px;
  }
  .full-game>header h2{
    font-size:42px;
  }
  .full-game>header p{
    font-size:11px;
    line-height:1.75;
  }
  .full-game-board{
    margin-top:24px;
  }
}


/* =========================================================
   DJW ARCADE V3 - LAYOUT + NINTH GAME
   ========================================================= */

/* Completely separate game intro copy from the game HUD */
.full-game{
  padding:46px;
}
.full-game > header{
  display:block !important;
  padding:4px 4px 38px !important;
  margin:0 0 30px !important;
  border-bottom:1px solid rgba(255,255,255,.11);
}
.full-game > header > span{
  display:block;
  padding:0 !important;
  margin:0 0 13px;
  font-size:8px;
  line-height:1.3;
  font-weight:900;
  letter-spacing:1.5px;
  color:var(--cyan);
}
.full-game > header h2{
  display:block;
  max-width:880px;
  margin:0 0 15px !important;
  font:400 clamp(46px,5vw,76px) Anton,sans-serif;
  line-height:.94 !important;
  letter-spacing:0 !important;
}
.full-game > header p{
  display:block;
  width:auto;
  max-width:680px !important;
  margin:0 !important;
  color:#989eaa;
  font-size:12px !important;
  line-height:1.8 !important;
}
.full-game-board{
  margin-top:0 !important;
  padding:0 24px 26px;
}
.game-hud{
  position:relative !important;
  inset:auto !important;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  min-height:58px;
  margin:0 -24px 24px;
  padding:0 24px;
  border-bottom:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.018);
  z-index:4;
}
.game-hud span{
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1;
}
.game-hud b{
  display:inline-block;
  line-height:1;
}

/* Whack-a-Rabbit gentler V3 pacing */
.whack-hole span{
  transition:bottom .16s ease;
}

/* Ball Pit must behave like a game surface, never a scroll gesture */
.ball-pop-arena,
.ball-pop-arena *{
  touch-action:none !important;
  overscroll-behavior:contain;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;
}

/* Queen of Hearts colours are intentionally random, not suit-coded */
.falling-suit.suit-pink{color:#ff2ea6}
.falling-suit.suit-blue{color:#24d8ff}
.falling-suit.suit-white{color:#f7f7fb}

/* Neon Snake */
.snake-board{
  text-align:center;
}
.snake-canvas{
  display:block;
  width:min(100%,600px);
  height:auto;
  aspect-ratio:1;
  margin:24px auto 0;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.10);
  background:#04060b;
  image-rendering:pixelated;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.snake-controls{
  width:min(330px,100%);
  margin:18px auto 0;
  display:grid;
  justify-items:center;
  gap:8px;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.snake-controls > div{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.snake-controls button{
  width:54px;
  height:48px;
  margin:0;
  padding:0;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:#0d111b;
  color:#fff;
  font-size:22px;
  font-weight:900;
  cursor:pointer;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.snake-controls .big-game-button{
  width:auto;
  min-width:108px;
  padding:0 18px;
  border:0;
  border-radius:999px;
  background:var(--pink);
  font-size:9px;
  letter-spacing:1px;
}

@media(max-width:650px){
  .full-game{
    padding:19px;
  }
  .full-game > header{
    padding:2px 2px 28px !important;
    margin-bottom:20px !important;
  }
  .full-game > header h2{
    font-size:44px !important;
    margin-bottom:12px !important;
  }
  .full-game > header p{
    font-size:11px !important;
    line-height:1.75 !important;
  }
  .full-game-board{
    padding:0 14px 20px;
  }
  .game-hud{
    margin:0 -14px 18px;
    padding:0 14px;
    min-height:54px;
  }
}


/* =========================================================
   DJW ARCADE V4 - HARD HEADER/HUD RESET
   ========================================================= */

/* Kill any old grid/flex layout inherited from previous game-header rules */
.games-page .full-game{
  display:none;
  padding:48px 48px 54px !important;
}
.games-page .full-game.active{
  display:block;
}

.games-page .full-game > header{
  display:block !important;
  position:relative !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 0 34px !important;
  padding:0 0 34px !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  grid-template-columns:none !important;
  gap:0 !important;
  align-items:initial !important;
}

.games-page .full-game > header > span,
.games-page .full-game > header > h2,
.games-page .full-game > header > p{
  position:static !important;
  float:none !important;
  clear:both !important;
  width:auto !important;
  max-width:none !important;
  transform:none !important;
}

.games-page .full-game > header > span{
  display:block !important;
  margin:0 0 16px !important;
  padding:0 !important;
  font-size:8px !important;
  line-height:1.4 !important;
  letter-spacing:1.5px !important;
}

.games-page .full-game > header > h2{
  display:block !important;
  margin:0 0 18px !important;
  padding:0 !important;
  max-width:920px !important;
  font:400 clamp(46px,5vw,76px) Anton,sans-serif !important;
  line-height:.98 !important;
  letter-spacing:0 !important;
}

.games-page .full-game > header > p{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  max-width:720px !important;
  font-size:12px !important;
  line-height:1.85 !important;
  color:#9ba1ad !important;
}

.games-page .full-game-board{
  position:relative !important;
  display:block !important;
  margin:0 !important;
  padding:0 24px 28px !important;
  min-height:480px;
}

.games-page .full-game-board > .game-hud{
  position:relative !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
  width:auto !important;
  min-height:62px !important;
  margin:0 -24px 26px !important;
  padding:0 24px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  border-bottom:1px solid rgba(255,255,255,.09) !important;
  background:rgba(255,255,255,.018) !important;
  z-index:5 !important;
}

.games-page .full-game-board > .game-hud span{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap !important;
}

.games-page .full-game-board > .game-hud b{
  display:inline !important;
  margin:0 !important;
  padding:0 !important;
}

/* Hearts is a game surface, not a page-scrolling surface */
.hearts-arena,
.hearts-arena *{
  touch-action:none !important;
  overscroll-behavior:contain !important;
  -webkit-user-select:none !important;
  user-select:none !important;
  -webkit-touch-callout:none !important;
  -webkit-tap-highlight-color:transparent !important;
}

/* Snake death dissolve */
.snake-canvas.snake-dead{
  animation:snakeDeathPulse .42s ease;
}
@keyframes snakeDeathPulse{
  0%{filter:none}
  45%{filter:brightness(1.65) saturate(1.35)}
  100%{filter:none}
}

@media(max-width:650px){
  .games-page .full-game{
    padding:22px 18px 34px !important;
  }
  .games-page .full-game > header{
    margin-bottom:24px !important;
    padding-bottom:26px !important;
  }
  .games-page .full-game > header > span{
    margin-bottom:12px !important;
  }
  .games-page .full-game > header > h2{
    margin-bottom:14px !important;
    font-size:43px !important;
    line-height:1 !important;
  }
  .games-page .full-game > header > p{
    font-size:11px !important;
    line-height:1.75 !important;
  }
  .games-page .full-game-board{
    padding:0 14px 22px !important;
  }
  .games-page .full-game-board > .game-hud{
    min-height:56px !important;
    margin:0 -14px 20px !important;
    padding:0 14px !important;
    gap:12px !important;
  }
}


/* Snake collision feedback */
.snake-canvas.snake-wall-hit{
  animation:snakeWallHit .22s ease;
}
.snake-canvas.snake-self-hit{
  animation:snakeSelfHit .22s ease;
}
@keyframes snakeWallHit{
  0%{box-shadow:0 0 0 rgba(255,46,166,0);transform:translateX(0)}
  35%{box-shadow:0 0 0 3px rgba(255,46,166,.55) inset,0 0 30px rgba(255,46,166,.18);transform:translateX(-3px)}
  70%{transform:translateX(3px)}
  100%{transform:translateX(0)}
}
@keyframes snakeSelfHit{
  0%{box-shadow:0 0 0 rgba(36,216,255,0)}
  50%{box-shadow:0 0 0 3px rgba(36,216,255,.45) inset,0 0 30px rgba(36,216,255,.15)}
  100%{box-shadow:0 0 0 rgba(36,216,255,0)}
}


/* =========================================================
   DJW ARCADE LIVE LEADERBOARDS
   ========================================================= */
.games-live-board{
  margin-top:22px;
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:14px;
}
.games-score-submit,
.games-board-panel{
  border:1px solid rgba(255,255,255,.10);
  border-radius:25px;
  background:#090c13;
}
.games-score-submit{
  padding:27px;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.games-score-submit h3{
  margin:12px 0 10px;
  font:400 38px Anton,sans-serif;
  line-height:.95;
}
.games-score-submit > p{
  margin:0;
  color:#8e95a2;
  font-size:11px;
  line-height:1.65;
  max-width:390px;
}
.games-result-score{
  margin:28px 0 24px;
  padding:18px 20px;
  border-radius:17px;
  border:1px solid rgba(36,216,255,.14);
  background:linear-gradient(135deg,rgba(36,216,255,.07),rgba(255,46,166,.035));
  font:400 clamp(40px,4vw,62px) Anton,sans-serif;
  line-height:1;
  color:var(--cyan);
}
.games-score-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px;
  margin-top:auto;
}
.games-score-form label{
  min-width:0;
}
.games-score-form label span{
  display:block;
  margin-bottom:7px;
  font-size:7px;
  font-weight:900;
  letter-spacing:1px;
  color:#7d8491;
  text-transform:uppercase;
}
.games-score-form input{
  width:100%;
  min-height:46px;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.13);
  background:#05070d;
  color:#fff;
  padding:0 13px;
  outline:none;
  font-size:16px;
}
.games-score-form input:focus{
  border-color:rgba(36,216,255,.55);
}
.games-score-form .btn{
  align-self:end;
  min-height:46px;
  white-space:nowrap;
}
.games-score-form .btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.games-score-rule{
  display:block;
  margin-top:13px;
  color:#656c79;
  font-size:8px;
  line-height:1.5;
}
.games-board-status{
  margin-top:15px;
  font-size:8px;
  line-height:1.5;
  color:#69717e;
}
.games-board-status.error{color:#ff7ebf}
.games-board-status.ok{color:#6fdaef}

.games-board-panel{
  padding:25px;
  min-width:0;
}
.games-board-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding-bottom:19px;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.games-board-head h3{
  margin:8px 0 4px;
  font:400 34px Anton,sans-serif;
  line-height:.95;
}
.games-board-head p{
  margin:0;
  color:#727986;
  font-size:9px;
}
.games-board-list{
  list-style:none;
  padding:0;
  margin:0;
}
.games-board-list li{
  min-height:57px;
  display:grid;
  grid-template-columns:38px 1fr auto;
  gap:13px;
  align-items:center;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.games-board-list li:nth-child(1) .games-board-rank{background:#f2cf63;color:#111}
.games-board-list li:nth-child(2) .games-board-rank{background:#c7ccd4;color:#111}
.games-board-list li:nth-child(3) .games-board-rank{background:#ba8056;color:#111}
.games-board-rank{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#151a24;
  color:#777e8b;
  font-size:9px;
  font-weight:900;
}
.games-board-player{
  min-width:0;
}
.games-board-player b{
  display:block;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:12px;
}
.games-board-player small{
  display:block;
  margin-top:2px;
  color:#626a77;
  font-size:7px;
  letter-spacing:.5px;
}
.games-board-score{
  color:var(--cyan);
  font:400 20px Anton,sans-serif;
  white-space:nowrap;
}
.games-board-empty{
  min-height:220px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#727986;
}
.games-board-empty span{font-size:38px}
.games-board-empty p{font-size:10px;line-height:1.5}
.games-board-updated{
  animation:gamesBoardPop .45s ease;
}
@keyframes gamesBoardPop{
  0%{transform:scale(.98);opacity:.65}
  100%{transform:scale(1);opacity:1}
}

@media(max-width:900px){
  .games-live-board{grid-template-columns:1fr}
}
@media(max-width:600px){
  .games-score-submit,.games-board-panel{padding:18px;border-radius:18px}
  .games-score-form{grid-template-columns:1fr}
  .games-score-form .btn{width:100%}
  .games-board-list li{grid-template-columns:34px 1fr auto;gap:9px}
  .games-board-score{font-size:17px}
}
