/* ==========================================================================
   THE ARENA VR LIMITED — brand stylesheet
   Colours, type and spacing follow "THE ARENA BRANDING.pdf"
   Core:      Orange #FC4F15 · Arena Black #1B1B1D · Cyan #20E9F9 · Cream #FEF4DB
   Secondary: Play Yellow #FFDE15 · Electric Blue #2424E6 · Sky Blue #B1DFEC
   Type:      Satoshi (primary) · Poppins (secondary / display)
   ========================================================================== */

/* ---------- tokens ---------- */
:root{
  /* brand core */
  --orange:#FC4F15;
  --black:#1B1B1D;
  --cyan:#20E9F9;
  --cream:#FEF4DB;
  /* brand secondary */
  --yellow:#FFDE15;
  --blue:#2424E6;
  --sky:#B1DFEC;

  /* surfaces */
  --bg:#0D0D0F;
  --bg-2:#141416;
  --surface:#1B1B1D;
  --surface-2:#232327;
  --line:rgba(254,244,219,.12);
  --line-strong:rgba(254,244,219,.22);

  /* text */
  --ink:#FEF4DB;
  --ink-2:rgba(254,244,219,.64);
  --ink-3:rgba(254,244,219,.42);

  /* type */
  --sans:'Satoshi','Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --display:'Poppins','Satoshi',system-ui,sans-serif;

  /* layout */
  --pad:clamp(20px,5vw,64px);
  --max:1320px;
  --r:18px;
  --r-lg:28px;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink-2);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4,p,li,dd,dt,span{overflow-wrap:break-word}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--orange);color:#fff}

h1,h2,h3,h4{
  font-family:var(--display);
  color:var(--ink);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.03em;
  margin:0;
  text-wrap:balance;
}
p{margin:0}

.shell{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.section{padding-block:clamp(72px,10vw,140px);position:relative}
/* keep anchor jumps clear of the fixed header */
section[id]{scroll-margin-top:96px}

/* ---------- shared bits ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:12px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--orange);
  display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{
  content:'';width:26px;height:1px;background:currentColor;opacity:.6;
}
.eyebrow.cy{color:var(--cyan)}
.h-xl{font-size:clamp(44px,7.6vw,104px);text-transform:uppercase}
.h-lg{font-size:clamp(34px,5.2vw,68px);text-transform:uppercase}
.h-md{font-size:clamp(24px,3vw,38px)}
.lead{font-size:clamp(16px,1.35vw,19px);color:var(--ink-2);max-width:60ch}
.muted{color:var(--ink-3)}
.mono{
  font-family:var(--sans);
  font-size:11.5px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);
}

/* buttons */
.btn{
  --bh:52px;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:var(--bh);padding:0 26px;border-radius:999px;
  font-family:var(--sans);font-weight:700;font-size:14.5px;letter-spacing:.02em;
  border:1px solid transparent;white-space:nowrap;
  transition:transform .35s var(--ease-out),background .25s,color .25s,border-color .25s,box-shadow .35s;
  will-change:transform;overflow:hidden;
}
.btn span{position:relative;z-index:2}
.btn svg{position:relative;z-index:2;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}

.btn-primary{background:var(--orange);color:#fff;box-shadow:0 10px 34px -12px rgba(252,79,21,.85)}
.btn-primary:hover{box-shadow:0 18px 44px -12px rgba(252,79,21,.95)}
.btn-primary::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.45),transparent 70%);
  transform:translateX(-120%);transition:transform .7s var(--ease-out);
}
.btn-primary:hover::after{transform:translateX(120%)}

.btn-ghost{border-color:var(--line-strong);color:var(--ink);background:rgba(254,244,219,.03)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(254,244,219,.09)}

