/* =====================================================================
   Cataleya Alta Costura — La Entrada al Vals
   El salon a oscuras, un seguidor de luz y el programa de la noche.
   Al cambiar este archivo sube el ?v=N del <link> en index.html.
   ===================================================================== */

@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/bodoni-moda.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400 700;font-display:swap;src:url(../fonts/bodoni-moda-italic.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:300 600;font-display:swap;src:url(../fonts/jost.woff2) format("woff2")}

@property --gel{syntax:"<color>";inherits:true;initial-value:#c1122f}

:root{
  /* el salon */
  --fondo:#07040c;          /* fuera de la luz */
  --salon:#0b0612;          /* piso del salon */
  --salon-2:#120a1d;
  --salon-3:#1c1030;
  --wash:#3a1458;           /* banio violeta del escenario */
  --wash-hi:#7b3fb9;
  /* la luz */
  --spot:#fff1dc;           /* blanco calido del seguidor: texto */
  --spot-2:#d6c8de;         /* texto secundario, tenido de violeta */
  --spot-3:#a394b0;         /* texto en reposo */
  --line:rgba(255,241,220,.14);
  /* el metal */
  --gold:#d2a85a;
  --gold-hi:#f0d596;
  --gold-lo:#8a6727;
  /* luces de sala */
  --sala:#f3e9d6;
  --sala-2:#e8dabf;
  --ink:#1b1024;
  --ink-2:#55445f;

  --serif:"Bodoni Moda","Didot","Bodoni MT",Georgia,serif;
  --sans:"Jost","Avenir Next","Century Gothic",system-ui,sans-serif;

  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-enter:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.77,0,.175,1);

  --pad:clamp(20px,4.4vw,64px);
  --max:1320px;
  --top:72px;
  --sec:clamp(72px,11vh,128px);
  --r:6px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--top) + 12px);scrollbar-color:#4b2a70 var(--fondo);background:var(--fondo)}
body{margin:0;background:var(--salon);color:var(--spot);font-family:var(--sans);font-size:1.0625rem;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,svg{display:block}
img{max-width:100%;height:auto}
h1,h2,h3,p,ol,ul,dl,dd,figure,blockquote,fieldset{margin:0;padding:0}
fieldset{border:0;min-width:0}
ol,ul{list-style:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--gold);color:#1c1208}
:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px;border-radius:4px}
[hidden]{display:none!important}

.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.wrap{width:min(100% - 2*var(--pad),var(--max));margin-inline:auto}
.skip{position:fixed;left:16px;top:-90px;z-index:200;background:var(--spot);color:var(--ink);padding:12px 18px;border-radius:8px;font-weight:500}
.skip:focus{top:12px}

h1,h2{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.022em;text-wrap:balance}
h2{font-size:clamp(2.3rem,4.7vw,4.25rem);line-height:1.02}
h3{font-family:var(--serif);font-weight:500;font-size:1.45rem;line-height:1.15;letter-spacing:-.005em}
.lead{margin-top:18px;max-width:46ch;color:var(--spot-2);font-size:clamp(1.0625rem,1.25vw,1.19rem);text-wrap:pretty}

/* ---------- enlace con subrayado que se dibuja ---------- */
.lnk{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:500;font-size:1rem;letter-spacing:.01em}
.lnk::before,.lnk::after{content:"";position:absolute;left:0;right:0;bottom:9px;height:1px;background:currentColor;opacity:.3}
.lnk::after{background:var(--gold);opacity:1;transform:scaleX(0);transform-origin:left;transition:transform .34s var(--ease-out)}
.lnk svg{flex:none;color:var(--gold);transition:transform .2s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .lnk:hover::after{transform:scaleX(1)}
  .lnk:hover svg{transform:translateX(3px)}
}
.lnk:active svg{transform:translateX(5px)}

/* ---------- el boleto: boton principal ---------- */
.ticket{--tk-bg:var(--gold);--tk-fg:#1c1208;--tk-h:58px;--tk-stub:58px;--tk-n:6px;
  position:relative;isolation:isolate;display:inline-flex;align-items:stretch;height:var(--tk-h);padding:0;border:0;background:none;
  color:var(--tk-fg);font-family:var(--sans);font-weight:500;font-size:1.02rem;letter-spacing:.01em;white-space:nowrap;cursor:pointer;
  -webkit-tap-highlight-color:transparent;user-select:none;
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.36));
  transition:transform .16s var(--ease-out),filter .2s var(--ease-out),color .9s ease}
.ticket::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:9px;
  background-color:var(--tk-bg);
  background-image:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0) 46%,rgba(0,0,0,.15));
  -webkit-mask:radial-gradient(circle var(--tk-n) at var(--tk-stub) 0,#0000 96%,#000) top/100% 51% no-repeat,radial-gradient(circle var(--tk-n) at var(--tk-stub) 100%,#0000 96%,#000) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle var(--tk-n) at var(--tk-stub) 0,#0000 96%,#000) top/100% 51% no-repeat,radial-gradient(circle var(--tk-n) at var(--tk-stub) 100%,#0000 96%,#000) bottom/100% 51% no-repeat;
  transition:background-color .9s ease,filter .2s ease}
.ticket__stub{flex:0 0 var(--tk-stub);display:grid;place-items:center;border-right:1.5px dashed color-mix(in srgb,var(--tk-fg) 40%,transparent)}
.ticket__body{display:flex;align-items:center;padding:0 26px 0 22px}
.ticket:focus-visible{outline-offset:5px;border-radius:10px}
@media (hover:hover) and (pointer:fine){
  .ticket:hover{transform:translateY(-2px);filter:drop-shadow(0 16px 22px rgba(0,0,0,.44))}
  .ticket:hover::before{filter:brightness(1.08)}
}
.ticket:active{transform:scale(.97);transition-duration:.1s}
.ticket--sm{--tk-h:44px;--tk-stub:44px;--tk-n:5px;font-size:.92rem;filter:none}
.ticket--sm .ticket__body{padding:0 18px 0 14px}
.ticket--ink{--tk-bg:var(--ink);--tk-fg:var(--spot)}
.ticket--ink::before{background-image:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,0) 50%,rgba(0,0,0,.2))}

/* =====================================================================
   BARRA SUPERIOR
   ===================================================================== */
