/* ============================================================
   Tema «posada» · Inolvidia — demo posada-navidad (Puebla, México)
   Posada mexicana: noche verde pino, piñata de siete picos, serie de luces,
   nochebuenas, ponche y papel de china. Rojo #B3261E, verde #1F5A3A, oro #E2B04A,
   crema #FFF6E5. Tipos: Fraunces (títulos) + Berkshire Swash (nombres) + Figtree (texto).
   Ilustraciones SVG propias (data URI) en variables --ps-*; decoración acotada bajo
   html[data-theme="posada"] y solo con clases públicas del motor.
   La intro «giftbox» se vuelve el aguinaldo: caja roja con listón dorado bajo las luces.
   ============================================================ */

:root {
  /* — contrato §5 — */
  --bg: #FFF6E5;
  --bg-alt: #FBEAD0;
  --surface: #FFFDF8;
  --ink: #2B1810;
  --ink-soft: #6B5143;
  --accent: #B3261E;
  --accent-2: #E2B04A;
  --accent-ink: #FFF8EC;
  --line: rgba(43, 24, 16, .14);
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-script: 'Berkshire Swash', 'Fraunces', Georgia, serif;
  --font-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --radius: 20px;
  --shadow: 0 16px 34px -20px rgba(92, 26, 14, .42);
  --hero-overlay: linear-gradient(180deg, rgba(18, 52, 34, .2), rgba(18, 52, 34, .78));
  --hero-ink: #FFF6E5;
  --intro-bg: #173F2A;
  --intro-ink: #FFF6E5;
  --seal: #B3261E;
  /* — ilustraciones SVG propias (generadas) — */
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' width='200' height='200'%3E%3Cpath d='M30 33C31.26 38.74 31.26 38.74 37 40C31.26 41.26 31.26 41.26 30 47C28.74 41.26 28.74 41.26 23 40C28.74 38.74 28.74 38.74 30 33Z' fill='%23E2B04A' fill-opacity='0.275'/%3E%3Cpath d='M150 105C150.9 109.1 150.9 109.1 155 110C150.9 110.9 150.9 110.9 150 115C149.1 110.9 149.1 110.9 145 110C149.1 109.1 149.1 109.1 150 105Z' fill='%23E2B04A' fill-opacity='0.250'/%3E%3Cpath d='M90 164C91.08 168.92 91.08 168.92 96 170C91.08 171.08 91.08 171.08 90 176C88.92 171.08 88.92 171.08 84 170C88.92 168.92 88.92 168.92 90 164Z' fill='%23E2B04A' fill-opacity='0.225'/%3E%3Cpath d='M185 16C185.72 19.28 185.72 19.28 189 20C185.72 20.72 185.72 20.72 185 24C184.28 20.72 184.28 20.72 181 20C184.28 19.28 184.28 19.28 185 16Z' fill='%23E2B04A' fill-opacity='0.250'/%3E%3Ccircle cx='110' cy='40' r='2.2' fill='%23B3261E' fill-opacity='0.175'/%3E%3Ccircle cx='40' cy='120' r='2' fill='%231F5A3A' fill-opacity='0.175'/%3E%3Ccircle cx='175' cy='175' r='2.4' fill='%23B3261E' fill-opacity='0.150'/%3E%3Ccircle cx='70' cy='80' r='1.6' fill='%23E2B04A' fill-opacity='0.250'/%3E%3C/svg%3E");
  --ornament: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 56' %3E%3Cpath d='M18 28H104M176 28H262' stroke='%23E2B04A' stroke-width='1.4'/%3E%3Ccircle cx='110' cy='28' r='2.2' fill='%231F5A3A'/%3E%3Ccircle cx='170' cy='28' r='2.2' fill='%231F5A3A'/%3E%3Ccircle cx='14' cy='28' r='2' fill='%23E2B04A'/%3E%3Ccircle cx='266' cy='28' r='2' fill='%23E2B04A'/%3E%3Cpath d='M140 6L143.9 19.89L157.2 14.28L148.77 26L161.45 32.9L147.04 33.61L149.55 47.82L140 37L130.45 47.82L132.96 33.61L118.55 32.9L131.23 26L122.8 14.28L136.1 19.89Z' fill='%23B3261E'/%3E%3Ccircle cx='140' cy='28' r='8.5' fill='%23E2B04A'/%3E%3Ccircle cx='140' cy='28' r='5' fill='none' stroke='%23B3261E' stroke-width='1.6' stroke-dasharray='2 2'/%3E%3C/svg%3E");
  --ps-stars: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' width='200' height='200'%3E%3Cpath d='M30 33C31.26 38.74 31.26 38.74 37 40C31.26 41.26 31.26 41.26 30 47C28.74 41.26 28.74 41.26 23 40C28.74 38.74 28.74 38.74 30 33Z' fill='%23E2B04A' fill-opacity='0.55'/%3E%3Cpath d='M150 105C150.9 109.1 150.9 109.1 155 110C150.9 110.9 150.9 110.9 150 115C149.1 110.9 149.1 110.9 145 110C149.1 109.1 149.1 109.1 150 105Z' fill='%23E2B04A' fill-opacity='0.5'/%3E%3Cpath d='M90 164C91.08 168.92 91.08 168.92 96 170C91.08 171.08 91.08 171.08 90 176C88.92 171.08 88.92 171.08 84 170C88.92 168.92 88.92 168.92 90 164Z' fill='%23E2B04A' fill-opacity='0.45'/%3E%3Cpath d='M185 16C185.72 19.28 185.72 19.28 189 20C185.72 20.72 185.72 20.72 185 24C184.28 20.72 184.28 20.72 181 20C184.28 19.28 184.28 19.28 185 16Z' fill='%23E2B04A' fill-opacity='0.5'/%3E%3Ccircle cx='110' cy='40' r='2.2' fill='%23B3261E' fill-opacity='.35'/%3E%3Ccircle cx='40' cy='120' r='2' fill='%231F5A3A' fill-opacity='.35'/%3E%3Ccircle cx='175' cy='175' r='2.4' fill='%23B3261E' fill-opacity='.3'/%3E%3Ccircle cx='70' cy='80' r='1.6' fill='%23E2B04A' fill-opacity='.5'/%3E%3C/svg%3E");
  --ps-pinata: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240' %3E%3Cdefs%3E%3CradialGradient id='g' cx='.38' cy='.34' r='.75'%3E%3Cstop offset='0' stop-color='%23FCE3A2'/%3E%3Cstop offset='.55' stop-color='%23E2B04A'/%3E%3Cstop offset='1' stop-color='%23B57D1E'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d='M120 18L115.87 3.58' stroke='%23E2B04A' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M120 18L120 3' stroke='%23C62E24' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M120 18L124.13 3.58' stroke='%23FFF6E5' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M199.75 56.4L208.45 44.18' stroke='%23E2B04A' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M199.75 56.4L211.48 47.05' stroke='%23C62E24' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M199.75 56.4L213.6 50.64' stroke='%23FFF6E5' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M219.44 142.7L234.42 141.88' stroke='%23E2B04A' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M219.44 142.7L234.06 146.04' stroke='%23C62E24' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M219.44 142.7L232.58 149.94' stroke='%23FFF6E5' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M164.26 211.9L174.24 223.1' stroke='%23E2B04A' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M164.26 211.9L170.77 225.41' stroke='%23C62E24' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M164.26 211.9L166.79 226.68' stroke='%23FFF6E5' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M75.74 211.9L73.21 226.68' stroke='%23E2B04A' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M75.74 211.9L69.23 225.41' stroke='%23C62E24' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M75.74 211.9L65.76 223.1' stroke='%23FFF6E5' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M20.56 142.7L7.42 149.94' stroke='%23E2B04A' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M20.56 142.7L5.94 146.04' stroke='%23C62E24' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M20.56 142.7L5.58 141.88' stroke='%23FFF6E5' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M40.25 56.4L26.4 50.64' stroke='%23E2B04A' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M40.25 56.4L28.52 47.05' stroke='%23C62E24' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M40.25 56.4L31.55 44.18' stroke='%23FFF6E5' stroke-width='3.2' stroke-linecap='round'/%3E%3Cpath d='M102.92 81.63L120 18L137.08 81.63Z' fill='%23C62E24'/%3E%3Cpath d='M102.92 81.63L120 18L120 82Z' fill='%23E5584C'/%3E%3Cpath d='M108.84 53.73L131.16 53.73' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M111.49 38.85L128.51 38.85' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M139.35 82.72L199.75 56.4L160.65 109.43Z' fill='%23E2B04A'/%3E%3Cpath d='M139.35 82.72L199.75 56.4L149.71 96.31Z' fill='%23F4D184'/%3E%3Cpath d='M164.85 69.96L178.77 87.41' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M178.14 62.74L188.76 76.06' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M161.21 111.88L219.44 142.7L153.61 145.19Z' fill='%232F7A4D'/%3E%3Cpath d='M161.21 111.88L219.44 142.7L157.05 128.46Z' fill='%234F9E6C'/%3E%3Cpath d='M187.09 123.86L182.12 145.63' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M201.01 129.76L197.23 146.36' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M152.04 147.16L164.26 211.9L121.26 161.98Z' fill='%23E4007C'/%3E%3Cpath d='M152.04 147.16L164.26 211.9L136.49 154.24Z' fill='%23F45BA9'/%3E%3Cpath d='M158.81 174.86L138.7 184.55' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M162.88 189.42L147.54 196.81' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M118.74 161.98L75.74 211.9L87.96 147.16Z' fill='%23C62E24'/%3E%3Cpath d='M118.74 161.98L75.74 211.9L103.51 154.24Z' fill='%23E5584C'/%3E%3Cpath d='M101.3 184.55L81.19 174.86' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M92.46 196.81L77.12 189.42' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M86.39 145.19L20.56 142.7L78.79 111.88Z' fill='%23E2B04A'/%3E%3Cpath d='M86.39 145.19L20.56 142.7L82.95 128.46Z' fill='%23F4D184'/%3E%3Cpath d='M57.88 145.63L52.91 123.86' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M42.77 146.36L38.99 129.76' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M79.35 109.43L40.25 56.4L100.65 82.72Z' fill='%232F7A4D'/%3E%3Cpath d='M79.35 109.43L40.25 56.4L90.29 96.31Z' fill='%234F9E6C'/%3E%3Cpath d='M61.23 87.41L75.15 69.96' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Cpath d='M51.24 76.06L61.86 62.74' stroke='%23FFF6E5' stroke-opacity='.55' stroke-width='2.4'/%3E%3Ccircle cx='120' cy='120' r='46' fill='url(%23g)'/%3E%3Ccircle cx='120' cy='120' r='37' fill='none' stroke='%23C62E24' stroke-width='5' stroke-dasharray='7 5'/%3E%3Ccircle cx='120' cy='120' r='25' fill='none' stroke='%232F7A4D' stroke-width='3.4' stroke-dasharray='3 4'/%3E%3Cellipse cx='105' cy='103' rx='11' ry='7' fill='%23fff' fill-opacity='.35' transform='rotate(-35 105 103)'/%3E%3C/svg%3E");
  --ps-lights: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 40' %3E%3Cpath d='M0 5Q25 18 50 5Q75 18 100 5Q125 18 150 5' fill='none' stroke='%239A7A3A' stroke-width='1.6'/%3E%3Ccircle cx='25' cy='27' r='13' fill='%23E5584C' fill-opacity='.18'/%3E%3Crect x='21.8' y='10' width='6.4' height='6' rx='1.2' fill='%233C3424'/%3E%3Cpath d='M25 15.5c4.6 0 6.4 5 6.4 9.2c0 5.2-3.4 9.8-6.4 9.8s-6.4-4.6-6.4-9.8c0-4.2 1.8-9.2 6.4-9.2z' fill='%23E5584C'/%3E%3Cellipse cx='22.8' cy='21.5' rx='1.6' ry='3' fill='%23fff' fill-opacity='.6'/%3E%3Ccircle cx='75' cy='27' r='13' fill='%23F4C95D' fill-opacity='.18'/%3E%3Crect x='71.8' y='10' width='6.4' height='6' rx='1.2' fill='%233C3424'/%3E%3Cpath d='M75 15.5c4.6 0 6.4 5 6.4 9.2c0 5.2-3.4 9.8-6.4 9.8s-6.4-4.6-6.4-9.8c0-4.2 1.8-9.2 6.4-9.2z' fill='%23F4C95D'/%3E%3Cellipse cx='72.8' cy='21.5' rx='1.6' ry='3' fill='%23fff' fill-opacity='.6'/%3E%3Ccircle cx='125' cy='27' r='13' fill='%234F9E6C' fill-opacity='.18'/%3E%3Crect x='121.8' y='10' width='6.4' height='6' rx='1.2' fill='%233C3424'/%3E%3Cpath d='M125 15.5c4.6 0 6.4 5 6.4 9.2c0 5.2-3.4 9.8-6.4 9.8s-6.4-4.6-6.4-9.8c0-4.2 1.8-9.2 6.4-9.2z' fill='%234F9E6C'/%3E%3Cellipse cx='122.8' cy='21.5' rx='1.6' ry='3' fill='%23fff' fill-opacity='.6'/%3E%3C/svg%3E");
  --ps-lights-glow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 40' %3E%3Cdefs%3E%3Cfilter id='b'%3E%3CfeGaussianBlur stdDeviation='4'/%3E%3C/filter%3E%3C/defs%3E%3Cg filter='url(%23b)'%3E%3Ccircle cx='25' cy='26' r='15' fill='%23E5584C' fill-opacity='.45'/%3E%3Ccircle cx='75' cy='26' r='15' fill='%23F4C95D' fill-opacity='.45'/%3E%3Ccircle cx='125' cy='26' r='15' fill='%234F9E6C' fill-opacity='.45'/%3E%3C/g%3E%3C/svg%3E");
  --ps-flower: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-52 -52 104 104' %3E%3Cpath d='M0 0C12 -15 13.200000000000001 -33 0 -50C-13.200000000000001 -33 -12 -15 0 0Z' fill='%232C6B45' transform='rotate(20)'/%3E%3Cpath d='M0 -6L0 -44' stroke='%231F5A3A' stroke-width='1.4' transform='rotate(20)'/%3E%3Cpath d='M0 0C12 -15 13.200000000000001 -33 0 -50C-13.200000000000001 -33 -12 -15 0 0Z' fill='%232C6B45' transform='rotate(140)'/%3E%3Cpath d='M0 -6L0 -44' stroke='%231F5A3A' stroke-width='1.4' transform='rotate(140)'/%3E%3Cpath d='M0 0C12 -15 13.200000000000001 -33 0 -50C-13.200000000000001 -33 -12 -15 0 0Z' fill='%232C6B45' transform='rotate(260)'/%3E%3Cpath d='M0 -6L0 -44' stroke='%231F5A3A' stroke-width='1.4' transform='rotate(260)'/%3E%3Cpath d='M0 0C11 -13.799999999999999 12.100000000000001 -30.360000000000003 0 -46C-12.100000000000001 -30.360000000000003 -11 -13.799999999999999 0 0Z' fill='%23B3261E' transform='rotate(0)'/%3E%3Cpath d='M0 -5L0 -38' stroke='%238E1B15' stroke-width='1.3' transform='rotate(0)'/%3E%3Cpath d='M0 0C11 -13.799999999999999 12.100000000000001 -30.360000000000003 0 -46C-12.100000000000001 -30.360000000000003 -11 -13.799999999999999 0 0Z' fill='%23B3261E' transform='rotate(60)'/%3E%3Cpath d='M0 -5L0 -38' stroke='%238E1B15' stroke-width='1.3' transform='rotate(60)'/%3E%3Cpath d='M0 0C11 -13.799999999999999 12.100000000000001 -30.360000000000003 0 -46C-12.100000000000001 -30.360000000000003 -11 -13.799999999999999 0 0Z' fill='%23B3261E' transform='rotate(120)'/%3E%3Cpath d='M0 -5L0 -38' stroke='%238E1B15' stroke-width='1.3' transform='rotate(120)'/%3E%3Cpath d='M0 0C11 -13.799999999999999 12.100000000000001 -30.360000000000003 0 -46C-12.100000000000001 -30.360000000000003 -11 -13.799999999999999 0 0Z' fill='%23B3261E' transform='rotate(180)'/%3E%3Cpath d='M0 -5L0 -38' stroke='%238E1B15' stroke-width='1.3' transform='rotate(180)'/%3E%3Cpath d='M0 0C11 -13.799999999999999 12.100000000000001 -30.360000000000003 0 -46C-12.100000000000001 -30.360000000000003 -11 -13.799999999999999 0 0Z' fill='%23B3261E' transform='rotate(240)'/%3E%3Cpath d='M0 -5L0 -38' stroke='%238E1B15' stroke-width='1.3' transform='rotate(240)'/%3E%3Cpath d='M0 0C11 -13.799999999999999 12.100000000000001 -30.360000000000003 0 -46C-12.100000000000001 -30.360000000000003 -11 -13.799999999999999 0 0Z' fill='%23B3261E' transform='rotate(300)'/%3E%3Cpath d='M0 -5L0 -38' stroke='%238E1B15' stroke-width='1.3' transform='rotate(300)'/%3E%3Cpath d='M0 0C8 -9 8.8 -19.8 0 -30C-8.8 -19.8 -8 -9 0 0Z' fill='%23D9362F' transform='rotate(30)'/%3E%3Cpath d='M0 0C8 -9 8.8 -19.8 0 -30C-8.8 -19.8 -8 -9 0 0Z' fill='%23D9362F' transform='rotate(90)'/%3E%3Cpath d='M0 0C8 -9 8.8 -19.8 0 -30C-8.8 -19.8 -8 -9 0 0Z' fill='%23D9362F' transform='rotate(150)'/%3E%3Cpath d='M0 0C8 -9 8.8 -19.8 0 -30C-8.8 -19.8 -8 -9 0 0Z' fill='%23D9362F' transform='rotate(210)'/%3E%3Cpath d='M0 0C8 -9 8.8 -19.8 0 -30C-8.8 -19.8 -8 -9 0 0Z' fill='%23D9362F' transform='rotate(270)'/%3E%3Cpath d='M0 0C8 -9 8.8 -19.8 0 -30C-8.8 -19.8 -8 -9 0 0Z' fill='%23D9362F' transform='rotate(330)'/%3E%3Ccircle cx='0' cy='0' r='2.6' fill='%23E8C547'/%3E%3Ccircle cx='5' cy='-2' r='2.6' fill='%237A9A3A'/%3E%3Ccircle cx='-4' cy='3' r='2.6' fill='%23E8C547'/%3E%3Ccircle cx='-3' cy='-5' r='2.6' fill='%237A9A3A'/%3E%3Ccircle cx='4' cy='5' r='2.6' fill='%23E8C547'/%3E%3Ccircle cx='-6' cy='-1' r='2.6' fill='%23E8C547'/%3E%3Ccircle cx='1' cy='7' r='2.6' fill='%237A9A3A'/%3E%3C/svg%3E");
  --ps-knit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 44' width='32' height='44' shape-rendering='crispEdges'%3E%3Crect x='0' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='4' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='8' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='12' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='16' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='20' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='24' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='28' y='0' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='0' y='4' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='4' y='4' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='4' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='12' y='4' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='16' y='4' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='20' y='4' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='4' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='28' y='4' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='4' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='12' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='16' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='20' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='28' y='8' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='12' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='4' y='12' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='12' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='12' y='12' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='16' y='12' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='20' y='12' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='12' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='28' y='12' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='16' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='4' y='16' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='16' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='12' y='16' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='16' y='16' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='20' y='16' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='16' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='28' y='16' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='20' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='4' y='20' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='8' y='20' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='12' y='20' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='16' y='20' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='20' y='20' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='24' y='20' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='28' y='20' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='24' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='4' y='24' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='24' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='12' y='24' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='16' y='24' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='20' y='24' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='24' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='28' y='24' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='28' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='4' y='28' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='28' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='12' y='28' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='16' y='28' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='20' y='28' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='28' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='28' y='28' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='4' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='12' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='16' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='20' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='28' y='32' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='36' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='4' y='36' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='8' y='36' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='12' y='36' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='16' y='36' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='20' y='36' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='24' y='36' width='4' height='4' fill='%23FFF6E5'/%3E%3Crect x='28' y='36' width='4' height='4' fill='%23B3261E'/%3E%3Crect x='0' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='4' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='8' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='12' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='16' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='20' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='24' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3Crect x='28' y='40' width='4' height='4' fill='%231F5A3A'/%3E%3C/svg%3E");
  /* — fin de ilustraciones — */

  /* — internas del tema — */
  --ps-red: #B3261E;
  --ps-red-deep: #8E1B15;
  --ps-green: #1F5A3A;
  --ps-pine: #173F2A;
  --ps-night: #102E1F;
  --ps-gold: #E2B04A;
  --ps-gold-deep: #9A6B12;
  --ps-cream: #FFF6E5;
  --ps-pin: min(46vw, 214px);
}