.btn-cyan{background:var(--cyan);color:#06282C;box-shadow:0 10px 34px -14px rgba(32,233,249,.9)}
.btn-yellow{background:var(--yellow);color:#2A2400;box-shadow:0 10px 34px -14px rgba(255,222,21,.8)}
.btn-sm{--bh:42px;padding:0 20px;font-size:13px}
.btn-lg{--bh:60px;padding:0 34px;font-size:16px}
.btn-block{width:100%}
.btn[disabled]{opacity:.42;pointer-events:none}

/* pill / tag */
.tag{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 13px;border-radius:999px;
  border:1px solid var(--line);background:rgba(254,244,219,.04);
  font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);
}
.tag .dot{width:6px;height:6px;border-radius:50%;background:var(--orange)}
.tag.live .dot{background:#3BE07A;box-shadow:0 0 0 0 rgba(59,224,122,.7);animation:ping 2s infinite}
@keyframes ping{
  70%{box-shadow:0 0 0 9px rgba(59,224,122,0)}
  100%{box-shadow:0 0 0 0 rgba(59,224,122,0)}
}

/* ==========================================================================
   PRELOADER
   ========================================================================== */
#preloader{
  position:fixed;inset:0;z-index:200;
  display:grid;place-items:center;
  background:var(--bg);
  transition:opacity .7s var(--ease),visibility .7s;
}
#preloader.done{opacity:0;visibility:hidden}
.pl-inner{display:grid;justify-items:center;gap:22px}
.pl-hex{width:88px;height:88px;animation:plspin 3.4s linear infinite}
.pl-hex path{fill:none;stroke-width:7;stroke-linejoin:round}
.pl-hex .o{stroke:var(--ink);stroke-dasharray:640;stroke-dashoffset:640;animation:draw 1.6s var(--ease-out) forwards}
.pl-hex .m{stroke:#6E6E70;stroke-dasharray:420;stroke-dashoffset:420;animation:draw 1.6s .18s var(--ease-out) forwards}
.pl-hex .i{fill:var(--orange);stroke:none;opacity:0;animation:pop .6s .9s var(--ease-out) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes plspin{to{transform:rotate(360deg)}}
.pl-bar{width:170px;height:2px;background:rgba(254,244,219,.14);border-radius:2px;overflow:hidden}
.pl-bar i{display:block;height:100%;width:0;background:var(--orange);transition:width .25s linear}
.pl-txt{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-3)}

/* ==========================================================================
   NAV
   ========================================================================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:120;
  transition:background .4s var(--ease),border-color .4s,backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
.nav.stuck{
  background:rgba(13,13,15,.78);
  backdrop-filter:blur(18px) saturate(1.3);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);
  border-bottom-color:var(--line);
}
.nav-in{
  max-width:var(--max);margin-inline:auto;
  padding:16px max(var(--pad),env(safe-area-inset-left)) 16px max(var(--pad),env(safe-area-inset-right));
  display:flex;align-items:center;gap:26px;
}
.brand{display:flex;align-items:center;gap:12px;flex:none}
/* logo files are trimmed to content, so this height is the real logo height */
.brand img{height:clamp(38px,4.4vw,54px);width:auto;transition:transform .4s var(--ease-out)}
.brand:hover img{transform:scale(1.05)}
.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav-links a{
  position:relative;padding:9px 15px;border-radius:999px;
  font-size:14px;font-weight:600;color:var(--ink-2);
  transition:color .25s,background .25s;
}
.nav-links a:hover{color:var(--ink);background:rgba(254,244,219,.06)}
.nav-cta{display:flex;align-items:center;gap:10px;flex:none;margin-left:auto}
.nav-phone{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap}
.nav-phone small{display:block;font-size:10.5px;font-weight:600;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase}

.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;place-items:center}
.burger i{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.burger i+i{margin-top:5px}
.nav.open .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .burger i:nth-child(2){opacity:0}
.nav.open .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.drawer{
  position:fixed;inset:0;z-index:110;
  background:var(--bg);
  padding:100px var(--pad) 40px;
  display:grid;align-content:start;gap:6px;
  transform:translateY(-101%);transition:transform .6s var(--ease-out);
  overflow-y:auto;
}
.nav.open ~ .drawer,.drawer.open{transform:translateY(0)}
.drawer > a{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  font-family:var(--display);font-size:19px;font-weight:700;
  letter-spacing:-.01em;color:var(--ink);
  padding:15px 2px;border-bottom:1px solid var(--line);
  transition:color .2s,padding-left .25s var(--ease-out);
}
.drawer > a::after{
  content:'';width:7px;height:7px;flex:none;
  border-right:2px solid var(--ink-3);border-top:2px solid var(--ink-3);
  transform:rotate(45deg);transition:border-color .2s;
}
.drawer > a:hover,.drawer > a:active{color:var(--orange);padding-left:8px}
.drawer > a:hover::after,.drawer > a:active::after{border-color:var(--orange)}
.drawer .drawer-foot{margin-top:24px;display:grid;gap:10px}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:center;
  padding-top:120px;padding-bottom:60px;
  overflow:hidden;
}
#hexfield{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.85}
.hero-glow{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero-glow i{
  position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;
  animation:drift 18s ease-in-out infinite alternate;
}
.hero-glow .g1{width:46vw;height:46vw;background:rgba(252,79,21,.42);top:-12%;left:-8%}
.hero-glow .g2{width:38vw;height:38vw;background:rgba(32,233,249,.26);bottom:-14%;right:-6%;animation-delay:-6s}
.hero-glow .g3{width:26vw;height:26vw;background:rgba(36,36,230,.24);top:40%;right:26%;animation-delay:-11s}
@keyframes drift{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(4vw,-4vh,0) scale(1.18)}
}
.hero::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(13,13,15,.55) 0%,rgba(13,13,15,0) 28%,rgba(13,13,15,.35) 72%,var(--bg) 100%);
}
.hero-in{position:relative;z-index:3;width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(30px,5vw,70px);align-items:center}
.hero-grid > *{min-width:0}

.hero h1{margin-top:20px}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line > span{display:block;transform:translateY(105%);animation:riseIn .95s var(--ease-out) forwards}
.hero h1 .line:nth-child(1) > span{animation-delay:.15s}
.hero h1 .line:nth-child(2) > span{animation-delay:.27s}
.hero h1 .line:nth-child(3) > span{animation-delay:.39s}
@keyframes riseIn{to{transform:translateY(0)}}
.grad-fire{
  background:linear-gradient(96deg,var(--orange) 0%,var(--yellow) 48%,var(--orange) 100%);
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:slide 7s linear infinite;
}
@keyframes slide{to{background-position:220% 0}}
.outline-txt{
  color:transparent;-webkit-text-stroke:2px var(--ink);
}
.hero-sub{margin-top:26px;max-width:52ch;font-size:clamp(15.5px,1.3vw,18.5px)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-fade{opacity:0;transform:translateY(24px);animation:fadeUp .9s .62s var(--ease-out) forwards}
.hero-fade.d2{animation-delay:.74s}
.hero-fade.d3{animation-delay:.86s}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}

