/* Estilos copiados de la invitación original de Lovable (Tailwind compilado, solo lo que se usa) */

/* ===== Colores de la invitación (edítalos aquí) ===== */
:root {
  --background: oklch(13% .02 30);
  --foreground: oklch(93% .04 85);
  --muted-foreground: oklch(70% .05 70);
  --gold: oklch(80% .14 85);
  --amber: oklch(75% .16 65);
  --champagne: oklch(92% .05 85);
  --burgundy: oklch(32% .12 15);
  --burgundy-bright: oklch(50% .17 15);
  --silhouette: oklch(7% .01 30);
  --radius: .625rem;
  --border: oklch(92.9% .013 255.508);
  --accent: oklch(96.8% .007 247.896);
  --accent-foreground: oklch(20.8% .042 265.755);
  --panel-date: linear-gradient(140deg, var(--burgundy), var(--background) 72%);
  --panel-venue: linear-gradient(160deg, var(--gold), var(--burgundy));
  --panel-shadow: 0 18px 45px var(--silhouette);
  --shadow-glow: 0 0 30px var(--gold);
}
@supports (color:color-mix(in lab, red, red)) {
  :root {
    --panel-date: linear-gradient(140deg, color-mix(in oklab, var(--burgundy) 80%, var(--background)), var(--background) 72%);
    --panel-venue: linear-gradient(160deg, color-mix(in oklab, var(--gold) 10%, var(--background)), color-mix(in oklab, var(--burgundy) 40%, var(--background)));
    --panel-shadow: 0 18px 45px color-mix(in oklab, var(--silhouette) 65%, transparent);
    --shadow-glow: 0 0 30px color-mix(in oklab, var(--gold) 60%, transparent);
  }
}

/* ===== Variables base de Tailwind ===== */
:root {
  --spacing: .25rem;
  --container-md: 28rem;
  --container-xl: 36rem;
  --text-xs: .75rem; --text-xs--line-height: calc(1 / .75);
  --text-sm: .875rem; --text-sm--line-height: calc(1.25 / .875);
  --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125);
  --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25);
  --text-3xl: 1.875rem; --text-3xl--line-height: calc(2.25 / 1.875);
  --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25);
  --text-8xl: 6rem; --text-8xl--line-height: 1;
  --text-9xl: 8rem; --text-9xl--line-height: 1;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --leading-snug: 1.375;
  --leading-relaxed: 1.625;
  --default-transition-duration: .15s;
  --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
}
*, ::before, ::after {
  --tw-border-style: solid;
  --tw-shadow: 0 0 #0000;
  --tw-inset-shadow: 0 0 #0000;
  --tw-inset-ring-shadow: 0 0 #0000;
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
}

/* ===== Base ===== */
*, ::after, ::before { box-sizing: border-box; border: 0 solid; margin: 0; padding: 0; }
/* Tamaño general: 112.5% agranda todo (letras y espacios) para leer más fácil.
   Vuelve a 100% para el tamaño original. */
html { font-size: 112.5%; }
html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; line-height: 1.5; font-family: "Jost", sans-serif; -webkit-tap-highlight-color: transparent; }
h1, h2, h3 { font-size: inherit; font-weight: inherit; }
a { color: inherit; text-decoration: inherit; }
svg, audio, iframe { vertical-align: middle; display: block; }
button { font: inherit; letter-spacing: inherit; color: inherit; background-color: transparent; border-radius: 0; appearance: button; }
* { border-color: var(--border); }
body { background-color: var(--background); color: var(--foreground); font-family: "Jost", sans-serif; }

