/* =====================================================================
   Inolvidia · tema «peonia» — Peonía, acuarela romántica  (demo: boda-peonia, Arequipa)
   Contrato §5 y §24: variables en :root + decoración SIEMPRE bajo html[data-theme="peonia"].
   Concepto: papelería pintada a mano en acuarela. Peonías y rosas de jardín (veladuras,
   bordes que sangran, pigmento en el borde), eucalipto, pétalos sueltos y filetes de oro rosa
   sobre papel marfil rosado. Toques de Arequipa con delicadeza: tarjetas de sillar con arco
   y un volcán lejano en acuarela (genéricos: sirven para cualquier boda).
   Apertura: «curtain» reinterpretada SOLO con CSS como un MURO DE FLORES que se abre en dos
   (sin cenefa, flecos ni cordones): medallón con el monograma y cintas de seda; detrás, la
   tarjeta con la corona de acuarela y los nombres.
   Imágenes: public/themes/peonia/{muro,orilla,corona,ramo}.webp (tools/temas/peonia.mjs);
   ninguna hace falta para la primera pintura (debajo hay degradados del mismo tono).
   Clases internas del motor que viste (si cambian, cae con gracia al estilo base):
   .cur__* (intros.css), .inv-countdown__unit, .inv-event__*, .inv-timeline__dot, .inv-gallery__*,
   .inv-gift__*, .inv-wish, .inv-faq__*, .inv-rsvp__*, .inv-footer__*.
   Contraste AA medido (WCAG): tinta #4A2C34 sobre marfil 11,8 y sobre rubor 10,1; tinta suave
   #6E4E56: 6,9 / 5,9; rosa texto #8E4A58: 6,1 / 5,2; blanco sobre rosa antiguo #9A5260: 5,6.
   El oro rosa #C99A7E solo en adornos; en cifras grandes, #9A6A50 (≥ 3:1).
   ===================================================================== */

