/* =====================================================================
   Inolvidia · tema «luz» — Luz de vitral  (demo: bautizo-luz, Lima)
   Dueño: temas elegantes. Contrato §5: variables en :root + decoración
   acotada SIEMPRE bajo html[data-theme="luz"].
   Concepto: la luz de la mañana entrando por un vitral — blanco, marfil,
   azul mariano, oro y piedra. Paloma con ramita de olivo, rayos suaves,
   ventanas en arco y retícula de vitral.
   Nota técnica: además de las clases públicas, viste algunos hijos BEM del
   motor (p. ej. .inv-event__media, .inv-timeline__dot, .env__*). Si el motor
   los renombra, el tema cae con gracia al estilo base.
   Contraste: el azul mariano (#8FB3D9) y el oro (#C9A96E) son decorativos;
   para texto y botones se usan #45709E (azul) y #8A6D33 (oro legible).
   ===================================================================== */

:root {
  --bg: #FFFFFF;
  --bg-alt: #F8F4EC;
  --surface: #FFFFFF;
  --ink: #34404F;
  --ink-soft: #5E6A79;
  --accent: #45709E;
  --accent-2: #C9A96E;
  --accent-ink: #FFFFFF;
  --line: rgba(69, 112, 158, .16);
  --font-display: 'Cormorant Upright', 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-script: 'Cormorant Upright', 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Marcellus', 'Optima', Candara, Georgia, serif;
  --radius: 20px;
  --shadow: 0 1px 2px rgba(52, 64, 79, .05), 0 26px 50px -34px rgba(69, 112, 158, .5);
  --hero-overlay: linear-gradient(180deg, rgba(255, 255, 255, 0) 55%, rgba(255, 255, 255, .28));
  --hero-ink: #34404F;
  --intro-bg: #EDF1F6;
  --intro-ink: #34404F;
  --seal: #7FA3CC;
  --pattern: var(--lz-lattice);
  --ornament: var(--lz-ornament);

  /* — propias del tema — */
  --lz-mariano: #8FB3D9;
  --lz-cielo: #E4EDF7;
  --lz-oro-texto: #8A6D33;
  --lz-piedra: #8C8C8C;
  --lz-salvia: #98A58A;
  --lz-hair: color-mix(in srgb, var(--accent-2) 55%, transparent);
  --lz-rays: conic-gradient(from 148deg at 50% -4%,
    transparent 0deg, rgba(255, 246, 222, .55) 7deg, transparent 13deg,
    transparent 18deg, rgba(255, 246, 222, .38) 24deg, transparent 29deg,
    rgba(255, 246, 222, .5) 34deg, transparent 40deg,
    transparent 45deg, rgba(255, 246, 222, .34) 50deg, transparent 56deg, transparent 360deg);
}