/* ===== Utilidades ===== */
.pointer-events-none { pointer-events: none; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.relative { position: relative; }
.inset-0 { inset: 0; }
.right-5 { right: calc(var(--spacing) * 5); }
.bottom-5 { bottom: calc(var(--spacing) * 5); }
.z-0 { z-index: 0; }
.z-10 { z-index: 10; }
.z-30 { z-index: 30; }
.z-40 { z-index: 40; }
.mx-auto { margin-inline: auto; }
.mt-2 { margin-top: calc(var(--spacing) * 2); }
.mt-3 { margin-top: calc(var(--spacing) * 3); }
.mt-4 { margin-top: calc(var(--spacing) * 4); }
.mt-5 { margin-top: calc(var(--spacing) * 5); }
.mt-6 { margin-top: calc(var(--spacing) * 6); }
.mt-8 { margin-top: calc(var(--spacing) * 8); }
.mt-10 { margin-top: calc(var(--spacing) * 10); }
.mt-12 { margin-top: calc(var(--spacing) * 12); }
.mt-16 { margin-top: calc(var(--spacing) * 16); }
.btn-outline { border: 1px solid var(--gold); color: var(--gold); border-radius: 9999px; justify-content: center; align-items: center; gap: .5rem; padding: .85rem 1rem; font-size: .9rem; display: flex; }
.btn-outline:active { background: var(--gold); }
@supports (color:color-mix(in lab, red, red)) { .btn-outline:active { background: color-mix(in oklab, var(--gold) 20%, transparent); } }
.btn-gold { background: linear-gradient(90deg, var(--amber), var(--gold), var(--amber)); color: var(--background); box-shadow: var(--shadow-glow); border-radius: 9999px; justify-content: center; align-items: center; gap: .6rem; padding: 1.1rem 1.25rem; font-weight: 600; display: flex; }
.block { display: block; }
.flex { display: flex; }
.grid { display: grid; }
.inline-flex { display: inline-flex; }
.h-4 { height: calc(var(--spacing) * 4); }
.h-5 { height: calc(var(--spacing) * 5); }
.h-6 { height: calc(var(--spacing) * 6); }
.h-14 { height: calc(var(--spacing) * 14); }
.h-40 { height: calc(var(--spacing) * 40); }
.h-52 { height: calc(var(--spacing) * 52); }
.h-56 { height: calc(var(--spacing) * 56); }
.h-60 { height: calc(var(--spacing) * 60); }
.h-auto { height: auto; }
.h-px { height: 1px; }
.min-h-screen { min-height: 100vh; }
.w-4 { width: calc(var(--spacing) * 4); }
.w-5 { width: calc(var(--spacing) * 5); }
.w-6 { width: calc(var(--spacing) * 6); }
.w-10 { width: calc(var(--spacing) * 10); }
.w-12 { width: calc(var(--spacing) * 12); }
.w-14 { width: calc(var(--spacing) * 14); }
.w-auto { width: auto; }
.w-full { width: 100%; }
.max-w-md { max-width: var(--container-md); }
.max-w-xl { max-width: var(--container-xl); }
.min-w-0 { min-width: 0; }
.cursor-pointer { cursor: pointer; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.gap-2 { gap: calc(var(--spacing) * 2); }
.gap-3 { gap: calc(var(--spacing) * 3); }
.gap-5 { gap: calc(var(--spacing) * 5); }
.overflow-hidden { overflow: hidden; }
.rounded-full { border-radius: 9999px; }
.rounded-lg { border-radius: var(--radius); }
.rounded-md { border-radius: calc(var(--radius) - 2px); }
.border { border-style: var(--tw-border-style); border-width: 1px; }
.border-0 { border-style: var(--tw-border-style); border-width: 0; }
.border-y { border-block-style: var(--tw-border-style); border-block-width: 1px; }
.border-burgundy-bright\/60 { border-color: var(--burgundy-bright); }
.border-gold\/25 { border-color: var(--gold); }
.border-gold\/40 { border-color: var(--gold); }
.bg-background { background-color: var(--background); }
.bg-burgundy\/40 { background-color: var(--burgundy); }
.bg-gold, .bg-gold\/50 { background-color: var(--gold); }
@supports (color:color-mix(in lab, red, red)) {
  .border-burgundy-bright\/60 { border-color: color-mix(in oklab, var(--burgundy-bright) 60%, transparent); }
  .border-gold\/25 { border-color: color-mix(in oklab, var(--gold) 25%, transparent); }
  .border-gold\/40 { border-color: color-mix(in oklab, var(--gold) 40%, transparent); }
  .bg-burgundy\/40 { background-color: color-mix(in oklab, var(--burgundy) 40%, transparent); }
  .bg-gold\/50 { background-color: color-mix(in oklab, var(--gold) 50%, transparent); }
}
.bg-floor-glow { background: radial-gradient(ellipse at bottom, var(--burgundy) 0%, transparent 60%); }
.text-gold-gradient { background: linear-gradient(180deg, var(--champagne), var(--gold) 50%, var(--amber)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 18px var(--gold)); }
@supports (color:color-mix(in lab, red, red)) { .text-gold-gradient { filter: drop-shadow(0 0 18px color-mix(in oklab, var(--gold) 40%, transparent)); } }
.fill-silhouette { fill: var(--silhouette); }
.px-4 { padding-inline: calc(var(--spacing) * 4); }
.px-5 { padding-inline: calc(var(--spacing) * 5); }
.px-6 { padding-inline: calc(var(--spacing) * 6); }
.px-7 { padding-inline: calc(var(--spacing) * 7); }
.py-2 { padding-block: calc(var(--spacing) * 2); }
.py-3 { padding-block: calc(var(--spacing) * 3); }
.py-6 { padding-block: calc(var(--spacing) * 6); }
.py-9 { padding-block: calc(var(--spacing) * 9); }
.pt-12 { padding-top: calc(var(--spacing) * 12); }
.pb-28 { padding-bottom: calc(var(--spacing) * 28); }
.text-center { text-align: center; }
.font-display { font-family: "Cormorant Garamond", serif; }
.font-info { font-family: "Playfair Display", serif; }
.font-numeral { font-family: "Bodoni Moda", serif; }
.font-sans { font-family: Jost, sans-serif; }
.font-script { font-family: "Pinyon Script", cursive; }
.text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading, var(--text-3xl--line-height)); }
.text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading, var(--text-4xl--line-height)); }
.text-8xl { font-size: var(--text-8xl); line-height: var(--tw-leading, var(--text-8xl--line-height)); }
.text-lg { font-size: var(--text-lg); line-height: var(--tw-leading, var(--text-lg--line-height)); }
.text-sm { font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); }
.text-xl { font-size: var(--text-xl); line-height: var(--tw-leading, var(--text-xl--line-height)); }
.text-xs { font-size: var(--text-xs); line-height: var(--tw-leading, var(--text-xs--line-height)); }
.text-\[7rem\] { font-size: 7rem; }
.leading-\[1\.15\] { --tw-leading: 1.15; line-height: 1.15; }
.leading-none { --tw-leading: 1; line-height: 1; }
.leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }
.leading-snug { --tw-leading: var(--leading-snug); line-height: var(--leading-snug); }
.font-medium { font-weight: var(--font-weight-medium); }
.font-semibold { font-weight: var(--font-weight-semibold); }
.tracking-\[0\.1em\] { letter-spacing: .1em; }
.tracking-\[0\.2em\] { letter-spacing: .2em; }
.tracking-\[0\.25em\] { letter-spacing: .25em; }
.whitespace-normal { white-space: normal; }
.whitespace-nowrap { white-space: nowrap; }
.text-amber { color: var(--amber); }
.text-background { color: var(--background); }
.text-champagne { color: var(--champagne); }
.text-foreground { color: var(--foreground); }
.text-gold { color: var(--gold); }
.text-muted-foreground { color: var(--muted-foreground); }
.uppercase { text-transform: uppercase; }
.italic { font-style: italic; }
.opacity-40 { opacity: .4; }
.opacity-70 { opacity: .7; }
.shadow-glow { --tw-shadow: 0 0 30px var(--gold); }
@supports (color:color-mix(in lab, red, red)) { .shadow-glow { --tw-shadow: 0 0 30px color-mix(in oklab, var(--gold) 60%, transparent); } }
.shadow-glow { box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); }
.transition-colors { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke; transition-timing-function: var(--default-transition-timing-function); transition-duration: var(--default-transition-duration); }
@media (hover: hover) {
  .hover\:bg-accent:hover { background-color: var(--accent); }
  .hover\:bg-amber:hover { background-color: var(--amber); }
  .hover\:text-accent-foreground:hover { color: var(--accent-foreground); }
  .hover\:text-background:hover { color: var(--background); }
}
.focus-visible\:outline-none:focus-visible { outline: 2px solid transparent; outline-offset: 2px; }
@media (width >= 40rem) {
  .sm\:h-52 { height: calc(var(--spacing) * 52); }
  .sm\:h-72 { height: calc(var(--spacing) * 72); }
  .sm\:w-16 { width: calc(var(--spacing) * 16); }
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:px-6 { padding-inline: calc(var(--spacing) * 6); }
  .sm\:text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading, var(--text-4xl--line-height)); }
  .sm\:text-9xl { font-size: var(--text-9xl); line-height: var(--tw-leading, var(--text-9xl--line-height)); }
  .sm\:text-\[9\.5rem\] { font-size: 9.5rem; }
}
.\[\&_svg\]\:pointer-events-none svg { pointer-events: none; }
.\[\&_svg\]\:size-4 svg { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); }
.\[\&_svg\]\:shrink-0 svg { flex-shrink: 0; }

