/* ============================================================
   Tema «blackcard» — evento corporativo / gala (demo corporativo-gala · intro ticket).
   Concepto: «Black Card». Una tarjeta de metal negro cepillado con chip y letras en relieve,
   guilloché de billete en oro casi invisible, filetes art déco y burbujas de champán.
   Paleta: carbón #111827 · plata #9CA3AF · oro #D4A017 (claro #E8C468) · blanco.
   Tipos: Instrument Serif (títulos y nombre, cursiva para la emoción) · Manrope (interfaz y texto).
   Tema OSCURO. Contraste medido: #F3F4F6 sobre #111827 16:1 · texto secundario #A7AFBD 8:1 (7,2:1 sobre
   tarjeta #1A2232) · oro #D4A017 sobre #111827 7,5:1 (6,7:1 sobre tarjeta) · botones oro con texto
   carbón 7,5:1 · plata #9CA3AF sobre tarjeta 6,3:1.
   Todo va acotado bajo html[data-theme="blackcard"].
   ============================================================ */
:root {
  --bg: #111827;
  --bg-alt: #0C111C;
  --surface: #1A2232;
  --ink: #F3F4F6;
  --ink-soft: #A7AFBD;
  --accent: #D4A017;
  --accent-2: #9CA3AF;
  --accent-ink: #111827;
  --line: rgba(229, 231, 235, .12);
  --font-display: 'Instrument Serif', 'Times New Roman', Georgia, serif;
  --font-script: 'Instrument Serif', 'Times New Roman', Georgia, serif;
  --font-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --radius: 16px;
  --shadow: 0 22px 44px -26px rgba(0, 0, 0, .9), inset 0 1px 0 rgba(255, 255, 255, .05);
  --hero-overlay: linear-gradient(180deg, rgba(10, 13, 22, .62) 0%, rgba(10, 13, 22, .25) 28%, rgba(10, 13, 22, .55) 52%, rgba(10, 13, 22, .97) 84%);
  --hero-ink: #F9FAFB;
  --intro-bg: #0A0E17;
  --intro-ink: #F3F4F6;
  --seal: #D4A017;
  /* piezas propias del tema */
  --bc-gold: #D4A017;
  --bc-gold-hi: #F3D98B;
  --bc-gold-lo: #9A7410;
  --bc-silver: #9CA3AF;
  --bc-silver-hi: #E5E7EB;
  --bc-coal: #111827;
  --bc-foil: linear-gradient(100deg, #9A7410 0%, #E8C468 22%, #FFF1C4 34%, #D4A017 48%, #9A7410 66%, #E8C468 84%, #B8860B 100%);
  --bc-chrome: linear-gradient(180deg, #FFFFFF 0%, #D1D5DB 45%, #8B93A1 55%, #E5E7EB 100%);
  --bc-brushed: repeating-linear-gradient(90deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 3px);
  --bc-metal: var(--bc-brushed), linear-gradient(150deg, #222A3A 0%, #141A26 46%, #1C2331 100%);
  --pattern: var(--bc-guilloche);
  /* guilloché de billete y ornamento art déco (SVG propios) */
  --bc-guilloche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23D4A017' stroke-opacity='.07' stroke-width='.6'%3E%3Ccircle cx='80.0' cy='60.0' r='36'/%3E%3Ccircle cx='77.3' cy='70.0' r='36'/%3E%3Ccircle cx='70.0' cy='77.3' r='36'/%3E%3Ccircle cx='60.0' cy='80.0' r='36'/%3E%3Ccircle cx='50.0' cy='77.3' r='36'/%3E%3Ccircle cx='42.7' cy='70.0' r='36'/%3E%3Ccircle cx='40.0' cy='60.0' r='36'/%3E%3Ccircle cx='42.7' cy='50.0' r='36'/%3E%3Ccircle cx='50.0' cy='42.7' r='36'/%3E%3Ccircle cx='60.0' cy='40.0' r='36'/%3E%3Ccircle cx='70.0' cy='42.7' r='36'/%3E%3Ccircle cx='77.3' cy='50.0' r='36'/%3E%3C/g%3E%3C/svg%3E");
  --ornament: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='24' viewBox='0 0 120 24'%3E%3Cg fill='none' stroke='%23D4A017'%3E%3Cpath d='M2 12H44M76 12H118' stroke-width='.8'/%3E%3Cpath d='M60 2 70 12 60 22 50 12Z' stroke-width='1.2'/%3E%3Cpath d='M60 7 65 12 60 17 55 12Z' fill='%23D4A017' stroke='none'/%3E%3Cpath d='M44 12 48 9 52 12 48 15ZM68 12 72 9 76 12 72 15Z' fill='%23D4A017' stroke='none' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
  color-scheme: dark;
}

/* ---------- lienzo general ---------- */
html[data-theme="blackcard"] {
  background-color: #070A11;
  background-image:
    radial-gradient(60vw 50vh at 50% -10%, rgba(212, 160, 23, .14), transparent 70%),
    radial-gradient(50vw 60vh at 100% 100%, rgba(156, 163, 175, .08), transparent 70%),
    var(--bc-guilloche);
}
html[data-theme="blackcard"] body.inv { color: var(--ink); }
html[data-theme="blackcard"] ::selection { background: var(--bc-gold); color: var(--bc-coal); }
html[data-theme="blackcard"] :focus-visible { outline-color: var(--bc-gold); }
html[data-theme="blackcard"] .inv-page { background: var(--bg); }

/* burbujas de champán: puntitos dorados que suben muy despacio por los bordes */
html[data-theme="blackcard"] .inv-fx::before,
html[data-theme="blackcard"] .inv-fx::after {
  content: ''; position: absolute; top: 0; bottom: -320px; width: 96px; opacity: 0;
  background-image:
    radial-gradient(circle, rgba(243, 217, 139, .9) 0 1.4px, transparent 2.2px),
    radial-gradient(circle, rgba(243, 217, 139, .6) 0 1px, transparent 1.8px),
    radial-gradient(circle, rgba(255, 255, 255, .55) 0 .8px, transparent 1.6px);
  background-size: 70px 160px, 46px 110px, 90px 230px;
  background-position: 10px 20px, 40px 70px, 60px 0;
  -webkit-mask: linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent);
  mask: linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent);
  animation: bcRise 26s linear infinite, bcFxIn 2s ease 1s forwards;
}
html[data-theme="blackcard"] .inv-fx::before { left: max(0px, calc(50% - 280px - 40px)); }
html[data-theme="blackcard"] .inv-fx::after { right: max(0px, calc(50% - 280px - 40px)); animation-duration: 34s, 2s; animation-delay: -12s, 1.4s; }
html.is-intro[data-theme="blackcard"] .inv-fx { visibility: hidden; }
@keyframes bcRise { from { transform: translateY(0); } to { transform: translateY(-320px); } }
@keyframes bcFxIn { to { opacity: .4; } }
@keyframes bcFoil { from { background-position: 0% 0; } to { background-position: 200% 0; } }

/* ============================================================
   HERO «photo» — brindis en penumbra con marco art déco y nombre en oro laminado
   ============================================================ */
html[data-theme="blackcard"] .inv-hero--photo { background: #0A0E17; }
html[data-theme="blackcard"] .inv-hero__media { background: radial-gradient(70% 50% at 50% 40%, rgba(212, 160, 23, .25), transparent 70%), #0A0E17; }
html[data-theme="blackcard"] .inv-hero__img { filter: saturate(.55) contrast(1.08) brightness(.82) sepia(.18); }
html[data-theme="blackcard"] .inv-hero__img.is-broken { opacity: 0; }
/* marco fino con esquinas en escuadra */
html[data-theme="blackcard"] .inv-hero::before {
  content: ''; position: absolute; inset: calc(14px + env(safe-area-inset-top)) 14px 14px; z-index: 1; pointer-events: none;
  border: 1px solid rgba(212, 160, 23, .38);
  background:
    linear-gradient(var(--bc-gold), var(--bc-gold)) 0 0 / 22px 2px no-repeat,
    linear-gradient(var(--bc-gold), var(--bc-gold)) 0 0 / 2px 22px no-repeat,
    linear-gradient(var(--bc-gold), var(--bc-gold)) 100% 0 / 22px 2px no-repeat,
    linear-gradient(var(--bc-gold), var(--bc-gold)) 100% 0 / 2px 22px no-repeat,
    linear-gradient(var(--bc-gold), var(--bc-gold)) 0 100% / 22px 2px no-repeat,
    linear-gradient(var(--bc-gold), var(--bc-gold)) 0 100% / 2px 22px no-repeat,
    linear-gradient(var(--bc-gold), var(--bc-gold)) 100% 100% / 22px 2px no-repeat,
    linear-gradient(var(--bc-gold), var(--bc-gold)) 100% 100% / 2px 22px no-repeat;
  opacity: 0; transition: opacity 1.4s var(--ease) .6s;
}
/* emblema art déco arriba */
html[data-theme="blackcard"] .inv-hero::after {
  content: ''; position: absolute; z-index: 1; left: 50%; top: calc(36px + env(safe-area-inset-top)); width: 150px; height: 30px;
  transform: translateX(-50%); pointer-events: none;
  background: var(--ornament) center / contain no-repeat;
  opacity: 0; transition: opacity 1.4s var(--ease) .8s;
}
html.is-revealed[data-theme="blackcard"] .inv-hero::before,
html.is-revealed[data-theme="blackcard"] .inv-hero::after { opacity: 1; }
html[data-theme="blackcard"] .inv-hero__content { z-index: 2; }
html[data-theme="blackcard"] .inv-hero__eyebrow {
  font-family: var(--font-body); font-weight: 700; font-size: .68rem; letter-spacing: .34em; color: var(--bc-silver-hi); opacity: 1;
}
html[data-theme="blackcard"] .inv-hero__title {
  font-family: var(--font-display); font-weight: 400; font-style: normal;
  font-size: clamp(3.6rem, 18vw, 5.2rem); line-height: .92; letter-spacing: -.01em; margin: .18em 0 .2em;
}
html[data-theme="blackcard"] .inv-hero--photo:not(.inv-hero--noimg) .inv-hero__title.inv-title,
html[data-theme="blackcard"] .inv-hero__title {
  color: var(--bc-gold-hi);
  background: var(--bc-foil); background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  text-shadow: none; filter: drop-shadow(0 2px 14px rgba(0, 0, 0, .55));
}
html.is-revealed[data-theme="blackcard"] .inv-hero__title.hero-anim {
  animation: invUp 1.15s var(--ease) both, bcFoil 9s linear 1.6s infinite;
  animation-delay: calc(.12s + var(--i, 0) * .11s), 1.6s;
}
html[data-theme="blackcard"] .inv-hero__subtitle {
  font-family: var(--font-display); font-style: italic; font-size: 1.35rem; line-height: 1.35; color: #E5E7EB; opacity: 1; max-width: 20rem;
}
html[data-theme="blackcard"] .inv-hero__date { font-family: var(--font-body); font-weight: 700; font-size: .7rem; letter-spacing: .3em; color: var(--bc-silver-hi); }
html[data-theme="blackcard"] .inv-hero__date-side { border-color: rgba(212, 160, 23, .55); }
html[data-theme="blackcard"] .inv-hero__date-day { font-family: var(--font-display); font-size: 3.6rem; color: var(--bc-gold-hi); }
html[data-theme="blackcard"] .inv-hero__time { color: var(--bc-gold); opacity: 1; }
html[data-theme="blackcard"] .inv-hero__place { font-size: .86rem; letter-spacing: .06em; color: #D1D5DB; opacity: 1; }
html[data-theme="blackcard"] .inv-hero__place .inv-icon { color: var(--bc-gold); }
html[data-theme="blackcard"] .inv-hero__cue { color: var(--bc-silver-hi); }

/* pase del invitado: placa de metal */
html[data-theme="blackcard"] .inv-guest {
  background: var(--bc-metal); color: var(--ink);
  border: 1px solid rgba(212, 160, 23, .45); border-radius: 12px;
  box-shadow: 0 20px 40px -22px rgba(0, 0, 0, .9), inset 0 1px 0 rgba(255, 255, 255, .08);
}
html[data-theme="blackcard"] .inv-hero--photo .inv-guest { background: rgba(14, 18, 27, .72); border-color: rgba(212, 160, 23, .5); }
html[data-theme="blackcard"] .inv-guest__label { font-weight: 700; color: var(--bc-gold); opacity: 1; letter-spacing: .32em; }
html[data-theme="blackcard"] .inv-guest__name { font-family: var(--font-display); font-weight: 400; font-style: italic; font-size: 1.75rem; color: #F9FAFB; }
html[data-theme="blackcard"] .inv-guest__passes { color: #C5CBD5; opacity: 1; }

/* ============================================================
   SECCIONES
   ============================================================ */
html[data-theme="blackcard"] .inv-section { background: var(--bg); }
html[data-theme="blackcard"] .inv-section.is-alt {
  background:
    radial-gradient(70% 40% at 50% 0%, rgba(212, 160, 23, .09), transparent 70%),
    var(--bc-guilloche),
    var(--bg-alt);
}
/* filete dorado con rombo entre secciones */
html[data-theme="blackcard"] .inv-main > .inv-section + .inv-section::before {
  content: ''; position: absolute; left: 50%; top: -12px; z-index: 2; width: 150px; height: 24px; transform: translateX(-50%); pointer-events: none;
  background: var(--ornament) center / contain no-repeat;
}
html[data-theme="blackcard"] .inv-main .inv-eyebrow {
  font-family: var(--font-body); font-weight: 700; font-size: .7rem; letter-spacing: .36em; color: var(--bc-gold);
}
html[data-theme="blackcard"] .inv-main .inv-title {
  font-family: var(--font-display); font-weight: 400; font-size: clamp(2.35rem, 10.5vw, 3rem); line-height: 1.02; letter-spacing: -.01em; color: #F9FAFB;
}
html[data-theme="blackcard"] .inv-script { font-style: italic; }
html[data-theme="blackcard"] .inv-text { color: var(--ink-soft); }
html[data-theme="blackcard"] .inv-head .inv-text { color: #C5CBD5; }
html[data-theme="blackcard"] .inv-card {
  background: var(--bc-metal);
  border: 1px solid rgba(229, 231, 235, .1);
  box-shadow: var(--shadow);
}

/* botones: oro laminado con texto carbón */
html[data-theme="blackcard"] .inv-btn {
  font-family: var(--font-body); font-weight: 700; font-size: .84rem; letter-spacing: .12em; text-transform: uppercase;
  border-radius: 10px; border-color: #B8860B;
  background: linear-gradient(135deg, #F3D98B 0%, #D4A017 42%, #B8860B 100%); color: var(--bc-coal);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 12px 26px -14px rgba(212, 160, 23, .75);
}
@media (hover: hover) { html[data-theme="blackcard"] .inv-btn:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 16px 30px -12px rgba(212, 160, 23, .85); } }
html[data-theme="blackcard"] .inv-btn--ghost {
  background: rgba(255, 255, 255, .02); color: var(--bc-silver-hi); border-color: rgba(156, 163, 175, .55); box-shadow: none;
}
html[data-theme="blackcard"] .inv-btn--ghost::after { background: linear-gradient(105deg, transparent 30%, rgba(229, 231, 235, .12) 50%, transparent 70%); }
@media (hover: hover) { html[data-theme="blackcard"] .inv-btn--ghost:hover { background: rgba(229, 231, 235, .06); box-shadow: none; } }
html[data-theme="blackcard"] .inv-btn--wa { background: #0E7A40; border-color: #0E7A40; color: #fff; box-shadow: 0 12px 24px -14px rgba(14, 122, 64, .8); }
html[data-theme="blackcard"] .inv-btn--wa.inv-btn--ghost { background: transparent; color: var(--accent); }

/* vip: la Black Card de metal con chip */
html[data-theme="blackcard"] .inv-vip { max-width: 370px; filter: drop-shadow(0 30px 34px rgba(0, 0, 0, .7)) drop-shadow(0 0 1px rgba(212, 160, 23, .6)); }
html[data-theme="blackcard"] .inv-vip__main, html[data-theme="blackcard"] .inv-vip__stub { color: #F3F4F6; }
html[data-theme="blackcard"] .inv-vip__main {
  padding: 26px 24px 22px;
  background:
    var(--bc-brushed),
    radial-gradient(90% 80% at 100% 0%, rgba(212, 160, 23, .2), transparent 60%),
    radial-gradient(70% 70% at 0% 100%, rgba(156, 163, 175, .12), transparent 60%),
    var(--bc-guilloche),
    linear-gradient(150deg, #262E3F, #121826 55%, #1D2433);
}
/* chip EMV */
html[data-theme="blackcard"] .inv-vip__main::before {
  content: ''; position: absolute; right: 24px; top: 24px; width: 46px; height: 36px; border-radius: 7px;
  background:
    linear-gradient(90deg, transparent 31%, rgba(90, 64, 8, .55) 31% 33%, transparent 33% 67%, rgba(90, 64, 8, .55) 67% 69%, transparent 69%),
    linear-gradient(0deg, transparent 32%, rgba(90, 64, 8, .55) 32% 35%, transparent 35% 65%, rgba(90, 64, 8, .55) 65% 68%, transparent 68%),
    linear-gradient(135deg, #F7E3A1, #D4A017 50%, #A07810);
  box-shadow: inset 0 0 0 1px rgba(90, 64, 8, .5), 0 2px 4px rgba(0, 0, 0, .4);
}
html[data-theme="blackcard"] .inv-vip__main::after { border-bottom-color: rgba(212, 160, 23, .45); }
html[data-theme="blackcard"] .inv-vip__kicker { color: var(--bc-gold); opacity: 1; letter-spacing: .3em; }
html[data-theme="blackcard"] .inv-vip__spark { color: var(--bc-gold); }
html[data-theme="blackcard"] .inv-vip__event { font-family: var(--font-body); font-size: .74rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; color: var(--bc-silver); opacity: 1; margin-top: 18px; }
html[data-theme="blackcard"] .inv-vip__name {
  font-family: var(--font-body); font-style: normal; font-weight: 600; text-transform: uppercase; letter-spacing: .1em;
  font-size: clamp(1.15rem, 5.6vw, 1.45rem); line-height: 1.25; margin-top: 8px;
  background: var(--bc-chrome); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 1px 0 rgba(0, 0, 0, .8));
}
html[data-theme="blackcard"] .inv-vip__grid dt { color: var(--bc-silver); opacity: 1; }
html[data-theme="blackcard"] .inv-vip__grid dd { font-family: var(--font-body); font-weight: 700; font-size: 1rem; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
html[data-theme="blackcard"] .inv-vip__stub { background: var(--bc-brushed), linear-gradient(160deg, #161C29, #0D121C); }
html[data-theme="blackcard"] .inv-vip__code { color: var(--bc-gold); }
html[data-theme="blackcard"] .inv-vip__hint { color: #C5CBD5; opacity: 1; }
html[data-theme="blackcard"] .inv-vip__qr { box-shadow: 0 0 0 2px rgba(212, 160, 23, .8); }
html[data-theme="blackcard"] .inv-vip__qr.is-generic { background: rgba(229, 231, 235, .05); border-color: rgba(212, 160, 23, .5); box-shadow: none; }

/* countdown: placas de metal con cifras doradas */
html[data-theme="blackcard"] .inv-countdown { gap: 8px; }
html[data-theme="blackcard"] .inv-countdown__unit {
  padding: 18px 2px 14px; border-radius: 10px; background: var(--bc-metal);
  border: 1px solid rgba(212, 160, 23, .28); box-shadow: var(--shadow);
}
html[data-theme="blackcard"] .inv-countdown__unit::before { background: rgba(0, 0, 0, .45); height: 1px; opacity: 1; left: 0; right: 0; box-shadow: 0 1px 0 rgba(255, 255, 255, .05); }
html[data-theme="blackcard"] .inv-countdown__num {
  font-family: var(--font-display); font-weight: 400; font-size: clamp(2.2rem, 10vw, 2.8rem);
  background: var(--bc-foil); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--bc-gold-hi);
}
html[data-theme="blackcard"] .inv-countdown__lbl { font-weight: 700; color: var(--bc-silver); }
html[data-theme="blackcard"] .inv-countdown__date { color: var(--bc-silver); }
html[data-theme="blackcard"] .inv-countdown__done { font-family: var(--font-display); color: var(--bc-gold-hi); }

/* story: retrato con marco dorado y capitular */
html[data-theme="blackcard"] .inv-story__figure img { border-radius: 4px; filter: grayscale(.85) contrast(1.05) brightness(.9); }
html[data-theme="blackcard"] .inv-story__figure::after { inset: -10px; border-radius: 6px; border-color: rgba(212, 160, 23, .6); }
html[data-theme="blackcard"] .inv-story__glow { background: radial-gradient(closest-side, rgba(212, 160, 23, .22), transparent); }
html[data-theme="blackcard"] .inv-story__body .inv-text:first-child::first-letter { font-family: var(--font-display); font-size: 3.9em; line-height: .8; color: var(--bc-gold); }
html[data-theme="blackcard"] .inv-story__sig { font-size: 1.9rem; color: var(--bc-gold-hi); }

/* events */
html[data-theme="blackcard"] .inv-event__media { background: #0A0E17; }
html[data-theme="blackcard"] .inv-event__media img { filter: saturate(.6) brightness(.85) sepia(.15); }
html[data-theme="blackcard"] .inv-event__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(20, 26, 38, .95)); pointer-events: none; }
html[data-theme="blackcard"] .inv-event__icon, html[data-theme="blackcard"] .inv-event.has-img .inv-event__icon {
  color: var(--bc-gold); background: #121826; border: 1px solid rgba(212, 160, 23, .7); box-shadow: 0 0 0 5px rgba(18, 24, 38, .9), 0 12px 24px -12px rgba(0, 0, 0, .9);
}
html[data-theme="blackcard"] .inv-event__name { font-size: 1.9rem; font-weight: 400; color: #F9FAFB; }
html[data-theme="blackcard"] .inv-event__meta { color: #C5CBD5; }
html[data-theme="blackcard"] .inv-event__meta .inv-icon { color: var(--bc-gold); }

/* timeline: rombos dorados */
html[data-theme="blackcard"] .inv-timeline::before { width: 1px; background: linear-gradient(var(--bc-gold), rgba(212, 160, 23, .15)); }
html[data-theme="blackcard"] .inv-timeline__dot {
  width: 42px; height: 42px; margin: 7px; border-radius: 6px; transform: rotate(45deg);
  color: var(--bc-gold); background: #141A27; border: 1px solid rgba(212, 160, 23, .75);
  box-shadow: 0 0 0 6px var(--bg), 0 10px 20px -10px rgba(0, 0, 0, .9);
}
html[data-theme="blackcard"] .inv-section.is-alt .inv-timeline__dot { box-shadow: 0 0 0 6px var(--bg-alt), 0 10px 20px -10px rgba(0, 0, 0, .9); }
html[data-theme="blackcard"] .inv-timeline__dot .inv-icon { transform: rotate(-45deg); width: 19px; height: 19px; }
html[data-theme="blackcard"] .inv-timeline__time { color: var(--bc-gold); letter-spacing: .22em; }
html[data-theme="blackcard"] .inv-timeline__title { font-family: var(--font-display); font-weight: 400; font-size: 1.55rem; color: #F9FAFB; }
html[data-theme="blackcard"] .inv-timeline__text { color: var(--ink-soft); }

/* dresscode */
html[data-theme="blackcard"] .inv-dress__icon { color: var(--bc-gold); background: #141A27; border-color: rgba(212, 160, 23, .6); }
html[data-theme="blackcard"] .inv-dress__code {
  font-family: var(--font-display); font-style: italic; font-size: clamp(2.4rem, 11vw, 3rem);
  background: var(--bc-foil); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--bc-gold-hi);
}
html[data-theme="blackcard"] .inv-dress__label { color: var(--bc-silver); }
html[data-theme="blackcard"] .inv-chip { background: #161D2B; border-color: rgba(229, 231, 235, .14); color: #E5E7EB; }
html[data-theme="blackcard"] .inv-chip__swatch { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28), 0 2px 6px rgba(0, 0, 0, .4); }
html[data-theme="blackcard"] .inv-chip--avoid { color: var(--ink-soft); }
html[data-theme="blackcard"] .inv-chip--avoid .inv-icon { color: var(--bc-gold); }

/* gallery */
html[data-theme="blackcard"] .inv-gallery__item { background: #0A0E17; border-radius: 6px; box-shadow: 0 0 0 1px rgba(212, 160, 23, .3), 0 24px 40px -24px rgba(0, 0, 0, .9); }
html[data-theme="blackcard"] .inv-gallery__item img { filter: saturate(.7) contrast(1.05); }
html[data-theme="blackcard"] .inv-gallery__nav { background: rgba(17, 24, 39, .85); color: var(--bc-gold); border-color: rgba(212, 160, 23, .5); }
html[data-theme="blackcard"] .inv-gallery__dots span { background: rgba(229, 231, 235, .2); }
html[data-theme="blackcard"] .inv-gallery__dots span.is-on { background: var(--bc-gold); }

/* álbum: QR en marco dorado */
html[data-theme="blackcard"] .inv-album__qr { box-shadow: 0 0 0 1px rgba(212, 160, 23, .7), 0 0 0 7px #121826, 0 0 0 8px rgba(212, 160, 23, .35), 0 24px 44px -20px rgba(0, 0, 0, .9); }
html[data-theme="blackcard"] .inv-album__hint { color: var(--ink-soft); }
html[data-theme="blackcard"] .inv-album__icon { color: var(--bc-gold); background: #141A27; }

/* gifts, hotels y nota */
html[data-theme="blackcard"] .inv-gift__icon, html[data-theme="blackcard"] .inv-hotel__icon { color: var(--bc-gold); background: #121826; border: 1px solid rgba(212, 160, 23, .45); border-radius: 10px; }
html[data-theme="blackcard"] .inv-gift__title, html[data-theme="blackcard"] .inv-hotel__name { font-weight: 400; font-size: 1.5rem; color: #F9FAFB; }
html[data-theme="blackcard"] .inv-gift__copy { background: #0C111C; color: #F3F4F6; border-color: rgba(229, 231, 235, .18); }
html[data-theme="blackcard"] .inv-note {
  background: var(--bc-metal); border: 1px solid rgba(212, 160, 23, .35);
  box-shadow: inset 3px 0 0 var(--bc-gold), var(--shadow);
}
html[data-theme="blackcard"] .inv-note__icon { color: var(--bc-gold); background: #0C111C; border: 1px solid rgba(212, 160, 23, .45); }
html[data-theme="blackcard"] .inv-note__title { font-weight: 400; font-size: 1.6rem; color: #F9FAFB; }

/* faq */
html[data-theme="blackcard"] .inv-faq__item { background: var(--bc-metal); border-color: rgba(229, 231, 235, .1); }
html[data-theme="blackcard"] .inv-faq__item.is-open { border-color: rgba(212, 160, 23, .55); box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .9); }
html[data-theme="blackcard"] .inv-faq__q { font-family: var(--font-body); font-weight: 600; font-size: 1rem; color: #F3F4F6; }
html[data-theme="blackcard"] .inv-faq__icon { background: rgba(212, 160, 23, .12); color: var(--bc-gold); }
html[data-theme="blackcard"] .inv-faq__item.is-open .inv-faq__icon { background: var(--bc-gold); color: var(--bc-coal); }
html[data-theme="blackcard"] .inv-faq__a p { color: #C5CBD5; }

/* wishes */
html[data-theme="blackcard"] .inv-wish { background: var(--bc-metal); border-color: rgba(229, 231, 235, .1); }
html[data-theme="blackcard"] .inv-wish:nth-child(3n + 2) { background: var(--bc-brushed), linear-gradient(150deg, #2A2414, #161B26 60%); }
html[data-theme="blackcard"] .inv-wish::before { color: var(--bc-gold); opacity: .55; }
html[data-theme="blackcard"] .inv-wish__msg p { font-size: 1.25rem; color: #F3F4F6; }
html[data-theme="blackcard"] .inv-wish__meta strong { color: #F3F4F6; }
html[data-theme="blackcard"] .inv-wishes__spark { color: var(--bc-gold); }

/* formularios legibles en oscuro */
html[data-theme="blackcard"] .inv-field__label { color: #E5E7EB; letter-spacing: .08em; }
html[data-theme="blackcard"] .inv-field__label small, html[data-theme="blackcard"] .inv-field__count { color: #A7AFBD; }
html[data-theme="blackcard"] .inv-input { background: #0C111C; border-color: rgba(229, 231, 235, .2); color: #F3F4F6; border-radius: 10px; }
html[data-theme="blackcard"] .inv-input::placeholder { color: #8891A0; }
html[data-theme="blackcard"] .inv-input:focus { background: #0E1420; border-color: var(--bc-gold); box-shadow: 0 0 0 3px rgba(212, 160, 23, .22); }

/* RSVP */
html[data-theme="blackcard"] .inv-section.inv-rsvp { background: radial-gradient(80% 45% at 50% 0%, rgba(212, 160, 23, .16), transparent 70%), var(--bc-guilloche), var(--bg); }
html[data-theme="blackcard"] .inv-section.inv-rsvp.is-alt { background: radial-gradient(80% 45% at 50% 0%, rgba(212, 160, 23, .16), transparent 70%), var(--bc-guilloche), var(--bg-alt); }
html[data-theme="blackcard"] .inv-rsvp__seats i { border-color: rgba(212, 160, 23, .7); }
html[data-theme="blackcard"] .inv-rsvp__seats i.is-on { background: var(--bc-gold); }
html[data-theme="blackcard"] .inv-rsvp__face { background: #0F1520; border-color: rgba(229, 231, 235, .16); }
html[data-theme="blackcard"] .inv-rsvp__face-ico { background: #1A2232; }
html[data-theme="blackcard"] .inv-rsvp__face-txt strong { font-family: var(--font-body); font-weight: 700; }
html[data-theme="blackcard"] .inv-rsvp__face-txt small { color: #A7AFBD; }
html[data-theme="blackcard"] .inv-rsvp__radio:checked + .inv-rsvp__face { background: #1E1A10; border-color: var(--bc-gold); box-shadow: 0 0 0 1px rgba(212, 160, 23, .4), 0 18px 30px -18px rgba(212, 160, 23, .55); }
html[data-theme="blackcard"] .inv-stepper { background: #0F1520; border-color: rgba(229, 231, 235, .16); }
html[data-theme="blackcard"] .inv-stepper__label { color: #A7AFBD; }
html[data-theme="blackcard"] .inv-stepper__btn { background: #1A2232; color: var(--bc-gold); border-color: rgba(212, 160, 23, .45); }
html[data-theme="blackcard"] .inv-stepper__val { color: #F3F4F6; }
html[data-theme="blackcard"] .inv-rsvp__hint, html[data-theme="blackcard"] .inv-rsvp__alt { color: #A7AFBD; }
html[data-theme="blackcard"] .inv-rsvp__done-title { font-family: var(--font-display); font-weight: 400; font-size: 2.2rem; color: var(--bc-gold-hi); }
html[data-theme="blackcard"] .inv-rsvp__note { background: #0F1520; color: #C5CBD5; }
html[data-theme="blackcard"] .inv-rsvp__change { color: #A7AFBD; }

/* divider */
html[data-theme="blackcard"] .inv-divider.has-ornament { height: 26px; max-width: 220px; }

/* pie: abanico art déco */
html[data-theme="blackcard"] .inv-footer {
  background:
    repeating-conic-gradient(from -60deg at 50% -10%, rgba(212, 160, 23, .08) 0 1deg, transparent 1deg 6deg) top / 100% 75% no-repeat,
    radial-gradient(70% 55% at 50% 0%, rgba(212, 160, 23, .16), transparent 70%),
    #090D15;
  border-top: 1px solid rgba(212, 160, 23, .35);
}
html[data-theme="blackcard"] .inv-footer__orn { color: var(--bc-gold); }
html[data-theme="blackcard"] .inv-footer__text {
  font-family: var(--font-display); font-style: italic; font-size: 2.3rem;
  background: var(--bc-foil); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--bc-gold-hi);
}
html[data-theme="blackcard"] .inv-footer__date { color: var(--bc-silver); }
html[data-theme="blackcard"] .inv-footer__credit { color: #A7AFBD; }
html[data-theme="blackcard"] .inv-footer__credit:hover { border-color: rgba(229, 231, 235, .2); color: #F3F4F6; }
html[data-theme="blackcard"] .inv-footer__brand { color: #F3F4F6; }
html[data-theme="blackcard"] .inv-footer__access { color: #C5CBD5; border-color: rgba(229, 231, 235, .2); }

/* barra de acciones, música y hoja inferior */
html[data-theme="blackcard"] .inv-actionbar {
  background: rgba(14, 18, 28, .86); border-color: rgba(212, 160, 23, .28);
  box-shadow: 0 20px 44px -16px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .05);
}
html[data-theme="blackcard"] .inv-actionbar__btn:not(.is-primary) { color: #E5E7EB; }
html[data-theme="blackcard"] .inv-actionbar__btn.is-primary { background: linear-gradient(135deg, #F3D98B, #D4A017 45%, #B8860B); color: var(--bc-coal); }
html[data-theme="blackcard"] .inv-music { background: rgba(14, 18, 28, .86); color: #F3F4F6; border-color: rgba(212, 160, 23, .3); }
html[data-theme="blackcard"] .inv-sheet__opt { background: #0F1520; }
html[data-theme="blackcard"] .inv-sheet__ico { background: #1A2232; }

/* ============================================================
   INTRO «ticket» — la Black Card: metal cepillado, chip, oro laminado y nombre en relieve
   ============================================================ */
html[data-theme="blackcard"] .inv-intro--ticket { background: #070A11; }
html[data-theme="blackcard"] .inv-intro--ticket .inv-intro__bg {
  background-image:
    radial-gradient(60% 38% at 50% 44%, rgba(212, 160, 23, .22), transparent 72%),
    repeating-conic-gradient(from -70deg at 50% 112%, rgba(212, 160, 23, .07) 0 .8deg, transparent .8deg 5deg),
    radial-gradient(120% 80% at 50% 46%, transparent 40%, rgba(0, 0, 0, .8) 100%),
    var(--bc-guilloche);
}
html[data-theme="blackcard"] .inv-intro--ticket .inv-intro__bg::after { display: none; }
/* haz de luz desde arriba, como en una alfombra roja… pero negra */
html[data-theme="blackcard"] .inv-intro--ticket::before {
  content: ''; position: absolute; z-index: -1; left: 50%; top: -10%; width: 140%; height: 80%; transform: translateX(-50%);
  background: conic-gradient(from 168deg at 50% 0%, transparent 0deg, rgba(243, 217, 139, .1) 12deg, rgba(243, 217, 139, .02) 24deg, transparent 26deg);
  pointer-events: none; animation: bcBeam 7s var(--ease-io) infinite alternate;
}
@keyframes bcBeam { from { transform: translateX(-52%) rotate(-3deg); } to { transform: translateX(-48%) rotate(3deg); } }
html[data-theme="blackcard"] .inv-intro--ticket .inv-intro__eyebrow { font-family: var(--font-body); font-weight: 700; color: var(--bc-gold); letter-spacing: .36em; }
html[data-theme="blackcard"] .tkt {
  --w: min(84vw, 336px);
  --tk: #141A26;
  --tk-ink: #F3F4F6;
  --notch: 13px;
  filter: drop-shadow(0 0 .6px rgba(243, 217, 139, .8)) drop-shadow(0 34px 34px rgba(0, 0, 0, .85));
}
html[data-theme="blackcard"] .tkt__main {
  border-radius: 18px 18px 0 0;
  background:
    var(--bc-brushed),
    radial-gradient(110% 70% at 100% 0%, rgba(212, 160, 23, .22), transparent 60%),
    radial-gradient(80% 60% at 0% 100%, rgba(156, 163, 175, .14), transparent 70%),
    var(--bc-guilloche),
    linear-gradient(150deg, #283043, #121826 52%, #1C2333);
}
html[data-theme="blackcard"] .tkt__main::before { background: linear-gradient(115deg, transparent 35%, rgba(255, 241, 196, .14) 48%, transparent 60%) 0 0 / 260% 100% no-repeat; }
/* banda de oro laminado en lugar del holograma */
html[data-theme="blackcard"] .tkt__holo { height: 26px; background: var(--bc-foil); background-size: 200% 100%; animation: bcFoil 6s linear infinite; color: rgba(17, 24, 39, .78); }
html[data-theme="blackcard"] .tkt__holo::after { background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .18) 0 1px, transparent 1px 4px); }
html[data-theme="blackcard"] .tkt__holo span { font-family: var(--font-body); font-weight: 800; letter-spacing: .4em; }
/* chip EMV junto a «Admite» */
html[data-theme="blackcard"] .tkt::before {
  content: ''; position: absolute; z-index: 3; left: 24px; top: 41px; width: 42px; height: 32px; border-radius: 6px; pointer-events: none;
  background:
    linear-gradient(90deg, transparent 31%, rgba(90, 64, 8, .55) 31% 34%, transparent 34% 66%, rgba(90, 64, 8, .55) 66% 69%, transparent 69%),
    linear-gradient(0deg, transparent 32%, rgba(90, 64, 8, .55) 32% 36%, transparent 36% 64%, rgba(90, 64, 8, .55) 64% 68%, transparent 68%),
    linear-gradient(135deg, #F7E3A1, #D4A017 50%, #A07810);
  box-shadow: inset 0 0 0 1px rgba(90, 64, 8, .5), 0 2px 4px rgba(0, 0, 0, .5);
}
html[data-theme="blackcard"] .tkt.s1::before { animation: tktJolt .4s var(--ease) .18s; }
html[data-theme="blackcard"] .tkt__kicker { min-height: 32px; padding-left: 56px; font-family: var(--font-body); color: var(--bc-silver-hi); }
html[data-theme="blackcard"] .tkt__kicker span:last-child { border-color: var(--bc-gold); color: var(--bc-gold-hi); letter-spacing: .32em; }
html[data-theme="blackcard"] .tkt__title {
  margin: 18px 0 16px; font-family: var(--font-display); font-weight: 400; font-size: calc(var(--w) * .135); line-height: .95; letter-spacing: .01em;
  background: var(--bc-foil); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  color: var(--bc-gold-hi); animation: bcFoil 8s linear infinite;
}
html[data-theme="blackcard"] .tkt__row { border-color: rgba(212, 160, 23, .28); }
html[data-theme="blackcard"] .tkt__row span { font-family: var(--font-body); font-size: .86rem; font-weight: 700; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
html[data-theme="blackcard"] .tkt__row small, html[data-theme="blackcard"] .tkt__guest small { font-family: var(--font-body); color: var(--bc-silver); opacity: 1; }
/* nombre en relieve, como en una tarjeta */
html[data-theme="blackcard"] .tkt__guest strong {
  font-family: var(--font-body); font-weight: 600; text-transform: uppercase; letter-spacing: .12em;
  font-size: calc(var(--w) * .058); line-height: 1.35; margin-top: 2px;
  background: var(--bc-chrome); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: #E5E7EB;
  filter: drop-shadow(0 1px 0 rgba(0, 0, 0, .9));
}
html[data-theme="blackcard"] .tkt__side { font-family: var(--font-body); color: var(--bc-gold); opacity: .55; }
html[data-theme="blackcard"] .tkt__main::after { background: repeating-linear-gradient(90deg, rgba(212, 160, 23, .55) 0 6px, transparent 6px 11px); }
html[data-theme="blackcard"] .tkt__stub { background: var(--bc-brushed), linear-gradient(160deg, #181E2B, #0C1019); }
html[data-theme="blackcard"] .tkt__stub .bc { color: var(--bc-gold); }
html[data-theme="blackcard"] .tkt__code { color: var(--bc-gold-hi); white-space: nowrap; }
html[data-theme="blackcard"] .tkt__tear { color: var(--bc-silver-hi); white-space: nowrap; }
html[data-theme="blackcard"] .inv-intro--ticket .inv-intro__cta {
  border-radius: 12px; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 800;
  background: linear-gradient(135deg, #F3D98B, #D4A017 45%, #B8860B); color: var(--bc-coal);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 0 30px rgba(212, 160, 23, .35), 0 16px 30px -12px rgba(0, 0, 0, .8);
}
html[data-theme="blackcard"] .inv-intro--ticket .inv-intro__cta-ring { animation-name: bcCtaRing; }
@keyframes bcCtaRing { 0% { box-shadow: 0 0 0 0 rgba(212, 160, 23, .55); } 80%, 100% { box-shadow: 0 0 0 16px transparent; } }
html[data-theme="blackcard"] .inv-intro--ticket .inv-intro__cta:focus-visible { outline-color: var(--bc-gold); }

/* ============================================================
   ESCRITORIO Y MOVIMIENTO REDUCIDO
   ============================================================ */
@media (min-width: 700px) {
  html[data-theme="blackcard"] .inv-page { box-shadow: 0 0 0 1px rgba(212, 160, 23, .3), 0 0 0 10px rgba(7, 10, 17, .9), 0 0 0 11px rgba(212, 160, 23, .18), 0 60px 140px -30px rgba(0, 0, 0, .95); }
  html[data-theme="blackcard"] .inv-hero__title { font-size: 5.6rem; }
  html[data-theme="blackcard"] .tkt { --w: 340px; }
}
@media (max-height: 700px) { html[data-theme="blackcard"] .tkt { --w: min(76vw, 290px); } }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="blackcard"] .inv-fx, html[data-theme="blackcard"] .inv-intro--ticket::before { display: none; }
  html[data-theme="blackcard"] .inv-hero::before, html[data-theme="blackcard"] .inv-hero::after { opacity: 1; transition: none; }
}