/* @recursos:inicio — SVG hechos a mano: se generan con qa/temas-elegantes/svg/gen_luz.py y rootblock.py (no editar a mano) */
html[data-theme="luz"] {
  --lz-dove: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='3 0 97 62'%3E%3Cpath d='M60.0 40.0Q50.7 28.6 36.2 26.3Q45.5 37.6 60.0 40.0Z' fill='%23DDE6F0' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q51.5 24.6 35.8 16.8Q44.3 32.2 60.0 40.0Z' fill='%23DDE6F0' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q54.7 22.0 40.7 9.6Q45.9 27.6 60.0 40.0Z' fill='%23DDE6F0' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q59.5 22.4 49.2 8.1Q49.7 25.7 60.0 40.0Z' fill='%23DDE6F0' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q64.0 25.8 57.6 12.5Q53.6 26.7 60.0 40.0Z' fill='%23DDE6F0' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q18.6 50.8 12.2 60.3Q23.6 59.5 30.0 50.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q17.4 47.9 7.1 55.4Q19.7 57.6 30.0 50.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q18.5 44.3 6.5 48.6Q17.9 54.3 30.0 50.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q22.0 41.8 10.6 42.9Q18.6 51.2 30.0 50.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M86 33.5L80.6 31.2C79.4 25.8 72.6 23.6 68.4 27.4C64.6 30.8 63.2 34.6 58 37.6C49 42.6 38 44.6 29 49C36 55 50 57.4 61 53.6C70 50.4 76.6 44.2 80.4 36.2Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M34 50.6C44 54.4 55 54.2 63 50.2C56 55.8 43 56.6 34 50.6Z' fill='%23DDE6F0'/%3E%3Cpath d='M55.0 42.0Q41.2 31.7 24.0 33.7Q37.8 44.0 55.0 42.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q40.7 27.2 20.4 23.6Q34.7 38.5 55.0 42.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q42.8 22.9 22.2 13.5Q34.4 32.6 55.0 42.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q47.4 20.7 29.4 6.8Q37.0 28.2 55.0 42.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q53.2 21.4 39.6 5.8Q41.4 26.4 55.0 42.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q58.5 25.0 49.4 10.2Q45.9 27.2 55.0 42.0Z' fill='%23FFFFFF' stroke='%23B9C6D6' stroke-width='0.7'/%3E%3Ccircle cx='74.6' cy='29.6' r='1.1' fill='%234B5563'/%3E%3Cpath d='M80.4 31.4L87.6 33.4L80.6 35.4Z' fill='%23D9B77A'/%3E%3Cpath d='M85 34.6C88 38 92 40.6 97 41.6' fill='none' stroke='%2398A58A' stroke-width='.9' stroke-linecap='round'/%3E%3Cpath d='M86.8 37.6Q88.4 41.1 92.2 42.0Q90.6 38.5 86.8 37.6Z' fill='%2398A58A'/%3E%3Cpath d='M90.1 39.8Q94.0 40.2 96.7 37.4Q92.8 37.0 90.1 39.8Z' fill='%2398A58A'/%3E%3Cpath d='M95.1 40.5Q94.7 44.1 97.3 46.7Q97.7 43.1 95.1 40.5Z' fill='%2398A58A'/%3E%3C/svg%3E");
  --lz-sealdove: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='3 0 97 62'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23F3E2B6'/%3E%3Cstop offset='.55' stop-color='%23C6A15E'/%3E%3Cstop offset='1' stop-color='%23E9D19A'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg filter='drop-shadow(0 .8px 0 rgba(20,40,70,.5))'%3E%3Cpath d='M60.0 40.0Q50.7 28.6 36.2 26.3Q45.5 37.6 60.0 40.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M60.0 40.0Q51.5 24.6 35.8 16.8Q44.3 32.2 60.0 40.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M60.0 40.0Q54.7 22.0 40.7 9.6Q45.9 27.6 60.0 40.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M60.0 40.0Q59.5 22.4 49.2 8.1Q49.7 25.7 60.0 40.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M60.0 40.0Q64.0 25.8 57.6 12.5Q53.6 26.7 60.0 40.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M30.0 50.0Q18.6 50.8 12.2 60.3Q23.6 59.5 30.0 50.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M30.0 50.0Q17.4 47.9 7.1 55.4Q19.7 57.6 30.0 50.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M30.0 50.0Q18.5 44.3 6.5 48.6Q17.9 54.3 30.0 50.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M30.0 50.0Q22.0 41.8 10.6 42.9Q18.6 51.2 30.0 50.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M86 33.5L80.6 31.2C79.4 25.8 72.6 23.6 68.4 27.4C64.6 30.8 63.2 34.6 58 37.6C49 42.6 38 44.6 29 49C36 55 50 57.4 61 53.6C70 50.4 76.6 44.2 80.4 36.2Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M34 50.6C44 54.4 55 54.2 63 50.2C56 55.8 43 56.6 34 50.6Z' fill='url(%23g)'/%3E%3Cpath d='M55.0 42.0Q41.2 31.7 24.0 33.7Q37.8 44.0 55.0 42.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M55.0 42.0Q40.7 27.2 20.4 23.6Q34.7 38.5 55.0 42.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M55.0 42.0Q42.8 22.9 22.2 13.5Q34.4 32.6 55.0 42.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M55.0 42.0Q47.4 20.7 29.4 6.8Q37.0 28.2 55.0 42.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M55.0 42.0Q53.2 21.4 39.6 5.8Q41.4 26.4 55.0 42.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Cpath d='M55.0 42.0Q58.5 25.0 49.4 10.2Q45.9 27.2 55.0 42.0Z' fill='url(%23g)' stroke='%238E6D33' stroke-width='0.5'/%3E%3Ccircle cx='74.6' cy='29.6' r='1.1' fill='%234B5563'/%3E%3Cpath d='M80.4 31.4L87.6 33.4L80.6 35.4Z' fill='%23D9B77A'/%3E%3Cpath d='M85 34.6C88 38 92 40.6 97 41.6' fill='none' stroke='%23F0DDB0' stroke-width='.9' stroke-linecap='round'/%3E%3Cpath d='M86.8 37.6Q88.4 41.1 92.2 42.0Q90.6 38.5 86.8 37.6Z' fill='%23F0DDB0'/%3E%3Cpath d='M90.1 39.8Q94.0 40.2 96.7 37.4Q92.8 37.0 90.1 39.8Z' fill='%23F0DDB0'/%3E%3Cpath d='M95.1 40.5Q94.7 44.1 97.3 46.7Q97.7 43.1 95.1 40.5Z' fill='%23F0DDB0'/%3E%3C/g%3E%3C/svg%3E");
  --lz-olive: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 90'%3E%3Cpath d='M6 78.0Q67.5 45.0 144.0 27.0' fill='none' stroke='%2398A58A' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M14.3 74.1Q21.5 64.9 20.4 53.3Q13.2 62.5 14.3 74.1Z' fill='%2398A58A' fill-opacity='0.9'/%3E%3Cpath d='M28.0 65.1Q36.3 72.9 47.7 72.7Q39.4 64.9 28.0 65.1Z' fill='%2398A58A' fill-opacity='0.8'/%3E%3Cpath d='M43.8 61.0Q50.6 52.1 48.9 41.0Q42.2 50.0 43.8 61.0Z' fill='%2398A58A' fill-opacity='0.7'/%3E%3Cpath d='M57.9 54.0Q65.9 61.4 76.8 60.6Q68.8 53.2 57.9 54.0Z' fill='%2398A58A' fill-opacity='0.9'/%3E%3Cpath d='M73.4 50.0Q79.6 41.3 77.5 30.8Q71.2 39.5 73.4 50.0Z' fill='%2398A58A' fill-opacity='0.8'/%3E%3Cpath d='M87.7 44.2Q95.6 51.0 105.9 49.7Q98.1 42.8 87.7 44.2Z' fill='%2398A58A' fill-opacity='0.7'/%3E%3Cpath d='M102.9 39.8Q108.7 31.4 106.1 21.6Q100.2 30.0 102.9 39.8Z' fill='%2398A58A' fill-opacity='0.9'/%3E%3Cpath d='M117.6 35.0Q125.2 41.4 134.9 39.6Q127.4 33.1 117.6 35.0Z' fill='%2398A58A' fill-opacity='0.8'/%3E%3Cpath d='M132.3 30.2Q137.7 22.2 134.7 13.0Q129.2 21.0 132.3 30.2Z' fill='%2398A58A' fill-opacity='0.7'/%3E%3Cellipse cx='63.0' cy='64.5' rx='3.3' ry='4.3' fill='%237E8C6A' transform='rotate(-20 63.0 64.5)'/%3E%3Cellipse cx='99.0' cy='52.5' rx='3' ry='4' fill='%238E9B78' transform='rotate(-30 99.0 52.5)'/%3E%3C/svg%3E");
  --lz-fleuron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 24'%3E%3Cg fill='none' stroke='%23C9A96E' stroke-width='.8' stroke-linecap='round'%3E%3Cpath d='M6 12h44'/%3E%3Cpath d='M90 12h44'/%3E%3C/g%3E%3Cpath d='M50.7 12.4Q57.2 11.9 61.3 6.8Q54.8 7.3 50.7 12.4Z' fill='%2398A58A'/%3E%3Cpath d='M50.7 11.6Q54.8 16.7 61.3 17.2Q57.2 12.1 50.7 11.6Z' fill='%2398A58A'/%3E%3Cpath d='M89.3 12.4Q85.2 7.3 78.7 6.8Q82.8 11.9 89.3 12.4Z' fill='%2398A58A'/%3E%3Cpath d='M89.3 11.6Q82.8 12.1 78.7 17.2Q85.2 16.7 89.3 11.6Z' fill='%2398A58A'/%3E%3Cpath d='M70 4.5c.7 4.6 2.7 6.8 7.5 7.5-4.8.7-6.8 2.9-7.5 7.5-.7-4.6-2.7-6.8-7.5-7.5 4.8-.7 6.8-2.9 7.5-7.5z' fill='%23C9A96E'/%3E%3Ccircle cx='4' cy='12' r='1.4' fill='%23C9A96E'/%3E%3Ccircle cx='136' cy='12' r='1.4' fill='%23C9A96E'/%3E%3C/svg%3E");
  --lz-ornament: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 56'%3E%3Cg fill='none' stroke='%23C9A96E' stroke-width='.9' stroke-linecap='round'%3E%3Cpath d='M20 30h86'/%3E%3Cpath d='M174 30h86'/%3E%3C/g%3E%3Ccircle cx='16' cy='30' r='1.8' fill='%23C9A96E'/%3E%3Ccircle cx='264' cy='30' r='1.8' fill='%23C9A96E'/%3E%3Csvg x='108' y='4' width='64' height='44' viewBox='3 0 97 62'%3E%3Cpath d='M60.0 40.0Q50.7 28.6 36.2 26.3Q45.5 37.6 60.0 40.0Z' fill='%23E3EAF3' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q51.5 24.6 35.8 16.8Q44.3 32.2 60.0 40.0Z' fill='%23E3EAF3' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q54.7 22.0 40.7 9.6Q45.9 27.6 60.0 40.0Z' fill='%23E3EAF3' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q59.5 22.4 49.2 8.1Q49.7 25.7 60.0 40.0Z' fill='%23E3EAF3' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M60.0 40.0Q64.0 25.8 57.6 12.5Q53.6 26.7 60.0 40.0Z' fill='%23E3EAF3' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q18.6 50.8 12.2 60.3Q23.6 59.5 30.0 50.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q17.4 47.9 7.1 55.4Q19.7 57.6 30.0 50.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q18.5 44.3 6.5 48.6Q17.9 54.3 30.0 50.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M30.0 50.0Q22.0 41.8 10.6 42.9Q18.6 51.2 30.0 50.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M86 33.5L80.6 31.2C79.4 25.8 72.6 23.6 68.4 27.4C64.6 30.8 63.2 34.6 58 37.6C49 42.6 38 44.6 29 49C36 55 50 57.4 61 53.6C70 50.4 76.6 44.2 80.4 36.2Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M34 50.6C44 54.4 55 54.2 63 50.2C56 55.8 43 56.6 34 50.6Z' fill='%23E3EAF3'/%3E%3Cpath d='M55.0 42.0Q41.2 31.7 24.0 33.7Q37.8 44.0 55.0 42.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q40.7 27.2 20.4 23.6Q34.7 38.5 55.0 42.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q42.8 22.9 22.2 13.5Q34.4 32.6 55.0 42.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q47.4 20.7 29.4 6.8Q37.0 28.2 55.0 42.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q53.2 21.4 39.6 5.8Q41.4 26.4 55.0 42.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Cpath d='M55.0 42.0Q58.5 25.0 49.4 10.2Q45.9 27.2 55.0 42.0Z' fill='%23FFFFFF' stroke='%23AFC0D4' stroke-width='0.7'/%3E%3Ccircle cx='74.6' cy='29.6' r='1.1' fill='%234B5563'/%3E%3Cpath d='M80.4 31.4L87.6 33.4L80.6 35.4Z' fill='%23D9B77A'/%3E%3Cpath d='M85 34.6C88 38 92 40.6 97 41.6' fill='none' stroke='%2398A58A' stroke-width='.9' stroke-linecap='round'/%3E%3Cpath d='M86.8 37.6Q88.4 41.1 92.2 42.0Q90.6 38.5 86.8 37.6Z' fill='%2398A58A'/%3E%3Cpath d='M90.1 39.8Q94.0 40.2 96.7 37.4Q92.8 37.0 90.1 39.8Z' fill='%2398A58A'/%3E%3Cpath d='M95.1 40.5Q94.7 44.1 97.3 46.7Q97.7 43.1 95.1 40.5Z' fill='%2398A58A'/%3E%3C/svg%3E%3C/svg%3E");
  --lz-glass: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='72' viewBox='0 0 48 72'%3E%3Crect width='48' height='72' fill='%23FBFCFE'/%3E%3Cpath d='M0 -18l12 18-12 18-12-18z' fill='%238FB3D9' fill-opacity='0.4'/%3E%3Cpath d='M0 54l12 18-12 18-12-18z' fill='%238FB3D9' fill-opacity='0.4'/%3E%3Cpath d='M48 -18l12 18-12 18-12-18z' fill='%238FB3D9' fill-opacity='0.4'/%3E%3Cpath d='M48 54l12 18-12 18-12-18z' fill='%238FB3D9' fill-opacity='0.4'/%3E%3Cpath d='M12 0l12 18-12 18-12-18z' fill='%23E6D2A2' fill-opacity='0.6'/%3E%3Cpath d='M12 72l12 18-12 18-12-18z' fill='%23E6D2A2' fill-opacity='0.6'/%3E%3Cpath d='M60 0l12 18-12 18-12-18z' fill='%23E6D2A2' fill-opacity='0.6'/%3E%3Cpath d='M60 72l12 18-12 18-12-18z' fill='%23E6D2A2' fill-opacity='0.6'/%3E%3Cpath d='M24 18l12 18-12 18-12-18z' fill='%238FB3D9' fill-opacity='0.4'/%3E%3Cpath d='M36 36l12 18-12 18-12-18z' fill='%23E6D2A2' fill-opacity='0.6'/%3E%3Cpath d='M-36 0l48 72M-36 0l-48 72M-12 0l48 72M-12 0l-48 72M12 0l48 72M12 0l-48 72M36 0l48 72M36 0l-48 72M60 0l48 72M60 0l-48 72M84 0l48 72M84 0l-48 72' stroke='%23B89A62' stroke-opacity='.6' stroke-width='1.1'/%3E%3C/svg%3E");
  --lz-lattice: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='72' viewBox='0 0 48 72'%3E%3Cpath d='M-36 0l48 72M-36 0l-48 72M-12 0l48 72M-12 0l-48 72M12 0l48 72M12 0l-48 72M36 0l48 72M36 0l-48 72M60 0l48 72M60 0l-48 72M84 0l48 72M84 0l-48 72' stroke='%23C9A96E' stroke-opacity='.17' stroke-width='.8'/%3E%3Ccircle cx='12' cy='0' r='1.2' fill='%238FB3D9' fill-opacity='.4'/%3E%3Ccircle cx='36' cy='36' r='1.2' fill='%238FB3D9' fill-opacity='.4'/%3E%3Ccircle cx='12' cy='72' r='1.2' fill='%238FB3D9' fill-opacity='.4'/%3E%3C/svg%3E");
}
/* @recursos:fin */