.hero-stats{display:flex;flex-wrap:wrap;gap:28px;margin-top:44px;padding-top:28px;border-top:1px solid var(--line)}
.hero-stats div b{
  display:block;font-family:var(--display);font-size:clamp(26px,3vw,38px);font-weight:800;
  color:var(--ink);line-height:1;letter-spacing:-.03em;
}
.hero-stats div span{font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}

/* hero visual — animated headset / hex stack */
.hero-art{position:relative;aspect-ratio:1/1;display:grid;place-items:center;animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-18px)}}
.hero-art .ring{
  position:absolute;border:1px solid var(--line-strong);border-radius:50%;
  animation:spin 40s linear infinite;
}
.hero-art .ring:nth-child(1){inset:2%;border-style:dashed}
.hero-art .ring:nth-child(2){inset:13%;animation-duration:28s;animation-direction:reverse;border-color:rgba(32,233,249,.28)}
.hero-art .ring:nth-child(3){inset:24%;animation-duration:52s;border-color:rgba(252,79,21,.3)}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-art .core{
  position:relative;width:62%;aspect-ratio:1/1;
  display:grid;place-items:center;
}
.hero-art .core img{width:100%;filter:drop-shadow(0 26px 70px rgba(252,79,21,.5))}
.hero-art .orb{
  position:absolute;width:12px;height:12px;border-radius:50%;background:var(--orange);
  box-shadow:0 0 18px 4px rgba(252,79,21,.7);
  offset-path:circle(42% at 50% 50%);animation:orbit 9s linear infinite;
}
.hero-art .orb.c{background:var(--cyan);box-shadow:0 0 18px 4px rgba(32,233,249,.7);animation-duration:13s;animation-delay:-4s}
.hero-art .orb.y{background:var(--yellow);box-shadow:0 0 18px 4px rgba(255,222,21,.6);animation-duration:17s;animation-delay:-9s}
@keyframes orbit{to{offset-distance:100%}}

