:root{
  --night:#04140c; --deep:#082a1a; --leaf:#12603a; --moss:#2f8f4e;
  --lime:#b9e84a; --sun:#ffc93c; --coral:#ff6a4d; --aqua:#35d6c8; --pink:#ff7fb5; --orange:#ff9a2e; --violet:#9b8cff;
  --sand:#f5ecd5; --sand-dim:#cfc6aa; --white:#fffdf6;
  --ease:cubic-bezier(.2,.7,.2,1);
  --maxw:1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--night); color:var(--sand);
  font-family:'Outfit',system-ui,sans-serif; font-size:17px; line-height:1.6;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
img,video,svg{display:block; max-width:100%;}
a{color:inherit;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
h1,h2,h3,.display{font-family:'Bricolage Grotesque','Outfit',sans-serif; font-weight:800; line-height:.98; letter-spacing:-0.02em;}

/* grain */
.grain{position:fixed; top:0; left:0; right:0; bottom:0; pointer-events:none; z-index:300; opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");}

/* preloader */
#preloader{position:fixed; top:0; left:0; right:0; bottom:0; z-index:500; background:var(--night);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; transition:opacity .6s, visibility .6s;}
#preloader.done{opacity:0; visibility:hidden;}
#preloader .pl-mark{font-family:'Bricolage Grotesque'; font-weight:800; font-size:44px; color:var(--lime); animation:sway 1.6s ease-in-out infinite;}
#preloader .pl-sub{font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--sand-dim);}
@keyframes sway{0%,100%{transform:rotate(-4deg);}50%{transform:rotate(4deg);}}

/* header */
header.site{position:fixed; top:0; left:0; right:0; z-index:200; transition:background .3s, backdrop-filter .3s;}
header.site.scrolled{background:rgba(4,20,12,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid rgba(185,232,74,.15);}
.navbar{max-width:var(--maxw); margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; font-family:'Bricolage Grotesque'; font-weight:800; font-size:22px; letter-spacing:-.02em; color:var(--white);}
.brand .leaf{width:30px; height:30px; color:var(--lime);}
.brand small{display:block; font-family:'Outfit'; font-weight:500; font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--lime); margin-top:2px;}
nav.links{display:flex; gap:28px;}
nav.links a{text-decoration:none; font-size:14px; letter-spacing:.08em; text-transform:uppercase; font-weight:500; opacity:.85; padding:6px 0; border-bottom:2px solid transparent; transition:.2s;}
nav.links a:hover,nav.links a.active{opacity:1; border-color:var(--lime);}
.nav-right{display:flex; align-items:center; gap:12px;}
.lang-btn{background:none; border:1px solid rgba(255,255,255,.3); color:var(--white); padding:7px 11px; border-radius:30px; font:600 12px 'Outfit'; cursor:pointer; letter-spacing:.08em;}
.lang-btn:hover{border-color:var(--lime); color:var(--lime);}
.menu-toggle{display:none; background:none; border:0; width:36px; height:36px; cursor:pointer; position:relative;}
.menu-toggle span{position:absolute; left:6px; right:6px; height:2px; background:var(--white); transition:.3s;}
.menu-toggle span:nth-child(1){top:11px;}.menu-toggle span:nth-child(2){top:17px;}.menu-toggle span:nth-child(3){top:23px;}
body.menu-open .menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg);}
body.menu-open .menu-toggle span:nth-child(2){opacity:0;}
body.menu-open .menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:10px; background:var(--lime); color:var(--night); padding:15px 28px; border-radius:60px; border:2px solid var(--lime);
  font:700 15px 'Outfit'; letter-spacing:.04em; text-decoration:none; cursor:pointer; transition:transform .25s var(--ease), background .25s, color .25s, box-shadow .25s;}
.btn:hover{transform:translateY(-3px); box-shadow:0 12px 30px rgba(185,232,74,.3);}
.btn.ghost{background:transparent; color:var(--white); border-color:rgba(255,255,255,.55);}
.btn.ghost:hover{border-color:var(--lime); color:var(--lime); box-shadow:none;}
.btn.sun{background:var(--sun); border-color:var(--sun);}

