/* ==========================================================
   Diseño "Regencia" · XV años · bailes de temporada
   gaceta doblada → desdoble 3D en dos pliegues → portada · carnet de baile
   ========================================================== */

/* Fuentes propias de este diseño (archivos locales, licencia OFL) */
@font-face { font-family: "Old Standard TT"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/old-standard-400-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Old Standard TT"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/old-standard-400-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Old Standard TT"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(../fonts/old-standard-700-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Old Standard TT"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(../fonts/old-standard-700-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Old Standard TT"; font-style: italic; font-weight: 400; font-display: swap;
  src: url(../fonts/old-standard-italic-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Old Standard TT"; font-style: italic; font-weight: 400; font-display: swap;
  src: url(../fonts/old-standard-italic-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "UnifrakturMaguntia"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/unifraktur-latin.woff2) format("woff2"); }
@font-face { font-family: "Pinyon Script"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/pinyon-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Pinyon Script"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/pinyon-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --azul: #b9cfe0;
  --azul-osc: #6f8fae;
  --crema: #f6f1e7;
  --rubor: #ecc9c4;
  --oro: #c9a45c;
  --oro-osc: #8f6e32;
  --glicina: #b7a3d6;
  --glicina-osc: #6d5a8e;
  --tinta: #3b3542;
  --tinta-papel: #2b2420;
  --papel: #f4eee1;
  --damasco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.38' stroke-width='1.1'%3E%3Cpath d='M45 12c8 10 8 20 0 30-8-10-8-20 0-30zM45 78c8-10 8-20 0-30-8 10-8 20 0 30zM12 45c10-8 20-8 30 0-10 8-20 8-30 0zM78 45c-10-8-20-8-30 0 10 8 20 8 30 0z'/%3E%3Ccircle cx='45' cy='45' r='3.5'/%3E%3Cpath d='M0 6c4 0 6-2 6-6M84 0c0 4 2 6 6 6M90 84c-4 0-6 2-6 6M6 90c0-4-2-6-6-6'/%3E%3C/g%3E%3C/svg%3E");
  --floron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 16'%3E%3Cg fill='none' stroke='%23c9a45c' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M2 8h40M78 8h40'/%3E%3Cpath d='M60 8c-6-7-14-7-16 0 2 7 10 7 16 0zM60 8c6-7 14-7 16 0-2 7-10 7-16 0z'/%3E%3C/g%3E%3Ccircle cx='60' cy='8' r='2' fill='%23c9a45c'/%3E%3C/svg%3E");

  --s-fondo: transparent;
  --s-tinta: var(--tinta);
  --s-suave: #776c7c;
  --s-acento: var(--oro-osc);
  --s-acento-tinta: #fff;
  --s-tarjeta: rgba(255, 255, 255, .62);
  --s-borde: rgba(201, 164, 92, .5);
  --s-radio: 4px;
  --s-sombra: 0 18px 30px -22px rgba(60, 50, 40, .5);
  --s-fuente: "Old Standard TT", Georgia, serif;
  --s-titulo: "Pinyon Script", cursive;
  --s-titulo-tam: clamp(2.6rem, 11vw, 3.2rem);
  --s-etiqueta: "Cinzel", Georgia, serif;
  --s-num: "Old Standard TT", Georgia, serif;
  --s-titulo-color: var(--glicina-osc);
}

body {
  background: var(--fibras), linear-gradient(180deg, #f7f2e9, #f2ebdf 60%, #efe6da);
  color: var(--tinta);
  font-family: var(--s-fuente);
}

/* ---------- Salón: mesa con mantel de damasco ---------- */
.salon {
  --w: min(90vw, 430px);
  --hp: calc(var(--w) * .7);                  /* alto de cada pliego (la gaceta mide 3 pliegos) */
  position: relative;
  min-height: max(100vh, calc(var(--hp) * 3 + 150px + env(safe-area-inset-top)));
  min-height: max(100svh, calc(var(--hp) * 3 + 150px + env(safe-area-inset-top)));
  overflow: hidden;
  background:
    radial-gradient(120% 70% at 50% 50%, transparent 45%, rgba(70, 95, 125, .38) 100%),
    var(--damasco) 0 0 / 90px 90px,
    linear-gradient(180deg, #c8d9e8, var(--azul) 50%, #a8c1d7);
}

/* Glicinas colgando (detrás de la gaceta) */
.glicinas { position: absolute; top: 0; z-index: 1; width: min(54vw, 300px); pointer-events: none; }
.glicinas svg { display: block; width: 100%; height: auto; overflow: visible; }
.glicinas--izq { left: -3%; }
.glicinas--der { right: -3%; transform: scaleX(-1); }
.rama { fill: none; stroke: #8a6b55; stroke-width: 3; stroke-linecap: round; }
.hoja--0 { fill: #9db58f; }
.hoja--1 { fill: #b6caa6; }
.pedunculo { fill: none; stroke: #8f7a67; stroke-width: .8; }
.gl--0 { fill: #e1d7f2; }
.gl--1 { fill: #cbbbe6; }
.gl--2 { fill: var(--glicina); }
.gl--3 { fill: #9580c2; }
.racimo { transform-box: fill-box; transform-origin: 50% 0; animation: mecer 5s ease-in-out infinite alternate; }
.racimo--1 { animation-duration: 6.4s; animation-delay: -1.2s; }
.racimo--2 { animation-duration: 5.6s; animation-delay: -2.6s; }
.racimo--3 { animation-duration: 7s; animation-delay: -.6s; }
.racimo--4 { animation-duration: 5.2s; animation-delay: -3.4s; }
.racimo--5 { animation-duration: 6.8s; animation-delay: -2s; }
@keyframes mecer { from { transform: rotate(-3deg); } to { transform: rotate(3.5deg); } }

.mesa__perlas { position: absolute; left: -12px; bottom: 5%; z-index: 1; width: min(46vw, 220px); rotate: -8deg; filter: drop-shadow(0 4px 3px rgba(40, 50, 80, .3)); }
.mesa__pluma { position: absolute; right: -14px; bottom: 3%; z-index: 1; width: min(40vw, 200px); filter: drop-shadow(0 6px 4px rgba(40, 50, 80, .3)); }
.pluma__vano { fill: #fbf8f2; stroke: #c9bfb0; stroke-width: .8; }
.pluma__barbas path { fill: none; stroke: #ddd3c4; stroke-width: .7; }
.pluma__raquis { fill: none; stroke: #a8977f; stroke-width: 1.4; stroke-linecap: round; }

.salon__pre, .salon__hint {
  position: absolute;
  left: 16px;
  right: 16px;
  z-index: 4;
  margin: 0;
  text-align: center;
  transition: opacity .8s ease, transform .8s ease;
}
.salon__pre { top: calc(50vh - var(--hp) / 2 - 84px); top: calc(50svh - var(--hp) / 2 - 84px); font-family: "Pinyon Script", cursive; font-size: clamp(1.9rem, 8.4vw, 2.5rem); line-height: 1.2; color: var(--glicina-osc); text-shadow: 0 1px 0 rgba(255, 255, 255, .7); }
.salon__hint { top: calc(50vh + var(--hp) / 2 + 30px); top: calc(50svh + var(--hp) / 2 + 30px); font-family: "Cinzel", serif; font-size: .64rem; letter-spacing: .22em; text-transform: uppercase; color: #3f5670; }
.salon__mano { display: inline-block; font-size: 1.1rem; animation: senalar 1.8s ease-in-out infinite; }
@keyframes senalar { 50% { transform: translateX(5px); } }
.salon.abierta .salon__pre { opacity: 0; transform: translateY(-14px); }
.salon.abierta .salon__hint { opacity: 0; }
.salon .desliza-c { z-index: 4; color: #3f5670; }

/* ---------- Gaceta 3D ---------- */
/* Doblada: el pliego central queda centrado en la primera pantalla (los otros dos están plegados
   encima, así que no importa que su hueco quede fuera). Al desdoblar, la gaceta baja hasta el borde. */
.mesa {
  position: relative;
  z-index: 2;
  width: var(--w);
  height: calc(var(--hp) * 3);
  margin: 0 auto;
  margin-top: calc(50vh - var(--hp) * 1.5);
  margin-top: calc(50svh - var(--hp) * 1.5);
  perspective: 1800px;
  transition: margin-top 1.4s cubic-bezier(.3, .6, .2, 1);
}
.salon.abierta .mesa { margin-top: calc(env(safe-area-inset-top) + 44px); }
.mesa::before {                             /* sombra sobre el mantel: crece al desdoblar */
  content: "";
  position: absolute;
  left: 3%;
  right: 3%;
  top: var(--hp);
  height: var(--hp);
  box-shadow: 0 34px 40px -16px rgba(40, 52, 82, .55);
  rotate: -4deg;
  transition: top 1.6s ease, height 1.6s ease, rotate 1.2s ease;
}
.salon.abierta .mesa::before { top: 0; height: 100%; rotate: 0deg; }

.gaceta {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transform: rotate(-4deg);
  transition: transform 1.4s cubic-bezier(.3, .6, .2, 1);
  color: var(--tinta-papel);
  font-family: "Old Standard TT", Georgia, serif;
  font-size: calc(var(--w) * .034);
}
.salon:not(.abierta) .gaceta { animation: respirar 3.2s ease-in-out infinite; }
.salon.abierta .gaceta { transform: rotate(0deg); }
@keyframes respirar { 50% { translate: 0 -6px; } }

.pliego {
  position: absolute;
  left: 0;
  right: 0;
  height: var(--hp);
  transform-style: preserve-3d;
  transition: transform 1.05s cubic-bezier(.45, .05, .25, 1);
}
.pliego--sup { top: 0; transform-origin: 50% 100%; transform: translateZ(2px) rotateX(-180deg); }
.pliego--medio { top: var(--hp); }
.pliego--inf { top: calc(var(--hp) * 2); transform-origin: 50% 0; transform: translateZ(1px) rotateX(180deg); }
.salon.abierta .pliego--sup { transform: translateZ(0) rotateX(0deg); }
.salon.abierta .pliego--inf { transform: translateZ(0) rotateX(0deg); transition-delay: .8s; }

.cara {
  position: absolute;
  inset: 0;
  overflow: hidden;
  padding: calc(var(--w) * .05) calc(var(--w) * .055);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  background-color: var(--papel);
  background-image: var(--grano), var(--fibras), linear-gradient(180deg, #f7f2e7, #efe7d6);
}
.cara--dorso { transform: rotateX(180deg); }
/* marcas de los dobleces (se aprecian al desdoblar) */
.pliego--sup .cara--frente { box-shadow: inset 0 -1px 0 rgba(90, 70, 40, .18); background-image: var(--grano), var(--fibras), linear-gradient(180deg, #f7f2e7 85%, #e9dfcb); }
.pliego--medio .cara--frente { background-image: var(--grano), var(--fibras), linear-gradient(180deg, #e9dfcb, #f6f0e4 8%, #f6f0e4 92%, #e9dfcb); }
.pliego--inf .cara--frente { box-shadow: inset 0 1px 0 rgba(90, 70, 40, .18); background-image: var(--grano), var(--fibras), linear-gradient(180deg, #e9dfcb, #f4eee1 15%); }

/* Pliego superior (frente) */
.gaceta__franja { display: flex; justify-content: space-between; gap: .6em; padding-bottom: .3em; border-bottom: 1px solid var(--tinta-papel); font-style: italic; font-size: .72em; line-height: 1.2; }
.gaceta__cabecera { margin: .25em 0 0; text-align: center; line-height: 1; }
.gaceta__cab1 { display: block; font-family: "UnifrakturMaguntia", "Old Standard TT", serif; font-size: 3.4em; line-height: 1.02; }
.gaceta__cab2 { display: block; margin-top: .05em; font-style: italic; font-size: 1.2em; letter-spacing: .08em; }
.gaceta__edicion { margin: .45em 0 .55em; padding: .28em 0; border-top: 3px double var(--tinta-papel); border-bottom: 1px solid var(--tinta-papel); text-align: center; font-weight: 700; font-size: .78em; letter-spacing: .32em; text-transform: uppercase; }
.gaceta__titular { margin: 0; text-align: center; font-weight: 700; font-size: 2em; line-height: 1.06; letter-spacing: -.005em; }
.salon.impresa .gaceta__titular { animation: entintar 1.4s ease both; }
@keyframes entintar { from { opacity: .2; filter: blur(2px); } to { opacity: 1; filter: none; } }

/* Pliego superior (dorso): sobrescrito con sello de lacre */
.cara--dorso:not(:empty) { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.sobre__cab { margin: 0; font-family: "UnifrakturMaguntia", serif; font-size: 1.35em; opacity: .75; }
.sello {
  width: 3.6em;
  height: 3.6em;
  margin: .5em 0 .4em;
  display: grid;
  place-items: center;
  border-radius: 46% 54% 50% 50% / 52% 46% 54% 48%;
  background: radial-gradient(circle at 35% 30%, #cbb9ea, #8f78bd 60%, #6d5a8e);
  box-shadow: 0 3px 5px rgba(60, 40, 80, .4), inset 0 -3px 5px rgba(40, 20, 60, .35), inset 0 2px 3px rgba(255, 255, 255, .35);
}
.sello span {
  width: 74%;
  height: 74%;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .35);
  font-family: "Pinyon Script", cursive;
  font-size: 1.7em;
  line-height: 1;
  color: #f1eafc;
  text-shadow: 0 -1px 0 rgba(40, 20, 60, .5);
}
.sobre__para { margin: 0; font-style: italic; font-size: .82em; letter-spacing: .06em; }
.sobre__nombre { margin: .1em 0 0; max-width: 90%; font-family: "Pinyon Script", cursive; font-size: 2em; line-height: 1.2; color: var(--glicina-osc); }
.sobre__nota { margin: .5em 0 0; font-size: .66em; letter-spacing: .3em; text-transform: uppercase; opacity: .7; }
.dorso__lineas { position: absolute; inset: 18% 12%; background: repeating-linear-gradient(180deg, rgba(43, 36, 32, .07) 0 1px, transparent 1px 1.1em); transform: scaleX(-1); }

/* Pliego central */
.gaceta__entradilla { margin: 0 0 .55em; padding-bottom: .5em; border-bottom: 1px solid var(--tinta-papel); text-align: center; font-style: italic; font-size: 1em; line-height: 1.3; }
.gaceta__cuerpo { display: grid; grid-template-columns: 34% 1fr; gap: .9em; align-items: start; }
.grabado { margin: 0; }
.grabado__marco {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 50%;
  border: 2px solid var(--tinta-papel);
  box-shadow: 0 0 0 2px var(--papel), 0 0 0 3px rgba(43, 36, 32, .6);
}
.grabado__marco img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; filter: grayscale(1) sepia(.75) contrast(1.2) brightness(1.04); }
.grabado__marco::after {                    /* trama de grabado + grano */
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(-28deg, rgba(60, 40, 20, .2) 0 1px, transparent 1px 3px), var(--grano);
  mix-blend-mode: multiply;
  box-shadow: inset 0 0 18px rgba(60, 40, 20, .5);
  border-radius: 50%;
}
.grabado figcaption { margin-top: .45em; text-align: center; font-style: italic; font-size: .6em; line-height: 1.25; }
.gaceta__seccion { margin: 0 0 .35em; font-family: "Old Standard TT", serif; font-weight: 700; font-size: .74em; letter-spacing: .16em; text-transform: uppercase; }
.gaceta__texto { margin: 0; font-size: .98em; line-height: 1.32; text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
.gaceta__texto--capitular::first-letter { float: left; margin: .06em .1em 0 0; font-family: "UnifrakturMaguntia", serif; font-size: 2.6em; line-height: .82; }

/* Pliego inferior */
.gaceta__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; }
.gaceta__cols .gaceta__col + .gaceta__col { position: relative; }
.gaceta__cols .gaceta__col + .gaceta__col::before { content: ""; position: absolute; left: -.5em; top: 0; bottom: 0; border-left: 1px solid rgba(43, 36, 32, .5); }
.gaceta__cols .gaceta__texto { font-size: .96em; }
.gaceta__pie { display: flex; align-items: baseline; justify-content: space-between; gap: .6em; margin-top: .7em; padding-top: .45em; border-top: 1px solid var(--tinta-papel); }
.gaceta__siga { margin: 0; font-style: italic; font-size: .66em; }
.gaceta__firma { margin: 0; font-style: italic; font-size: 1.04em; white-space: nowrap; }

/* Botón invisible sobre la gaceta doblada */
.gaceta__abrir {
  position: absolute;
  left: -4%;
  right: -4%;
  top: calc(var(--hp) - 12px);
  height: calc(var(--hp) + 24px);
  z-index: 5;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.gaceta__abrir:focus-visible { outline: 2px solid var(--oro-osc); outline-offset: 4px; }

/* ---------- Secciones ---------- */
.s-titulo::after { content: ""; display: block; width: 120px; height: 16px; margin: 6px auto 0; background: var(--floron) center / contain no-repeat; }
.s-cuenta__caja, .s-evento { box-shadow: var(--s-sombra), inset 0 0 0 5px rgba(246, 241, 231, .9), inset 0 0 0 6px rgba(201, 164, 92, .55); }
.s-cuenta__num { color: var(--glicina-osc); }
.s-evento__icono { color: var(--oro-osc); border-color: var(--oro); background: #fffdf8; }
.s-evento__hora { font-family: "Pinyon Script", cursive; font-size: 2.3rem; color: var(--glicina-osc); }
.s-evento__titulo { font-family: "Cinzel", serif; }
.s-foto { border-radius: 2px; border: 6px solid #fffdf8; box-shadow: 0 0 0 1px rgba(201, 164, 92, .6), var(--s-sombra); }
.s-foto img { filter: sepia(.18) saturate(.9); }
.s-vestimenta__tipo { font-family: "Pinyon Script", cursive; font-size: 2.2rem; color: var(--glicina-osc); }
.s-rsvp__saludo { font-family: "Pinyon Script", cursive; font-size: 2.1rem; color: var(--glicina-osc); }
.s-btn--lleno { background: linear-gradient(120deg, #8f6e32, #c9a45c 50%, #8f6e32); }
.s-pie__n { font-family: "Pinyon Script", cursive; font-size: 3rem; color: var(--glicina-osc); }
.btn-musica { background: var(--crema); color: var(--oro-osc); border: 1px solid var(--oro); }

/* Carta */
.carta { padding-top: 90px; }
.carta__papel {
  position: relative;
  width: min(100%, 360px);
  padding: 54px 28px 34px;
  background: var(--grano), linear-gradient(180deg, #fffdf8, #f8f2e6);
  box-shadow: 0 24px 40px -26px rgba(60, 50, 40, .55), inset 0 0 0 8px #fffdf8, inset 0 0 0 9px rgba(201, 164, 92, .55);
  rotate: -1.2deg;
}
.carta__sello {
  position: absolute;
  left: 50%;
  top: -28px;
  width: 58px;
  height: 58px;
  margin-left: -29px;
  display: grid;
  place-items: center;
  border-radius: 46% 54% 50% 50% / 52% 46% 54% 48%;
  background: radial-gradient(circle at 35% 30%, #f3d6d1, #d59a93 60%, #b4736c);
  box-shadow: 0 4px 6px rgba(90, 50, 50, .35), inset 0 -3px 5px rgba(90, 40, 40, .3);
  font-family: "Pinyon Script", cursive;
  font-size: 1.8rem;
  color: #fff6f3;
}
.carta__xv { margin: 0; font-family: "Cinzel", serif; font-size: .66rem; letter-spacing: .4em; text-transform: uppercase; color: var(--oro-osc); }
.carta__t { margin: 16px 0 0; font-family: "Pinyon Script", cursive; font-size: 1.9rem; color: var(--glicina-osc); text-align: left; }
.carta__texto { margin: 8px 0 0; font-style: italic; font-size: 1.12rem; line-height: 1.65; text-align: left; }
.carta__firma { margin: 14px 0 0; font-family: "Pinyon Script", cursive; font-size: 2.4rem; line-height: 1; color: var(--glicina-osc); text-align: right; }
.carta__familia { margin-top: 18px; padding-top: 12px; border-top: 1px solid rgba(201, 164, 92, .5); }
.carta__ft { margin: 12px 0 0; font-family: "Cinzel", serif; font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: var(--s-suave); }
.carta__fn { margin: 2px 0 0; font-family: "Pinyon Script", cursive; font-size: 1.6rem; color: var(--tinta); }

/* Carnet de baile */
.carnet__tarjeta {
  position: relative;
  width: min(100%, 340px);
  padding: 46px 26px 28px;
  background: var(--grano), linear-gradient(170deg, #fffdf8, #f6eee2);
  border-radius: 10px;
  box-shadow: 0 26px 40px -26px rgba(60, 50, 40, .6), inset 0 0 0 6px #fffdf8, inset 0 0 0 7px var(--oro), inset 0 0 0 10px #fffdf8, inset 0 0 0 11px rgba(183, 163, 214, .7);
}
.carnet__cordon { position: absolute; left: 50%; top: -34px; width: 2px; height: 50px; margin-left: -1px; background: var(--glicina); }
.carnet__cordon::after {                    /* borla */
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 16px;
  height: 22px;
  margin-left: -8px;
  border-radius: 50% 50% 30% 30%;
  background: repeating-linear-gradient(90deg, var(--glicina) 0 2px, #9580c2 2px 3px);
}
.carnet__mono { margin: 0; font-family: "Pinyon Script", cursive; font-size: 2.4rem; line-height: 1; color: var(--oro-osc); }
.carnet__sub { margin: 6px 0 16px; font-style: italic; font-size: 1.05rem; color: var(--s-suave); }
.carnet__piezas { list-style: none; margin: 0; padding: 0; text-align: left; }
.carnet__pieza { display: grid; grid-template-columns: 2em auto 1fr auto; align-items: baseline; gap: 8px; padding: 9px 0; }
.carnet__num { font-family: "Cinzel", serif; font-size: .74rem; color: var(--oro-osc); }
.carnet__nombre { font-family: "Pinyon Script", cursive; font-size: 1.55rem; line-height: 1; color: var(--glicina-osc); }
.carnet__puntos { border-bottom: 1.5px dotted rgba(59, 53, 66, .45); transform: translateY(-4px); }
.carnet__hora { font-size: .95rem; font-variant-numeric: lining-nums; }
.carnet__firma-t { margin: 18px 0 0; font-family: "Cinzel", serif; font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; color: var(--s-suave); }
.carnet__firma { position: relative; margin-top: 4px; }
.carnet__lienzo { display: block; width: 100%; height: 110px; cursor: crosshair; touch-action: none; border-radius: 6px; background: rgba(185, 207, 224, .14); }
.carnet__lienzo.pide { animation: pedir .5s ease; }
@keyframes pedir { 30% { transform: translateX(-4px); box-shadow: 0 0 0 2px var(--oro); } 60% { transform: translateX(4px); box-shadow: 0 0 0 2px var(--oro); } }
.carnet__linea { position: absolute; left: 10px; right: 10px; bottom: 24px; border-bottom: 1px solid rgba(59, 53, 66, .55); pointer-events: none; }
.carnet__linea::before { content: "×"; position: absolute; left: 0; bottom: 2px; font-size: 1rem; color: rgba(59, 53, 66, .6); }
.carnet__acciones { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.carnet__btn {
  min-height: 44px;
  padding: 0 14px;
  border: 0;
  background: transparent;
  font-family: "Old Standard TT", serif;
  font-style: italic;
  font-size: .98rem;
  color: var(--glicina-osc);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(201, 164, 92, .8);
  cursor: pointer;
}
.carnet__btn:focus-visible { outline: 2px solid var(--oro-osc); outline-offset: 2px; }
.carnet__reservar { margin-top: 10px; transition: opacity .4s ease, filter .4s ease, transform .2s ease; }
.carnet__reservar[aria-disabled="true"] { opacity: .45; filter: grayscale(.6); box-shadow: none; cursor: not-allowed; }
.carnet__reservar.activo { animation: latido 1.6s ease-in-out 2; }
@keyframes latido { 50% { transform: scale(1.05); } }
.carnet__estado { min-height: 1.4em; margin: 10px 0 0; font-family: "Pinyon Script", cursive; font-size: 1.4rem; color: var(--oro-osc); }
.carnet__nota { margin: 4px 0 0; font-style: italic; font-size: .82rem; color: var(--s-suave); }

/* Estampa ovalada */
.estampa { width: min(56vw, 220px); margin: 20px auto 0; }
.estampa img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 50%;
  border: 6px solid #fffdf8;
  box-shadow: 0 0 0 1px var(--oro), 0 0 0 9px #fffdf8, 0 0 0 10px rgba(183, 163, 214, .8), var(--s-sombra);
  filter: sepia(.2) saturate(.9);
}

@media (prefers-reduced-motion: reduce) {
  .racimo, .salon__mano, .salon:not(.abierta) .gaceta { animation: none !important; }
  .pliego, .gaceta, .mesa, .mesa::before { transition-duration: .3s !important; transition-delay: 0s !important; }
}