/* =====================================================================
   PÁGINA · blanco luminoso, marfil y retícula de vitral
   ===================================================================== */
html[data-theme="luz"] {
  background-color: #F4F1EA;
  background-image:
    radial-gradient(80vw 60vh at 50% -10%, rgba(255, 247, 226, .9), transparent 70%),
    radial-gradient(60vw 60vh at 100% 100%, rgba(143, 179, 217, .22), transparent 70%),
    var(--lz-lattice);
}
html[data-theme="luz"] ::selection { background: color-mix(in srgb, var(--lz-mariano) 40%, transparent); }
html[data-theme="luz"] .inv-section.is-alt {
  background-image:
    linear-gradient(180deg, rgba(248, 244, 236, .4), rgba(248, 244, 236, 0) 30%),
    var(--lz-lattice);
}
/* cada sección clara recibe un halo de luz desde arriba */
html[data-theme="luz"] .inv-section:not(.is-alt):not(.inv-section--divider) {
  background-image: radial-gradient(90% 38% at 50% 0%, rgba(255, 244, 214, .5), transparent 70%);
}

/* ---------- tipografía ---------- */
html[data-theme="luz"] .inv-head::before {
  content: ''; display: block; width: 140px; height: 24px; margin: 0 auto 18px;
  background: var(--lz-fleuron) center / contain no-repeat;
}
html[data-theme="luz"] .inv-eyebrow { font-family: var(--font-body); font-weight: 400; font-size: .7rem; letter-spacing: .3em; color: var(--accent); }
html[data-theme="luz"] .inv-title { font-weight: 500; font-size: clamp(2.35rem, 10.4vw, 3.1rem); line-height: 1.04; letter-spacing: 0; color: var(--ink); }
html[data-theme="luz"] .inv-text { font-size: 1rem; line-height: 1.8; }
html[data-theme="luz"] .inv-head .inv-text { font-size: .98rem; }