:root {
  --bg: #FFF8F5;
  --bg-alt: #F7E4DF;
  --surface: #FFFCFA;
  --ink: #4A2C34;
  --ink-soft: #6E4E56;
  --accent: #9A5260;
  --accent-2: #C99A7E;
  --accent-ink: #FFFFFF;
  --line: rgba(74, 44, 52, .14);
  --font-display: 'Noto Serif Display', 'Times New Roman', Georgia, serif;
  --font-script: 'Ballet', 'Noto Serif Display', cursive;
  --font-body: 'Mulish', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --radius: 16px;
  --shadow: 0 1px 2px rgba(74, 44, 52, .05), 0 22px 44px -30px rgba(122, 62, 76, .55);
  --hero-overlay: linear-gradient(180deg, rgba(74, 44, 52, .08), rgba(74, 44, 52, 0) 35%, rgba(74, 44, 52, .2) 60%, rgba(52, 28, 36, .72));
  --hero-ink: #FFF8F5;
  --intro-bg: #F3D9D4;
  --intro-ink: #4A2C34;
  --seal: #B5707A;
  --pattern: none;
  --ornament: var(--pn-orn);

  /* — propias del tema — */
  --pn-rubor: #F4DCD7;
  --pn-rosa: #B5707A;          /* rosa antiguo: adornos y cifras grandes */
  --pn-rosa-tx: #8E4A58;       /* rosa para texto chico (AA) */
  --pn-oro: #C99A7E;           /* oro rosa: filetes y adornos */
  --pn-oro-tx: #9A6A50;        /* oro rosa legible (texto grande) */
  --pn-salvia: #98A88F;
  --pn-foil: linear-gradient(90deg, #E9CDB9 0%, #C99A7E 30%, #A9745B 50%, #DDB59C 72%, #C99A7E 100%);
  --pn-grano: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .24 0 0 0 0 .28 0 0 0 .075 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --pn-lavado: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cdefs%3E%3Cfilter id='f' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.035' numOctaves='3' seed='4'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='10' xChannelSelector='R' yChannelSelector='G' result='d'/%3E%3CfeGaussianBlur in='d' stdDeviation='3' result='b'/%3E%3CfeComposite in='d' in2='b' operator='arithmetic' k2='1.7' k3='-.7'/%3E%3C/filter%3E%3CradialGradient id='g' cx='.42' cy='.38' r='.64'%3E%3Cstop offset='0' stop-color='%23FFF4F1'/%3E%3Cstop offset='.6' stop-color='%23F7DDD8' stop-opacity='.95'/%3E%3Cstop offset='1' stop-color='%23EAB7B6' stop-opacity='.9'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='60' cy='60' r='50' fill='url(%23g)' filter='url(%23f)'/%3E%3C/svg%3E");
  --pn-lavado-salvia: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cdefs%3E%3Cfilter id='f' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.035' numOctaves='3' seed='9'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='10' xChannelSelector='R' yChannelSelector='G' result='d'/%3E%3CfeGaussianBlur in='d' stdDeviation='3' result='b'/%3E%3CfeComposite in='d' in2='b' operator='arithmetic' k2='1.7' k3='-.7'/%3E%3C/filter%3E%3CradialGradient id='g' cx='.42' cy='.38' r='.64'%3E%3Cstop offset='0' stop-color='%23F7F9F4'/%3E%3Cstop offset='.6' stop-color='%23E1E8DC' stop-opacity='.95'/%3E%3Cstop offset='1' stop-color='%23BFCDB9' stop-opacity='.9'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='60' cy='60' r='50' fill='url(%23g)' filter='url(%23f)'/%3E%3C/svg%3E");
  --pn-petalo-1: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 52'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.92' r='.98'%3E%3Cstop offset='0' stop-color='%23C9798A'/%3E%3Cstop offset='.48' stop-color='%23EDB3B7'/%3E%3Cstop offset='1' stop-color='%23FBE3DF'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d='M20 50C9 44 2 32 3 20 4 9 12 2 20 2s16 7 17 18c1 12-6 24-17 30z' fill='url(%23g)' opacity='.92'/%3E%3Cpath d='M20 46c-1-11 0-24 1-36' stroke='%23B5707A' stroke-width='.8' fill='none' opacity='.35'/%3E%3C/svg%3E");
  --pn-petalo-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 52'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.45' cy='.9' r='.98'%3E%3Cstop offset='0' stop-color='%23D98F7A'/%3E%3Cstop offset='.5' stop-color='%23F3C4AE'/%3E%3Cstop offset='1' stop-color='%23FDE9DD'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d='M21 50C10 46 3 35 3 23 3 11 10 3 19 2c10 0 17 8 18 19 1 13-6 25-16 29z' fill='url(%23g)' opacity='.9'/%3E%3Cpath d='M20 46c0-10 1-22 0-33' stroke='%23C07B67' stroke-width='.8' fill='none' opacity='.3'/%3E%3C/svg%3E");
  --pn-petalo-3: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 52'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.55' cy='.92' r='.98'%3E%3Cstop offset='0' stop-color='%23A85570'/%3E%3Cstop offset='.5' stop-color='%23DE9FA8'/%3E%3Cstop offset='1' stop-color='%23F8DCDB'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d='M19 50C9 43 3 31 4 19 5 9 12 2 21 3c9 1 15 9 15 19 0 12-7 23-17 28z' fill='url(%23g)' opacity='.9'/%3E%3C/svg%3E");
  --pn-orn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 28'%3E%3Cdefs%3E%3ClinearGradient id='l' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23C99A7E' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23B98468'/%3E%3C/linearGradient%3E%3ClinearGradient id='r' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23C99A7E' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23B98468'/%3E%3C/linearGradient%3E%3CradialGradient id='b' cx='.4' cy='.35' r='.7'%3E%3Cstop offset='0' stop-color='%23FBE3DF'/%3E%3Cstop offset='.55' stop-color='%23E6A9AF'/%3E%3Cstop offset='1' stop-color='%23B5707A'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d='M4 15H58' stroke='url(%23l)' stroke-width='.9'/%3E%3Cpath d='M102 15H156' stroke='url(%23r)' stroke-width='.9'/%3E%3Cellipse cx='68' cy='16' rx='7' ry='3.4' transform='rotate(-24 68 16)' fill='%2398A88F' opacity='.75'/%3E%3Cellipse cx='92' cy='16' rx='7' ry='3.4' transform='rotate(24 92 16)' fill='%2398A88F' opacity='.75'/%3E%3Cellipse cx='80' cy='13.5' rx='6.6' ry='7.6' fill='url(%23b)'/%3E%3Cpath d='M75 18c2 3 8 3 10 0' stroke='%2386998A' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='60' cy='15' r='1.3' fill='%23C99A7E'/%3E%3Ccircle cx='100' cy='15' r='1.3' fill='%23C99A7E'/%3E%3C/svg%3E");
  --pn-vid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 128'%3E%3Cpath d='M20 0c-3 16 3 32 0 48s3 32 0 48 3 24 0 32' stroke='%238B7F7C' stroke-width='1.1' fill='none' opacity='.75'/%3E%3Cg fill='%2398A88F'%3E%3Ccircle cx='11' cy='16' r='6.5' opacity='.55'/%3E%3Ccircle cx='29' cy='44' r='6' opacity='.5'/%3E%3Ccircle cx='11' cy='76' r='5.6' opacity='.6'/%3E%3Ccircle cx='29' cy='106' r='6.2' opacity='.5'/%3E%3C/g%3E%3Cg fill='%238FA3A0'%3E%3Ccircle cx='12' cy='15' r='3.4' opacity='.35'/%3E%3Ccircle cx='28' cy='45' r='3' opacity='.3'/%3E%3Ccircle cx='12' cy='77' r='3' opacity='.35'/%3E%3Ccircle cx='28' cy='105' r='3.2' opacity='.3'/%3E%3C/g%3E%3C/svg%3E");
  --pn-blob: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M21 3c8 0 15 5 16 13 2 9-3 19-12 21-9 2-19-2-21-11C2 17 9 3 21 3z'/%3E%3C/svg%3E");
  --pn-borde: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 40' preserveAspectRatio='none'%3E%3Cfilter id='f' x='0' y='-50%25' width='100%25' height='200%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.018 .08' numOctaves='3' seed='7'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='9' xChannelSelector='R' yChannelSelector='G'/%3E%3C/filter%3E%3Cpath d='M-10 22C60 13 120 27 190 18S330 11 400 20s120 6 210-4V48H-10Z' fill='%23F7E4DF' filter='url(%23f)'/%3E%3C/svg%3E");
  --pn-orilla-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 540' preserveAspectRatio='none'%3E%3Cfilter id='f' x='-50%25' y='-10%25' width='200%25' height='120%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.05 .02' numOctaves='3' seed='5'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='16' xChannelSelector='R' yChannelSelector='G'/%3E%3C/filter%3E%3Cpath d='M-40-20H34C46 40 20 90 36 150S22 260 40 320 18 430 36 480 30 540 34 560H-40Z' filter='url(%23f)'/%3E%3C/svg%3E");
  --pn-misti: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 200'%3E%3Cdefs%3E%3Cfilter id='f' x='-5%25' y='-20%25' width='110%25' height='140%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.02' numOctaves='3' seed='3'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='8' xChannelSelector='R' yChannelSelector='G' result='d'/%3E%3CfeGaussianBlur in='d' stdDeviation='2.5' result='b'/%3E%3CfeComposite in='d' in2='b' operator='arithmetic' k2='1.6' k3='-.6'/%3E%3C/filter%3E%3ClinearGradient id='v' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23C6AEB8'/%3E%3Cstop offset='1' stop-color='%23E9D6D6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg filter='url(%23f)'%3E%3Cpath d='M0 150 70 118l60 14 70-34 40 22V200H0Z' fill='%23D9CBD3' opacity='.55'/%3E%3Cpath d='M170 168 300 52c6-5 12-5 18 0l130 116Z' fill='url(%23v)' opacity='.7'/%3E%3Cpath d='M282 70l18-17c6-5 12-5 18 0l17 16-14-3-9 8-11-8-8 7z' fill='%23FFF8F5' opacity='.9'/%3E%3Cpath d='M380 160l70-46 60 22 90-30V200H360Z' fill='%23D7CCD4' opacity='.5'/%3E%3Cpath d='M0 182c80-26 150-18 230-6s170 14 240-4 100-14 130-8V200H0Z' fill='%23B7C2B0' opacity='.55'/%3E%3C/g%3E%3C/svg%3E");
}

/* =====================================================================
   PÁGINA · papel de algodón marfil rosado, lavados de acuarela
   ===================================================================== */
html[data-theme="peonia"] {
  background-color: #F6E3DE;
  background-image:
    radial-gradient(60vw 50vh at 0% 0%, rgba(232, 168, 170, .35), transparent 70%),
    radial-gradient(55vw 55vh at 100% 100%, rgba(201, 154, 126, .28), transparent 70%),
    radial-gradient(40vw 40vh at 100% 10%, rgba(152, 168, 143, .18), transparent 70%),
    var(--pn-grano);
}
html[data-theme="peonia"] body.inv { letter-spacing: .003em; }
html[data-theme="peonia"] ::selection { background: rgba(181, 112, 122, .24); }
html[data-theme="peonia"] .inv-page { background-color: var(--bg); background-image: var(--pn-grano); }
html[data-theme="peonia"] .inv-section { background-color: var(--bg); background-image: var(--pn-grano); }
/* secciones alternas: lavado rubor con borde de acuarela arriba y abajo (no una franja recta) */
html[data-theme="peonia"] .inv-section.is-alt {
  background-color: var(--bg-alt);
  background-image:
    radial-gradient(70% 40% at 12% 8%, rgba(255, 248, 245, .55), transparent 70%),
    radial-gradient(60% 45% at 92% 96%, rgba(234, 183, 182, .35), transparent 70%),
    var(--pn-grano);
}
html[data-theme="peonia"] .inv-section.is-alt::before,
html[data-theme="peonia"] .inv-section.is-alt::after {
  content: ''; position: absolute; left: 0; right: 0; height: 26px; pointer-events: none;
  background: var(--pn-borde) 0 0 / 100% 100% no-repeat;
}
html[data-theme="peonia"] .inv-section.is-alt::before { bottom: calc(100% - 1px); }
html[data-theme="peonia"] .inv-section.is-alt::after { top: calc(100% - 1px); transform: scale(-1, -1); z-index: 1; }

/* ---------- tipografía ---------- */
html[data-theme="peonia"] .inv-head::before {
  content: ''; display: block; width: 150px; height: 26px; margin: 0 auto 18px;
  background: var(--pn-orn) center / contain no-repeat;
}
html[data-theme="peonia"] .inv-eyebrow {
  font-family: var(--font-body); font-weight: 700; font-size: .68rem; letter-spacing: .3em; color: var(--pn-rosa-tx);
}
html[data-theme="peonia"] .inv-title {
  font-style: italic; font-weight: 300; font-size: clamp(2.15rem, 9.4vw, 2.85rem); line-height: 1.08;
  letter-spacing: -.015em; color: var(--ink);
}
html[data-theme="peonia"] .inv-head .inv-title { margin-bottom: .7rem; }
html[data-theme="peonia"] .inv-text { font-size: 1.02rem; line-height: 1.78; }
html[data-theme="peonia"] .inv-head .inv-text { max-width: 26em; }
html[data-theme="peonia"] a:not(.inv-btn) { color: var(--pn-rosa-tx); }

/* ---------- tarjetas: papel con una veladura en la esquina y filete de oro rosa ---------- */
html[data-theme="peonia"] .inv-card {
  background-color: var(--surface);
  background-image:
    radial-gradient(120px 90px at 100% 0%, rgba(244, 213, 207, .7), transparent 70%),
    radial-gradient(140px 100px at 0% 100%, rgba(225, 232, 220, .55), transparent 70%),
    var(--pn-grano);
  border: 1px solid rgba(201, 154, 126, .38);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

/* ---------- botones: pastilla rosa antiguo con brillo de oro rosa ---------- */
html[data-theme="peonia"] .inv-btn {
  min-height: 50px; padding: .9em 1.6em;
  background: linear-gradient(180deg, #A85E6C, var(--accent) 55%, #8B4755);
  border-color: transparent;
  font-family: var(--font-body); font-weight: 700; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  box-shadow: 0 0 0 1px rgba(201, 154, 126, .55), 0 12px 24px -14px rgba(122, 62, 76, .8), inset 0 1px 0 rgba(255, 255, 255, .22);
}
html[data-theme="peonia"] .inv-btn--ghost {
  background: rgba(255, 252, 250, .6); color: var(--pn-rosa-tx); border: 1px solid rgba(154, 82, 96, .55);
  box-shadow: none;
}
html[data-theme="peonia"] .inv-btn--lg { min-height: 56px; font-size: .82rem; }
html[data-theme="peonia"] .inv-btn.is-draft { text-transform: none; letter-spacing: .02em; font-size: .88rem; background: repeating-linear-gradient(-45deg, #F6E3DF 0 10px, #FBEFEC 10px 20px); }
html[data-theme="peonia"] .inv-btn--wa { background: #0E7A40; box-shadow: 0 12px 24px -14px rgba(14, 122, 64, .8); }
html[data-theme="peonia"] .inv-btn--wa.inv-btn--ghost { background: transparent; }
html[data-theme="peonia"] :focus-visible { outline-color: var(--accent); }

/* =====================================================================
   HERO · los nombres en caligrafía bajo una corona de acuarela
   ===================================================================== */
html[data-theme="peonia"] .inv-hero { color: var(--ink); }
html[data-theme="peonia"] .inv-hero--type,
html[data-theme="peonia"] .inv-hero--noimg,
html[data-theme="peonia"] .inv-hero--framed {
  background-color: var(--bg);
  background-image:
    radial-gradient(70% 34% at 0% 0%, rgba(240, 196, 194, .55), transparent 72%),
    radial-gradient(60% 30% at 100% 6%, rgba(206, 218, 200, .5), transparent 72%),
    radial-gradient(80% 40% at 100% 100%, rgba(240, 200, 186, .5), transparent 72%),
    radial-gradient(60% 30% at 0% 96%, rgba(234, 190, 196, .4), transparent 72%),
    var(--pn-grano);
}
/* capa de arte del hero sin foto: halo de papel detrás de los nombres + pétalos sueltos */
html[data-theme="peonia"] .inv-hero__art-spark { display: none; }
html[data-theme="peonia"] .inv-hero__art::before {
  left: 50%; top: 40%; width: min(130vw, 640px); aspect-ratio: 1; border: 0; box-shadow: none;
  background: radial-gradient(closest-side, rgba(255, 252, 250, .95), rgba(255, 252, 250, .6) 45%, transparent 72%);
}
html[data-theme="peonia"] .inv-hero__art::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    var(--pn-petalo-1) 9% 80% / 22px auto no-repeat,
    var(--pn-petalo-2) 86% 74% / 18px auto no-repeat,
    var(--pn-petalo-3) 16% 92% / 15px auto no-repeat,
    var(--pn-petalo-1) 92% 90% / 20px auto no-repeat;
  opacity: 0; transition: opacity 1.4s var(--ease) .9s;
}
html[data-theme="peonia"].is-revealed .inv-hero__art::after { opacity: .9; animation: pnDeriva 9s var(--ease-io) 2s infinite alternate; }
@keyframes pnDeriva { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(4px, 10px, 0); } }

/* la corona: va pegada al bloque de los nombres (sigue su posición en cualquier pantalla); el arco completo a la
   vista (la clave no se corta arriba) y los hombros enmarcan el eyebrow y los nombres */
html[data-theme="peonia"] .inv-hero--type .inv-hero__content::before,
html[data-theme="peonia"] .inv-hero--noimg .inv-hero__content::before {
  content: ''; position: absolute; z-index: -1; left: 50%; top: -24px;
  width: min(112vw, 480px); aspect-ratio: 880 / 760;
  background: url("/themes/peonia/corona.webp") center top / contain no-repeat;
  pointer-events: none;
  opacity: 0; transform: translateX(-50%) scale(.92) rotate(-1.5deg); transform-origin: 50% 40%;
  transition: opacity 1.6s var(--ease), transform 2.4s var(--ease);
}
/* §5: la entrada empieza con el destello de la intro (.is-revealing) y sigue con .is-revealed */
html[data-theme="peonia"].is-revealing .inv-hero__content::before,
html[data-theme="peonia"].is-revealed .inv-hero__content::before { opacity: 1; transform: translateX(-50%) scale(1) rotate(0); }
html[data-theme="peonia"][data-access='1'] .inv-hero__content::before { transition: none; }

html[data-theme="peonia"] .inv-hero--type .inv-hero__content,
html[data-theme="peonia"] .inv-hero--noimg .inv-hero__content { padding-top: clamp(110px, 17vh, 150px); }
html[data-theme="peonia"] .inv-hero__eyebrow {
  color: var(--pn-rosa-tx); opacity: 1; letter-spacing: .32em; font-size: .7rem; margin: 0 auto 1.1rem;
  max-width: 15em; padding-left: .32em; line-height: 1.75; text-wrap: balance;
  text-shadow: 0 0 10px rgba(255, 250, 248, .95), 0 0 3px rgba(255, 250, 248, .95);
}
html[data-theme="peonia"] .inv-hero__title {
  font-size: clamp(3.5rem, 16.5vw, 4.7rem); line-height: 1.08; color: var(--ink); margin: .06em 0 .12em;
  text-shadow: 0 0 18px rgba(255, 250, 248, .9), 0 0 2px rgba(255, 250, 248, .9);
}
html[data-theme="peonia"] .inv-amp {
  font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: .5em; line-height: 1.05;
  color: var(--pn-oro-tx); margin: .02em 0 .04em;
}
html[data-theme="peonia"] .inv-hero__subtitle {
  font-weight: 300; font-size: 1.16rem; line-height: 1.45; color: var(--ink-soft); opacity: 1; max-width: 19.5rem; margin-top: 1.3rem;
}
/* fecha entre filetes dobles de oro rosa */
html[data-theme="peonia"] .inv-hero__date { gap: 12px; max-width: 19rem; margin: 1.5rem auto .8rem; font-weight: 700; font-size: .64rem; letter-spacing: .3em; color: var(--ink); }
html[data-theme="peonia"] .inv-hero__date-side {
  border: 0; padding: .85em 0;
  background:
    var(--pn-foil) left top / 100% 1px no-repeat,
    var(--pn-foil) left 0 top 4px / 100% .6px no-repeat,
    var(--pn-foil) left bottom / 100% 1px no-repeat,
    var(--pn-foil) left 0 bottom 4px / 100% .6px no-repeat;
}
html[data-theme="peonia"] .inv-hero__date-day { font-weight: 400; font-size: 3.7rem; line-height: .95; color: var(--pn-oro-tx); padding: 0 .04em; }
html[data-theme="peonia"] .inv-hero__time { font-weight: 600; font-size: .74rem; letter-spacing: .2em; text-transform: none; opacity: 1; color: var(--ink-soft); padding-top: 6px; }
html[data-theme="peonia"] .inv-hero__place { font-size: .86rem; letter-spacing: .08em; color: var(--ink-soft); opacity: 1; }
html[data-theme="peonia"] .inv-hero__place .inv-icon { color: var(--pn-rosa); }
html[data-theme="peonia"] .inv-hero__cue { color: var(--ink-soft); }

/* foto (si otra boda usa este tema con foto): marco de oro rosa y la tinta clara */
html[data-theme="peonia"] .inv-hero--photo .inv-hero__title,
html[data-theme="peonia"] .inv-hero--photo .inv-hero__eyebrow,
html[data-theme="peonia"] .inv-hero--photo .inv-hero__subtitle,
html[data-theme="peonia"] .inv-hero--photo .inv-hero__place,
html[data-theme="peonia"] .inv-hero--photo .inv-hero__time,
html[data-theme="peonia"] .inv-hero--photo .inv-hero__date,
html[data-theme="peonia"] .inv-hero--photo .inv-hero__cue { color: var(--hero-ink); text-shadow: 0 1px 14px rgba(40, 20, 26, .45); }
html[data-theme="peonia"] .inv-hero--photo .inv-hero__date-day,
html[data-theme="peonia"] .inv-hero--photo .inv-amp,
html[data-theme="peonia"] .inv-hero--photo .inv-hero__place .inv-icon { color: #F2D3C2; }
html[data-theme="peonia"] .inv-hero--framed .inv-hero__media { border-color: var(--pn-oro); background: var(--surface); padding: 7px; }
html[data-theme="peonia"] .inv-hero--framed .inv-hero__media::before { border-color: rgba(201, 154, 126, .5); }
html[data-theme="peonia"] .inv-hero--split .inv-hero__content { background-color: var(--surface); background-image: var(--pn-grano); border-color: rgba(201, 154, 126, .4); }

/* pase del invitado: tarjeta de mesa con veladura rubor */
html[data-theme="peonia"] .inv-guest {
  border-radius: 6px; padding: 14px 28px 15px;
  background-color: var(--surface);
  background-image: radial-gradient(90% 120% at 0% 0%, rgba(244, 213, 207, .8), transparent 70%), var(--pn-grano);
  border: 1px solid rgba(201, 154, 126, .6);
  box-shadow: 0 0 0 4px var(--surface), 0 0 0 5px rgba(201, 154, 126, .3), var(--shadow);
}
html[data-theme="peonia"] .inv-guest__label { font-weight: 700; letter-spacing: .32em; font-size: .6rem; color: var(--pn-rosa-tx); opacity: 1; }
html[data-theme="peonia"] .inv-guest__name { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 1.45rem; line-height: 1.2; color: var(--ink); }
html[data-theme="peonia"] .inv-guest__passes { font-size: .82rem; color: var(--ink-soft); opacity: 1; }
html[data-theme="peonia"] .inv-hero--photo .inv-guest { background: rgba(40, 20, 26, .38); border-color: rgba(255, 248, 245, .45); box-shadow: none; }
html[data-theme="peonia"] .inv-hero--photo .inv-guest__label,
html[data-theme="peonia"] .inv-hero--photo .inv-guest__name,
html[data-theme="peonia"] .inv-hero--photo .inv-guest__passes { color: var(--hero-ink); }
html[data-theme="peonia"] .inv-hero__guest { margin-top: 1.4rem; }

/* =====================================================================
   SECCIONES
   ===================================================================== */

/* insignias de íconos: gota de acuarela rubor con el ícono en rosa */
html[data-theme="peonia"] .inv-event__icon,
html[data-theme="peonia"] .inv-event.has-img .inv-event__icon,
html[data-theme="peonia"] .inv-note__icon,
html[data-theme="peonia"] .inv-gift__icon,
html[data-theme="peonia"] .inv-dress__icon,
html[data-theme="peonia"] .inv-hotel__icon,
html[data-theme="peonia"] .inv-album__icon {
  color: var(--pn-rosa-tx); border: 0; border-radius: 50%; box-shadow: none;
  background: var(--pn-lavado) center / 112% 112% no-repeat;
}

/* quote — versículo entre ramitos de acuarela */
html[data-theme="peonia"] .inv-section--quote { padding-block: clamp(96px, 24vw, 132px); overflow: hidden; }
html[data-theme="peonia"] .inv-section--quote .inv-wrap::before,
html[data-theme="peonia"] .inv-section--quote .inv-wrap::after {
  content: ''; position: absolute; width: 230px; aspect-ratio: 560 / 470; pointer-events: none;
  background: url("/themes/peonia/ramo.webp") center / contain no-repeat;
}
html[data-theme="peonia"] .inv-section--quote .inv-wrap::before { left: -96px; top: -118px; transform: rotate(-8deg); }
html[data-theme="peonia"] .inv-section--quote .inv-wrap::after { right: -110px; bottom: -150px; transform: rotate(172deg); }
html[data-theme="peonia"] .inv-quote { padding-top: 3.4rem; max-width: 24rem; }
html[data-theme="peonia"] .inv-quote__mark {
  top: -10px; font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: 6rem; line-height: 1;
  color: transparent; opacity: 1;
  background: linear-gradient(180deg, #D7AE96, #A9745B); -webkit-background-clip: text; background-clip: text;
}
html[data-theme="peonia"] .inv-quote__text p { font-weight: 300; font-size: clamp(1.5rem, 6.6vw, 1.9rem); line-height: 1.4; color: var(--ink); }
html[data-theme="peonia"] .inv-quote__author { font-weight: 700; font-size: .64rem; letter-spacing: .3em; color: var(--pn-rosa-tx); }
html[data-theme="peonia"] .inv-quote__author::before { width: 70px; height: 1px; background: var(--pn-foil); }

/* countdown — cifras sobre gotas de acuarela */
html[data-theme="peonia"] .inv-countdown { gap: 6px; max-width: 380px; }
html[data-theme="peonia"] .inv-countdown__unit {
  aspect-ratio: 1; justify-content: center; gap: 4px; padding: 0; border: 0; border-radius: 50%; box-shadow: none; overflow: visible;
  background: var(--pn-lavado) center / 100% 100% no-repeat;
}
html[data-theme="peonia"] .inv-countdown__unit:nth-child(2) { background-image: var(--pn-lavado-salvia); }
html[data-theme="peonia"] .inv-countdown__unit:nth-child(4) { background-image: var(--pn-lavado-salvia); background-position: 40% 60%; }
html[data-theme="peonia"] .inv-countdown__unit::before { display: none; }
html[data-theme="peonia"] .inv-countdown__num { font-weight: 400; font-size: clamp(1.9rem, 8.6vw, 2.5rem); color: var(--ink); }
html[data-theme="peonia"] .inv-countdown__lbl { font-weight: 700; font-size: .56rem; letter-spacing: .24em; color: var(--pn-rosa-tx); }
html[data-theme="peonia"] .inv-countdown__date {
  margin-top: 1.7rem; font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: 1.15rem;
  letter-spacing: .01em; text-transform: none; color: var(--ink-soft);
}
html[data-theme="peonia"] .inv-countdown__done { font-family: var(--font-script); font-style: normal; font-size: 2.8rem; line-height: 1.3; color: var(--pn-rosa-tx); }

/* story — foto como copia sobre una veladura, con un ramito encima */
html[data-theme="peonia"] .inv-story__figure { width: min(78%, 300px); margin: 1.2rem auto 3rem; }
html[data-theme="peonia"] .inv-story__figure img {
  aspect-ratio: 4 / 5; border-radius: 4px; transform: rotate(-2deg);
  border: 8px solid #FFFDFB; box-shadow: 0 1px 2px rgba(74, 44, 52, .08), 0 26px 44px -26px rgba(110, 56, 70, .6);
}
html[data-theme="peonia"] .inv-story__figure::after {
  inset: auto; left: -24%; top: -9%; width: 64%; aspect-ratio: 560 / 470; border: 0; border-radius: 0;
  background: url("/themes/peonia/ramo.webp") center / contain no-repeat; transform: rotate(-6deg);
}
html[data-theme="peonia"] .inv-story__glow {
  inset: -8% -14% -10% -10%; z-index: -1; border-radius: 0;
  background: var(--pn-lavado) center / 100% 100% no-repeat; opacity: .9; transform: rotate(8deg);
}
html[data-theme="peonia"] .inv-story__body .inv-text { text-align: left; color: var(--ink-soft); }
html[data-theme="peonia"] .inv-story__body .inv-text:first-child {
  font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: 1.24rem; line-height: 1.6; color: var(--ink);
}
html[data-theme="peonia"] .inv-story__body .inv-text:first-child::first-letter {
  float: none; font: inherit; padding: 0; color: inherit;
}
html[data-theme="peonia"] .inv-story__sig { font-size: 3rem; line-height: 1.25; margin-top: 2rem; color: var(--pn-rosa-tx); }
html[data-theme="peonia"] .inv-story__sig::after {
  content: ''; display: block; width: 120px; height: 22px; margin: .3rem auto 0; background: var(--pn-orn) center / contain no-repeat;
}

/* people — padres a lo ancho y padrinos en pares, separados por capullos */
html[data-theme="peonia"] .inv-people.is-multi { grid-template-columns: 1fr 1fr; gap: 30px 16px; }
html[data-theme="peonia"] .inv-people__group { padding: 0; }
html[data-theme="peonia"] .inv-people__group:nth-child(-n + 2),
html[data-theme="peonia"] .inv-people__group:nth-child(odd):last-child { grid-column: 1 / -1; }
html[data-theme="peonia"] .inv-people.is-multi .inv-people__group:nth-child(2)::after {
  content: ''; display: block; width: 140px; height: 24px; margin: 26px auto -4px; background: var(--pn-orn) center / contain no-repeat;
}
html[data-theme="peonia"] .inv-people__spark { display: none; }
html[data-theme="peonia"] .inv-people__label { font-size: .58rem; letter-spacing: .26em; margin-bottom: .5rem; }
/* padrinos en par: la etiqueta reserva dos líneas para que los nombres de las dos columnas arranquen a la misma altura */
html[data-theme="peonia"] .inv-people.is-multi .inv-people__group:nth-child(n + 3):not(:nth-child(odd):last-child) .inv-people__label {
  min-height: 2.7em; display: flex; align-items: flex-end; justify-content: center;
}
html[data-theme="peonia"] .inv-people__names li { font-style: italic; font-weight: 300; font-size: 1.28rem; line-height: 1.35; }

/* events — tarjetas de sillar con un arco que mira al volcán */
html[data-theme="peonia"] .inv-section--events::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 190px; pointer-events: none; z-index: 0;
  background: var(--pn-misti) center bottom / 100% auto no-repeat; opacity: .7;
}
html[data-theme="peonia"] .inv-section--events .inv-wrap { z-index: 1; }
html[data-theme="peonia"] .inv-events { gap: 30px; }
html[data-theme="peonia"] .inv-event {
  padding: 0 0 30px; border-radius: 160px 160px var(--radius) var(--radius);
  background-color: #FFFBF7;
  background-image:
    radial-gradient(130% 60% at 50% 0%, rgba(255, 255, 255, .9), transparent 60%),
    radial-gradient(160px 120px at 100% 100%, rgba(244, 213, 207, .55), transparent 70%),
    var(--pn-grano);
  border-color: rgba(201, 154, 126, .45);
}
html[data-theme="peonia"] .inv-event:not(.has-img) { padding-top: 0; }
html[data-theme="peonia"] .inv-event:not(.has-img)::before {
  content: ''; display: block; height: 128px; margin: 14px 14px 0; border-radius: 150px 150px 6px 6px;
  background:
    var(--pn-misti) center bottom / 100% auto no-repeat,
    radial-gradient(60% 50% at 50% 92%, rgba(255, 240, 226, .95), transparent 70%),
    linear-gradient(180deg, #F6E6E8 0%, #F9E2D8 55%, #FBEDE3 100%);
  box-shadow: inset 0 0 0 1px rgba(201, 154, 126, .45), inset 0 0 0 6px #FFFBF7, inset 0 0 0 7px rgba(201, 154, 126, .3);
}
html[data-theme="peonia"] .inv-event__media { margin: 14px 14px 0; border-radius: 150px 150px 6px 6px; aspect-ratio: 16 / 11; }
html[data-theme="peonia"] .inv-event__icon,
html[data-theme="peonia"] .inv-event.has-img .inv-event__icon { width: 64px; height: 64px; margin: -32px auto 10px; position: relative; z-index: 2; }
html[data-theme="peonia"] .inv-event .inv-eyebrow { margin-bottom: .4rem; }
html[data-theme="peonia"] .inv-event__name { font-style: italic; font-weight: 400; font-size: 1.58rem; line-height: 1.2; padding: 0 24px; }
html[data-theme="peonia"] .inv-event__meta { font-size: .92rem; gap: 8px; margin-top: 16px; }
html[data-theme="peonia"] .inv-event__meta li:first-child span { font-family: var(--font-display); font-size: 1.3rem; line-height: 1.1; color: var(--ink); }
html[data-theme="peonia"] .inv-event__meta .inv-icon { color: var(--pn-rosa); }
html[data-theme="peonia"] .inv-event__actions { margin-top: 22px; }

/* timeline — el hilo es una rama de eucalipto; cada hora, un capullo */
html[data-theme="peonia"] .inv-timeline::before {
  left: 8px; width: 40px; top: 6px; bottom: 6px;
  background: var(--pn-vid) center top / 40px 128px repeat-y;
}
html[data-theme="peonia"] .inv-timeline__item { gap: 18px; }
html[data-theme="peonia"] .inv-section .inv-timeline__dot,
html[data-theme="peonia"] .inv-section.is-alt .inv-timeline__dot {
  color: var(--pn-rosa-tx); border: 0; box-shadow: none;
  background: var(--pn-lavado) center / 100% 100% no-repeat;
}
html[data-theme="peonia"] .inv-timeline__item:nth-child(even) .inv-timeline__dot { background-image: var(--pn-lavado-salvia); }
html[data-theme="peonia"] .inv-timeline__time { font-size: .66rem; letter-spacing: .24em; color: var(--pn-rosa-tx); }
html[data-theme="peonia"] .inv-timeline__title { font-style: italic; font-weight: 400; font-size: 1.38rem; }
html[data-theme="peonia"] .inv-timeline__text { font-size: .92rem; }

/* dresscode — tarjeta de muestras de acuarela */
html[data-theme="peonia"] .inv-dress {
  position: relative; padding: 34px 20px 30px; border-radius: var(--radius);
  background-color: var(--surface);
  background-image: radial-gradient(160px 120px at 0% 0%, rgba(244, 213, 207, .7), transparent 70%), var(--pn-grano);
  border: 1px solid rgba(201, 154, 126, .4); box-shadow: var(--shadow);
}
html[data-theme="peonia"] .inv-dress__icon { width: 62px; height: 62px; }
html[data-theme="peonia"] .inv-dress__code { font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: clamp(1.9rem, 8.4vw, 2.3rem); line-height: 1.2; color: var(--pn-rosa-tx); margin-bottom: .7rem; }
html[data-theme="peonia"] .inv-dress__label { font-size: .6rem; letter-spacing: .3em; color: var(--pn-rosa-tx); }
html[data-theme="peonia"] .inv-chip { background: rgba(255, 252, 250, .8); border-color: rgba(201, 154, 126, .45); font-size: .86rem; padding-right: 15px; }
html[data-theme="peonia"] .inv-chip__swatch {
  width: 28px; height: 28px; border-radius: 0; box-shadow: inset 0 0 0 2px rgba(74, 44, 52, .1), inset -4px -5px 8px rgba(74, 44, 52, .14);
  -webkit-mask: var(--pn-blob) center / contain no-repeat; mask: var(--pn-blob) center / contain no-repeat;
}
html[data-theme="peonia"] .inv-chip--avoid .inv-icon { color: var(--pn-rosa-tx); }

/* gallery — polaroids con un pétalo prensado */
html[data-theme="peonia"] .inv-gallery--polaroids { gap: 26px 16px; }
html[data-theme="peonia"] .inv-gallery--polaroids .inv-gallery__item {
  padding: 9px 9px 44px; border-radius: 3px; background-color: #FFFDFB; background-image: var(--pn-grano);
  box-shadow: 0 1px 2px rgba(74, 44, 52, .08), 0 22px 34px -20px rgba(110, 56, 70, .55);
}
html[data-theme="peonia"] .inv-gallery--polaroids .inv-gallery__item img { aspect-ratio: 4 / 5; }
html[data-theme="peonia"] .inv-gallery--polaroids .inv-gallery__item::after {
  content: ''; position: absolute; width: 26px; height: 34px; left: -9px; top: -12px; pointer-events: none;
  background: var(--pn-petalo-1) center / contain no-repeat; transform: rotate(28deg);
  filter: drop-shadow(0 2px 2px rgba(110, 56, 70, .25));
}
html[data-theme="peonia"] .inv-gallery--polaroids .inv-gallery__item:nth-child(even)::after { left: auto; right: -8px; background-image: var(--pn-petalo-2); transform: rotate(-36deg); }
html[data-theme="peonia"] .inv-gallery__cap { bottom: 11px; font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 1.02rem; line-height: 1.3; color: var(--ink); }
html[data-theme="peonia"] .inv-gallery__track .inv-gallery__item { border-radius: 6px; padding: 8px; background: #FFFDFB; box-shadow: var(--shadow); }
html[data-theme="peonia"] .inv-gallery__dots span.is-on { background: var(--accent); }
html[data-theme="peonia"] .inv-gallery__nav { color: var(--pn-rosa-tx); border-color: rgba(201, 154, 126, .5); }

/* gifts y hotels */
html[data-theme="peonia"] .inv-gifts, html[data-theme="peonia"] .inv-hotels { gap: 18px; }
html[data-theme="peonia"] .inv-gift, html[data-theme="peonia"] .inv-hotel { padding: 24px 20px 22px; grid-template-columns: 54px 1fr; }
html[data-theme="peonia"] .inv-gift__icon, html[data-theme="peonia"] .inv-hotel__icon { width: 54px; height: 54px; }
html[data-theme="peonia"] .inv-gift__title, html[data-theme="peonia"] .inv-hotel__name { font-style: italic; font-weight: 400; font-size: 1.36rem; }
html[data-theme="peonia"] .inv-gift__detail, html[data-theme="peonia"] .inv-hotel__detail { font-size: .9rem; color: var(--ink-soft); }
html[data-theme="peonia"] .inv-gift__copy {
  font-size: .86rem; letter-spacing: .12em; border-radius: 6px; background: rgba(247, 228, 223, .55);
  border: 1px dashed rgba(169, 116, 91, .6); color: var(--ink);
}
html[data-theme="peonia"] .inv-gift__actions .inv-btn, html[data-theme="peonia"] .inv-hotel__actions .inv-btn { min-height: 46px; font-size: .7rem; padding: .7em 1.15em; }

/* note */
html[data-theme="peonia"] .inv-note { border-radius: var(--radius); background-color: var(--surface); background-image: var(--pn-grano); border-color: rgba(201, 154, 126, .4); }
html[data-theme="peonia"] .inv-note__title { font-style: italic; font-weight: 400; font-size: 1.5rem; }

/* formularios */
html[data-theme="peonia"] .inv-input { border-radius: 10px; border-width: 1px; background: rgba(255, 252, 250, .9); }
html[data-theme="peonia"] .inv-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(154, 82, 96, .14); }
html[data-theme="peonia"] .inv-field__label { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .64rem; color: var(--ink-soft); }
html[data-theme="peonia"] .inv-field__label small { text-transform: none; letter-spacing: 0; }

/* wishes — cartitas con un pétalo de alfiler */
html[data-theme="peonia"] .inv-wish {
  border-radius: 6px; background-color: #FFFDFB; background-image: var(--pn-grano);
  border-color: rgba(201, 154, 126, .35); box-shadow: 0 16px 30px -24px rgba(110, 56, 70, .55);
}
html[data-theme="peonia"] .inv-wish:nth-child(odd) { transform: rotate(-.6deg); }
html[data-theme="peonia"] .inv-wish:nth-child(even) { transform: rotate(.5deg); background-color: #FDF3F0; }
html[data-theme="peonia"] .inv-wish::before { color: var(--pn-oro); }
html[data-theme="peonia"] .inv-wish__msg p { font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: 1.16rem; }

/* faq — índice con filetes de oro rosa */
html[data-theme="peonia"] .inv-faq { gap: 0; border-top: 1px solid rgba(201, 154, 126, .55); }
html[data-theme="peonia"] .inv-faq__item { background: none; border: 0; border-radius: 0; box-shadow: none; border-bottom: 1px solid rgba(201, 154, 126, .55); }
html[data-theme="peonia"] .inv-faq__item.is-open { box-shadow: none; background: linear-gradient(180deg, rgba(247, 228, 223, .45), transparent); }
html[data-theme="peonia"] .inv-faq__q { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 1.2rem; padding: 18px 4px; min-height: 64px; }
html[data-theme="peonia"] .inv-faq__icon { width: 32px; height: 32px; color: var(--pn-rosa-tx); border: 0; background: var(--pn-lavado) center / 112% 112% no-repeat; }
html[data-theme="peonia"] .inv-faq__item.is-open .inv-faq__icon { background: var(--accent); color: var(--accent-ink); }
html[data-theme="peonia"] .inv-faq__a p { padding: 0 4px 22px; font-size: .96rem; }

/* rsvp — tarjeta con un ramito en la esquina */
html[data-theme="peonia"] .inv-rsvp__form,
html[data-theme="peonia"] .inv-rsvp__done { overflow: visible; }
html[data-theme="peonia"] .inv-rsvp__form { padding: 30px 20px 28px; }
html[data-theme="peonia"] .inv-rsvp__form::before,
html[data-theme="peonia"] .inv-rsvp__done::before {
  content: ''; position: absolute; right: -30px; top: -34px; width: 150px; aspect-ratio: 560 / 470; pointer-events: none; z-index: 3;
  background: url("/themes/peonia/ramo.webp") center / contain no-repeat; transform: scaleX(-1) rotate(-10deg);
}
html[data-theme="peonia"] .inv-rsvp__face { border-radius: 12px; border-width: 1px; background: rgba(255, 252, 250, .85); }
html[data-theme="peonia"] .inv-rsvp__face-txt strong { font-family: var(--font-display); font-style: italic; font-size: 1.22rem; font-weight: 400; }
html[data-theme="peonia"] .inv-rsvp__radio:checked + .inv-rsvp__face { background: rgba(247, 228, 223, .7); border-color: var(--accent); }
html[data-theme="peonia"] .inv-stepper { border-radius: 12px; border-width: 1px; background: rgba(255, 252, 250, .85); }
html[data-theme="peonia"] .inv-rsvp__badge { background: var(--pn-lavado) center / 112% 112% no-repeat; color: var(--pn-rosa-tx); }
html[data-theme="peonia"] .inv-rsvp__done-title { font-style: italic; font-weight: 400; }
html[data-theme="peonia"] .inv-rsvp__face-ico .inv-sparkle path { fill: var(--pn-rosa); }

/* divider */
html[data-theme="peonia"] .inv-divider.has-ornament { height: 46px; max-width: 280px; }

/* pie — la corona vuelve a cerrar la invitación */
html[data-theme="peonia"] .inv-footer {
  padding-top: 40px; background-color: var(--bg-alt);
  background-image: radial-gradient(70% 50% at 50% 30%, rgba(255, 252, 250, .85), transparent 70%), var(--pn-grano);
}
html[data-theme="peonia"] .inv-footer__inner { position: relative; padding-top: 214px; }
html[data-theme="peonia"] .inv-footer__inner::before {
  content: ''; position: absolute; left: 50%; top: 0; width: 250px; aspect-ratio: 880 / 760; transform: translateX(-50%);
  background: url("/themes/peonia/corona.webp") center top / contain no-repeat; pointer-events: none;
}
html[data-theme="peonia"] .inv-footer__orn { display: none; }
html[data-theme="peonia"] .inv-footer__text { position: relative; font-size: 2.6rem; line-height: 1.3; color: var(--ink); text-wrap: balance; }
html[data-theme="peonia"] .inv-footer__date { font-weight: 700; font-size: .66rem; letter-spacing: .34em; color: var(--pn-rosa-tx); }

/* barra de acciones y hojas */
html[data-theme="peonia"] .inv-actionbar {
  border-radius: 18px; background: rgba(255, 250, 247, .88); border-color: rgba(201, 154, 126, .4);
  box-shadow: 0 18px 36px -18px rgba(110, 56, 70, .45);
}
html[data-theme="peonia"] .inv-actionbar__btn { border-radius: 12px; font-weight: 600; }
html[data-theme="peonia"] .inv-actionbar__btn:not(.is-primary) { color: var(--ink); }
html[data-theme="peonia"] .inv-sheet__panel { background-color: var(--surface); background-image: var(--pn-grano); }
html[data-theme="peonia"] .inv-sheet__opt { border-radius: 12px; }

/* =====================================================================
   INTRO · «muro de flores» (curtain reinterpretado solo con CSS)
   Cerrado: dos hojas de un muro de peonías, rosas y eucalipto en acuarela; flores grandes que
   asoman sobre la unión; un medallón con el monograma colgado de dos cintas de seda y la cinta
   con el «Para: <pase>». Al tocar: las cintas se sueltan (s1), el muro se abre hacia los lados
   y caen pétalos (s2): detrás estaba la tarjeta con la corona y los nombres; la cámara entra (s3).
   Truco de capas: .cur__plaque deja de ser contexto de apilamiento (sin transform ni z-index),
   así la tarjeta queda DETRÁS del muro (z auto) y el medallón y la cinta del pase DELANTE (z 6).
   ===================================================================== */
html[data-theme="peonia"] .inv-intro--curtain { background: var(--intro-bg); }
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__eyebrow {
  z-index: 8; margin-top: 0; padding: 9px 14px 9px calc(14px + .34em); border-radius: 999px;
  color: var(--pn-rosa-tx); text-shadow: none; font-weight: 700;
  background: rgba(255, 250, 247, .92);
  box-shadow: 0 0 0 1px rgba(201, 154, 126, .5), 0 12px 26px -14px rgba(74, 44, 52, .55);
}
html[data-theme="peonia"] .cur {
  /* capa propia desde antes del toque: la entrada de cámara (s3) no la crea en pleno movimiento */
  isolation: isolate; transform-origin: 50% 46%; will-change: transform;
  transition: opacity 1s var(--ease), transform 1.9s cubic-bezier(.45, 0, .2, 1);
}
/* detrás del muro: papel luminoso */
html[data-theme="peonia"] .cur__stage {
  background:
    radial-gradient(58% 40% at 50% 47%, #FFFFFF, rgba(255, 250, 247, .7) 52%, transparent 82%),
    radial-gradient(90% 55% at 50% 104%, rgba(240, 200, 196, .75), transparent 70%),
    radial-gradient(70% 40% at 50% -6%, rgba(206, 218, 200, .55), transparent 70%),
    linear-gradient(180deg, #FBEDE9, #FFF8F5 46%, #F8E5E0);
}
html[data-theme="peonia"] .cur__light {
  left: 0; top: 0; width: 100%; height: 100%; transform: none; filter: none;
  background: radial-gradient(46% 34% at 50% 46%, rgba(255, 240, 232, .95), transparent 72%);
}
html[data-theme="peonia"] .cur__floor { display: none; }
/* los 14 «motes» del motor son pétalos que caen al abrir */
html[data-theme="peonia"] .cur__motes i {
  top: -7%; width: calc(14px + 10px * var(--s)); height: calc(18px + 13px * var(--s)); border-radius: 0; box-shadow: none;
  background: var(--pn-petalo-1) center / contain no-repeat;
}
html[data-theme="peonia"] .cur__motes i:nth-child(3n) { background-image: var(--pn-petalo-2); }
html[data-theme="peonia"] .cur__motes i:nth-child(3n + 1) { background-image: var(--pn-petalo-3); }
html[data-theme="peonia"] .cur.s2 .cur__motes i { animation: pnCae 3.2s cubic-bezier(.3, .1, .45, 1) calc(var(--d) * .28) both; }
@keyframes pnCae {
  0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(0deg); }
  14% { opacity: 1; }
  100% { opacity: .85; transform: translate3d(calc((var(--s) - .85) * 70px), 108vh, 0) rotate(calc(var(--s) * 420deg)); }
}

/* las dos hojas del muro */
html[data-theme="peonia"] .cur__panel { width: 50.5%; bottom: 0; background: none; box-shadow: none; will-change: transform; }
html[data-theme="peonia"] .cur__panel.is-l { transform-origin: 0 50%; box-shadow: none; }
html[data-theme="peonia"] .cur__panel.is-r { transform-origin: 100% 50%; box-shadow: none; }
html[data-theme="peonia"] .inv-intro.is-ready .cur__panel.is-l,
html[data-theme="peonia"] .inv-intro.is-ready .cur__panel.is-r { animation: pnRespira 5.5s var(--ease-io) infinite alternate; }
@keyframes pnRespira { from { transform: scale(1); } to { transform: scale(1.014); } }
/* el muro (mosaico de acuarela) con el borde interior irregular; debajo, degradados del mismo tono */
html[data-theme="peonia"] .cur__panel::after {
  content: ''; position: absolute; top: 0; bottom: 0; left: 0; right: -44px; z-index: -1; animation: none;
  background:
    url("/themes/peonia/muro.webp") 0 0 / 360px 360px repeat,
    radial-gradient(90px 80px at 30% 20%, rgba(236, 178, 184, .9), transparent 70%),
    radial-gradient(110px 90px at 70% 55%, rgba(250, 226, 214, .95), transparent 70%),
    radial-gradient(100px 90px at 25% 85%, rgba(226, 160, 172, .85), transparent 70%),
    #EDCBC7;
  -webkit-mask: var(--pn-orilla-mask) right top / 64px 540px repeat-y, linear-gradient(#000, #000) left top / calc(100% - 63px) 100% no-repeat;
  mask: var(--pn-orilla-mask) right top / 64px 540px repeat-y, linear-gradient(#000, #000) left top / calc(100% - 63px) 100% no-repeat;
  clip-path: inset(0 3px 0 0); /* la máscara dejaba un hilo de 1 px en el canto (se veía con el muro abierto) */
}
html[data-theme="peonia"] .cur__panel.is-r::after { left: -44px; right: 0; transform: scaleX(-1); background-position: 170px 120px, 0 0, 0 0, 0 0, 0 0; }
html[data-theme="peonia"] .cur__panel.is-r::after { animation: none; }
/* flores grandes que asoman sobre la unión de las dos hojas */
html[data-theme="peonia"] .cur__panel::before {
  content: ''; position: absolute; top: 0; bottom: 0; width: 200px; pointer-events: none;
  background: url("/themes/peonia/orilla.webp") 0 0 / 200px 733px repeat-y;
}
html[data-theme="peonia"] .cur__panel.is-l::before { right: -66px; }
html[data-theme="peonia"] .cur__panel.is-r::before { left: -66px; transform: scaleX(-1); background-position: 0 366px; }
html[data-theme="peonia"] .cur__tie,
html[data-theme="peonia"] .cur__valance,
html[data-theme="peonia"] .cur__fringe,
html[data-theme="peonia"] .cur__spark { display: none; }

/* tarjeta detrás del muro (sin contexto propio: sus hijos se reparten delante y detrás) */
html[data-theme="peonia"] .cur__plaque,
html[data-theme="peonia"] .inv-intro.is-ready .cur__plaque,
html[data-theme="peonia"] .cur.s1 .cur__plaque {
  left: 0; top: 0; width: 100%; height: 100%; z-index: auto; transform: none; animation: none; opacity: 1;
  display: grid; place-items: center; pointer-events: none;
}
html[data-theme="peonia"] .cur__plaque-in {
  width: min(82vw, 340px); padding: 0 12px 6px; gap: 0; color: var(--ink); border-radius: 0; box-shadow: none; background: none;
}
/* la tarjeta de papel que espera detrás del muro: arranca a la mitad del medallón y termina bajo la cinta del pase,
   con filete interior de oro rosa (al abrir, las flores que quedan en los bordes la enmarcan) */
html[data-theme="peonia"] .cur__plaque-in::before {
  inset: 64px 6px -26px; border: 0; border-radius: 3px;
  background:
    radial-gradient(80% 50% at 50% 0%, rgba(255, 255, 255, .95), transparent 70%),
    radial-gradient(70% 40% at 100% 100%, rgba(244, 213, 207, .55), transparent 70%),
    radial-gradient(60% 34% at 0% 100%, rgba(225, 232, 220, .5), transparent 70%),
    var(--pn-grano) #FFFCFA;
  box-shadow:
    inset 0 0 0 10px #FFFCFA, inset 0 0 0 11px rgba(201, 154, 126, .7), inset 0 0 0 14px #FFFCFA, inset 0 0 0 14.6px rgba(201, 154, 126, .4),
    0 1px 2px rgba(74, 44, 52, .12), 0 34px 60px -28px rgba(74, 44, 52, .6);
}
/* la corona de acuarela dentro de la tarjeta: el medallón queda en su clave, como el hero */
html[data-theme="peonia"] .cur__plaque-in::after {
  content: ''; position: absolute; left: 50%; top: 26px; width: 116%; aspect-ratio: 880 / 760; pointer-events: none;
  background: url("/themes/peonia/corona.webp") center top / contain no-repeat; transform: translateX(-50%);
}
/* el muro con un viñeteado suave (sin velo blanco: el color de las flores es el protagonista) */
html[data-theme="peonia"] .cur::after {
  content: ''; position: absolute; inset: 0; z-index: 4; pointer-events: none;
  background:
    radial-gradient(34% 20% at 50% 36%, rgba(255, 248, 245, .22), transparent 72%),
    radial-gradient(130% 80% at 50% 45%, transparent 52%, rgba(74, 36, 48, .3) 100%);
  transition: opacity .7s var(--ease);
}
html[data-theme="peonia"] .cur.s2::after { opacity: 0; }
/* cintas de seda rubor que sostienen el medallón (brillo de satén a lo largo, sombra corta sobre el muro) */
html[data-theme="peonia"] .cur__cord {
  z-index: 5; left: calc(50% - 31px); right: calc(50% - 31px); top: 0; bottom: auto; height: calc(50% - 64px);
  border: 0; opacity: 1;
  background:
    linear-gradient(90deg, #D9A3A3, #F9E4E0 38%, #FFF4F1 50%, #EDC2BE 72%, #CF9696) left top / 9px 100% no-repeat,
    linear-gradient(90deg, #D9A3A3, #F9E4E0 38%, #FFF4F1 50%, #EDC2BE 72%, #CF9696) right top / 9px 100% no-repeat,
    linear-gradient(90deg, rgba(60, 26, 38, .32), rgba(60, 26, 38, 0)) 9px 0 / 5px 100% no-repeat,
    linear-gradient(90deg, rgba(60, 26, 38, .32), rgba(60, 26, 38, 0)) right -5px top 0 / 5px 100% no-repeat;
  transition: transform .8s var(--ease-io), opacity .55s var(--ease);
}
/* medallón: disco de papel con anillo de oro rosa (lámina) y el monograma en relieve */
html[data-theme="peonia"] .cur__mono {
  position: relative; z-index: 6; width: 128px; height: 128px; margin: 0 auto; display: grid; place-items: center;
  border-radius: 50%; padding-top: 2px; white-space: nowrap;
  font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 2.15rem; letter-spacing: .02em;
  line-height: 1; color: #86563F;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .95), 0 -1px 0 rgba(134, 86, 63, .18);
  background:
    radial-gradient(circle at 36% 27%, rgba(255, 255, 255, .9), rgba(255, 255, 255, 0) 52%),
    radial-gradient(closest-side, #FFFBF9 0, #FBEDE9 78%, #EFD5CF 87.5%, transparent 88.6%),
    conic-gradient(from 210deg, #F2DCCD, #B98468 16%, #F7E6DA 33%, #A9745B 51%, #EBCBB5 69%, #BC876C 85%, #F2DCCD);
  box-shadow: 0 0 0 1px rgba(150, 98, 74, .55), 0 0 0 4px rgba(255, 250, 247, .9), 0 0 0 5px rgba(201, 154, 126, .55),
    0 20px 34px -12px rgba(60, 28, 40, .7);
}
html[data-theme="peonia"] .cur__mono::before {
  content: ''; position: absolute; inset: 17px; z-index: -1; border-radius: 50%;
  background: var(--pn-lavado) center / 120% 120% no-repeat; opacity: .45;
}
/* moño de seda atado sobre el medallón: se va con las cintas al tocar */
html[data-theme="peonia"] .cur__mono::after {
  content: ''; position: absolute; left: 50%; top: -40px; width: 104px; height: 72px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 64'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23FCEAE6'/%3E%3Cstop offset='.5' stop-color='%23EDC1BC'/%3E%3Cstop offset='1' stop-color='%23D49C9C'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23D9A3A3'/%3E%3Cstop offset='.45' stop-color='%23FBE6E2'/%3E%3Cstop offset='1' stop-color='%23D69E9E'/%3E%3C/linearGradient%3E%3Cfilter id='s' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='2.2'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='%233C1A26' opacity='.28' filter='url(%23s)' transform='translate(1 4)'%3E%3Cpath d='M46 27C37 11 14 5 8 15c-5 9 11 18 38 15z'/%3E%3Cpath d='M46 27c9-16 32-22 38-12 5 9-11 18-38 15z'/%3E%3Cpath d='M42 30 31 60l6-3 3 6 6-31zM50 30l11 30-6-3-3 6-6-31z'/%3E%3C/g%3E%3Cpath d='M42 30 31 60l6-3 3 6 6-31z' fill='url(%23b)'/%3E%3Cpath d='M50 30l11 30-6-3-3 6-6-31z' fill='url(%23b)'/%3E%3Cpath d='M46 27C37 11 14 5 8 15c-5 9 11 18 38 15z' fill='url(%23a)'/%3E%3Cpath d='M46 27c9-16 32-22 38-12 5 9-11 18-38 15z' fill='url(%23a)'/%3E%3Cpath d='M46 28C37 19 21 15 15 19c7 5 18 9 31 10z' fill='%23B9787F' opacity='.32'/%3E%3Cpath d='M46 28c9-9 25-13 31-9-7 5-18 9-31 10z' fill='%23B9787F' opacity='.32'/%3E%3Cpath d='M17 13c6-3 15-1 22 5' stroke='%23FFF' stroke-width='1.6' fill='none' opacity='.7' stroke-linecap='round'/%3E%3Cpath d='M75 13c-6-3-15-1-22 5' stroke='%23FFF' stroke-width='1.6' fill='none' opacity='.5' stroke-linecap='round'/%3E%3Crect x='40.5' y='22' width='11' height='12' rx='4.5' fill='url(%23b)'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translateX(-50%); transition: transform .8s var(--ease-io), opacity .5s var(--ease);
}
html[data-theme="peonia"] .cur__title {
  position: relative; z-index: 1; margin: 30px 0 16px; padding: 0 8px; max-width: 100%;
  font-family: var(--font-script); font-size: clamp(2.1rem, 10vw, 2.6rem); line-height: 1.3; text-wrap: balance;
  letter-spacing: 0; text-transform: none; opacity: 1; color: var(--ink);
  text-shadow: 0 0 14px rgba(255, 252, 250, .95), 0 0 3px rgba(255, 252, 250, .95);
}
/* cinta de seda con el «Para: <pase>» */
html[data-theme="peonia"] .cur__guest {
  position: relative; z-index: 6; margin: 0; padding: 9px 24px 11px; border: 0; max-width: 92%;
  display: grid; justify-items: center; gap: 2px;
  font-family: var(--font-display); font-style: italic; font-size: 1.12rem; line-height: 1.25; color: var(--ink);
  background: linear-gradient(180deg, #FCEFEC, #F3D8D2);
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(201, 154, 126, .55), 0 12px 24px -12px rgba(74, 44, 52, .55);
}
html[data-theme="peonia"] .cur__guest span {
  font-family: var(--font-body); font-style: normal; font-weight: 700; font-size: .56rem; letter-spacing: .34em; opacity: 1; color: var(--pn-rosa-tx);
}
html[data-theme="peonia"] .cur__guest::before,
html[data-theme="peonia"] .cur__guest::after {
  content: ''; position: absolute; top: 10px; bottom: -8px; width: 24px; z-index: -1;
  background: linear-gradient(180deg, #EFCFC9, #E2B2AC);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 38% 50%);
}
html[data-theme="peonia"] .cur__guest::before { left: -17px; }
html[data-theme="peonia"] .cur__guest::after { right: -17px; transform: scaleX(-1); }

/* apertura: s1 se sueltan las cintas · s2 se abre el muro · s3 la cámara entra a la tarjeta */
html[data-theme="peonia"] .cur.s1 .cur__cord { transform: translateY(-36%); opacity: 0; }
html[data-theme="peonia"] .cur.s1 .cur__mono::after { transform: translate(-50%, -46px) scale(.9); opacity: 0; }
html[data-theme="peonia"] .cur.s1 .cur__mono { animation: pnLatido .8s var(--ease) both; }
/* paralaje: las flores grandes del borde se apartan un poco más que el muro (están más cerca) */
html[data-theme="peonia"] .cur.s2 .cur__panel.is-l::before { animation: pnOrillaL 1.75s cubic-bezier(.6, .02, .2, 1) forwards; }
html[data-theme="peonia"] .cur.s2 .cur__panel.is-r::before { animation: pnOrillaR 1.75s cubic-bezier(.6, .02, .2, 1) forwards; }
@keyframes pnOrillaL { from { transform: none; } to { transform: translate3d(-26px, 0, 0); } }
@keyframes pnOrillaR { from { transform: scaleX(-1); } to { transform: translate3d(26px, 0, 0) scaleX(-1); } }
@keyframes pnLatido { 0% { transform: scale(1); } 38% { transform: scale(1.07); } 100% { transform: scale(1); } }
html[data-theme="peonia"] .cur.s2 .cur__panel.is-l { animation: pnAbreL 1.75s cubic-bezier(.6, .02, .2, 1) forwards; }
html[data-theme="peonia"] .cur.s2 .cur__panel.is-r { animation: pnAbreR 1.75s cubic-bezier(.6, .02, .2, 1) forwards; }
@keyframes pnAbreL { 0% { transform: none; } 16% { transform: translate3d(1.2%, 0, 0) scale(1.01); } 100% { transform: translate3d(-106%, 0, 0) scale(1.08); } }
@keyframes pnAbreR { 0% { transform: none; } 16% { transform: translate3d(-1.2%, 0, 0) scale(1.01); } 100% { transform: translate3d(106%, 0, 0) scale(1.08); } }
/* s3: la cámara entra a la tarjeta (acercamiento corto: menos píxeles que volver a pintar en teléfonos modestos) */
html[data-theme="peonia"] .cur.s3 { transform: scale(1.12); }
/* destello final en rubor (el de la marca, más suave) */
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__bloom { background: radial-gradient(circle, #fff 0%, rgba(255, 244, 240, .92) 38%, rgba(247, 222, 216, 0) 72%); }
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__flash-spark { width: 96px; height: 96px; filter: drop-shadow(0 0 14px rgba(255, 236, 230, .95)) drop-shadow(0 0 34px rgba(226, 160, 172, .6)); }
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__flash-spark stop:first-child { stop-color: #FFFFFF; }
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__flash-spark stop:nth-child(2) { stop-color: #F7D6CF; }
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__flash-spark stop:last-child { stop-color: #E4AAB1; }
/* botón: rosa antiguo sobre el muro */
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__cta {
  background: linear-gradient(180deg, #A85E6C, #9A5260 55%, #8B4755); color: #FFFFFF;
  box-shadow: 0 0 0 1px rgba(201, 154, 126, .85), 0 0 0 5px rgba(255, 248, 245, .6), 0 18px 34px -12px rgba(74, 44, 52, .65), inset 0 1px 0 rgba(255, 255, 255, .25);
}
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__cta-ring { animation-name: pnAnillo; }
@keyframes pnAnillo { 0% { box-shadow: 0 0 0 0 rgba(255, 248, 245, .85); } 80%, 100% { box-shadow: 0 0 0 16px rgba(255, 248, 245, 0); } }
html[data-theme="peonia"] .inv-intro--curtain .inv-intro__cta:focus-visible { outline-color: #FFF8F5; }

/* apertura simple (modo accesible) */
html[data-theme="peonia"] .inv-intro--simple { background-image: radial-gradient(70% 40% at 50% 40%, #FFFFFF, transparent 75%), var(--pn-grano); }
html[data-theme="peonia"] .smp__title { font-family: var(--font-display); font-style: italic; font-weight: 400; }
/* la fecha larga reparte sus líneas (sin dejar «m.» sola) */
html[data-theme="peonia"] .smp__date { text-wrap: balance; }

/* =====================================================================
   EFECTOS · pétalos que bajan despacio por los bordes (capa .inv-fx; no tapan texto)
   ===================================================================== */
html[data-theme="peonia"].is-revealed .inv-fx {
  background:
    var(--pn-petalo-1) 4% -10% / 16px auto no-repeat,
    var(--pn-petalo-2) 96% -10% / 14px auto no-repeat;
  animation: pnLluvia 22s linear 1.2s infinite;
  -webkit-mask: linear-gradient(90deg, #000 0 9%, transparent 14% 86%, #000 91%);
  mask: linear-gradient(90deg, #000 0 9%, transparent 14% 86%, #000 91%);
  opacity: .8;
}
@keyframes pnLluvia {
  0% { background-position: 4% -10%, 96% -40%; }
  100% { background-position: 9% 115%, 91% 120%; }
}

/* =====================================================================
   ESCRITORIO · la invitación sobre una mesa con veladuras y ramitos
   ===================================================================== */
@media (min-width: 700px) {
  /* la tarjeta conserva las proporciones del celular: nombres en dos líneas dentro de la corona */
  html[data-theme="peonia"] .cur__plaque-in { width: 360px; }
  html[data-theme="peonia"] .cur__title { max-width: 300px; margin-inline: auto; }
  /* en tableta y escritorio el muro se abre lo justo: quedan flores a los lados que enmarcan la tarjeta */
  html[data-theme="peonia"] .cur.s2 .cur__panel.is-l { animation-name: pnAbreLd; }
  html[data-theme="peonia"] .cur.s2 .cur__panel.is-r { animation-name: pnAbreRd; }
  html[data-theme="peonia"] .cur__mono { width: 144px; height: 144px; font-size: 2.4rem; }
  html[data-theme="peonia"] .cur__cord { height: calc(50% - 72px); }
}
@media (min-width: 900px) {
  html[data-theme="peonia"] .inv-page { box-shadow: 0 0 0 1px rgba(201, 154, 126, .22), 0 50px 120px -40px rgba(122, 62, 76, .45); }
  html[data-theme="peonia"] body.inv::before,
  html[data-theme="peonia"] body.inv::after {
    content: ''; position: fixed; z-index: 0; width: 330px; aspect-ratio: 560 / 470; pointer-events: none;
    background: url("/themes/peonia/ramo.webp") center / contain no-repeat; opacity: .9;
  }
  html[data-theme="peonia"] body.inv::before { left: calc(50% - 280px - 330px); top: 8vh; transform: rotate(-12deg); }
  html[data-theme="peonia"] body.inv::after { right: calc(50% - 280px - 330px); bottom: 6vh; transform: rotate(168deg); }
  html[data-theme="peonia"] .inv-root { z-index: 1; }
  /* el muro en pantalla ancha: flores más grandes (menos repeticiones) y ramos sueltos que rompen el mosaico */
  html[data-theme="peonia"] .cur__panel::after {
    background:
      url("/themes/peonia/ramo.webp") 24% 16% / 400px auto no-repeat,
      url("/themes/peonia/ramo.webp") 62% 80% / 350px auto no-repeat,
      url("/themes/peonia/muro.webp") 0 0 / 540px 540px repeat,
      #E6C9C6;
  }
  html[data-theme="peonia"] .cur__panel.is-r::after { background-position: 16% 64%, 74% 10%, 250px 170px; }
  html[data-theme="peonia"] .cur__panel::before { width: 260px; background-size: 260px 953px; }
  html[data-theme="peonia"] .cur__panel.is-l::before { right: -86px; }
  html[data-theme="peonia"] .cur__panel.is-r::before { left: -86px; background-position: 0 476px; }
  html[data-theme="peonia"] .cur__mono { width: 160px; height: 160px; font-size: 2.7rem; }
  html[data-theme="peonia"] .cur__cord { height: calc(50% - 80px); }
}
@keyframes pnAbreLd { 0% { transform: none; } 16% { transform: translate3d(.8%, 0, 0) scale(1.01); } 100% { transform: translate3d(-72%, 0, 0) scale(1.06); } }
@keyframes pnAbreRd { 0% { transform: none; } 16% { transform: translate3d(-.8%, 0, 0) scale(1.01); } 100% { transform: translate3d(72%, 0, 0) scale(1.06); } }

/* =====================================================================
   MOVIMIENTO REDUCIDO Y MODO ACCESIBLE
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  html[data-theme="peonia"] .inv-intro.is-ready .cur__panel.is-l,
  html[data-theme="peonia"] .inv-intro.is-ready .cur__panel.is-r { animation: none; }
  html[data-theme="peonia"] .inv-hero__content::before { transition: none; }
  html[data-theme="peonia"].is-revealed .inv-hero__art::after { animation: none; }
  html[data-theme="peonia"].is-revealed .inv-fx { display: none; }
}
html[data-theme="peonia"][data-access='1'] .inv-fx,
html[data-theme="peonia"][data-access='1'] .inv-hero__art::after { display: none; }
/* letra grande y lectura fácil: la caligrafía pasa a la serif cursiva (se lee mejor) */
html[data-theme="peonia"][data-access='1'] .inv-script { font-family: var(--font-display); font-style: italic; font-weight: 400; }
html[data-theme="peonia"][data-access='1'] .inv-hero__title { text-shadow: none; font-size: clamp(2.7rem, 12vw, 3.5rem); line-height: 1.1; }
html[data-theme="peonia"][data-access='1'] .inv-story__sig,
html[data-theme="peonia"][data-access='1'] .inv-footer__text { font-size: 2rem; }
