{"id":1250,"date":"2026-06-17T05:58:24","date_gmt":"2026-06-17T05:58:24","guid":{"rendered":"https:\/\/schoenstattnewyork.org\/?page_id=1250"},"modified":"2026-06-19T18:13:49","modified_gmt":"2026-06-19T18:13:49","slug":"newsletters","status":"publish","type":"page","link":"https:\/\/schoenstattnewyork.org\/en\/newsletters\/","title":{"rendered":"Newsletters"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Publications &#038; Newsletters \u2013 Schoenstatt New York<\/title>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&#038;display=swap\" rel=\"stylesheet\" \/>\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    :root {\n      --navy:       #1c19a3;\n      --navy-light: #2520b8;\n      --gold:       #C9A84C;\n      --gold-light: #E2C47A;\n      --cream:      #F8F5EF;\n      --white:      #FFFFFF;\n      --text:       #2B2B2B;\n      --muted:      #6B6B6B;\n      --rule:       #E8E3DA;\n      --max-w:      1140px;\n    }\n    body { font-family: 'Inter', sans-serif; color: var(--text); background: var(--white); overflow-x: hidden; -webkit-font-smoothing: antialiased; }\n    .container { max-width: var(--max-w); margin: 0 auto; padding: 0 32px; }\n    .gold-rule { width: 40px; height: 2px; background: var(--gold); margin-bottom: 24px; }\n\n    \/* \u2500\u2500 ORBS \u2500\u2500 *\/\n    .orbs { position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }\n    .orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0; animation: orbFloat linear infinite; }\n    .orb-1 { width: 380px; height: 380px; background: radial-gradient(circle, rgba(28,25,163,0.13), transparent 70%); top: -8%; left: -6%; animation-duration: 28s; }\n    .orb-2 { width: 260px; height: 260px; background: radial-gradient(circle, rgba(201,168,76,0.09), transparent 70%); top: 45%; right: -5%; animation-duration: 22s; animation-delay: -8s; }\n    .orb-3 { width: 400px; height: 400px; background: radial-gradient(circle, rgba(28,25,163,0.07), transparent 70%); bottom: -10%; left: 30%; animation-duration: 34s; animation-delay: -14s; }\n    @keyframes orbFloat { 0% { opacity:0; transform:translate(0,0) scale(1); } 15% { opacity:1; } 50% { transform:translate(25px,-35px) scale(1.06); } 85% { opacity:1; } 100% { opacity:0; transform:translate(-8px,18px) scale(0.96); } }\n\n    \/* \u2500\u2500 HERO \u2500\u2500 *\/\n    .page-hero {\n      background: var(--navy); color: var(--white);\n      padding: 88px 0 72px; text-align: center;\n      position: relative; overflow: hidden;\n    }\n    .page-hero::after {\n      content: ''; position: absolute; inset: 0;\n      background: radial-gradient(ellipse at 50% 50%, rgba(201,168,76,0.10) 0%, transparent 65%);\n      pointer-events: none; animation: heroGlow 10s ease-in-out infinite alternate;\n    }\n    @keyframes heroGlow { 0% { opacity:.6; transform:scale(1); } 100% { opacity:1; transform:scale(1.1); } }\n    .page-hero::before {\n      content: ''; position: absolute; top:0; left:-100%; bottom:0; width:1px;\n      background: linear-gradient(180deg, transparent, rgba(201,168,76,0.5), transparent);\n      animation: lineSweep 9s ease-in-out infinite; z-index:1;\n    }\n    @keyframes lineSweep { 0% { left:-5%; opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { left:105%; opacity:0; } }\n    .page-hero .container { position: relative; z-index:2; display:flex; flex-direction:column; align-items:center; }\n    .hero-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); margin-bottom: 20px; animation: fadeUp 0.9s 0.1s both; }\n    .hero-title { font-size: clamp(2.6rem, 5vw, 4.4rem); font-weight: 800; color: var(--white); line-height: 1.0; margin-bottom: 20px; letter-spacing: -0.02em; animation: fadeUp 0.9s 0.22s both;     margin: 0px !important;}\n    .hero-title span {\n      font-weight: 300;\n      background: linear-gradient(100deg, var(--gold-light) 0%, #fff5c0 40%, var(--gold-light) 80%);\n      background-size: 220% 100%;\n      -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;\n      animation: goldShimmer 5s ease-in-out infinite 1.2s;\n    \n    }\n    @keyframes goldShimmer { 0%,100% { background-position:0% 50%; } 50% { background-position:100% 50%; } }\n    .hero-sub { font-size: 0.95rem; line-height: 1.8; color: rgba(255,255,255,0.62); max-width: 520px; animation: fadeUp 0.9s 0.34s both; }\n    @keyframes fadeUp { 0% { opacity:0; transform:translateY(18px); } 100% { opacity:1; transform:translateY(0); } }\n\n    \/* \u2500\u2500 FILTER BAR \u2500\u2500 *\/\n    .filter-bar {\n      background: var(--cream); border-bottom: 1px solid var(--rule);\n      padding: 20px 0; position: sticky; top: 0; z-index: 10;\n      box-shadow: 0 4px 16px rgba(28,25,163,0.04);\n    }\n    .filter-bar .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }\n    .filter-info { font-size: 0.8rem; color: var(--muted); font-weight: 500; }\n    .filter-tabs { display: flex; gap: 8px; }\n    .filter-btn {\n      background: var(--white); border: 1px solid var(--rule);\n      padding: 7px 16px; font-size: 0.72rem; font-weight: 700;\n      text-transform: uppercase; letter-spacing: 0.09em;\n      color: var(--navy); cursor: pointer; font-family: 'Inter', sans-serif;\n      transition: background 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;\n    }\n    .filter-btn:hover, .filter-btn.active {\n      background: var(--navy); color: var(--white); border-color: var(--navy);\n      transform: translateY(-2px); box-shadow: 0 8px 18px rgba(28,25,163,0.14);\n    }\n\n    \/* \u2500\u2500 MAGAZINE GRID \u2500\u2500 *\/\n    .showcase { padding: 72px 0 96px; position: relative; z-index:1; }\n    .magazine-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 40px; }\n\n    \/* \u2500\u2500 CARD \u2500\u2500 *\/\n    .magazine-card { display: flex; flex-direction: column; cursor: pointer; }\n    .cover-wrapper {\n      aspect-ratio: 3\/4; background: var(--cream); border: 1px solid var(--rule);\n      position: relative; overflow: hidden; margin-bottom: 18px;\n      box-shadow: 6px 6px 20px rgba(28,25,163,0.08), -2px 0 8px rgba(0,0,0,0.06);\n      transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s;\n    }\n    .cover-wrapper:hover { border-color: var(--gold); transform: translateY(-6px) rotate(-0.5deg); box-shadow: 10px 14px 36px rgba(28,25,163,0.14), -2px 0 8px rgba(0,0,0,0.08); }\n    .cover-wrapper::before { content: ''; position: absolute; top:0; left:0; width:10px; height:100%; background: linear-gradient(to right, rgba(0,0,0,0.16), transparent); z-index:2; pointer-events:none; }\n    .cover-wrapper::after { content: ''; position: absolute; top:-20%; left:0; width:28%; height:140%; background: linear-gradient(110deg, transparent, rgba(255,255,255,0.4), transparent); animation: pageSheen 7s ease-in-out infinite; pointer-events:none; z-index:3; }\n    @keyframes pageSheen { 0% { left:-40%; opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { left:120%; opacity:0; } }\n    .cover-inner { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:space-between; padding:24px 20px 18px; background:var(--white); animation: coverBreath 7s ease-in-out infinite; }\n    @keyframes coverBreath { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }\n    .cover-label { font-size: 8px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }\n    .cover-title { font-size: 1.4rem; font-weight: 800; color: var(--navy); line-height: 1.1; letter-spacing: -0.02em; margin-top: 8px; }\n    .cover-date { font-size: 11px; color: var(--muted); margin-top: 4px; }\n    .cover-footer { font-size: 9px; text-transform: uppercase; letter-spacing: 0.1em; color: #bbb; border-top: 1px solid var(--rule); padding-top: 10px; }\n    .cover-open-btn { position:absolute; inset:0; z-index:4; display:flex; align-items:center; justify-content:center; background:rgba(28,25,163,0); transition:background 0.3s; }\n    .cover-open-btn span { background:var(--navy); color:var(--white); font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; padding:10px 20px; opacity:0; transform:translateY(8px); transition:opacity 0.3s, transform 0.3s; }\n    .cover-wrapper:hover .cover-open-btn { background:rgba(28,25,163,0.2); }\n    .cover-wrapper:hover .cover-open-btn span { opacity:1; transform:translateY(0); }\n    .card-info h3 { font-size: 0.95rem; font-weight: 700; color: var(--navy); letter-spacing:-0.01em; margin-bottom:5px; }\n    .card-meta { display:flex; align-items:center; gap:8px; margin-bottom:10px; }\n    .card-meta span { font-size:0.78rem; color:var(--muted); }\n    .lang-badge { font-size:9px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; background:var(--cream); color:var(--navy); padding:2px 7px; border:1px solid var(--rule); }\n    .card-link { font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:2px; transition:color 0.2s, border-color 0.2s; display:inline-block; }\n    .card-link:hover { color:var(--navy); border-color:var(--navy); }\n\n    \/* \u2500\u2500 FLIPBOOK MODAL \u2500\u2500 *\/\n    .modal-overlay {\n      display: none; position: fixed; inset: 0; z-index: 2000;\n      background: rgba(8,6,40,0.92); align-items: center; justify-content: center;\n    }\n    .modal-overlay.active { display: flex; }\n\n    .flipbook-modal {\n      background: #1a1830; width: 96vw; max-width: 1100px;\n      height: 90vh; display: flex; flex-direction: column;\n      box-shadow: 0 40px 100px rgba(0,0,0,0.6);\n      animation: modalIn 0.35s cubic-bezier(0.16,1,0.3,1) both;\n    }\n    @keyframes modalIn { 0% { opacity:0; transform:scale(0.96) translateY(20px); } 100% { opacity:1; transform:scale(1) translateY(0); } }\n\n    \/* Modal header *\/\n    .fb-header {\n      background: var(--navy); padding: 14px 20px;\n      display: flex; align-items: center; justify-content: space-between;\n      flex-shrink: 0; border-bottom: 1px solid rgba(255,255,255,0.08);\n    }\n    .fb-header-left { display:flex; flex-direction:column; gap:1px; }\n    .fb-label { font-size:9px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); }\n    .fb-title { font-size:0.95rem; font-weight:800; color:var(--white); letter-spacing:-0.01em; }\n    .fb-header-right { display:flex; align-items:center; gap:10px; }\n    .fb-page-info { font-size:11px; color:rgba(255,255,255,0.5); font-weight:500; }\n    .fb-download { font-size:0.7rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--navy); background:var(--gold); text-decoration:none; padding:7px 14px; transition:background 0.2s; }\n    .fb-download:hover { background:var(--gold-light); }\n    .fb-close { background:rgba(255,255,255,0.1); border:none; color:var(--white); width:32px; height:32px; font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background 0.2s; }\n    .fb-close:hover { background:rgba(255,255,255,0.2); }\n\n    \/* Viewer area *\/\n    .fb-viewer {\n      flex: 1; display: flex; align-items: center; justify-content: center;\n      position: relative; overflow: hidden; background: #12102a;\n      perspective: 2000px;\n    }\n\n    \/* Two-page spread *\/\n    .fb-spread {\n      display: flex; align-items: center; justify-content: center;\n      width: 100%; height: 100%; gap: 0;\n      position: relative;\n    }\n\n    .fb-page {\n      position: relative; height: 85%;\n      max-height: 680px;\n      flex: 1; max-width: 48%;\n      background: #fff;\n      box-shadow: 4px 0 20px rgba(0,0,0,0.3);\n      overflow: hidden;\n      transform-origin: right center;\n      transition: transform 0.05s;\n    }\n    .fb-page.right {\n      box-shadow: -4px 0 20px rgba(0,0,0,0.3);\n      transform-origin: left center;\n    }\n    .fb-page canvas { display:block; width:100%; height:100%; object-fit:contain; }\n\n    \/* Spine shadow *\/\n    .fb-spine {\n      width: 12px; flex-shrink: 0; height: 85%; max-height: 680px;\n      background: linear-gradient(to right, rgba(0,0,0,0.35), rgba(0,0,0,0.05) 50%, rgba(0,0,0,0.35));\n      z-index: 5;\n    }\n\n    \/* Page turn overlay zones *\/\n    .fb-zone {\n      position: absolute; top:0; bottom:0; width:25%; z-index:10;\n      cursor: pointer; display:flex; align-items:center;\n    }\n    .fb-zone.left { left:0; justify-content:flex-start; }\n    .fb-zone.right-zone { right:0; justify-content:flex-end; }\n    .fb-arrow {\n      background: rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15);\n      color: rgba(255,255,255,0.7); font-size:1.4rem;\n      width:44px; height:44px; display:flex; align-items:center; justify-content:center;\n      margin: 0 16px; opacity:0; transition:opacity 0.2s, background 0.2s;\n      backdrop-filter: blur(4px);\n    }\n    .fb-zone:hover .fb-arrow { opacity:1; background:rgba(255,255,255,0.16); }\n\n    \/* Page flip animation *\/\n    .fb-page.flipping-out {\n      animation: flipOut 0.45s cubic-bezier(0.4,0,0.6,1) forwards;\n    }\n    .fb-page.flipping-in {\n      animation: flipIn 0.45s cubic-bezier(0.4,0,0.6,1) forwards;\n    }\n    @keyframes flipOut {\n      0%   { transform: rotateY(0deg);    opacity:1; }\n      100% { transform: rotateY(-90deg);  opacity:0.3; }\n    }\n    @keyframes flipIn {\n      0%   { transform: rotateY(90deg);   opacity:0.3; }\n      100% { transform: rotateY(0deg);    opacity:1; }\n    }\n    .fb-page.right.flipping-out {\n      animation: flipOutRight 0.45s cubic-bezier(0.4,0,0.6,1) forwards;\n    }\n    .fb-page.right.flipping-in {\n      animation: flipInRight 0.45s cubic-bezier(0.4,0,0.6,1) forwards;\n    }\n    @keyframes flipOutRight {\n      0%   { transform: rotateY(0deg);   opacity:1; }\n      100% { transform: rotateY(90deg);  opacity:0.3; }\n    }\n    @keyframes flipInRight {\n      0%   { transform: rotateY(-90deg); opacity:0.3; }\n      100% { transform: rotateY(0deg);   opacity:1; }\n    }\n\n    \/* Loading *\/\n    .fb-loading {\n      position:absolute; inset:0; display:flex; flex-direction:column;\n      align-items:center; justify-content:center; color:rgba(255,255,255,0.7);\n      font-size:0.85rem; gap:16px; z-index:20;\n    }\n    .fb-spinner {\n      width:36px; height:36px; border:3px solid rgba(255,255,255,0.15);\n      border-top-color: var(--gold); border-radius:50%;\n      animation: spin 0.8s linear infinite;\n    }\n    @keyframes spin { to { transform:rotate(360deg); } }\n\n    \/* Footer controls *\/\n    .fb-controls {\n      background: #12102a; padding: 12px 20px;\n      display: flex; align-items: center; justify-content: center;\n      gap: 16px; flex-shrink: 0; border-top:1px solid rgba(255,255,255,0.06);\n    }\n    .fb-ctrl-btn {\n      background: rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.14);\n      color:rgba(255,255,255,0.8); padding:8px 20px; cursor:pointer;\n      font-family:'Inter',sans-serif; font-size:0.72rem; font-weight:700;\n      letter-spacing:0.1em; text-transform:uppercase;\n      transition:background 0.2s, color 0.2s;\n    }\n    .fb-ctrl-btn:hover:not(:disabled) { background:var(--gold); color:var(--navy); border-color:var(--gold); }\n    .fb-ctrl-btn:disabled { opacity:0.3; cursor:not-allowed; }\n    .fb-page-counter { font-size:11px; color:rgba(255,255,255,0.45); min-width:80px; text-align:center; }\n\n    @media (max-width: 768px) {\n      .magazine-grid { grid-template-columns: 1fr 1fr; gap: 24px; }\n      .fb-spread { flex-direction: column; gap: 2px; }\n      .fb-page { max-width: 90%; flex: none; height: 45%; }\n      .fb-spine { display: none; }\n      .orbs { display: none; }\n    }\n    @media (max-width: 480px) {\n      .magazine-grid { grid-template-columns: 1fr; }\n    }\n    @media (prefers-reduced-motion: reduce) {\n      *, *::before, *::after { animation: none !important; transition-duration: 0.01ms !important; }\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <div class=\"orbs\" aria-hidden=\"true\">\n    <div class=\"orb orb-1\"><\/div>\n    <div class=\"orb orb-2\"><\/div>\n    <div class=\"orb orb-3\"><\/div>\n  <\/div>\n\n  <!-- HERO -->\n  <section class=\"page-hero\">\n    <div class=\"container\">\n      <p class=\"hero-eyebrow\">Schoenstatt New York Archives<\/p>\n      <h1 class=\"hero-title\">Digital Library <span>&amp; Bulletins<\/span><\/h1>\n      <p class=\"hero-sub\">Access our collection of community journals, monthly statements, and historical newsletters published by the Sisters of Mary.<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- FILTER BAR -->\n  <div class=\"filter-bar\">\n    <div class=\"container\">\n      <p class=\"filter-info\">Showing <span id=\"countLabel\">4<\/span> Available Publications<\/p>\n      <div class=\"filter-tabs\">\n        <button class=\"filter-btn active\" onclick=\"filterCards('all',this)\">All Editions<\/button>\n        <button class=\"filter-btn\" onclick=\"filterCards('en',this)\">English<\/button>\n        <button class=\"filter-btn\" onclick=\"filterCards('es',this)\">Espa\u00f1ol<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- GRID -->\n  <section class=\"showcase\">\n    <div class=\"container\">\n      <div class=\"magazine-grid\" id=\"magazineGrid\">\n\n        <div class=\"magazine-card\" data-lang=\"en\">\n          <div class=\"cover-wrapper\" onclick=\"openFlipbook('July 2021 Bulletin','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/July-Bulletin.pdf')\">\n            <div class=\"cover-inner\">\n              <div><div class=\"cover-label\">Schoenstatt New York<\/div><div class=\"cover-title\">Shrine Bulletin<\/div><div class=\"cover-date\">July 2021<\/div><\/div>\n              <div class=\"cover-footer\">New York Edition<\/div>\n            <\/div>\n            <div class=\"cover-open-btn\"><span>Read Bulletin<\/span><\/div>\n          <\/div>\n          <div class=\"card-info\">\n            <h3>July 2021 Bulletin<\/h3>\n            <div class=\"card-meta\"><span>Published: July 2021<\/span><span class=\"lang-badge\">EN<\/span><\/div>\n            <a class=\"card-link\" href=\"#\" onclick=\"openFlipbook('July 2021 Bulletin','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/July-Bulletin.pdf');return false;\">Open Magazine \u2192<\/a>\n          <\/div>\n        <\/div>\n\n        <div class=\"magazine-card\" data-lang=\"en\">\n          <div class=\"cover-wrapper\" onclick=\"openFlipbook('June 2021 Bulletin','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/June-Bulletin-.pdf')\">\n            <div class=\"cover-inner\">\n              <div><div class=\"cover-label\">Schoenstatt New York<\/div><div class=\"cover-title\">Shrine Bulletin<\/div><div class=\"cover-date\">June 2021<\/div><\/div>\n              <div class=\"cover-footer\">New York Edition<\/div>\n            <\/div>\n            <div class=\"cover-open-btn\"><span>Read Bulletin<\/span><\/div>\n          <\/div>\n          <div class=\"card-info\">\n            <h3>June 2021 Bulletin<\/h3>\n            <div class=\"card-meta\"><span>Published: June 2021<\/span><span class=\"lang-badge\">EN<\/span><\/div>\n            <a class=\"card-link\" href=\"#\" onclick=\"openFlipbook('June 2021 Bulletin','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/June-Bulletin-.pdf');return false;\">Open Magazine \u2192<\/a>\n          <\/div>\n        <\/div>\n\n        <div class=\"magazine-card\" data-lang=\"en\">\n          <div class=\"cover-wrapper\" onclick=\"openFlipbook('May 2021 Bulletin','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/May-Bulletin.pdf')\">\n            <div class=\"cover-inner\">\n              <div><div class=\"cover-label\">Schoenstatt New York<\/div><div class=\"cover-title\">Shrine Bulletin<\/div><div class=\"cover-date\">May 2021<\/div><\/div>\n              <div class=\"cover-footer\">New York Edition<\/div>\n            <\/div>\n            <div class=\"cover-open-btn\"><span>Read Bulletin<\/span><\/div>\n          <\/div>\n          <div class=\"card-info\">\n            <h3>May 2021 Bulletin<\/h3>\n            <div class=\"card-meta\"><span>Published: May 2021<\/span><span class=\"lang-badge\">EN<\/span><\/div>\n            <a class=\"card-link\" href=\"#\" onclick=\"openFlipbook('May 2021 Bulletin','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/May-Bulletin.pdf');return false;\">Open Magazine \u2192<\/a>\n          <\/div>\n        <\/div>\n\n        <div class=\"magazine-card\" data-lang=\"es\">\n          <div class=\"cover-wrapper\" style=\"background:#f3ede2;\" onclick=\"openFlipbook('Bolet\u00edn Mayo 2021','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/Boletin-Mayo.pdf')\">\n            <div class=\"cover-inner\" style=\"background:#fdfaf5;\">\n              <div><div class=\"cover-label\" style=\"color:var(--navy);\">Schoenstatt Nueva York<\/div><div class=\"cover-title\">Bolet\u00edn de la Comunidad<\/div><div class=\"cover-date\">Mayo 2021<\/div><\/div>\n              <div class=\"cover-footer\">Edici\u00f3n Nueva York<\/div>\n            <\/div>\n            <div class=\"cover-open-btn\"><span>Leer Bolet\u00edn<\/span><\/div>\n          <\/div>\n          <div class=\"card-info\">\n            <h3>Bolet\u00edn Mayo 2021<\/h3>\n            <div class=\"card-meta\"><span>Publicado: Mayo 2021<\/span><span class=\"lang-badge\">ES<\/span><\/div>\n            <a class=\"card-link\" href=\"#\" onclick=\"openFlipbook('Bolet\u00edn Mayo 2021','http:\/\/schoenstattnewyork.org\/wp-content\/uploads\/2026\/06\/Boletin-Mayo.pdf');return false;\">Leer Revista \u2192<\/a>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- FLIPBOOK MODAL -->\n  <div class=\"modal-overlay\" id=\"flipModal\" onclick=\"handleOverlayClick(event)\">\n    <div class=\"flipbook-modal\">\n      <div class=\"fb-header\">\n        <div class=\"fb-header-left\">\n          <span class=\"fb-label\">Schoenstatt New York<\/span>\n          <span class=\"fb-title\" id=\"fbTitle\">Bulletin<\/span>\n        <\/div>\n        <div class=\"fb-header-right\">\n          <span class=\"fb-page-info\" id=\"fbPageInfo\"><\/span>\n          <a class=\"fb-download\" id=\"fbDownload\" href=\"#\" target=\"_blank\" download>Download PDF<\/a>\n          <button class=\"fb-close\" onclick=\"closeFlipbook()\">\u2715<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"fb-viewer\" id=\"fbViewer\">\n        <div class=\"fb-loading\" id=\"fbLoading\">\n          <div class=\"fb-spinner\"><\/div>\n          <span>Loading bulletin\u2026<\/span>\n        <\/div>\n        <div class=\"fb-spread\" id=\"fbSpread\" style=\"display:none;\">\n          <div class=\"fb-page\" id=\"fbLeft\"><canvas id=\"canvasLeft\"><\/canvas><\/div>\n          <div class=\"fb-spine\"><\/div>\n          <div class=\"fb-page right\" id=\"fbRight\"><canvas id=\"canvasRight\"><\/canvas><\/div>\n        <\/div>\n        <!-- Click zones -->\n        <div class=\"fb-zone left\" id=\"zoneLeft\" onclick=\"prevSpread()\">\n          <div class=\"fb-arrow\">&#8592;<\/div>\n        <\/div>\n        <div class=\"fb-zone right-zone\" id=\"zoneRight\" onclick=\"nextSpread()\">\n          <div class=\"fb-arrow\">&#8594;<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"fb-controls\">\n        <button class=\"fb-ctrl-btn\" id=\"btnPrev\" onclick=\"prevSpread()\">&#8592; Previous<\/button>\n        <span class=\"fb-page-counter\" id=\"fbCounter\">\u2014 \/ \u2014<\/span>\n        <button class=\"fb-ctrl-btn\" id=\"btnNext\" onclick=\"nextSpread()\">Next &#8594;<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- PDF.js -->\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.min.js\"><\/script>\n  <script>\n    \/\/ PDF.js worker\n    pdfjsLib.GlobalWorkerOptions.workerSrc = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.worker.min.js';\n\n    var pdfDoc = null;\n    var totalPages = 0;\n    var currentSpread = 0; \/\/ 0-based index of left page\n    var rendering = false;\n    var currentPdfUrl = '';\n\n    function openFlipbook(title, url) {\n      document.getElementById('fbTitle').textContent = title;\n      document.getElementById('fbDownload').href = url;\n      document.getElementById('fbLoading').style.display = 'flex';\n      document.getElementById('fbSpread').style.display = 'none';\n      document.getElementById('fbPageInfo').textContent = '';\n      document.getElementById('flipModal').classList.add('active');\n      document.body.style.overflow = 'hidden';\n\n      currentPdfUrl = url;\n      currentSpread = 0;\n      pdfDoc = null;\n\n      pdfjsLib.getDocument(url).promise.then(function(doc) {\n        pdfDoc = doc;\n        totalPages = doc.numPages;\n        document.getElementById('fbLoading').style.display = 'none';\n        document.getElementById('fbSpread').style.display = 'flex';\n        renderSpread(0, false);\n      }).catch(function(err) {\n        document.getElementById('fbLoading').innerHTML = '<span style=\"color:#f88\">Could not load PDF. Please try the download button.<\/span>';\n      });\n    }\n\n    function renderSpread(spreadStart, animate) {\n      if (!pdfDoc || rendering) return;\n      rendering = true;\n\n      var leftPage  = spreadStart + 1;\n      var rightPage = spreadStart + 2;\n\n      updateControls(spreadStart);\n\n      var viewer = document.getElementById('fbViewer');\n      var maxH = viewer.offsetHeight * 0.85;\n\n      function renderPage(pageNum, canvasId) {\n        if (pageNum > totalPages) {\n          var c = document.getElementById(canvasId);\n          var ctx = c.getContext('2d');\n          c.width = 10; c.height = 10;\n          ctx.clearRect(0,0,10,10);\n          return Promise.resolve();\n        }\n        return pdfDoc.getPage(pageNum).then(function(page) {\n          var vp0 = page.getViewport({scale:1});\n          var scale = maxH \/ vp0.height;\n          var vp = page.getViewport({scale: scale});\n          var canvas = document.getElementById(canvasId);\n          canvas.height = vp.height;\n          canvas.width  = vp.width;\n          return page.render({canvasContext: canvas.getContext('2d'), viewport: vp}).promise;\n        });\n      }\n\n      Promise.all([\n        renderPage(leftPage,  'canvasLeft'),\n        renderPage(rightPage, 'canvasRight')\n      ]).then(function() {\n        rendering = false;\n        if (animate) {\n          var left  = document.getElementById('fbLeft');\n          var right = document.getElementById('fbRight');\n          left.classList.add('flipping-in');\n          right.classList.add('flipping-in');\n          setTimeout(function() {\n            left.classList.remove('flipping-in');\n            right.classList.remove('flipping-in');\n          }, 460);\n        }\n      });\n    }\n\n    function nextSpread() {\n      if (!pdfDoc || rendering) return;\n      var next = currentSpread + 2;\n      if (next >= totalPages) return;\n      var left  = document.getElementById('fbLeft');\n      var right = document.getElementById('fbRight');\n      left.classList.add('flipping-out');\n      right.classList.add('flipping-out');\n      setTimeout(function() {\n        left.classList.remove('flipping-out');\n        right.classList.remove('flipping-out');\n        currentSpread = next;\n        renderSpread(currentSpread, true);\n      }, 220);\n    }\n\n    function prevSpread() {\n      if (!pdfDoc || rendering) return;\n      if (currentSpread === 0) return;\n      var prev = currentSpread - 2;\n      if (prev < 0) prev = 0;\n      var left  = document.getElementById('fbLeft');\n      var right = document.getElementById('fbRight');\n      left.classList.add('flipping-out');\n      right.classList.add('flipping-out');\n      setTimeout(function() {\n        left.classList.remove('flipping-out');\n        right.classList.remove('flipping-out');\n        currentSpread = prev;\n        renderSpread(currentSpread, true);\n      }, 220);\n    }\n\n    function updateControls(spreadStart) {\n      var leftPage  = spreadStart + 1;\n      var rightPage = Math.min(spreadStart + 2, totalPages);\n      document.getElementById('fbCounter').textContent = leftPage + (rightPage > leftPage ? '\u2013' + rightPage : '') + ' \/ ' + totalPages;\n      document.getElementById('fbPageInfo').textContent = 'Pages ' + leftPage + (rightPage > leftPage ? '\u2013' + rightPage : '') + ' of ' + totalPages;\n      document.getElementById('btnPrev').disabled = spreadStart === 0;\n      document.getElementById('btnNext').disabled = spreadStart + 2 >= totalPages;\n    }\n\n    function closeFlipbook() {\n      document.getElementById('flipModal').classList.remove('active');\n      document.body.style.overflow = '';\n      pdfDoc = null;\n      var c1 = document.getElementById('canvasLeft');\n      var c2 = document.getElementById('canvasRight');\n      if (c1) { var ctx1 = c1.getContext('2d'); ctx1.clearRect(0,0,c1.width,c1.height); }\n      if (c2) { var ctx2 = c2.getContext('2d'); ctx2.clearRect(0,0,c2.width,c2.height); }\n    }\n\n    function handleOverlayClick(e) {\n      if (e.target === document.getElementById('flipModal')) closeFlipbook();\n    }\n\n    document.addEventListener('keydown', function(e) {\n      if (!document.getElementById('flipModal').classList.contains('active')) return;\n      if (e.key === 'Escape')       closeFlipbook();\n      if (e.key === 'ArrowRight')   nextSpread();\n      if (e.key === 'ArrowLeft')    prevSpread();\n    });\n\n    \/\/ \u2500\u2500 FILTER \u2500\u2500\n    function filterCards(lang, btn) {\n      document.querySelectorAll('.filter-btn').forEach(function(b) { b.classList.remove('active'); });\n      btn.classList.add('active');\n      var cards = document.querySelectorAll('.magazine-card');\n      var count = 0;\n      cards.forEach(function(card) {\n        var match = lang === 'all' || card.getAttribute('data-lang') === lang;\n        card.style.display = match ? 'flex' : 'none';\n        if (match) count++;\n      });\n      document.getElementById('countLabel').textContent = count;\n    }\n  <\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Publications &#038; Newsletters \u2013 Schoenstatt New York Schoenstatt New York Archives Digital Library &amp; Bulletins Access our collection of community journals, monthly statements, and historical newsletters published by the Sisters&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"disable","_kad_post_title":"hide","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"unboxed","_kad_post_vertical_padding":"hide","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1250","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/pages\/1250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/comments?post=1250"}],"version-history":[{"count":7,"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/pages\/1250\/revisions"}],"predecessor-version":[{"id":1383,"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/pages\/1250\/revisions\/1383"}],"wp:attachment":[{"href":"https:\/\/schoenstattnewyork.org\/en\/wp-json\/wp\/v2\/media?parent=1250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}