Pablo's Demos

.sidebar-first .content-inner {margin-left: 0!important;} #members-menu-container {display:none!important;} #rid-dashboard-wrapper { visibility: hidden; min-width: 0; } :root{ --navy:#0D304A; --dark-steel:#206671; --steel:#418A9E; --cadet:#6DACBD; --sky:#82BDCD; --primary:#5E9CAE; --gold:#FFBB39; --gold-deep:#E8A21F; --paper:#F7FAFB; --mist:#E3E6E8; --brown:#544A3E; --lt-brown:#695E4A; --display:'Zilla Slab','Museo',Georgia,serif; --sans:'Mulish','Museo Sans','Gill Sans','Trebuchet MS',Calibri,sans-serif; } *{margin:0;padding:0;box-sizing:border-box} html{scroll-behavior:smooth} body{font-family:var(--sans);color:var(--brown);background:var(--paper);line-height:1.65;font-size:17px} .wrap{max-width:1040px;margin:0 auto;padding:0 24px} a.btn,button.btn{display:inline-block;background:var(--gold);color:var(--navy);font-family:var(--sans); font-weight:800;font-size:17px;letter-spacing:.01em;text-decoration:none;border:none;cursor:pointer; padding:15px 34px;border-radius:999px;transition:transform .15s ease, background .15s ease;} a.btn:hover,button.btn:hover{background:var(--gold-deep);transform:translateY(-1px)} a.btn:focus-visible,button.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px} /* ---------- header / hero ---------- */ header{background:var(--navy);color:#fff} .topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 0} .brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none} .brand .word{font-family:var(--sans);font-weight:800;font-size:19px;letter-spacing:.02em} .topbar .pill{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase; color:var(--sky);border:1px solid rgba(130,189,205,.45);border-radius:999px;padding:6px 14px} .hero{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center;padding:56px 0 84px} .eyebrow{font-size:13px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:18px} h1{font-family:var(--display);font-weight:600;font-size:clamp(34px,5vw,54px);line-height:1.12;color:#fff;margin-bottom:20px} h1 em{font-style:normal;color:var(--sky)} .hero p.lede{font-size:19px;color:#CFE3EA;max-width:34em;margin-bottom:30px} .hero-note{margin-top:14px;font-size:14px;color:#9FC4D2} .ring-fig{text-align:center} .ring-fig figcaption{margin-top:14px;font-size:14px;letter-spacing:.04em;color:var(--sky)} @media(prefers-reduced-motion:no-preference){ .fade{opacity:0;transform:translateY(10px);animation:up .7s ease forwards} .fade.d1{animation-delay:.08s}.fade.d2{animation-delay:.16s}.fade.d3{animation-delay:.24s} @keyframes up{to{opacity:1;transform:none}} } /* ---------- sections ---------- */ section{padding:72px 0} .kicker{font-size:13px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--steel);margin-bottom:10px} h2{font-family:var(--display);font-weight:600;font-size:clamp(26px,3.4vw,36px);color:var(--navy);line-height:1.2;margin-bottom:14px} .section-lede{max-width:42em;color:var(--lt-brown);font-size:18px} .props{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px} .prop{background:#fff;border:1px solid var(--mist);border-radius:14px;padding:28px 26px} .prop h3{font-family:var(--sans);font-weight:800;font-size:17px;color:var(--dark-steel);margin-bottom:8px} .prop p{font-size:15.5px} /* steps */ .steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px} .step{position:relative;padding-top:8px} .step::before{counter-increment:step;content:counter(step);display:inline-flex;align-items:center;justify-content:center; width:40px;height:40px;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:800;font-size:18px;margin-bottom:14px} .step h3{font-weight:800;font-size:17px;color:var(--navy);margin-bottom:6px} .step p{font-size:15.5px} /* schedule cards */ .sched{background:#fff;border-top:1px solid var(--mist);border-bottom:1px solid var(--mist)} .cards{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:40px} .card{border:1px solid var(--mist);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .2s ease} .card:hover{box-shadow:0 10px 30px rgba(13,48,74,.10)} .card .head{background:var(--dark-steel);color:#fff;padding:18px 24px} .card .head .grp{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sky)} .card .head h3{font-family:var(--display);font-weight:600;font-size:24px;margin-top:4px} .card .bodyc{padding:24px;display:flex;flex-direction:column;gap:14px;flex:1} .meta{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:15px} .meta span{display:inline-flex;align-items:center;gap:8px} .meta b{color:var(--navy)} .seatline{display:flex;align-items:center;gap:12px;margin-top:2px} .seatline small{color:var(--lt-brown)} .price{font-size:15px} .price b{font-size:22px;color:var(--navy)} .card .bodyc .btn{align-self:flex-start;margin-top:auto} .sched-note{margin-top:26px;font-size:14px;color:var(--lt-brown)} /* session arc */ .arc{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:40px;border:1px solid var(--mist);border-radius:14px;overflow:hidden;background:#fff} .arc div{padding:26px 24px;border-left:1px solid var(--mist)} .arc div:first-child{border-left:none} .arc .t{font-size:13px;font-weight:800;letter-spacing:.12em;color:var(--steel);text-transform:uppercase} .arc h3{font-weight:800;font-size:17px;color:var(--navy);margin:6px 0} .arc p{font-size:15px} /* trust strip */ .trust{background:var(--dark-steel);color:#fff;padding:42px 0} .trust ul{list-style:none;display:flex;flex-wrap:wrap;gap:14px 36px;justify-content:center;font-size:15.5px;font-weight:600} .trust li{display:flex;align-items:center;gap:10px} .trust svg{flex:none} /* faq */ details{background:#fff;border:1px solid var(--mist);border-radius:12px;margin-top:14px} summary{cursor:pointer;font-weight:800;color:var(--navy);padding:18px 22px;list-style:none;display:flex;justify-content:space-between;align-items:center} summary::-webkit-details-marker{display:none} summary::after{content:'+';font-size:22px;color:var(--steel);font-weight:400} details[open] summary::after{content:'\2212'} details p{padding:0 22px 20px;font-size:15.5px} /* final cta + footer */ .final{background:var(--navy);color:#fff;text-align:center;padding:84px 0} .final h2{color:#fff} .final p{color:#CFE3EA;max-width:36em;margin:0 auto 30px} footer{background:var(--navy);color:#8FB3C4;border-top:1px solid rgba(130,189,205,.25);padding:30px 0;font-size:13px} footer .wrap{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center} footer p{max-width:62em} @media(max-width:840px){ .hero{grid-template-columns:1fr;padding:40px 0 64px} .ring-fig{order:-1} .ring-fig svg{width:200px;height:200px} .props,.steps,.cards{grid-template-columns:1fr} .arc{grid-template-columns:1fr} .arc div{border-left:none;border-top:1px solid var(--mist)} .arc div:first-child{border-top:none} section{padding:56px 0} } affair recovery Pilot Program For Hope for Healing & Harboring Hope alumni The course ends.The community doesn’t have to. AR Community Groups are weekly 90-minute drop-in sessions led by experienced Group Leaders — the same structure, safety, and honesty you knew in your course. Come every week, or just the weeks you need it. Reserve your seat Open only to alumni who completed Hope for Healing or Harboring Hope. Eight seats. One is open for you. Why this exists Finishing your course was a beginning, not an ending. For 13 or 17 weeks you had a rhythm: a call, a group, people who knew your story by first name. Then it ended — and staying connected got harder. Community Groups give you a place to return to, built by the people who built your course. Led by experienced Group Leaders Every session is facilitated by a senior AR Group Leader who has walked this road personally and led many course groups before yours. Drop in when you need it No 13-week commitment. Reserve a single seat for a single session — weekly, monthly, or in the seasons when recovery feels heavy again. The same safety you knew First names only. No recordings. A group agreement read at the start of every session. Guided discussion drawn from AR’s materials — never a free-for-all. Pilot schedule Two groups to start. More as the community grows. Sessions run on Zoom for six weeks during the pilot. Each group is capped at eight so every voice fits in ninety minutes. For Hope for Healing alumni Men’s Community Group Led by Rick W. Tuesdays 7:00–8:30 PM CT Where Zoom 8 seats per session $20  per session · pay only for the sessions you join Reserve a seat — Tuesdays For Harboring Hope alumnae Women’s Community Group Led by Alex W. Thursdays 7:00–8:30 PM CT Where Zoom 8 seats per session $25  per session · pay only for the sessions you join Reserve a seat — Thursdays Times follow leader availability and may adjust between pilot cycles. Same-gender groups, matched to your course — the format you already know. What a session looks like Ninety minutes with a shape you’ll recognize. First 20 minutes Check-in First names, your course, and one word for where you are this week. Everyone speaks early — no one carries the room alone. The heart of the session Guided topic A weekly discussion guide drawn from AR’s materials — staying connected, rebuilding trust in yourself, handling triggers, and more. Before you go One small commitment Each person names one doable step for the week ahead. Small and real beats big and vague. Alumni only First names only Never recorded Structured discussion guides Faith-respectful, never faith-required Questions Good to know before you reserve. Who can join? Anyone who has completed Hope for Healing (men’s group) or Harboring Hope (women’s group). Groups follow the same gender separation as the courses. Your registration is checked against course completion — that shared foundation is what keeps the room safe. Do I have to come every week? No. That’s the point of drop-in: reserve a seat only for the sessions you want. Many alumni come weekly for a season; others return when something stirs things up. Both are welcome. Is this counseling? No. Community Groups are peer support facilitated by an experienced Group Leader — not counseling, therapy, or a substitute for either. If a session surfaces something that needs more support, your leader will help point you to the right resources. What if a session fills up? Each session is capped at eight participants so everyone has room to speak. If your week is full, you can grab a seat in the next one — and as the pilot grows, we’ll add groups and time slots based on demand. There’s a seat open for you. You did the hard work of the course. Staying connected is how it lasts — and you don’t have to do it alone. Reserve your seat AR Community Groups are peer support for course alumni and are not counseling or a substitute for counseling. If you are in crisis, call or text 988 (US Suicide & Crisis Lifeline) or contact local emergency services. © 2026 Affair Recovery · affairrecovery.com
.sidebar-first .content-inner {margin-left: 0!important;} #members-menu-container {display:none!important;} #rid-dashboard-wrapper { visibility: hidden; min-width: 0; } :root{ --navy:#0D304A; --dark-steel:#206671; --steel:#418A9E; --cadet:#6DACBD; --sky:#82BDCD; --primary:#5E9CAE; --gold:#FFBB39; --gold-deep:#E8A21F; --paper:#F7FAFB; --mist:#E3E6E8; --brown:#544A3E; --lt-brown:#695E4A; --display:'Zilla Slab','Museo',Georgia,serif; --sans:'Mulish','Museo Sans','Gill Sans','Trebuchet MS',Calibri,sans-serif; } *{margin:0;padding:0;box-sizing:border-box} html{scroll-behavior:smooth} body{font-family:var(--sans);color:var(--brown);background:var(--paper);line-height:1.65;font-size:17px} .wrap{max-width:1040px;margin:0 auto;padding:0 24px} a.btn,button.btn{display:inline-block;background:var(--gold);color:var(--navy);font-family:var…
Continue reading →