/* ---------- fondo general (escritorio: la noche de posada a los lados) ---------- */
html[data-theme="posada"] {
  background-color: var(--ps-night);
  background-image:
    radial-gradient(60vw 60vh at 10% 10%, rgba(226, 176, 74, .16), transparent 70%),
    radial-gradient(60vw 60vh at 92% 92%, rgba(179, 38, 30, .22), transparent 70%),
    var(--ps-stars);
  background-size: auto, auto, 260px;
}
html[data-theme="posada"] ::selection { background: var(--ps-gold); color: var(--ink); }
/* piñata y nochebuena a los lados de la columna (solo pantallas anchas) */
html[data-theme="posada"] body.inv::before,
html[data-theme="posada"] body.inv::after {
  content: ''; position: fixed; z-index: -1; pointer-events: none; background: center / contain no-repeat;
}
html[data-theme="posada"] body.inv::before {
  width: 250px; height: calc(250px + 9vh); left: calc(50% - 280px - 290px); top: 0;
  background:
    var(--ps-pinata) center bottom / 250px 250px no-repeat,
    linear-gradient(#9A7A3A, #9A7A3A) center top / 2px calc(9vh + 20px) no-repeat;
  filter: drop-shadow(0 24px 30px rgba(0, 0, 0, .35));
  transform-origin: 50% 0;
  animation: psSwing 6s ease-in-out infinite;
}
html[data-theme="posada"] body.inv::after {
  width: 200px; aspect-ratio: 1; right: calc(50% - 280px - 240px); bottom: 10vh;
  background-image: var(--ps-flower);
  animation: psSway 9s ease-in-out infinite;
}
@keyframes psSwing { 0%, 100% { rotate: -3deg; } 50% { rotate: 3deg; } }
@keyframes psSway { 0%, 100% { rotate: -4deg; } 50% { rotate: 4deg; } }
@keyframes psTwinkle { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

/* ---------- tipografía ---------- */
html[data-theme="posada"] .inv-eyebrow { font-weight: 700; letter-spacing: .24em; color: var(--ps-red); }
html[data-theme="posada"] .inv-head .inv-eyebrow::before,
html[data-theme="posada"] .inv-head .inv-eyebrow::after {
  content: '✦'; display: inline-block; margin: 0 .6em; color: var(--ps-gold); letter-spacing: 0; transform: translateY(-1px);
}
html[data-theme="posada"] .inv-title { font-weight: 600; letter-spacing: -.02em; color: var(--ps-green); }
html[data-theme="posada"] .inv-text { color: var(--ink-soft); }

/* ---------- secciones: papel crema con destellos dorados ---------- */
html[data-theme="posada"] .inv-section { background-image: var(--pattern); background-size: 200px; }
html[data-theme="posada"] .inv-section.is-alt {
  background-image: radial-gradient(90% 40% at 50% 0%, rgba(226, 176, 74, .18), transparent 70%), var(--pattern);
  background-size: auto, 200px;
}
/* serie de luces que cuelga arriba de algunas secciones */
html[data-theme="posada"] :is(.inv-section--countdown, .inv-section--quiz, .inv-rsvp)::before {
  content: ''; position: absolute; left: 0; right: 0; top: -2px; height: 40px; pointer-events: none;
  background: var(--ps-lights) 0 0 / 150px 40px repeat-x;
}
html[data-theme="posada"] :is(.inv-section--countdown, .inv-section--quiz, .inv-rsvp)::after {
  content: ''; position: absolute; left: 0; right: 0; top: -2px; height: 40px; pointer-events: none;
  background: var(--ps-lights-glow) 0 0 / 150px 40px repeat-x;
  animation: psTwinkle 2.6s ease-in-out infinite;
}

/* ============================================================
   HERO — la piñata cuelga bajo la serie de luces, en la noche
   ============================================================ */
html[data-theme="posada"] .inv-hero--type,
html[data-theme="posada"] .inv-hero--noimg {
  justify-content: flex-start;
  color: var(--ps-cream);
  background-color: var(--ps-pine);
  background-image:
    radial-gradient(70% 34% at 50% 18%, rgba(226, 176, 74, .3), transparent 70%),
    radial-gradient(90% 40% at 50% 104%, rgba(179, 38, 30, .38), transparent 70%),
    var(--ps-stars),
    linear-gradient(180deg, var(--ps-night), var(--ps-pine) 45%, #1B4A31);
  background-size: auto, auto, 220px, auto;
}
/* luces arriba (dos capas: bombillas y halo que titila) */
html[data-theme="posada"] .inv-hero::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 40px; z-index: 0; pointer-events: none;
  background: var(--ps-lights-glow) 0 0 / 150px 40px repeat-x, var(--ps-lights) 0 0 / 150px 40px repeat-x;
}
/* nochebuenas en las esquinas de abajo */
html[data-theme="posada"] .inv-hero::after {
  content: ''; position: absolute; left: -46px; right: -46px; bottom: -34px; height: 150px; z-index: -1; pointer-events: none;
  background: var(--ps-flower) left bottom / 150px auto no-repeat, var(--ps-flower) right 6px bottom 10px / 120px auto no-repeat;
  opacity: .95;
}
html[data-theme="posada"] .inv-hero__art { z-index: 0; }
html[data-theme="posada"] .inv-hero__art::before {
  left: 50%; top: 22px; width: var(--ps-pin); height: calc(var(--ps-pin) + 38px); aspect-ratio: auto;
  border: 0; border-radius: 0; box-shadow: none;
  transform: translateX(-50%); transform-origin: 50% 0;
  background:
    var(--ps-pinata) center bottom / 100% auto no-repeat,
    linear-gradient(#9A7A3A, #9A7A3A) center top / 2px 52px no-repeat;
  filter: drop-shadow(0 18px 22px rgba(0, 0, 0, .35));
  animation: psPinata 5s ease-in-out infinite;
}
@keyframes psPinata { 0%, 100% { transform: translateX(-50%) rotate(-3.5deg); } 50% { transform: translateX(-50%) rotate(3.5deg); } }
html[data-theme="posada"] .inv-hero__art::after {
  content: ''; position: absolute; left: 50%; top: calc(38px + var(--ps-pin) * .5); width: calc(var(--ps-pin) * 1.5); aspect-ratio: 1;
  transform: translate(-50%, -50%); border-radius: 50%; z-index: -1;
  background: radial-gradient(closest-side, rgba(242, 193, 78, .35), rgba(242, 193, 78, .08) 60%, transparent);
}
html[data-theme="posada"] .inv-hero__art-spark { color: var(--ps-gold); }
html[data-theme="posada"] .inv-hero__art-spark.s1 { top: 24%; left: 10%; width: 26px; }
html[data-theme="posada"] .inv-hero__art-spark.s2 { top: 10%; right: 12%; width: 18px; }
html[data-theme="posada"] .inv-hero__art-spark.s3 { top: 30%; bottom: auto; right: 8%; width: 22px; }
html[data-theme="posada"] .inv-hero--type .inv-hero__content,
html[data-theme="posada"] .inv-hero--noimg .inv-hero__content { padding-top: calc(var(--ps-pin) + 64px); z-index: 1; }
html[data-theme="posada"] .inv-hero__eyebrow { color: var(--ps-gold); opacity: 1; letter-spacing: .26em; }
html[data-theme="posada"] .inv-hero__title {
  font-size: clamp(2.9rem, 13.4vw, 4.3rem); line-height: 1.02; color: var(--ps-cream);
  text-shadow: 0 3px 0 var(--ps-red-deep), 0 10px 26px rgba(0, 0, 0, .4);
  margin: .12em 0 .3em;
}
html[data-theme="posada"] .inv-hero .inv-amp { color: var(--ps-gold); }
html[data-theme="posada"] .inv-hero__subtitle { font-size: 1.12rem; opacity: 1; color: #F4E7CF; max-width: 20rem; }
html[data-theme="posada"] .inv-hero__date { margin-top: 1.3rem; }
html[data-theme="posada"] .inv-hero__date-side { border-color: rgba(226, 176, 74, .7); color: var(--ps-cream); }
html[data-theme="posada"] .inv-hero__date-day { font-family: var(--font-display); font-weight: 600; color: var(--ps-gold); }
html[data-theme="posada"] .inv-hero__time { color: var(--ps-gold); opacity: 1; }
html[data-theme="posada"] .inv-hero__place { opacity: 1; color: #F4E7CF; }
html[data-theme="posada"] .inv-hero__place .inv-icon { color: var(--ps-gold); }
html[data-theme="posada"] .inv-hero .inv-guest {
  background: rgba(16, 46, 31, .72); color: var(--ps-cream);
  border: 1.5px dashed rgba(226, 176, 74, .75); box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .6);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
html[data-theme="posada"] .inv-hero .inv-guest__label { color: var(--ps-gold); opacity: 1; }
html[data-theme="posada"] .inv-guest__name { font-family: var(--font-script); font-weight: 400; font-size: 1.5rem; }
html[data-theme="posada"] .inv-hero__cue { color: var(--ps-cream); }
html[data-theme="posada"] .inv-hero :focus-visible { outline-color: var(--ps-gold); }

/* ============================================================
   SECCIONES
   ============================================================ */
html[data-theme="posada"] .inv-btn { font-weight: 700; letter-spacing: .02em; }
html[data-theme="posada"] .inv-btn:not(.inv-btn--ghost):not(.is-draft):not(.inv-btn--wa) {
  box-shadow: 0 3px 0 var(--ps-red-deep), 0 14px 24px -14px rgba(142, 27, 21, .8);
}

/* historia: capitular roja y firma con pluma */
html[data-theme="posada"] .inv-story__body .inv-text:first-child::first-letter { color: var(--ps-red); font-weight: 700; }
html[data-theme="posada"] .inv-story__sig { color: var(--ps-red); font-size: 1.9rem; }

/* cuenta regresiva: esferas que cuelgan de la serie */
html[data-theme="posada"] .inv-section--countdown { padding-top: clamp(84px, 20vw, 112px); }
html[data-theme="posada"] .inv-countdown { gap: 12px; padding-top: 22px; }
html[data-theme="posada"] .inv-countdown__unit {
  --o: var(--ps-red); --o-ink: var(--ps-cream);
  overflow: visible; aspect-ratio: 1; justify-content: center; gap: 2px; padding: 4px 2px 0;
  border-radius: 50%; border: 0; color: var(--o-ink);
  background:
    radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 30%),
    radial-gradient(circle at 60% 70%, transparent 55%, rgba(0, 0, 0, .2)),
    var(--o);
  box-shadow: 0 12px 20px -10px rgba(60, 14, 8, .55);
}
html[data-theme="posada"] .inv-countdown__unit:nth-child(2) { --o: var(--ps-green); }
html[data-theme="posada"] .inv-countdown__unit:nth-child(3) { --o: var(--ps-gold); --o-ink: #3A2408; }
html[data-theme="posada"] .inv-countdown__unit:nth-child(4) { --o: #C2185B; }
/* tapita dorada y cordón */
html[data-theme="posada"] .inv-countdown__unit::before {
  left: 50%; right: auto; top: -9px; width: 16px; height: 9px; opacity: 1; transform: translateX(-50%);
  border-radius: 3px 3px 1px 1px;
  background: linear-gradient(90deg, var(--ps-gold-deep), #F4D184 50%, var(--ps-gold-deep));
}
html[data-theme="posada"] .inv-countdown__unit::after {
  content: ''; position: absolute; left: 50%; bottom: calc(100% + 9px); width: 1.5px; height: 22px; transform: translateX(-50%);
  background: #9A7A3A;
}
html[data-theme="posada"] .inv-countdown__num { color: inherit; font-weight: 600; font-size: clamp(1.6rem, 7.6vw, 2.2rem); }
html[data-theme="posada"] .inv-countdown__lbl { color: inherit; opacity: .9; font-size: .58rem; letter-spacing: .16em; }
html[data-theme="posada"] .inv-countdown.reveal.is-in .inv-countdown__unit { animation: psOrn 4s ease-in-out infinite; transform-origin: 50% -30px; }
html[data-theme="posada"] .inv-countdown__unit:nth-child(2n) { animation-delay: -2s !important; }
@keyframes psOrn { 0%, 100% { rotate: -2deg; } 50% { rotate: 2deg; } }
html[data-theme="posada"] .inv-countdown__date { color: var(--ps-green); font-weight: 600; }
html[data-theme="posada"] .inv-countdown__done { font-family: var(--font-script); font-style: normal; color: var(--ps-red); }

/* lugar: tarjeta con nochebuena en la esquina */
html[data-theme="posada"] .inv-event { overflow: visible; border: 1.5px solid rgba(179, 38, 30, .18); }
html[data-theme="posada"] .inv-event::after {
  content: ''; position: absolute; right: -18px; top: -26px; width: 92px; aspect-ratio: 1; pointer-events: none;
  background: var(--ps-flower) center / contain no-repeat; rotate: 14deg;
}
html[data-theme="posada"] .inv-event__icon {
  width: 66px; height: 66px; color: var(--ps-cream); background: var(--ps-red); border: 0;
  box-shadow: 0 0 0 6px rgba(226, 176, 74, .3);
}
html[data-theme="posada"] .inv-event__name { font-weight: 600; color: var(--ps-green); }
html[data-theme="posada"] .inv-event__meta .inv-icon { color: var(--ps-red); }

/* itinerario: esferas sobre una guirnalda dorada */
html[data-theme="posada"] .inv-timeline::before {
  width: 3px; left: 26.5px;
  background: repeating-linear-gradient(180deg, var(--ps-gold) 0 6px, transparent 6px 10px, var(--ps-green) 10px 16px, transparent 16px 20px);
}
html[data-theme="posada"] .inv-timeline__dot {
  --o: var(--ps-red);
  border: 0; color: var(--ps-cream);
  background: radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .5), transparent 34%), var(--o);
  box-shadow: 0 0 0 6px var(--bg), inset -6px -8px 0 rgba(0, 0, 0, .14), 0 10px 18px -10px rgba(60, 14, 8, .6);
}
html[data-theme="posada"] .inv-section.is-alt .inv-timeline__dot { box-shadow: 0 0 0 6px var(--bg-alt), inset -6px -8px 0 rgba(0, 0, 0, .14), 0 10px 18px -10px rgba(60, 14, 8, .6); }
html[data-theme="posada"] .inv-timeline__dot::before {
  content: ''; position: absolute; left: 50%; top: -5px; width: 14px; height: 8px; transform: translateX(-50%); border-radius: 3px;
  background: linear-gradient(90deg, var(--ps-gold-deep), #F4D184 50%, var(--ps-gold-deep));
}
html[data-theme="posada"] .inv-timeline__item:nth-child(3n + 2) .inv-timeline__dot { --o: var(--ps-green); }
html[data-theme="posada"] .inv-timeline__item:nth-child(3n) .inv-timeline__dot { --o: var(--ps-gold); color: #3A2408; }
html[data-theme="posada"] .inv-timeline__time { color: var(--ps-red); }
html[data-theme="posada"] .inv-timeline__title { font-weight: 600; color: var(--ps-green); }

/* aviso del intercambio: marco de bastón de caramelo */
html[data-theme="posada"] .inv-note {
  border: 7px solid transparent; border-radius: 22px; box-shadow: var(--shadow);
  background:
    linear-gradient(var(--surface), var(--surface)) padding-box,
    repeating-linear-gradient(-45deg, var(--ps-red) 0 9px, var(--ps-cream) 9px 18px) border-box;
}
html[data-theme="posada"] .inv-note__icon { background: var(--ps-red); color: var(--ps-cream); box-shadow: 0 0 0 5px rgba(179, 38, 30, .14); }
html[data-theme="posada"] .inv-note__title { font-weight: 600; color: var(--ps-green); }

/* código de vestimenta: tarjeta con tejido de suéter navideño */
html[data-theme="posada"] .inv-dress {
  padding: 62px 22px 62px; border-radius: var(--radius); overflow: hidden;
  background:
    var(--ps-knit) 0 0 / 24px 33px repeat-x,
    var(--ps-knit) 0 100% / 24px 33px repeat-x,
    var(--surface);
  border: 1px solid var(--line); box-shadow: var(--shadow);
}
html[data-theme="posada"] .inv-dress__icon { color: var(--ps-cream); background: var(--ps-green); border: 0; box-shadow: 0 0 0 6px rgba(31, 90, 58, .14); }
html[data-theme="posada"] .inv-dress__code { font-family: var(--font-script); color: var(--ps-red); font-size: clamp(2rem, 9vw, 2.5rem); }
html[data-theme="posada"] .inv-dress__label { color: var(--ps-green); }

/* juegos y playlist: tarjetas con filo dorado */
html[data-theme="posada"] .inv-game,
html[data-theme="posada"] .inv-playlist__form { border: 1.5px solid rgba(226, 176, 74, .55); }
html[data-theme="posada"] .inv-section--quiz { padding-top: clamp(84px, 20vw, 112px); }

/* muro de deseos: tarjetitas con listón */
html[data-theme="posada"] .inv-wish { border-left: 5px solid var(--ps-red); }
html[data-theme="posada"] .inv-wish:nth-child(3n + 2) { border-left-color: var(--ps-green); background: color-mix(in srgb, var(--ps-gold) 12%, var(--surface)); }
html[data-theme="posada"] .inv-wish:nth-child(3n) { border-left-color: var(--ps-gold); }
html[data-theme="posada"] .inv-wish::before { color: var(--ps-red); opacity: .3; }
html[data-theme="posada"] .inv-wishes__spark { color: var(--ps-gold); }

/* preguntas */
html[data-theme="posada"] .inv-faq__q { font-weight: 600; color: var(--ps-green); }
html[data-theme="posada"] .inv-faq__item.is-open { border-color: rgba(179, 38, 30, .3); }

/* confirmación */
html[data-theme="posada"] .inv-section.inv-rsvp { padding-top: clamp(84px, 20vw, 112px); }
html[data-theme="posada"] .inv-rsvp__form { border: 1.5px solid rgba(226, 176, 74, .55); }

/* pie: la noche vuelve con luces y nochebuenas */
html[data-theme="posada"] .inv-footer {
  overflow: hidden; padding-top: 96px; color: var(--ps-cream);
  background:
    var(--ps-lights-glow) 0 0 / 150px 40px repeat-x,
    var(--ps-lights) 0 0 / 150px 40px repeat-x,
    radial-gradient(80% 50% at 50% 100%, rgba(179, 38, 30, .35), transparent 70%),
    var(--ps-stars),
    var(--ps-pine);
  background-size: 150px 40px, 150px 40px, auto, 220px, auto;
}
html[data-theme="posada"] .inv-footer::before,
html[data-theme="posada"] .inv-footer::after {
  content: ''; position: absolute; bottom: calc(-30px + var(--bar-space) * .3); width: 130px; aspect-ratio: 1; pointer-events: none;
  background: var(--ps-flower) center / contain no-repeat; opacity: .9;
}
html[data-theme="posada"] .inv-footer::before { left: -40px; rotate: -18deg; }
html[data-theme="posada"] .inv-footer::after { right: -44px; rotate: 22deg; width: 110px; }
html[data-theme="posada"] .inv-footer__inner,
html[data-theme="posada"] .inv-footer__links { position: relative; z-index: 1; }
html[data-theme="posada"] .inv-footer__orn { color: var(--ps-gold); }
html[data-theme="posada"] .inv-footer__text { color: var(--ps-cream); font-size: clamp(2.2rem, 10vw, 2.8rem); text-shadow: 0 3px 0 var(--ps-red-deep); }
html[data-theme="posada"] .inv-footer__date { color: #E9D9BC; }
html[data-theme="posada"] .inv-footer__credit { color: #E9D9BC; }
html[data-theme="posada"] .inv-footer__credit:hover { color: #fff; border-color: rgba(255, 246, 229, .3); }
html[data-theme="posada"] .inv-footer__brand { color: #fff; }
html[data-theme="posada"] .inv-footer__access { color: #F4E7CF; border-color: rgba(255, 246, 229, .35); }
html[data-theme="posada"] .inv-footer__access:hover { color: #fff; border-color: #fff; }
html[data-theme="posada"] .inv-footer :focus-visible { outline-color: var(--ps-gold); }

/* barra de acciones */
html[data-theme="posada"] .inv-actionbar { background: rgba(255, 250, 240, .9); border-color: rgba(179, 38, 30, .16); }
html[data-theme="posada"] .inv-actionbar__btn:not(.is-primary) .inv-icon { color: var(--ps-green); }

/* ============================================================
   INTRO «giftbox» — el aguinaldo: caja roja con listón dorado,
   bajo una serie de luces, en la noche verde pino con nochebuenas
   ============================================================ */
html[data-theme="posada"] .inv-intro--giftbox .inv-intro__bg {
  background-image:
    radial-gradient(46% 30% at 50% 50%, rgba(242, 193, 78, .26), transparent 70%),
    radial-gradient(90% 40% at 50% 108%, rgba(179, 38, 30, .45), transparent 70%),
    radial-gradient(120% 80% at 50% 45%, transparent 55%, rgba(5, 20, 12, .6) 100%),
    var(--ps-stars);
  background-size: auto, auto, auto, 220px;
}
html[data-theme="posada"] .inv-intro--giftbox .inv-intro__bg::before {
  content: ''; position: absolute; inset: 0;
  background:
    var(--ps-lights) 0 0 / 150px 40px repeat-x,
    var(--ps-flower) left -62px bottom -30px / 150px auto no-repeat,
    var(--ps-flower) right -48px bottom 64px / 108px auto no-repeat;
}
html[data-theme="posada"] .inv-intro--giftbox .inv-intro__bg::after {
  mix-blend-mode: normal; opacity: 1;
  background: var(--ps-lights-glow) 0 0 / 150px 40px repeat-x;
  animation: psTwinkle 2.6s ease-in-out infinite;
}
html[data-theme="posada"] .inv-intro--giftbox .inv-intro__eyebrow { color: var(--ps-gold); margin-top: 26px; }
html[data-theme="posada"] .gift {
  --box: var(--ps-red);
  --rib: var(--ps-gold);
  --rib-hi: #F7DC98;
  --rib-lo: #A8761B;
}
html[data-theme="posada"] .gift__rays { background: repeating-conic-gradient(from 0deg, rgba(242, 193, 78, .4) 0 5deg, transparent 5deg 16deg); opacity: .32; }
html[data-theme="posada"] .gift__box::before { opacity: .9; background-image: var(--ps-stars); background-size: 120px; }
html[data-theme="posada"] .gift__lid::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit; opacity: .5;
  background: var(--ps-stars) 0 0 / 120px;
}
html[data-theme="posada"] .gift__mono { font-size: calc(var(--w) * .1); color: var(--ps-red); background: radial-gradient(circle at 40% 30%, #fff, var(--ps-cream)); }
html[data-theme="posada"] .gift__tag { color: var(--ink); background: linear-gradient(160deg, #fff, var(--ps-cream)); }
html[data-theme="posada"] .gift__tag-label { color: var(--ps-red); opacity: 1; }
html[data-theme="posada"] .gift__tag-name { font-size: calc(var(--w) * .085); color: var(--ps-green); }
html[data-theme="posada"] .gift__shadow { background: radial-gradient(closest-side, rgba(0, 0, 0, .45), transparent); }
html[data-theme="posada"] .inv-intro--giftbox .inv-intro__cta {
  background: var(--ps-gold); color: #2A1A06; font-weight: 700;
  box-shadow: 0 4px 0 #A8761B, 0 18px 30px -12px rgba(242, 193, 78, .55);
}
html[data-theme="posada"] .inv-intro--giftbox .inv-intro__cta:focus-visible { outline-color: var(--ps-gold); }
html[data-theme="posada"] .inv-intro--giftbox .inv-intro__cta-ring { animation-name: psCtaRing; }
@keyframes psCtaRing { 0% { box-shadow: 0 0 0 0 rgba(242, 193, 78, .6); } 80%, 100% { box-shadow: 0 0 0 16px transparent; } }

/* intros alternativas (?intro=…): papel crema con tinta café */
html[data-theme="posada"] .inv-intro { --paper: #FFFBF2; --paper-2: #FFF6E5; --paper-3: #EBD9B8; --paper-ink: #2B1810; }

/* ---------- movimiento reducido y modo accesible ---------- */
@media (prefers-reduced-motion: reduce) {
  html[data-theme="posada"] body.inv::before,
  html[data-theme="posada"] body.inv::after,
  html[data-theme="posada"] .inv-hero__art::before,
  html[data-theme="posada"] .inv-countdown.reveal.is-in .inv-countdown__unit,
  html[data-theme="posada"] :is(.inv-section--countdown, .inv-section--quiz, .inv-rsvp)::after,
  html[data-theme="posada"] .inv-intro--giftbox .inv-intro__bg::after { animation: none; }
}
html[data-theme="posada"][data-access='1'] .inv-hero__art::before,
html[data-theme="posada"][data-access='1'] .inv-countdown.reveal.is-in .inv-countdown__unit { animation: none; }