.scroll-cue{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:4;
  display:grid;justify-items:center;gap:9px;
}
.scroll-cue span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-3)}
.scroll-cue i{width:1px;height:44px;background:linear-gradient(var(--orange),transparent);animation:cue 2s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ==========================================================================
   MARQUEE
   ========================================================================== */
.marquee{
  border-block:1px solid var(--line);
  background:var(--orange);
  overflow:hidden;padding:14px 0;
  transform:rotate(-1.2deg) scale(1.03);
}
.marquee.alt{background:var(--black);transform:rotate(1.2deg) scale(1.03);margin-top:-46px;position:relative;z-index:2}
.marquee-track{display:flex;width:max-content;animation:march 26s linear infinite}
.marquee.alt .marquee-track{animation-duration:34s;animation-direction:reverse}
.marquee-track span{
  font-family:var(--display);font-weight:800;font-size:clamp(20px,2.4vw,30px);
  text-transform:uppercase;letter-spacing:-.02em;color:#fff;
  padding-inline:22px;display:flex;align-items:center;gap:22px;white-space:nowrap;
}
.marquee.alt .marquee-track span{color:var(--ink)}
.marquee-track span::after{content:'';width:9px;height:9px;background:var(--black);transform:rotate(45deg);flex:none}
.marquee.alt .marquee-track span::after{background:var(--orange)}
@keyframes march{to{transform:translateX(-50%)}}

/* ==========================================================================
   SECTION HEAD
   ========================================================================== */
.sec-head{display:grid;gap:16px;max-width:66ch;margin-bottom:clamp(34px,4vw,58px)}
.sec-head.row{
  max-width:none;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;
}
@media(max-width:820px){.sec-head.row{grid-template-columns:1fr}}

/* ==========================================================================
   EXPERIENCES
   ========================================================================== */
.zones{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.zone{
  position:relative;grid-column:span 2;
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--surface);overflow:hidden;
  min-height:390px;display:flex;flex-direction:column;
  transition:border-color .4s,transform .5s var(--ease-out);
  isolation:isolate;
}
.zone:nth-child(1),.zone:nth-child(2){grid-column:span 3;min-height:440px}
.zone:hover{border-color:var(--line-strong);transform:translateY(-5px)}
.zone-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.zone-media img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.06);transition:transform 1.1s var(--ease-out),filter .6s;
  filter:saturate(1.05) contrast(1.05);
}
.zone:hover .zone-media img{transform:scale(1.15)}
.zone-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,13,15,.28) 0%,rgba(13,13,15,.72) 52%,rgba(13,13,15,.95) 100%);
}
.zone-fallback{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 90% at 20% 0%,rgba(252,79,21,.34),transparent 60%),
    radial-gradient(110% 80% at 90% 100%,rgba(32,233,249,.24),transparent 62%),
    var(--surface);
}
.zone-body{position:relative;z-index:2;margin-top:auto;padding:clamp(20px,2.4vw,30px);display:grid;gap:12px}
.zone-num{
  position:absolute;top:20px;right:22px;z-index:2;
  font-family:var(--display);font-size:56px;font-weight:800;line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(254,244,219,.28);
}
.zone h3{font-size:clamp(22px,2.4vw,30px);text-transform:uppercase}
.zone p{font-size:14.5px;color:var(--ink-2);max-width:44ch}
.zone-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.zone-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:8px;flex-wrap:wrap}
.zone-price{font-family:var(--display);font-weight:800;color:var(--ink);font-size:19px;letter-spacing:-.02em}
.zone-price small{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
@media(max-width:1020px){
  .zones{grid-template-columns:repeat(4,minmax(0,1fr))}
  .zone,.zone:nth-child(1),.zone:nth-child(2){grid-column:span 2}
}
@media(max-width:680px){
  .zones{grid-template-columns:minmax(0,1fr)}
  .zone,.zone:nth-child(1),.zone:nth-child(2){grid-column:span 1;min-height:330px}
}

/* ==========================================================================
   GAME PICKER (index preview)
   ========================================================================== */
.picker{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.picker-tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
.picker-tabs::-webkit-scrollbar{display:none}
.picker-tabs button{
  position:relative;flex:none;padding:17px 22px;
  font-size:13.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-3);white-space:nowrap;transition:color .25s;
}
.picker-tabs button::after{
  content:'';position:absolute;left:16px;right:16px;bottom:-1px;height:2px;
  background:var(--orange);transform:scaleX(0);transition:transform .4s var(--ease-out);
}
.picker-tabs button:hover{color:var(--ink-2)}
.picker-tabs button[aria-selected="true"]{color:var(--ink)}
.picker-tabs button[aria-selected="true"]::after{transform:scaleX(1)}
.picker-panel{padding:clamp(20px,2.6vw,32px);display:none}
.picker-panel.on{display:block;animation:fadeUp .5s var(--ease-out) both}
.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.game-chip{
  display:flex;align-items:center;gap:11px;
  padding:13px 15px;border:1px solid var(--line);border-radius:14px;
  background:rgba(254,244,219,.02);
  font-size:14px;font-weight:600;color:var(--ink-2);
  transition:border-color .3s,background .3s,transform .3s var(--ease-out),color .3s;
}
.game-chip:hover{border-color:var(--orange);color:var(--ink);background:rgba(252,79,21,.09);transform:translateY(-3px)}
.game-chip .hex{width:9px;height:10px;background:var(--orange);flex:none;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.game-chip.cy .hex{background:var(--cyan)}
.game-chip.ye .hex{background:var(--yellow)}

/* ==========================================================================
   EVENTS
   ========================================================================== */
.events{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
@media(max-width:900px){.events{grid-template-columns:minmax(0,1fr)}}
.event{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  padding:clamp(26px,3.4vw,44px);
  border:1px solid var(--line);
  display:grid;gap:18px;align-content:start;
  isolation:isolate;
}
.event::before{
  content:'';position:absolute;inset:0;z-index:-2;
  background:var(--surface);
}
.event::after{
  content:'';position:absolute;z-index:-1;
  width:340px;height:340px;border-radius:50%;filter:blur(80px);opacity:.42;
  top:-130px;right:-90px;
  transition:transform .8s var(--ease-out);
}
.event.fifa::after{background:var(--orange)}
.event.karaoke::after{background:var(--blue)}
.event:hover::after{transform:scale(1.35) translate(-14px,20px)}
.event h3{font-size:clamp(28px,3.4vw,46px);text-transform:uppercase}
.event .when{display:flex;flex-wrap:wrap;gap:8px}
.event p{font-size:15px;max-width:48ch}

.countdown{display:flex;gap:10px;flex-wrap:wrap}
.cd-cell{
  min-width:74px;padding:12px 14px;border-radius:14px;
  border:1px solid var(--line-strong);background:rgba(13,13,15,.45);
  text-align:center;
}
.cd-cell b{
  display:block;font-family:var(--display);font-size:26px;font-weight:800;color:var(--ink);
  line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.cd-cell span{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.event-list{display:grid;gap:9px;margin-top:2px}
.event-list li{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--ink-2);list-style:none}
.event-list li::before{content:'';width:8px;height:9px;margin-top:7px;flex:none;background:currentColor;opacity:.55;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.event-list{padding:0;margin:0}

/* ==========================================================================
   STEPS
   ========================================================================== */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:s}
@media(max-width:820px){.steps{grid-template-columns:minmax(0,1fr)}}
.step{
  position:relative;padding:clamp(24px,2.6vw,34px);
  border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);
  display:grid;gap:12px;align-content:start;counter-increment:s;
  transition:border-color .4s,background .4s;
}
.step:hover{border-color:var(--line-strong);background:var(--surface-2)}
.step::before{
  content:'0' counter(s);
  font-family:var(--display);font-size:14px;font-weight:800;letter-spacing:.1em;
  color:var(--orange);
}
.step h3{font-size:21px}
.step p{font-size:14.5px}

/* ==========================================================================
   VISIT
   ========================================================================== */
.visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,56px);align-items:center}
@media(max-width:900px){.visit{grid-template-columns:minmax(0,1fr)}}
.info-rows{display:grid;gap:2px;margin-top:26px}
.info-row{
  display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:start;
  padding:16px 0;border-top:1px solid var(--line);
}
.info-row dt{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0}
.info-row dd{margin:0;font-size:15.5px;color:var(--ink);font-weight:500}
.info-row dd a:hover{color:var(--orange)}
@media(max-width:560px){.info-row{grid-template-columns:1fr;gap:5px}}
.map-card{
  position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  aspect-ratio:4/3.4;background:var(--surface);
}
.map-card iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.86) hue-rotate(180deg);opacity:.86}
.map-badge{
  position:absolute;left:16px;bottom:16px;right:16px;z-index:2;
  padding:15px 18px;border-radius:16px;
  background:rgba(13,13,15,.86);backdrop-filter:blur(14px);
  border:1px solid var(--line-strong);
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.map-badge b{color:var(--ink);font-size:14.5px;font-weight:700}
.map-badge span{font-size:12.5px;color:var(--ink-3)}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{border-top:1px solid var(--line);background:var(--bg-2);padding-block:clamp(48px,6vw,80px) 30px}
.foot-grid{display:grid;grid-template-columns:1.4fr minmax(0,1fr) minmax(0,1fr) 1.2fr;gap:34px}
@media(max-width:900px){.foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:560px){.foot-grid{grid-template-columns:minmax(0,1fr)}}
.foot-grid h4{font-size:12px;font-family:var(--sans);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-bottom:15px}
.foot-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.foot-grid a{font-size:14.5px;color:var(--ink-2);transition:color .25s}
.foot-grid a:hover{color:var(--orange)}
.foot-brand img{height:clamp(64px,7vw,88px);width:auto;margin-bottom:18px}
.foot-bottom{
  margin-top:44px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:12.5px;color:var(--ink-3);
}
.socials{display:flex;gap:9px}
.socials a{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--line);
  display:grid;place-items:center;transition:border-color .3s,background .3s,transform .3s var(--ease-out);
}
.socials a:hover{border-color:var(--orange);background:rgba(252,79,21,.12);transform:translateY(-3px)}
.socials svg{width:17px;height:17px;fill:currentColor}