.top{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--top);background:rgba(9,5,15,.8);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid rgba(255,241,220,.08)}
.top__in{height:100%;width:min(100% - 2*var(--pad),1560px);margin-inline:auto;display:flex;align-items:center;gap:30px}
.top__logo{flex:none;margin-right:auto;padding:6px 0}
.top__logo img{height:42px;width:auto}
.top__nav{display:flex;gap:30px}
.top__nav a{position:relative;padding:14px 0;font-size:.79rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--spot-2);transition:color .15s ease}
.top__nav a::after{content:"";position:absolute;left:0;right:.2em;bottom:9px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .top__nav a:hover{color:var(--spot)}
  .top__nav a:hover::after{transform:scaleX(1)}
}
.top__menu{display:none;position:relative;width:46px;height:46px;margin-right:0;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.top__menu span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--spot);transition:transform .28s var(--ease-out)}
.top__menu span:nth-child(1){top:19px}
.top__menu span:nth-child(2){top:27px}
.top__menu[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.top__menu[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}

.menu{position:fixed;inset:var(--top) 0 0 0;z-index:55;display:flex;flex-direction:column;justify-content:space-between;padding:28px var(--pad) calc(28px + env(safe-area-inset-bottom));background:rgba(8,4,13,.97);opacity:0;transition:opacity .22s ease}
.menu.is-open{opacity:1}
.menu__nav{display:grid}
.menu__nav a{display:flex;align-items:center;min-height:64px;border-bottom:1px solid var(--line);font-family:var(--serif);font-style:italic;font-size:1.85rem;letter-spacing:-.01em;opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .45s var(--ease-out)}
.menu.is-open .menu__nav a{opacity:1;transform:none}
.menu.is-open .menu__nav a:nth-child(2){transition-delay:.04s}
.menu.is-open .menu__nav a:nth-child(3){transition-delay:.08s}
.menu.is-open .menu__nav a:nth-child(4){transition-delay:.12s}
.menu.is-open .menu__nav a:nth-child(5){transition-delay:.16s}
.menu.is-open .menu__nav a:nth-child(6){transition-delay:.2s}
.menu__dato{color:var(--spot-3);font-size:.95rem}

/* =====================================================================
   PORTADA: apagon y seguidor
   ===================================================================== */
.hero{--home-x:62%;--home-y:55%;--pool:clamp(170px,19vmax,300px);
  position:relative;isolation:isolate;min-height:100svh;display:grid;grid-template-rows:1fr auto;padding-bottom:24px;overflow:clip;background:var(--fondo)}
.hero__stage{position:absolute;inset:0;z-index:-1;overflow:hidden}
.hero__stage picture{display:block;width:100%;height:100%}
.hero__photo{width:100%;height:100%;object-fit:cover;object-position:62% 54%}

/* la oscuridad con un hueco: el circulo de luz. JS solo mueve transform. */
.hero__dark{position:absolute;left:var(--home-x);top:var(--home-y);width:0;height:0;will-change:transform}
.hero__dark i{position:absolute;left:-200vmax;top:-200vmax;width:400vmax;height:400vmax;
  background:radial-gradient(circle at center,rgba(7,4,12,0) 0,rgba(7,4,12,0) calc(var(--pool)*.72),rgba(7,4,12,.42) calc(var(--pool)*1.35),rgba(7,4,12,.74) calc(var(--pool)*2.25),rgba(7,4,12,.84) calc(var(--pool)*3.5))}
/* el haz que baja desde la parrilla */
.hero__beam{position:absolute;left:50%;top:-6%;width:0;height:0;will-change:transform;opacity:.9}
.hero__beam i{position:absolute;left:calc(var(--pool)*-1.05);top:0;width:calc(var(--pool)*2.1);height:100px;transform-origin:50% 0;
  background:linear-gradient(180deg,rgba(255,236,204,.3),rgba(255,236,204,.12) 55%,rgba(255,236,204,0));
  clip-path:polygon(47.5% 0,52.5% 0,100% 100%,0 100%);filter:blur(9px)}
.hero__veil{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(7,4,12,.72),rgba(7,4,12,.3) 34%,rgba(7,4,12,0) 56%),linear-gradient(180deg,rgba(7,4,12,.5),rgba(7,4,12,0) 22%,rgba(7,4,12,0) 62%,rgba(7,4,12,.82))}

.hero__copy{align-self:end;width:min(100% - 2*var(--pad),1560px);margin-inline:auto;padding:calc(var(--top) + 36px) 0 clamp(26px,4.4vh,46px)}
.hero__h{max-width:6.3em;font-size:clamp(3rem,6.5vw,6rem);line-height:.92;letter-spacing:-.028em;color:var(--spot)}
.hero__h .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .16em .2em .05em;margin:-.08em -.16em -.2em -.05em}
.hero__h .w>i{display:inline-block;font-style:inherit}
.hero__lead{margin-top:22px;max-width:40ch;color:var(--spot-2);font-size:clamp(1.0625rem,1.3vw,1.22rem);text-wrap:pretty}
.hero__acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 30px;margin-top:28px}

/* el programa de la noche */
.programa{width:min(100% - 2*var(--pad),1560px);margin-inline:auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,241,220,.24)}
.programa a{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:17px 24px 21px 0}
.programa a+a{padding-left:24px;border-left:1px solid rgba(255,241,220,.12)}
.programa a::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.programa__acto{font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--spot-3);transition:color .2s ease}
.programa__t{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,1.55vw,1.45rem);letter-spacing:-.01em;transition:color .2s ease}
@media (hover:hover) and (pointer:fine){
  .programa a:hover::before{transform:scaleX(1)}
  .programa a:hover .programa__acto{color:var(--gold-hi)}
}

/* entrada: una sola vez, al cargar */
.js .hero__stage::after{content:"";position:absolute;inset:0;background:var(--fondo);pointer-events:none;transition:opacity 1s ease-out}
.js .hero__photo{transform:scale(1.07);transition:transform 1.8s var(--ease-enter)}
.js .hero__dark i{transform:scale(.6);transition:transform 1.5s var(--ease-enter)}
.js .hero__beam{opacity:0;transition:opacity .9s ease .2s}
.js:not(.is-ready) .hero__h:not(.is-split){visibility:hidden}
.js .hero__h .w>i{transform:translateY(118%);transition:transform .9s var(--ease-enter) calc(.3s + var(--i)*45ms)}
.js .hero__lead,.js .hero__acts,.js .programa{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .7s var(--ease-enter)}
.js .hero__lead{transition-delay:.8s}
.js .hero__acts{transition-delay:.9s}
.js .programa{transition-delay:1.05s}
.is-ready .hero__stage::after{opacity:0}
.is-ready .hero__photo,.is-ready .hero__dark i{transform:none}
.is-ready .hero__beam{opacity:.9}
.is-ready .hero__h .w>i{transform:none}
.is-ready .hero__lead,.is-ready .hero__acts,.is-ready .programa{opacity:1;transform:none}

/* =====================================================================
   COLECCION: un color bajo la luz
   ===================================================================== */