/* ===== Componentes de la invitación ===== */
.invitation-panel { isolation: isolate; border: 1px solid var(--gold); position: relative; box-shadow: var(--panel-shadow); border-radius: 8px; }
.invitation-panel::before { content: ""; border: 1px solid var(--gold); position: absolute; inset: 7px; pointer-events: none; z-index: -1; border-radius: 3px; }
.invitation-panel::after { content: "◆"; background: var(--background); width: 32px; color: var(--gold); font-size: 16px; position: absolute; top: -12px; left: calc(50% - 16px); }
@supports (color:color-mix(in lab, red, red)) {
  .invitation-panel { border: 1px solid color-mix(in oklab, var(--gold) 55%, transparent); }
  .invitation-panel::before { border: 1px solid color-mix(in oklab, var(--gold) 18%, transparent); }
}
.date-panel { background: var(--panel-date); }
.venue-panel { background: var(--panel-venue); }

.icon-medallion { border: 1px solid var(--gold); background: var(--gold); box-shadow: 0 0 0 5px var(--gold); }
@supports (color:color-mix(in lab, red, red)) {
  .icon-medallion { border: 1px solid color-mix(in oklab, var(--gold) 65%, transparent); background: color-mix(in oklab, var(--gold) 8%, transparent); box-shadow: 0 0 0 5px color-mix(in oklab, var(--gold) 5%, transparent); }
}