/* ---------- tarjetas y botones ---------- */
html[data-theme="luz"] .inv-card {
  border-color: color-mix(in srgb, var(--accent-2) 36%, transparent);
  box-shadow: var(--shadow), inset 0 0 0 5px #FFFFFF, inset 0 0 0 6px color-mix(in srgb, var(--lz-mariano) 22%, transparent);
}
html[data-theme="luz"] .inv-btn {
  font-family: var(--font-body); font-weight: 400; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase;
  min-height: 50px; padding: .85em 1.6em;
  box-shadow: 0 12px 24px -14px color-mix(in srgb, var(--accent) 85%, transparent), inset 0 1px 0 rgba(255, 255, 255, .25);
}
html[data-theme="luz"] .inv-btn .inv-icon { width: 1.25em; height: 1.25em; }
html[data-theme="luz"] .inv-btn--ghost { box-shadow: none; border-width: 1px; }
html[data-theme="luz"] .inv-btn.is-draft { text-transform: none; letter-spacing: .02em; }

/* =====================================================================
   HERO · ventana en arco con vitral, rayos de luz y paloma
   ===================================================================== */
html[data-theme="luz"] .inv-hero { color: var(--ink); }
html[data-theme="luz"] .inv-hero--split,
html[data-theme="luz"] .inv-hero--type,
html[data-theme="luz"] .inv-hero--noimg,
html[data-theme="luz"] .inv-hero--framed {
  background-color: #FFFFFF;
  background-image:
    radial-gradient(110% 55% at 50% 0%, rgba(255, 243, 212, .75), rgba(255, 243, 212, 0) 65%),
    linear-gradient(180deg, #FFFFFF 40%, var(--bg-alt));
}
/* rayos que bajan desde la ventana */
html[data-theme="luz"] .inv-hero::before {
  content: ''; position: absolute; left: 50%; top: 0; z-index: 1; width: 190%; height: 92%; pointer-events: none;
  transform: translateX(-50%);
  background: var(--lz-rays);
  filter: blur(7px);
  -webkit-mask-image: linear-gradient(180deg, #000 30%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 30%, transparent 100%);
  opacity: 0; transition: opacity 2.4s var(--ease) .6s;
}
html[data-theme="luz"].is-revealed .inv-hero::before { opacity: .9; animation: lzRays 9s var(--ease-io) 3s infinite alternate; }
@keyframes lzRays { from { opacity: .9; transform: translateX(-50%) rotate(0); } to { opacity: .55; transform: translateX(-50%) rotate(1.4deg); } }
html[data-theme="luz"] .inv-hero--photo::before { display: none; }
/* paloma que cruza cerca de la ventana */
html[data-theme="luz"] .inv-hero::after {
  content: ''; position: absolute; top: calc(22px + 6svh); right: 6%; z-index: 3; width: 96px; height: 62px; pointer-events: none;
  background: var(--lz-dove) center / contain no-repeat;
  filter: drop-shadow(0 8px 10px rgba(69, 112, 158, .25));
  opacity: 0; transform: translate(-30px, 18px) rotate(-6deg);
  transition: opacity 1.4s var(--ease) 1.2s, transform 2.2s var(--ease) 1.2s;
}
html[data-theme="luz"].is-revealed .inv-hero::after { opacity: 1; transform: none; animation: lzFly 6s var(--ease-io) 3.4s infinite; }
@keyframes lzFly { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-7px) rotate(-2deg); } }

/* la ventana: foto en arco, banda de vitral y doble filete dorado */
html[data-theme="luz"] .inv-hero--split .inv-hero__media {
  width: calc(100% - 44px); max-width: 470px; margin-top: 22px; height: min(58svh, 560px);
  border-radius: 999px 999px 0 0; overflow: visible;
}
html[data-theme="luz"] .inv-hero--split .inv-hero__media::before {
  content: ''; position: absolute; inset: -11px -11px 0; z-index: -1; border-radius: 999px 999px 0 0;
  background: var(--lz-glass) center top / 30px 45px;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-2) 80%, transparent), 0 30px 60px -30px rgba(69, 112, 158, .55);
}
html[data-theme="luz"] .inv-hero--split .inv-hero__media::after {
  content: ''; position: absolute; inset: -1px -1px 0; z-index: 2; border-radius: 999px 999px 0 0; pointer-events: none;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-2) 90%, transparent), inset 0 0 40px rgba(255, 250, 235, .45);
}
html[data-theme="luz"] .inv-hero--split .inv-hero__img,
html[data-theme="luz"] .inv-hero--split .inv-hero__shade { border-radius: 999px 999px 0 0; }
html[data-theme="luz"] .inv-hero--split .inv-hero__img {
  transform: none; opacity: 0; filter: brightness(1.35) saturate(.7) blur(2px);
  transition: opacity 1.6s var(--ease) .1s, filter 2.4s var(--ease) .1s;
  background: var(--lz-cielo);
}
html[data-theme="luz"].is-revealed .inv-hero--split .inv-hero__img { opacity: 1; filter: none; }
html[data-theme="luz"] .inv-hero--split .inv-hero__shade { background: linear-gradient(180deg, rgba(255, 250, 238, .18), transparent 30%, transparent 70%, rgba(255, 255, 255, .3)); }