.coleccion{--gel:#c1122f;position:relative;min-height:calc(100svh - var(--top));display:grid;align-items:center;padding:clamp(64px,9vh,104px) 0;overflow:clip;background:var(--salon);transition:--gel .8s ease}
.coleccion__wash{position:absolute;right:-12%;top:50%;width:min(78vw,1100px);aspect-ratio:1;translate:0 -50%;pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in oklab,var(--gel) 46%,transparent),color-mix(in oklab,var(--gel) 16%,transparent) 55%,transparent 78%)}
.coleccion__grid{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}

.gels{display:flex;flex-wrap:wrap;gap:4px 2px;margin:38px 0 0 -12px}
.gel{display:grid;justify-items:center;gap:9px;width:70px;padding:8px 0 4px;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.gel__dot{-webkit-appearance:none;appearance:none;display:block;margin:0;border:0;cursor:pointer;width:42px;height:42px;border-radius:50%;opacity:.6;
  background:radial-gradient(circle at 34% 28%,color-mix(in oklab,var(--c) 60%,#fff) 0,var(--c) 50%,color-mix(in oklab,var(--c) 66%,#000) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,241,220,.3);
  transition:transform .22s var(--ease-out),opacity .2s ease,box-shadow .22s ease}
.gel__n{font-size:.66rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--spot-3);transition:color .2s ease}
@media (hover:hover) and (pointer:fine){.gel:hover .gel__dot{opacity:1}}
.gel:active .gel__dot{transform:scale(.94)}
.gel__dot:checked{opacity:1;transform:scale(1.1);box-shadow:inset 0 0 0 1px rgba(255,241,220,.4),0 0 0 3px var(--salon),0 0 0 4.5px var(--spot),0 6px 22px 2px color-mix(in oklab,var(--c) 60%,transparent)}
.gel:has(:checked) .gel__n{color:var(--spot)}
.gel__dot:focus-visible{outline:2px solid var(--gold-hi);outline-offset:6px;border-radius:50%}

.fichas{display:grid;margin-top:34px}
.ficha{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .22s ease,transform .3s var(--ease-out),visibility 0s .22s}
.ficha h3{font-style:italic;font-weight:400;font-size:clamp(2.7rem,4.6vw,4.1rem);line-height:1;letter-spacing:-.022em}
.ficha p{margin-top:12px;max-width:34ch;color:var(--spot-2)}
.ficha .lnk{margin-top:12px}

.laminas{position:relative;justify-self:end;height:min(80svh,840px);aspect-ratio:4/5;max-width:100%;border-radius:var(--r);overflow:hidden;background:var(--salon-2);box-shadow:0 50px 90px -40px rgba(0,0,0,.9)}
.lamina{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.045);filter:blur(10px);transition:opacity .5s ease,transform 1s var(--ease-out),filter .55s ease}
.laminas__sombra{position:absolute;inset:0;pointer-events:none;background:radial-gradient(115% 85% at 50% 40%,rgba(11,6,18,0) 55%,rgba(11,6,18,.46) 100%),linear-gradient(180deg,rgba(11,6,18,0) 72%,rgba(11,6,18,.5))}

/* estado: lo elegido se enciende */
.coleccion:has(#gel-rubi:checked){--gel:#c1122f}
.coleccion:has(#gel-esmeralda:checked){--gel:#1d8a76}
.coleccion:has(#gel-amatista:checked){--gel:#a57ed8}
.coleccion:has(#gel-zafiro:checked){--gel:#3350b8}
.coleccion:has(#gel-onix:checked){--gel:#6b5a7c}
.coleccion:has(#gel-cuarzo:checked){--gel:#e3a79c}
.coleccion:has(#gel-perla:checked){--gel:#e9dfce}
.coleccion:has(#gel-rubi:checked) .ficha[data-gel="rubi"],
.coleccion:has(#gel-esmeralda:checked) .ficha[data-gel="esmeralda"],
.coleccion:has(#gel-amatista:checked) .ficha[data-gel="amatista"],
.coleccion:has(#gel-zafiro:checked) .ficha[data-gel="zafiro"],
.coleccion:has(#gel-onix:checked) .ficha[data-gel="onix"],
.coleccion:has(#gel-cuarzo:checked) .ficha[data-gel="cuarzo"],
.coleccion:has(#gel-perla:checked) .ficha[data-gel="perla"],
.ficha.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .4s ease .14s,transform .55s var(--ease-out) .14s,visibility 0s}
.coleccion:has(#gel-rubi:checked) .lamina[data-gel="rubi"],
.coleccion:has(#gel-esmeralda:checked) .lamina[data-gel="esmeralda"],
.coleccion:has(#gel-amatista:checked) .lamina[data-gel="amatista"],
.coleccion:has(#gel-zafiro:checked) .lamina[data-gel="zafiro"],
.coleccion:has(#gel-onix:checked) .lamina[data-gel="onix"],
.coleccion:has(#gel-cuarzo:checked) .lamina[data-gel="cuarzo"],
.coleccion:has(#gel-perla:checked) .lamina[data-gel="perla"],
.lamina.is-on{opacity:1;transform:none;filter:none}

/* =====================================================================
   MURO DE FOTOS
   ===================================================================== */
.muro{padding:var(--sec) 0;background:radial-gradient(70% 40% at 20% 0,rgba(58,20,88,.34),transparent 70%),var(--salon)}
.muro__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 60px;margin-bottom:clamp(30px,4.6vw,60px)}
.muro__head h2{max-width:12em}
.muro__head .lead{margin:0 0 .5em;max-width:34ch}
.muro__filas{display:grid;gap:12px}
.muro__fila{display:flex;gap:12px}
.foto{position:relative;flex:var(--ar) 1 0;min-width:0;aspect-ratio:var(--ar);display:block;overflow:hidden;border-radius:var(--r);background:var(--salon-3);cursor:zoom-in}
.foto img{width:100%;height:100%;object-fit:cover;transition:filter .5s ease,transform .7s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .foto img{filter:brightness(.7) saturate(.9)}
  .foto:hover img,.foto:focus-visible img{filter:none;transform:scale(1.03)}
}
.foto:focus-visible{outline-offset:4px}

/* =====================================================================
   BORDADOS: de cerca
   ===================================================================== */
.bordados{position:relative;padding:var(--sec) 0;background:radial-gradient(60% 50% at 0 100%,rgba(58,20,88,.3),transparent 70%),var(--fondo)}
.capitulos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 20px;margin-top:clamp(30px,4.6vw,56px)}
.capitulo{display:flex;flex-direction:column-reverse;gap:18px}
.capitulo__txt{padding-top:16px;border-top:1px solid var(--line)}
.capitulo h3{font-size:clamp(1.4rem,2.1vw,1.9rem)}
.capitulo p{margin-top:6px;max-width:36ch;color:var(--spot-2)}
.bordado{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r);background:var(--salon-2)}

/* con JS y movimiento permitido: la seccion se queda fija y las fotos se revelan al avanzar */
.js-pin .bordados{height:300vh;height:300svh;padding:0}
.js-pin .bordados__pin{position:sticky;top:0;height:100vh;height:100svh;display:grid;align-items:center;overflow:hidden;padding-top:var(--top)}
.js-pin .bordados__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-rows:auto auto auto auto;column-gap:clamp(32px,6vw,96px);align-content:center}
.js-pin .bordados__grid h2{grid-column:1;grid-row:1;margin-bottom:clamp(22px,4vh,44px)}
.js-pin .capitulos,.js-pin .capitulo{display:contents}
.js-pin .capitulo__txt{position:relative;grid-column:1;padding:20px 0 22px;border-top:1px solid var(--line)}
.js-pin .capitulo:nth-child(1) .capitulo__txt{grid-row:2}
.js-pin .capitulo:nth-child(2) .capitulo__txt{grid-row:3}
.js-pin .capitulo:nth-child(3) .capitulo__txt{grid-row:4}
.js-pin .capitulo__txt::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}
.js-pin .capitulo h3{color:var(--spot-3);transition:color .35s ease}
.js-pin .capitulo p{color:var(--spot-3);transition:color .35s ease}
.js-pin .capitulo.is-on h3{color:var(--spot)}
.js-pin .capitulo.is-on p{color:var(--spot-2)}
.js-pin .capitulo.is-on .capitulo__txt::before{transform:scaleX(1)}
.js-pin .bordado{grid-column:2;grid-row:1/-1;align-self:center;justify-self:end;width:auto;height:min(76svh,800px);max-width:100%;will-change:clip-path}
.js-pin .capitulo:nth-child(n+2) .bordado{clip-path:inset(100% 0 0 0)}

/* =====================================================================
   A TU MEDIDA: luz de taller
   ===================================================================== */
.medida{padding:var(--sec) 0;background:radial-gradient(55% 46% at 8% 16%,rgba(210,168,90,.12),transparent 70%),var(--salon-2)}
.medida__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,4fr);gap:clamp(32px,7vw,110px);align-items:start}
.medida__foto{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;max-height:80svh;justify-self:end;width:100%;background:var(--salon-3)}
.medida__foto img{width:100%;height:100%;object-fit:cover;object-position:50% 32%}
.medida__foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,10,29,0) 60%,rgba(18,10,29,.55))}
.pasos{counter-reset:paso;margin-top:clamp(26px,3.6vw,40px);border-bottom:1px solid var(--line)}
.pasos li{counter-increment:paso;display:grid;grid-template-columns:3.4rem 1fr;column-gap:14px;padding:17px 0 18px;border-top:1px solid var(--line)}
.pasos li::before{content:counter(paso);grid-row:1/3;font-family:var(--serif);font-style:italic;font-size:2.5rem;line-height:.95;color:var(--gold)}
.pasos h3{font-size:1.32rem}
.pasos p{margin-top:2px;color:var(--spot-2)}

/* =====================================================================
   NOVIAS Y PRESENTACIONES
   ===================================================================== */
.lineas{padding:var(--sec) 0;background:var(--salon)}
.lineas__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,6vw,90px);align-items:start}
.lineas__foto{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--salon-3)}
.lineas__foto img{width:100%;height:100%;object-fit:cover}
.lineas__lista{display:grid;gap:clamp(22px,3vw,36px);margin-top:clamp(30px,4.4vw,54px)}
.linea{position:relative;display:grid;grid-template-columns:1fr;gap:6px;padding:0 0 0 clamp(18px,2vw,28px)}
.linea::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line)}
.linea::after{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .6s var(--ease-out)}
.linea__n{font-family:var(--serif);font-style:italic;font-size:clamp(2.5rem,5.2vw,4.6rem);line-height:.95;letter-spacing:-.028em;transition:color .35s ease}
.linea__d{color:var(--spot-2)}
.linea__a{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:500;white-space:nowrap}
.linea__a svg{color:var(--gold);transition:transform .2s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .linea__n{color:var(--spot-3)}
  .linea:hover .linea__n,.linea:focus-visible .linea__n{color:var(--spot)}
  .linea:hover::after,.linea:focus-visible::after{transform:scaleY(1)}
  .linea:hover .linea__a svg{transform:translateX(4px)}
}
.linea:focus-visible{outline-offset:6px}

/* =====================================================================
   LEMA
   ===================================================================== */
.lema{padding:clamp(96px,20vh,210px) 0;text-align:center;background:radial-gradient(46% 60% at 50% 50%,rgba(58,20,88,.4),transparent 72%),var(--fondo)}
.lema__txt p{max-width:13.5em;margin-inline:auto;font-family:var(--serif);font-style:italic;font-size:clamp(2.4rem,6.3vw,5.6rem);line-height:1.02;letter-spacing:-.026em;text-wrap:balance}
.js-lema .lema__txt .w{color:rgba(255,241,220,.34);transition:color .4s ease}
.js-lema .lema__txt .w.is-on{color:var(--spot)}
.lema__firma{margin-top:30px;font-size:.76rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}

/* =====================================================================
   SHOWROOM: se encienden las luces de sala
   ===================================================================== */
.showroom{--bg:var(--salon);--fg:var(--spot);--fg2:var(--spot-2);--ln:var(--line);--ic:var(--gold);
  padding:var(--sec) 0;background-color:var(--bg);color:var(--fg);transition:background-color 1s ease,color 1s ease}
.showroom.is-lit{--bg:var(--sala);--fg:var(--ink);--fg2:var(--ink-2);--ln:rgba(27,16,36,.17);--ic:var(--gold-lo)}
.showroom.is-lit :focus-visible{outline-color:var(--ink)}
.showroom:not(.is-lit) .ticket--ink{--tk-bg:var(--gold);--tk-fg:#1c1208}
.showroom__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,90px);align-items:start}
.showroom .lead{color:var(--fg2);transition:color 1s ease}
.datos{margin-top:clamp(24px,3.4vw,36px);border-bottom:1px solid var(--ln);transition:border-color 1s ease}
.datos div{display:grid;grid-template-columns:8rem 1fr;gap:16px;padding:15px 0 16px;border-top:1px solid var(--ln);transition:border-color 1s ease}
.datos dt{padding-top:.36em;font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--fg2);transition:color 1s ease}
.datos dd{font-size:1.07rem;text-wrap:pretty}
.showroom__acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 30px;margin-top:clamp(24px,3.4vw,36px)}
.showroom .lnk svg{color:var(--ic);transition:color 1s ease,transform .2s var(--ease-out)}
.showroom__fotos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.showroom__fotos img{width:100%;object-fit:cover;border-radius:var(--r);background:var(--sala-2);transition:filter 1.1s ease}
.showroom__a{grid-column:1/-1;aspect-ratio:16/9}
.showroom__b,.showroom__c{aspect-ratio:1}
.showroom__b{object-position:50% 70%}
.showroom__c{object-position:50% 28%}
.showroom:not(.is-lit) .showroom__fotos img{filter:brightness(.36) saturate(.75)}

/* =====================================================================
   CITA: el boleto
   ===================================================================== */
.cita{position:relative;padding:var(--sec) 0 calc(var(--sec) + 16px);overflow:clip;background:var(--fondo)}
.cita__luz{position:absolute;inset:-10% -10% -10% 22%;pointer-events:none;background:radial-gradient(52% 54% at 50% 50%,rgba(255,236,204,.16),rgba(255,236,204,.05) 55%,transparent 76%)}
.cita__grid{position:relative;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,90px);align-items:start}
.contacto{margin-top:clamp(22px,3vw,34px);border-bottom:1px solid var(--line)}
.contacto a{display:flex;align-items:center;gap:14px;min-height:50px;border-top:1px solid var(--line);color:var(--spot-2);overflow-wrap:anywhere;transition:color .15s ease}
.contacto svg{flex:none;color:var(--gold)}
@media (hover:hover) and (pointer:fine){.contacto a:hover{color:var(--spot)}}

.boleto{--talon:clamp(150px,23%,210px);position:relative;isolation:isolate;display:grid;grid-template-columns:var(--talon) 1fr;color:var(--ink);filter:drop-shadow(0 40px 50px rgba(0,0,0,.6))}
.boleto::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:14px;
  background:linear-gradient(90deg,var(--ink) 0,var(--ink) var(--talon),var(--sala) var(--talon));
  -webkit-mask:radial-gradient(circle 13px at var(--talon) 0,#0000 97%,#000) top/100% 51% no-repeat,radial-gradient(circle 13px at var(--talon) 100%,#0000 97%,#000) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle 13px at var(--talon) 0,#0000 97%,#000) top/100% 51% no-repeat,radial-gradient(circle 13px at var(--talon) 100%,#0000 97%,#000) bottom/100% 51% no-repeat}
.boleto__talon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:28px 18px;text-align:center;color:var(--spot-2)}
.boleto__talon img{width:86%;margin-bottom:12px}
.boleto__talon p{font-size:.64rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.boleto__cuerpo{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;padding:clamp(22px,3vw,38px);border-left:2px dashed rgba(27,16,36,.3);margin:16px 0}
.campo{display:grid;gap:6px;min-width:0;align-content:start}
.campo--full{grid-column:1/-1}
.campo label{font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.campo__op{margin-left:6px;font-weight:400;letter-spacing:.03em;text-transform:none}
.campo input,.campo select{width:100%;height:50px;padding:0 12px;border:0;border-bottom:1.5px solid rgba(27,16,36,.42);border-radius:6px 6px 0 0;background-color:rgba(27,16,36,.05);color:var(--ink);font-size:1.06rem;caret-color:var(--wash);color-scheme:light;
  transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}
.campo select{-webkit-appearance:none;appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b1024' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:20px;cursor:pointer}
.campo input:hover,.campo select:hover{border-color:var(--ink)}
.campo input:focus-visible,.campo select:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-color:var(--wash);background-color:rgba(58,20,88,.08);box-shadow:0 2px 0 var(--wash)}
.campo input[aria-invalid="true"]{border-color:#a3122a;box-shadow:0 2px 0 #a3122a}
.campo__error{font-size:.9rem;color:#a3122a}
.boleto__fin{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:6px}
.boleto__estado{flex:1 1 220px;font-size:.93rem;color:var(--ink-2)}

/* =====================================================================
   PIE
   ===================================================================== */
.pie{padding:clamp(48px,7vw,84px) 0 26px;background:var(--fondo);border-top:1px solid var(--line);color:var(--spot-2)}
.pie__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:36px 48px;align-items:start}
.pie__logo img{width:min(250px,72%)}
.pie__t{margin-bottom:12px;font-family:var(--sans);font-style:normal;font-size:.72rem;font-weight:500;line-height:1.4;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.pie__col p{line-height:1.75;overflow-wrap:anywhere}
.pie a{background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .3s var(--ease-out),color .15s ease}
.pie__logo{background:none!important}
@media (hover:hover) and (pointer:fine){.pie a:hover{color:var(--spot);background-size:100% 1px}}
.pie__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 30px;margin-top:clamp(40px,6vw,72px);padding-top:22px;border-top:1px solid var(--line);font-size:.88rem;color:var(--spot-3)}
.pie__legal nav{display:flex;flex-wrap:wrap;gap:6px 24px}
.pie__legal a{display:inline-flex;align-items:center;min-height:32px}

/* barra fija del telefono */
.barra{display:none}

/* visor de fotos */
.visor{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;place-items:center;overflow:hidden}
.visor[open]{display:grid}
.visor::backdrop{background:rgba(5,2,9,.93)}
.visor__img{max-width:min(92vw,1500px);max-height:88dvh;width:auto;height:auto;border-radius:var(--r);box-shadow:0 30px 90px rgba(0,0,0,.7)}
.visor[open] .visor__img{animation:visor-in .3s var(--ease-out)}
@keyframes visor-in{from{opacity:0;transform:scale(.965)}}
.visor__btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:50%;background:rgba(18,10,29,.78);color:var(--spot);cursor:pointer;transition:background-color .15s ease,transform .16s var(--ease-out)}
.visor__btn:active{transform:scale(.94)}
@media (hover:hover) and (pointer:fine){.visor__btn:hover{background:var(--salon-3)}}
.visor__cerrar{top:18px;right:18px}
.visor__prev{left:18px;top:calc(50% - 24px)}
.visor__next{right:18px;top:calc(50% - 24px)}

/* =====================================================================
   PANTALLAS MEDIANAS Y TELEFONO
   ===================================================================== */
@media (max-width:1100px){
  .top__nav{gap:22px}
}

@media (max-width:900px){
  :root{--top:64px}
  .top__nav,.top__cta{display:none}
  .top__menu{display:block}
  .top__logo img{height:38px}

  .coleccion{min-height:0}
  .coleccion__grid{display:flex;flex-direction:column;gap:0}
  .coleccion__col{display:contents}
  .coleccion__col h2{order:1}
  .coleccion__col .lead{order:2}
  .laminas{order:3;justify-self:stretch;width:100%;height:auto;max-height:66svh;margin-top:26px}
  .gels{order:4;display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin:16px 0 0}
  .gel{width:auto;padding:8px 0}
  .gel__n{display:none}
  .gel__dot{width:38px;height:38px}
  .fichas{order:5;margin-top:14px}
  .coleccion__wash{right:-40%;top:42%;width:150vw}

  .medida__grid,.showroom__grid,.cita__grid{grid-template-columns:1fr}
  .medida__foto{order:2;aspect-ratio:4/5;max-height:none}
  .lineas__grid{grid-template-columns:1fr}

  .js-pin .bordados__grid{grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:0;align-content:start;height:100%;padding:18px 0 22px}
  .js-pin .bordados__grid h2{grid-row:1;margin-bottom:16px;font-size:clamp(1.9rem,7.4vw,2.6rem)}
  .js-pin .bordado{grid-column:1;grid-row:2;justify-self:stretch;width:100%;height:min(54svh,520px)}
  .js-pin .capitulo .capitulo__txt{grid-column:1;grid-row:3!important;margin-top:16px;padding:14px 0 0;opacity:0;transition:opacity .35s ease}
  .js-pin .capitulo.is-on .capitulo__txt{opacity:1}
  .js-pin .capitulo h3,.js-pin .capitulo p{transition:none}
  .js-pin .bordados__pin{align-items:stretch}
  .capitulos{grid-template-columns:1fr}

  .pie__grid{grid-template-columns:1fr 1fr}
  .pie__logo{grid-column:1/-1}
}

@media (max-width:760px){
  .hero{--home-x:50%;--home-y:55%;--pool:clamp(130px,36vw,190px);display:flex;flex-direction:column}
  .hero__stage{position:relative;inset:auto;z-index:0;flex:none;height:56svh}
  .hero__photo{object-position:51% 86%}
  .hero__veil{background:linear-gradient(180deg,rgba(7,4,12,.45),rgba(7,4,12,0) 24%,rgba(7,4,12,0) 62%,var(--fondo) 99%)}
  .hero__copy{position:relative;align-self:auto;margin-top:-44px;padding:0 0 26px}
  .hero__h{max-width:none;font-size:clamp(2.4rem,11vw,3.3rem);line-height:.95}
  .hero__lead{margin-top:14px}
  .hero__acts{margin-top:20px;gap:2px 24px}
  .hero__acts .ticket{width:100%}
  .hero__acts .ticket__body{flex:1;justify-content:center;padding:0 12px}
  .programa{display:none}

  .muro__filas{display:block;columns:2;column-gap:10px}
  .muro__fila{display:contents}
  .foto{flex:none;margin-bottom:10px;break-inside:avoid}

  .datos div{grid-template-columns:1fr;gap:2px}
  .datos dt{padding-top:0}
  .showroom__acts .ticket,.boleto__fin .ticket{width:100%}
  .showroom__acts .ticket__body,.boleto__fin .ticket__body{flex:1;justify-content:center;padding:0 12px}

  .boleto{--talon:92px;grid-template-columns:1fr}
  .boleto::before{background:linear-gradient(180deg,var(--ink) 0,var(--ink) var(--talon),var(--sala) var(--talon));
    -webkit-mask:radial-gradient(circle 11px at 0 var(--talon),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--talon),#0000 97%,#000) right/51% 100% no-repeat;
            mask:radial-gradient(circle 11px at 0 var(--talon),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% var(--talon),#0000 97%,#000) right/51% 100% no-repeat}
  .boleto__talon{flex-direction:row;justify-content:space-between;height:var(--talon);padding:0 22px;text-align:right;gap:16px}
  .boleto__talon img{width:128px;margin:0}
  .boleto__talon p:last-child{display:none}
  .boleto__cuerpo{grid-template-columns:1fr;margin:0 14px;padding:24px 6px 24px;border-left:0;border-top:2px dashed rgba(27,16,36,.3)}

  .pie{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .pie__grid{grid-template-columns:1fr}
  .barra{display:block;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(8,4,13,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);transform:translateY(115%);transition:transform .3s var(--ease-out)}
  .barra.is-on{transform:none}
  .barra .ticket{width:100%;--tk-h:54px;--tk-stub:54px;filter:none}
  .barra .ticket__body{flex:1;justify-content:center;padding:0 12px}
  .visor__prev{left:8px}
  .visor__next{right:8px}
}

@media (max-width:380px){
  .ticket{font-size:.95rem}
  .hero__h{font-size:2.3rem}
}

/* sin :has (navegadores viejos): todo a la vista */
@supports not selector(:has(*)){
  .ficha{position:static;opacity:1;visibility:visible;transform:none;margin-top:20px}
  .fichas{display:block}
}


/* =====================================================================
   VERSION 2 — mas espectaculo: telon, polvo de luz, cinta, escenario,
   revelados y hilo. Va al final para mandar sobre lo anterior.
   ===================================================================== */
body{font-size:clamp(1.0625rem,.99rem + .28vw,1.19rem)}
h2{font-size:clamp(2.4rem,5.2vw,4.9rem);line-height:1}
.top__logo img{height:46px}
.hero__h em{font-style:inherit}
.h-done .hero__h .w{overflow:visible}

/* oro del logotipo, solo en el titular */
.hero__h .w>i{padding:.06em .24em .18em .03em;margin:-.06em -.24em -.18em -.03em}
.hero__h .oro>i{background:linear-gradient(100deg,#f8e6b4 0%,#d9b062 30%,#a57c33 50%,#f3d999 72%,#c99a48 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.hero__beam i{background:linear-gradient(180deg,rgba(255,236,204,.44),rgba(255,236,204,.16) 55%,rgba(255,236,204,0))}


/* ---------- telon ---------- */
.telon,.halo{display:none}
.telon-on .telon{display:block;position:fixed;inset:0;z-index:300;overflow:hidden}
.telon__l,.telon__r{position:absolute;top:-3%;width:51%;height:106%;will-change:transform;
  background:repeating-linear-gradient(90deg,rgba(0,0,0,.52) 0,rgba(0,0,0,.1) 2.4%,rgba(255,255,255,.075) 4.3%,rgba(0,0,0,.14) 6.1%,rgba(0,0,0,.52) 9%),linear-gradient(180deg,#52165a 0,#2e0e40 46%,#150920 100%);
  box-shadow:inset 0 -90px 90px rgba(0,0,0,.55),inset 0 46px 60px rgba(0,0,0,.36);
  transition:transform 1.6s cubic-bezier(.72,0,.18,1)}
.telon__l{left:0;transform-origin:0 50%}
.telon__r{right:0;transform-origin:100% 50%}
.telon__l::after,.telon__r::after{content:"";position:absolute;top:0;bottom:0;width:5px;background:linear-gradient(90deg,#8a6727,#f0d596 45%,#8a6727)}
.telon__l::after{right:0}
.telon__r::after{left:0}
.telon__logo{position:absolute;left:50%;top:50%;width:min(58vw,380px);height:auto;translate:-50% -50%;filter:drop-shadow(0 12px 30px rgba(0,0,0,.65));animation:telon-logo .9s var(--ease-out) both;transition:opacity .45s ease,transform .9s var(--ease-out)}
@keyframes telon-logo{from{opacity:0;transform:scale(.94)}}
.telon-abre .telon__l{transform:translateX(-102%) scaleX(.7)}
.telon-abre .telon__r{transform:translateX(102%) scaleX(.7)}
.telon-abre .telon__logo{opacity:0;transform:scale(1.07)}

/* ---------- la luz sigue al cursor por toda la pagina ---------- */
.halo-on .halo{display:block;position:fixed;left:0;top:0;z-index:45;width:700px;height:700px;margin:-350px 0 0 -350px;border-radius:50%;pointer-events:none;mix-blend-mode:screen;will-change:transform;
  background:radial-gradient(closest-side,rgba(255,232,196,.1),rgba(255,232,196,.035) 55%,rgba(255,232,196,0))}

/* ---------- cinta ---------- */
.cinta{overflow:hidden;padding:clamp(15px,2vw,24px) 0;background:var(--fondo);border-block:1px solid var(--line)}
.cinta__pista{display:flex;justify-content:center}
.cinta p{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;row-gap:4px}
.cinta span{padding:0 .5em;font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.3vw,2.1rem);line-height:1.15;letter-spacing:-.02em;white-space:nowrap;color:var(--gold)}
.cinta .cinta__h{color:var(--spot);-webkit-text-stroke:0}
.cinta svg{flex:none;width:clamp(20px,2vw,30px);aspect-ratio:64/42;height:auto;color:var(--gold)}
@keyframes cinta{to{transform:translateX(-50%)}}

/* ---------- escenario de la coleccion ---------- */
.coleccion__col{position:relative;z-index:2}
.escena{position:relative;z-index:1;justify-self:end;display:grid;place-items:center;width:100%;perspective:1500px}
.marco{position:relative;z-index:1;height:min(72svh,780px);aspect-ratio:4/5;max-width:100%;will-change:transform}
.marco::before{content:"";position:absolute;inset:-16px;pointer-events:none;opacity:.9;--g:var(--gold);background-repeat:no-repeat;
  background-image:linear-gradient(var(--g),var(--g)),linear-gradient(var(--g),var(--g)),linear-gradient(var(--g),var(--g)),linear-gradient(var(--g),var(--g)),linear-gradient(var(--g),var(--g)),linear-gradient(var(--g),var(--g)),linear-gradient(var(--g),var(--g)),linear-gradient(var(--g),var(--g));
  background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;
  background-size:38px 1px,1px 38px,38px 1px,1px 38px,38px 1px,1px 38px,38px 1px,1px 38px}
.laminas{position:absolute;inset:0;height:auto;aspect-ratio:auto;max-width:none;justify-self:auto}
.fantasmas{position:absolute;left:50%;top:1.5%;z-index:0;translate:-50% -14%;display:grid;white-space:nowrap;pointer-events:none}
.fantasmas span{grid-area:1/1;justify-self:center;font-family:var(--serif);font-style:italic;font-size:clamp(6rem,15vw,14rem);line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px color-mix(in oklab,var(--gel) 42%,var(--spot));opacity:0;transform:translateX(5%);transition:opacity .45s ease,transform 1.2s var(--ease-out)}
.escena__cono{position:absolute;left:50%;top:-24%;z-index:0;width:150%;height:130%;translate:-50% 0;pointer-events:none;opacity:.22;filter:blur(22px);
  background:linear-gradient(180deg,color-mix(in oklab,var(--gel) 36%,#ffecc8) 0,rgba(255,236,200,0) 88%);clip-path:polygon(47% 0,53% 0,100% 100%,0 100%)}
.escena__piso{position:absolute;left:50%;bottom:-7%;z-index:0;width:120%;height:15%;translate:-50% 0;pointer-events:none;opacity:.85;filter:blur(14px);
  background:radial-gradient(closest-side,color-mix(in oklab,var(--gel) 62%,transparent),transparent)}
.escena__nav{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:48px;height:48px;margin-top:-24px;padding:0;border:1px solid rgba(255,241,220,.34);border-radius:50%;background:rgba(11,6,18,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--spot);cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:transform .16s var(--ease-out),background-color .18s ease,color .18s ease,border-color .18s ease}
.escena__nav--prev{left:-24px}
.escena__nav--next{right:-24px}
.escena__nav:active{transform:scale(.92)}
@media (hover:hover) and (pointer:fine){.escena__nav:hover{background:var(--gold);border-color:var(--gold);color:#1c1208}}
.gels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;max-width:560px;margin-left:-17px}
.gel{width:auto}
.gel__dot{width:46px;height:46px}
.gel__n{font-size:.62rem;letter-spacing:.08em}
.coleccion:has(#gel-rubi:checked) .fantasmas [data-gel="rubi"],
.coleccion:has(#gel-esmeralda:checked) .fantasmas [data-gel="esmeralda"],
.coleccion:has(#gel-amatista:checked) .fantasmas [data-gel="amatista"],
.coleccion:has(#gel-zafiro:checked) .fantasmas [data-gel="zafiro"],
.coleccion:has(#gel-onix:checked) .fantasmas [data-gel="onix"],
.coleccion:has(#gel-cuarzo:checked) .fantasmas [data-gel="cuarzo"],
.coleccion:has(#gel-perla:checked) .fantasmas [data-gel="perla"],
.fantasmas span.is-on{opacity:.8;transform:none}

/* ---------- revelados: titulos con barrido de luz, fotos que se abren como telon ---------- */
@property --barrido{syntax:"<percentage>";inherits:false;initial-value:-30%}
.js-rev [data-luz]{padding:.08em .14em .16em 0;margin:-.08em -.14em -.16em 0;
  -webkit-mask-image:linear-gradient(100deg,#000 var(--barrido),rgba(0,0,0,.16) calc(var(--barrido) + 26%));mask-image:linear-gradient(100deg,#000 var(--barrido),rgba(0,0,0,.16) calc(var(--barrido) + 26%));
  transition:--barrido 1.6s var(--ease-out)}
.js-rev [data-luz].is-in{--barrido:132%}
.js-rev [data-abre]{background-color:transparent}
.js-rev [data-abre] img{clip-path:inset(0 50% 0 50%);transform:scale(1.16);transition:clip-path 1.15s var(--ease-io) var(--d,0s),transform 1.7s var(--ease-out) var(--d,0s),filter 1.1s ease}
.js-rev [data-abre].is-in img{clip-path:inset(0 -2px);transform:none}
.js-rev .foto.is-fin img{transition:filter .5s ease,transform .7s var(--ease-out)}
.js-rev [data-sube]{opacity:0;transform:translateY(40px) scale(.985);transition:opacity .8s ease,transform 1.2s var(--ease-out)}
.js-rev [data-sube].is-in{opacity:1;transform:none}

/* muro: a plena luz, con filo dorado al pasar */
@media (hover:hover) and (pointer:fine){
  .foto img{filter:none}
  .foto:hover img,.foto:focus-visible img{transform:scale(1.045)}
}
.foto::after{content:"";position:absolute;inset:8px;border:1px solid rgba(240,213,150,0);border-radius:3px;pointer-events:none;transition:border-color .3s ease,inset .45s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.foto:hover::after,.foto:focus-visible::after{inset:13px;border-color:rgba(240,213,150,.85)}}
.muro__pista{display:none}

/* bordados: mas grande y con avance */
.bordados__avance{display:none}
.js-pin .bordados__grid{grid-template-rows:repeat(5,auto)}
.js-pin .bordado{height:min(82svh,880px)}
.js-pin .bordados__avance{display:block;grid-column:1;grid-row:5;height:1px;margin-top:8px;background:var(--line)}
.bordados__avance i{display:block;height:1px;background:var(--gold);transform-origin:0 50%;transform:scaleX(0)}

/* a tu medida: el hilo que cose los pasos */
.pasos{position:relative;border-bottom:0}
.pasos::before{content:"";position:absolute;left:calc(1.6rem - 1px);top:40px;bottom:40px;border-left:2px dashed var(--gold);clip-path:inset(0 0 calc(100% - var(--hilo,100%)) 0)}
.pasos li{grid-template-columns:3.2rem 1fr;column-gap:22px;align-items:start;padding:20px 0 22px}
.pasos li::before{position:relative;z-index:1;display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:50%;background:var(--gold);color:#1c1208;font-size:1.55rem;line-height:1;padding-bottom:.08em;box-shadow:0 0 0 7px var(--salon-2);transition:background-color .45s ease,color .45s ease}
.js-hilo .pasos li:not(.is-on)::before{background:var(--salon-2);color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold-lo),0 0 0 7px var(--salon-2)}
.pasos h3{font-size:1.4rem;padding-top:.15em}
.medida__foto{max-height:86svh}

/* lema con corona */
.lema__corona{display:block;width:clamp(54px,6vw,86px);margin:0 auto clamp(20px,3vw,34px);color:var(--gold);overflow:visible}

/* pie con la marca en grande */
.pie{position:relative;overflow:clip;padding-top:clamp(56px,8vw,100px)}
.pie::before{content:"";position:absolute;left:50%;top:-10%;width:min(900px,120vw);aspect-ratio:1.6;translate:-50% 0;pointer-events:none;background:radial-gradient(closest-side,rgba(255,232,196,.1),transparent)}
.pie__marca{position:relative;text-align:center;padding-bottom:clamp(40px,6vw,70px);margin-bottom:clamp(36px,5vw,60px);border-bottom:1px solid var(--line)}
.pie__marca img{width:min(460px,78vw);margin-inline:auto}
.pie__marca .pie__logo{display:inline-block}
.pie__marca p{margin-top:14px;font-size:.74rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--spot-3)}
.pie__grid{position:relative;grid-template-columns:repeat(3,minmax(0,1fr))}

@media (max-width:1100px){.gels{margin-left:-10px}.gel__dot{width:40px;height:40px}.gel__n{font-size:.56rem;letter-spacing:.04em}}

@media (max-width:900px){
  .top__logo img{height:40px}
  .escena{order:3;margin-top:34px}
  .marco{height:auto;width:min(100%,calc(66svh*.8));max-height:66svh}
  .laminas{order:0;margin-top:0;max-height:none}
  .fantasmas{top:3%;translate:-50% -30%}
  .fantasmas span{font-size:clamp(5.4rem,30vw,11rem)}
  .escena__nav--prev{left:8px}
  .escena__nav--next{right:8px}
  .gels{margin:30px 0 0;max-width:none}
  .gel__dot{width:40px;height:40px}
  .js-pin .bordados__grid{grid-template-rows:auto auto auto auto}
  .js-pin .bordado{height:min(52svh,500px)}
  .js-pin .bordados__avance{grid-row:4;margin-top:14px}
  .pie__grid{grid-template-columns:1fr 1fr}
}

@media (max-width:760px){
  .hero{padding-top:var(--top)}
  .hero__stage{height:56svh}
  .hero__copy{margin-top:-50px}
  .hero__h{font-size:clamp(2.55rem,11.6vw,3.5rem)}
  .muro__head{margin-bottom:22px}
  .muro__pista{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
  .muro__filas{display:flex;columns:auto;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--pad)*-1);padding:0 var(--pad) 6px;scroll-padding-inline:var(--pad);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .muro__filas::-webkit-scrollbar{display:none}
  .foto{flex:none;height:60svh;max-width:84vw;margin:0;scroll-snap-align:center}
  .js-rev .muro [data-abre] img{clip-path:none;transform:none}
  .pasos li{column-gap:16px}
  .pie__grid{grid-template-columns:1fr}
  .pie__marca p{letter-spacing:.2em}
  .pie__col p{line-height:1.5}
  .pie__col a,.pie__legal a{display:inline-flex;align-items:center;min-height:44px}
  .cita__luz{inset:0}
  .muro__pista{color:var(--gold-hi);background:var(--fondo);padding:4px 0}
}

/* modo calma (el sistema pide menos movimiento): todo a la vista, sin desplazamientos */
.calma{scroll-behavior:auto}
.calma .hero__photo,.calma .hero__dark i,.calma .hero__h .w>i,.calma .hero__lead,.calma .hero__acts,.calma .programa{transform:none!important;transition:opacity .3s ease!important}
.calma .cinta__pista{animation:none}
.calma .lamina{filter:none;transform:none;transition:opacity .3s ease}
.calma .ficha,.calma .fantasmas span,.calma .foto img,.calma .ticket,.calma .visor__img,.calma .menu__nav a{transform:none!important;animation:none!important}

@media print{
  .top,.barra,.hero__dark,.hero__beam,.hero__veil,.menu{display:none!important}
  body{background:#fff;color:#000}
}
