/* ============================================================
   ABRIL ROSITA · Sitio oficial
   Identidad propia: "Noche de feria" — ciruela profundo, crema,
   rosa chicle, ámbar y lila. Máscaras, tickets y cintas.
   ============================================================ */
@font-face{font-family:'Fermino';src:url('../fonts/fermino.woff2') format('woff2');font-display:block}
@font-face{font-family:'StarBlush';src:url('../fonts/starblushscript.woff2') format('woff2');font-display:block}
@font-face{font-family:'Brier';src:url('../fonts/Brier-Bold.woff2') format('woff2');font-weight:700;font-display:block}
@font-face{font-family:'MonaSans';src:url('../fonts/MonaSans.woff2') format('woff2');font-weight:200 900;font-display:block}
@font-face{font-family:'BaiJamjuree';src:url('../fonts/BaiJamjuree-Regular.woff2') format('woff2');font-weight:400;font-display:block}
@font-face{font-family:'BaiJamjuree';src:url('../fonts/BaiJamjuree-Medium.woff2') format('woff2');font-weight:500;font-display:block}
@font-face{font-family:'BaiJamjuree';src:url('../fonts/BaiJamjuree-SemiBold.woff2') format('woff2');font-weight:600;font-display:block}

:root{
  --plum-900:#150721;--plum-800:#1e0b2e;--plum-700:#2b1141;--plum-600:#3d1a5a;
  --cream:#fff4ea;--cream-2:#ffe9dc;
  --pink:#ff6f9f;--pink-2:#ff8fb4;--amber:#ffc86b;--lilac:#c8a8ff;--wine:#5a1230;
  --ink:#1e0b2e;
  --f-display:'Fermino','Brier',serif;
  --f-script:'StarBlush','Fermino',cursive;
  --f-head:'MonaSans','Brier',sans-serif;
  --f-brier:'Brier','MonaSans',sans-serif;
  --f-body:'BaiJamjuree','MonaSans',sans-serif;
  --scallop:polygon(100.00% 50.00%,99.87% 51.31%,99.47% 52.59%,98.84% 53.84%,98.00% 55.05%,97.00% 56.19%,95.89% 57.27%,95.36% 58.41%,96.07% 59.79%,96.67% 61.20%,97.11% 62.62%,97.35% 64.02%,97.36% 65.39%,97.12% 66.69%,96.63% 67.90%,95.90% 69.01%,94.94% 70.01%,93.80% 70.89%,92.51% 71.66%,91.11% 72.32%,89.66% 72.90%,89.89% 74.44%,90.01% 75.98%,89.99% 77.49%,89.80% 78.92%,89.41% 80.24%,88.82% 81.43%,88.01% 82.46%,87.00% 83.32%,85.82% 83.99%,84.49% 84.49%,83.04% 84.81%,81.51% 85.00%,79.96% 85.08%,79.24% 86.10%,78.86% 87.61%,78.37% 89.05%,77.75% 90.38%,76.98% 91.55%,76.06% 92.53%,75.00% 93.30%,73.80% 93.84%,72.49% 94.14%,71.09% 94.22%,69.63% 94.10%,68.14% 93.80%,66.65% 93.37%,65.40% 93.48%,64.55% 94.79%,63.63% 96.02%,62.62% 97.11%,61.53% 98.02%,60.35% 98.71%,59.11% 99.15%,57.81% 99.33%,56.48% 99.26%,55.14% 98.93%,53.81% 98.38%,52.50% 97.64%,51.22% 96.76%,50.00% 95.80%,48.78% 96.76%,47.50% 97.64%,46.19% 98.38%,44.86% 98.93%,43.52% 99.26%,42.19% 99.33%,40.89% 99.15%,39.65% 98.71%,38.47% 98.02%,37.38% 97.11%,36.37% 96.02%,35.45% 94.79%,34.60% 93.48%,33.35% 93.37%,31.86% 93.80%,30.37% 94.10%,28.91% 94.22%,27.51% 94.14%,26.20% 93.84%,25.00% 93.30%,23.94% 92.53%,23.02% 91.55%,22.25% 90.38%,21.63% 89.05%,21.14% 87.61%,20.76% 86.10%,20.04% 85.08%,18.49% 85.00%,16.96% 84.81%,15.51% 84.49%,14.18% 83.99%,13.00% 83.32%,11.99% 82.46%,11.18% 81.43%,10.59% 80.24%,10.20% 78.92%,10.01% 77.49%,9.99% 75.98%,10.11% 74.44%,10.34% 72.90%,8.89% 72.32%,7.49% 71.66%,6.20% 70.89%,5.06% 70.01%,4.10% 69.01%,3.37% 67.90%,2.88% 66.69%,2.64% 65.39%,2.65% 64.02%,2.89% 62.62%,3.33% 61.20%,3.93% 59.79%,4.64% 58.41%,4.11% 57.27%,3.00% 56.19%,2.00% 55.05%,1.16% 53.84%,0.53% 52.59%,0.13% 51.31%,0.00% 50.00%,0.13% 48.69%,0.53% 47.41%,1.16% 46.16%,2.00% 44.95%,3.00% 43.81%,4.11% 42.73%,4.64% 41.59%,3.93% 40.21%,3.33% 38.80%,2.89% 37.38%,2.65% 35.98%,2.64% 34.61%,2.88% 33.31%,3.37% 32.10%,4.10% 30.99%,5.06% 29.99%,6.20% 29.11%,7.49% 28.34%,8.89% 27.68%,10.34% 27.10%,10.11% 25.56%,9.99% 24.02%,10.01% 22.51%,10.20% 21.08%,10.59% 19.76%,11.18% 18.57%,11.99% 17.54%,13.00% 16.68%,14.18% 16.01%,15.51% 15.51%,16.96% 15.19%,18.49% 15.00%,20.04% 14.92%,20.76% 13.90%,21.14% 12.39%,21.63% 10.95%,22.25% 9.62%,23.02% 8.45%,23.94% 7.47%,25.00% 6.70%,26.20% 6.16%,27.51% 5.86%,28.91% 5.78%,30.37% 5.90%,31.86% 6.20%,33.35% 6.63%,34.60% 6.52%,35.45% 5.21%,36.37% 3.98%,37.38% 2.89%,38.47% 1.98%,39.65% 1.29%,40.89% 0.85%,42.19% 0.67%,43.52% 0.74%,44.86% 1.07%,46.19% 1.62%,47.50% 2.36%,48.78% 3.24%,50.00% 4.20%,51.22% 3.24%,52.50% 2.36%,53.81% 1.62%,55.14% 1.07%,56.48% 0.74%,57.81% 0.67%,59.11% 0.85%,60.35% 1.29%,61.53% 1.98%,62.62% 2.89%,63.63% 3.98%,64.55% 5.21%,65.40% 6.52%,66.65% 6.63%,68.14% 6.20%,69.63% 5.90%,71.09% 5.78%,72.49% 5.86%,73.80% 6.16%,75.00% 6.70%,76.06% 7.47%,76.98% 8.45%,77.75% 9.62%,78.37% 10.95%,78.86% 12.39%,79.24% 13.90%,79.96% 14.92%,81.51% 15.00%,83.04% 15.19%,84.49% 15.51%,85.82% 16.01%,87.00% 16.68%,88.01% 17.54%,88.82% 18.57%,89.41% 19.76%,89.80% 21.08%,89.99% 22.51%,90.01% 24.02%,89.89% 25.56%,89.66% 27.10%,91.11% 27.68%,92.51% 28.34%,93.80% 29.11%,94.94% 29.99%,95.90% 30.99%,96.63% 32.10%,97.12% 33.31%,97.36% 34.61%,97.35% 35.98%,97.11% 37.38%,96.67% 38.80%,96.07% 40.21%,95.36% 41.59%,95.89% 42.73%,97.00% 43.81%,98.00% 44.95%,98.84% 46.16%,99.47% 47.41%,99.87% 48.69%);
  --pad:clamp(20px,5vw,72px);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-y:scroll;scrollbar-width:none}