/* floating whatsapp */
.wa-float{
  position:fixed;right:18px;bottom:18px;z-index:90;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#062B14;display:grid;place-items:center;
  box-shadow:0 12px 34px -8px rgba(37,211,102,.6);
  transition:transform .35s var(--ease-out);
}
.wa-float:hover{transform:scale(1.1) translateY(-2px)}
.wa-float svg{width:28px;height:28px;fill:currentColor}

/* ==========================================================================
   REVEAL
   ========================================================================== */
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out)}
[data-reveal].in{opacity:1;transform:none}

/* ==========================================================================
   BOOKING PAGE
   ========================================================================== */
/* header band */
.book-page{position:relative}
.book-top{
  position:relative;overflow:hidden;
  padding:clamp(112px,13vw,150px) 0 clamp(30px,4vw,44px);
  border-bottom:1px solid var(--line);
}
.book-top #hexfield{opacity:.55}
.book-top .hero-glow i{opacity:.3}
.book-top::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(13,13,15,.5),rgba(13,13,15,0) 45%,var(--bg));
}
.book-top-in{position:relative;z-index:2;display:grid;gap:16px;justify-items:start}
.book-top-in h1{margin:2px 0 0}
.book-top-in .lead{max-width:56ch}

/* the three reassurance chips under the heading */
.assure{
  list-style:none;padding:0;margin:10px 0 0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;
}
.assure li{
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;
  column-gap:12px;row-gap:1px;align-items:center;
  padding:14px 16px;border:1px solid var(--line);border-radius:16px;
  background:rgba(254,244,219,.03);
}
.assure svg{
  grid-row:1 / span 2;width:22px;height:22px;
  stroke:var(--orange);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.assure b{color:var(--ink);font-size:14px;font-weight:700;align-self:end}
.assure span{font-size:12.5px;color:var(--ink-3);align-self:start}
@media(max-width:820px){
  .assure{grid-template-columns:1fr}
  .assure li{padding:12px 14px}
}

.book-wrap{
  display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:22px;align-items:start;
  padding-block:clamp(26px,4vw,40px) 100px;
}
/* stack at the same width the nav collapses, so the form always has room
   for the step strip on one line */
@media(max-width:1080px){.book-wrap{grid-template-columns:minmax(0,1fr)}}
/* grid/flex children default to min-width:auto and refuse to shrink below
   their content. Every scrollable child below depends on this. */
.book-wrap > *{min-width:0}

.opts-split{margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
.opts-split .mono{margin-bottom:12px}
.fnav-spacer{margin-right:auto}
.help-line{
  margin-top:18px;text-align:center;font-size:13.5px;color:var(--ink-3);
}
.help-line a{color:var(--ink);font-weight:600;border-bottom:1px solid var(--line-strong)}
.help-line a:hover{color:var(--orange);border-color:var(--orange)}

.stepper{display:flex;gap:6px;margin-bottom:24px;flex-wrap:wrap}
.stepper div{
  flex:1 1 120px;padding-top:11px;border-top:2px solid var(--line);
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
  transition:color .4s,border-color .4s;
}
.stepper div.on{color:var(--ink);border-top-color:var(--orange)}
.stepper div.done{color:var(--ink-2);border-top-color:rgba(252,79,21,.45)}

.panel{
  border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);
  padding:clamp(22px,3vw,36px);
}
.panel + .panel{margin-top:16px}
.fstep{display:none}
.fstep.on{display:block;animation:fadeUp .55s var(--ease-out) both}
.fstep > h2{font-size:clamp(24px,3vw,34px);text-transform:uppercase;margin-bottom:8px}
.fstep > p.lead{margin-bottom:26px;font-size:15px}

/* option cards */
.opts{display:grid;gap:11px}
.opts.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.opts.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.opts.two,.opts.three{grid-template-columns:minmax(0,1fr)}}
.opt{
  position:relative;display:flex;gap:15px;align-items:center;
  padding:16px 18px;border:1px solid var(--line);border-radius:16px;
  background:rgba(254,244,219,.02);cursor:pointer;text-align:left;
  transition:border-color .3s,background .3s,transform .3s var(--ease-out);
}
.opt:hover{border-color:var(--line-strong);background:rgba(254,244,219,.05);transform:translateY(-2px)}
.opt[aria-pressed="true"]{border-color:var(--orange);background:rgba(252,79,21,.1)}
.opt[aria-pressed="true"]::after{
  content:'';position:absolute;top:14px;right:14px;width:18px;height:18px;border-radius:50%;
  background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat;
}
.opt-ico{
  width:46px;height:46px;flex:none;border-radius:13px;display:grid;place-items:center;
  background:rgba(252,79,21,.14);color:var(--orange);
}
.opt-ico svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.opt.cy .opt-ico{background:rgba(32,233,249,.14);color:var(--cyan)}
.opt.ye .opt-ico{background:rgba(255,222,21,.14);color:var(--yellow)}
.opt.bl .opt-ico{background:rgba(36,36,230,.2);color:#7C7CFF}
.opt-txt{min-width:0}
.opt-txt b{display:block;color:var(--ink);font-size:15.5px;font-weight:700;letter-spacing:-.01em}
.opt-txt span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:2px}
.opt-price{margin-left:auto;text-align:right;flex:none}
.opt-price b{font-family:var(--display);font-weight:800;color:var(--ink);font-size:16px;letter-spacing:-.02em}
.opt-price span{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
@media(max-width:520px){.opt-price{margin-left:0;width:100%;text-align:left;order:3}}

/* form fields */
.fields{display:grid;gap:16px}
.fields.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:640px){.fields.two{grid-template-columns:minmax(0,1fr)}}
.field{display:grid;gap:7px}
.field label{font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.field input,.field select,.field textarea{
  width:100%;padding:14px 15px;border-radius:13px;
  background:rgba(13,13,15,.55);border:1px solid var(--line);
  color:var(--ink);
  /* 16px minimum — anything smaller makes iOS Safari zoom in on focus */
  font-size:16px;
  min-height:52px;
  transition:border-color .25s,background .25s;
}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--orange);background:rgba(13,13,15,.8);
}
.field input::placeholder,.field textarea::placeholder{color:rgba(254,244,219,.3)}
.field select{appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FEF4DB' stroke-opacity='.5' stroke-width='2.2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:42px}
.field select option{background:#1B1B1D;color:#FEF4DB}
.field .hint{font-size:12px;color:var(--ink-3)}
.field.bad input,.field.bad select{border-color:#FF5A5A}
.err{font-size:12.5px;color:#FF7B7B;display:none}
.field.bad .err{display:block}

/* time slots */
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:9px}
.slot{
  padding:12px 8px;border-radius:12px;border:1px solid var(--line);
  background:rgba(254,244,219,.02);font-size:14px;font-weight:600;color:var(--ink-2);
  text-align:center;transition:border-color .25s,background .25s,color .25s,transform .25s var(--ease-out);
}
.slot:hover{border-color:var(--line-strong);color:var(--ink);transform:translateY(-2px)}
.slot[aria-pressed="true"]{border-color:var(--orange);background:rgba(252,79,21,.12);color:var(--ink)}
.slot[disabled]{opacity:.3;pointer-events:none;text-decoration:line-through}
.closed-note{
  grid-column:1/-1;padding:16px 18px;border-radius:14px;
  border:1px dashed var(--line-strong);background:rgba(254,244,219,.03);
  font-size:14px;color:var(--ink-2);
}

/* quantity */
.qty{display:flex;align-items:center;gap:14px}
.qty button{
  width:42px;height:42px;border-radius:12px;border:1px solid var(--line);
  display:grid;place-items:center;font-size:20px;color:var(--ink);
  transition:border-color .25s,background .25s;
}
.qty button:hover{border-color:var(--orange);background:rgba(252,79,21,.1)}
.qty output{
  font-family:var(--display);font-size:24px;font-weight:800;color:var(--ink);
  min-width:38px;text-align:center;font-variant-numeric:tabular-nums;
}

/* nav buttons */
.fnav{display:flex;gap:11px;margin-top:28px;flex-wrap:wrap}
.fnav .btn-ghost{margin-right:auto}

/* summary rail */
.rail{
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--surface);padding:26px;
  position:sticky;top:96px;display:grid;gap:18px;
}
@media(max-width:1080px){.rail{position:static}}
.rail h3{font-size:13px;font-family:var(--sans);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.rail-rows{display:grid;gap:11px}
.rail-row{display:flex;justify-content:space-between;gap:14px;font-size:14px}
.rail-row span:first-child{color:var(--ink-3)}
.rail-row span:last-child{color:var(--ink);font-weight:600;text-align:right}
.rail-total{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding-top:16px;border-top:1px solid var(--line);
}
.rail-total span{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.rail-total b{font-family:var(--display);font-size:31px;font-weight:800;color:var(--orange);letter-spacing:-.03em}
.rail .note{font-size:12px;color:var(--ink-3);line-height:1.55}
.pay-marks{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.pay-marks svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}

/* success */
.done-card{max-width:640px;margin-inline:auto;text-align:center;display:grid;gap:20px;justify-items:center}
.done-hex{
  width:96px;height:96px;display:grid;place-items:center;border-radius:26px;
  background:rgba(252,79,21,.14);color:var(--orange);
  animation:pop .6s var(--ease-out) both;
}
.done-hex svg{width:44px;height:44px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ref-code{
  font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:.06em;color:var(--ink);
  padding:12px 22px;border:1px dashed var(--line-strong);border-radius:14px;
}

/* config banner */
.cfg-note{
  border:1px dashed rgba(255,222,21,.5);background:rgba(255,222,21,.07);
  border-radius:14px;padding:13px 16px;font-size:12.5px;color:rgba(255,222,21,.9);
  display:flex;gap:10px;align-items:flex-start;
}
.cfg-note b{color:var(--yellow)}

/* ==========================================================================
   BOOKING — richer option cards, ticket review, mobile pay bar
   ========================================================================== */

/* experience option with a photo thumbnail */
.opt-thumb{
  width:64px;height:64px;flex:none;border-radius:14px;overflow:hidden;
  position:relative;background:var(--surface-2);
}
.opt-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}
.opt:hover .opt-thumb img{transform:scale(1.12)}
.opt-thumb.empty{
  background:
    radial-gradient(120% 120% at 25% 10%,rgba(252,79,21,.5),transparent 62%),
    radial-gradient(120% 120% at 85% 95%,rgba(32,233,249,.42),transparent 62%),
    var(--surface-2);
  display:grid;place-items:center;color:var(--ink);
}
.opt-thumb.empty svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* review "ticket" */
.ticket{
  border:1px solid var(--line);border-radius:20px;overflow:hidden;
  background:linear-gradient(180deg,rgba(252,79,21,.09),transparent 42%),var(--bg-2);
}
.ticket-top{
  padding:20px 22px;border-bottom:1px dashed var(--line-strong);
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.ticket-top .tk-ico{
  width:44px;height:44px;border-radius:13px;flex:none;display:grid;place-items:center;
  background:rgba(252,79,21,.16);color:var(--orange);
}
.ticket-top .tk-ico svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ticket-top b{display:block;color:var(--ink);font-family:var(--display);font-size:19px;font-weight:800;letter-spacing:-.02em}
.ticket-top span{font-size:13px;color:var(--ink-3)}
.ticket-rows{padding:6px 22px 18px}
.tk-row{
  display:grid;grid-template-columns:132px 1fr;gap:16px;align-items:start;
  padding:13px 0;border-bottom:1px solid var(--line);
}
.tk-row:last-child{border-bottom:0}
.tk-row dt{margin:0;font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-3)}
.tk-row dd{margin:0;font-size:15px;color:var(--ink);font-weight:500}
.tk-foot{
  padding:18px 22px;border-top:1px dashed var(--line-strong);
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;
  background:rgba(252,79,21,.07);
}
.tk-foot span{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.tk-foot b{font-family:var(--display);font-size:clamp(26px,4vw,34px);font-weight:800;color:var(--orange);letter-spacing:-.03em}
@media(max-width:520px){.tk-row{grid-template-columns:1fr;gap:3px}}

/* sticky pay bar — phones only */
.paybar{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:95;
  padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom,0px));
  background:rgba(13,13,15,.93);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--line-strong);
  align-items:center;gap:14px;
}
.paybar .pb-total{flex:none;min-width:0}
.paybar .pb-total span{display:block;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.paybar .pb-total b{font-family:var(--display);font-size:22px;font-weight:800;color:var(--orange);letter-spacing:-.02em}
.paybar .btn{margin-left:auto;flex:1 1 auto;max-width:62%}

/* ==========================================================================
   RESPONSIVE  —  tablet down to small phones
   ========================================================================== */

/* --- tablet / small laptop --- */
@media(max-width:1080px){
  .nav-links{display:none}
  .nav-phone{display:none}
  .burger{display:grid}
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .hero-art{max-width:400px;margin-inline:auto;order:-1;aspect-ratio:1/.72}
  .hero{padding-top:112px;min-height:auto;padding-bottom:80px}
}

/* --- tablet portrait --- */
@media(max-width:820px){
  .sec-head{margin-bottom:30px}
  .rail{padding:22px}
}

/* --- phones --- */
@media(max-width:680px){
  :root{--pad:18px;--r-lg:22px}

  /* nav */
  .nav-in{padding:12px var(--pad);gap:12px}
  .nav.stuck .nav-in{padding-block:9px}
  .nav-cta{gap:8px}
  .nav-cta .btn-sm{--bh:44px;padding:0 16px;font-size:13.5px}

  /* full-height drawer with room for the thumb */
  .drawer{padding:88px var(--pad) 36px}
  .drawer > a{font-size:18px}

  /* hero */
  .hero{padding-top:96px;padding-bottom:64px}
  .hero-art{max-width:min(74vw,300px);aspect-ratio:1/1;margin-bottom:6px}
  .h-xl{font-size:clamp(38px,12.4vw,62px)}
  .h-lg{font-size:clamp(30px,9.4vw,46px)}
  .hero-sub{margin-top:20px;font-size:15.5px}
  .hero-ctas{margin-top:26px;gap:10px}
  .hero-ctas .btn{width:100%}
  .hero-stats{margin-top:32px;padding-top:22px;gap:18px 26px}
  .hero-stats div{flex:1 1 40%}
  .scroll-cue{display:none}

  /* long CTA labels wrap instead of pushing the page sideways */
  .btn{white-space:normal;height:auto;min-height:var(--bh);padding-block:12px;text-align:center;line-height:1.3}
  .btn-lg{--bh:56px;font-size:15.5px}
  .zone-foot .btn,.event .btn,.fnav .btn{width:100%}

  /* zones */
  .zone-num{font-size:40px;top:14px;right:16px}
  .zone-body{padding:18px}
  .zone p{font-size:14px}
  .zone-foot{gap:12px}

  /* picker */
  .picker-tabs button{padding:15px 16px;font-size:12.5px}
  .picker-panel{padding:18px}
  .game-grid{grid-template-columns:1fr 1fr;gap:8px}
  .game-chip{padding:12px;font-size:13px;min-height:52px}

  /* events */
  .event{padding:22px 18px}
  .cd-cell{min-width:0;flex:1 1 21%;padding:11px 6px}
  .cd-cell b{font-size:22px}
  .countdown{gap:7px;flex-wrap:nowrap}

  /* steps + visit */
  .step{padding:22px 18px}
  .map-card{aspect-ratio:4/3.8}
  .map-badge{left:12px;right:12px;bottom:12px;padding:13px 15px}

  /* footer */
  .foot-grid{gap:26px}
  .foot-bottom{margin-top:32px;gap:8px;font-size:12px}

  /* marquees flat and tighter on small screens */
  .marquee{padding:11px 0;transform:rotate(-1deg) scale(1.06)}
  .marquee.alt{transform:rotate(1deg) scale(1.06);margin-top:0}

  /* whatsapp button clear of the pay bar */
  .wa-float{right:14px;bottom:14px;width:52px;height:52px}

  /* ---- booking page ---- */
  .book-top{padding-top:96px}
  .book-wrap{gap:16px;padding-bottom:24px}
  .panel{padding:20px 16px;border-radius:var(--r-lg)}
  .fstep > h2{font-size:clamp(23px,7vw,30px)}
  .fstep > p.lead{font-size:14.5px;margin-bottom:20px}

  /* stepper scrolls sideways rather than stacking into four lines */
  .stepper{
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    gap:8px;margin-bottom:18px;padding-bottom:2px;
  }
  .stepper::-webkit-scrollbar{display:none}
  .stepper div{flex:0 0 auto;min-width:0;width:auto;white-space:nowrap;font-size:10.5px;padding-top:9px}

  .opt{padding:13px;gap:12px}
  .opt-thumb{width:54px;height:54px;border-radius:12px}
  .opt-ico{width:42px;height:42px}
  .opt-txt b{font-size:14.5px}
  .opt-txt span{font-size:12px}
  .opt-price{margin-left:0;width:100%;text-align:left;order:3;
             display:flex;align-items:baseline;gap:8px;
             padding-top:10px;margin-top:2px;border-top:1px solid var(--line)}
  .opt-price b{font-size:17px}
  .opt-price span{margin-top:0}
  .opt{flex-wrap:wrap}

  /* three comfortable columns of time slots */
  .slots{grid-template-columns:repeat(3,1fr);gap:8px}
  .slot{padding:14px 4px;font-size:13.5px;min-height:48px}

  /* bigger quantity controls */
  .qty button{width:50px;height:50px;font-size:22px}
  .qty output{font-size:26px;min-width:44px}

  .fnav{gap:10px;margin-top:22px}
  .fnav .btn-ghost{margin-right:0;order:2}

  /* the rail becomes the sticky bar instead */
  .rail{display:none}
  .paybar{display:flex}
  .book-wrap{padding-bottom:104px}
  .wa-float{bottom:96px}

  .done-card{gap:16px}
  .done-hex{width:78px;height:78px}
  .ref-code{font-size:18px;padding:11px 16px;word-break:break-all}
}

/* --- small phones (iPhone SE and similar) ---
   kept at 360px so the very common 390-430px handsets still get the
   roomier two-column game grid and three-column time slots */
@media(max-width:360px){
  .game-grid{grid-template-columns:1fr}
  .slots{grid-template-columns:repeat(2,1fr)}
  .hero-stats div{flex:1 1 100%}
  .nav-cta .btn-sm{padding:0 13px;font-size:12.5px}
  .brand img{height:34px}
  .marquee-track span{font-size:18px;padding-inline:16px}
}

/* landscape phones — do not let the hero eat the whole screen */
@media(max-height:520px) and (orientation:landscape){
  .hero{min-height:auto;padding-top:96px;padding-bottom:56px}
  .hero-art{display:none}
}
