[
  {
    "number": 1,
    "id": "s2-protocolo-marfil",
    "name": "Protocolo Marfil",
    "collection": "classic",
    "pitch": "Un tarjetón ceremonial centrado de doble marco, con fotografía secundaria y capítulos separados por filetes sobre papel marfil.",
    "audience": "Parejas que quieren protocolo legible y una invitación formal capaz de funcionar sin sesión fotográfica.",
    "palette": [
      "#FAF7EF",
      "#EDE5D5",
      "#42372C",
      "#917347",
      "#C9BAA0"
    ],
    "typography": {
      "display": "Cormorant Garamond",
      "body": "DM Sans",
      "note": "Nombres serif de 58–126 px y ampersand cursivo; cuerpo sans de 16 px; portada móvil con nombres de 60 px."
    },
    "signature": "Eje central, doble marco en el tarjetón y filetes dobles entre capítulos; la numeración romana no forma parte del diseño implementado.",
    "hero": "Tarjetón centrado con rótulo ceremonial, identidad opcional, nombres apilados, mensaje, fecha y ciudad; debajo, fotografía secundaria y accesos inline.",
    "navigation": "Accesos inline al pase, regalos y confirmación en portada, según secciones disponibles; sin índice persistente ni menú desplegable propio.",
    "modules": {
      "pass": "Carta de papel suave con pliegue superior, nombre, lugares y contenido privado de la invitación por token.",
      "date": "Día monumental, día de semana y fecha completa centrados, seguidos por el contador de días restantes.",
      "story": "Título y mensaje configurados en columna estrecha centrada, seguidos por una fotografía vertical de la historia.",
      "family": "Familias y padrinos en bloques centrados separados, con los nombres configurados apilados y sin parentescos añadidos.",
      "itinerary": "Programa centrado sin índices visibles, con horas, momentos, dirección, ciudad y notas disponibles separados por líneas cortas.",
      "venues": "Directorio único bajo encabezado centrado, con icono de ubicación y controles compartidos de llegada de la invitación por token.",
      "dress": "Encabezado y nota configurados acompañan muestras circulares de color con sus códigos, centradas sobre papel.",
      "travel": "Contenido compartido de viaje por token bajo encabezado centrado; un mensaje informa cuando no hay datos disponibles.",
      "gifts": "Regalos siempre visibles bajo doble filete, con contenido compartido de regalos o fondo y mensaje cuando falta contenido.",
      "gallery": "Retícula de dos columnas con recortes verticales 4:5 y pies disponibles; una única fotografía ocupa ambas columnas.",
      "menu": "Pliego centrado de doble marco con icono gastronómico, contenido compartido del menú por token o mensaje de disponibilidad.",
      "rsvp": "Bloque centrado de confirmación que aloja contenido personal por token o botón de acceso según el contexto.",
      "concierge": "Recuadro con icono, título y explicación del concierge; aloja contenido de la invitación por token o botón de acceso.",
      "closing": "Ampersand cursivo grande, mensaje de cierre configurado, nombres y fecha completa centrados; sin enlaces propios añadidos."
    },
    "graphics": [
      "Doble marco del tarjetón",
      "Filetes dobles de sección",
      "Ampersand cursivo e identidad opcional",
      "Muestras circulares de vestimenta"
    ],
    "photography": "Fotografía configurada de portada debajo del tarjetón con recorte 3:2; retrato de historia 4:5 y galería de recortes verticales, sin visor propio.",
    "mobile": "Por debajo de 640 px se reducen márgenes y rellenos; el tarjetón mantiene su eje y la foto secundaria pierde sangrías laterales.",
    "motion": "Sin animaciones propias de entrada; respuesta de brillo al pasar sobre botones y reglas de reducción de movimiento.",
    "ready": true,
    "distinguishingRule": "Tarjetón simétrico de doble marco, fotografía secundaria y programa centrado; no describir numerales romanos, firmas o navegación persistente inexistentes."
  },
  {
    "number": 2,
    "id": "s2-sello-real",
    "name": "Sello Real",
    "collection": "classic",
    "pitch": "Una proclama de archivo con sello tipográfico sobredimensionado y un registro lateral de la celebración.",
    "audience": "Parejas que buscan un lenguaje de archivo, iniciales protagonistas y composición formal asimétrica.",
    "palette": [
      "#F2E9D6",
      "#D8C7A4",
      "#2E2639",
      "#70505A",
      "#A68B64"
    ],
    "typography": {
      "display": "Cinzel",
      "body": "Source Sans 3",
      "note": "Versales espaciadas para nombres; cuerpo sans abierto; sello construido con iniciales, nunca escudos de linaje ficticios."
    },
    "signature": "Círculo de iniciales cortado por el borde superior derecho y eje de registro continuo a la izquierda.",
    "hero": "Nombres alineados a la izquierda ocupan siete columnas; sello plano ocupa cinco y fecha aparece en una banda inferior.",
    "navigation": "Registro lateral numerado en escritorio; listado compacto de capítulos en móvil con pase y confirmación accesibles.",
    "modules": {
      "pass": "Credencial nominal con sello plano, número de lugares y acceso privado autorizado por token.",
      "date": "Fecha en banda de registro, con calendario que utiliza datos reales del token autorizado.",
      "story": "Historia como documento de archivo, con subtítulo lateral y párrafos aprobados sin cronología inventada.",
      "family": "Nombres familiares en registro de dos niveles, distinguiendo anfitriones y parentescos realmente configurados.",
      "itinerary": "Actos numerados en filas extensas, con horas a la izquierda y referencias únicas de sede.",
      "venues": "Directorio único como índice de lugares, con direcciones confirmadas y navegación autorizada por token.",
      "dress": "Guía de protocolo en recuadro abierto, con texto aprobado y ninguna interpretación de formalidad.",
      "travel": "Anexo de viaje con hoteles confirmados, condiciones visibles y acciones disponibles mediante token.",
      "gifts": "Regalos siempre visibles bajo sello de capítulo, con opciones verificadas o mensaje aprobado disponible.",
      "gallery": "Fotografías reales como documentos sueltos, con márgenes desiguales y pies alineados al registro lateral.",
      "menu": "Carta gastronómica organizada por tiempos; selección personal y restricciones quedan protegidas por token.",
      "rsvp": "Respuesta nominal al final del registro, con cupos reales y guardado autorizado por token.",
      "concierge": "Mesa de información contextual junto al registro, utilizando exclusivamente datos y operaciones del token.",
      "closing": "Sello final de iniciales, agradecimiento aprobado y acceso discreto a preferencias y privacidad."
    },
    "graphics": [
      "Sello circular tipográfico sin heráldica",
      "Líneas de registro",
      "Iniciales entrelazadas por composición",
      "Banda lateral de folios"
    ],
    "photography": "Retratos pequeños en formatos documentales; ninguna imagen ocupa toda la pantalla ni suplanta una sede real.",
    "mobile": "Sello reducido al encabezado; registro lateral convertido en numeración superior y filas familiares apiladas.",
    "motion": "El sello aparece sin giro; cambios de capítulo con opacidad breve y respeto a movimiento reducido.",
    "ready": false,
    "distinguishingRule": "El sello ocupa espacio editorial real y el cuerpo sigue alineación izquierda; prohibida la portada centrada de Protocolo Marfil."
  },
  {
    "number": 3,
    "id": "s2-carta-manuscrita",
    "name": "Carta Manuscrita",
    "collection": "classic",
    "pitch": "Una carta larga que se transforma en notas prácticas, con firmas manuscritas y márgenes de correspondencia.",
    "audience": "Celebraciones íntimas que prefieren hablar directamente a cada invitado antes de presentar el programa.",
    "palette": [
      "#FFF8E9",
      "#E9DBBD",
      "#332C26",
      "#695950",
      "#AB766A"
    ],
    "typography": {
      "display": "Lora",
      "body": "Source Sans 3",
      "note": "Caveat solamente para firmas aprobadas; lectura larga en sans, títulos serif y fecha con numerales tabulares."
    },
    "signature": "Fecha en esquina, saludo personal y texto continuo; las notas laterales sustituyen divisiones tradicionales de sección.",
    "hero": "Carta alineada a la izquierda dentro de una hoja de 760 px, con nombres abajo del saludo y una firma al pie.",
    "navigation": "Marcador de carta con índice textual; menú móvil por contenidos y botón de respuesta sin ocultar regalos.",
    "modules": {
      "pass": "Nota personal dirigida al invitado, con cupos y pase privado resueltos mediante token.",
      "date": "Fecha en cabecera epistolar, seguida de enlace de calendario con información autorizada por token.",
      "story": "Texto narrativo continuo de la pareja, manteniendo frases aprobadas y firmas reales al cierre.",
      "family": "Dedicatoria familiar integrada en el texto, con nombres aprobados y sin tratamientos inventados.",
      "itinerary": "Posdata extendida con horas en margen y cada momento ligado al directorio de sedes.",
      "venues": "Directorio único presentado como libreta de direcciones, con rutas reales autorizadas por token.",
      "dress": "Nota breve de vestimenta junto al programa, respetando exactamente las indicaciones de anfitriones.",
      "travel": "Notas para quienes viajan, con hospedajes confirmados y acciones consultables mediante token personal.",
      "gifts": "Regalos siempre visibles como posdata dedicada, con opciones aprobadas o mensaje explícito disponible.",
      "gallery": "Fotografías aprobadas intercaladas como recuerdos adjuntos, con bordes rectos y pies escritos legibles.",
      "menu": "Hoja gastronómica adjunta; preferencias alimentarias y cambios personales se guardan mediante token autorizado.",
      "rsvp": "Formulario de respuesta a la carta, con cupos reales y estado persistido por token.",
      "concierge": "Nota de ayuda al final de cada bloque, abriendo conversación contextual protegida por token.",
      "closing": "Despedida aprobada con firmas tipográficas, nombres completos y enlaces finales de privacidad legibles."
    },
    "graphics": [
      "Marcas de pliegue mínimas",
      "Línea de margen epistolar",
      "Firmas tipográficas",
      "Números pequeños de anexos"
    ],
    "photography": "Una imagen adjunta cada dos capítulos, sin polaroids ficticias, cinta adhesiva ni contenido gráfico que simule un recuerdo verdadero.",
    "mobile": "Eliminar notas flotantes e integrarlas tras el párrafo correspondiente; firma manuscrita nunca se usa en información operativa.",
    "motion": "Desplazamiento natural de documento; sin máquina de escribir ni animación que retrase la lectura.",
    "ready": false,
    "distinguishingRule": "La estructura es una correspondencia con anexos, no una sucesión de tarjetas ni la plantilla heredada Carta de Amor."
  },
  {
    "number": 4,
    "id": "s2-relieve-blanco",
    "name": "Relieve Blanco",
    "collection": "classic",
    "pitch": "Papelería blanca con profundidad sutil: una fecha en relieve decorativo y texto funcional oscuro sobre planos limpios.",
    "audience": "Parejas que quieren una experiencia sin color dominante, con énfasis material y pocos elementos.",
    "palette": [
      "#FFFFFF",
      "#F2F1ED",
      "#DBDAD4",
      "#2D2D2C",
      "#77776F"
    ],
    "typography": {
      "display": "Bodoni Moda",
      "body": "Inter",
      "note": "Serif de alto contraste solamente en tamaños grandes; todo dato operativo en sans oscuro, nunca en relieve."
    },
    "signature": "Un numeral de fecha en relieve ocupa el fondo; los capítulos se definen por variaciones de plano blanco.",
    "hero": "Día del evento decorativo de 260 px, nombres oscuros delante y fecha completa accesible en el bloque inferior izquierdo.",
    "navigation": "Fila de enlaces negros sobre blanco; menú móvil sólido, sin transparencia ni iconos de bajo contraste.",
    "modules": {
      "pass": "Placa nominal blanca con texto oscuro, cupos y pase privado recuperados mediante token.",
      "date": "Fecha real en tipografía negra, contrastada con numeral decorativo y calendario autorizado por token.",
      "story": "Historia aprobada en columna angosta, separada del fondo mediante espacio y un cambio de plano.",
      "family": "Nombres familiares en líneas horizontales equilibradas, conservando jerarquías y relaciones realmente aprobadas.",
      "itinerary": "Escalera de planos blancos con horas oscuras y referencias al directorio único de sedes.",
      "venues": "Directorio único en filas sin sombras, con direcciones verificadas y rutas autorizadas por token.",
      "dress": "Vestimenta indicada mediante texto de alto contraste, con muestras únicamente cuando fueron configuradas.",
      "travel": "Información confirmada de viaje sobre plano gris claro, con acciones ligadas al token.",
      "gifts": "Regalos siempre visibles en panel blanco independiente, con opciones aprobadas o mensaje explícito disponible.",
      "gallery": "Fotografías reales con amplios márgenes blancos, evitando filtros que alteren vestidos o tonalidades personales.",
      "menu": "Menú en tipografía negra y líneas finas; preferencias privadas se guardan por token.",
      "rsvp": "Confirmación de controles sólidos oscuros, con cupos reales y respuesta autorizada mediante token.",
      "concierge": "Botón de ayuda negro siempre reconocible, con conversación contextual y operaciones protegidas por token.",
      "closing": "Iniciales decorativas en relieve acompañan agradecimiento oscuro y enlaces accesibles de privacidad y preferencias."
    },
    "graphics": [
      "Relieve CSS exclusivamente decorativo",
      "Planos blancos escalonados",
      "Numeral monumental",
      "Filetes grises con contraste suficiente"
    ],
    "photography": "Pocas fotografías sin filtro; cada imagen se separa del fondo mediante margen, no mediante un marco ornamental.",
    "mobile": "Numeral de fondo reducido; comprobar contraste real de todos los controles y no depender de sombras para separar campos.",
    "motion": "Cambios de plano por opacidad; el relieve permanece estático y no reacciona al movimiento del dispositivo.",
    "ready": false,
    "distinguishingRule": "La profundidad pertenece al fondo; nunca disminuir el contraste del contenido para simular impresión blanca."
  },
  {
    "number": 5,
    "id": "s2-romance-clasico",
    "name": "Romance Clásico",
    "collection": "classic",
    "pitch": "Dos voces paralelas se encuentran en un ampersand central y continúan como un programa de columnas espejadas.",
    "audience": "Parejas que quieren destacar a ambas familias con igual peso y conservar un tono de ceremonia.",
    "palette": [
      "#FAF3ED",
      "#E7D5D0",
      "#4D3038",
      "#9B6974",
      "#BDA392"
    ],
    "typography": {
      "display": "Libre Baskerville",
      "body": "Lato",
      "note": "Nombres serif con misma escala; ampersand grande y cuerpo sans; cursivas reservadas para citas aprobadas."
    },
    "signature": "Dos columnas de igual jerarquía enlazadas por un ampersand; una costura central recorre sólo los capítulos narrativos.",
    "hero": "Nombre de cada integrante en su mitad, ampersand en el espacio central y fecha compartida debajo de ambas voces.",
    "navigation": "Índice común sobre ambas columnas; al desplazarse aparece una barra compacta de pase, fecha y confirmación.",
    "modules": {
      "pass": "Pase nominal bajo ambas voces, con lugares disponibles y acceso privado autorizado por token.",
      "date": "Fecha común une las dos columnas, con calendario basado en datos reales del token.",
      "story": "Dos fragmentos aprobados convergen en relato compartido, sin atribuir palabras no escritas por la pareja.",
      "family": "Familias enfrentadas en columnas equivalentes, con nombres reales y jerarquía visual del mismo tamaño.",
      "itinerary": "Horarios compartidos atraviesan la costura central, referenciando cada momento al directorio único de sedes.",
      "venues": "Directorio único reúne los lugares confirmados, con direcciones completas y rutas autorizadas por token.",
      "dress": "Guía común de vestimenta bajo ambas columnas, mostrando únicamente indicaciones aprobadas por anfitriones.",
      "travel": "Notas de hospedaje divididas entre opciones y condiciones, con consultas protegidas mediante token.",
      "gifts": "Regalos siempre visibles en sección compartida, con opciones verificadas o mensaje aprobado cuando falten.",
      "gallery": "Pares de fotografías reales alternan retratos individuales y compartidos, sin imponer cantidades inexistentes.",
      "menu": "Menú compartido en una columna; preferencias alimentarias individuales se guardan mediante token autorizado.",
      "rsvp": "Formulario único reúne respuesta y acompañantes autorizados, conservando cupos y estado reales del token.",
      "concierge": "Ayuda en el eje común, con respuestas del evento y operaciones personales protegidas por token.",
      "closing": "Los nombres vuelven a unirse bajo agradecimiento aprobado, con privacidad y preferencias en una línea."
    },
    "graphics": [
      "Ampersand tipográfico",
      "Costura central intermitente",
      "Filetes emparejados",
      "Pequeñas comillas para citas reales"
    ],
    "photography": "Dípticos de imágenes reales con igual importancia, sin convertir el diseño en un álbum fotográfico a pantalla completa.",
    "mobile": "Las dos voces se ordenan consecutivamente conservando sus etiquetas; el ampersand mantiene la relación sin comprimir nombres.",
    "motion": "Las columnas aparecen simultáneamente; nunca un miembro primero ni barridos alternados que sugieran jerarquías distintas.",
    "ready": false,
    "distinguishingRule": "La composición depende de dos voces equivalentes y su unión, no de florales, marcos o una postal centrada."
  },
  {
    "number": 6,
    "id": "s2-negro-absoluto",
    "name": "Negro Absoluto",
    "collection": "monochrome",
    "pitch": "Un programa black-tie de nombres sans monumentales, fotografía secundaria monocroma, rótulos verticales y una agenda de filas precisas.",
    "audience": "Bodas nocturnas que necesitan comunicar protocolo y logística con precisión, sin una portada fotográfica.",
    "palette": [
      "#121212",
      "#242424",
      "#FAF8F2",
      "#C8C6BC",
      "#484848"
    ],
    "typography": {
      "display": "DM Sans",
      "body": "DM Sans",
      "note": "Nombres sans en mayúsculas, peso 700 y escala de 52–144 px; cuerpo de 16 px y rótulos verticales de 12 px."
    },
    "signature": "Nombres en mayúsculas dominan la portada; rótulos verticales y reglas separan módulos, mientras el pase adopta una columna lateral de ticket.",
    "hero": "Cabecera con rótulo y fecha, nombres apilados y, debajo, fotografía monocroma 4:3 junto al mensaje, ciudad e identidad opcional.",
    "navigation": "Accesos inline al pase, regalos y confirmación bajo la portada, alineados a la izquierda; no hay índice vertical ni barra fija propia.",
    "modules": {
      "pass": "Ticket con día y mes en franja lateral, nombre, lugares y contenido privado de la invitación por token.",
      "date": "Día de gran escala junto al mes y año, seguido por el contador de días restantes.",
      "story": "Rótulo vertical junto al título y mensaje configurados, con fotografía monocroma vertical en una tercera columna.",
      "family": "Encabezado con categoría y año sobre dos columnas de nombres; en móvil las columnas se apilan.",
      "itinerary": "Filas con índice decimal, hora y momento; direcciones y notas disponibles permanecen dentro de cada entrada.",
      "venues": "Directorio único bajo rótulo vertical, con icono de ubicación y controles compartidos de llegada de la invitación por token.",
      "dress": "Encabezado de programa, nota configurada y muestras rectangulares altas con códigos de color bajo el carril tipográfico.",
      "travel": "Contenido compartido de viaje por token dentro del módulo de programa; mensaje explícito cuando no hay datos disponibles.",
      "gifts": "Regalos siempre visibles en módulo propio, con regla superior, contenido compartido de regalos o fondo y mensaje de disponibilidad.",
      "gallery": "Fotografías en retícula de dos columnas con recortes 4:5 y filtro monocromo, incluyendo pies cuando existen.",
      "menu": "Bloque gastronómico con icono y contenido compartido del menú por token, o mensaje cuando no está disponible.",
      "rsvp": "Título de confirmación de gran escala sobre el contenido personal por token o botón de acceso disponible.",
      "concierge": "Recuadro de asistencia dentro del programa, con icono, explicación y contenido por token o botón de acceso.",
      "closing": "Mensaje de cierre en mayúsculas monumentales, nombres debajo y flecha decorativa; sin créditos ni enlaces propios añadidos."
    },
    "graphics": [
      "Rótulos verticales de sección",
      "Índices decimales del programa",
      "Filetes y división discontinua del ticket",
      "Flecha decorativa del cierre"
    ],
    "photography": "Portada secundaria en recorte 4:3, historia vertical 3:4 y galería 4:5; todas reciben filtro monocromo, sin selector de originales propio.",
    "mobile": "La foto y mensaje de portada se apilan; rótulos verticales permanecen, el programa oculta índices y sus entradas pasan a una columna.",
    "motion": "Sin revelados ni animaciones de actos; botones responden con brillo y la hoja de estilos respeta movimiento reducido.",
    "ready": true,
    "distinguishingRule": "Mayúsculas sans, fotografía monocroma y rótulos verticales definen el programa; una identidad configurada puede aparecer, sin navegación persistente propia."
  },
  {
    "number": 7,
    "id": "s2-blanco-esencial",
    "name": "Blanco Esencial",
    "collection": "monochrome",
    "pitch": "Información organizada por espacio: una sola tipografía, márgenes medidos y acciones inmediatas sin decoración.",
    "audience": "Parejas que valoran claridad, carga ligera y una invitación centrada en decisiones prácticas.",
    "palette": [
      "#FFFFFF",
      "#F4F4F2",
      "#171717",
      "#62625F",
      "#D7D7D2"
    ],
    "typography": {
      "display": "Inter",
      "body": "Inter",
      "note": "Tres escalas y dos pesos; nombres en peso medio, títulos de 28 px y cuerpo de 17 px."
    },
    "signature": "Cada sección comparte un mismo borde izquierdo; el espacio sustituye marcos, sombras, ilustraciones y reglas decorativas.",
    "hero": "Nombres en 64 px arriba de una fecha de 24 px; resumen operativo debajo, todo alineado a un único margen.",
    "navigation": "Enlaces textuales visibles y botón de índice; no iconos aislados ni menús que escondan acciones esenciales.",
    "modules": {
      "pass": "Datos personales en una lista simple, con pase y cupos autorizados por token.",
      "date": "Fecha completa en segunda jerarquía, con calendario conectado a la información real del token.",
      "story": "Historia aprobada en párrafos cortos, sin capitulares, citas adicionales ni fotografías intercaladas por defecto.",
      "family": "Nombres familiares en lista abierta, con parentescos aprobados y separación obtenida solamente mediante espacio.",
      "itinerary": "Lista cronológica compacta con horas alineadas y referencias textuales al directorio único de sedes.",
      "venues": "Directorio único sin tarjetas, mostrando direcciones confirmadas y enlaces de llegada autorizados por token.",
      "dress": "Indicaciones reales de vestimenta en texto directo, con reglas importantes separadas en líneas breves.",
      "travel": "Opciones confirmadas de viaje en listas comparables, con acciones vinculadas al token personal.",
      "gifts": "Regalos siempre visibles con encabezado simple, opciones verificadas o mensaje aprobado cuando no existan.",
      "gallery": "Galería de imágenes reales a ancho constante, con navegación accesible y ningún tratamiento decorativo.",
      "menu": "Menú legible como lista; preferencias personales conservan estado y guardado mediante token autorizado.",
      "rsvp": "Confirmación directa en una pantalla, con cupos reales, respuesta existente y guardado por token.",
      "concierge": "Ayuda identificada mediante texto claro, con información aprobada y acciones personales protegidas por token.",
      "closing": "Agradecimiento breve aprobado por la pareja, seguido de privacidad, preferencias y nombre de Víspera."
    },
    "graphics": [
      "Ningún ornamento",
      "Indicadores funcionales de estado",
      "Espaciado modular de ocho píxeles"
    ],
    "photography": "Opcional y posterior a la información esencial; ningún espacio vacío pretende una imagen que no fue proporcionada.",
    "mobile": "Una columna desde el origen; campos de ancho completo, objetivos táctiles amplios y ningún texto menor de 14 px.",
    "motion": "Sólo cambios funcionales de estado y desplazamiento nativo; ninguna animación de entrada.",
    "ready": false,
    "distinguishingRule": "Un solo margen, una familia tipográfica y cero decoración; no debe parecer una versión blanca de Negro Absoluto."
  },
  {
    "number": 8,
    "id": "s2-tinta-y-papel",
    "name": "Tinta y Papel",
    "collection": "monochrome",
    "pitch": "Una prueba de imprenta nupcial con titulares serif, anotaciones monoespaciadas y pequeñas marcas de edición.",
    "audience": "Parejas cercanas al diseño, la literatura o las artes gráficas que prefieren un lenguaje impreso.",
    "palette": [
      "#ECE8DC",
      "#DAD4C5",
      "#20211F",
      "#56574F",
      "#A6A696"
    ],
    "typography": {
      "display": "Libre Caslon Text",
      "body": "IBM Plex Mono",
      "note": "Serif para narrativa y títulos; mono para etiquetas, horas y datos; cuerpo narrativo nunca completamente monoespaciado."
    },
    "signature": "Marcas de registro sólo en bordes exteriores y notas marginales que explican capítulos reales de la invitación.",
    "hero": "Titular serif ocupa dos tercios; columna de metadatos a la derecha y una gran línea de impresión bajo los nombres.",
    "navigation": "Índice de pliego en una banda monoespaciada; menú móvil organizado por lectura, evento y respuesta.",
    "modules": {
      "pass": "Ficha nominal de impresión con cupos y pase privado recuperados mediante token autorizado.",
      "date": "Fecha como metadato de edición, con acción de calendario basada en el token.",
      "story": "Relato aprobado compuesto como prueba editorial, con notas marginales que nunca alteran el texto original.",
      "family": "Créditos familiares en serif, con relaciones reales aclaradas mediante pequeñas etiquetas monoespaciadas laterales.",
      "itinerary": "Horarios en columna monoespaciada y actos en serif, vinculados al directorio único de sedes.",
      "venues": "Directorio único como registro de producción, con direcciones verificadas y rutas autorizadas por token.",
      "dress": "Indicaciones aprobadas de vestimenta en recuadro editorial abierto, sin ilustraciones que añadan reglas nuevas.",
      "travel": "Anexo técnico de viaje con datos confirmados, condiciones explícitas y consultas protegidas por token.",
      "gifts": "Regalos siempre visibles como anexo numerado, con opciones verificadas o mensaje aprobado disponible.",
      "gallery": "Imágenes reales en hojas de contacto pequeñas, conservando proporciones y pies sin fechas inventadas.",
      "menu": "Menú en composición de imprenta; preferencias privadas utilizan controles claros y guardado por token.",
      "rsvp": "Formulario con etiquetas monoespaciadas y campos amplios, mostrando cupos y estado reales del token.",
      "concierge": "Nota de asistencia marginal abre conversación aprobada, manteniendo contexto y operaciones protegidos por token.",
      "closing": "Colofón editorial con agradecimiento real, nombres y enlaces de privacidad, sin créditos de imprenta ficticios."
    },
    "graphics": [
      "Marcas de registro no funcionales",
      "Notas de margen",
      "Reglas de imprenta",
      "Textura CSS de baja intensidad"
    ],
    "photography": "Hoja de contacto compacta con fotos reales; la textura pertenece al fondo y nunca degrada las imágenes.",
    "mobile": "Notas marginales pasan a pies; eliminar marcas de registro donde compitan con objetivos táctiles.",
    "motion": "Ninguna simulación de impresión ni ruido animado; enfoque visible y cambios funcionales de 120 ms.",
    "ready": false,
    "distinguishingRule": "Debe sentirse una prueba editorial anotada, no papel artesanal genérico ni una galería fotográfica heredada."
  },
  {
    "number": 9,
    "id": "s2-noche-de-gala",
    "name": "Noche de Gala",
    "collection": "monochrome",
    "pitch": "Un vestíbulo de teatro convertido en invitación: nombres serif sobre escenario oscuro y pausas amplias de papel claro.",
    "audience": "Celebraciones nocturnas que desean dramatismo formal sin códigos de lujo metálico ni decoración dorada.",
    "palette": [
      "#101113",
      "#F0EEE8",
      "#313339",
      "#8A8B8D",
      "#C9C8C3"
    ],
    "typography": {
      "display": "DM Serif Display",
      "body": "Manrope",
      "note": "Serif de gran escala con interlineado generoso; sans de 16 px y etiquetas claras, sin composición condensada."
    },
    "signature": "Una apertura ovalada abstracta organiza la portada; los bloques claros actúan como intermedios dentro de la noche.",
    "hero": "Nombres serif centrados en un vacío oval oscuro; fecha en base horizontal y protocolo en una pequeña cartela lateral.",
    "navigation": "Barra superior como programa teatral; menú móvil sólido con accesos a pase, agenda, regalos y confirmación.",
    "modules": {
      "pass": "Entrada nominal oscura de bordes rectos, con cupos y pase privado autorizados por token.",
      "date": "Fecha al pie del escenario tipográfico, con calendario real disponible mediante token autorizado.",
      "story": "Historia aprobada ocupa un intermedio claro, con título serif y párrafos de ancho cómodo.",
      "family": "Familias presentadas como anfitriones reales, en créditos espaciados sin atribuciones honoríficas inventadas por diseño.",
      "itinerary": "Programa por actos con pausas visuales claras, referenciando cada lugar al directorio único de sedes.",
      "venues": "Directorio único en intermedio claro, con direcciones confirmadas y acciones de llegada mediante token.",
      "dress": "Protocolo real destacado en cartela lateral ampliada, con condiciones importantes escritas y fácilmente legibles.",
      "travel": "Información confirmada de estancia como programa de acompañamiento, con consultas autorizadas por token.",
      "gifts": "Regalos siempre visibles en intermedio dedicado, con opciones verificadas o mensaje aprobado cuando falten.",
      "gallery": "Retratos reales en formatos verticales separados, sin convertir las fotografías en fondos de lectura.",
      "menu": "Menú del banquete en pliego claro; preferencias personales se guardan mediante token autorizado.",
      "rsvp": "Confirmación sobre fondo claro con controles oscuros, cupos reales y respuesta persistida por token.",
      "concierge": "Asistencia disponible desde el programa, con contexto aprobado y operaciones personales protegidas por token.",
      "closing": "Nombres regresan sobre fondo oscuro, acompañados por agradecimiento aprobado y enlaces claros de privacidad."
    },
    "graphics": [
      "Vacío oval abstracto",
      "Bloques de intermedio claros",
      "Líneas horizontales amplias",
      "Numeración de actos"
    ],
    "photography": "Retratos interiores opcionales, de iluminación variada; no inventar imágenes de un recinto teatral como sede.",
    "mobile": "Óvalo se convierte en curva superior baja; los bloques claros permanecen completos y legibles sin texto superpuesto.",
    "motion": "Fundidos breves entre bloques al entrar en vista; sin apertura de telón ni efectos de iluminación.",
    "ready": false,
    "distinguishingRule": "La alternancia escenario oscuro/intermedio claro y la serif abierta distinguen esta propuesta del programa continuo Negro Absoluto."
  },
  {
    "number": 10,
    "id": "s2-fotografia-monocroma",
    "name": "Fotografía Monocroma",
    "collection": "monochrome",
    "pitch": "Un ensayo fotográfico en blanco y negro, con retrato vertical dominante y datos de evento como pies editoriales.",
    "audience": "Parejas con una selección fotográfica sólida que quieren priorizar imágenes sin sacrificar claridad operativa.",
    "palette": [
      "#F3F3EF",
      "#D4D5D0",
      "#111312",
      "#525650",
      "#A4A79F"
    ],
    "typography": {
      "display": "Oswald",
      "body": "Source Sans 3",
      "note": "Títulos condensados pequeños frente a fotos grandes; datos en sans, numerales tabulares y pies de 14 px como mínimo."
    },
    "signature": "Retrato vertical de gran escala junto a una estrecha columna de nombres y fecha; ningún texto cruza caras.",
    "hero": "Foto real ocupa 70% del ancho, bloque tipográfico 30%; nombres se leen junto al retrato y nunca sobre él.",
    "navigation": "Índice discreto como pie de foto superior; acciones personales en barra sólida independiente de la imagen.",
    "modules": {
      "pass": "Pase nominal en carril blanco lateral, con cupos y acceso privado autorizados por token.",
      "date": "Fecha como pie editorial principal, con calendario basado en datos reales del token.",
      "story": "Fragmentos aprobados acompañan imágenes reales, con secuencia manual y ninguna biografía deducida de las fotografías.",
      "family": "Familias en bloque tipográfico independiente, evitando asociar nombres a rostros sin información aprobada.",
      "itinerary": "Agenda en franja blanca entre fotografías, con horas y referencias al directorio único de sedes.",
      "venues": "Directorio único de lugares confirmados, con imagen real opcional y rutas autorizadas mediante token.",
      "dress": "Vestimenta descrita en texto aprobado, sin deducir formalidad a partir de fotografías editoriales.",
      "travel": "Notas de viaje en columna blanca, con opciones confirmadas y acciones protegidas por token.",
      "gifts": "Regalos siempre visibles fuera de la galería, con opciones aprobadas o mensaje disponible.",
      "gallery": "Secuencia real de retratos grandes y contactos pequeños, con monocromo opcional y originales accesibles.",
      "menu": "Menú sobre fondo sólido, con preferencias personales consultadas y guardadas por token autorizado.",
      "rsvp": "Confirmación independiente de las imágenes, con cupos reales y respuesta persistente mediante token.",
      "concierge": "Ayuda en barra sólida permanente, con información del evento y operaciones protegidas por token.",
      "closing": "Última fotografía aprobada junto al agradecimiento real, con enlaces de privacidad fuera de la imagen."
    },
    "graphics": [
      "Pies numerados",
      "Bordes de hoja de contacto",
      "Separadores de fotograma",
      "Bloques blancos de información"
    ],
    "photography": "Imágenes reales requeridas para la portada; filtro monocromo reversible, proporciones preservadas y alternativa tipográfica si falta material.",
    "mobile": "Retrato arriba y datos debajo; nunca un carril de texto estrecho al lado de una foto en pantalla pequeña.",
    "motion": "Transiciones de galería sin zoom automático; no parallax, autoplay ni transformaciones que recorten rostros.",
    "ready": false,
    "distinguishingRule": "La imagen siempre tiene un pie adyacente y nunca sirve como fondo; evitar la portada cinematográfica de Foto Editorial."
  },
  {
    "number": 11,
    "id": "s2-revista-de-boda",
    "name": "Revista de Boda",
    "collection": "editorial",
    "pitch": "Una edición especial con cabecera de periódico, titulares Bodoni, proporciones variables de columnas y pequeños acentos de tinta roja.",
    "audience": "Parejas que quieren contar su historia como una publicación y tienen contenido real para distintos ritmos de lectura.",
    "palette": [
      "#F5F1E7",
      "#E6E0D5",
      "#25241F",
      "#AB352A",
      "#C2B8A4"
    ],
    "typography": {
      "display": "Bodoni Moda",
      "body": "DM Sans",
      "note": "Titular principal de 52–125 px; mensaje de portada en serif de 21–36 px; narrativa de 17 px y cuerpo modular de 15 px."
    },
    "signature": "Cabecera de doble filete, franja de edición y módulos con folios decimales; la retícula alterna proporciones 2:1, 1:1 y 1:1.7.",
    "hero": "Cabecera con ciudad, nombre de la publicación y año; franja de fecha, nombres grandes y retrato 4:5 junto a mensaje e identidad opcional.",
    "navigation": "Tres accesos inline entre filetes bajo la portada: pase, regalos y confirmación; no existe sumario completo, folio activo ni desplegable propio.",
    "modules": {
      "pass": "Encabezado de edición personal, numeral grande del día y columna con nombre, lugares y contenido privado por token.",
      "date": "Franja de fecha sobre numeral grande del día, mes, año y contador de días restantes en columnas.",
      "story": "Encabezado de capítulo, título y texto con capitular junto a fotografía vertical; no incorpora citas adicionales.",
      "family": "Título entre filetes y nombres configurados en dos columnas equivalentes, apiladas al reducir el ancho.",
      "itinerary": "Agenda de dos columnas con hora acentuada y momento; sin índices visibles, conservando direcciones y notas disponibles.",
      "venues": "Directorio único bajo folio de sección, con icono de ubicación y controles compartidos de llegada por token.",
      "dress": "Título lateral separado por filete, nota configurada y muestras rectangulares con códigos de color en la columna contigua.",
      "travel": "Encabezado lateral de revista junto al contenido compartido de viaje por token, con mensaje cuando falta información.",
      "gifts": "Regalos siempre visibles como sección con folio decimal, contenido compartido de regalos o fondo y mensaje de disponibilidad.",
      "gallery": "Galería en columnas 2:1 con fotografías 4:5; la segunda baja al borde inferior y aparecen pies disponibles.",
      "menu": "Columna gastronómica con icono y contenido compartido del menú por token, o mensaje cuando no está disponible.",
      "rsvp": "Sección de una columna con encabezado editorial y contenido personal de confirmación por token o botón de acceso.",
      "concierge": "Recuadro de asistencia dentro de la sección editorial, con explicación y contenido por token o botón de acceso.",
      "closing": "Mensaje final en titular grande y pie de doble filete con nombres y fecha, sin enlaces propios añadidos."
    },
    "graphics": [
      "Cabecera y filetes dobles",
      "Folios decimales de sección",
      "Capitular de la historia",
      "Ampersand de portada y acentos rojos"
    ],
    "photography": "Retratos configurados en recorte 4:5; portada y galería cambian las proporciones de sus columnas, sin texto sobre imágenes ni visor propio.",
    "mobile": "Cabecera simplificada, portada y módulos en una columna; retrato de historia al 82% alineado a la derecha, galería conserva columnas desiguales.",
    "motion": "No hay paso de páginas ni animaciones propias; interacción mediante botones y reglas de reducción de movimiento.",
    "ready": true,
    "distinguishingRule": "Cabecera de periódico, folios decimales y relaciones variables de columnas; no prometer una retícula de doce columnas o sumario activo inexistentes."
  },
  {
    "number": 12,
    "id": "s2-manifiesto",
    "name": "Manifiesto",
    "collection": "editorial",
    "pitch": "Una declaración de intención compuesta con frases grandes, numeración continua y bandas de color que ordenan la información.",
    "audience": "Parejas con una voz directa que prefieren texto protagonista y una celebración de carácter contemporáneo.",
    "palette": [
      "#F5EEDF",
      "#1B2B34",
      "#D9583E",
      "#DCCCAE",
      "#B9C7C8"
    ],
    "typography": {
      "display": "Archivo Black",
      "body": "Archivo",
      "note": "Titulares de 84 px en bloque; cuerpo de 18 px; no aplicar mayúsculas a respuestas, direcciones ni párrafos largos."
    },
    "signature": "Capítulos encabezados por una frase real de la pareja y número de tres dígitos; el texto define las formas.",
    "hero": "Nombres en bloque alineados a un borde; una frase aprobada cruza una banda de color y la fecha ocupa la siguiente línea.",
    "navigation": "Índice numerado de declaraciones; controles personales en banda independiente para no confundirse con titulares.",
    "modules": {
      "pass": "Bloque nominal directo con cupos autorizados, pase privado y acciones personales vinculadas al token.",
      "date": "Fecha en una línea de gran escala, con calendario basado en datos reales del token.",
      "story": "Declaraciones aprobadas se ordenan en párrafos numerados, sin convertir resúmenes automáticos en promesas de la pareja.",
      "family": "Familias en bloque de reconocimiento, con nombres y parentescos reales distribuidos en líneas abiertas.",
      "itinerary": "Agenda como lista de acciones numeradas, con horas precisas y referencias al directorio único de sedes.",
      "venues": "Directorio único en filas anchas, con direcciones confirmadas y acciones de ruta autorizadas por token.",
      "dress": "Indicaciones reales de vestimenta como declaración breve, con excepciones y restricciones en cuerpo legible.",
      "travel": "Datos confirmados de viaje organizados por decisión, con consultas personales vinculadas al token autorizado.",
      "gifts": "Regalos siempre visibles en banda propia, con opciones aprobadas o mensaje real disponible.",
      "gallery": "Fotografías aprobadas interrumpen las declaraciones en formatos grandes, sin filtros ni collage de material ficticio.",
      "menu": "Menú en lista numerada de tiempos; preferencias privadas conservan selección y guardado por token.",
      "rsvp": "Confirmación de pregunta única visible, con cupos reales y respuesta guardada mediante token autorizado.",
      "concierge": "Ayuda como acción textual inequívoca, con información aprobada y operaciones protegidas por token.",
      "closing": "Última declaración aprobada junto a nombres y enlaces de privacidad, sin consignas añadidas por diseño."
    },
    "graphics": [
      "Numeración de tres dígitos",
      "Bandas horizontales de tinta",
      "Subrayados rectos",
      "Bloques tipográficos alineados"
    ],
    "photography": "Secundaria; hasta una imagen por tres declaraciones, con color natural y ninguna portada dependiente de fotografía.",
    "mobile": "Ajustar titulares por palabras completas; no letras cortadas ni desplazamiento horizontal provocado por frases largas.",
    "motion": "Cambios de color por sección sin flashes; los titulares no se desplazan lateralmente mientras se leen.",
    "ready": false,
    "distinguishingRule": "La unidad compositiva es una declaración real numerada; no simular brutalismo mediante cajas aleatorias o texto recortado."
  },
  {
    "number": 13,
    "id": "s2-poema",
    "name": "Poema",
    "collection": "editorial",
    "pitch": "Una lectura pausada donde frases aprobadas de la historia conviven con mucho blanco y datos claros en una segunda voz.",
    "audience": "Parejas que desean una invitación íntima y literaria sin recurrir a caligrafía ornamental.",
    "palette": [
      "#F8F5F1",
      "#DFD9D4",
      "#393248",
      "#8C7B96",
      "#B7A995"
    ],
    "typography": {
      "display": "Cormorant Garamond",
      "body": "Literata",
      "note": "Versos o extractos a 44/58; prosa de 18/30; controles en Source Sans 3 y ninguna tipografía manuscrita."
    },
    "signature": "Una columna breve se desplaza dentro de un campo amplio; la información práctica aparece en notas laterales claramente separadas.",
    "hero": "Nombres pequeños arriba, fragmento aprobado de tres líneas en el centro izquierdo y fecha escrita al borde inferior.",
    "navigation": "Índice denominado Contenido con anclas claras; nunca sustituir etiquetas operativas por metáforas difíciles de identificar.",
    "modules": {
      "pass": "Nota personal bajo los nombres, con cupos y pase privado autorizados por token.",
      "date": "Fecha escrita en una línea serena, con calendario del evento autorizado mediante token.",
      "story": "Fragmentos auténticos de la historia se separan con espacio, sin inventar poemas ni atribuciones literarias.",
      "family": "Dedicatorias reales en un bloque aparte, con nombres completos y parentescos aprobados cuando existan.",
      "itinerary": "Horarios en una columna práctica independiente, con referencias claras al directorio único de sedes.",
      "venues": "Directorio único fuera del texto poético, con direcciones confirmadas y rutas autorizadas por token.",
      "dress": "Vestimenta descrita literalmente en nota práctica, sin metáforas que puedan alterar las indicaciones reales.",
      "travel": "Notas confirmadas de estancia y traslado, con acciones claras protegidas por el token personal.",
      "gifts": "Regalos siempre visibles en capítulo identificable, con opciones aprobadas o mensaje real disponible.",
      "gallery": "Fotografías aprobadas aparecen solas entre fragmentos, con proporciones intactas y pies breves no inventados.",
      "menu": "Menú legible separado de la narrativa; preferencias privadas se consultan y guardan por token.",
      "rsvp": "Confirmación de asistencia con lenguaje directo, cupos reales y respuesta persistida mediante token autorizado.",
      "concierge": "Ayuda expresamente identificada como concierge, con contexto aprobado y acciones personales protegidas por token.",
      "closing": "Último fragmento aprobado precede nombres, agradecimiento real y enlaces operativos de privacidad y preferencias."
    },
    "graphics": [
      "Sangrías variables medidas",
      "Pequeños separadores de estrofa",
      "Comillas sólo para citas auténticas",
      "Espacio en blanco como ritmo"
    ],
    "photography": "Pocas imágenes reales sin secuencia obligatoria; evitar fondos de paisaje que atribuyan una ubicación no confirmada.",
    "mobile": "Sangrías máximas de 24 px; no una pantalla por verso y ninguna altura mínima que alargue artificialmente el recorrido.",
    "motion": "Contenido presente desde la carga; sin escritura progresiva ni desvanecimientos que obliguen a esperar para leer.",
    "ready": false,
    "distinguishingRule": "La poesía está en el ritmo editorial, no en copy inventado; no reutilizar la estructura heredada Poesía Tipográfica."
  },
  {
    "number": 14,
    "id": "s2-cronica",
    "name": "Crónica",
    "collection": "editorial",
    "pitch": "Un reportaje de la pareja con notas fechadas, imágenes de archivo reales y una agenda futura claramente separada.",
    "audience": "Parejas que tienen recuerdos documentados y quieren compartirlos sin convertir la invitación en una línea de tiempo genérica.",
    "palette": [
      "#EFEAE0",
      "#343C3E",
      "#A55C47",
      "#B4C0B9",
      "#D3C2A6"
    ],
    "typography": {
      "display": "Merriweather",
      "body": "IBM Plex Sans",
      "note": "Titular serif de 62 px; entradillas de 22 px; fechas monoespaciadas sólo cuando fueron proporcionadas."
    },
    "signature": "Cada recuerdo es una nota documental con fuente de texto real; el margen cronológico desaparece si faltan fechas.",
    "hero": "Titular de nombres sobre una entradilla aprobada; dos fotografías pequeñas de diferentes proporciones forman una franja de reportaje.",
    "navigation": "Índice dividido entre Nuestra historia y La celebración; pase y RSVP siempre fuera de la cronología narrativa.",
    "modules": {
      "pass": "Ficha nominal de invitado separada del reportaje, con cupos y pase privado autorizados por token.",
      "date": "Fecha futura del evento encabeza la agenda, con calendario real vinculado al token.",
      "story": "Crónica aprobada con fechas disponibles y pies auténticos, sin deducir aniversarios ni acontecimientos desde imágenes.",
      "family": "Familias como nombres reconocidos en el relato, con bloque propio de relaciones realmente aprobadas.",
      "itinerary": "Agenda futura distinguida del archivo histórico, con horarios y referencias al directorio único de sedes.",
      "venues": "Directorio único como información de servicio, con direcciones confirmadas y rutas autorizadas por token.",
      "dress": "Guía real de vestimenta dentro de la agenda, sin mezclarla con descripciones del pasado.",
      "travel": "Notas verificadas de viaje con condiciones vigentes, y acciones personales protegidas mediante token autorizado.",
      "gifts": "Regalos siempre visibles en la información práctica, con opciones aprobadas o mensaje explícito disponible.",
      "gallery": "Archivo real con orden elegido por la pareja, mostrando únicamente fechas y pies proporcionados.",
      "menu": "Menú del evento en bloque práctico; preferencias privadas conservan estado y guardado por token.",
      "rsvp": "Confirmación fuera de la crónica, con cupos reales y respuesta guardada mediante token autorizado.",
      "concierge": "Asistencia contextual de la celebración, con datos aprobados y operaciones personales protegidas por token.",
      "closing": "El reportaje cierra con agradecimiento aprobado, nombres reales y enlaces de privacidad claramente separados."
    },
    "graphics": [
      "Notas documentales",
      "Columnas de fecha opcionales",
      "Pies de archivo",
      "Separadores entre pasado y evento"
    ],
    "photography": "Archivo real de la pareja, conservando orden elegido y calidad original; nunca generar recuerdos o fechas para completar huecos.",
    "mobile": "Fechas de archivo pasan arriba de cada nota; agenda futura inicia con un encabezado inequívoco y acciones visibles.",
    "motion": "Entrada suave de notas sin animar una línea cronológica; búsqueda y navegación funcionan con movimiento reducido.",
    "ready": false,
    "distinguishingRule": "El pasado documental y la agenda futura son sistemas separados; no usar la misma línea temporal para ambos."
  },
  {
    "number": 15,
    "id": "s2-geometria-deco",
    "name": "Geometría Déco",
    "collection": "editorial",
    "pitch": "Una composición de escalones, abanicos lineales y proporciones verticales, reinterpretada con tinta plana y sin acabado metálico.",
    "audience": "Parejas que buscan geometría ornamental controlada y una presencia editorial estructurada.",
    "palette": [
      "#F5EBD8",
      "#203B40",
      "#AA563E",
      "#D8C293",
      "#A5B7B2"
    ],
    "typography": {
      "display": "Josefin Sans",
      "body": "Lato",
      "note": "Títulos geométricos de 64 px; nombres completos sin abreviar; cuerpo de 17 px y espaciado sólo en etiquetas cortas."
    },
    "signature": "Escalones tipográficos construyen la portada y reaparecen como saltos de ancho entre capítulos; ningún marco encierra toda la página.",
    "hero": "Nombres sobre tres peldaños de ancho creciente, fecha centrada abajo y abanico lineal limitado a la esquina superior.",
    "navigation": "Pestañas rectas numeradas, con foco evidente; menú móvil mantiene etiquetas completas para regalos y confirmación.",
    "modules": {
      "pass": "Pase nominal de bordes escalonados decorativos, con cupos y acceso privado autorizados por token.",
      "date": "Fecha en base horizontal del escalonamiento, con calendario del evento disponible mediante token autorizado.",
      "story": "Relato aprobado sobre columnas de anchos progresivos, manteniendo un recorrido de lectura inequívoco y continuo.",
      "family": "Nombres familiares agrupados entre separadores geométricos, con relaciones aprobadas y tamaños equivalentes por nivel.",
      "itinerary": "Programa en peldaños horizontales con horas claras, referenciando lugares al directorio único de sedes.",
      "venues": "Directorio único sobre retícula rectangular, con direcciones confirmadas y rutas personales autorizadas por token.",
      "dress": "Indicaciones reales de vestimenta en bloque geométrico abierto, sin códigos sugeridos únicamente por ornamentación.",
      "travel": "Anexos confirmados de viaje en columnas rectas, con condiciones visibles y consultas mediante token.",
      "gifts": "Regalos siempre visibles en un peldaño propio, con opciones verificadas o mensaje aprobado disponible.",
      "gallery": "Fotografías reales en rectángulos de proporciones variadas, sin máscaras que recorten rostros o cuerpos.",
      "menu": "Menú por tiempos entre separadores rectos; preferencias privadas se guardan mediante token autorizado.",
      "rsvp": "Confirmación en bloque sin ornamentación interna, con cupos y respuesta real asociados al token.",
      "concierge": "Ayuda en pestaña claramente rotulada, con datos aprobados y operaciones protegidas por token personal.",
      "closing": "Abanico lineal pequeño acompaña agradecimiento aprobado, nombres reales y enlaces legibles de privacidad y preferencias."
    },
    "graphics": [
      "Escalones de tinta plana",
      "Abanicos lineales",
      "Rectángulos de proporción vertical",
      "Reglas paralelas cortas"
    ],
    "photography": "Interiores de capítulo y nunca dentro de rombos u óvalos; conservar imágenes reales sin filtros metálicos.",
    "mobile": "Peldaños conservan diferencias pequeñas de sangría, nunca reducen el área de lectura o el ancho de campos.",
    "motion": "Geometría estática; fundidos breves de contenido sin abanicos giratorios ni brillos animados.",
    "ready": false,
    "distinguishingRule": "Geometría plana y anchos escalonados sustituyen el lujo metálico; no reutilizar Art Déco Dorado ni marcos perimetrales."
  },
  {
    "number": 16,
    "id": "s2-herbario",
    "name": "Herbario",
    "collection": "nature",
    "pitch": "Un cuaderno botánico de títulos cursivos, ventanas fotográficas en arco y capítulos numerados con imágenes desplazadas.",
    "audience": "Bodas de jardín o parejas interesadas en lo natural que prefieren una experiencia de descubrimiento y lectura.",
    "palette": [
      "#F3F0E5",
      "#DFE5D7",
      "#29422F",
      "#60734D",
      "#B9C1A6"
    ],
    "typography": {
      "display": "Fraunces",
      "body": "DM Sans",
      "note": "Nombres cursivos de 46–100 px en peso 400; cuerpo de 16 px y etiquetas de capítulo de 12 px; títulos interiores también cursivos."
    },
    "signature": "Arcos en fotografías, fecha y muestras de vestimenta; etiquetas de capítulo y una foto inclinada construyen el cuaderno sin ilustraciones botánicas añadidas.",
    "hero": "Nombres cursivos y fecha centrados arriba; debajo, foto vertical en arco a la izquierda y foto cuadrada menor, mensaje e identidad opcional a la derecha.",
    "navigation": "Accesos inline al pase, regalos y confirmación al pie de la portada, según secciones disponibles; no hay índice de capítulos propio.",
    "modules": {
      "pass": "Etiqueta enmarcada sobre fondo suave, con nombre, lugares y contenido privado de la invitación por token.",
      "date": "Día grande dentro de un contorno en arco, con mes y año; contador de días en columna contigua.",
      "story": "Fotografía vertical inclinada dos grados con borde ancho suave, junto al título cursivo y mensaje configurados.",
      "family": "Etiqueta de familias o padrinos sobre nombres configurados apilados, con alineación central y sin genealogías dibujadas.",
      "itinerary": "Programa unido por línea vertical y pequeños nodos circulares, con horas, momentos, direcciones y notas disponibles.",
      "venues": "Directorio único en columna de contenido del capítulo, con icono y controles compartidos de llegada por token.",
      "dress": "Nota configurada y muestras de color con remate en arco, códigos visibles y título cursivo en columna lateral.",
      "travel": "Capítulo con encabezado lateral y contenido compartido de viaje por token, o mensaje cuando no hay información.",
      "gifts": "Regalos siempre visibles en capítulo numerado, con contenido compartido de regalos o fondo y mensaje de disponibilidad.",
      "gallery": "Fotografías 4:5 en dos columnas, todas con remate en arco; las imágenes pares tienen desplazamiento vertical inferior.",
      "menu": "Capítulo gastronómico sobre fondo suave, con icono y contenido compartido del menú por token o mensaje de disponibilidad.",
      "rsvp": "Capítulo de una columna que aloja contenido personal de confirmación por token o botón de acceso según contexto.",
      "concierge": "Recuadro de asistencia con esquina superior redondeada, explicación y contenido por token o botón de acceso.",
      "closing": "Fondo verde profundo con ciudad, mensaje cursivo de cierre, nombres y fecha centrados; sin ilustraciones ni enlaces propios."
    },
    "graphics": [
      "Contornos y recortes en arco",
      "Etiquetas decimales de capítulo",
      "Línea de programa con nodos circulares",
      "Borde ancho e inclinación fija de la foto de historia"
    ],
    "photography": "Portada con foto 3:4 en arco y secundaria cuadrada; historia 3:4 inclinada y galería 4:5 con arcos repetidos y recortes CSS.",
    "mobile": "Portada conserva dos fotografías en columnas, con secundaria desplazada; historia y módulos se apilan, mientras fecha y galería mantienen dos columnas.",
    "motion": "La inclinación de la foto es estática; no hay tallos, apariciones ni animaciones propias y se respeta movimiento reducido.",
    "ready": true,
    "distinguishingRule": "Títulos cursivos centrados, fotografías desfasadas y arcos repetidos componen el cuaderno; no atribuirle tallos, ilustraciones o ventanas exclusivamente de portada."
  },
  {
    "number": 17,
    "id": "s2-jardin-en-acuarela",
    "name": "Jardín en Acuarela",
    "collection": "nature",
    "pitch": "Un paisaje pintado permanece en los bordes mientras el relato y el programa se despliegan en claros amplios de papel.",
    "audience": "Parejas que desean ilustración floral suave, con una experiencia legible y una presencia visual pictórica.",
    "palette": [
      "#FAF4E9",
      "#DBDCCB",
      "#4B5B4B",
      "#BD8B8B",
      "#D9B969"
    ],
    "typography": {
      "display": "Lora",
      "body": "Nunito Sans",
      "note": "Títulos serif de 60 px, cuerpo sans de 17 px; acuarela nunca detrás de texto ni en colores funcionales."
    },
    "signature": "Bandas botánicas pintadas atraviesan sólo los bordes inferiores de capítulos, dejando claros de papel sin forma de tarjeta.",
    "hero": "Nombres arriba a la izquierda y un jardín horizontal pintado ocupa el tercio inferior; fecha queda en un claro separado.",
    "navigation": "Índice simple sobre papel sólido; accesos de pase, regalos y confirmación no se integran a flores o ilustraciones.",
    "modules": {
      "pass": "Pase nominal sobre claro de papel, con cupos y acceso privado autorizados por token.",
      "date": "Fecha completa sobre fondo limpio, con calendario real asociado al token de invitación.",
      "story": "Historia aprobada discurre entre bandas pintadas inferiores, manteniendo texto oscuro y ancho constante de lectura.",
      "family": "Nombres familiares sobre papel sin ilustración, agrupados únicamente según relaciones aprobadas por la pareja.",
      "itinerary": "Programa vertical en claros amplios, con horas y referencias al directorio único de sedes.",
      "venues": "Directorio único separado de la acuarela, con direcciones confirmadas y rutas autorizadas mediante token.",
      "dress": "Guía real de vestimenta en nota limpia, con muestras configuradas y sin recomendaciones botánicas inventadas.",
      "travel": "Opciones confirmadas de estancia entre bandas ligeras, con consultas personales protegidas por token autorizado.",
      "gifts": "Regalos siempre visibles en claro dedicado, con opciones verificadas o mensaje aprobado disponible.",
      "gallery": "Fotografías reales conservan color y bordes rectos, sin convertirlas artificialmente en pinturas de acuarela.",
      "menu": "Menú sobre papel sólido, con preferencias privadas consultadas y guardadas mediante token autorizado.",
      "rsvp": "Formulario en área totalmente limpia, con cupos reales y estado guardado mediante token personal.",
      "concierge": "Ayuda de alto contraste fuera del jardín, con contexto y operaciones protegidos por token.",
      "closing": "Última banda floral acompaña agradecimiento aprobado y nombres, dejando privacidad y preferencias sobre papel limpio."
    },
    "graphics": [
      "Bandas florales pintadas originales",
      "Bordes pigmentados discretos",
      "Claros amplios de papel",
      "Manchas de acuarela fuera de áreas de lectura"
    ],
    "photography": "Imágenes reales sin filtro pictórico; separar claramente fotografías de las ilustraciones decorativas del jardín.",
    "mobile": "Acuarela se recorta en bordes exteriores sin cubrir texto; mantener campos y acciones completamente sobre fondo sólido.",
    "motion": "Ilustración fija, sin flores que crecen ni pigmento animado; cambios funcionales breves y sobrios.",
    "ready": false,
    "distinguishingRule": "El jardín forma un paisaje horizontal de borde, no ramos en cuatro esquinas ni la secuencia heredada Acuarela Floral."
  },
  {
    "number": 18,
    "id": "s2-olivo",
    "name": "Olivo",
    "collection": "nature",
    "pitch": "Una mesa larga organiza la invitación: título lateral, ramas lineales horizontales y módulos de lectura compartida.",
    "audience": "Bodas de comida larga, campo o jardín que buscan una composición horizontal de convivencia.",
    "palette": [
      "#EFEBDC",
      "#D6D4B8",
      "#3B452B",
      "#8F936A",
      "#B5A17A"
    ],
    "typography": {
      "display": "Marcellus",
      "body": "DM Sans",
      "note": "Nombres de 62 px con serif abierta; cuerpo de 17 px; etiquetas sin versales excesivas y cifras tabulares."
    },
    "signature": "Una rama lineal horizontal actúa como eje entre capítulos; el título permanece lateral y el contenido se extiende como sobremesa.",
    "hero": "Nombre y fecha a la izquierda, fotografía horizontal real a la derecha y una rama pequeña sobre el eje inferior.",
    "navigation": "Fila de capítulos bajo el eje de portada; menú móvil de texto y acciones personales claramente separadas.",
    "modules": {
      "pass": "Lugar nominal al inicio de la mesa, con cupos y pase privado autorizados por token.",
      "date": "Fecha junto a los nombres, con calendario real del evento disponible mediante token.",
      "story": "Relato aprobado en bloques largos bajo el eje horizontal, con títulos laterales y lectura continua.",
      "family": "Nombres familiares reunidos en fila compartida, con relaciones aprobadas y sin asignar asientos ficticios.",
      "itinerary": "Secuencia de momentos bajo una rama abstracta, con referencias claras al directorio único de sedes.",
      "venues": "Directorio único en filas de mesa, con direcciones confirmadas y rutas autorizadas mediante token.",
      "dress": "Indicaciones aprobadas de vestimenta junto al programa, distinguiendo formalidad y recomendaciones prácticas realmente disponibles.",
      "travel": "Notas de hospedaje y traslado en dos columnas, con información confirmada y consultas mediante token.",
      "gifts": "Regalos siempre visibles sobre una sección horizontal propia, con opciones aprobadas o mensaje disponible.",
      "gallery": "Fotografías reales en pares horizontales, preservando su color y sin introducir una mesa inexistente.",
      "menu": "Menú ocupa un pliego horizontal; preferencias privadas conservan selección y guardado mediante token autorizado.",
      "rsvp": "Confirmación al final del eje común, con cupos y respuesta real asociados al token.",
      "concierge": "Ayuda junto a la navegación de mesa, con contexto aprobado y operaciones protegidas por token.",
      "closing": "Rama lineal única bajo agradecimiento aprobado y nombres, con privacidad y preferencias en el margen."
    },
    "graphics": [
      "Una rama de olivo lineal",
      "Eje horizontal persistente",
      "Títulos laterales",
      "Separadores de tramo"
    ],
    "photography": "Formatos horizontales reales de la pareja; la gráfica de olivo es decorativa, no una afirmación sobre la flora del evento.",
    "mobile": "La mesa se vuelve lectura vertical; títulos preceden cada bloque y la rama se reduce a un separador corto.",
    "motion": "Desplazamiento nativo; rama estática y cambios de estado sin movimientos pendulares ni hojas flotantes.",
    "ready": false,
    "distinguishingRule": "El sistema depende de un eje horizontal y títulos laterales; no una variante verde de Herbario ni un marco vegetal."
  },
  {
    "number": 19,
    "id": "s2-bosque",
    "name": "Bosque",
    "collection": "nature",
    "pitch": "Una retícula de franjas verticales alterna tinta verde, luz de papel y fotografías estrechas, como un recorrido entre troncos.",
    "audience": "Parejas que quieren naturaleza de tonos profundos con organización arquitectónica y sin fantasía de cuento.",
    "palette": [
      "#172E25",
      "#F0EEE3",
      "#657363",
      "#A6AC92",
      "#B28E6B"
    ],
    "typography": {
      "display": "Bitter",
      "body": "Public Sans",
      "note": "Serif robusta para títulos de 56 px; sans de 17 px sobre fondos sólidos; etiquetas verticales sólo decorativas."
    },
    "signature": "Franjas de distinto ancho ordenan toda la experiencia; las fotos son ventanas verticales y no fondos cinematográficos.",
    "hero": "Nombre en franja verde de seis columnas, retrato vertical de cuatro y fecha en carril claro de dos.",
    "navigation": "Carril claro de índice en escritorio; menú móvil oscuro con enlaces claros y accesos personales persistentes.",
    "modules": {
      "pass": "Pase nominal en franja clara, con cupos y acceso privado autorizados por token.",
      "date": "Fecha real ocupa un carril propio, con calendario autorizado por token fuera de imágenes.",
      "story": "Historia aprobada en franja de papel, junto a ventana fotográfica real que conserva lectura continua.",
      "family": "Familias reunidas en columnas claras, con nombres completos y relaciones aprobadas por los anfitriones.",
      "itinerary": "Agenda vertical con horas en carril fijo y referencias al directorio único de sedes.",
      "venues": "Directorio único sobre fondo claro, con direcciones confirmadas y rutas autorizadas mediante token personal.",
      "dress": "Vestimenta indicada sobre papel claro, con condiciones reales del terreno y ninguna suposición climática.",
      "travel": "Viaje organizado en franjas de información confirmada, con acciones personales protegidas mediante token autorizado.",
      "gifts": "Regalos siempre visibles en franja dedicada, con opciones aprobadas o mensaje explícito disponible.",
      "gallery": "Ventanas verticales muestran fotografías reales, con originales accesibles y recortes revisados para preservar rostros.",
      "menu": "Menú en carril claro de lectura; preferencias privadas se guardan mediante token autorizado.",
      "rsvp": "Confirmación sobre franja amplia y sólida, con cupos y estado reales del token personal.",
      "concierge": "Ayuda en carril funcional permanente, con información aprobada y operaciones protegidas mediante token autorizado.",
      "closing": "Franjas convergen en bloque final claro, con agradecimiento real, nombres y enlaces legibles de privacidad."
    },
    "graphics": [
      "Franjas verticales de tinta",
      "Ventanas fotográficas estrechas",
      "Marcas de capítulo horizontales",
      "Textura granular mínima"
    ],
    "photography": "Retratos o vegetación real autorizada; si no existe fotografía del bosque, no fingir que una imagen decorativa representa la sede.",
    "mobile": "Franjas se apilan, conservando sólo un carril de 12 px como firma; no texto girado ni columnas de lectura estrechas.",
    "motion": "Franjas estáticas; sin niebla, luces flotantes, parallax o secuencias de bosque animado.",
    "ready": false,
    "distinguishingRule": "La naturaleza se expresa con franjas verticales y tinta, no mediante una escena inmersiva como Bosque Encantado."
  },
  {
    "number": 20,
    "id": "s2-flores-silvestres",
    "name": "Flores Silvestres",
    "collection": "nature",
    "pitch": "Una colección de pequeñas flores impresas acompaña títulos desplazados y listas amplias, sin arreglos simétricos ni acuarela.",
    "audience": "Bodas diurnas que quieren color contenido, ilustración suelta y un aire de publicación independiente.",
    "palette": [
      "#FFF6DD",
      "#344E41",
      "#D45A65",
      "#557B9B",
      "#D8A93C"
    ],
    "typography": {
      "display": "DM Serif Text",
      "body": "Work Sans",
      "note": "Serif de 58 px, sans de 17 px; color en títulos cortos, manteniendo texto operativo en verde oscuro."
    },
    "signature": "Pequeñas flores de tinta plana aparecen en márgenes alternos; cada capítulo cambia la sangría, nunca el patrón funcional.",
    "hero": "Nombres descentrados hacia abajo, fecha arriba a la derecha y tres flores pequeñas en bordes separados, sin ramo central.",
    "navigation": "Índice de texto sobre papel amarillo claro; botones sólidos para pase y confirmación, con regalos a un toque.",
    "modules": {
      "pass": "Ficha nominal con una flor marginal, cupos reales y pase privado autorizado por token.",
      "date": "Fecha sobre papel limpio en esquina superior, con calendario del evento autorizado por token.",
      "story": "Historia aprobada en párrafos desplazados, acompañada por flores pequeñas que nunca sustituyen información o puntuación.",
      "family": "Nombres familiares en grupos abiertos, con relaciones aprobadas y flores sólo fuera del texto.",
      "itinerary": "Momentos en lista de sangrías alternas, con horas y referencias al directorio único de sedes.",
      "venues": "Directorio único en columna estable, con direcciones confirmadas y rutas autorizadas por token personal.",
      "dress": "Guía real de vestimenta con muestras configuradas, sin inferir una obligación floral por el diseño.",
      "travel": "Opciones confirmadas de viaje en notas amplias, con acciones disponibles mediante token autorizado.",
      "gifts": "Regalos siempre visibles junto a flor distintiva, con opciones aprobadas o mensaje explícito disponible.",
      "gallery": "Imágenes reales se alternan con márgenes coloreados, sin pegatinas sobre rostros ni alteraciones fotográficas obligatorias.",
      "menu": "Menú en lista limpia con separadores mínimos; preferencias privadas se guardan por token autorizado.",
      "rsvp": "Formulario de confirmación sin ilustraciones internas, con cupos y respuesta real asociados al token.",
      "concierge": "Ayuda claramente rotulada en botón sólido, con contexto aprobado y operaciones protegidas por token.",
      "closing": "Tres flores pequeñas rodean agradecimiento aprobado y nombres, dejando privacidad y preferencias fuera del conjunto."
    },
    "graphics": [
      "Flores de tinta plana originales",
      "Registro desplazado decorativo mínimo",
      "Sangrías alternas",
      "Puntos de color fuera de los datos"
    ],
    "photography": "Fotografía natural de la pareja; el carácter impreso se reserva para ilustraciones, no para reducir la calidad de las fotos.",
    "mobile": "Flores reducidas a márgenes de 20 px; todas las listas operativas recuperan un borde izquierdo constante.",
    "motion": "Sin pétalos volando; flores estáticas y estados funcionales con cambios cortos de color.",
    "ready": false,
    "distinguishingRule": "Las flores son pequeñas marcas de margen impresas, no una acuarela de jardín ni ramos que enmarcan secciones."
  },
  {
    "number": 21,
    "id": "s2-horizonte",
    "name": "Horizonte",
    "collection": "destination",
    "pitch": "Un diario costero con panorama de ancho completo, nombres sans ligeros, pase viajero y módulos de información abiertos en columnas.",
    "audience": "Bodas de destino costero que necesitan combinar emoción, itinerario y orientación para invitados que viajan.",
    "palette": [
      "#F6F8F5",
      "#DCECEF",
      "#173E51",
      "#366F88",
      "#B8CFD5"
    ],
    "typography": {
      "display": "DM Sans",
      "body": "DM Sans",
      "note": "Nombres de 46–122 px y títulos en peso 300; cuerpo de 16 px; horas de programa de 32 px y día de hasta 165 px."
    },
    "signature": "Panorama sin márgenes laterales, banda inferior de datos y pase con cabecera y pie contrastados; títulos ligeros acompañan contenido en columnas abiertas.",
    "hero": "Rótulo de destino y año, nombres ligeros alineados a la izquierda, panorama ancho y banda inferior con fecha, mensaje y ciudad; identidad opcional y accesos después.",
    "navigation": "Accesos inline al pase, regalos y confirmación bajo la portada, alineados a la izquierda; no incluye índice de viaje ni navegación persistente propia.",
    "modules": {
      "pass": "Pase viajero con cabecera personal, año, nombre, lugares y contenido privado por token; ciudad y flecha en el pie.",
      "date": "Día grande junto al mes y año, separado del contador de días por un filete vertical en escritorio.",
      "story": "Encabezado en columnas sobre fotografía vertical 4:5 y mensaje configurado contiguo; sin notas adicionales ni retrato horizontal.",
      "family": "Etiqueta lateral y columna amplia de nombres configurados en sans ligera, separadas del capítulo anterior por filete.",
      "itinerary": "Agenda vertical sin índices visibles, con horas grandes sobre cada momento, dirección y notas disponibles; sin agrupación propia por días.",
      "venues": "Directorio único en columna abierta junto al título, con icono y controles compartidos de llegada por token.",
      "dress": "Título lateral, nota configurada y muestras de color rectangulares contiguas, con sus códigos escritos debajo.",
      "travel": "Título ligero lateral junto al contenido compartido de viaje por token, o mensaje cuando no hay información.",
      "gifts": "Regalos siempre visibles en módulo abierto de columnas, con contenido compartido de regalos o fondo y mensaje de disponibilidad.",
      "gallery": "Primera fotografía ocupa todo el ancho en recorte panorámico; las restantes forman dos columnas verticales con pies disponibles.",
      "menu": "Módulo abierto con icono gastronómico y contenido compartido del menú por token, o mensaje cuando no está disponible.",
      "rsvp": "Sección de una columna sobre fondo suave, con contenido personal de confirmación por token o botón de acceso.",
      "concierge": "Asistencia sin marco en disposición flexible, con icono, explicación y contenido por token o botón de acceso.",
      "closing": "Nombres y mensaje grande alineados a la izquierda, seguidos por línea horizontal y fecha; sin enlaces propios añadidos."
    },
    "graphics": [
      "Panorama sin márgenes laterales",
      "Cabecera y pie contrastados del pase",
      "División discontinua del ticket",
      "Filetes horizontales y flecha del pase"
    ],
    "photography": "Panorama de portada recortado a 2.2:1 en escritorio y 1.15:1 en móvil; historia 4:5 y primera foto de galería 2:1, sin visor propio.",
    "mobile": "El panorama cambia de recorte; datos inferiores, historia y módulos pasan a una columna, y el contador queda bajo la fecha.",
    "motion": "Sin fundidos, olas o animaciones propias; conserva interacción de botones y reglas de reducción de movimiento.",
    "ready": true,
    "distinguishingRule": "Panorama de ancho completo con recorte responsive, sans ligera y pase propio; no confundir ancho completo con preservación del encuadre original."
  },
  {
    "number": 22,
    "id": "s2-arena",
    "name": "Arena",
    "collection": "destination",
    "pitch": "Una invitación de aire abierto donde una fecha monumental, planos cálidos y amplias pausas sustituyen las postales de playa.",
    "audience": "Parejas que prefieren tonos minerales y una experiencia de destino sin iconografía marina evidente.",
    "palette": [
      "#F2E8D5",
      "#E2CFAF",
      "#655440",
      "#B79268",
      "#C9B994"
    ],
    "typography": {
      "display": "Prata",
      "body": "Karla",
      "note": "Fecha serif monumental y nombres de 60 px; cuerpo sans de 18 px en marrón oscuro de contraste verificado."
    },
    "signature": "Planos de arena abstractos cambian el nivel de la página; la fecha, no una fotografía, domina la portada.",
    "hero": "Día del evento en gran escala alineado abajo, nombres encima y mes completo en una columna derecha; fondo de dos planos cálidos.",
    "navigation": "Barra textual sobre papel sólido, con índice compacto y accesos personales separados de los planos decorativos.",
    "modules": {
      "pass": "Pase nominal sobre plano claro, con cupos reales y acceso privado autorizado por token.",
      "date": "Fecha monumental acompañada de versión completa accesible, con calendario real disponible mediante token autorizado.",
      "story": "Relato aprobado en una columna desplazada, con grandes pausas de papel y ningún paisaje textual inventado.",
      "family": "Familias en líneas de distinto ancho, con nombres reales y jerarquías aprobadas por anfitriones.",
      "itinerary": "Programa en niveles cálidos horizontales, con horas claras y referencias al directorio único de sedes.",
      "venues": "Directorio único sobre plano liso, con direcciones confirmadas y rutas autorizadas mediante token personal.",
      "dress": "Indicaciones reales de vestimenta y terreno, sin asumir playa, arena o temperaturas por la paleta.",
      "travel": "Información confirmada de viaje organizada por prioridad, con condiciones visibles y consultas mediante token.",
      "gifts": "Regalos siempre visibles en un plano dedicado, con opciones aprobadas o mensaje real disponible.",
      "gallery": "Fotografías reales en formatos moderados, con color original y sin filtros sepia impuestos por diseño.",
      "menu": "Menú sobre papel liso y oscuro texto; preferencias privadas se guardan mediante token autorizado.",
      "rsvp": "Confirmación en área clara de alto contraste, con cupos y respuesta real asociados al token.",
      "concierge": "Ayuda en control sólido claramente rotulado, con contexto aprobado y operaciones protegidas por token.",
      "closing": "Último plano cálido bajo nombres y agradecimiento aprobado, con privacidad y preferencias en texto oscuro."
    },
    "graphics": [
      "Planos minerales abstractos",
      "Numeral de fecha monumental",
      "Cambios de nivel horizontal",
      "Separadores cortos color tierra"
    ],
    "photography": "Opcional y escasa; no exigir playa ni dunas reales cuando la pareja sólo busca el lenguaje cromático.",
    "mobile": "Fecha monumental ajustada sin desbordamiento; planos decorativos no añaden altura y texto conserva contraste sobre cada fondo.",
    "motion": "Planos estáticos, sin partículas de arena ni cambios de luz; formularios y navegación responden inmediatamente.",
    "ready": false,
    "distinguishingRule": "El sistema es mineral y tipográfico, no una portada costera; no usar la línea panorámica de Horizonte."
  },
  {
    "number": 23,
    "id": "s2-riviera",
    "name": "Riviera",
    "collection": "destination",
    "pitch": "Un programa de estancia con franjas de club costero, una columna operativa y fotografías verticales de vacaciones reales.",
    "audience": "Bodas de varios días que requieren una agenda de viaje clara y quieren un tono de hospitalidad luminosa.",
    "palette": [
      "#FAF5E8",
      "#1C5D76",
      "#D68B63",
      "#A8CBD2",
      "#E9D48C"
    ],
    "typography": {
      "display": "Playfair Display",
      "body": "Montserrat",
      "note": "Nombres de 64 px en serif; labels sans de 14 px, cuerpo de 17 px y agenda con numerales tabulares."
    },
    "signature": "Una franja rayada estrecha separa una fotografía vertical de una columna operativa de estancia; sin tickets o reservas ficticias.",
    "hero": "Foto real de 60% y panel de nombres, fecha y resumen de 40%; raya bicolor vertical funciona como costura central.",
    "navigation": "Pestañas por capítulos de estancia reales; pase, regalos y confirmación siempre se identifican con etiquetas explícitas.",
    "modules": {
      "pass": "Ficha personal de bienvenida, con cupos y pase privado autorizados mediante token de invitación.",
      "date": "Fecha del evento en panel de estancia, con calendario real disponible mediante token autorizado.",
      "story": "Historia aprobada acompaña una imagen vertical real, con texto directo y ningún itinerario romántico inventado.",
      "family": "Familias como anfitriones reconocidos, con nombres y relaciones aprobadas en una columna independiente legible.",
      "itinerary": "Programa por jornadas realmente configuradas, con horarios y referencias al directorio único de sedes.",
      "venues": "Directorio único de lugares confirmados, con rutas autorizadas por token y sin repetir fichas hoteleras.",
      "dress": "Vestimenta por momento real del evento, con condiciones aprobadas y sin suponer códigos de resort.",
      "travel": "Estancia organizada entre alojamiento y traslado, con opciones confirmadas y consultas personales mediante token.",
      "gifts": "Regalos siempre visibles en el programa de estancia, con opciones aprobadas o mensaje disponible.",
      "gallery": "Fotografías reales en formato vertical y dípticos, conservando lugar y contexto sólo cuando fueron proporcionados.",
      "menu": "Menú por evento disponible, con preferencias personales consultadas y guardadas mediante token autorizado.",
      "rsvp": "Confirmación del acceso realmente asignado, con cupos y respuesta del token sin reservas ficticias.",
      "concierge": "Ayuda de estancia claramente identificada, con información aprobada y operaciones personales protegidas por token.",
      "closing": "Franja rayada corta cierra agradecimiento aprobado y nombres, junto a enlaces claros de privacidad y preferencias."
    },
    "graphics": [
      "Raya bicolor estrecha",
      "Etiquetas de jornada real",
      "Panel de hospitalidad",
      "Separadores tipo costura"
    ],
    "photography": "Una fotografía vertical aprobada domina; nunca usar imágenes genéricas de hotel como si fueran una reserva o sede confirmada.",
    "mobile": "Panel operativo precede a la fotografía; rayas quedan como borde de 6 px y jornadas se consultan en lista vertical.",
    "motion": "Cambios de pestaña sin deslizar toda la página; no banderas ondeantes, video de alberca ni autoplay.",
    "ready": false,
    "distinguishingRule": "La retícula es una ficha de hospitalidad vertical con costura rayada; no un diario panorámico ni un pase de embarque."
  },
  {
    "number": 24,
    "id": "s2-costa-mediterranea",
    "name": "Costa Mediterránea",
    "collection": "destination",
    "pitch": "Una terraza editorial de planos azules y blancos, organizada en niveles rectangulares con pequeños acentos de cerámica abstracta.",
    "audience": "Parejas que buscan luz, azul profundo y composición arquitectónica sin recurrir a limones, postales o clichés geográficos.",
    "palette": [
      "#F8F4E8",
      "#194F81",
      "#8DB4CA",
      "#D8B272",
      "#B95F47"
    ],
    "typography": {
      "display": "Lora",
      "body": "Source Sans 3",
      "note": "Serif de 66 px sobre planos blancos; sans de 17 px; azul profundo para información, tonos claros sólo decorativos."
    },
    "signature": "Capítulos apoyados en niveles rectangulares como terrazas; el azul aparece en planos sólidos y no en marcos florales.",
    "hero": "Nombres blancos sobre cuadrado azul a la izquierda, fotografía real rectangular elevada a la derecha y fecha en la base común.",
    "navigation": "Fila de anclas sobre un zócalo claro; menú móvil de texto con acceso directo a viaje, regalos y confirmación.",
    "modules": {
      "pass": "Pase nominal en plano blanco elevado, con cupos y acceso privado autorizados por token.",
      "date": "Fecha real sobre la base de portada, con calendario del evento disponible mediante token.",
      "story": "Relato aprobado ocupa dos niveles de lectura, con fotografía real y texto siempre sobre plano sólido.",
      "family": "Familias en terraza tipográfica común, con nombres completos y relaciones aprobadas por los anfitriones.",
      "itinerary": "Agenda descendente por niveles rectangulares, con horas y referencias al directorio único de sedes.",
      "venues": "Directorio único en plano claro continuo, con direcciones confirmadas y rutas autorizadas mediante token.",
      "dress": "Vestimenta real en nota práctica, sin inferir tradición mediterránea, clima o protocolo desde la gráfica.",
      "travel": "Datos confirmados de estancia y traslado, ordenados en niveles claros con consultas mediante token.",
      "gifts": "Regalos siempre visibles en terraza propia, con opciones aprobadas o mensaje real cuando falten.",
      "gallery": "Fotografías aprobadas se apoyan en planos azules, conservando color original y proporciones sin recortes ornamentales.",
      "menu": "Menú en bloque blanco de lectura; preferencias privadas se consultan y guardan por token.",
      "rsvp": "Confirmación sobre plano sólido sin decoración interna, con cupos y respuesta real del token.",
      "concierge": "Ayuda en zócalo funcional visible, con contexto aprobado y operaciones protegidas mediante token autorizado.",
      "closing": "Pequeño plano azul sostiene nombres y agradecimiento aprobado, dejando privacidad y preferencias en blanco legible."
    },
    "graphics": [
      "Planos de terraza abstractos",
      "Pequeñas líneas de cerámica",
      "Zócalo azul",
      "Rectángulos desplazados con anchos medidos"
    ],
    "photography": "Fotografías reales sin exigir una costa europea; el estilo no debe atribuir un país, ciudad o sede no configurados.",
    "mobile": "Terrazas se reducen a sangrías pequeñas y alternancia de fondo; evitar anchos que estrechen formulario o direcciones.",
    "motion": "Planos fijos; sin desplazamientos de perspectiva, sombras de sol animadas ni transición de postal.",
    "ready": false,
    "distinguishingRule": "La arquitectura de terrazas manda; no reutilizar Mediterráneo Azul, Talavera ni la portada de Horizonte."
  },
  {
    "number": 25,
    "id": "s2-atardecer",
    "name": "Atardecer",
    "collection": "destination",
    "pitch": "Un programa marcado por tiempo y color, con un disco de fecha y transiciones amplias entre coral, papel y violeta.",
    "audience": "Parejas que buscan calidez cromática y una celebración visual del paso del día a la noche.",
    "palette": [
      "#F8E6D1",
      "#E7A181",
      "#C76064",
      "#48354F",
      "#A18FA9"
    ],
    "typography": {
      "display": "Forum",
      "body": "Manrope",
      "note": "Nombres de 76 px; cuerpo de 17 px sobre fondo sólido; gradientes nunca sostienen texto ni controles críticos."
    },
    "signature": "Disco de fecha abstracto y grandes bandas cromáticas; una regla de horas ordena la agenda sin simular una puesta de sol real.",
    "hero": "Disco coral con día del evento ocupa la derecha; nombres a la izquierda y fecha completa sobre papel debajo.",
    "navigation": "Banda sólida de navegación y acciones; ningún control se confunde con el disco de fecha decorativo.",
    "modules": {
      "pass": "Pase nominal sobre papel sólido, con cupos y acceso privado autorizados mediante token personal.",
      "date": "Fecha completa acompaña el disco decorativo, con calendario real del evento autorizado por token.",
      "story": "Historia aprobada en bloques de papel entre bandas cromáticas, con fragmentos reales y lectura siempre estable.",
      "family": "Nombres familiares en bloque claro compartido, con relaciones aprobadas y sin jerarquías sugeridas por color.",
      "itinerary": "Agenda por horas reales sobre regla temporal, con referencias al directorio único de sedes.",
      "venues": "Directorio único independiente del gradiente, con direcciones confirmadas y rutas autorizadas mediante token personal.",
      "dress": "Vestimenta descrita con condiciones reales, sin asumir temperatura o horario solar por el nombre del diseño.",
      "travel": "Información confirmada de viaje sobre fondo claro, con consultas personales autorizadas mediante token de invitación.",
      "gifts": "Regalos siempre visibles en banda propia, con opciones aprobadas o mensaje explícito cuando falten.",
      "gallery": "Fotografías reales mantienen su luz original, sin filtros que conviertan falsamente escenas diurnas en atardeceres.",
      "menu": "Menú en bloque liso legible; preferencias privadas se consultan y guardan mediante token autorizado.",
      "rsvp": "Confirmación sobre papel de alto contraste, con cupos y respuesta real persistidos por token.",
      "concierge": "Ayuda en botón sólido permanente, con contexto aprobado y operaciones personales protegidas por token.",
      "closing": "Banda violeta final con nombres y agradecimiento aprobado, acompañados de privacidad y preferencias legibles."
    },
    "graphics": [
      "Disco de fecha abstracto",
      "Bandas de coral a violeta",
      "Regla temporal con horas reales",
      "Gradiente decorativo aislado"
    ],
    "photography": "Imágenes reales sin tratamiento horario artificial; los colores evocan un atardecer, no certifican clima ni hora solar.",
    "mobile": "Disco se ubica después de los nombres; revisar contraste por banda y mantener todos los campos en papel sólido.",
    "motion": "Gradiente estático; sin sol descendente, cambios de color automáticos ni animación que sugiera datos astronómicos reales.",
    "ready": false,
    "distinguishingRule": "Disco de fecha y regla de horas, no fotografía de playa ni supuesto horario de puesta de sol."
  },
  {
    "number": 26,
    "id": "s2-hacienda",
    "name": "Hacienda",
    "collection": "place",
    "pitch": "Un programa arquitectónico de portal tipográfico, fotografía vertical, lámina de fecha color terracota y módulos con rótulos laterales.",
    "audience": "Bodas con arquitectura protagonista que quieren tradición material sin folclor decorativo genérico ni escenografía inventada.",
    "palette": [
      "#F5EADD",
      "#E5D0B9",
      "#61382B",
      "#AC5539",
      "#C6A78B"
    ],
    "typography": {
      "display": "Cormorant Garamond",
      "body": "DM Sans",
      "note": "Nombres serif en mayúsculas de 48–90 px y peso 500; ampersand cursivo separado; cuerpo de 16 px y rótulos laterales de 11 px."
    },
    "signature": "Portal superior en arco junto a imagen vertical, filetes dobles y una lámina de fecha de color; los módulos usan columna lateral con número o icono.",
    "hero": "Portal enmarcado a la izquierda con nombres, fecha, identidad opcional y mensaje; fotografía vertical a la derecha y franja inferior de ciudad y accesos.",
    "navigation": "Accesos inline al pase, regalos y confirmación dentro de la franja inferior de portada; no hay índice de capítulos ni plano navegable propio.",
    "modules": {
      "pass": "Franja de bienvenida con día grande junto a nombre, lugares y contenido privado de la invitación por token.",
      "date": "Lámina de color con día de semana, numeral, mes y año, junto al título y contador de días restantes.",
      "story": "Título y mensaje configurados en columna izquierda, junto a fotografía vertical con remate superior en arco.",
      "family": "Título centrado entre filetes dobles y nombres en dos columnas, convertidas en una sola columna en móvil.",
      "itinerary": "Programa de filas con índices enmarcados, horas y momentos, manteniendo dirección y notas disponibles en cada entrada.",
      "venues": "Directorio único bajo rótulo lateral numerado, con icono de ubicación y controles compartidos de llegada por token.",
      "dress": "Nota configurada y muestras rectangulares con contorno interior, códigos visibles y encabezado dentro del módulo lateralmente rotulado.",
      "travel": "Módulo de rótulo lateral con contenido compartido de viaje por token, o mensaje cuando no hay información.",
      "gifts": "Regalos siempre visibles con icono lateral propio, contenido compartido de regalos o fondo y mensaje cuando falta contenido.",
      "gallery": "Retícula de dos columnas con fotografías 4:5; las imágenes pares tienen remate en arco y muestran pies disponibles.",
      "menu": "Menú centrado en doble marco sobre fondo suave, con contenido compartido por token o mensaje de disponibilidad.",
      "rsvp": "Sección de fondo profundo con icono lateral de confirmación, contenido personal por token o botón claro de acceso.",
      "concierge": "Módulo de orientación con rótulo lateral y recuadro de asistencia, explicación y contenido por token o botón de acceso.",
      "closing": "Panel del color de acento con marco interior, ciudad, mensaje configurado, nombres y fecha centrados; sin enlaces propios añadidos."
    },
    "graphics": [
      "Contorno del portal en arco",
      "Filetes dobles",
      "Lámina de fecha con marco interior",
      "Rótulos numerados e iconos laterales de regalos y confirmación"
    ],
    "photography": "Fotografía configurada de portada en columna vertical; historia 3:4 con arco y galería 4:5 con arcos alternos, todas mediante recortes CSS.",
    "mobile": "Portal y foto se apilan; rótulos laterales pasan arriba, fecha se centra y el programa oculta sus índices; foto de portada en recorte 4:5.",
    "motion": "Sin puertas, alzados ni animaciones propias; botones responden al pasar encima y se incluyen reglas de reducción de movimiento.",
    "ready": true,
    "distinguishingRule": "Portal tipográfico, lámina de fecha y rótulos laterales forman el programa; no describir alzados, planos, textura o patio interactivo inexistentes."
  },
  {
    "number": 27,
    "id": "s2-talavera",
    "name": "Talavera",
    "collection": "place",
    "pitch": "Una cuadrícula de taller cerámico con piezas gráficas pequeñas, juntas de papel y títulos que cruzan varios módulos.",
    "audience": "Parejas que quieren una referencia artesanal mexicana reinterpretada con retícula y color, sin saturación de patrones.",
    "palette": [
      "#F7F2E5",
      "#234A8B",
      "#6FA3B8",
      "#D7A342",
      "#B96A47"
    ],
    "typography": {
      "display": "Bree Serif",
      "body": "Source Sans 3",
      "note": "Títulos serif de 58 px con peso robusto; cuerpo sans de 17 px y color oscuro constante en datos."
    },
    "signature": "Pequeñas piezas cerámicas originales ocupan algunas celdas; el texto cruza otras y las juntas blancas mantienen el ritmo.",
    "hero": "Nombres a seis columnas sobre papel, un conjunto cerámico de cuatro celdas a la derecha y fecha cruzando la junta inferior.",
    "navigation": "Índice sobre una junta blanca continua; botones de pase y RSVP nunca parecen mosaicos decorativos.",
    "modules": {
      "pass": "Pase nominal sobre junta amplia de papel, con cupos y acceso privado autorizados por token.",
      "date": "Fecha real atraviesa la retícula sin fragmentarse, con calendario del evento autorizado mediante token.",
      "story": "Relato aprobado ocupa celdas combinadas amplias, con pequeños motivos cerámicos separados de las áreas de lectura.",
      "family": "Familias en celdas de papel equivalentes, con nombres completos y relaciones aprobadas por anfitriones.",
      "itinerary": "Agenda en filas de retícula con horas claras y referencias al directorio único de sedes.",
      "venues": "Directorio único en celdas combinadas, con direcciones confirmadas y rutas personales autorizadas mediante token.",
      "dress": "Indicaciones reales de vestimenta en bloque blanco, sin deducir atuendos tradicionales desde la gráfica cerámica.",
      "travel": "Opciones confirmadas de estancia y traslado, ordenadas en filas con consultas personales mediante token.",
      "gifts": "Regalos siempre visibles en celdas propias, con opciones aprobadas o mensaje real cuando falten.",
      "gallery": "Fotografías reales ocupan celdas rectangulares completas, sin filtros pintados ni patrones superpuestos sobre personas.",
      "menu": "Menú en retícula blanca de lectura; preferencias privadas se consultan y guardan por token.",
      "rsvp": "Confirmación en celda amplia sin motivos internos, con cupos y respuesta real del token.",
      "concierge": "Ayuda claramente rotulada sobre junta continua, con contexto aprobado y operaciones protegidas mediante token.",
      "closing": "Una sola pieza cerámica acompaña agradecimiento aprobado, nombres reales y enlaces de privacidad y preferencias."
    },
    "graphics": [
      "Motivos cerámicos originales simplificados",
      "Juntas de papel",
      "Celdas combinadas",
      "Pequeñas irregularidades manuales de trazo"
    ],
    "photography": "Fotografías reales conservan color; no atribuir procedencia artesanal a motivos abstractos ni presentar imágenes de Puebla como ubicación supuesta.",
    "mobile": "Retícula de dos columnas decorativas, pero texto y formularios abarcan ambas; máximo un motivo junto a cada sección.",
    "motion": "Piezas fijas; sin mosaicos que se ordenan al cargar ni giros de azulejos durante la lectura.",
    "ready": false,
    "distinguishingRule": "La cerámica construye juntas y celdas, no un borde perimetral; no reutilizar Azul Talavera o Talavera Contemporánea."
  },
  {
    "number": 28,
    "id": "s2-desierto",
    "name": "Desierto",
    "collection": "place",
    "pitch": "Un cuaderno de estratos y líneas topográficas abstractas, con composición angular y una paleta de tierra, mineral y tinta.",
    "audience": "Parejas que prefieren paisaje abstracto y diseño de territorio sin cactus, bohemia prefabricada o un destino imaginario.",
    "palette": [
      "#EDE1C9",
      "#A76242",
      "#4B3832",
      "#BAAD8A",
      "#687771"
    ],
    "typography": {
      "display": "Roboto Slab",
      "body": "IBM Plex Sans",
      "note": "Titulares robustos de 60 px; datos sans de 17 px; etiquetas técnicas sin coordenadas, altitudes o mediciones inventadas."
    },
    "signature": "Tres estratos horizontales y cortes angulares organizan el contenido; las curvas decorativas nunca funcionan como mapa de llegada.",
    "hero": "Nombres arriba de un corte geológico abstracto horizontal; fecha en pequeña columna lateral y fotografía real opcional debajo.",
    "navigation": "Índice de capítulos en banda de tinta, con accesos operativos claramente diferenciados de las marcas topográficas.",
    "modules": {
      "pass": "Ficha nominal de programa, con cupos reales y pase privado autorizados mediante token personal.",
      "date": "Fecha real en columna de datos, con calendario del evento disponible mediante token autorizado.",
      "story": "Relato aprobado atraviesa estratos de papel, con títulos angulares y sin biografía inventada del paisaje.",
      "family": "Nombres familiares reunidos en un estrato claro, con relaciones aprobadas y jerarquías textuales legibles.",
      "itinerary": "Agenda por bandas de hora real, con referencias textuales al directorio único de sedes.",
      "venues": "Directorio único separado del dibujo abstracto, con direcciones confirmadas y rutas autorizadas por token.",
      "dress": "Vestimenta y terreno descritos sólo con información aprobada, sin asumir calor, polvo o exteriores.",
      "travel": "Opciones confirmadas de viaje en banda técnica, con condiciones visibles y consultas mediante token.",
      "gifts": "Regalos siempre visibles en estrato propio, con opciones aprobadas o mensaje real cuando falten.",
      "gallery": "Fotografías reales en formatos horizontales y verticales, sin tonos impuestos ni geolocalizaciones supuestas por diseño.",
      "menu": "Menú sobre fondo liso de lectura; preferencias privadas se consultan y guardan por token.",
      "rsvp": "Confirmación en estrato claro sin líneas decorativas, con cupos y respuesta real del token.",
      "concierge": "Ayuda en bloque técnico inequívoco, con información aprobada y operaciones personales protegidas por token.",
      "closing": "Último corte angular acompaña nombres y agradecimiento aprobado, con privacidad y preferencias en texto continuo."
    },
    "graphics": [
      "Estratos abstractos",
      "Cortes angulares",
      "Curvas topográficas no cartográficas",
      "Marcas de sección sin mediciones ficticias"
    ],
    "photography": "Paisaje o arquitectura únicamente reales y aprobados; el gráfico abstracto no se presenta como levantamiento de una sede.",
    "mobile": "Ángulos se mantienen en bordes, nunca en campos o fotografías de personas; mapas reales abren desde controles etiquetados.",
    "motion": "Sin polvo, calor ondulante o mapas que se dibujan; cambios de estado breves y contenido estático.",
    "ready": false,
    "distinguishingRule": "El lenguaje es estratigráfico, no bohemio; no reutilizar Desierto Moderno ni convertir contornos decorativos en datos de ubicación."
  },
  {
    "number": 29,
    "id": "s2-ciudad",
    "name": "Ciudad",
    "collection": "place",
    "pitch": "Señalética urbana editorial con titulares estrechos, carriles de información y cruces geométricos que facilitan el recorrido.",
    "audience": "Bodas urbanas que quieren movimiento visual, direcciones claras y una experiencia práctica para múltiples traslados.",
    "palette": [
      "#F1F0E9",
      "#25303D",
      "#CFDA5D",
      "#B2BDC6",
      "#7D6760"
    ],
    "typography": {
      "display": "Barlow Condensed",
      "body": "Public Sans",
      "note": "Nombres condensados de 94 px; cuerpo de 17 px; IBM Plex Mono para horarios, con etiquetas completas en controles."
    },
    "signature": "Carriles verticales y cruces abstractos articulan las secciones; señalética de texto guía acciones sin simular mapas de transporte público.",
    "hero": "Nombres condensados a la izquierda, fecha apilada a la derecha y una banda lima inferior con resumen real del evento.",
    "navigation": "Índice de señalética con flechas explícitas; pase, sedes, regalos y confirmación permanecen accesibles sin interpretar símbolos.",
    "modules": {
      "pass": "Credencial nominal de alto contraste, con cupos y pase privado autorizados mediante token personal.",
      "date": "Fecha real en columna tabular, con calendario del evento disponible mediante token autorizado.",
      "story": "Historia aprobada en columna editorial amplia, acompañada por imágenes urbanas reales sólo cuando están disponibles.",
      "family": "Familias como bloque de nombres reconocidos, con relaciones aprobadas y sin asignar domicilios o procedencias.",
      "itinerary": "Secuencia de horarios en carril fijo, con referencias precisas al directorio único de sedes.",
      "venues": "Directorio único de direcciones confirmadas, con acciones de llegada autorizadas por token y sin mapas ficticios.",
      "dress": "Indicaciones reales de vestimenta en panel claro, con recomendaciones prácticas aprobadas para cada momento.",
      "travel": "Información confirmada de hospedaje y traslado, con consultas personales autorizadas mediante token de invitación.",
      "gifts": "Regalos siempre visibles en carril propio, con opciones aprobadas o mensaje real cuando falten.",
      "gallery": "Fotografías reales en marcos rectangulares de distintas alturas, conservando contexto sin deducir ubicaciones o personas.",
      "menu": "Menú sobre plano claro de lectura; preferencias privadas se consultan y guardan por token.",
      "rsvp": "Confirmación mediante controles grandes y directos, con cupos y respuesta real persistidos por token.",
      "concierge": "Ayuda como señal funcional claramente rotulada, con contexto aprobado y operaciones protegidas mediante token.",
      "closing": "Banda lima corta cierra nombres y agradecimiento aprobado, con privacidad y preferencias fuera de la señalética."
    },
    "graphics": [
      "Carriles de señalética",
      "Cruces geométricos abstractos",
      "Flechas funcionales etiquetadas",
      "Bandas de color lima"
    ],
    "photography": "Retratos o arquitectura reales; skyline, coordenadas y nombres de barrio sólo se usan cuando corresponden al evento confirmado.",
    "mobile": "Carriles se vuelven lista vertical; objetivos táctiles amplios y direcciones nunca se truncan en una sola línea.",
    "motion": "Sin ticker ni señales desplazándose; flechas estáticas y cambios funcionales con movimiento reducido.",
    "ready": false,
    "distinguishingRule": "La señalética guía acciones reales, pero no representa una red de transporte; evitar un dashboard o un mapa urbano ficticio."
  },
  {
    "number": 30,
    "id": "s2-celebracion-pop",
    "name": "Celebración Pop",
    "collection": "place",
    "pitch": "Un cartel plegado de color rotundo, con círculos recortados, títulos de gran tamaño y zonas funcionales libres de ruido.",
    "audience": "Parejas que quieren energía gráfica, color y un tono de celebración, manteniendo respuestas y logística fáciles de usar.",
    "palette": [
      "#FFF4DC",
      "#273F93",
      "#E55A46",
      "#F0BB3D",
      "#DCA6C4"
    ],
    "typography": {
      "display": "Space Grotesk",
      "body": "DM Sans",
      "note": "Titulares de 84 px en peso fuerte, cuerpo de 18 px; color reservado a áreas grandes y texto siempre contrastado."
    },
    "signature": "Un cartel de cuatro pliegues genera bandas de distinto ancho; círculos y recortes aparecen como composición fija, no confeti disperso.",
    "hero": "Nombres en dos líneas sobre plano crema, gran semicírculo rojo a un costado y fecha dentro de una banda azul inferior.",
    "navigation": "Pestañas de color con etiquetas textuales; el estado activo incluye línea o texto, nunca sólo cambio cromático.",
    "modules": {
      "pass": "Pase nominal en panel crema de cartel, con cupos y acceso privado autorizados por token.",
      "date": "Fecha real en banda azul de alto contraste, con calendario del evento autorizado por token.",
      "story": "Historia aprobada en pliegos amplios de lectura, con títulos grandes y gráficos alejados del cuerpo textual.",
      "family": "Nombres familiares agrupados en bandas de igual jerarquía, con relaciones aprobadas y sin apodos inventados.",
      "itinerary": "Programa por bandas de color con horas claras y referencias al directorio único de sedes.",
      "venues": "Directorio único en panel liso, con direcciones confirmadas y rutas personales autorizadas mediante token.",
      "dress": "Guía real de vestimenta en panel legible, sin imponer colores o códigos por la estética pop.",
      "travel": "Opciones confirmadas de hospedaje y traslado, con condiciones explícitas y consultas personales mediante token.",
      "gifts": "Regalos siempre visibles en pliegue propio, con opciones aprobadas o mensaje real cuando falten.",
      "gallery": "Fotografías reales en rectángulos de cartel, sin pegatinas sobre rostros ni saturación artificial de imágenes.",
      "menu": "Menú en panel crema de lectura; preferencias privadas se consultan y guardan por token.",
      "rsvp": "Confirmación en bloque de contraste estable, con cupos reales y respuesta persistida mediante token autorizado.",
      "concierge": "Ayuda en botón claramente rotulado, con contexto aprobado y operaciones personales protegidas mediante token.",
      "closing": "Semicírculo final acompaña nombres y agradecimiento aprobado, dejando privacidad y preferencias en una banda limpia."
    },
    "graphics": [
      "Pliegues de cartel",
      "Semicírculos de tinta plana",
      "Recortes geométricos grandes",
      "Pestañas de color con estado textual"
    ],
    "photography": "Fotos reales sin filtros obligatorios; gráficos se mantienen fuera de rostros y nunca sustituyen información del evento.",
    "mobile": "Pliegues se convierten en bandas verticales; no texto rotado, sombras excesivas ni bloques que obliguen a desplazamiento horizontal.",
    "motion": "Un solo fundido inicial opcional; nada rebota, gira o lanza confeti sobre controles, mensajes o el formulario.",
    "ready": false,
    "distinguishingRule": "Debe parecer un cartel plegado de composición fija, no una cuadrícula de tarjetas ni la heredada Fiesta Cromática."
  }
]