/* tarjeta del hero: velo blanco con filete */
html[data-theme="luz"] .inv-hero--split .inv-hero__content {
  z-index: 2; margin-top: -70px; width: calc(100% - 2 * 20px); max-width: 470px;
  padding: 34px 22px calc(80px + env(safe-area-inset-bottom));
  border-radius: 26px; background: rgba(255, 255, 255, .96);
  border: 1px solid color-mix(in srgb, var(--accent-2) 45%, transparent);
  box-shadow: 0 30px 60px -34px rgba(69, 112, 158, .5), inset 0 0 0 6px #FFFFFF, inset 0 0 0 7px color-mix(in srgb, var(--lz-mariano) 25%, transparent);
}
html[data-theme="luz"] .inv-hero__eyebrow { color: var(--accent); opacity: 1; letter-spacing: .38em; }
html[data-theme="luz"] .inv-hero__title {
  font-family: var(--font-display); font-weight: 500; font-size: clamp(4rem, 19vw, 5.6rem); line-height: .95; letter-spacing: .01em;
  color: var(--ink); margin: .05em 0 .12em;
  text-shadow: 0 0 34px rgba(201, 169, 110, .35);
}
html[data-theme="luz"] .inv-amp { color: var(--lz-oro-texto); }
html[data-theme="luz"] .inv-hero__subtitle { font-style: normal; font-weight: 400; font-size: 1.24rem; line-height: 1.4; color: var(--ink-soft); opacity: 1; max-width: 20rem; text-wrap: balance; }
html[data-theme="luz"] .inv-hero__date { font-family: var(--font-body); font-weight: 400; font-size: .7rem; letter-spacing: .26em; gap: 12px; margin-top: 1.3rem; }
html[data-theme="luz"] .inv-hero__date-side { border-color: color-mix(in srgb, var(--accent-2) 75%, transparent); }
html[data-theme="luz"] .inv-hero__date-day { font-weight: 400; font-size: 3.4rem; color: var(--accent); }
html[data-theme="luz"] .inv-hero__time { text-transform: none; letter-spacing: .14em; font-size: .78rem; opacity: 1; color: var(--ink-soft); }
html[data-theme="luz"] .inv-hero__place { color: var(--ink-soft); opacity: 1; letter-spacing: .06em; }
html[data-theme="luz"] .inv-hero__place .inv-icon { color: var(--accent); }
html[data-theme="luz"] .inv-hero__cue { color: var(--ink-soft); }
html[data-theme="luz"] .inv-hero--photo .inv-hero__cue, html[data-theme="luz"] .inv-hero--photo .inv-hero__place { color: inherit; }

/* pase del invitado */
html[data-theme="luz"] .inv-guest {
  border-radius: 50% 50% 18px 18px / 46px 46px 18px 18px; padding: 20px 26px 16px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 50%, transparent);
  background: linear-gradient(180deg, var(--lz-cielo), #FFFFFF 70%);
  box-shadow: 0 16px 34px -24px rgba(69, 112, 158, .6);
}
html[data-theme="luz"] .inv-guest__label { font-weight: 400; letter-spacing: .32em; color: var(--accent); opacity: 1; }
html[data-theme="luz"] .inv-guest__name { font-family: var(--font-display); font-weight: 600; font-size: 1.55rem; }
html[data-theme="luz"] .inv-guest__passes { color: var(--ink-soft); opacity: 1; }
html[data-theme="luz"] .inv-hero__guest { margin-top: 1.4rem; }

/* =====================================================================
   SECCIONES
   ===================================================================== */