html::-webkit-scrollbar,body::-webkit-scrollbar,::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
body{font-family:var(--f-body);color:var(--cream);background:var(--plum-800);overflow-x:hidden;line-height:1.5;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
.wrap{width:min(1240px,100% - var(--pad)*2);margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font:600 11px/1 var(--f-head);letter-spacing:.24em;text-transform:uppercase}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor;opacity:.7}
.script{font-family:var(--f-script);font-weight:400;text-transform:none;letter-spacing:0}

/* ---------- NAV ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:16px var(--pad);transition:background .3s,backdrop-filter .3s}
.nav.is-stuck{background:rgba(21,7,33,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.nav-logo{font:400 26px/1 var(--f-display);color:#fff;display:flex;align-items:baseline;gap:2px}
.nav-logo i{font:400 24px/1 var(--f-script);font-style:normal;color:var(--pink)}
.nav-links{display:flex;align-items:center;gap:26px;font:600 11px/1 var(--f-head);letter-spacing:.2em;text-transform:uppercase}
.nav-links a:not(.btn-chip){opacity:.85;transition:opacity .2s,color .2s}
.nav-links a:not(.btn-chip):hover{opacity:1;color:var(--amber)}
.btn-chip{background:var(--amber);color:var(--plum-800);padding:11px 18px;border-radius:99px;box-shadow:0 6px 20px rgba(255,200,107,.35);transition:transform .25s}
.btn-chip:hover{transform:translateY(-2px) rotate(-2deg)}
@media(max-width:560px){.nav-links a.hide-s{display:none}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;background:
  url('../img/hero%20-%20tns.webp') 30% center/cover no-repeat,
  linear-gradient(90deg,rgba(30,11,46,.28) 0%,rgba(30,11,46,.62) 48%,rgba(21,7,33,.9) 100%),
  linear-gradient(180deg,rgba(21,7,33,.55) 0%,transparent 22%,transparent 75%,rgba(21,7,33,.85) 100%),
  url('../img/hero.webp') 30% center/cover no-repeat,#1e0b2e;
  padding:clamp(120px,16vh,180px) 0;display:flex;flex-direction:column;justify-content:center;overflow:hidden;isolation:isolate}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.55;pointer-events:none;
  background:radial-gradient(1.5px 1.5px at 12% 22%,#fff,transparent),radial-gradient(1px 1px at 33% 12%,#fff,transparent),radial-gradient(1.5px 1.5px at 58% 30%,#ffd98a,transparent),radial-gradient(1px 1px at 72% 10%,#fff,transparent),radial-gradient(1.5px 1.5px at 90% 24%,#fff,transparent),radial-gradient(1px 1px at 22% 52%,#fff,transparent),radial-gradient(1px 1px at 46% 70%,#fff,transparent),radial-gradient(1.5px 1.5px at 6% 66%,#ffd98a,transparent)}
@keyframes glow{50%{opacity:.55}}
.moon{position:absolute;top:17%;left:49%;width:74px;height:74px;border-radius:50%;box-shadow:inset -22px 6px 0 0 #ffe7b8;transform:rotate(-18deg);filter:drop-shadow(0 0 22px rgba(255,231,184,.55));animation:floaty 7s ease-in-out infinite}
@keyframes floaty{50%{translate:0 -10px}}
.hero-grid{flex:1;width:min(1240px,100% - var(--pad)*2);display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,80px);align-items:center;position:relative;z-index:2}
.hero-pill{display:inline-flex;align-items:center;gap:10px;padding:9px 16px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);border-radius:99px;font:600 10.5px/1 var(--f-head);letter-spacing:.22em;text-transform:uppercase;color:#f6dff0}
.hero-pill i{width:7px;height:7px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 4px rgba(255,111,159,.25)}
.hero h1{margin-top:22px;line-height:.82}
.hero h1 .a{display:block;font:400 clamp(84px,13.5vw,200px)/.9 var(--f-display);letter-spacing:-.02em;color:#fff7ee}
.hero h1 .r{display:block;font:400 clamp(86px,13.5vw,196px)/.8 var(--f-script);color:var(--pink);margin:-.12em 0 0 .6em;transform:rotate(-6deg);transform-origin:left;text-shadow:0 0 46px rgba(255,111,159,.4)}
.hero-handle{margin-top:clamp(18px,3vw,34px);font:600 13px/1 var(--f-head);letter-spacing:.18em;color:var(--amber)}
.hero-tag{margin-top:14px;font:500 clamp(16px,1.5vw,20px)/1.4 var(--f-body);color:#fbeaf3;max-width:30em}
.hero-tag small{display:block;margin-top:6px;font-size:13px;opacity:.65}
.hero-cta{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;border-radius:99px;font:700 12px/1 var(--f-head);letter-spacing:.16em;text-transform:uppercase;transition:transform .25s,box-shadow .25s}
.btn svg{width:15px;height:15px;fill:currentColor}
.btn-pink{background:var(--pink);color:var(--plum-900);box-shadow:0 10px 30px rgba(255,111,159,.45)}
.btn-ghost{border:1px solid rgba(255,255,255,.3);color:#fff}
.btn:hover{transform:translateY(-3px)}

@media(min-width:901px){.hero-copy{align-self:end}.stage{align-self:center}}
/* collage scrapbook */
.stage{position:relative;justify-self:center;width:min(100%,470px);aspect-ratio:1/1.2}
.stage::before{content:"";position:absolute;inset:8% 4% 4%;background:radial-gradient(closest-side,rgba(255,111,159,.45),transparent);filter:blur(30px);opacity:.6;transition:opacity .5s;z-index:0}
.stage:hover::before{opacity:1}
.ph{position:absolute;z-index:2;background:#fff4ea;padding:2.4% 2.4% 9.5%;box-shadow:0 18px 34px rgba(0,0,0,.5);transition:transform .6s cubic-bezier(.3,1.5,.5,1),box-shadow .4s}
.ph .in{position:relative;width:100%;height:100%;overflow:hidden;background:var(--plum-700)}
.ph .in img,.ph .in video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:16% 50%}
.ph .in video{opacity:0;transition:opacity .6s}.ph .in video.on{opacity:1}
.ph span{position:absolute;left:0;right:0;bottom:2.6%;text-align:center;font:400 clamp(16px,2vw,24px)/1 var(--f-script);color:var(--wine)}
.ph.big{left:8%;top:9%;width:66%;height:76%;transform:rotate(-3deg);z-index:3}
.ph.sm1{right:0;top:0;width:30%;height:34%;transform:rotate(9deg);z-index:4}
.ph.sm2{right:3%;bottom:1%;width:33%;height:37%;transform:rotate(-7deg);z-index:4}
.ph.sm1 img,.ph.sm2 img{object-position:center}
.ph .c1{transform:scale(2.5);transform-origin:36% 22%}.ph .c2{transform:scale(1.8);transform-origin:80% 55%}
.tp{position:absolute;z-index:6;width:17%;height:5%;transition:transform .6s cubic-bezier(.3,1.5,.5,1)}
.tp.a{left:25%;top:6%;transform:rotate(-6deg);background:rgba(255,111,159,.85)}
.tp.b{right:3.5%;top:-2.8%;transform:rotate(28deg);background:rgba(200,168,255,.88)}
.tp.c{right:10%;bottom:35%;transform:rotate(-22deg);background:rgba(255,200,107,.88)}
.tk{position:absolute;z-index:7;left:0;bottom:7%;padding:10px 15px;background:var(--amber);color:var(--plum-900);font:700 10px/1 var(--f-head);letter-spacing:.2em;transform:rotate(-8deg);transition:transform .6s cubic-bezier(.3,1.5,.5,1);
  -webkit-mask:radial-gradient(circle 6px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 6px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 6px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 6px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat}
.sk{position:absolute;z-index:7;left:1%;top:3%;font-size:40px;line-height:1;color:var(--pink);text-shadow:2px 2px 0 #fff,-2px -2px 0 #fff,2px -2px 0 #fff,-2px 2px 0 #fff;transform:rotate(-14deg);transition:transform .8s}
.hs{position:absolute;z-index:7;bottom:30%;left:40%;font-size:22px;color:var(--pink);opacity:0;pointer-events:none}
.hs.h2{left:55%;color:var(--amber)}.hs.h3{left:28%;color:#fff}
@keyframes up{0%{opacity:0;transform:translateY(0) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translateY(-190px) scale(1.2) rotate(16deg)}}
/* hover: la foto se endereza y las demás se abren */
.stage:hover .ph.big{transform:rotate(-1deg) scale(1.035);box-shadow:0 30px 60px rgba(0,0,0,.6),0 0 60px rgba(255,111,159,.4)}
.stage:hover .ph.sm1{transform:translate(9%,-7%) rotate(15deg)}
.stage:hover .ph.sm2{transform:translate(8%,8%) rotate(-13deg)}
.stage:hover .tp.a{transform:rotate(4deg) translateY(-8px)}.stage:hover .tp.b{transform:translate(16%,-65%) rotate(34deg)}.stage:hover .tp.c{transform:translate(16%,50%) rotate(-26deg)}
.stage:hover .tk{transform:rotate(-3deg) translateX(-14px) scale(1.08)}
.stage:hover .sk{transform:rotate(200deg) scale(1.3)}
.stage:hover .hs{animation:up 1.8s ease-out infinite}.stage:hover .hs.h2{animation-delay:.5s}.stage:hover .hs.h3{animation-delay:1s}
@media(hover:none){.stage .hs{animation:up 3.6s ease-out infinite}.stage .hs.h2{animation-delay:1.2s}.stage .hs.h3{animation-delay:2.4s}}
/* cintas */
.ribbons{position:absolute;left:-4%;right:-4%;bottom:-2px;height:170px;z-index:5;pointer-events:none}
.rib{position:absolute;left:0;width:100%;overflow:hidden;white-space:nowrap}
.rib .track{display:inline-flex;animation:slide 40s linear infinite}
.rib span{display:inline-flex;align-items:center;gap:26px;padding-right:26px}
.rib.r1{bottom:40px;transform:rotate(-2.4deg);background:var(--pink);color:var(--plum-900);padding:16px 0;font:700 clamp(18px,2.2vw,28px)/1 var(--f-brier);letter-spacing:.12em;text-transform:uppercase;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.rib.r2{bottom:4px;transform:rotate(1.6deg);background:var(--plum-900);color:#fff;padding:15px 0;font:400 clamp(18.72px,2.16vw,27.36px)/1 var(--f-script)}
.rib.r2 .track{animation-direction:reverse;animation-duration:55s}
.rib.r2 span::after{content:"♡";font:400 15.84px var(--f-head);color:#fff}
.rib.r1 span::after{content:"✦";color:var(--plum-900)}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- LINKS (crema + tickets) ---------- */
.links{position:relative;background:var(--cream);color:var(--ink);padding:clamp(90px,12vw,170px) 0 clamp(80px,10vw,150px);
  background-image:radial-gradient(rgba(90,18,48,.09) 1px,transparent 1.3px);background-size:22px 22px}
.links-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,7vw,110px);align-items:start}
.links-head{position:sticky;top:110px}
.links-head .eyebrow{color:var(--wine)}
.links-head h2{margin-top:30px;line-height:.9}
.links-head h2 .s{display:block;font:400 clamp(44px,6vw,80px)/1 var(--f-script);color:var(--pink);transform:rotate(-5deg);margin-left:4px}
.links-head h2 .b{display:block;font:700 clamp(40px,5.6vw,76px)/.95 var(--f-brier);letter-spacing:-.01em;color:var(--plum-800);margin-top:-.08em}
.links-head h2 .f{display:block;font:400 clamp(44px,6vw,82px)/1 var(--f-display);color:var(--wine)}
.links-head p{margin-top:28px;max-width:26em;color:#5b3f55;font-size:15px}
.links-head .note{margin-top:24px;font:400 clamp(32px,3.2vw,38px)/1.15 var(--f-script);color:var(--wine)}
.links-head .note span{font-size:.45em;line-height:1;vertical-align:middle;display:inline-block;margin-left:8px;opacity:.85}
.group-label{display:flex;align-items:center;gap:12px;margin:34px 0 14px;font:700 10px/1 var(--f-head);letter-spacing:.24em;text-transform:uppercase;color:var(--wine)}
.group-label:first-child{margin-top:0}
.group-label em{font-style:normal;display:grid;place-items:center;width:26px;height:26px;border:1px solid currentColor;border-radius:50%;letter-spacing:0;font-family:var(--f-brier);font-size:9px}
.group-label::after{content:"";flex:1;border-top:1px dotted rgba(90,18,48,.4)}
.ticket-wrap{filter:drop-shadow(0 12px 14px rgba(60,20,70,.18));margin-bottom:14px;transition:transform .3s cubic-bezier(.3,1.5,.5,1)}
.ticket-wrap:hover{transform:translateY(-4px) rotate(-.6deg)}
.ticket{--r:11px;display:flex;align-items:stretch;min-height:76px;position:relative;
  -webkit-mask:radial-gradient(circle var(--r) at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--r) at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle var(--r) at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--r) at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;
  border-radius:14px}
.ticket .stub{flex:0 0 84px;display:grid;place-items:center}
.ticket .stub svg{width:26px;height:26px;fill:currentColor}
.ticket .main{flex:1;display:flex;align-items:center;gap:12px;padding:14px 20px 14px 22px;border-left:2px dashed rgba(255,255,255,.35)}
.ticket .main strong{display:block;font:700 clamp(18px,2vw,22px)/1.1 var(--f-head);letter-spacing:-.01em}
.ticket .main small{display:block;margin-top:5px;font:500 11px/1.2 var(--f-body);opacity:.75}
.ticket .go{margin-left:auto;display:grid;place-items:center;width:38px;height:38px;border:1.5px solid currentColor;border-radius:50%;font-size:15px;transition:transform .3s,background .3s,color .3s}
.ticket-wrap:hover .go{transform:rotate(45deg);background:#fff;color:var(--plum-800)}
.tk-plum{background:var(--plum-700);color:#fff}
.tk-pink{background:linear-gradient(100deg,#ff5f93,#ff8fb4);color:var(--plum-900)}
.tk-pink .main,.tk-amber .main,.tk-lilac .main{border-left-color:rgba(30,11,46,.35)}
.tk-amber{background:var(--amber);color:var(--plum-900)}
.tk-lilac{background:var(--lilac);color:var(--plum-900)}
/* ticket principal */
.vip-wrap{filter:drop-shadow(0 18px 20px rgba(255,111,159,.3));margin-bottom:46px;transform:rotate(-1.4deg);transition:transform .4s}
.vip-wrap:hover{transform:rotate(0) scale(1.01)}
.vip{--r:16px;--line:58px;position:relative;display:block;padding:20px 26px 0;background:linear-gradient(110deg,#ffc86b 0%,#ffa7a0 45%,#ff7fae 100%);color:var(--plum-900);border-radius:16px;
  -webkit-mask:radial-gradient(circle var(--r) at 0 calc(100% - var(--line)),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--r) at 100% calc(100% - var(--line)),#0000 97%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle var(--r) at 0 calc(100% - var(--line)),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--r) at 100% calc(100% - var(--line)),#0000 97%,#000) right/51% 100% no-repeat}
.vip-top{display:flex;justify-content:space-between;font:700 9px/1 var(--f-head);letter-spacing:.22em;text-transform:uppercase;opacity:.8}
.vip-body{margin:14px 0 18px}
.vip h3{font:700 clamp(38px,6vw,76px)/.95 var(--f-brier);letter-spacing:-.01em}
.vip-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;height:var(--line);border-top:2px dashed rgba(30,11,46,.3);margin:0 6px}
.vip-foot p{font:600 13px/1.3 var(--f-body)}
.vip .cta{background:var(--plum-800);color:#fff;padding:11px 18px;border-radius:99px;font:700 11px/1 var(--f-head);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}

/* ---------- QUIÉN ES ---------- */
.about{position:relative;background:var(--plum-800);padding:clamp(80px,10vw,150px) 0;overflow:hidden;isolation:isolate;
  background-image:radial-gradient(50% 60% at 100% 0,rgba(255,111,159,.18),transparent 70%),radial-gradient(40% 50% at 0 100%,rgba(200,168,255,.16),transparent 70%)}
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,100px);align-items:center}
.about-collage{display:none}
.polaroid{position:relative;justify-self:center;width:min(100%,380px);transform:rotate(-4deg)}
.polaroid .frame{background:var(--cream);padding:14px 14px 64px;border-radius:6px;box-shadow:0 30px 70px rgba(0,0,0,.5)}
.polaroid .pic{aspect-ratio:3/4;overflow:hidden;border-radius:3px;}
.polaroid .pic img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.polaroid figcaption{position:absolute;left:0;right:0;bottom:14px;text-align:center;font:400 28px/1 var(--f-script);color:var(--wine)}
.polaroid .tape{position:absolute;top:-16px;left:50%;width:110px;height:32px;margin-left:-55px;background:rgba(255,200,107,.8);transform:rotate(3deg);
  -webkit-mask:linear-gradient(90deg,#0000 0,#000 3px calc(100% - 3px),#0000 100%);mask:linear-gradient(90deg,#0000 0,#000 3px calc(100% - 3px),#0000 100%)}
.about-head .eyebrow{color:var(--pink)}
.about-head h2{margin-top:24px;line-height:.9}
.about-head h2 .s{display:block;font:400 clamp(44px,5.5vw,76px)/1 var(--f-script);color:var(--pink);transform:rotate(-4deg)}
.about-head h2 .b{display:block;font:700 clamp(38px,5.4vw,74px)/1 var(--f-brier);color:#fff}
.about-head p.lead{margin-top:18px;color:#d9c3e6;font-size:15px}
.cred{position:relative;margin-top:28px;background:var(--cream);color:var(--ink);border-radius:14px;padding:22px 26px 26px;box-shadow:0 26px 60px rgba(0,0,0,.4);
  -webkit-mask:radial-gradient(circle 11px at 50% 0,#0000 97%,#000) top/100% 51% no-repeat,linear-gradient(#000,#000) bottom/100% 52% no-repeat;
  mask:radial-gradient(circle 11px at 50% 0,#0000 97%,#000) top/100% 51% no-repeat,linear-gradient(#000,#000) bottom/100% 52% no-repeat}
.cred-top{display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid rgba(30,11,46,.8);font:700 9px/1 var(--f-head);letter-spacing:.22em;text-transform:uppercase}
.cred dl{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;margin-top:18px}
.cred .full{grid-column:1/-1}
.cred dt{font:700 9px/1 var(--f-head);letter-spacing:.2em;text-transform:uppercase;color:var(--wine)}
.cred dd{margin-top:7px;font:400 clamp(22px,2.4vw,30px)/1.1 var(--f-brier);letter-spacing:-.005em}
.cred .code{height:22px;margin-top:20px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 14px)}
.facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(40px,6vw,80px);border-top:1px solid rgba(255,255,255,.14)}
.fact{padding:26px 24px 0 0;position:relative}
.fact+.fact{padding-left:24px;border-left:1px solid rgba(255,255,255,.14)}
.fact i{font:400 34px/1 var(--f-script);font-style:normal;color:var(--pink)}
.fact h3{margin-top:12px;font:700 12px/1.2 var(--f-head);letter-spacing:.16em;text-transform:uppercase}
.fact p{margin-top:12px;font-size:13px;line-height:1.7;color:#cdb6dc}

/* ---------- COMUNIDAD ---------- */
.stats{position:relative;padding:clamp(70px,9vw,130px) 0;background:linear-gradient(115deg,#ff7aa8 0%,#ff9fb0 45%,#ffc27a 100%);color:var(--plum-900);overflow:hidden;
  background-image:radial-gradient(rgba(255,255,255,.28) 1px,transparent 1.3px),linear-gradient(115deg,#ff7aa8 0%,#ff9fb0 45%,#ffc27a 100%);background-size:20px 20px,100% 100%}
.stats-in{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.stats h2{line-height:.95}
.stats h2 .b{display:block;font:400 clamp(44px,6vw,84px)/1 var(--f-display);color:var(--plum-900)}
.stats h2 .s{display:block;font:400 clamp(44px,6vw,84px)/1 var(--f-script);color:var(--wine);transform:rotate(-4deg);margin:-.06em 0 0 .4em}
.seals{display:flex;align-items:center;margin-right:2%}
.seal-big{width:clamp(190px,24vw,300px);aspect-ratio:1;display:grid;place-items:center;text-align:center;clip-path:var(--scallop);filter:drop-shadow(0 20px 20px rgba(0,0,0,.2))}
.seal-big.s1{background:var(--plum-800);color:var(--amber);margin-right:-34px;z-index:1;transform:rotate(-6deg)}
.seal-big.s2{background:var(--cream);color:var(--wine);transform:rotate(5deg);margin-top:30px}
.seal-big b{display:block;font:700 clamp(42px,5.6vw,72px)/1 var(--f-brier);letter-spacing:-.01em}
.seal-big small{display:block;margin-top:8px;font:700 10px/1 var(--f-head);letter-spacing:.24em;text-transform:uppercase;color:inherit;opacity:.9}
.seal-big.s1 small{color:#fff}

/* ---------- CONTACTO ---------- */
.contact{position:relative;background:var(--plum-900);padding:clamp(80px,10vw,150px) 0 0;overflow:hidden;isolation:isolate;
  background-image:radial-gradient(45% 50% at 85% 20%,rgba(255,111,159,.18),transparent 70%),radial-gradient(40% 40% at 5% 80%,rgba(120,60,200,.22),transparent 70%)}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,100px);align-items:start}
.contact-head .eyebrow{color:var(--pink)}
.contact-head h2{margin-top:24px;line-height:.9}
.contact-head h2 .s{display:block;font:400 clamp(44px,5.6vw,78px)/1 var(--f-script);color:var(--pink);transform:rotate(-4deg)}
.contact-head h2 .b{display:block;font:700 clamp(40px,5.6vw,78px)/1 var(--f-brier);color:#fff}
.contact-head p{margin-top:20px;color:#d9c3e6;max-width:24em;font-size:15px}
.open{margin-top:18px;display:inline-flex;align-items:center;gap:10px;font-size:13px;color:#f3dff0}
.open i{width:8px;height:8px;border-radius:50%;background:#7dffb0;box-shadow:0 0 0 4px rgba(125,255,176,.2);animation:glow 2s infinite}
.paper{position:relative;background:var(--cream);color:var(--ink);padding:44px clamp(22px,3vw,42px) 36px;border-radius:0 0 14px 14px;box-shadow:0 30px 70px rgba(0,0,0,.5);}
.paper::before{content:"";position:absolute;left:0;right:0;top:-10px;height:12px;background:conic-gradient(from 135deg at 50% 0%,var(--cream) 0 90deg,transparent 90deg) 0 0/20px 12px}
.paper form{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px}
.paper .full{grid-column:1/-1}
.paper label{display:block;font:700 9.5px/1 var(--f-head);letter-spacing:.22em;text-transform:uppercase;color:var(--wine)}
.paper input[type=text],.paper textarea{width:100%;margin-top:6px;background:none;border:0;border-bottom:1.5px solid rgba(30,11,46,.55);padding:10px 0;font:400 15px/1.4 var(--f-body);color:var(--ink);outline:none;border-radius:0;resize:vertical;transition:border-color .2s}
.paper input::placeholder,.paper textarea::placeholder{color:rgba(30,11,46,.4)}
.paper input:focus,.paper textarea:focus{border-color:var(--pink)}
.paper .row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.paper button[type=submit]{background:var(--pink);color:var(--plum-900);padding:15px 26px;border-radius:99px;font:700 12px/1 var(--f-head);letter-spacing:.16em;text-transform:uppercase;box-shadow:0 10px 24px rgba(255,111,159,.45);transition:transform .25s}
.paper button[type=submit]:hover{transform:translateY(-3px)}
.paper button[disabled]{opacity:.6}
#msg{font-size:13px;color:var(--wine)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.giant{margin-top:clamp(60px,9vw,120px);text-align:center;font:400 clamp(60px,15.5vw,250px)/.95 var(--f-display);white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px rgba(255,111,159,.6);
  background:linear-gradient(180deg,rgba(255,111,159,.25),transparent 85%);-webkit-background-clip:text;background-clip:text;user-select:none;letter-spacing:-.02em}
footer{margin-top:clamp(60px,8vw,100px);padding:22px var(--pad) 28px;text-align:center;font:600 10px/1.9 var(--f-head);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.78);border-top:1px solid rgba(255,255,255,.1)}
footer b{color:var(--pink);font-weight:600;margin:0 6px}
.dbtn{text-decoration:underline;text-underline-offset:4px;letter-spacing:inherit;text-transform:inherit;font:inherit}
.dbtn:hover{color:var(--amber)}

/* ---------- MODAL ---------- */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.modal.is-open{display:flex}
.modal .bd{position:absolute;inset:0;background:rgba(15,5,25,.8);backdrop-filter:blur(6px)}
.modal .card{position:relative;width:min(720px,100%);max-height:88svh;overflow:auto;background:var(--cream);color:var(--ink);border-radius:18px;padding:28px clamp(22px,4vw,40px)}
.modal .top{display:flex;justify-content:space-between;align-items:center}
.modal .top .eyebrow{color:var(--wine)}
.modal .x{width:36px;height:36px;border:1.5px solid var(--ink);border-radius:50%}
.modal h3{margin:14px 0 14px;font:700 clamp(20px,3vw,28px)/1.15 var(--f-brier)}
.modal ul{margin-left:18px;display:grid;gap:12px;font-size:13.5px;color:#4a3347}
.modal a{color:var(--wine);text-decoration:underline}
.modal .ok{margin-top:22px;background:var(--plum-800);color:#fff;padding:14px 24px;border-radius:99px;font:700 12px/1 var(--f-head);letter-spacing:.16em;text-transform:uppercase}

/* ---------- REVEAL ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .hero-grid,.links-grid,.about-grid,.contact-grid{grid-template-columns:1fr}
  /* MÓVIL: la imagen ocupa la parte de arriba (cara libre) y el contenido empieza desde los hombros */
  .hero{--hh:min(168vw,860px);padding-top:calc(var(--hh)*.4);background:
    linear-gradient(180deg,rgba(21,7,33,.6) 0,transparent 90px,transparent calc(var(--hh)*.36),rgba(21,7,33,.55) calc(var(--hh)*.5),rgba(30,11,46,.92) calc(var(--hh)*.8),#1e0b2e var(--hh)),
    url('../img/hero-m.webp') 22% 0/auto var(--hh) no-repeat,#1e0b2e}
  .hero-copy{text-align:center}
  .hero h1 .r{margin-left:0;transform-origin:center;transform:rotate(-5deg)}
  .hero-cta{justify-content:center}
  .hero-handle{margin-top:22px}
  .hero-tag{margin-inline:auto}
  .moon{left:auto;right:5%;top:calc(var(--hh,640px)*.1);width:54px;height:54px;box-shadow:inset -16px 4px 0 0 #ffe7b8}
  .hero{min-height:100svh;justify-content:flex-start}
  .about-collage{display:block}
  body:not(.no-js) .polaroid{display:none}
  .about-collage .stage{width:min(86%,380px);margin:10px auto 0}
  .links-head{position:static;text-align:left}
  .facts{grid-template-columns:1fr 1fr}
  .fact:nth-child(3){padding-left:0;border-left:0}
  .fact:nth-child(n+3){margin-top:26px}
  .stats-in{justify-content:center;text-align:center}
  .stats h2 .s{margin-left:0}
  .seals{margin-right:0}
}
@media(max-width:560px){
  .ticket .stub{flex-basis:64px}
  .paper form{grid-template-columns:1fr}
  .seal-big.s1{margin-right:-24px}
  .facts{grid-template-columns:1fr}
  .fact,.fact+.fact{padding:22px 0 0 !important;border-left:0 !important}
  .rib.r1{bottom:48px}
  .ribbons{height:170px}
  .hero{padding-bottom:150px}
  footer{padding:12px 10px 14px;font-size:clamp(8px,2.4vw,9.5px);letter-spacing:.07em;line-height:1.2;white-space:nowrap}
  footer b{margin:0 4px}
  .foot-rights{display:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}

/* ---------- MOUSE PERSONALIZADO ---------- */
#cur {
  display: none;
  position: fixed;
  left: 0;
  top: 0;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  border-radius: 9999px;
  pointer-events: none;
  z-index: 2147483647;
  filter: blur(1px);
  box-shadow: 0 0 12px rgba(255, 111, 159, 0.65);
  background: radial-gradient(circle, #ff6f9f 0%, rgba(255, 143, 180, .85) 45%, rgba(200, 168, 255, .45) 75%, transparent 100%);
  transition: width .3s ease, height .3s ease, margin .3s ease, opacity .3s ease;
}

#cur.big {
  width: 56px;
  height: 56px;
  margin: -28px 0 0 -28px;
  opacity: .8;
  box-shadow: 0 0 20px rgba(255, 200, 107, 0.7);
  background: radial-gradient(circle, #ffc86b 0%, rgba(255, 111, 159, .75) 50%, transparent 100%);
}

html.fx, html.fx * {
  cursor: none !important;
}

html.fx #cur {
  display: block;
}

.trail {
  position: fixed;
  z-index: 2147483646;
  pointer-events: none;
  font-size: 13px;
  color: #ffc86b;
  text-shadow: 0 0 6px rgba(255, 200, 107, 0.8), 0 0 12px rgba(255, 111, 159, 0.6);
  animation: trail .85s cubic-bezier(.22, .8, .3, 1) forwards;
}

@keyframes trail {
  to {
    transform: translate(var(--dx), var(--dy)) scale(.2) rotate(90deg);
    opacity: 0;
  }
}