/* hero */
.hero{position:relative; min-height:100svh; min-height:100vh; display:flex; align-items:center; overflow:hidden;
  background:radial-gradient(120% 90% at 70% 0%, #1f7a43 0%, var(--deep) 45%, var(--night) 100%);}
.hero.small{min-height:62vh; padding-top:110px;}
.bg-video{position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; z-index:2;}
.hero::after{content:""; position:absolute; top:0; left:0; right:0; bottom:0; z-index:2;
  background:linear-gradient(180deg, rgba(4,20,12,.55) 0%, rgba(4,20,12,.25) 40%, rgba(4,20,12,.85) 100%);}
.foliage{position:absolute; z-index:3; pointer-events:none; color:#031a0e;}
.foliage svg{width:100%; height:100%; overflow:visible;}
.foliage.tl{top:-40px; left:-60px; width:min(48vw,520px); transform-origin:0 0; animation:frond 9s ease-in-out infinite;}
.foliage.tr{top:-30px; right:-70px; width:min(44vw,480px); transform:scaleX(-1); transform-origin:100% 0; animation:frond 11s ease-in-out infinite reverse;}
.foliage.bl{bottom:-70px; left:-50px; width:min(52vw,560px); transform:scaleY(-1); animation:frond 10s ease-in-out infinite;}
.foliage.br{bottom:-60px; right:-60px; width:min(46vw,500px); transform:scale(-1,-1); animation:frond 12s ease-in-out infinite reverse;}
@keyframes frond{0%,100%{rotate:-1.5deg;}50%{rotate:2deg;}}
.foliage .l1{fill:#052214;} .foliage .l2{fill:#0b3a22;} .foliage .l3{fill:#12603a; opacity:.85;}
.fireflies{position:absolute; top:0; left:0; right:0; bottom:0; z-index:3; pointer-events:none;}
.fireflies i{position:absolute; width:5px; height:5px; border-radius:50%; background:var(--lime); box-shadow:0 0 12px 3px rgba(185,232,74,.7); opacity:0; animation:fly linear infinite;}
@keyframes fly{0%{opacity:0; transform:translate(0,0);}15%{opacity:.9;}85%{opacity:.7;}100%{opacity:0; transform:translate(var(--dx),var(--dy));}}
.hero-inner{width:100%; position:relative; z-index:5; padding:120px 24px 90px;}
.kicker{display:inline-flex; align-items:center; gap:10px; font-size:13px; letter-spacing:.22em; text-transform:uppercase; font-weight:600; color:var(--lime); margin-bottom:20px;}
.kicker::before{content:""; width:34px; height:2px; background:var(--lime);}
.hero h1{font-size:clamp(54px,11vw,150px); color:var(--white); text-transform:uppercase;}
.hero h1 em{font-style:normal; color:var(--sun);}
.hero h1 .line{display:block; overflow:hidden;}
.hero h1 .line span{display:block; transform:translateY(110%); animation:riseUp .9s var(--ease) forwards;}
.hero h1 .line:nth-child(2) span{animation-delay:.15s;} .hero h1 .line:nth-child(3) span{animation-delay:.3s;}
@keyframes riseUp{to{transform:translateY(0);}}
.hero .sub{max-width:560px; margin-top:26px; font-size:20px; color:var(--sand); opacity:.92;}
.hero-actions{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.scroll-cue{position:absolute; z-index:6; bottom:26px; left:50%; width:24px; height:40px; margin-left:-12px; border:2px solid rgba(255,255,255,.5); border-radius:14px;}
.scroll-cue::after{content:""; position:absolute; top:8px; left:50%; width:4px; height:8px; margin-left:-2px; border-radius:2px; background:var(--lime); animation:cue 1.6s infinite;}
@keyframes cue{0%{opacity:1; transform:translateY(0);}100%{opacity:0; transform:translateY(14px);}}

/* marquee */
.marquee{overflow:hidden; white-space:nowrap; background:var(--lime); color:var(--night); border-top:3px solid var(--night); border-bottom:3px solid var(--night); transform:rotate(-1.2deg); margin:-14px -20px 0; position:relative; z-index:8;}
.marquee-track{display:inline-flex; animation:scroll 28s linear infinite;}
.marquee-track span{font-family:'Bricolage Grotesque'; font-weight:800; font-size:26px; text-transform:uppercase; padding:14px 30px; display:inline-flex; align-items:center; gap:30px;}
.marquee-track span::after{content:"✺"; font-size:20px; color:var(--coral);}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* sections */
section{padding:110px 0; position:relative;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:54px; flex-wrap:wrap;}
.section-head h2{font-size:clamp(40px,6.4vw,84px); color:var(--white); text-transform:uppercase;}
.section-head p{max-width:420px; color:var(--sand-dim);}
.sand{background:var(--sand); color:var(--night);}
.sand .section-head h2{color:var(--deep);} .sand .section-head p{color:#4c5a46;}
.sand .kicker{color:var(--leaf);} .sand .kicker::before{background:var(--leaf);}

/* intro */
.intro-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:center;}
.intro-grid h2{font-size:clamp(38px,5.6vw,76px); color:var(--deep); text-transform:uppercase;}
.intro-grid h2 em{font-style:normal; color:var(--coral);}
.intro-grid p{margin-top:22px; font-size:19px; max-width:520px; color:#32402f;}
.big-stats{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.bs{background:var(--deep); color:var(--sand); border-radius:22px; padding:26px 24px; min-height:150px; display:flex; flex-direction:column; justify-content:space-between;}
.bs b{font-family:'Bricolage Grotesque'; font-weight:800; font-size:64px; line-height:1; color:var(--lime);}
.bs span{font-size:13px; letter-spacing:.14em; text-transform:uppercase; opacity:.85;}
.bs:nth-child(2){background:var(--coral); color:var(--night);} .bs:nth-child(2) b{color:var(--night);}
.bs:nth-child(3){background:var(--sun); color:var(--night);} .bs:nth-child(3) b{color:var(--night);}
.bs:nth-child(4){background:var(--leaf);}

/* containers */
.c-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.c-card{position:relative; border-radius:24px; padding:0; min-height:0; display:flex; flex-direction:column; text-decoration:none; overflow:hidden;
  background:var(--accent); color:var(--night); transition:transform .35s var(--ease), box-shadow .35s;}
.c-card:hover{transform:translateY(-8px) rotate(-.6deg); box-shadow:0 24px 50px rgba(0,0,0,.4);}
.c-photo{aspect-ratio:4/3.4; overflow:hidden;} .c-photo img{width:100%; height:100%; object-fit:cover; object-position:center 40%; transition:transform .6s var(--ease);} .c-card:hover .c-photo img{transform:scale(1.06);}
  .c-text{padding:18px 22px 22px; display:flex; flex-direction:column; flex:1;}
.c-num{font-family:'Bricolage Grotesque'; font-weight:800; font-size:20px; opacity:.7;}
.c-card h3{font-size:28px; text-transform:uppercase; margin:8px 0 6px;}
.c-card p{font-size:15px; line-height:1.35; opacity:.9; margin-bottom:auto;}
.c-go{display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px; letter-spacing:.05em; text-transform:uppercase; margin-top:14px; position:relative; z-index:2;}
.c-soon{position:absolute; top:14px; right:14px; z-index:3; background:var(--night); color:var(--sand); font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:4px 10px; border-radius:30px; font-weight:600;}

/* video band */
.video-band{position:relative; min-height:78vh; display:flex; align-items:center; overflow:hidden; padding:0; background:linear-gradient(135deg,#0f5a34,#04140c);}
.video-band::after{content:""; position:absolute; top:0; left:0; right:0; bottom:0; z-index:2; background:linear-gradient(90deg, rgba(4,20,12,.78), rgba(4,20,12,.15));}
.video-band .wrap{position:relative; z-index:5;}
.video-band h2{font-size:clamp(46px,8.5vw,120px); color:var(--white); text-transform:uppercase; max-width:900px;}
.video-band h2 em{font-style:normal; color:var(--lime);}
.video-band p{margin-top:22px; max-width:480px; font-size:19px;}

/* events */
.e-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.e-card{background:var(--deep); border:1px solid rgba(185,232,74,.18); border-radius:26px; overflow:hidden; display:flex; flex-direction:column; transition:transform .3s var(--ease), border-color .3s;}
.e-card:hover{transform:translateY(-6px); border-color:var(--lime);}
.e-date{display:flex; align-items:center; gap:16px; padding:22px 24px; background:var(--sun); color:var(--night);}
.e-date .d{font-family:'Bricolage Grotesque'; font-weight:800; font-size:54px; line-height:.9;}
.e-date .m{font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:13px; line-height:1.3;}
.e-body{padding:24px; display:flex; flex-direction:column; gap:10px; flex:1;}
.e-body h3{font-size:30px; color:var(--white); text-transform:uppercase;}
.e-meta{font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--lime); font-weight:600;}
.e-body p{color:var(--sand-dim); font-size:16px;}
.e-body .btn{margin-top:auto; align-self:flex-start; padding:11px 20px; font-size:13px;}
.e-empty{border:2px dashed rgba(185,232,74,.35); border-radius:26px; padding:50px 30px; text-align:center; grid-column:1/-1; color:var(--sand-dim);}
.past-title{margin:60px 0 18px; font-size:14px; letter-spacing:.22em; text-transform:uppercase; color:var(--sand-dim);}
.e-grid.past .e-card{opacity:.6;} .e-grid.past .e-date{background:var(--sand-dim);}

/* gym link */
.gym{background:#ffd23c; color:var(--night); padding:70px 0;}
.gym-inner{display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap;}
.gym h2{font-size:clamp(34px,5vw,64px); text-transform:uppercase; max-width:700px;}
.gym p{margin-top:12px; max-width:520px; font-weight:500;}
.gym .btn{background:var(--night); color:var(--sun); border-color:var(--night);}

/* visit */
.visit-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center;}
.visit-grid h2{font-size:clamp(40px,6vw,80px); color:var(--white); text-transform:uppercase;}
.visit-list{margin:26px 0; list-style:none; display:grid; gap:12px;}
.visit-list li{display:flex; gap:14px; align-items:flex-start; font-size:18px;}
.visit-list li b{color:var(--lime); min-width:90px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; padding-top:6px;}
.visit-art{aspect-ratio:1/1; border-radius:30px; background:radial-gradient(circle at 30% 30%, #2f8f4e, #082a1a 70%); position:relative; overflow:hidden; border:1px solid rgba(185,232,74,.25);}
.visit-art .foliage{color:#031a0e;} .visit-art .foliage.tl{width:90%; top:-10%; left:-15%;} .visit-art .foliage.br{width:90%; bottom:-10%; right:-15%;}
.visit-art .sunmark{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; font-family:'Bricolage Grotesque'; font-weight:800; font-size:clamp(40px,6vw,76px); text-transform:uppercase; color:var(--white); line-height:.95; z-index:4;}
.visit-art .sunmark em{font-style:normal; color:var(--sun); display:block;}

/* menus page */
.tabs{position:sticky; top:66px; z-index:100; background:rgba(4,20,12,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid rgba(185,232,74,.15);}
.tabs-in{max-width:var(--maxw); margin:0 auto; padding:12px 24px; display:flex; gap:10px; overflow-x:auto; scrollbar-width:none;}
.tabs-in::-webkit-scrollbar{display:none;}
.tab{flex:0 0 auto; background:transparent; border:1.5px solid rgba(255,255,255,.25); color:var(--sand); padding:9px 18px; border-radius:40px; font:600 14px 'Outfit'; cursor:pointer; transition:.2s; white-space:nowrap;}
.tab:hover{border-color:var(--accent,var(--lime));}
.tab.on{background:var(--accent,var(--lime)); border-color:var(--accent,var(--lime)); color:var(--night);}
.panel{padding:70px 0 110px; min-height:60vh;}
.panel-head{display:flex; gap:26px; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; margin-bottom:44px; padding-bottom:30px; border-bottom:2px solid var(--accent);}
.panel-head h2{font-size:clamp(44px,7.5vw,100px); text-transform:uppercase; color:var(--white); margin-top:6px;}
.panel-head .num{font-family:'Bricolage Grotesque'; font-weight:800; font-size:20px; color:var(--accent);}
.panel-head p{max-width:380px; color:var(--sand-dim);}
.m-sec h3{font-size:26px; text-transform:uppercase; color:var(--accent); margin-bottom:14px;}
.m-item{padding:12px 0; border-bottom:1px dashed rgba(255,255,255,.16);}
.m-row{display:flex; align-items:baseline; gap:10px;}
.m-name{font-weight:600; font-size:18px; color:var(--white);}
.m-dots{flex:1; border-bottom:2px dotted rgba(255,255,255,.2); transform:translateY(-4px);}
.m-price{font-family:'Bricolage Grotesque'; font-weight:800; font-size:19px; color:var(--sun);}
.m-desc{font-size:14.5px; color:var(--sand-dim); margin-top:2px;}
.m-soon{border:2px dashed rgba(255,255,255,.25); border-radius:26px; padding:60px 28px; text-align:center; color:var(--sand-dim); grid-column:1/-1;}
.m-soon b{display:block; font-family:'Bricolage Grotesque'; font-size:34px; color:var(--white); text-transform:uppercase; margin-bottom:8px;}

/* footer */
footer{background:#020b07; padding:60px 0 100px; border-top:1px solid rgba(185,232,74,.15);}
.foot-in{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap;}
.foot-big{font-family:'Bricolage Grotesque'; font-weight:800; font-size:clamp(36px,7vw,90px); text-transform:uppercase; color:var(--lime); line-height:.95;}
.foot-links{display:flex; gap:22px; flex-wrap:wrap; font-size:14px; letter-spacing:.08em; text-transform:uppercase;}
.foot-links a{text-decoration:none; opacity:.8;} .foot-links a:hover{opacity:1; color:var(--lime);}
.foot-small{margin-top:30px; font-size:13px; opacity:.55;}

/* reveal */
.reveal{opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.reveal-stagger > *{opacity:0; transform:translateY(34px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal-stagger.in > *{opacity:1; transform:none;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.08s;}.reveal-stagger.in > *:nth-child(3){transition-delay:.16s;}.reveal-stagger.in > *:nth-child(4){transition-delay:.24s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.32s;}.reveal-stagger.in > *:nth-child(6){transition-delay:.4s;}.reveal-stagger.in > *:nth-child(7){transition-delay:.48s;}.reveal-stagger.in > *:nth-child(8){transition-delay:.56s;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  .reveal,.reveal-stagger > *{opacity:1; transform:none;}
}

@media (max-width:980px){
  .c-grid{grid-template-columns:repeat(2,1fr);}
  .e-grid{grid-template-columns:1fr 1fr;}
  .intro-grid,.visit-grid{grid-template-columns:1fr; gap:40px;}
  .m-sections{grid-template-columns:1fr; gap:34px;}
}
@media (max-width:900px){
  nav.links{display:flex; position:fixed; top:0; left:0; right:0; bottom:0; background:var(--night); flex-direction:column; align-items:center; justify-content:center; gap:26px; z-index:150; opacity:0; visibility:hidden; transition:.3s;}
  nav.links a{font-size:24px; font-family:'Bricolage Grotesque'; font-weight:800;}
  body.menu-open nav.links{opacity:1; visibility:visible;}
  .menu-toggle{display:block; z-index:200;}
  .nav-right .btn{display:none;}
  .tabs{top:62px;}
}
@media (max-width:640px){
  section{padding:80px 0;}
  .c-grid,.e-grid{grid-template-columns:1fr;}
  .c-card{min-height:190px;}
  .hero .sub{font-size:18px;}
  .marquee-track span{font-size:20px; padding:11px 22px;}
  .big-stats{grid-template-columns:1fr 1fr;} .bs b{font-size:48px;}
}

.panel-img{width:150px; aspect-ratio:3/4; object-fit:cover; border-radius:18px; border:3px solid var(--accent); transform:rotate(3deg);}
@media (max-width:640px){.panel-img{width:110px;}}
.panel-blurb{margin-top:14px; max-width:480px; font-size:19px; color:var(--sand);}
.panel-head{align-items:center;}

/* ================= MENUS: modern effects ================= */
:root{--glow:#b9e84a;}
.scroll-progress{position:fixed; top:0; left:0; right:0; height:3px; z-index:400; background:linear-gradient(90deg,var(--glow),var(--sun)); transform-origin:0 50%; transform:scaleX(0); transition:background .5s;}
.cursor-glow{position:fixed; top:0; left:0; width:500px; height:500px; border-radius:50%; pointer-events:none; z-index:1; background:radial-gradient(circle, color-mix(in srgb, var(--glow) 22%, transparent) 0%, transparent 62%); filter:blur(10px); transition:background .6s; will-change:transform;}
.panel{position:relative; overflow:hidden; transition:opacity .22s ease, transform .22s ease, filter .22s ease;}
.panel.out{opacity:0; transform:translateY(14px); filter:blur(6px);}
.panel.enter .wrap{animation:panelIn .7s var(--ease) both;}
@keyframes panelIn{from{opacity:0; transform:translateY(30px) scale(.985); filter:blur(8px);} to{opacity:1; transform:none; filter:none;}}
.panel > .wrap{position:relative; z-index:2;}
.panel-ghost{position:absolute; top:40px; left:0; width:100%; overflow:hidden; white-space:nowrap; z-index:0; pointer-events:none; opacity:.9;}
.panel-ghost span{display:inline-block; font-family:'Bricolage Grotesque'; font-weight:800; font-size:clamp(110px,18vw,240px); line-height:1; text-transform:uppercase; color:transparent; -webkit-text-stroke:1.5px color-mix(in srgb, var(--glow) 28%, transparent); animation:scroll 60s linear infinite;}
.panel-head{border-bottom:0; padding-bottom:10px; position:relative;}
.panel-head::after{content:""; position:absolute; left:0; bottom:0; height:3px; width:100%; background:linear-gradient(90deg,var(--accent),transparent); transform-origin:0 50%; animation:lineGrow 1.1s var(--ease) both;}
@keyframes lineGrow{from{transform:scaleX(0);}to{transform:scaleX(1);}}
.panel-img{box-shadow:0 20px 50px rgba(0,0,0,.5), 0 0 40px color-mix(in srgb, var(--accent) 35%, transparent); animation:floaty 6s ease-in-out infinite;}
@keyframes floaty{0%,100%{transform:rotate(3deg) translateY(0);}50%{transform:rotate(1deg) translateY(-8px);}}
.m-sections{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:40px; align-items:start;}
.m-group{grid-column:1/-1; margin:26px 0 0; opacity:0; transform:translateX(-40px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.m-group.in{opacity:1; transform:none;}
.m-group span{display:inline-block; font-family:'Bricolage Grotesque'; font-weight:800; font-size:clamp(34px,6vw,76px); text-transform:uppercase; line-height:1; color:var(--accent); padding-right:20px; background:linear-gradient(100deg,var(--accent) 0%,#fff 55%,var(--accent) 100%); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation:shine 5s linear infinite;}
@keyframes shine{from{background-position:0 0;}to{background-position:-220% 0;}}
.m-sec{--mx:50%; --my:50%; position:relative; overflow:hidden; border-radius:26px; padding:26px 26px 14px; background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02)); border:1px solid color-mix(in srgb, var(--accent) 28%, transparent); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  opacity:0; transform:translateY(46px) scale(.97); transition:opacity .8s var(--ease), transform .8s var(--ease), border-color .3s, box-shadow .3s;}
.m-sec.in{opacity:1; transform:none;}
.m-sec:hover{border-color:var(--accent); box-shadow:0 24px 60px rgba(0,0,0,.45), 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent);}
.m-spot{position:absolute; top:0; left:0; right:0; bottom:0; pointer-events:none; opacity:0; transition:opacity .3s; background:radial-gradient(380px circle at var(--mx) var(--my), color-mix(in srgb, var(--accent) 22%, transparent), transparent 60%);}
.m-sec:hover .m-spot{opacity:1;}
.m-sec > *{position:relative;}
.m-sec-head{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:10px;}
.m-sec h3{margin:0; font-size:clamp(24px,3vw,34px); line-height:1;}
.m-badge{font-family:'Bricolage Grotesque'; font-weight:800; font-size:18px; background:var(--accent); color:var(--night); padding:6px 14px; border-radius:40px; transform:rotate(-3deg); box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 40%, transparent);}
.m-item{border-bottom:1px dashed rgba(255,255,255,.14); padding:12px 4px; transition:transform .25s var(--ease), background .25s; opacity:0; transform:translateX(-16px);}
.m-sec.in .m-item{opacity:1; transform:none; transition:opacity .6s var(--ease), transform .6s var(--ease), background .25s; transition-delay:calc(var(--i) * 55ms + .15s);}
.m-sec.in .m-item:hover{transform:translateX(8px); background:linear-gradient(90deg,color-mix(in srgb, var(--accent) 14%, transparent),transparent); transition-delay:0s; border-radius:10px;}
.m-item:last-of-type{border-bottom:0;}
.m-item:hover .m-name{color:var(--accent);}
.m-item:hover .m-dots{border-color:var(--accent);}
.m-price{display:inline-block; transition:transform .25s var(--ease), color .25s;}
.m-item:hover .m-price{transform:scale(1.18); color:var(--accent);}
.m-tag{font-style:normal; font-size:10px; letter-spacing:.12em; font-weight:700; margin-left:10px; padding:3px 8px; border-radius:30px; background:var(--coral); color:var(--night); vertical-align:middle; animation:pulseTag 2s ease-in-out infinite;}
@keyframes pulseTag{0%,100%{box-shadow:0 0 0 0 rgba(255,106,77,.6);}50%{box-shadow:0 0 0 7px rgba(255,106,77,0);}}
.m-chips{display:flex; flex-wrap:wrap; gap:10px; padding:6px 0 12px;}
.m-chip{padding:9px 16px; border-radius:40px; border:1.5px solid color-mix(in srgb, var(--accent) 55%, transparent); color:var(--white); font-weight:500; font-size:15px; opacity:0; transform:translateY(14px) scale(.9); transition:background .25s, color .25s, transform .25s var(--ease);}
.m-sec.in .m-chip{opacity:1; transform:none; transition:opacity .5s var(--ease), transform .5s var(--ease), background .25s, color .25s; transition-delay:calc(var(--i) * 45ms + .15s);}
.m-sec.in .m-chip:hover{background:var(--accent); color:var(--night); transform:translateY(-4px) rotate(-2deg); transition-delay:0s;}
.m-note{margin:8px 0 12px; padding:12px 16px; border-left:4px solid var(--accent); background:color-mix(in srgb, var(--accent) 12%, transparent); border-radius:0 14px 14px 0; font-size:15px; color:var(--white);}
.m-foot{margin-top:60px; text-align:center; opacity:0; transform:scale(.94); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.m-foot.in{opacity:1; transform:none;}
.m-foot span{font-family:'Bricolage Grotesque'; font-weight:800; font-size:clamp(28px,5vw,60px); line-height:1.05; text-transform:uppercase; color:var(--accent); text-shadow:0 0 40px color-mix(in srgb, var(--accent) 50%, transparent);}
.m-legal{margin-top:22px; text-align:center; font-size:13px; letter-spacing:.06em; color:var(--sand-dim);}
.m-shop{display:grid; grid-template-columns:minmax(260px,420px) 1fr; gap:44px; align-items:center; margin-top:40px;}
.m-shop img{border-radius:26px; border:3px solid var(--accent); box-shadow:0 30px 70px rgba(0,0,0,.5), 0 0 60px color-mix(in srgb, var(--accent) 30%, transparent); cursor:zoom-in; transform:rotate(-2deg); transition:transform .4s var(--ease);}
.m-shop img:hover{transform:rotate(0) scale(1.02);}
.m-shop b{display:block; font-size:clamp(36px,5vw,64px); text-transform:uppercase; color:var(--white); line-height:1; margin-bottom:14px;}
.m-shop p{margin-bottom:22px; font-size:19px; max-width:420px;}
.imgbox{position:fixed; top:0; left:0; right:0; bottom:0; z-index:450; background:rgba(2,11,7,.92); display:none; align-items:center; justify-content:center; cursor:zoom-out; padding:20px;}
.imgbox.open{display:flex;} .imgbox img{max-height:92vh; border-radius:16px;}
.tab{transition:transform .25s var(--ease), background .25s, border-color .25s;} .tab:hover{transform:translateY(-2px);}
.tab.on{box-shadow:0 8px 24px color-mix(in srgb, var(--accent) 45%, transparent);}
@media (max-width:980px){ .m-sections{grid-template-columns:1fr;} .m-shop{grid-template-columns:1fr;} }
@media (prefers-reduced-motion:reduce){ .m-sec,.m-group,.m-foot,.m-item,.m-chip{opacity:1 !important; transform:none !important;} }

/* ================= FX por container ================= */
.fx-canvas{position:fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:60;}
.fx-parrot{position:fixed; top:0; left:0; width:230px; z-index:62; pointer-events:none; opacity:0; filter:drop-shadow(0 14px 14px rgba(0,0,0,.45)); will-change:transform;}
.fx-parrot svg{width:100%; display:block; overflow:visible;}
.fx-parrot .wing{transform-origin:125px 70px; animation:flap .32s ease-in-out infinite alternate;}
.fx-parrot .wing-b{animation-delay:-.16s;}
@keyframes flap{from{transform:rotate(-42deg) scaleY(.9);}to{transform:rotate(34deg) scaleY(1.05);}}
.fx-glove{position:fixed; top:0; left:0; width:240px; z-index:62; pointer-events:none; opacity:0; filter:drop-shadow(0 14px 18px rgba(0,0,0,.55)); will-change:transform;}
.fx-glove svg{width:100%; display:block;}
.fx-ring{position:fixed; width:150px; height:150px; border-radius:50%; border:7px solid #ffc93c; box-shadow:0 0 30px #ffc93c; z-index:61; pointer-events:none;}
.fx-ko{position:fixed; z-index:63; pointer-events:none; font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:clamp(70px,12vw,150px); line-height:1; color:#ffc93c; -webkit-text-stroke:5px #1a0d00; paint-order:stroke fill; text-shadow:7px 7px 0 #ff6a4d;}
.fx-flash{position:fixed; top:0; left:0; right:0; bottom:0; background:#fff; z-index:59; pointer-events:none;}
.fx-drips{position:absolute; top:0; left:0; width:100%; height:300px; z-index:1; pointer-events:none; display:block; filter:drop-shadow(0 10px 14px rgba(0,0,0,.45));}
h2.neon{text-shadow:0 0 12px rgba(155,140,255,.9), 0 0 36px rgba(155,140,255,.6), 0 0 70px rgba(255,127,181,.45); animation:neon 5s infinite;}
@keyframes neon{0%,18%,22%,62%,64%,100%{opacity:1;}20%,63%{opacity:.55;}21%{opacity:.9;}}
.fx-steam{position:absolute; right:190px; bottom:30px; width:150px; height:170px; pointer-events:none;}
.fx-steam i{position:absolute; bottom:0; width:40px; height:40px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.55),transparent 70%); filter:blur(7px); opacity:0; animation:steamUp 3.8s ease-out infinite;}
.fx-steam i:nth-child(1){left:10px;animation-delay:0s;} .fx-steam i:nth-child(2){left:40px;animation-delay:.7s;} .fx-steam i:nth-child(3){left:72px;animation-delay:1.4s;} .fx-steam i:nth-child(4){left:100px;animation-delay:2.1s;} .fx-steam i:nth-child(5){left:55px;animation-delay:2.8s;}
@keyframes steamUp{0%{transform:translateY(0) scale(.6); opacity:0;} 25%{opacity:.8;} 100%{transform:translateY(-150px) translateX(14px) scale(2.4); opacity:0;}}
.fx-hanger{position:absolute; right:210px; top:-14px; width:104px; transform-origin:50% 0; animation:swing 3.2s ease-in-out infinite alternate; filter:drop-shadow(0 10px 12px rgba(0,0,0,.4)); pointer-events:none;}
.fx-hanger svg{width:100%; display:block;}
@keyframes swing{from{transform:rotate(-10deg);}to{transform:rotate(10deg);}}
.fx-crepe{position:absolute; right:200px; top:-20px; width:220px; height:210px; perspective:700px; pointer-events:none;}
.fx-crepe .pan3d{position:relative; width:100%; height:100%;}
.fx-crepe .pan{position:absolute; left:0; bottom:0; width:220px;}
.fx-crepe .crepe{position:absolute; left:26px; bottom:34px; width:128px; height:128px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #ffe0a0, #e9a94a 70%, #c98122); box-shadow:inset 0 0 14px rgba(120,60,0,.5); transform-style:preserve-3d; animation:crepeFlip 3.4s cubic-bezier(.3,.6,.4,1) infinite;}
.fx-crepe .crepe i{position:absolute; width:14px; height:14px; border-radius:50%; background:rgba(125,64,10,.55);}
.fx-crepe .crepe i:nth-child(1){left:28px;top:30px;} .fx-crepe .crepe i:nth-child(2){left:78px;top:60px;width:20px;height:20px;} .fx-crepe .crepe i:nth-child(3){left:44px;top:84px;width:11px;height:11px;}
@keyframes crepeFlip{0%,14%{transform:translateY(0) rotateX(62deg) rotateZ(0);} 50%{transform:translateY(-110px) rotateX(560deg) rotateZ(120deg);} 86%,100%{transform:translateY(0) rotateX(1142deg) rotateZ(0);}}
.fx-burger-wrap{position:absolute; right:30px; top:-24px; width:220px; height:230px; pointer-events:none;}
.fx-burger{width:100%; height:100%; perspective:700px;}
.bg-stack{position:relative; width:100%; height:100%; transform-style:preserve-3d;}
.bl{position:absolute; top:50%; left:50%; border-radius:50%; transform:translate(-50%,-50%) translateZ(var(--z,0px));}
.bun-b{--z:0px; width:170px; height:170px; background:radial-gradient(circle at 40% 35%, #f0b062, #cf8330 75%); box-shadow:0 14px 30px rgba(0,0,0,.45);}
.patty{--z:12px; width:158px; height:158px; background:radial-gradient(circle at 35% 30%, #7a3c1c, #3a1a0a 70%); box-shadow:0 0 0 3px #2b1206, inset 0 0 18px rgba(255,200,90,.28);}
.cheese{--z:22px; width:150px; height:150px; border-radius:6px; background:linear-gradient(135deg,#ffd75a,#ffb81f); transform:translate(-50%,-50%) translateZ(var(--z)) rotate(45deg);}
.lettuce{--z:30px; width:166px; height:166px; background:#7ed957; border:7px dotted #4aa83a; box-shadow:0 0 0 5px #7ed957;}
.bun-t{background:radial-gradient(circle at 38% 30%, #f6bb68, #d9893a 80%);}
.bun-t.t1{--z:38px; width:164px; height:164px;} .bun-t.t2{--z:46px; width:148px; height:148px;} .bun-t.t3{--z:53px; width:126px; height:126px;}
.bun-t.t4{--z:59px; width:96px; height:96px;} .bun-t.t5{--z:64px; width:58px; height:58px; background-image:radial-gradient(circle at 30% 35%, #fff3d2 0 3px, transparent 4px), radial-gradient(circle at 62% 28%, #fff3d2 0 3px, transparent 4px), radial-gradient(circle at 50% 62%, #fff3d2 0 3px, transparent 4px), radial-gradient(circle at 38% 38%, #f9c677, #dd8f3c 80%);}
.fx-no-img .panel-img{display:none;}
@media (max-width:760px){
  .fx-crepe,.fx-burger-wrap,.fx-hanger{transform:scale(.55); transform-origin:100% 0; right:0;}
  .fx-steam{display:none;}
  .fx-parrot{width:160px;}
}

/* ===== logo oficial + video YouTube de portada ===== */
.brand .brand-logo{height:44px; width:auto; display:block; filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));}
.brand{gap:12px;}
#preloader .pl-logo{width:92px; height:auto; animation:sway 1.6s ease-in-out infinite; filter:drop-shadow(0 0 24px rgba(185,232,74,.35));}
.foot-logo{height:78px; width:auto; margin-bottom:18px;}
.bs-logo{height:62px; width:auto; display:block;}
.visit-art .sun-logo{height:clamp(70px,9vw,120px); width:auto; margin:0 auto 12px; display:block;}
.yt-bg{position:absolute; top:0; left:0; right:0; bottom:0; z-index:1; overflow:hidden; opacity:0; transition:opacity 1.6s ease; pointer-events:none;}
.yt-bg.on{opacity:1;}
.yt-bg iframe{position:absolute; top:50%; left:50%; width:max(100%, calc(100vh * 1.7778)); height:max(100%, calc(100vw * .5625)); min-width:100%; min-height:100%; border:0; transform:translate(-50%,-50%) scale(1.22); pointer-events:none;}


/* ===== WEEKLY AGENDA ===== */
#weekly{padding:90px 0 40px;}
.w-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.w-card{position:relative; aspect-ratio:3/4.1; border-radius:28px; overflow:hidden; background:#0b2a17; isolation:isolate; border:1px solid rgba(185,232,74,.2); transition:transform .45s var(--ease), box-shadow .45s;}
.w-card:hover{transform:translateY(-8px) rotate(-.6deg); box-shadow:0 30px 60px -20px rgba(0,0,0,.7);}
.w-img{position:absolute; inset:0; background-size:cover; background-position:center; z-index:-2; transition:transform 1.2s var(--ease);}
.w-card:hover .w-img{transform:scale(1.08);}
.w-shade{position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(4,18,10,.55) 0%,rgba(4,18,10,0) 32%,rgba(4,18,10,.88) 78%);}
.w-top{position:absolute; top:18px; left:18px; right:18px; display:flex; justify-content:space-between; align-items:center; gap:8px;}
.w-day{font-family:'Bricolage Grotesque'; font-weight:800; text-transform:uppercase; font-size:22px; color:var(--white); letter-spacing:.02em;}
.w-when{font-size:11px; font-weight:700; letter-spacing:.14em; padding:6px 11px; border-radius:99px; background:rgba(255,255,255,.14); backdrop-filter:blur(8px); color:var(--white);}
.w-card.today .w-when{background:var(--lime); color:var(--night); animation:wPulse 1.6s ease-in-out infinite;}
@keyframes wPulse{0%,100%{box-shadow:0 0 0 0 rgba(185,232,74,.6)}50%{box-shadow:0 0 0 10px rgba(185,232,74,0)}}
.w-bot{position:absolute; left:20px; right:20px; bottom:20px; display:flex; flex-direction:column; gap:8px;}
.w-time{font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--lime);}
.w-bot h3{font-size:clamp(26px,2.4vw,34px); line-height:1; text-transform:uppercase; color:var(--white);}
.w-bot p{font-size:14.5px; color:rgba(255,255,255,.82); line-height:1.4;}
.w-live{position:absolute; top:62px; left:18px; display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.18em; color:#fff; background:rgba(255,70,70,.9); padding:6px 12px; border-radius:99px;}
.w-live::before{content:""; width:7px; height:7px; border-radius:50%; background:#fff; animation:wBlink 1s infinite; order:-1;}
@keyframes wBlink{50%{opacity:.2}}
.eq{display:inline-flex; gap:2px; align-items:flex-end; height:12px; order:2;}
.eq b{width:3px; background:#fff; border-radius:2px; animation:eqb 0.9s ease-in-out infinite;}
.eq b:nth-child(2){animation-delay:.15s}.eq b:nth-child(3){animation-delay:.3s}.eq b:nth-child(4){animation-delay:.45s}.eq b:nth-child(5){animation-delay:.6s}
@keyframes eqb{0%,100%{height:3px}50%{height:12px}}
.w-music .w-shade{background:linear-gradient(180deg,rgba(60,20,0,.45) 0%,rgba(4,18,10,0) 32%,rgba(4,18,10,.9) 80%);}
.w-cinema .w-img{filter:saturate(.9) brightness(.85);}
.w-cinema::before,.w-cinema::after{content:""; position:absolute; top:0; bottom:0; width:14px; z-index:2; background:repeating-linear-gradient(180deg,transparent 0 10px,rgba(255,255,255,.55) 10px 20px); mask:linear-gradient(#000,#000); opacity:.35;}
.w-cinema::before{left:0}.w-cinema::after{right:0}
.w-reel{position:absolute; top:60px; left:18px; width:38px; height:38px; border-radius:50%; border:3px solid rgba(255,255,255,.85); animation:wSpin 6s linear infinite;}
.w-reel::before,.w-reel::after{content:""; position:absolute; inset:7px; border-radius:50%; border:3px dotted rgba(255,255,255,.85);}
@keyframes wSpin{to{transform:rotate(360deg)}}
.w-deals .w-img{filter:saturate(1.3) hue-rotate(-20deg) brightness(.7);}
.w-deals::before{content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 70% 25%,rgba(255,193,60,.55),transparent 50%),linear-gradient(160deg,rgba(255,95,70,.55),rgba(160,20,70,.5)); mix-blend-mode:screen; animation:dealGlow 3s ease-in-out infinite alternate;}
@keyframes dealGlow{to{opacity:.55; transform:scale(1.12)}}
.w-burst{position:absolute; top:58px; right:14px; z-index:2; font-family:'Bricolage Grotesque'; font-weight:800; font-size:18px; letter-spacing:.04em; color:var(--night); background:var(--sun); padding:12px 16px; clip-path:polygon(50% 0,61% 14%,79% 8%,82% 27%,100% 32%,90% 50%,100% 68%,82% 73%,79% 92%,61% 86%,50% 100%,39% 86%,21% 92%,18% 73%,0 68%,10% 50%,0 32%,18% 27%,21% 8%,39% 14%); animation:burst 1.4s ease-in-out infinite; transform:rotate(8deg);}
@keyframes burst{0%,100%{transform:rotate(8deg) scale(1)}50%{transform:rotate(-4deg) scale(1.14)}}

/* ===== VISIT MAP / REVIEWS / INSTAGRAM ===== */
.visit-map{position:relative; border-radius:30px; overflow:hidden; min-height:420px; border:1px solid rgba(185,232,74,.25); box-shadow:0 30px 70px -30px rgba(0,0,0,.8);}
.visit-map iframe{position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.85) contrast(1.05);}
.visit-map .foliage{pointer-events:none; opacity:.8;}
.rev{padding:90px 0 40px;}
.rev-head{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding:28px 32px; border-radius:26px; background:var(--deep); border:1px solid rgba(185,232,74,.2); margin-bottom:20px;}
.rev-score{display:flex; align-items:center; gap:16px;}
.rev-score b{font-family:'Bricolage Grotesque'; font-size:64px; line-height:1; color:var(--sun);}
.rev-score .stars{display:flex; gap:4px; color:var(--sun);}
.rev-score small{color:var(--sand-dim); font-size:15px; letter-spacing:.04em;}
.rev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.rev-card{margin:0; padding:26px; border-radius:24px; background:var(--deep); border:1px solid rgba(185,232,74,.18); display:flex; flex-direction:column; gap:12px;}
.rev-card .stars-txt{color:var(--sun); letter-spacing:3px; font-size:18px;}
.rev-card blockquote{margin:0; color:var(--white); font-size:16px; line-height:1.5;}
.rev-card figcaption{color:var(--sand-dim); font-size:13px;}
.insta{padding:90px 0 100px;}
.insta h2 em{font-style:normal; color:var(--lime);}
.ig-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:12px;}
.ig-grid a{position:relative; aspect-ratio:1; border-radius:18px; background-size:cover; background-position:center; overflow:hidden; transition:transform .35s var(--ease);}
.ig-grid a:hover{transform:scale(1.05) rotate(-1.5deg);}
.ig-grid a span{position:absolute; inset:auto 0 0 0; padding:26px 12px 10px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:linear-gradient(0deg,rgba(0,0,0,.7),transparent);}
.ig-embed{margin-bottom:20px;}
@media(max-width:1000px){.w-grid{grid-template-columns:1fr 1fr}.rev-grid{grid-template-columns:1fr 1fr}.ig-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.w-grid{grid-template-columns:1fr}.w-card{aspect-ratio:4/4.6}.rev-grid{grid-template-columns:1fr}.rev-score b{font-size:48px}.visit-map{min-height:320px}}

#insta h2{font-size:clamp(34px,8.2vw,96px); overflow-wrap:anywhere;}


/* ===== TUMBAO: aguacate y huevo frito bailando sobre una tostada (3D) ===== */
.fx-toast{position:absolute; right:440px; top:-48px; width:300px; height:260px; perspective:900px; pointer-events:none;}
.fx-toast .ts{position:absolute; inset:0; transform-style:preserve-3d; animation:tsSway 6s ease-in-out infinite;}
@keyframes tsSway{0%,100%{transform:rotateX(14deg) rotateY(-24deg)}50%{transform:rotateX(14deg) rotateY(24deg)}}
.fx-toast .toast{position:absolute; left:34px; bottom:6px; width:232px; height:190px; border-radius:46% 46% 18% 18% / 40% 40% 14% 14%; background:radial-gradient(circle at 40% 35%,#f8dc9e,#ecc176 70%); border:12px solid #b9772e; box-shadow:0 1px 0 #a5651f,0 2px 0 #a5651f,0 3px 0 #a5651f,0 4px 0 #9a5f22,0 5px 0 #9a5f22,0 6px 0 #8f561d,0 7px 0 #8f561d,0 8px 0 #85501b,0 9px 0 #85501b,0 10px 0 #7b4a19,0 11px 0 #7b4a19,0 12px 0 #704317,0 30px 30px rgba(0,0,0,.5); transform:rotateX(64deg); transform-style:preserve-3d;}
.fx-toast .dz{position:absolute; bottom:70px; transform-style:preserve-3d;}
.fx-toast .dz .dn{position:relative; transform-origin:50% 100%;}
.fx-toast .avo{left:70px; width:62px; height:110px;} .fx-toast .egg{left:158px; width:84px; height:104px; bottom:66px;}
.fx-toast .avo .dn{animation:danceA .9s ease-in-out infinite;} .fx-toast .egg .dn{animation:danceE .9s ease-in-out infinite .45s;}
@keyframes danceA{0%,100%{transform:translateY(0) rotate(-9deg) scale(1.04,.94)}25%{transform:translateY(-22px) rotate(0) scale(.96,1.06)}50%{transform:translateY(0) rotate(9deg) scale(1.04,.94)}75%{transform:translateY(-22px) rotate(0) scale(.96,1.06)}}
@keyframes danceE{0%,100%{transform:translateY(0) rotate(8deg) scale(1.05,.93)}25%{transform:translateY(-24px) rotate(0) scale(.95,1.07)}50%{transform:translateY(0) rotate(-8deg) scale(1.05,.93)}75%{transform:translateY(-24px) rotate(0) scale(.95,1.07)}}
.fx-toast .abody{position:absolute; left:0; top:0; width:62px; height:80px; border-radius:50% 50% 48% 48% / 62% 62% 38% 38%; background:radial-gradient(circle at 50% 62%,#d8ec86 0 45%,#a9cf4d 70%); border:5px solid #2f5d1f; box-shadow:inset -6px -6px 0 rgba(40,90,20,.2);}
.fx-toast .pit{position:absolute; left:17px; bottom:7px; width:26px; height:26px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#a8602b,#6b3512);}
.fx-toast .ewhite{position:absolute; left:0; top:12px; width:84px; height:68px; border-radius:52% 48% 44% 56% / 60% 48% 52% 40%; background:#fff; box-shadow:inset -5px -6px 0 rgba(0,0,0,.07),0 2px 0 #e9e9e9;}
.fx-toast .yolk{position:absolute; left:20px; top:10px; width:44px; height:44px; border-radius:50%; background:radial-gradient(circle at 34% 30%,#ffe27a,#ffb81c 55%,#f08c00); box-shadow:inset -4px -5px 0 rgba(200,90,0,.25);}
.fx-toast .ey{position:absolute; top:22px; width:7px; height:9px; border-radius:50%; background:#1a1a1a; animation:blink 3s infinite;}
.fx-toast .ey::after{content:""; position:absolute; left:1px; top:1px; width:3px; height:3px; border-radius:50%; background:#fff;}
.fx-toast .ey.l{left:15px;} .fx-toast .ey.r{right:15px;}
.fx-toast .yolk .ey{top:14px;} .fx-toast .yolk .ey.l{left:10px;} .fx-toast .yolk .ey.r{right:10px;}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
.fx-toast .mo{position:absolute; left:50%; top:36px; width:16px; height:8px; margin-left:-8px; border-radius:0 0 16px 16px; background:#7a1f1f; animation:mouth .45s ease-in-out infinite alternate;}
.fx-toast .yolk .mo{top:26px; width:12px; height:6px; margin-left:-6px;}
@keyframes mouth{to{height:4px}}
.fx-toast .ar,.fx-toast .lg{position:absolute; display:block; width:5px; border-radius:3px; background:#222; transform-origin:50% 0;}
.fx-toast .ar{height:30px; top:38px;} .fx-toast .avo .ar{top:34px;}
.fx-toast .ar.l{left:-4px; animation:armL .45s ease-in-out infinite alternate;} .fx-toast .ar.r{right:-4px; animation:armR .45s ease-in-out infinite alternate;}
.fx-toast .egg .ar.l{left:-5px; top:44px;} .fx-toast .egg .ar.r{right:-5px; top:44px;}
@keyframes armL{from{transform:rotate(25deg)}to{transform:rotate(160deg)}} @keyframes armR{from{transform:rotate(-160deg)}to{transform:rotate(-25deg)}}
.fx-toast .lg{height:26px; top:76px;} .fx-toast .lg.l{left:16px; animation:legL .45s ease-in-out infinite alternate;} .fx-toast .lg.r{right:16px; animation:legR .45s ease-in-out infinite alternate;}
.fx-toast .egg .lg{top:72px;} .fx-toast .egg .lg.l{left:24px;} .fx-toast .egg .lg.r{right:24px;}
@keyframes legL{from{transform:rotate(-14deg)}to{transform:rotate(18deg)}} @keyframes legR{from{transform:rotate(14deg)}to{transform:rotate(-18deg)}}
.fx-toast .nt{position:absolute; color:var(--lime); font-size:26px; opacity:0; animation:noteUp 3s ease-out infinite;}
.fx-toast .n1{left:20px; bottom:150px;} .fx-toast .n2{left:140px; bottom:170px; animation-delay:1s; color:#ffc93c;} .fx-toast .n3{right:10px; bottom:140px; animation-delay:2s; color:#ff7fb5;}
@keyframes noteUp{0%{opacity:0; transform:translateY(0) rotate(-10deg)}20%{opacity:1}100%{opacity:0; transform:translateY(-70px) rotate(14deg)}}
@media(max-width:1100px){.fx-toast{right:300px;}}
@media(max-width:760px){.fx-toast{transform:scale(.52); transform-origin:100% 0; right:0; top:-6px;} .fx-crepe{display:none;}}
@media(prefers-reduced-motion:reduce){.fx-toast .ts,.fx-toast .dn,.fx-toast .ar,.fx-toast .lg,.fx-toast .nt{animation:none;}}


/* ===== GNOCCHI BOYS: italiano "mamma mia" ===== */
.fx-chef{position:absolute; right:360px; top:-40px; width:210px; height:230px; pointer-events:none;}
.fx-chef .chef-svg{width:100%; height:100%; overflow:visible; filter:drop-shadow(0 14px 18px rgba(0,0,0,.5));}
.chef-bob{transform-origin:110px 230px; animation:chefBob 1.6s ease-in-out infinite;}
@keyframes chefBob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}
.chef-hand{transform-box:view-box; animation:mammaMia .5s ease-in-out infinite alternate; transform-origin:184px 210px;}
@keyframes mammaMia{from{transform:translate(184px,158px) rotate(-7deg)}to{transform:translate(184px,148px) rotate(7deg)}}
.chef-mouth{transform-box:fill-box; transform-origin:center; animation:chefMouth 1.2s ease-in-out infinite;}
@keyframes chefMouth{0%,100%{transform:scale(1,1)}50%{transform:scale(1.25,1.5)}}
.chef-svg .brow{animation:browUp 1.2s ease-in-out infinite;}
@keyframes browUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.chef-bubble{position:absolute; left:-70px; top:-8px; z-index:2; font-family:'Bricolage Grotesque'; font-weight:800; font-style:italic; font-size:22px; letter-spacing:.02em; color:#1a1a1a; background:#fff; padding:10px 16px 12px; border-radius:20px; border-bottom:6px solid transparent; border-image:linear-gradient(90deg,#009246 0 33%,#fff 33% 66%,#ce2b37 66%) 1; white-space:nowrap; transform-origin:90% 100%; animation:bubblePop 2.4s ease-in-out infinite;}
.chef-bubble i{position:absolute; right:22px; bottom:-18px; width:16px; height:16px; background:#fff; transform:rotate(45deg); z-index:-1;}
@keyframes bubblePop{0%,100%{transform:scale(.92) rotate(-4deg)}50%{transform:scale(1.08) rotate(3deg)}}
@media(max-width:1100px){.fx-chef{right:250px;}}
@media(max-width:760px){.fx-chef{transform:scale(.5); transform-origin:100% 0; right:60px; top:-10px;}}
@media(prefers-reduced-motion:reduce){.chef-bob,.chef-hand,.chef-mouth,.chef-svg .brow,.chef-bubble{animation:none;}}
.fx-toast{right:400px;}
@media(max-width:1100px){.fx-toast{right:300px;}}
.fx-chef{right:175px;}
@media(max-width:1100px){.fx-chef{right:150px;}}
@media(max-width:760px){.fx-chef{right:70px;}}


/* ===== MOBILE: menus desplegables hacia abajo ===== */
.tabs-toggle{display:none;}
@media (max-width:900px){
  nav.links{position:absolute; top:100%; left:0; right:0; bottom:auto; justify-content:flex-start; align-items:stretch; gap:0; padding:6px 24px 22px; background:rgba(4,20,12,.97); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid rgba(185,232,74,.25); box-shadow:0 30px 50px -20px rgba(0,0,0,.7); transform:translateY(-14px); max-height:0; overflow:hidden; opacity:0; visibility:hidden; transition:transform .35s var(--ease), opacity .25s, max-height .4s var(--ease), visibility .35s;}
  body.menu-open nav.links{transform:none; max-height:80vh; opacity:1; visibility:visible;}
  nav.links a{font-size:22px; padding:15px 4px; border-bottom:1px solid rgba(185,232,74,.12); text-align:left;}
  nav.links a:last-child{border-bottom:0;}
}
@media (max-width:760px){
  .tabs{top:62px;}
  .tabs-toggle{display:flex; align-items:center; gap:10px; width:100%; padding:14px 24px; background:none; border:0; color:var(--white); font:700 16px 'Outfit',sans-serif; text-align:left; cursor:pointer;}
  .tabs-toggle .tt-l{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--sand-dim); font-weight:600;}
  .tabs-toggle b{flex:1; font-family:'Bricolage Grotesque'; font-size:20px; font-weight:800; color:var(--accent,var(--lime)); text-transform:uppercase; letter-spacing:.01em;}
  .tabs-toggle b::before{content:""; display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--accent,var(--lime)); margin-right:10px; box-shadow:0 0 12px var(--accent,var(--lime));}
  .tabs-toggle svg{transition:transform .3s var(--ease);}
  .tabs.open .tabs-toggle svg{transform:rotate(180deg);}
  .tabs .tabs-in{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; padding:6px 16px 14px; overflow-y:auto; max-height:calc(100vh - 140px); background:rgba(4,20,12,.97); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid rgba(185,232,74,.25); box-shadow:0 30px 50px -20px rgba(0,0,0,.8);}
  .tabs.open .tabs-in{display:flex; animation:tabsDrop .3s var(--ease);}
  .tabs .tab{width:100%; text-align:left; border:0; border-radius:12px; border-bottom:1px solid rgba(185,232,74,.1); padding:15px 12px; font-size:17px; background:none; box-shadow:none;}
  .tabs .tab.on{background:rgba(255,255,255,.07); color:var(--accent,var(--lime));}
  .fx-chef{top:150px; right:12px;}
}
@keyframes tabsDrop{from{opacity:0; transform:translateY(-10px)}to{opacity:1; transform:none}}
@media(max-width:760px){.fx-toast{right:0; top:40px;}}

/* ===== GAME ===== */
.game{padding:90px 0 40px;}
.game h2 em{font-style:normal; color:var(--sun);}
.g-box{position:relative; border-radius:30px; overflow:hidden; background:radial-gradient(circle at 50% 0,#14552f,#06180e 70%); border:1px solid rgba(185,232,74,.3); box-shadow:0 30px 70px -30px rgba(0,0,0,.8); user-select:none; -webkit-user-select:none; touch-action:manipulation;}
.g-hud{display:flex; justify-content:space-around; padding:16px 12px; background:rgba(0,0,0,.28); border-bottom:1px solid rgba(185,232,74,.15);}
.g-hud div{text-align:center;} .g-hud small{display:block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--sand-dim);}
.g-hud b{font-family:'Bricolage Grotesque'; font-size:34px; line-height:1.1; color:var(--lime);} .g-hud div:nth-child(2) b{color:var(--sun);}
.g-arena{position:relative; height:min(62vh,460px); min-height:340px; overflow:hidden;}
.g-arena.shake{animation:gShake .3s;}
@keyframes gShake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.g-item{position:absolute; left:0; top:0; width:54px; height:54px; padding:0; border:0; background:none; font-size:44px; line-height:54px; cursor:pointer; will-change:transform; filter:drop-shadow(0 6px 6px rgba(0,0,0,.45)); -webkit-tap-highlight-color:transparent;}
.g-item.boom{opacity:0; transition:opacity .18s; scale:1.7;}
.g-pop{position:absolute; z-index:3; font-family:'Bricolage Grotesque'; font-weight:800; font-size:26px; color:var(--lime); pointer-events:none; animation:gPop .7s ease-out forwards;} .g-pop.bad{color:#ff6a4d;}
@keyframes gPop{to{transform:translateY(-46px); opacity:0}}
.g-overlay{position:absolute; inset:0; z-index:5; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(4,20,12,.82); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);}
.g-overlay.on{display:flex;}
.g-card{max-width:440px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px; animation:gCard .5s var(--ease);}
@keyframes gCard{from{opacity:0; transform:translateY(20px) scale(.94)}}
.g-card h3{font-size:clamp(30px,6vw,46px); text-transform:uppercase; color:var(--white); line-height:1;}
.g-card p{color:var(--sand-dim); font-size:16px; line-height:1.5;}
.g-emoji{font-size:46px; animation:gBob 1.6s ease-in-out infinite;} @keyframes gBob{50%{transform:translateY(-8px) rotate(6deg)}}
.g-card .btn{min-width:220px; justify-content:center;}
.g-card.win h3{color:var(--sun);}
.g-card.ticket{padding:26px 28px; border-radius:24px; background:linear-gradient(160deg,#c9f25a,#8dbb2c); color:var(--night); border:3px dashed rgba(4,20,12,.5); position:relative; overflow:hidden;}
.g-card.ticket::after{content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%); transform:translateX(-120%); animation:gShine 2.8s infinite;}
@keyframes gShine{to{transform:translateX(120%)}}
.g-card.ticket small{letter-spacing:.2em; text-transform:uppercase; font-weight:700; font-size:11px;}
.g-card.ticket h3{color:var(--night);} .g-card.ticket p{color:rgba(4,20,12,.8); font-weight:500;}
.g-code{font-family:'Bricolage Grotesque'; font-weight:800; font-size:46px; letter-spacing:.08em; background:var(--night); color:var(--lime); padding:6px 22px; border-radius:14px;}
.g-live{display:flex; flex-direction:column; gap:2px; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums;} .g-live em{font-style:normal; opacity:.7; font-weight:500;}
.g-conf{position:absolute; top:-12px; width:9px; height:15px; z-index:9; pointer-events:none; animation:gFall 2s linear forwards;}
@keyframes gFall{to{transform:translateY(560px) rotate(720deg); opacity:.9}}
@media(max-width:620px){.g-arena{height:56vh; min-height:320px}.g-code{font-size:38px}}

/* ===== SECRETS / HUNT / QR ===== */
.critter{position:absolute; z-index:6; width:30px; height:30px; padding:0; border:0; background:none; font-size:20px; line-height:30px; opacity:.16; cursor:pointer; transition:opacity .3s, transform .3s; filter:grayscale(.6); -webkit-tap-highlight-color:transparent;}
.c-card:hover .critter{opacity:.5;} .critter:hover{opacity:1; transform:scale(1.5) rotate(-10deg); filter:none;}
.critter.got{opacity:.9; filter:none;} .critter.hit{animation:critHit .6s;}
@keyframes critHit{40%{transform:scale(2.4) rotate(20deg)}}
.hunt-chip{position:fixed; left:14px; bottom:14px; z-index:300; background:var(--night); color:var(--white); border:1px solid rgba(185,232,74,.4); padding:9px 14px; border-radius:99px; font-size:14px;} .hunt-chip b{color:var(--lime);}
.hunt-chip.pulse{animation:chipPulse .6s;} @keyframes chipPulse{40%{transform:scale(1.25)}}
.jr-toast{position:fixed; left:50%; bottom:28px; z-index:500; max-width:min(92vw,420px); transform:translate(-50%,30px); opacity:0; pointer-events:none; background:var(--night); color:var(--white); border:1px solid var(--lime); border-radius:18px; padding:14px 20px; text-align:center; font-size:15px; line-height:1.4; box-shadow:0 20px 50px rgba(0,0,0,.6); transition:.4s var(--ease);}
.jr-toast.on{opacity:1; transform:translate(-50%,0);} .jr-toast b{color:var(--lime);}
.jr-rain{position:fixed; top:-60px; z-index:450; pointer-events:none; font-style:normal; animation:jrRain linear forwards;}
@keyframes jrRain{to{transform:translateY(112vh) rotate(540deg)}}
.jr-fly{position:fixed; left:-120px; z-index:450; pointer-events:none; font-style:normal; animation:jrFly linear forwards;}
@keyframes jrFly{0%{transform:translate(0,0) rotate(-8deg)}50%{transform:translate(55vw,-40px) rotate(6deg)}100%{transform:translate(115vw,20px) rotate(-6deg)}}
body.jr-party{animation:jrHue 1.2s linear infinite;} @keyframes jrHue{to{filter:hue-rotate(360deg)}}
.jr-modal{position:fixed; inset:0; z-index:600; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(2,12,7,.82); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); animation:gCard .4s var(--ease);}
.jr-card{max-width:420px; width:100%; text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px; padding:34px 28px; border-radius:30px; background:linear-gradient(170deg,#0f4426,#06180e); border:1px solid rgba(185,232,74,.4);}
.jr-card h3{font-size:34px; text-transform:uppercase; color:var(--white); line-height:1;} .jr-card p{color:var(--sand-dim); font-size:16px; line-height:1.5;}
.jr-badge{font-size:26px; letter-spacing:4px;} .jr-card .btn{min-width:210px; justify-content:center;}
.play-pill{position:fixed; right:14px; bottom:14px; z-index:300; display:flex; gap:8px; align-items:center; padding:12px 18px; border-radius:99px; background:var(--sun); color:var(--night); font-weight:800; font-size:14px; text-decoration:none; box-shadow:0 12px 30px rgba(0,0,0,.5); animation:pillBob 2.4s ease-in-out infinite;}
@keyframes pillBob{50%{transform:translateY(-5px)}}
@media(max-width:620px){.play-pill span{display:none} .play-pill{padding:14px}}

.g-item{width:46px;height:46px;font-size:38px;line-height:46px;} .g-item.gold{filter:drop-shadow(0 0 10px #ffc93c) drop-shadow(0 0 22px #ffc93c); animation:goldPulse .5s ease-in-out infinite alternate;}
@keyframes goldPulse{to{scale:1.18}}
.hero-actions .btn.play{background:var(--sun); color:var(--night); animation:playWiggle 2.6s ease-in-out infinite;}
@keyframes playWiggle{0%,86%,100%{transform:none}90%{transform:rotate(-4deg) scale(1.06)}94%{transform:rotate(4deg) scale(1.06)}}
#game{padding-top:60px;}

/* ===== FONDO DIVERTIDO: monos, mariposas, loros ===== */
.jr-zoo{position:fixed; inset:0; z-index:90; pointer-events:none; overflow:hidden;}
.jr-swing{position:absolute; top:60px; width:84px; transform-origin:50% 0; animation:jrSwing 3.4s ease-in-out infinite alternate;}
.jr-swing.r{right:14px;} .jr-swing.l{left:14px; animation-duration:4.1s;}
.jr-swing .vine{display:block; width:5px; height:96px; margin:0 auto; border-radius:3px; background:linear-gradient(90deg,#2f6b27,#58a53d); box-shadow:0 0 0 1px rgba(0,0,0,.2);}
.jr-swing .mk{display:block; margin:-14px auto 0; padding:0; border:0; background:none; cursor:pointer; pointer-events:auto; filter:drop-shadow(0 8px 8px rgba(0,0,0,.45)); -webkit-tap-highlight-color:transparent;}
.jr-swing.wow .mk{animation:mkWow .7s;}
@keyframes jrSwing{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
@keyframes mkWow{40%{transform:scale(1.35) rotate(-12deg)}}
.jr-leap{position:absolute; left:0; width:130px; animation:leapX 3.8s linear forwards;}
.jr-leap.back{animation-name:leapXb;} .jr-leap.back .hop svg{transform:scaleX(-1);}
.jr-leap .hop{animation:leapY 1.9s cubic-bezier(.3,.1,.4,1) 2 forwards;}
@keyframes leapX{from{transform:translateX(-160px)}to{transform:translateX(calc(100vw + 30px))}}
@keyframes leapXb{from{transform:translateX(calc(100vw + 30px))}to{transform:translateX(-160px)}}
@keyframes leapY{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-22vh) rotate(-18deg)}100%{transform:translateY(0) rotate(0)}}
.jr-peek{position:absolute; display:flex; align-items:center; gap:2px; font-size:58px; line-height:1; animation:peekIn 5s ease-in-out forwards;}
.jr-peek.l{left:0; transform:translateX(-120%);} .jr-peek.r{right:0; flex-direction:row-reverse; animation-name:peekInR; transform:translateX(120%);}
.jr-peek em{font-size:34px; font-style:normal; animation:peekBan .5s ease-in-out infinite alternate;}
.jr-peek span{filter:drop-shadow(0 6px 6px rgba(0,0,0,.45));}
@keyframes peekIn{0%,100%{transform:translateX(-120%)}18%,78%{transform:translateX(-6%)}}
@keyframes peekInR{0%,100%{transform:translateX(120%)}18%,78%{transform:translateX(6%)}}
@keyframes peekBan{to{transform:rotate(25deg)}}
.jr-wing{position:absolute; left:-80px; font-style:normal; font-size:30px; animation:wingA 28s linear infinite;}
.jr-wing.w0{top:30vh;} .jr-wing.w1{top:62vh; font-size:24px; animation-duration:36s; animation-delay:-14s;} .jr-wing.w2{top:18vh; font-size:46px; animation-duration:46s; animation-delay:-30s;}
@keyframes wingA{0%{transform:translate(0,0) rotate(8deg)}25%{transform:translate(28vw,-40px) rotate(-8deg)}50%{transform:translate(55vw,30px) rotate(10deg)}75%{transform:translate(85vw,-30px) rotate(-6deg)}100%{transform:translate(110vw,10px) rotate(6deg)}}
@media(max-width:760px){.jr-swing{top:56px; width:60px; zoom:.72} .jr-swing.r{right:4px}}

/* ===== v8: KNOCKOUT bolsa, BENDITO voladores, SMASH tinder, TUMBAO masa madre, BAR colega ===== */
.fx-bag{position:absolute; right:250px; top:-70px; width:84px; height:230px; transform-origin:50% 0; pointer-events:none; animation:bagIdle 3.4s ease-in-out infinite; filter:drop-shadow(0 12px 14px rgba(0,0,0,.5));}
.fx-bag svg{width:100%; height:100%;}
.fx-bag.hit{animation:bagHit 1.6s ease-out;}
@keyframes bagIdle{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes bagHit{0%{transform:rotate(0)}12%{transform:rotate(32deg)}34%{transform:rotate(-22deg)}56%{transform:rotate(14deg)}78%{transform:rotate(-7deg)}100%{transform:rotate(0)}}
@media(max-width:1100px){.fx-bag{right:170px}}
@media(max-width:760px){.fx-bag{transform:scale(.62); transform-origin:50% 0; right:14px; top:-40px; animation-name:bagIdleM} .fx-bag.hit{animation-name:bagHitM} @keyframes bagIdleM{0%,100%{transform:scale(.62) rotate(-5deg)}50%{transform:scale(.62) rotate(5deg)}} @keyframes bagHitM{0%{transform:scale(.62) rotate(0)}12%{transform:scale(.62) rotate(32deg)}34%{transform:scale(.62) rotate(-22deg)}56%{transform:scale(.62) rotate(14deg)}78%{transform:scale(.62) rotate(-7deg)}100%{transform:scale(.62) rotate(0)}}}

.fx-flyer{position:fixed; top:0; left:0; width:130px; z-index:62; pointer-events:none; perspective:600px; filter:drop-shadow(0 14px 14px rgba(0,0,0,.45)); will-change:transform;}
.fx-flyer svg{width:100%; display:block; overflow:visible; animation:flyFlip 3.2s linear infinite;}
@keyframes flyFlip{0%{transform:rotateY(0) rotateX(8deg)}50%{transform:rotateY(180deg) rotateX(-8deg)}100%{transform:rotateY(360deg) rotateX(8deg)}}
.fx-flyer .stm{animation:stmUp 1.6s ease-in-out infinite;} .fx-flyer .stm.s2{animation-delay:.5s;}
@keyframes stmUp{0%{opacity:0;transform:translateY(8px)}50%{opacity:1}100%{opacity:0;transform:translateY(-10px)}}

.tdk{position:relative; width:min(340px,100%); margin:30px auto 10px; padding:18px 18px 14px; border-radius:30px; background:linear-gradient(170deg,#1c0f0c,#0a0605); border:1px solid rgba(255,106,77,.5); box-shadow:0 30px 70px -28px rgba(255,80,50,.5); text-align:center;}
.tdk-top{display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:12px;} .tdk-flame{width:26px; height:32px;}
.tdk-top b{font-family:'Bricolage Grotesque'; font-size:26px; letter-spacing:-.01em; background:linear-gradient(90deg,#ff3d2e,#ff9a2e); -webkit-background-clip:text; background-clip:text; color:transparent;} .tdk-top em{font-style:normal; font-weight:700; margin:0 3px; font-size:.7em;}
.tdk-stack{position:relative; height:330px; touch-action:pan-y; user-select:none; -webkit-user-select:none;}
.tcard{position:absolute; inset:0; border-radius:22px; background:#fff7ea; color:#1a0d08; padding:14px; display:flex; flex-direction:column; gap:6px; box-shadow:0 14px 30px rgba(0,0,0,.45); cursor:grab; will-change:transform;}
.tc-art{flex:1; display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 50% 55%,#ffe2b0,#ffcf8a); border-radius:16px; pointer-events:none;} .tc-art svg{width:86%;}
.tc-info{display:flex; justify-content:space-between; align-items:baseline; gap:8px; pointer-events:none;} .tc-info b{font-family:'Bricolage Grotesque'; font-size:20px; text-align:left; line-height:1.05;} .tc-info span{font-weight:800; color:#d62828;}
.tc-d{font-size:12.5px; text-align:left; opacity:.7; pointer-events:none;}
.tc-st{position:absolute; top:22px; padding:4px 12px; border:4px solid; border-radius:10px; font-family:'Bricolage Grotesque'; font-weight:800; font-size:26px; letter-spacing:.04em; opacity:0; pointer-events:none;}
.tc-st.smash{left:16px; color:#1fb85a; border-color:#1fb85a; transform:rotate(-14deg);} .tc-st.pass{right:16px; color:#e8312a; border-color:#e8312a; transform:rotate(14deg);}
.tdk-btns{display:flex; justify-content:center; gap:26px; margin-top:14px;} .tdk-btns button{width:58px; height:58px; border-radius:50%; border:0; font-size:26px; cursor:pointer; background:#1b1210; transition:transform .2s; box-shadow:0 8px 18px rgba(0,0,0,.5);}
.tdk-btns .no{color:#ff4d4d; border:2px solid #ff4d4d;} .tdk-btns .yes{color:#2ee276; border:2px solid #2ee276;} .tdk-btns button:active{transform:scale(.88);}
.tdk-hint{margin-top:10px; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--sand-dim);}
.tdk-match{position:absolute; inset:0; z-index:30; border-radius:30px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:linear-gradient(160deg,rgba(255,61,46,.96),rgba(255,154,46,.96)); color:#fff; opacity:0; pointer-events:none; transition:opacity .25s;}
.tdk.match .tdk-match{opacity:1;} .tdk-mt{font-family:'Bricolage Grotesque'; font-weight:800; font-size:34px; font-style:italic; animation:mtPop .6s;} .tdk-ms{font-size:14px; padding:0 20px;}
@keyframes mtPop{from{transform:scale(.3) rotate(-12deg)}to{transform:scale(1) rotate(-4deg)}}

/* tostada de masa madre */
.fx-toast .toast{background:
  radial-gradient(circle at 22% 30%,rgba(120,75,30,.55) 0 5px,transparent 6px),radial-gradient(circle at 60% 24%,rgba(120,75,30,.5) 0 7px,transparent 8px),radial-gradient(circle at 78% 44%,rgba(120,75,30,.5) 0 4px,transparent 5px),
  radial-gradient(circle at 36% 58%,rgba(120,75,30,.5) 0 8px,transparent 9px),radial-gradient(circle at 68% 70%,rgba(120,75,30,.5) 0 5px,transparent 6px),radial-gradient(circle at 18% 72%,rgba(120,75,30,.45) 0 4px,transparent 5px),radial-gradient(circle at 50% 44%,rgba(120,75,30,.45) 0 3px,transparent 4px),
  radial-gradient(circle at 40% 35%,#f5e0b4,#e8c88a 75%); border:14px solid #7d4b1d; border-radius:50% 50% 16% 16% / 46% 46% 12% 12%;}
.fx-toast .toast::after{content:""; position:absolute; inset:-14px; border-radius:inherit; background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.55) 0 2px,transparent 3px) 0 0/22px 22px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.45) 0 1.5px,transparent 2.5px) 0 0/17px 17px; mix-blend-mode:screen; opacity:.5; pointer-events:none;}

/* colega bebiendo cerveza (The Jungle Bar) */
.fx-buddy{position:absolute; right:185px; top:-52px; width:230px; height:250px; pointer-events:none; filter:drop-shadow(0 14px 18px rgba(0,0,0,.5));}
.bm-svg{width:100%; height:100%; overflow:visible;}
.bm-bob{transform-origin:120px 260px; animation:bmBob 4s ease-in-out infinite;}
@keyframes bmBob{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg) translateY(-3px)}}
.bm-arm{transform-box:view-box; transform-origin:190px 190px; animation:bmArm 4.4s ease-in-out infinite;}
@keyframes bmArm{0%,12%{transform:rotate(0)}30%,66%{transform:rotate(-34deg) translate(-26px,-24px)}84%,100%{transform:rotate(0)}}
.bm-mug{transform-box:view-box; transform-origin:200px 128px; animation:bmMug 4.4s ease-in-out infinite;}
@keyframes bmMug{0%,12%{transform:rotate(0)}30%,66%{transform:rotate(-58deg)}84%,100%{transform:rotate(0)}}
.bm-beer{transform-box:fill-box; transform-origin:50% 100%; animation:bmBeer 4.4s ease-in-out infinite;}
@keyframes bmBeer{0%,12%{transform:scaleY(1)}66%{transform:scaleY(.12)}84%{transform:scaleY(.12)}100%{transform:scaleY(1)}}
.bm-b1,.bm-b2{animation:bmBub 1.2s ease-in infinite;} .bm-b2{animation-delay:.5s;} @keyframes bmBub{0%{transform:translateY(8px);opacity:0}50%{opacity:1}100%{transform:translateY(-22px);opacity:0}}
.bm-say{position:absolute; left:-30px; top:6px; z-index:3; font-family:'Bricolage Grotesque'; font-weight:800; font-size:17px; color:#1a1a1a; background:#fff; border-radius:16px; padding:7px 13px; white-space:nowrap; transform:rotate(-5deg); min-width:150px; text-align:center; height:34px;}
.bm-say span{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:0;}
.bm-say .a{animation:bmSayA 4.4s infinite;} .bm-say .b{animation:bmSayB 4.4s infinite; color:#e0453a; font-size:22px;}
@keyframes bmSayA{0%,26%{opacity:0}34%,62%{opacity:1}70%,100%{opacity:0}} @keyframes bmSayB{0%,66%{opacity:0}72%,92%{opacity:1}98%,100%{opacity:0}}
@media(max-width:1100px){.fx-buddy{right:120px}}
@media(max-width:760px){.fx-buddy{transform:scale(.55); transform-origin:100% 0; right:4px; top:-14px;} .bm-say{display:none}}

.fx-buddy{right:60px !important;}
@media(max-width:760px){.fx-buddy{right:4px !important;}}

/* ===== v8: selector de idioma desplegable, caza de monos ===== */
.lang{position:relative;}
.lang-btn{min-width:46px;}
.lang-list{position:absolute; top:calc(100% + 10px); right:0; z-index:400; list-style:none; margin:0; padding:6px; min-width:190px; border-radius:18px; background:rgba(4,20,12,.97); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border:1px solid rgba(185,232,74,.3); box-shadow:0 24px 50px -16px rgba(0,0,0,.8); opacity:0; visibility:hidden; transform:translateY(-8px); transition:.25s var(--ease);}
.lang.open .lang-list{opacity:1; visibility:visible; transform:none;}
.lang-list li{padding:12px 14px; border-radius:12px; font-size:16px; cursor:pointer; color:var(--cream,#f5ecd5);} .lang-list li:hover{background:rgba(255,255,255,.08);} .lang-list li.on{color:var(--lime); font-weight:700;}
html[lang="zh"] body{font-family:'Outfit','PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC',sans-serif;}
html[lang="zh"] h1,html[lang="zh"] h2,html[lang="zh"] h3{font-family:'Bricolage Grotesque','PingFang SC','Microsoft YaHei','Noto Sans SC',sans-serif; letter-spacing:0;}
html[lang="ru"] h1,html[lang="ru"] h2,html[lang="ru"] h3{letter-spacing:-.01em;}
@media(max-width:620px){.lang-list{position:fixed; left:16px; right:16px; top:70px; min-width:0;}}

.hunt{padding:80px 0 40px;}
.hunt h2 em{font-style:normal; color:var(--sun);}
.hunt-in p{max-width:560px; color:var(--sand-dim); font-size:17px; line-height:1.55; margin:12px 0 18px;}
.hunt-slots{display:flex; flex-wrap:wrap; gap:10px; margin:6px 0 4px;}
.hs{width:54px; height:54px; border-radius:16px; background:rgba(255,255,255,.05); border:1px dashed rgba(185,232,74,.35); display:flex; align-items:center; justify-content:center; padding:7px;}
.hs svg{width:100%; height:100%; filter:grayscale(1) brightness(.5); opacity:.55;} .hs.got{border-style:solid; border-color:var(--lime); background:rgba(185,232,74,.14);} .hs.got svg{filter:none; opacity:1; animation:hsPop .6s;}
@keyframes hsPop{from{transform:scale(.3) rotate(-30deg)}}
.hunt-status{font-weight:700; color:var(--lime) !important; margin:8px 0 18px !important;}
.mk-hide{position:absolute; z-index:7; width:26px; height:26px; padding:0; border:0; background:none; cursor:pointer; opacity:.2; filter:saturate(.4) brightness(.8); pointer-events:auto; animation:mkTwitch 7s ease-in-out infinite; -webkit-tap-highlight-color:transparent;}
.mk-hide svg{width:100%; height:100%; display:block;}
.mk-hide:hover,.mk-hide:focus-visible{opacity:1; filter:none; transform:scale(1.6);}
.mk-hide.pop{animation:mkPop .45s forwards;}
@keyframes mkTwitch{0%,90%,100%{transform:scale(1) rotate(0)}93%{transform:scale(1.18) rotate(-9deg)}96%{transform:scale(1.1) rotate(7deg)}}
@keyframes mkPop{to{transform:scale(4) rotate(40deg); opacity:0}}
.hunt-chip{cursor:pointer; font:inherit;} .hunt-chip.done{background:var(--lime); color:var(--night);} .hunt-chip.done b{color:var(--night);}
.play-pill.away{opacity:0; pointer-events:none; transform:translateY(20px); animation:none;}
.play-pill{transition:opacity .3s, transform .3s;}
.g-card.ticket .btn{margin-top:4px;}
.lang-btn{white-space:nowrap;min-width:46px;}

/* Smash or Pass: mazo compacto y desplazado a un lado */
.tdk{width:236px !important; margin:6px 4% 26px auto !important; padding:12px 12px 10px !important; border-radius:24px !important; transform:rotate(3deg); opacity:.96;}
.tdk-stack{height:236px !important;} .tdk-top b{font-size:19px !important;} .tdk-flame{width:20px !important; height:25px !important;}
.tdk-btns{margin-top:9px !important; gap:18px !important;} .tdk-btns button{width:42px !important; height:42px !important; font-size:19px !important;}
.tdk-hint{display:none !important;} .tc-info b{font-size:16px !important;} .tc-d{display:none !important;}
@media(max-width:700px){ .tdk{margin:0 8px 22px auto !important; width:200px !important;} .tdk-stack{height:200px !important;} }
/* monos de la caza: algo mas visibles */
.mk-hide{width:36px !important; height:36px !important; opacity:.6 !important; filter:saturate(.8) brightness(.95) drop-shadow(0 2px 4px rgba(0,0,0,.5)) !important; animation:mkWig 3.2s ease-in-out infinite !important;}
.mk-hide:hover,.mk-hide:focus-visible{opacity:1 !important; filter:none !important;}
@keyframes mkWig{0%,70%,100%{transform:rotate(0) scale(1);} 78%{transform:rotate(-14deg) scale(1.15);} 86%{transform:rotate(12deg) scale(1.15);} 94%{transform:rotate(-6deg);}}

/* ===== MOTT: rollo vestidor ===== */
.m-rack{margin-top:34px;}
.rk-top{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:10px;}
.rk-top b{display:block; font-size:clamp(34px,5vw,60px); text-transform:uppercase; color:var(--white); line-height:1;} .rk-top p{margin:8px 0 0; max-width:440px; color:var(--sand-dim);}
.rk-arrows{display:flex; gap:10px;} .rk-arrows button{width:48px; height:48px; border-radius:50%; border:1.5px solid var(--accent); background:none; color:var(--accent); font-size:21px; cursor:pointer; transition:.2s;} .rk-arrows button:hover{background:var(--accent); color:#1a0d00;}
.rk-stage{position:relative; padding-top:20px; margin:0 -6px;}
.rk-rail{position:absolute; left:0; right:0; top:14px; height:9px; border-radius:6px; z-index:3; background:linear-gradient(#f1f1ee,#8d8f8c 55%,#4d4f4d); box-shadow:0 8px 14px rgba(0,0,0,.5);}
.rk-leg{position:absolute; top:20px; bottom:-8px; width:7px; background:linear-gradient(90deg,#6c6e6b,#cfd0cc,#6c6e6b); z-index:1; border-radius:4px;} .rk-leg.l{left:12px;} .rk-leg.r{right:12px;}
.rk-scroll{position:relative; z-index:2; overflow-x:auto; scroll-snap-type:x proximity; padding:0 26px 26px; scrollbar-width:none; cursor:grab;} .rk-scroll::-webkit-scrollbar{display:none;} .rk-scroll.drag{cursor:grabbing; scroll-snap-type:none;}
.rk-items{display:flex; gap:22px; width:max-content;}
.rk-it{margin:0; width:230px; flex:0 0 auto; scroll-snap-align:start; position:relative; transform-origin:50% 0; animation:rkSway 4.8s ease-in-out infinite alternate; animation-delay:var(--d);}
.rk-hook{display:block; width:46px; margin:-6px auto -6px; position:relative; z-index:3; filter:drop-shadow(0 4px 4px rgba(0,0,0,.5));}
.rk-card{position:relative; border-radius:6px 6px 14px 14px; overflow:hidden; background:#efe6d6; box-shadow:0 26px 40px -14px rgba(0,0,0,.65); transition:transform .3s;} .rk-it:hover .rk-card{transform:translateY(-4px) scale(1.02);}
.rk-card img{display:block; width:100%; aspect-ratio:3/4; object-fit:cover; cursor:zoom-in; -webkit-user-drag:none; user-select:none;}
.rk-card figcaption{padding:10px 12px 12px; color:#1d120b;} .rk-card figcaption b{display:block; font-family:'Bricolage Grotesque'; font-size:19px; letter-spacing:.02em; text-transform:uppercase;} .rk-card figcaption span{display:block; font-size:12.5px; opacity:.7; margin-top:2px; line-height:1.3;}
.rk-tag{position:absolute; top:10px; left:10px; font-style:normal; font-size:10px; letter-spacing:.14em; text-transform:uppercase; background:rgba(255,255,255,.88); color:#3a1d09; padding:4px 9px; border-radius:20px; font-weight:700;}
.rk-items.kick .rk-it{animation:rkKick .9s ease-out, rkSway 4.8s ease-in-out .9s infinite alternate; animation-delay:calc(var(--d) * .25), 0s;}
@keyframes rkSway{from{transform:rotate(-1.6deg);} to{transform:rotate(1.6deg);}}
@keyframes rkKick{0%{transform:rotate(0);} 25%{transform:rotate(6deg);} 55%{transform:rotate(-4deg);} 80%{transform:rotate(2deg);} 100%{transform:rotate(0);}}
.rk-visit{display:grid; grid-template-columns:minmax(220px,360px) 1fr; gap:40px; align-items:center; margin-top:26px;}
.rk-visit img{width:100%; border-radius:22px; border:3px solid var(--accent); cursor:zoom-in; box-shadow:0 30px 60px rgba(0,0,0,.5);}
.rk-visit b{display:block; font-size:clamp(30px,4.4vw,52px); text-transform:uppercase; color:var(--white); line-height:1; margin-bottom:12px;} .rk-visit p{margin:0 0 20px; font-size:18px; max-width:420px;}
@media(max-width:700px){ .rk-it{width:190px;} .rk-top{align-items:flex-start;} .rk-arrows button{width:42px; height:42px;} .rk-visit{grid-template-columns:1fr; gap:20px;} }

.rk-best{position:absolute; top:10px; right:-30px; transform:rotate(38deg); width:130px; text-align:center; font-style:normal; font-weight:800; font-size:11px; letter-spacing:.12em; text-transform:uppercase; background:#ff6a4d; color:#fff; padding:5px 0; box-shadow:0 4px 10px rgba(0,0,0,.4);} .rk-card{overflow:hidden;}
.rk-best{top:auto !important; right:auto !important; width:auto !important; transform:none !important; left:10px; bottom:auto; top:42px !important; padding:5px 11px !important; border-radius:20px; font-size:10px !important; box-shadow:0 4px 10px rgba(0,0,0,.35) !important;}

/* ===== cartelera: peli de la semana ===== */
.w-film{box-shadow:0 0 0 2px rgba(255,201,60,.55), 0 24px 50px -18px rgba(255,201,60,.4);}
.w-film::before,.w-film::after{content:''; position:absolute; top:0; bottom:0; width:16px; z-index:5; pointer-events:none; background:repeating-linear-gradient(#0a0a08 0 12px, transparent 12px 22px); opacity:.85; -webkit-mask:radial-gradient(circle at 50% 50%, transparent 0 0, #000 0);}
.w-film::before{left:0; background:repeating-linear-gradient(to bottom,#0a0a08 0 10px,#ffc93c 10px 18px,#0a0a08 18px 26px); opacity:.55;} .w-film::after{right:0; background:repeating-linear-gradient(to bottom,#0a0a08 0 10px,#ffc93c 10px 18px,#0a0a08 18px 26px); opacity:.55;}
.w-film .w-bot h3{background:linear-gradient(90deg,#fff3c4,#ffc93c); -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:none; font-style:italic; text-transform:uppercase; letter-spacing:.02em;}
.w-ticket{position:absolute; z-index:6; top:56px; right:20px; transform:rotate(5deg); background:#ffc93c; color:#1a0d00; padding:7px 14px 7px 18px; border-radius:6px; text-align:center; line-height:1.15; box-shadow:0 8px 18px rgba(0,0,0,.45); animation:tkPulse 2.6s ease-in-out infinite;}
.w-ticket::before,.w-ticket::after{content:''; position:absolute; top:50%; width:10px; height:10px; margin-top:-5px; border-radius:50%; background:#0a1a10;} .w-ticket::before{left:-5px;} .w-ticket::after{right:-5px;}
.w-ticket span{display:block; font-size:9px; letter-spacing:.2em; font-weight:800;} .w-ticket b{display:block; font-family:'Bricolage Grotesque'; font-size:15px; letter-spacing:.04em;}
@keyframes tkPulse{0%,100%{transform:rotate(5deg) scale(1);}50%{transform:rotate(3deg) scale(1.06);}}
.w-trailer{display:inline-flex; align-items:center; gap:8px; margin-top:12px; padding:9px 16px; border-radius:30px; background:rgba(255,255,255,.14); backdrop-filter:blur(6px); border:1.5px solid #ffc93c; color:#fff; font-weight:700; font-size:13px; letter-spacing:.04em; text-decoration:none; transition:.2s;} .w-trailer i{font-style:normal; color:#ffc93c;} .w-trailer:hover{background:#ffc93c; color:#1a0d00;} .w-trailer:hover i{color:#1a0d00;}
.w-ticket{top:92px !important; right:22px !important;}

/* dificultad de los monos */
.mk-hide.lv2{width:26px !important; height:26px !important; opacity:.3 !important; filter:saturate(.5) brightness(.75) !important; animation:mkWig 7s ease-in-out infinite !important;}
.mk-hide.lv3{width:18px !important; height:18px !important; opacity:.14 !important; filter:saturate(.3) brightness(.6) !important; animation:none !important;}
.mk-hide.lv2:hover,.mk-hide.lv3:hover,.mk-hide.lv2:focus-visible,.mk-hide.lv3:focus-visible{opacity:1 !important; filter:none !important;}
/* ===== MINIJUEGOS ===== */
.mg-btn{display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:16px; padding:11px 20px; border-radius:40px; border:2px solid var(--mg,#b9e84a); background:color-mix(in srgb, var(--mg,#b9e84a) 18%, #0a1a10); color:#fff; font:700 14px 'Outfit',sans-serif; letter-spacing:.03em; cursor:pointer; transition:.2s; box-shadow:0 10px 26px -12px var(--mg,#b9e84a); position:relative; z-index:8;}
.mg-btn i{font-style:normal; font-size:18px;} .mg-btn small{opacity:.75; font-weight:600; font-size:12px; padding-left:10px; border-left:1px solid rgba(255,255,255,.3);} .mg-btn:hover{background:var(--mg,#b9e84a); color:#10200f; transform:translateY(-2px);} .mg-btn:hover small{border-color:rgba(0,0,0,.3);}
.mg-ov{position:fixed; inset:0; z-index:2500; display:none; align-items:center; justify-content:center; background:rgba(3,10,6,.82); backdrop-filter:blur(8px); padding:12px;} .mg-ov.open{display:flex;}
.mg-lock{overflow:hidden;}
.mg-card{position:relative; width:min(380px,100%); max-height:100%; overflow:auto; background:#0c2016; border:2px solid var(--mg,#b9e84a); border-radius:26px; padding:18px 18px 14px; text-align:center; box-shadow:0 30px 80px rgba(0,0,0,.6), 0 0 60px -20px var(--mg,#b9e84a);}
.mg-x{position:absolute; top:8px; right:12px; background:none; border:0; color:#fff; font-size:30px; cursor:pointer; line-height:1;}
.mg-title{font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:26px; color:var(--mg,#b9e84a); text-transform:uppercase; margin-top:2px;} .mg-sub{font-size:13px; color:var(--sand-dim,#cbbf9f); margin:2px 0 10px; min-height:18px;}
.mg-cv{display:block; width:100%; max-width:340px; aspect-ratio:340/440; margin:0 auto; border-radius:18px; touch-action:none; background:#0a1a10; user-select:none; -webkit-user-select:none; cursor:pointer;}
.mg-end{display:none; margin-top:10px; flex-direction:column; align-items:center; gap:6px;} .mg-ov.ended .mg-end{display:flex;} .mg-res{font-family:'Bricolage Grotesque',sans-serif; font-size:24px; color:#fff;} .mg-best{font-size:14px; color:var(--mg,#b9e84a); font-weight:700;} .mg-again{margin-top:4px;}
.mg-wait{margin-top:10px; font-size:12px; letter-spacing:.06em; color:rgba(255,255,255,.6);}
@media(max-height:760px){ .mg-cv{max-width:min(340px, calc((100vh - 230px) * .77));} }

/* ===== MINIJUEGOS ===== */
.mg-btn{display:inline-flex; flex-direction:column; align-items:flex-start; gap:2px; margin-top:16px; padding:11px 20px 11px 16px; border-radius:18px; border:1.5px solid var(--mg,#b9e84a); background:color-mix(in srgb, var(--mg,#b9e84a) 14%, transparent); color:var(--white); cursor:pointer; font-family:inherit; text-align:left; position:relative; transition:.2s;}
.mg-btn i{font-style:normal; margin-right:6px;} .mg-btn span{font-weight:800; font-size:15px; letter-spacing:.02em;} .mg-btn small{font-size:12px; opacity:.75; padding-left:30px; margin-top:-2px;}
.mg-btn{padding-left:16px;} .mg-btn:hover{background:var(--mg,#b9e84a); color:#10170a; transform:translateY(-2px);}
.mg-ov{position:fixed; inset:0; z-index:9000; display:none; align-items:center; justify-content:center; background:rgba(3,10,6,.82); backdrop-filter:blur(6px); padding:14px;} .mg-ov.open{display:flex;}
.mg-card{position:relative; width:min(380px,100%); max-height:100%; overflow:auto; border-radius:26px; padding:16px 16px 14px; text-align:center; background:linear-gradient(170deg,#0f2a1a,#08140d); border:2px solid var(--mg,#b9e84a); box-shadow:0 30px 80px rgba(0,0,0,.6), 0 0 60px color-mix(in srgb, var(--mg,#b9e84a) 30%, transparent);}
.mg-x{position:absolute; top:8px; right:12px; background:none; border:0; color:#fff; font-size:30px; line-height:1; cursor:pointer; opacity:.8;}
.mg-title{font-family:'Bricolage Grotesque','Outfit',sans-serif; font-weight:800; font-size:26px; color:var(--mg,#b9e84a); text-transform:uppercase; padding:0 30px;} .mg-sub{font-size:13px; opacity:.8; margin:4px 0 10px; color:#fff;}
.mg-cv{display:block; width:100%; max-width:340px; aspect-ratio:340/440; margin:0 auto; border-radius:18px; touch-action:none; user-select:none; -webkit-user-select:none; background:#0a1a10;}
.mg-end{display:none; margin-top:12px;} .mg-ov.ended .mg-end{display:flex; flex-direction:column; align-items:center; gap:6px;} .mg-res{font-family:'Bricolage Grotesque',sans-serif; font-size:24px; color:#fff;} .mg-best{font-size:13px; color:var(--mg,#b9e84a);}
.mg-wait{margin-top:10px; font-size:12px; opacity:.65; color:#fff; letter-spacing:.03em;}
body.mg-lock{overflow:hidden;}

/* ===== MINIJUEGOS ===== */
.mg-btn{display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:16px; padding:11px 18px; border-radius:40px; border:2px solid var(--mg,#b9e84a); background:color-mix(in srgb, var(--mg,#b9e84a) 16%, transparent); color:#fff; font:700 14px 'Outfit',sans-serif; letter-spacing:.03em; cursor:pointer; transition:.2s; position:relative; z-index:8;}
.mg-btn i{font-style:normal; font-size:20px;} .mg-btn small{font-weight:600; opacity:.75; padding-left:10px; border-left:1px solid rgba(255,255,255,.35);} .mg-btn:hover{background:var(--mg,#b9e84a); color:#10200f; transform:translateY(-2px);} .mg-btn:hover small{border-color:rgba(0,0,0,.3);}
.mg-ov{position:fixed; inset:0; z-index:9500; display:none; align-items:center; justify-content:center; background:rgba(3,10,6,.82); backdrop-filter:blur(8px); padding:12px;} .mg-ov.open{display:flex;}
.mg-card{position:relative; width:min(380px,100%); max-height:100%; overflow:auto; padding:16px 14px 14px; border-radius:26px; background:#0b1d12; border:2px solid var(--mg,#b9e84a); box-shadow:0 30px 80px rgba(0,0,0,.6), 0 0 60px color-mix(in srgb,var(--mg,#b9e84a) 25%, transparent); text-align:center; color:#fff;}
.mg-x{position:absolute; top:8px; right:12px; background:none; border:0; color:#fff; font-size:30px; cursor:pointer; line-height:1;}
.mg-title{font:800 26px 'Bricolage Grotesque',sans-serif; color:var(--mg,#b9e84a); text-transform:uppercase; letter-spacing:.02em; padding-right:20px;} .mg-sub{font-size:13px; opacity:.75; margin:2px 0 10px;}
.mg-cv{display:block; width:100%; height:auto; border-radius:16px; touch-action:none; user-select:none; -webkit-user-select:none; cursor:pointer;}
.mg-end{display:none; margin-top:12px; flex-direction:column; align-items:center; gap:6px;} .mg-ov.ended .mg-end{display:flex;} .mg-res{font:800 24px 'Bricolage Grotesque',sans-serif;} .mg-best{font-size:14px; color:#ffc93c;}
.mg-wait{margin-top:10px; font-size:12px; letter-spacing:.06em; text-transform:uppercase; opacity:.6;} body.mg-lock{overflow:hidden;}

.mg-form{display:flex; flex-direction:column; gap:8px; width:100%; margin-top:6px;} .mg-form[hidden],.mg-top[hidden]{display:none;}
.mg-form input[type=text],.mg-form input[type=email],.mg-form input:not([type]){padding:11px 14px; border-radius:12px; border:1.5px solid rgba(255,255,255,.25); background:rgba(255,255,255,.07); color:#fff; font:500 15px 'Inter',sans-serif;}
.mg-consent{display:flex; gap:8px; align-items:flex-start; text-align:left; font-size:11.5px; opacity:.8;} .mg-consent input{margin-top:2px;}
.mg-save{padding:11px 16px; border:0; border-radius:30px; background:var(--mg,#b9e84a); color:#10200f; font:800 14px 'Outfit',sans-serif; cursor:pointer;} .mg-save:disabled{opacity:.5;} .mg-msg{font-size:12px; color:#ffc93c;}
.mg-top{list-style:none; padding:0; margin:6px 0 0; width:100%; text-align:left; font-size:13px;} .mg-top li{display:flex; gap:8px; padding:4px 8px; border-bottom:1px solid rgba(255,255,255,.1);} .mg-top li b{width:18px; color:var(--mg,#b9e84a);} .mg-top li em{margin-left:auto; font-style:normal; font-weight:800;} .mg-top li.h{font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:11px; opacity:.7; border:0;}

.yt-ov{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;padding:16px}
.yt-box{position:relative;width:min(900px,100%);aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.yt-box iframe{width:100%;height:100%;border:0}
.yt-x{position:absolute;top:6px;right:8px;z-index:2;background:rgba(0,0,0,.6);color:#fff;border:0;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}

/* ===== hub de minijuegos (portada) ===== */
.mg-hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:8px}
.mg-card-h{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-height:210px;padding:16px;border-radius:22px;border:2px solid var(--mg);background-size:cover;background-position:center;color:#fff;text-align:left;cursor:pointer;font-family:'Outfit',sans-serif;box-shadow:0 18px 40px -22px var(--mg);transition:.2s}
.mg-card-h:hover{transform:translateY(-4px);box-shadow:0 22px 44px -16px var(--mg)}
.mg-card-h small{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:11px;color:var(--mg)}
.mg-card-h b{font:800 22px 'Bricolage Grotesque',sans-serif;line-height:1.1}
.mg-card-h span{font-size:13px;opacity:.85;line-height:1.35}
.mg-card-h em{font-style:normal;font-weight:700;font-size:13px;margin-top:8px;align-self:flex-start;padding:7px 14px;border-radius:30px;background:var(--mg);color:#10200f}
.mg-hub-note{text-align:center;opacity:.7;font-size:13px;margin:18px auto 0;max-width:620px}

/* hub: fondo con <img> real + color de respaldo (nunca gris) */
.mg-card-h{background:#12301f}
.mg-card-h{background:linear-gradient(160deg,color-mix(in srgb,var(--mg) 35%,#0a1a10),#0a1a10)!important;overflow:hidden;-webkit-tap-highlight-color:transparent;isolation:isolate}
.mg-card-h .mg-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.mg-card-h::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,20,12,.15),rgba(4,20,12,.92))}

/* minijuegos en movil: el lienzo cabe en pantalla y al acabar se encoge para ver el formulario */
.mg-card{max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); -webkit-overflow-scrolling:touch}
.mg-cv{width:auto!important; max-width:100%!important; height:min(440px, calc(100vh - 210px))!important; height:min(440px, calc(100dvh - 210px))!important; aspect-ratio:340/440; margin-left:auto!important; margin-right:auto!important}
.mg-ov.ended .mg-cv{height:min(230px, 30vh)!important; height:min(230px, 30dvh)!important}
.mg-form input[type=checkbox]{width:18px;height:18px;flex:0 0 auto}