Pablo - test page

.sidebar-first .content-inner {margin-left: 0!important;} #members-menu-container {display:none!important;} :root { --ar-teal: #007682; --ar-dark: #333333; --ar-bg: #f4f7f6; --ar-white: #ffffff; --ar-gray: #888888; } body { font-family: 'Segoe UI', sans-serif; background-color: var(--ar-bg); margin: 0; padding: 20px; color: var(--ar-dark); } .container { max-width: 1400px; margin: 0 auto; } .controls { display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; margin-bottom: 40px; align-items: center; padding: 20px; background: var(--ar-white); border-radius: 15px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); } .btn { padding: 12px 25px; border-radius: 30px; border: none; cursor: pointer; font-weight: bold; transition: 0.3s; text-transform: uppercase; font-size: 12px; } .btn-reset { background: #555; color: white; } .btn-featured { background: var(--ar-teal); color: white; } .btn-load { background: var(--ar-teal); color: white; margin: 40px auto; display: block; padding: 15px 40px; font-size: 14px; } .btn:hover { transform: translateY(-2px); opacity: 0.9; } #searchBar { width: 100%; max-width: 400px; padding: 12px 20px; border: 2px solid #eee; border-radius: 30px; outline: none; font-size: 16px; } .section-title { border-left: 6px solid var(--ar-teal); padding-left: 15px; margin: 50px 0 25px 0; font-size: 22px; font-weight: 700; } .video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 30px; } .shorts-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); } .video-card { background: var(--ar-white); border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.08); cursor: pointer; transition: 0.3s; } .video-card:hover { transform: translateY(-8px); box-shadow: 0 12px 24px rgba(0,0,0,0.15); } .thumb-wrapper { position: relative; width: 100%; padding-top: 56.25%; background: #000; } .short-card .thumb-wrapper { padding-top: 177%; } .thumb-wrapper img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; } .video-info { padding: 15px; } .video-info h3 { margin: 0; font-size: 14px; line-height: 1.4; height: 2.8em; overflow: hidden; } #videoModal { display: none; position: fixed; z-index: 10000; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.95); justify-content: center; align-items: center; } .modal-content { width: 95%; max-width: 1000px; position: relative; } .video-container { position: relative; padding-bottom: 56.25%; height: 0; background: #000; border-radius: 8px; overflow: hidden; } .video-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; } .close-btn { position: absolute; top: -45px; right: 0; color: white; cursor: pointer; font-size: 16px; background: var(--ar-teal); padding: 5px 12px; border-radius: 5px; } .status-msg { text-align: center; font-size: 18px; grid-column: 1 / -1; padding: 60px; color: var(--ar-gray); } Home View Featured Content Loading Protected Library... CLOSE [X] const VIMEO_TOKEN = '415a71f661f6b8bd270d20c75ee0f143'; // THE MASTER TAG LIST - Only videos with one of these will ever show. const ALLOWED_TAGS = ['office-hour-live', 'ohl-clips', 'ohl-shorts', 'ohl-featured']; const mainDisplay = document.getElementById('mainDisplay'); let timeout = null; let currentPage = 1; async function fetchVimeoFiltered(searchTerm, perPage = 12, page = 1) { try { // 1. Fetch from Vimeo const response = await fetch(`https://api.vimeo.com/me/videos?sort=date&direction=desc&query=${encodeURIComponent(searchTerm)}&per_page=${perPage}&page=${page}`, { headers: { 'Authorization': `Bearer ${VIMEO_TOKEN}` } }); const data = await response.json(); // 2. APPLY THE GATEKEEPER FILTER // We only keep videos where at least one of their tags matches our ALLOWED_TAGS list if (data.data) { data.data = data.data.filter(video => { if (!video.tags || video.tags.length === 0) return false; // Check if any tag on the video matches our approved list (lowercase comparison) return video.tags.some(tagObj => ALLOWED_TAGS.includes(tagObj.tag.toLowerCase())); }); } return data; } catch (e) { console.error("Fetch error:", e); return { data: [] }; } } function createCard(video, isShort = false) { const id = video.uri.split('/').pop(); const thumb = video.pictures.sizes[3]?.link || video.pictures.sizes[0].link; return ` ${video.name} `; } async function initDefaultView() { mainDisplay.innerHTML = "Loading Content..."; document.getElementById('searchBar').value = ""; currentPage = 1; // Limiting to 6 per row as requested const row1Data = await fetchVimeoFiltered('office-hour-live', 15); // Pull more to ensure we get 6 after filtering const row2Data = await fetchVimeoFiltered('ohl-shorts', 15); const row3Data = await fetchVimeoFiltered('ohl', 12, 1); mainDisplay.innerHTML = ` Latest Shows & Clips ${row1Data.data.slice(0,6).map(v => createCard(v)).join('')} OHL Shorts ${row2Data.data.slice(0,6).map(v => createCard(v, true)).join('')} Full Video Catalog ${row3Data.data.map(v => createCard(v)).join('')} Load More Videos `; } async function loadMoreCatalog() { const btn = document.getElementById('loadMoreBtn'); btn.innerText = "Loading..."; currentPage++; const moreData = await fetchVimeoFiltered('ohl', 30, currentPage); if (moreData.data && moreData.data.length > 0) { const catalogGrid = document.getElementById('catalogGrid'); const newCards = moreData.data.map(v => createCard(v)).join(''); catalogGrid.insertAdjacentHTML('beforeend', newCards); btn.innerText = "Load More Videos"; } else { btn.style.display = 'none'; } } async function loadFeatured() { mainDisplay.innerHTML = "Loading Featured..."; const data = await fetchVimeoFiltered('ohl-featured', 24); mainDisplay.innerHTML = ` Featured Highlights ${data.data.map(v => createCard(v)).join('')} `; } async function performSearch(query) { if (!query) return initDefaultView(); mainDisplay.innerHTML = `Searching Protected Content...`; // Even search only returns videos that pass the tag filter const data = await fetchVimeoFiltered(query, 30); mainDisplay.innerHTML = ` Search Results: ${query} ${data.data.map(v => createCard(v)).join('')} `; } function debounceSearch(val) { clearTimeout(timeout); timeout = setTimeout(() => performSearch(val), 500); } function openVideo(id) { document.getElementById('player').innerHTML = ``; document.getElementById('videoModal').style.display = 'flex'; document.body.style.overflow = 'hidden'; } function closeVideo() { document.getElementById('videoModal').style.display = 'none'; document.getElementById('player').innerHTML = ''; document.body.style.overflow = 'auto'; } window.onclick = function(event) { if (event.target == document.getElementById('videoModal')) { closeVideo(); } } initDefaultView();
.sidebar-first .content-inner {margin-left: 0!important;} #members-menu-container {display:none!important;} :root { --ar-teal: #007682; --ar-dark: #333333; --ar-bg: #f4f7f6; --ar-white: #ffffff; --ar-gray: #888888; } body { font-family: 'Segoe UI', sans-serif; background-color: var(--ar-bg); margin: 0; padding: 20px; color: var(--ar-dark); } .container { max-width: 1400px; margin: 0 auto; } .controls { display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; margin-bottom: 40px; align-items: center; padding: 20px; background: var(--ar-white); border-radius: 15px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); } .btn { padding: 12px 25px; border-radius: 30px; border: none; cursor: pointer; font…
Continue reading →

Hope for Healing Excerpt: 'Is My Life Out of Control?'

Video Preview