.secrecy-note { border-top: 1px solid var(--gold); border-bottom: 1px solid var(--gold); background: var(--burgundy); }
@supports (color:color-mix(in lab, red, red)) {
  .secrecy-note { border-top-color: color-mix(in oklab, var(--gold) 35%, transparent); border-bottom-color: color-mix(in oklab, var(--gold) 35%, transparent); background: color-mix(in oklab, var(--burgundy) 25%, transparent); }
}

/* Siluetas bailando */
@keyframes sway {
  0%, 100% { transform: rotate(-4deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-4px); }
}
@keyframes spin-dance {
  0%, 100% { transform: rotate(5deg) translate(0); }
  25% { transform: rotate(-6deg) translate(-3px); }
  50% { transform: scaleX(-1); }
  75% { transform: rotate(6deg); }
}
.dance-sway { transform-origin: 40px 196px; animation: .9s ease-in-out infinite sway; }
.dance-spin { transform-origin: 82px 196px; animation: 1.8s ease-in-out infinite spin-dance; }
/* Escenario: las parejas quedan paradas sobre una pista iluminada */
.dance-stage > svg { position: relative; z-index: 2; }
/* Las parejas se ajustan al ancho de la pantalla (no se salen en celulares chicos) */
.dance-stage svg.pareja { height: auto; width: 29%; max-width: 125px; }
.dance-stage svg.pareja:not(.opacity-70) { width: 35%; max-width: 173px; }
/* Pista: un óvalo de luz en perspectiva bajo los pies, que se funde con el fondo */
.dance-floor {
  position: absolute; z-index: 1; pointer-events: none;
  inset-inline: -8%; height: 90px; bottom: -45px;
  border-radius: 50%;
  background: radial-gradient(ellipse 50% 50% at 50% 50%, var(--gold) 0%, var(--burgundy-bright) 40%, transparent 75%);
  filter: blur(8px); opacity: .9;
}
@supports (color:color-mix(in lab, red, red)) {
  .dance-floor { background: radial-gradient(ellipse 50% 50% at 50% 50%, color-mix(in oklab, var(--gold) 45%, transparent) 0%, color-mix(in oklab, var(--amber) 22%, transparent) 30%, color-mix(in oklab, var(--burgundy-bright) 18%, transparent) 55%, transparent 78%); }
}
/* Línea de piso donde apoyan los pies */
.floor-line {
  position: absolute; z-index: 1; pointer-events: none;
  inset-inline: 6%; bottom: 2px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity: .55;
}
/* Reflejo sobre la pista brillante */
.dance-reflection { z-index: 1; opacity: .3; filter: blur(2px); pointer-events: none; inset-inline: 0; height: 100%; position: absolute; top: calc(100% - 4px); transform: scaleY(-1); -webkit-mask-image: linear-gradient(#0000 72%, #000c); mask-image: linear-gradient(#0000 72%, #000c); }

/* Focos de escenario */
@keyframes spot {
  0%, 100% { opacity: .5; transform: rotate(-25deg); }
  50% { opacity: .9; transform: rotate(25deg); }
}
.spot { transform-origin: top; filter: blur(30px); width: 40vw; height: 120vh; animation: 6s ease-in-out infinite spot; position: absolute; top: -10%; }
.spot-1 { background: linear-gradient(180deg, var(--gold), transparent 70%); left: 0; }
.spot-2 { background: linear-gradient(180deg, var(--burgundy-bright), transparent 70%); left: 30%; animation-delay: -2s; }
.spot-3 { background: linear-gradient(180deg, var(--amber), transparent 70%); right: 0; animation-delay: -4s; }
@supports (color:color-mix(in lab, red, red)) {
  .spot-1 { background: linear-gradient(180deg, color-mix(in oklab, var(--gold) 45%, transparent), transparent 70%); }
  .spot-2 { background: linear-gradient(180deg, color-mix(in oklab, var(--burgundy-bright) 55%, transparent), transparent 70%); }
  .spot-3 { background: linear-gradient(180deg, color-mix(in oklab, var(--amber) 45%, transparent), transparent 70%); }
}

/* Confeti y destellos */
@keyframes fall {
  0% { transform: translateY(-10vh) rotate(0); }
  100% { transform: translateY(110vh) rotate(720deg); }
}
.confetti { opacity: .9; border-radius: 2px; animation: linear infinite fall; position: absolute; top: 0; }
@keyframes twinkle {
  0%, 100% { opacity: 0; transform: scale(.4); }
  50% { opacity: 1; transform: scale(1); }
}
.sparkle-dot { background: var(--champagne); box-shadow: 0 0 8px 2px var(--gold); border-radius: 9999px; position: absolute; animation: 3.5s ease-in-out infinite twinkle; }
@supports (color:color-mix(in lab, red, red)) {
  .sparkle-dot { box-shadow: 0 0 8px 2px color-mix(in oklab, var(--gold) 70%, transparent); }
}

/* Nombre con brillo */
@keyframes shimmer-sweep {
  0%, 55% { background-position: 200% 0; }
  100% { background-position: -100% 0; }
}
.name-shimmer { background: linear-gradient(110deg, var(--champagne) 0%, var(--gold) 35%, var(--amber) 45%, oklch(98% .06 90) 50%, var(--amber) 55%, var(--gold) 65%, var(--champagne) 100%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 18px var(--gold)); animation: 6s ease-in-out infinite shimmer-sweep; }
@supports (color:color-mix(in lab, red, red)) {
  .name-shimmer { filter: drop-shadow(0 0 18px color-mix(in oklab, var(--gold) 40%, transparent)); }
}

/* Marco dorado */
.invitation-frame { pointer-events: none; z-index: 35; border: 1px solid var(--gold); position: fixed; inset: 10px; border-radius: 4px; }
.invitation-frame::before { content: ""; border: 1px solid var(--gold); position: absolute; inset: 5px; border-radius: 2px; }
@supports (color:color-mix(in lab, red, red)) {
  .invitation-frame { border: 1px solid color-mix(in oklab, var(--gold) 35%, transparent); }
  .invitation-frame::before { border: 1px solid color-mix(in oklab, var(--gold) 15%, transparent); }
}
.frame-corner { width: 26px; height: 26px; color: var(--gold); opacity: .85; position: absolute; }
.frame-corner svg { width: 100%; height: 100%; }
.frame-corner.tl { top: -4px; left: -4px; }
.frame-corner.tr { top: -4px; right: -4px; transform: scaleX(-1); }
.frame-corner.bl { bottom: -4px; left: -4px; transform: scaleY(-1); }
.frame-corner.br { bottom: -4px; right: -4px; transform: scale(-1); }

/* Con música: todo se mueve más rápido */
body.music-playing .spot { animation-duration: 1.6s; }
body.music-playing .confetti { animation-duration: 3s !important; }

/* Aparición al hacer scroll */
.reveal { opacity: 0; transition: opacity .9s, transform .9s; transform: translateY(26px); }
.reveal.is-visible { opacity: 1; transform: none; }

/* Botón de WhatsApp latiendo */
@keyframes heartbeat {
  0%, 100% { box-shadow: var(--shadow-glow); transform: scale(1); }
  12% { transform: scale(1.035); }
  24% { transform: scale(1); }
  36% { transform: scale(1.03); }
  48% { transform: scale(1); }
}
.btn-heartbeat { animation: 2.4s ease-in-out infinite heartbeat; }

/* Texto de bienvenida: alineado a la izquierda, líneas largas y números parejos */
.intro-text {
  width: 100%; text-align: left;
  font-family: "Cormorant Garamond", serif; font-size: 1.3rem; line-height: 1.6;
  font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1;
  padding-left: 1.1rem; border-left: 1px solid var(--gold);
}
@supports (color:color-mix(in lab, red, red)) {
  .intro-text { border-left-color: color-mix(in oklab, var(--gold) 55%, transparent); }
}
.intro-text p { text-wrap: pretty; }
.intro-text p + p { margin-top: .75em; }
.intro-text .intro-cta { font-style: normal; font-family: "Pinyon Script", cursive; font-size: 2rem; line-height: 1.2; color: var(--gold); margin-top: .4em; }

/* Separador con rombo */
.ornament-divider { color: var(--gold); justify-content: center; align-items: center; gap: 10px; display: flex; }
.ornament-divider::before, .ornament-divider::after { content: ""; background: linear-gradient(90deg, transparent, var(--gold)); width: 64px; height: 1px; }
.ornament-divider::after { background: linear-gradient(90deg, var(--gold), transparent); }
@supports (color:color-mix(in lab, red, red)) {
  .ornament-divider::before { background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--gold) 60%, transparent)); }
  .ornament-divider::after { background: linear-gradient(90deg, color-mix(in oklab, var(--gold) 60%, transparent), transparent); }
}

/* Celulares chicos: un poco menos de relleno para que todo quepa con la letra más grande */
@media (max-width: 380px) {
  .btn-outline { padding-inline: .5rem; gap: .35rem; font-size: .85rem; }
  .venue-panel { padding-inline: calc(var(--spacing) * 3.5); }
  .w-12 { width: calc(var(--spacing) * 7); }
  .gap-5 { gap: calc(var(--spacing) * 3); }
}

@media (prefers-reduced-motion: reduce) {
  .dance-sway, .dance-spin, .spot, .confetti, .name-shimmer, .sparkle-dot, .btn-heartbeat, .reveal { animation: none; }
  .reveal { opacity: 1; transform: none; }
}