/* insignia de vidrio: círculo celeste con filete dorado */
html[data-theme="luz"] .inv-event__icon,
html[data-theme="luz"] .inv-event.has-img .inv-event__icon,
html[data-theme="luz"] .inv-gift__icon,
html[data-theme="luz"] .inv-hotel__icon,
html[data-theme="luz"] .inv-note__icon,
html[data-theme="luz"] .inv-dress__icon,
html[data-theme="luz"] .inv-album__icon {
  color: var(--accent);
  background: radial-gradient(circle at 35% 28%, #FFFFFF 0%, var(--lz-cielo) 55%, #CFDDEE 100%);
  border: 1px solid color-mix(in srgb, var(--accent-2) 75%, transparent);
  box-shadow: 0 0 0 4px #FFFFFF, 0 0 0 5px color-mix(in srgb, var(--accent-2) 30%, transparent), 0 12px 22px -12px rgba(69, 112, 158, .55);
}

/* quote — el versículo, bajo la paloma y la luz */
html[data-theme="luz"] .inv-section--quote {
  padding-block: clamp(84px, 21vw, 124px);
  background-image:
    radial-gradient(70% 45% at 50% 18%, rgba(255, 244, 214, .7), transparent 72%),
    var(--lz-rays);
}
html[data-theme="luz"] .inv-quote { padding-top: 4.4rem; }
html[data-theme="luz"] .inv-quote__mark {
  top: -6px; width: 104px; height: 68px; font-size: 0; opacity: 1;
  background: var(--lz-dove) center / contain no-repeat;
  filter: drop-shadow(0 10px 12px rgba(69, 112, 158, .22));
}
html[data-theme="luz"] .inv-quote .inv-eyebrow { margin-bottom: 1rem; }
html[data-theme="luz"] .inv-quote__text p { font-style: normal; font-weight: 500; font-size: clamp(1.6rem, 7vw, 2.05rem); line-height: 1.34; color: var(--ink); }
html[data-theme="luz"] .inv-quote__author { font-weight: 400; letter-spacing: .3em; color: var(--accent); }
html[data-theme="luz"] .inv-quote__author::before { width: 64px; background: linear-gradient(90deg, transparent, var(--accent-2), transparent); }

/* people — papás y padrinos */
html[data-theme="luz"] .inv-people { gap: 26px; }
html[data-theme="luz"] .inv-people__group { padding: 30px 20px 24px; border-radius: 50% 50% 20px 20px / 70px 70px 20px 20px; background: #FFFFFF; border: 1px solid color-mix(in srgb, var(--accent-2) 40%, transparent); box-shadow: var(--shadow); }
html[data-theme="luz"] .inv-people__group:last-child { padding-bottom: 24px; }
html[data-theme="luz"] .inv-people__spark { display: none; }
html[data-theme="luz"] .inv-people__label { margin-bottom: .5rem; }
html[data-theme="luz"] .inv-people__names li { font-weight: 500; font-size: 1.5rem; line-height: 1.32; }

/* events — tarjetas-ventana */
html[data-theme="luz"] .inv-events { gap: 30px; }
html[data-theme="luz"] .inv-event { border-radius: 999px 999px 24px 24px; padding-bottom: 30px; }
html[data-theme="luz"] .inv-event:not(.has-img) { padding-top: 46px; }
html[data-theme="luz"] .inv-event__media { margin: 12px 12px 0; aspect-ratio: 4 / 3; border-radius: 999px 999px 8px 8px; }
html[data-theme="luz"] .inv-event__media::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(201, 169, 110, .7), inset 0 0 0 6px rgba(255, 255, 255, .55);
}
html[data-theme="luz"] .inv-event__icon { width: 58px; height: 58px; }
html[data-theme="luz"] .inv-event__name { font-weight: 600; font-size: 1.7rem; line-height: 1.15; }
html[data-theme="luz"] .inv-event__meta { font-size: .92rem; }
html[data-theme="luz"] .inv-event__meta li:first-child span { font-family: var(--font-display); font-weight: 600; font-size: 1.3rem; color: var(--ink); line-height: 1.1; }

/* timeline — ventanitas en arco */
html[data-theme="luz"] .inv-timeline::before { left: 26.5px; width: 1px; background: linear-gradient(180deg, transparent, var(--accent-2) 8%, var(--accent-2) 92%, transparent); }
html[data-theme="luz"] .inv-timeline__item { grid-template-columns: 54px 1fr; }
html[data-theme="luz"] .inv-section .inv-timeline__dot,
html[data-theme="luz"] .inv-section.is-alt .inv-timeline__dot {
  width: 54px; height: 62px; border-radius: 999px 999px 10px 10px; color: var(--accent);
  background: linear-gradient(180deg, #FFFFFF, var(--lz-cielo));
  border: 1px solid color-mix(in srgb, var(--accent-2) 80%, transparent);
  box-shadow: 0 0 0 5px var(--bg), 0 12px 20px -14px rgba(69, 112, 158, .7);
}
html[data-theme="luz"] .inv-section.is-alt .inv-timeline__dot { box-shadow: 0 0 0 5px var(--bg-alt), 0 12px 20px -14px rgba(69, 112, 158, .7); }
html[data-theme="luz"] .inv-timeline__body { padding-top: 8px; }
html[data-theme="luz"] .inv-timeline__time { font-weight: 400; letter-spacing: .2em; font-size: .72rem; }
html[data-theme="luz"] .inv-timeline__title { font-weight: 600; font-size: 1.5rem; }
html[data-theme="luz"] .inv-timeline__text { font-size: .92rem; }

/* dresscode */
html[data-theme="luz"] .inv-dress {
  position: relative; padding: 44px 22px 32px; border-radius: 50% 50% 24px 24px / 120px 120px 24px 24px; background: #FFFFFF;
  border: 1px solid color-mix(in srgb, var(--accent-2) 40%, transparent); box-shadow: var(--shadow);
}
html[data-theme="luz"] .inv-dress__code { font-weight: 600; font-size: clamp(2.2rem, 10vw, 2.7rem); color: var(--ink); }
html[data-theme="luz"] .inv-dress__label { font-weight: 400; letter-spacing: .28em; }
html[data-theme="luz"] .inv-chip { font-family: var(--font-body); border-color: color-mix(in srgb, var(--accent-2) 45%, transparent); background: #FFFFFF; }
html[data-theme="luz"] .inv-chip__swatch { box-shadow: inset 0 3px 5px rgba(255, 255, 255, .6), inset 0 -2px 4px rgba(0, 0, 0, .12), 0 0 0 1px rgba(201, 169, 110, .6); }

/* gifts */
html[data-theme="luz"] .inv-gifts { gap: 18px; }
html[data-theme="luz"] .inv-gift__icon, html[data-theme="luz"] .inv-hotel__icon { border-radius: 50%; }
html[data-theme="luz"] .inv-gift__title, html[data-theme="luz"] .inv-hotel__name { font-weight: 600; font-size: 1.45rem; }
html[data-theme="luz"] .inv-gift__copy { font-size: .95rem; letter-spacing: .12em; border-radius: 12px; background: var(--lz-cielo); border-color: color-mix(in srgb, var(--accent) 30%, transparent); color: var(--ink); }
html[data-theme="luz"] .inv-gift__actions .inv-btn, html[data-theme="luz"] .inv-hotel__actions .inv-btn { font-size: .72rem; }

/* note */
html[data-theme="luz"] .inv-note {
  border-radius: 50% 50% 22px 22px / 110px 110px 22px 22px; grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 44px 24px 30px;
  background: linear-gradient(180deg, var(--lz-cielo), #FFFFFF 60%); box-shadow: var(--shadow);
  border-color: color-mix(in srgb, var(--accent-2) 45%, transparent);
}
html[data-theme="luz"] .inv-note__title { font-weight: 600; font-size: 1.6rem; }

/* formularios */
html[data-theme="luz"] .inv-input { border-width: 1px; border-color: color-mix(in srgb, var(--accent) 22%, transparent); background: #FBFCFE; font-family: var(--font-body); }
html[data-theme="luz"] .inv-field__label { font-weight: 400; letter-spacing: .08em; }

/* faq */
html[data-theme="luz"] .inv-faq__item { border-radius: 16px; }
html[data-theme="luz"] .inv-faq__q { font-weight: 600; font-size: 1.3rem; }

/* wishes */
html[data-theme="luz"] .inv-wish { border-radius: 18px; }
html[data-theme="luz"] .inv-wish__msg p { font-weight: 500; font-size: 1.25rem; }

/* rsvp */
html[data-theme="luz"] .inv-rsvp__face { border-width: 1px; border-radius: 999px 999px 18px 18px; padding-top: 22px; background: linear-gradient(180deg, #FFFFFF, #FBFCFE); }
html[data-theme="luz"] .inv-rsvp__face-txt strong { font-family: var(--font-display); font-weight: 600; font-size: 1.35rem; }
html[data-theme="luz"] .inv-rsvp__face-ico .inv-sparkle path { fill: var(--accent-2); }
html[data-theme="luz"] .inv-rsvp__radio:checked + .inv-rsvp__face { background: linear-gradient(180deg, var(--lz-cielo), #FFFFFF); }
html[data-theme="luz"] .inv-stepper { border-width: 1px; background: #FBFCFE; }
html[data-theme="luz"] .inv-stepper__btn { border-width: 1px; }
html[data-theme="luz"] .inv-stepper__val { font-weight: 600; font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "lnum" 1, "tnum" 1; }
html[data-theme="luz"] .inv-rsvp__alt { font-weight: 400; }
html[data-theme="luz"] .inv-rsvp__badge { box-shadow: 0 0 0 8px color-mix(in srgb, var(--lz-mariano) 25%, transparent), 0 16px 34px -12px rgba(69, 112, 158, .6); }

/* divider y pie */
html[data-theme="luz"] .inv-divider.has-ornament { height: 56px; max-width: 300px; }
html[data-theme="luz"] .inv-footer {
  padding-top: 96px;
  background-image: radial-gradient(80% 50% at 50% 0%, rgba(255, 244, 214, .7), transparent 70%), var(--lz-lattice);
}
html[data-theme="luz"] .inv-footer__orn { width: 104px; height: 68px; color: transparent; background: var(--lz-dove) center / contain no-repeat; }
html[data-theme="luz"] .inv-footer__text { font-family: var(--font-display); font-weight: 500; font-size: 2.2rem; line-height: 1.15; text-wrap: balance; }
html[data-theme="luz"] .inv-footer__date { letter-spacing: .32em; color: var(--accent); }
/* sparkle() pinta el <path> con currentColor: se tiñe con color, no con fill */
html[data-theme="luz"] .env__card-spark, html[data-theme="luz"] .inv-wishes__spark { color: var(--accent-2); }

/* barra de acciones */
html[data-theme="luz"] .inv-actionbar { border-color: color-mix(in srgb, var(--accent-2) 35%, transparent); background: rgba(255, 255, 255, .86); }
html[data-theme="luz"] .inv-actionbar__btn { font-family: var(--font-body); font-weight: 400; letter-spacing: .03em; }
html[data-theme="luz"] .inv-sheet__title { font-weight: 600; }

/* =====================================================================
   INTRO · sobre blanco con listón de raso y lacre azul con paloma
   ===================================================================== */
html[data-theme="luz"] .inv-intro__eyebrow { font-weight: 400; letter-spacing: .38em; color: var(--ink); }
html[data-theme="luz"] .inv-intro__cta {
  background: var(--accent); color: #FFFFFF; font-weight: 400; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase;
  box-shadow: 0 16px 30px -14px rgba(69, 112, 158, .8), inset 0 1px 0 rgba(255, 255, 255, .25);
}
html[data-theme="luz"] .inv-intro__cta-ring { animation-name: lzCtaRing; }
@keyframes lzCtaRing { 0% { box-shadow: 0 0 0 0 rgba(69, 112, 158, .45); } 80%, 100% { box-shadow: 0 0 0 15px rgba(69, 112, 158, 0); } }
html[data-theme="luz"] .inv-intro__cta:focus-visible { outline-color: var(--accent); }

html[data-theme="luz"] .inv-intro--envelope {
  --paper: #FFFFFF;
  --paper-2: #FBFBFA;
  --paper-3: #E3E9F0;
}
html[data-theme="luz"] .inv-intro--envelope .inv-intro__bg {
  background-image:
    radial-gradient(120% 80% at 50% 45%, transparent 45%, rgba(69, 112, 158, .16) 100%),
    radial-gradient(46% 26% at 50% 0%, rgba(255, 252, 240, 1), rgba(255, 252, 240, 0) 100%),
    radial-gradient(80% 55% at 50% 0%, rgba(255, 240, 205, .85), transparent 72%),
    var(--lz-lattice);
}
/* rayos de luz desde lo alto */
html[data-theme="luz"] .inv-intro--envelope .inv-intro__bg::before {
  content: ''; position: absolute; left: 50%; top: 0; width: 220%; height: 100%; transform: translateX(-50%);
  background: var(--lz-rays); filter: blur(8px); opacity: .95;
  -webkit-mask-image: linear-gradient(180deg, #000 20%, transparent 95%); mask-image: linear-gradient(180deg, #000 20%, transparent 95%);
  animation: lzIntroRays 7s var(--ease-io) infinite alternate;
}
@keyframes lzIntroRays { from { opacity: .95; transform: translateX(-50%) rotate(-1deg); } to { opacity: .6; transform: translateX(-50%) rotate(1.5deg); } }
/* ramitas de olivo sobre la mesa, alrededor del sobre */
html[data-theme="luz"] .inv-intro--envelope .inv-intro__scene::before,
html[data-theme="luz"] .inv-intro--envelope .inv-intro__scene::after {
  content: ''; position: absolute; z-index: -1; pointer-events: none;
  background: var(--lz-olive) center / contain no-repeat;
  filter: drop-shadow(0 6px 6px rgba(52, 80, 120, .18));
  opacity: 0; transition: opacity 1.4s var(--ease) .6s;
}
html[data-theme="luz"] .inv-intro--envelope .inv-intro__scene::before { left: -10%; bottom: 13%; width: 70%; height: 26%; transform: rotate(-8deg); }
html[data-theme="luz"] .inv-intro--envelope .inv-intro__scene::after { right: -12%; top: 11%; width: 58%; height: 22%; transform: scale(-1, 1) rotate(-24deg); }
html[data-theme="luz"] .inv-intro--envelope.is-ready .inv-intro__scene::before,
html[data-theme="luz"] .inv-intro--envelope.is-ready .inv-intro__scene::after { opacity: .95; }
html[data-theme="luz"] .inv-intro--envelope.is-opening .inv-intro__scene::before,
html[data-theme="luz"] .inv-intro--envelope.is-opening .inv-intro__scene::after { opacity: 0; transition-delay: 1.2s; transition-duration: .7s; }
/* motas de luz flotando */
html[data-theme="luz"] .inv-intro--envelope::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image:
    radial-gradient(circle, rgba(255, 236, 190, .9) 0 1.5px, transparent 2.5px),
    radial-gradient(circle, rgba(255, 255, 255, .95) 0 1px, transparent 2px),
    radial-gradient(circle, rgba(201, 169, 110, .6) 0 1.2px, transparent 2.2px);
  background-size: 97px 131px, 61px 89px, 143px 167px;
  background-position: 10px 20px, 40px 70px, 90px 10px;
  -webkit-mask-image: radial-gradient(70% 60% at 50% 30%, #000, transparent);
  mask-image: radial-gradient(70% 60% at 50% 30%, #000, transparent);
  animation: lzMotes 26s linear infinite;
}
@keyframes lzMotes { to { background-position: 10px -242px, 40px -108px, 90px -324px; } }

/* papel blanco y forro de vitral */
html[data-theme="luz"] .env__back { box-shadow: 0 36px 60px -32px rgba(52, 80, 120, .45); }
html[data-theme="luz"] .env__flap-in {
  background: linear-gradient(180deg, rgba(40, 70, 110, .18), rgba(40, 70, 110, 0) 45%), var(--lz-glass) center top / 22px 33px;
}
html[data-theme="luz"] .env__card-in {
  border-color: color-mix(in srgb, var(--accent-2) 75%, transparent); border-radius: 999px 999px 5px 5px;
}
html[data-theme="luz"] .env__card-title { font-family: var(--font-display); font-weight: 500; font-size: calc(var(--w) * .12); }
html[data-theme="luz"] .env__card-eyebrow { color: var(--accent); opacity: 1; }
html[data-theme="luz"] .env__to-label { color: var(--accent); opacity: .9; }
html[data-theme="luz"] .env__to-name { font-family: var(--font-display); font-weight: 500; font-size: calc(var(--w) * .082); color: var(--ink); }
html[data-theme="luz"] .env__to { bottom: 6%; }
html[data-theme="luz"] .env { --w: min(88vw, 390px, 58vh); }
@media (min-width: 700px) { html[data-theme="luz"] .env { --w: min(54vw, 520px, 58vh); } }
/* listón de raso azul con puntas en V, bajo el lacre */
html[data-theme="luz"] .env::after {
  content: ''; position: absolute; left: 14%; right: 14%; top: 58.2%; height: 7.6%; z-index: 5; pointer-events: none;
  background:
    linear-gradient(180deg, #92B1D6 0%, #D4E3F3 30%, #EEF4FB 45%, #BCD2EA 70%, #8FAED3 100%);
  clip-path: polygon(0 0, 100% 0, 95% 50%, 100% 100%, 0 100%, 5% 50%);
  filter: drop-shadow(0 3px 3px rgba(52, 80, 120, .3));
  transition: opacity .45s var(--ease), transform .8s var(--ease);
}
html[data-theme="luz"] .env.s1::after { opacity: 0; transform: scaleX(.6); }
/* lacre azul mariano con paloma dorada en relieve */
html[data-theme="luz"] .env__seal { z-index: 6; width: 26%; filter: drop-shadow(0 6px 8px rgba(40, 70, 110, .38)); }
html[data-theme="luz"] .env__seal-face { background: radial-gradient(circle at 33% 27%, #C3D6EC 0%, var(--seal) 42%, #4D6F98 100%); }
html[data-theme="luz"] .env__seal-ring { inset: 11%; border: 1.3px solid rgba(233, 214, 166, .85); box-shadow: inset 0 2px 3px rgba(20, 40, 70, .4), 0 1px 0 rgba(255, 255, 255, .3); }
html[data-theme="luz"] .env__seal-ring::before {
  content: ''; position: absolute; inset: 14% 8% 16% 10%;
  background: var(--lz-sealdove) center / contain no-repeat;
}
html[data-theme="luz"] .env__seal-mono { font-size: 0; }

/* =====================================================================
   EFECTOS · motas de luz que suben suavemente (capa .inv-fx)
   ===================================================================== */
html[data-theme="luz"] .inv-fx::before {
  content: ''; position: absolute; inset: 0; opacity: 0;
  background-image:
    radial-gradient(circle, rgba(255, 232, 180, .95) 0 1.6px, rgba(255, 232, 180, 0) 3.5px),
    radial-gradient(circle, rgba(201, 169, 110, .7) 0 1.2px, rgba(201, 169, 110, 0) 3px),
    radial-gradient(circle, rgba(143, 179, 217, .8) 0 1.3px, rgba(143, 179, 217, 0) 3px);
  background-size: 131px 173px, 89px 211px, 157px 139px;
  background-position: 20px 40px, 60px 120px, 110px 10px;
}
html[data-theme="luz"].is-revealed .inv-fx::before { animation: lzFx 30s linear .8s 2 both; }
@keyframes lzFx {
  0% { opacity: 0; background-position: 20px 40px, 60px 120px, 110px 10px; }
  10%, 85% { opacity: .5; }
  100% { opacity: 0; background-position: 20px -652px, 60px -724px, 110px -546px; }
}

/* =====================================================================
   ESCRITORIO
   ===================================================================== */
@media (min-width: 900px) {
  html[data-theme="luz"] body.inv::before {
    content: ''; position: fixed; z-index: -1; left: 50%; top: 0; width: 100vw; height: 100vh; pointer-events: none;
    transform: translateX(-50%); background: var(--lz-rays); filter: blur(10px); opacity: .7;
    -webkit-mask-image: linear-gradient(180deg, #000 20%, transparent 90%); mask-image: linear-gradient(180deg, #000 20%, transparent 90%);
  }
  html[data-theme="luz"] body.inv::after {
    content: ''; position: fixed; z-index: -1; right: max(3vw, calc(50% - 600px)); top: 12vh; width: 180px; height: 116px; pointer-events: none;
    background: var(--lz-dove) center / contain no-repeat; opacity: .9;
  }
  html[data-theme="luz"] .inv-page { box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-2) 28%, transparent), 0 50px 120px -40px rgba(69, 112, 158, .35); }
}

/* =====================================================================
   MOVIMIENTO REDUCIDO
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  html[data-theme="luz"] .inv-fx::before,
  html[data-theme="luz"] .inv-intro--envelope::after { display: none; }
  html[data-theme="luz"] .inv-intro--envelope .inv-intro__bg::before,
  html[data-theme="luz"].is-revealed .inv-hero::before,
  html[data-theme="luz"].is-revealed .inv-hero::after { animation: none; }
  html[data-theme="luz"] .inv-hero--split .inv-hero__img { opacity: 1; filter: none; transition: none; }
}
