/* GN Experiences - sitio web. CSS propio, sin fuentes ni recursos externos. Mobile-first. */
:root{
  --ink:#12071f; --ink2:#1b0d2e; --plum:#2a1247; --violet:#5b3a7a; --lav:#b98cff; --gold:#f1d27a; --gold2:#d9a93f;
  --cream:#f6ecff; --soft:#cdbfe0; --line:rgba(241,210,122,.28);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:ui-rounded,"SF Pro Rounded","Avenir Next",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --gut:max(18px,env(safe-area-inset-left,0px));
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html{background:var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:76px}
body{min-height:100vh;background:transparent;color:var(--cream);font-family:var(--sans);line-height:1.55;overflow-x:clip}
img,video,canvas{max-width:100%;display:block}
a{color:inherit}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--gold);color:#2a1700;padding:10px 14px;border-radius:10px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:10px}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:.01em;line-height:1.1;text-wrap:balance}
.eyebrow{font:700 .74rem var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.muted{color:var(--soft)}

/* ---------- header ---------- */
.top{position:fixed;z-index:90;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;
  padding:max(10px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 10px var(--gut);
  background:linear-gradient(180deg,rgba(18,7,31,.82),rgba(18,7,31,0));transition:background .3s,backdrop-filter .3s}
.top.solid{background:rgba(18,7,31,.86);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.brand img{width:52px;height:auto}
.menu{display:none;margin-left:auto;gap:26px}
.menu a{text-decoration:none;font-weight:600;font-size:.92rem;letter-spacing:.04em;padding:8px 2px;opacity:.9}
.menu a:hover{color:var(--gold);opacity:1}
.pill{margin-left:auto;text-decoration:none;font:700 .86rem var(--sans);letter-spacing:.04em;color:#fff;background:linear-gradient(160deg,#6f45a0,#43236f);border:1px solid rgba(241,210,122,.5);padding:10px 18px;border-radius:999px;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.pill:hover{background:linear-gradient(160deg,#7f52b4,#4f2a82)}
.pill.big{margin:10px 0 0;padding:14px 30px;font-size:1rem}
.burger{appearance:none;border:1px solid rgba(255,255,255,.3);background:rgba(18,7,31,.5);width:44px;height:44px;border-radius:50%;display:grid;place-content:center;gap:6px;cursor:pointer}
.burger span{display:block;width:20px;height:2px;background:#fff;border-radius:2px;transition:transform .3s}
.burger[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:80;background:rgba(18,7,31,.97);backdrop-filter:blur(16px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;opacity:0;transition:opacity .35s}
.drawer.open{opacity:1}
.drawer nav{display:flex;flex-direction:column;align-items:center;gap:18px}
.drawer nav a:not(.pill){font:600 1.9rem var(--serif);text-decoration:none;color:var(--cream);padding:6px 20px}
.drawer-ig{color:var(--soft);font-size:.9rem}
@media (min-width:900px){.menu{display:flex}.pill{margin-left:26px}.burger{display:none}.top{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}

/* ---------- portada: robot a pantalla completa (también en computadora) ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:520px;overflow:hidden;background:#0b0414 url(../media/robot-poster.jpg) 50% 55%/cover no-repeat}
@media (min-aspect-ratio:11/10){.hero{background-image:url(../media/robot-poster-wide.jpg);background-position:50% 50%}}
.hero video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 55%;will-change:transform}
.vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 50%,transparent 45%,rgba(10,3,20,.62)),linear-gradient(180deg,rgba(10,3,20,.5),transparent 26%,transparent 46%,rgba(10,3,20,.86))}
.hero-copy{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 max(22px,env(safe-area-inset-left,0px)) calc(max(78px,11vh) + env(safe-area-inset-bottom,0px))}
.hero-copy h1{font-size:clamp(2.8rem,12vw,6.2rem);color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.65)}
.hero-copy h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .04em .12em;margin-bottom:-.12em}
.hero-copy h1 .w>span{display:inline-block;color:#fff}
.hero-copy h1 .gold>span{color:transparent;background:linear-gradient(100deg,#f1d27a 20%,#fff6cf 38%,#f1d27a 50%,#d9a93f 80%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:sheen 5.5s ease-in-out 1.6s infinite}
@keyframes sheen{0%,35%{background-position:100% 0}100%{background-position:-60% 0}}
.lead{font-size:1.08rem;color:var(--cream);text-shadow:0 2px 14px rgba(0,0,0,.75);max-width:30rem}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}
html:not(.intro-on) .hero-copy .w>span{animation:wup 1s cubic-bezier(.16,.8,.24,1) .15s backwards}
html:not(.intro-on) .hero-copy .w.gold>span{animation:wup 1s cubic-bezier(.16,.8,.24,1) .3s backwards,sheen 5.5s ease-in-out 1.8s infinite}
html:not(.intro-on) .hero-copy .eyebrow{animation:fup .8s ease .05s backwards}
html:not(.intro-on) .hero-copy .lead{animation:fup .9s ease .55s backwards}
html:not(.intro-on) .hero-cta{animation:fup .9s ease .75s backwards}
html:not(.intro-on) .hero video{animation:zoomin 2.4s cubic-bezier(.16,.8,.24,1) backwards}
@keyframes wup{from{transform:translateY(110%)}}
@keyframes fup{from{opacity:0;transform:translateY(18px)}}
@keyframes zoomin{from{transform:scale(1.14)}}
.hint{position:absolute;bottom:calc(max(14px,env(safe-area-inset-bottom,0px)));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;font:600 .7rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--cream);opacity:.85;transition:opacity .4s}
.hint i{width:2px;height:24px;background:linear-gradient(var(--gold),transparent);animation:drip 1.8s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.scrolled .hint,.intro-on .hint{opacity:0}

/* intro: la portada se pone encima de todo mientras dura el video (tocar = saltar) */
.intro-logo,.intro-ui{opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s .6s;pointer-events:none}
.intro-on .hero{cursor:pointer}
.intro-on .hero-copy{opacity:0;visibility:hidden}
.intro-on .intro-logo,.intro-on .intro-ui{opacity:1;visibility:visible;transition:none;pointer-events:auto}
.intro-logo{display:none}
.intro-ui{position:absolute;left:0;right:0;bottom:max(26px,env(safe-area-inset-bottom,0px));padding:0 max(24px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;align-items:center;gap:14px}
.intro-ui .bar{width:min(260px,70%);height:3px;border-radius:3px;background:rgba(255,255,255,.28);overflow:hidden}
.intro-ui .bar i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:var(--gold)}
.skipbtn::after{content:"";display:inline-block;width:8px;height:8px;margin-left:10px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(45deg) translateY(-2px);animation:nudge 1.4s ease-in-out infinite}
@keyframes nudge{50%{transform:rotate(45deg) translate(3px,1px)}}
.skipbtn{appearance:none;border:1px solid rgba(255,255,255,.4);background:rgba(10,3,20,.5);backdrop-filter:blur(8px);color:#fff;font:600 .86rem var(--sans);letter-spacing:.06em;padding:12px 20px;border-radius:999px;cursor:pointer;min-height:44px}

/* ---------- secciones ---------- */
.sec{padding:84px 0;position:relative}
.wrap{width:min(100%,1180px);margin:0 auto;padding:0 var(--gut);padding-right:max(18px,env(safe-area-inset-right,0px))}
.wrap.narrow{width:min(100%,720px)}
.sec h2{font-size:clamp(1.9rem,6.5vw,3rem);margin-top:10px;color:var(--cream)}
.sec p{margin-top:14px}
.about p:not(.eyebrow){font-size:1.1rem;color:var(--soft)}
.js .rv{opacity:0;translate:0 26px;transition:opacity .55s ease var(--d,0s),translate .65s cubic-bezier(.16,.8,.24,1) var(--d,0s)}
.js .rv.in{opacity:1;translate:0 0}

/* barra de progreso */
.prog{position:fixed;z-index:120;top:0;left:0;right:0;height:3px;pointer-events:none}
.prog i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--gold2),var(--gold),#fff6cf)}

/* cinta de servicios */
.marquee{overflow:hidden;white-space:nowrap;padding:16px 0;background:linear-gradient(90deg,#3a0f6b,#9b2aa8 50%,#3a0f6b);border-block:1px solid rgba(255,255,255,.18);box-shadow:0 0 40px rgba(255,47,179,.25)}
.mq{display:inline-flex;align-items:center;gap:26px;animation:mq 38s linear infinite;will-change:transform}
.mq span{font:600 1.05rem var(--serif);letter-spacing:.12em;text-transform:uppercase;color:var(--cream)}
.mq b{color:var(--c);font-weight:400;font-size:.9rem}
@keyframes mq{to{transform:translateX(-50%)}}

/* servicios: cada uno con su protagonismo */
.stage{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:calc(76px + 10px) 0 24px;overflow:hidden;
}
.stage-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.stage-head h2{font-size:clamp(1.7rem,6vw,3rem);margin-top:8px;max-width:20ch}
.stage-head h2 span{color:var(--gold);font-style:italic}
.ctl{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.count{font:600 .8rem var(--sans);letter-spacing:.18em;color:var(--soft);margin-right:6px;white-space:nowrap}
.count b{font:600 1.7rem var(--serif);color:var(--gold);letter-spacing:0}
.arrow{appearance:none;width:46px;height:46px;border-radius:50%;cursor:pointer;color:#fff;font-size:1.1rem;background:rgba(241,210,122,.08);border:1px solid rgba(241,210,122,.5);transition:background .2s,transform .2s}
.arrow:hover{background:rgba(241,210,122,.2)}
.rail{--sw:min(76vw,420px);position:relative;display:flex;align-items:center;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
  padding:34px calc(50% - var(--sw)/2) 38px;margin:-14px 0 -14px;perspective:1100px;outline-offset:-4px}
.rail::-webkit-scrollbar{display:none}
.slide{flex:0 0 var(--sw);height:min(58svh,540px);height:min(58vh,540px);height:min(58svh,540px);scroll-snap-align:center;scroll-snap-stop:always;position:relative;isolation:isolate;overflow:hidden;border-radius:30px;border:1px solid rgba(241,210,122,.28);background:#10061c;
  transform:rotateY(var(--ry,0deg)) scale(var(--s,.92));opacity:var(--a,.7);will-change:transform,opacity;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.slide.on{border-color:rgba(241,210,122,.7);box-shadow:0 30px 60px rgba(0,0,0,.55),0 0 46px -12px var(--c1)}
@media (min-width:900px){.rail{--sw:min(44vw,600px);gap:30px}.slide{height:min(62vh,580px)}}
[data-h="0"]{--c1:#ff3d81;--c2:#ff9e3d}
[data-h="1"]{--c1:#f1c24a;--c2:#c2571b}
[data-h="2"]{--c1:#27d3e6;--c2:#7a4bff}
[data-h="3"]{--c1:#19c37d;--c2:#f6d046}
[data-h="4"]{--c1:#ff4fd0;--c2:#7a4bff}
[data-h="5"]{--c1:#e5384f;--c2:#f1c24a}
[data-h="6"]{--c1:#4b7bff;--c2:#b98cff}
.art{position:absolute;inset:0;z-index:-2;overflow:hidden;background:radial-gradient(90% 70% at 50% 110%,var(--c2),transparent 70%),radial-gradient(80% 60% at 20% 0%,var(--c1),transparent 70%),#12061f}
.art::before{content:"";position:absolute;left:-50%;top:-30%;width:200%;height:200%;background:conic-gradient(from 0deg at 50% 62%,transparent 0 8%,var(--c1) 12%,transparent 18% 32%,var(--c2) 38%,transparent 44% 58%,var(--c1) 64%,transparent 70% 84%,var(--c2) 90%,transparent 96%);opacity:.5;filter:blur(22px);animation:fan 14s linear infinite}
.art::after{content:"";position:absolute;inset:0;background:radial-gradient(rgba(255,255,255,.16) 1px,transparent 1.4px) 0 0/16px 16px;opacity:.5;mask-image:linear-gradient(180deg,#000,transparent 70%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%)}
@keyframes fan{to{transform:rotate(360deg)}}
.lt{position:absolute;top:-20%;width:34%;height:150%;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent 70%);filter:blur(10px);opacity:.14;transform:rotate(18deg);animation:sweep 7s ease-in-out infinite alternate}
.l1{left:6%}.l2{left:40%;animation-delay:-2.4s;transform:rotate(-14deg)}.l3{left:70%;animation-delay:-4.6s}
@keyframes sweep{from{translate:-14% 0;opacity:.08}to{translate:14% 0;opacity:.24}}
.orb{position:absolute;left:50%;top:36%;width:58%;aspect-ratio:1;translate:calc(-50% + var(--px,0px)*-.7) -50%;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff 0,var(--c1) 24%,var(--c2) 64%,transparent 72%);box-shadow:0 0 110px 18px var(--c1);opacity:.92;animation:orb 7s ease-in-out infinite alternate}
.orb::before,.orb::after{content:"";position:absolute;inset:-16%;border-radius:50%;border:1px solid rgba(255,255,255,.5);animation:spin 20s linear infinite}
.orb::after{inset:-34%;border:1px dashed rgba(255,255,255,.28);animation-duration:34s;animation-direction:reverse}
@keyframes orb{from{transform:scale(.94)}to{transform:scale(1.06)}}
@keyframes spin{to{transform:rotate(360deg)}}
.bgv{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,3,20,.3),transparent 30%,rgba(10,3,20,.5) 62%,rgba(10,3,20,.92))}
.num{position:absolute;top:8px;right:18px;font:700 clamp(5.5rem,22vw,8.5rem)/1 var(--serif);color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.55);translate:var(--px,0) 0;pointer-events:none;user-select:none}
.info{position:absolute;left:22px;right:84px;bottom:22px}
.kick{font:700 .72rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 8px;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.info h3{font-size:clamp(2.1rem,8.5vw,3.3rem);line-height:1.02;color:#fff;text-shadow:0 4px 26px rgba(0,0,0,.6);transform:translateY(8px);opacity:.82;transition:transform .7s cubic-bezier(.16,.8,.24,1),opacity .5s}
.slide.on .info h3{transform:none;opacity:1}
.slide.open .info{opacity:0}
.more,.snd{position:absolute;z-index:4;appearance:none;cursor:pointer;border-radius:50%;width:54px;height:54px;border:1px solid rgba(241,210,122,.75);background:rgba(18,7,31,.45);backdrop-filter:blur(8px);transition:background .25s,transform .35s}
.more{right:18px;bottom:20px}
.more:hover{background:rgba(241,210,122,.25)}
.more span,.more span::before{position:absolute;left:50%;top:50%;width:20px;height:2px;background:var(--gold);border-radius:2px;transform:translate(-50%,-50%);transition:transform .35s}
.more span::before{content:"";transform:translate(-50%,-50%) rotate(90deg)}
.more[aria-expanded="true"]{transform:rotate(135deg);background:rgba(241,210,122,.2)}
.snd{left:18px;top:18px;width:44px;height:44px}
.snd span{position:absolute;inset:0;display:block}
.snd span::before{content:"";position:absolute;left:14px;top:15px;width:7px;height:12px;background:var(--gold);clip-path:polygon(0 30%,45% 30%,100% 0,100% 100%,45% 70%,0 70%)}
.snd[aria-pressed="false"] span::after{content:"";position:absolute;left:11px;top:21px;width:22px;height:2px;background:#fff;transform:rotate(-40deg)}
.snd[aria-pressed="true"] span::after{content:"";position:absolute;left:26px;top:15px;width:7px;height:12px;border:2px solid var(--gold);border-left:0;border-radius:0 12px 12px 0}
.pnl{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;padding:28px 22px 92px;background:linear-gradient(180deg,rgba(14,5,24,.72),rgba(14,5,24,.94));backdrop-filter:blur(16px);
  opacity:0;visibility:hidden;transform:translateY(26px);transition:opacity .4s ease,transform .55s cubic-bezier(.16,.8,.24,1),visibility 0s .55s}
.slide.open .pnl{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.pnl h4{font:600 1.7rem var(--serif);color:#fff}
.pnl p{margin:0;color:var(--cream);font-size:1.02rem;line-height:1.55}
.pnl .btn-gold{margin-top:6px}
.dots{position:relative;z-index:2;display:flex;justify-content:center;gap:8px;padding:2px 0}
.dot{appearance:none;width:8px;height:8px;border-radius:8px;border:0;padding:0;cursor:pointer;background:rgba(255,255,255,.28);transition:width .4s cubic-bezier(.16,.8,.24,1),background .3s}
.dot.on{width:30px;background:var(--gold)}
.swipe-hint{margin:0!important;text-align:center;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);opacity:.8}
.swipe-hint b{color:var(--gold)}
@media (min-width:900px){.dots{pointer-events:auto}.dot{width:10px;height:10px}.dot.on{width:36px}}
@media (max-width:899px){.stage-head{flex-direction:column;align-items:flex-start;gap:10px}.stage-head h2{max-width:none}.arrow{display:none}.ctl{position:absolute;top:calc(76px + 14px);right:max(18px,env(safe-area-inset-right,0px))}.stage-head h2{padding-right:76px}}
@media (max-height:700px){.stage{padding-top:84px}.slide{height:min(54svh,480px)}.swipe-hint{display:none}}

/* botones */
.btn-gold,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font:700 .95rem var(--sans);letter-spacing:.03em;padding:14px 26px;min-height:48px;border-radius:999px;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;text-align:center}
.btn-gold{appearance:none;border:0;color:#2a1700;background:linear-gradient(160deg,#f7e3a0,#d9a93f);box-shadow:0 6px 0 #8a6314,0 14px 24px rgba(0,0,0,.4)}
.btn-gold{position:relative;overflow:hidden}
.btn-gold::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);transform:skewX(-20deg);animation:shine 4.5s ease-in-out 2s infinite}
@keyframes shine{0%,60%{left:-70%}100%{left:130%}}
.btn-ghost{color:var(--cream);border:1px solid rgba(241,210,122,.6);background:rgba(241,210,122,.08)}
.btn-ghost:hover{background:rgba(241,210,122,.16)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* reseñas */
.car{margin-top:26px;position:relative}
.track{list-style:none;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px max(2px,0px) 14px;margin:0 calc(-1*var(--gut));padding-left:var(--gut);padding-right:var(--gut);-webkit-overflow-scrolling:touch}
.track::-webkit-scrollbar{display:none}
.rev{flex:0 0 min(84%,380px);scroll-snap-align:center;display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:24px 22px;border-radius:20px;background:linear-gradient(170deg,#f6ecff,#e3d3f5);color:#3b1e63;box-shadow:0 14px 34px rgba(0,0,0,.4)}
.rev .stars{color:#e0a21a;font-size:1.3rem;letter-spacing:.14em}
.rev-text{margin:0!important;font-size:1.02rem;line-height:1.55;color:#3b1e63}
.rev footer{display:flex;flex-direction:column;gap:2px}
.rev footer strong{font-family:var(--serif);font-size:1.1rem}
.rev footer span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#7a5aa3}
.car-ctl{display:flex;gap:12px;margin-top:6px}
.car-ctl button{appearance:none;width:48px;height:48px;border-radius:50%;cursor:pointer;color:#fff;font-size:1.2rem;background:linear-gradient(160deg,#6f45a0,#43236f);border:1px solid rgba(241,210,122,.5)}
@media (min-width:900px){.rev{flex-basis:360px}}

#booking,#reviews,#about,.contact{overflow:hidden}
#booking::before{content:"";position:absolute;width:520px;height:520px;right:-180px;top:-120px;border-radius:50%;background:radial-gradient(circle,rgba(122,75,255,.35),transparent 70%);filter:blur(30px);animation:float 16s ease-in-out infinite alternate;pointer-events:none}
#booking::after{content:"";position:absolute;width:420px;height:420px;left:-160px;bottom:-100px;border-radius:50%;background:radial-gradient(circle,rgba(255,79,208,.22),transparent 70%);filter:blur(30px);animation:float 19s ease-in-out infinite alternate-reverse;pointer-events:none}
#booking .wrap{position:relative;z-index:1}
@keyframes float{to{transform:translate(-40px,50px) scale(1.15)}}
/* formulario */
.form{margin-top:28px;display:flex;flex-direction:column;gap:18px;padding:26px 20px;border-radius:24px;background:linear-gradient(170deg,rgba(91,58,122,.28),rgba(26,10,44,.7));border:1px solid var(--line)}
.row2{display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:560px){.row2{grid-template-columns:1fr 1fr}.form{padding:32px 30px}}
.f{display:flex;flex-direction:column;gap:7px;border:0}
.f>span,.f legend{font-size:.95rem;color:var(--cream);padding:0}
.f em{font-style:normal;font-size:.8rem;color:var(--soft)}
.f input[type=text],.f input[type=tel],.f input[type=email],.f input[type=date],.f textarea{width:100%;min-height:50px;padding:12px 18px;border-radius:26px;border:1px solid transparent;background:#d5d3dd;color:#2a1247;font:inherit;font-size:1rem}
.f textarea{border-radius:22px;resize:vertical}
.f input:focus-visible,.f textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px;box-shadow:0 0 0 8px rgba(241,210,122,.15)}
.f input[aria-invalid="true"],.f textarea[aria-invalid="true"]{border-color:#ff7b8f;background:#f5dce0}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border-radius:999px;background:rgba(241,210,122,.08);border:1px solid rgba(241,210,122,.45);font-size:.92rem;transition:background .2s,color .2s}
.chip input:checked+span{background:linear-gradient(160deg,#f7e3a0,#d9a93f);color:#2a1700;border-color:transparent;font-weight:700}
.chip input:focus-visible+span{outline:3px solid #fff;outline-offset:2px}
#services-field[aria-invalid="true"] legend{color:#ff9aa8}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.submit{align-self:flex-start;min-width:180px}
.submit[disabled]{opacity:.6;cursor:progress}
.form-msg{min-height:1.4em;margin:0!important;font-size:.98rem}
.form-msg.ok{color:#9fe8b3}.form-msg.err{color:#ffb3bd}
.tiny{margin:0!important;font-size:.8rem;color:var(--soft)}
.tiny a{color:var(--gold)}

.contact .cta-row{margin-top:24px}
.foot{padding:30px 18px calc(36px + env(safe-area-inset-bottom,0px));text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center;background:rgba(8,2,16,.72)}
.powered{display:inline-block;color:var(--soft);font:italic 400 .84rem var(--serif);letter-spacing:.04em;text-decoration:none;padding:9px 14px;opacity:.85}
.powered:hover{opacity:1;text-decoration:underline}
.legal{display:flex;gap:8px;align-items:center;font-size:.78rem;color:var(--soft)}
.legal a{color:var(--soft);padding:9px 6px}

#toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);z-index:400;max-width:min(92vw,420px);padding:12px 18px;border-radius:14px;background:#2a1247;color:var(--cream);border:1px solid var(--gold);box-shadow:0 10px 30px rgba(0,0,0,.6);font-size:.9rem;text-align:center;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* legales */
.legalpage{background:var(--ink)}
.pol{width:min(100%,720px);margin:0 auto;padding:22px max(18px,env(safe-area-inset-right,0px)) 10px var(--gut);color:#eadff7;line-height:1.65}
.pol .home{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--gold);font-weight:700;padding:6px 0}
.pol .home img{border-radius:12px}
.pol .upd{color:var(--soft);font-size:.85rem;margin:10px 0 6px}
.pol .sub{display:flex;gap:16px;margin:8px 0 18px}
.pol .sub a{color:var(--soft);padding:6px 0}.pol .sub a[aria-current="page"]{color:var(--gold);font-weight:700}
.pol h1{font-size:1.9rem;color:var(--cream)}
.pol h2{font:700 1.04rem var(--sans);margin-top:20px;color:var(--gold)}
.pol p,.pol li{margin-top:6px;color:#e6dcf3}
.pol ul{padding-left:1.2rem}
.pol-foot{text-align:center;padding:20px 18px 40px}

@media (max-width:360px){.hero-copy h1{font-size:2.4rem}.pill{padding:9px 14px}.brand img{width:44px}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .js .rv{opacity:1;translate:0 0}
}


/* ================= v5: neón, 3D / 4D, idioma, cookies ================= */
:root{--ink:#0b0418;--ink2:#120623;--m:#ff2fb3;--c:#19e3ff;--v:#8a5cff}
html{background:var(--ink)}
body::before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;background:radial-gradient(40% 35% at 20% 25%,rgba(138,92,255,.48),transparent 70%),radial-gradient(35% 30% at 82% 18%,rgba(255,47,179,.32),transparent 70%),radial-gradient(40% 35% at 72% 80%,rgba(25,227,255,.24),transparent 70%),radial-gradient(35% 30% at 14% 86%,rgba(255,212,94,.14),transparent 70%);animation:mesh 26s ease-in-out infinite alternate;will-change:transform}
@keyframes mesh{to{transform:translate3d(4%,-3%,0) rotate(9deg) scale(1.12)}}
body::after{content:"";position:fixed;inset:0;z-index:160;pointer-events:none;opacity:.075;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.top.solid{background:rgba(11,4,24,.82)}
.eyebrow{background:linear-gradient(90deg,var(--gold),var(--m) 70%);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}

/* idioma */
.lang-btn{appearance:none;cursor:pointer;min-width:48px;height:42px;padding:0 12px;margin-left:auto;border-radius:999px;color:#eaffff;font:700 .8rem var(--sans);letter-spacing:.12em;border:1px solid rgba(25,227,255,.6);background:linear-gradient(160deg,rgba(25,227,255,.22),rgba(138,92,255,.18));box-shadow:0 2px 0 rgba(10,90,110,.9),0 8px 14px rgba(0,0,0,.35),0 0 18px rgba(25,227,255,.25);position:relative;overflow:hidden;
  transform:perspective(500px) rotateX(var(--bx,0deg)) rotateY(var(--by,0deg)) translate3d(var(--btx,0px),var(--bty,0px),0) scale(var(--bsc,1));transition:transform .18s ease-out,box-shadow .2s}
.pill{margin-left:0}
@media (min-width:900px){.lang-btn{margin-left:0}.pill{margin-left:6px}}
[data-lang]{display:none}
html:not([lang="es"]) [data-lang="en"],html[lang="es"] [data-lang="es"]{display:revert}
.pol-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pol-top .lang-btn{margin-left:0}
.pol-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px}
.linkbtn{appearance:none;background:none;border:0;cursor:pointer;color:var(--soft);font:inherit;font-size:.78rem;padding:9px 6px;text-decoration:underline;text-underline-offset:3px}
.linkbtn:hover{color:var(--gold)}
.legal{flex-wrap:wrap;justify-content:center}

/* botones 3D / 4D */
.btn-gold,.btn-ghost,.pill,.skipbtn,.arrow,.burger,.dot{
  transform:perspective(640px) rotateX(var(--bx,0deg)) rotateY(var(--by,0deg)) translate3d(var(--btx,0px),var(--bty,0px),0) scale(var(--bsc,1));
  transition:transform .18s ease-out,box-shadow .2s,filter .25s,background .25s;transform-style:preserve-3d;will-change:transform}
.btn-gold,.btn-ghost,.pill,.skipbtn{position:relative;overflow:hidden}
.btn-gold{color:#2a1700;border:0;background:linear-gradient(165deg,#fff3c2,#ffd45e 45%,#f0a82a);text-shadow:0 1px 0 rgba(255,255,255,.45);
  box-shadow:0 1px 0 #f2c14e,0 2px 0 #e6ad34,0 3px 0 #d39a28,0 4px 0 #bc831c,0 5px 0 #a06c14,0 6px 0 #805410,0 16px 22px rgba(0,0,0,.45),0 0 30px rgba(255,200,70,.38)}
.btn-gold:hover{filter:saturate(1.2) brightness(1.05);box-shadow:0 1px 0 #f2c14e,0 2px 0 #e6ad34,0 3px 0 #d39a28,0 4px 0 #bc831c,0 5px 0 #a06c14,0 6px 0 #805410,0 20px 30px rgba(0,0,0,.5),0 0 46px rgba(255,200,70,.6)}
.btn-gold:active,.btn-gold.press{box-shadow:0 1px 0 #a06c14,0 2px 0 #805410,0 4px 8px rgba(0,0,0,.5),0 0 20px rgba(255,200,70,.45)}
.btn-ghost{color:#fff;border:1px solid rgba(255,255,255,.38);background:linear-gradient(165deg,rgba(138,92,255,.42),rgba(255,47,179,.2));
  box-shadow:0 1px 0 #4b2a8c,0 2px 0 #3d2175,0 3px 0 #2e1a5c,0 4px 0 #231446,0 12px 20px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.btn-ghost:hover{background:linear-gradient(165deg,rgba(138,92,255,.6),rgba(255,47,179,.34));box-shadow:0 1px 0 #4b2a8c,0 2px 0 #3d2175,0 3px 0 #2e1a5c,0 4px 0 #231446,0 18px 28px rgba(0,0,0,.45),0 0 34px rgba(138,92,255,.55),inset 0 1px 0 rgba(255,255,255,.4)}
.btn-ghost:active,.btn-ghost.press{box-shadow:0 1px 0 #231446,0 3px 8px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.3)}
.pill{color:#fff;border:0;background:linear-gradient(160deg,#ff5cc9,#8a5cff);box-shadow:0 1px 0 #d11e93,0 2px 0 #b2167c,0 3px 0 #8f1166,0 4px 0 #6d0c4e,0 10px 16px rgba(0,0,0,.4),0 0 24px rgba(255,47,179,.5)}
.pill:hover{background:linear-gradient(160deg,#ff74d2,#9b74ff);box-shadow:0 1px 0 #d11e93,0 2px 0 #b2167c,0 3px 0 #8f1166,0 4px 0 #6d0c4e,0 14px 22px rgba(0,0,0,.45),0 0 38px rgba(255,47,179,.8)}
.pill:active,.pill.press{box-shadow:0 1px 0 #6d0c4e,0 3px 8px rgba(0,0,0,.5)}
.btn-gold::before,.btn-ghost::before,.pill::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(circle at var(--bmx,50%) var(--bmy,0%),rgba(255,255,255,.6),transparent 55%)}
.btn-gold:hover::before,.btn-ghost:hover::before,.pill:hover::before{opacity:.75}
.arrow:hover,.burger:hover,.dot:hover{--bsc:1.12}
.lang-btn:hover{--bsc:1.08;box-shadow:0 2px 0 rgba(10,90,110,.9),0 12px 20px rgba(0,0,0,.4),0 0 28px rgba(25,227,255,.55)}
.lang-btn:active,.lang-btn.press{--bty:2px;--bsc:.95}
.more:hover{box-shadow:0 0 26px rgba(255,212,94,.6)}
.more:active:not([aria-expanded="true"]),.arrow:active,.dot:active{transform:scale(.9)}
.dot{transition:transform .18s,width .4s cubic-bezier(.16,.8,.24,1),background .3s}
.rp{position:absolute;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.55);transform:translate(-50%,-50%) scale(0);animation:rip .7s ease-out forwards}
@keyframes rip{to{transform:translate(-50%,-50%) scale(1);opacity:0}}
.spk{position:fixed;z-index:520;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:50%;pointer-events:none;box-shadow:0 0 10px currentColor;animation:spk .75s cubic-bezier(.1,.7,.3,1) forwards}
@keyframes spk{to{transform:translate(var(--dx),var(--dy)) scale(.1);opacity:0}}
.jump{animation:jump .6s cubic-bezier(.2,1.5,.4,1)}
@keyframes jump{0%{translate:0 0}30%{translate:0 -12px}60%{translate:0 2px}100%{translate:0 0}}
.confetti{position:fixed;inset:0;z-index:530;pointer-events:none}

/* chips 3D con salto al elegir */
.chip span{position:relative;overflow:hidden;background:linear-gradient(165deg,rgba(255,255,255,.12),rgba(138,92,255,.12));border-color:rgba(255,255,255,.3);
  box-shadow:0 3px 0 rgba(255,255,255,.07),0 9px 14px rgba(0,0,0,.3);transform:perspective(500px) rotateX(var(--bx,0deg)) rotateY(var(--by,0deg)) translate3d(0,var(--bty,0px),0) scale(var(--bsc,1));transition:transform .18s ease-out,box-shadow .2s,border-color .2s,background .2s}
.chip:hover span{border-color:var(--c);box-shadow:0 3px 0 rgba(255,255,255,.07),0 12px 18px rgba(0,0,0,.35),0 0 18px rgba(25,227,255,.35)}
.chip input:checked+span{background:linear-gradient(165deg,#fff3c2,#ffd45e 45%,#f0a82a);color:#2a1700;border-color:transparent;font-weight:700;
  box-shadow:0 1px 0 #f2c14e,0 2px 0 #d39a28,0 3px 0 #a06c14,0 4px 0 #805410,0 12px 18px rgba(0,0,0,.4),0 0 26px rgba(255,200,70,.55);animation:pop .55s cubic-bezier(.2,1.6,.4,1)}
.chip input:checked+span::before{content:"\2713";margin-right:8px;font-weight:800}
@keyframes pop{0%{transform:scale(.85) translateY(4px)}45%{transform:scale(1.14) translateY(-9px) rotate(-2deg)}70%{transform:scale(.97) translateY(2px)}100%{transform:none}}

/* cursor de luz */
.cursor{position:fixed;left:0;top:0;z-index:500;width:380px;height:380px;margin:-190px 0 0 -190px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,47,179,.2),rgba(138,92,255,.12) 42%,transparent 68%);mix-blend-mode:screen;opacity:0;transition:opacity .3s,width .3s,height .3s,margin .3s}
.cursor.on{opacity:1}
.cursor.big{width:250px;height:250px;margin:-125px 0 0 -125px;background:radial-gradient(circle,rgba(25,227,255,.3),rgba(138,92,255,.12) 45%,transparent 68%)}

/* titular que cambia */
.rot{font:600 clamp(1.15rem,4.8vw,1.7rem) var(--serif);color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.7);margin:-2px 0 0}
.rot-w{display:inline-block;font-style:italic;background:linear-gradient(100deg,var(--m),var(--gold),var(--c));-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform .38s,opacity .38s,filter .38s}
.rot-w.out{transform:translateY(-60%);opacity:0;filter:blur(6px)}
.rot-w.in{animation:rotin .5s cubic-bezier(.16,.8,.24,1)}
@keyframes rotin{from{transform:translateY(60%);opacity:0;filter:blur(6px)}}
html:not(.intro-on) .hero-copy .rot{animation:fup .9s ease .65s backwards}

/* títulos con máscara */
.js .mask{clip-path:inset(0 100% 0 0);transform:translateX(-14px)}
.js .rv.in .mask,.js .mask.in{clip-path:inset(-12% -4% -12% -4%);transform:none;transition:clip-path 1s cubic-bezier(.7,0,.2,1) .12s,transform 1s cubic-bezier(.16,.8,.24,1) .12s}

/* reseñas */
.rev{transition:transform .35s cubic-bezier(.16,.8,.24,1),box-shadow .35s}
.rev:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 24px 44px rgba(0,0,0,.5),0 0 34px rgba(255,47,179,.3)}

/* formulario en pasos */
.steps{list-style:none;display:flex;justify-content:space-between;gap:8px}
.steps li{flex:1;display:flex;align-items:center;gap:8px;font:600 .78rem var(--sans);color:var(--soft);letter-spacing:.04em;min-width:0}
.sn{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.32);transition:background .3s,box-shadow .3s,color .3s}
.steps li.on{color:#fff}
.steps li.on .sn{background:linear-gradient(160deg,#fff3c2,#ffd45e);color:#2a1700;border-color:transparent;box-shadow:0 0 20px rgba(255,200,70,.7)}
.steps li.done .sn{background:var(--c);color:#06232a;border-color:transparent}
.steps li.done .sn::before{content:"\2713";font-weight:800}
.steps li.done .sn{font-size:0}.steps li.done .sn::before{font-size:.85rem}
.sl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:519px){.steps li:not(.on) .sl{display:none}.steps li.on{flex:2}}
@media (max-width:519px){.cookie{padding:16px}.ck-p{font-size:.88rem;margin-bottom:12px}.ck-l{margin-top:10px}}
.sbar{height:4px;border-radius:4px;background:rgba(255,255,255,.12);overflow:hidden}
.sbar i{display:block;height:100%;width:100%;transform:scaleX(.33);transform-origin:left;background:linear-gradient(90deg,var(--m),var(--gold),var(--c));transition:transform .6s cubic-bezier(.16,.8,.24,1)}
.step{border:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:18px}
.step>legend{padding:0;font:600 1.15rem var(--serif);color:#fff;margin-bottom:2px}
.step.enter{animation:stepin .5s cubic-bezier(.16,.8,.24,1)}
@keyframes stepin{from{opacity:0;transform:translateX(26px)}}
.step.shake{animation:shake .45s}
@keyframes shake{20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
.step-nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
html:not(.js) .steps,html:not(.js) .sbar,html:not(.js) #next,html:not(.js) #back{display:none}
.form{position:relative}
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
.form::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;background:conic-gradient(from var(--ang),transparent 0 55%,var(--c),var(--m),var(--gold),transparent 95%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:ang 7s linear infinite}
@keyframes ang{to{--ang:360deg}}

/* aviso de cookies */
.cookie{position:fixed;z-index:210;left:max(14px,env(safe-area-inset-left,0px));right:max(14px,env(safe-area-inset-right,0px));bottom:max(14px,env(safe-area-inset-bottom,0px));max-width:460px;margin-inline:auto;padding:20px;border-radius:24px;background:rgba(18,6,34,.9);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.2);box-shadow:0 24px 60px rgba(0,0,0,.6),0 0 40px rgba(138,92,255,.3);transform:translateY(30px);opacity:0;transition:transform .5s cubic-bezier(.16,.8,.24,1),opacity .4s}
.cookie.on{transform:none;opacity:1}
@media (min-width:760px){.cookie{left:max(24px,env(safe-area-inset-left,0px));right:auto;margin:0}}
.ck-t{font:600 1.25rem var(--serif);color:#fff}
.ck-p{margin:8px 0 14px;font-size:.92rem;line-height:1.5;color:var(--cream)}
.ck-b{display:flex;gap:12px;flex-wrap:wrap}
.ck-b .btn-gold,.ck-b .btn-ghost{padding:11px 20px;min-height:46px;font-size:.88rem}
.ck-l{display:inline-block;margin-top:14px;color:var(--c);font-size:.85rem}

@media (prefers-reduced-motion:reduce){
  .js .mask{clip-path:none;transform:none}
  body::before{animation:none}
}


/* ================= v6: menú del celular, neón de club ================= */
.drawer{background:rgba(7,2,15,.98);overflow:hidden;isolation:isolate}
.dfx{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.d-beams i{position:absolute;top:-12%;width:46%;height:130%;transform-origin:50% 0;filter:blur(8px);opacity:.75;animation:dbeam 6s ease-in-out infinite alternate}
.d-beams i:nth-child(1){left:2%;background:linear-gradient(180deg,rgba(255,47,179,.65),transparent 72%)}
.d-beams i:nth-child(2){left:30%;background:linear-gradient(180deg,rgba(25,227,255,.6),transparent 72%);animation-delay:-2s;animation-duration:7.5s}
.d-beams i:nth-child(3){left:56%;background:linear-gradient(180deg,rgba(138,92,255,.7),transparent 72%);animation-delay:-4s}
@keyframes dbeam{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
.d-grid{position:absolute;left:0;right:0;bottom:0;height:30%;overflow:hidden}
.d-grid::before{content:"";position:absolute;left:-60%;right:-60%;bottom:0;height:100%;transform-origin:50% 100%;transform:perspective(260px) rotateX(58deg);background-image:linear-gradient(rgba(255,47,179,.9) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(25,227,255,.85) 1.5px,transparent 1.5px);background-size:36px 36px;animation:dgrid 1.2s linear infinite;-webkit-mask-image:linear-gradient(transparent,#000 75%);mask-image:linear-gradient(transparent,#000 75%)}
.d-grid::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--c),var(--m),transparent);box-shadow:0 0 14px var(--m),0 0 30px var(--c)}
@keyframes dgrid{to{background-position:0 36px}}
.d-spk{position:absolute;inset:0;overflow:hidden}
.d-spk i{position:absolute;bottom:-14px;left:var(--l);width:var(--s);height:var(--s);border-radius:50%;background:var(--k);box-shadow:0 0 8px var(--k),0 0 16px var(--k);animation:dspark var(--d) linear var(--w) infinite}
@keyframes dspark{0%{transform:translate(0,0);opacity:0}12%{opacity:1}100%{transform:translate(var(--x),-110vh);opacity:0}}
.d-rip{position:absolute;inset:0;overflow:hidden}
.d-rip .ring{position:absolute;left:var(--rx);top:var(--ry);width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:3px solid var(--k);box-shadow:0 0 16px var(--k),inset 0 0 12px var(--k);animation:dring .8s ease-out forwards}
@keyframes dring{to{transform:scale(8);opacity:0}}
.d-rip .sp{position:absolute;left:var(--rx);top:var(--ry);width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--k);box-shadow:0 0 10px var(--k);animation:dsp .7s ease-out forwards}
@keyframes dsp{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}

.drawer nav{position:relative;z-index:1;width:min(100%,360px);padding:0 24px}
.drawer nav a:not(.pill){--n:#19e3ff;position:relative;z-index:1;color:#fff;padding:4px 14px;text-shadow:0 0 5px #fff,0 0 14px var(--n),0 0 32px var(--n);transition:transform .2s,text-shadow .2s;-webkit-tap-highlight-color:transparent}
.drawer nav a:not(.pill):nth-of-type(even){--n:#ff2fb3}
.drawer nav a:not(.pill):active{transform:scale(.94)}
@media (hover:hover){.drawer nav a:not(.pill):hover{transform:scale(1.1);text-shadow:0 0 6px #fff,0 0 20px var(--n),0 0 48px var(--n),0 0 70px var(--n)}}
.drawer.open nav a:not(.pill){animation:dignite .95s calc(var(--i)*.22s) both,dflick 6s calc(1.4s + var(--i)*.22s) infinite}
.drawer.open nav .pill.big{animation:dignite .95s 1.15s both,dpulse 2.4s 2.2s ease-in-out infinite}
.drawer-ig{position:relative;z-index:1;color:#fff;text-shadow:0 1px 6px #000,0 0 10px #000}
.drawer-ig a{color:#fff}
@keyframes dignite{0%,8%{opacity:0}10%{opacity:1}16%{opacity:.08}24%{opacity:1}30%{opacity:.25}42%{opacity:1}52%{opacity:.5}62%,100%{opacity:1}}
@keyframes dflick{0%,18%,22%,62%,64%,100%{opacity:1}20%,63%{opacity:.55}}
@keyframes dpulse{50%{box-shadow:inset 0 0 22px rgba(255,47,179,.85),0 0 40px rgba(255,47,179,.95)}}

.drawer .pill.big{width:min(100%,300px);text-align:center;padding:16px 20px;font:800 1.02rem var(--sans);letter-spacing:.06em;color:#fff;background:rgba(255,47,179,.12);text-shadow:0 0 10px #ff2fb3;box-shadow:inset 0 0 14px rgba(255,47,179,.6),0 0 22px rgba(255,47,179,.65);isolation:isolate;overflow:hidden}
.drawer .pill.big:hover{background:rgba(255,47,179,.2)}
.drawer .pill.big::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;background:conic-gradient(from var(--ang),#ff2fb3,#fff,#19e3ff,#ff2fb3);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:ang 2.8s linear infinite}

.dmark{position:absolute;left:0;top:0;width:0;height:0;border-radius:16px;border:2px solid var(--mc,#19e3ff);box-shadow:0 0 14px var(--mc,#19e3ff),inset 0 0 14px var(--mc,#19e3ff);opacity:0;transform:translate(var(--mx,0px),var(--my,0px));transition:transform .5s cubic-bezier(.3,1.35,.5,1),width .5s cubic-bezier(.3,1.35,.5,1),height .5s cubic-bezier(.3,1.35,.5,1),opacity .3s,border-color .3s,box-shadow .3s;pointer-events:none}
.dmark.show{opacity:1}
@media (prefers-reduced-motion:reduce){.d-spk{display:none}.dmark{transition:none}}
