{"id":28870,"date":"2026-01-01T21:09:55","date_gmt":"2026-01-02T02:09:55","guid":{"rendered":""},"modified":"2026-04-16T15:13:54","modified_gmt":"2026-04-16T19:13:54","slug":"blaine-harrington","status":"publish","type":"page","link":"https:\/\/havenrpg.net\/newsite\/characters\/blaine-harrington\/","title":{"rendered":"Blaine Harrington"},"content":{"rendered":"\n<!-- Character Page HTML for WordPress -->\n<style>\n    \/* Full page background *\/\n    .rpg-background-overlay {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        z-index: -1;\n        background-image: url('');\n        background-size: cover;\n        background-position: center;\n        background-attachment: fixed;\n        background-repeat: no-repeat;\n    }\n    \n    \/* Character page wrapper - transparent, just for positioning *\/\n    .rpg-character-page {\n        position: relative;\n        width: 100%;\n        margin-top: -180px;\n        margin-bottom: -180px;\n        padding: 90px 0;\n        background: transparent;\n    }\n    \n    \/* The black semi-transparent container - only this has the black background *\/\n    .rpg-character-inner {\n        max-width: 1200px;\n        margin: 0 auto;\n        background-color: rgba(0, 0, 0, 0.8);\n        box-shadow: 0 0 50px rgba(0, 0, 0, 0.8);\n    }\n    \n    .rpg-character-container {\n        padding: 40px;\n        position: relative;\n    }\n    \n    \/* Header styling *\/\n    .rpg-header {\n        text-align: center;\n        margin-bottom: 30px;\n        color: white;\n    }\n    \n    .rpg-character-name {\n        font-size: 48px;\n        font-weight: 300;\n        letter-spacing: 3px;\n        margin-bottom: 10px;\n        font-family: 'Georgia', serif;\n        text-transform: uppercase;\n        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);\n        color: white;\n    }\n    \n    .rpg-follower-count {\n        font-size: 18px;\n        color: #ccc;\n        margin-bottom: 30px;\n    }\n    \n    .rpg-follower-count span {\n        color: #ff6b6b;\n        font-weight: bold;\n    }\n    \n    \/* Content section *\/\n    .rpg-content-section {\n        display: flex;\n        gap: 40px;\n        margin-bottom: 40px;\n        align-items: flex-start;\n    }\n    \n    \/* Image carousel *\/\n    .rpg-image-carousel-container {\n        flex: 0 0 400px;\n        position: relative;\n    }\n    \n    .rpg-faction-society {\n        margin-top: 20px;\n        padding: 15px;\n        background: rgba(0, 0, 0, 0.5);\n        border-radius: 10px;\n        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n    }\n    \n    .rpg-faction-society p {\n        margin-bottom: 10px;\n        color: #ddd;\n        font-size: 15px;\n    }\n    \n    .rpg-faction-society p:last-child {\n        margin-bottom: 0;\n    }\n    \n    .rpg-faction-society strong {\n        color: white;\n        font-weight: 600;\n    }\n    \n    .rpg-faction-society a {\n        color: #ff6b6b;\n        text-decoration: none;\n        transition: color 0.3s;\n    }\n    \n    .rpg-faction-society a:hover {\n        color: #ff9999;\n        text-decoration: underline;\n    }\n    \n    .rpg-image-carousel {\n        position: relative;\n        width: 100%;\n        height: 600px;\n        overflow: hidden;\n        border-radius: 10px;\n        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);\n        background: #000;\n    }\n    \n    .rpg-carousel-image {\n        position: absolute;\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        opacity: 0;\n        transition: opacity 0.5s ease-in-out;\n    }\n    \n    .rpg-carousel-image.active {\n        opacity: 1;\n    }\n    \n    .rpg-carousel-controls {\n        position: absolute;\n        bottom: 20px;\n        left: 50%;\n        transform: translateX(-50%);\n        display: flex;\n        gap: 10px;\n        z-index: 10;\n    }\n    \n    .rpg-carousel-dot {\n        width: 12px;\n        height: 12px;\n        border-radius: 50%;\n        background-color: rgba(255, 255, 255, 0.5);\n        cursor: pointer;\n        transition: background-color 0.3s;\n        border: none;\n        padding: 0;\n    }\n    \n    .rpg-carousel-dot.active {\n        background-color: white;\n    }\n    \n    .rpg-carousel-nav {\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        background-color: rgba(0, 0, 0, 0.5);\n        color: white;\n        border: none;\n        padding: 10px 15px;\n        cursor: pointer;\n        font-size: 24px;\n        transition: background-color 0.3s;\n        z-index: 10;\n        line-height: 1;\n    }\n    \n    .rpg-carousel-nav:hover {\n        background-color: rgba(0, 0, 0, 0.8);\n    }\n    \n    .rpg-prev {\n        left: 10px;\n    }\n    \n    .rpg-next {\n        right: 10px;\n    }\n    \n    \/* Text blurb with tabs *\/\n    .rpg-text-blurb {\n        flex: 1;\n        color: #ddd;\n        line-height: 1.8;\n        font-size: 16px;\n    }\n    \n    .rpg-text-blurb h3 {\n        color: white;\n        margin-bottom: 20px;\n        font-size: 28px;\n        font-weight: 300;\n        letter-spacing: 1px;\n    }\n    \n    .rpg-text-blurb p {\n        margin-bottom: 15px;\n        color: #ddd;\n    }\n    \n    .rpg-text-blurb a {\n        color: #ff6b6b;\n        text-decoration: none;\n        transition: color 0.3s;\n    }\n    \n    .rpg-text-blurb a:hover {\n        color: #ff9999;\n        text-decoration: underline;\n    }\n    \n    .rpg-text-blurb strong {\n        color: white;\n    }\n    \n    \/* Tab styles *\/\n    .rpg-tabs {\n        width: 100%;\n    }\n    \n    .rpg-tab-buttons {\n        display: flex;\n        border-bottom: 2px solid #444;\n        margin-bottom: 20px;\n        gap: 10px;\n    }\n    \n    .rpg-tab-button {\n        background: transparent;\n        border: none;\n        color: #999;\n        padding: 12px 24px;\n        font-size: 16px;\n        cursor: pointer;\n        position: relative;\n        transition: color 0.3s;\n        font-weight: 300;\n        letter-spacing: 0.5px;\n    }\n    \n    .rpg-tab-button:hover {\n        color: #ccc;\n    }\n    \n    .rpg-tab-button.active {\n        color: white;\n    }\n    \n    .rpg-tab-button.active::after {\n        content: '';\n        position: absolute;\n        bottom: -2px;\n        left: 0;\n        right: 0;\n        height: 2px;\n        background: #ff6b6b;\n    }\n    \n    .rpg-tab-content {\n        display: none;\n        animation: fadeIn 0.3s;\n    }\n    \n    .rpg-tab-content.active {\n        display: block;\n    }\n    \n    .rpg-tab-content.profile-tab {\n        text-align: justify;\n    }\n    \n    .rpg-tab-content.photo-tab {\n        font-family: 'Courier New', Courier, monospace;\n        font-size: 12px;\n        line-height: 1.4;\n        white-space: pre;\n        overflow-x: auto;\n        background: rgba(0, 0, 0, 0.3);\n        padding: 20px;\n        border-radius: 5px;\n        color: #ddd;\n    }\n    \n    @keyframes fadeIn {\n        from { opacity: 0; }\n        to { opacity: 1; }\n    }\n    \n    \/* Video carousel *\/\n    .rpg-video-section {\n        margin-top: 40px;\n    }\n    \n    .rpg-video-section h3 {\n        color: white;\n        text-align: center;\n        margin-bottom: 30px;\n        font-size: 28px;\n        font-weight: 300;\n        letter-spacing: 1px;\n    }\n    \n    .rpg-video-carousel {\n        position: relative;\n        width: 100%;\n        height: 500px;\n        overflow: hidden;\n        border-radius: 10px;\n        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);\n        background: #000;\n    }\n    \n    .rpg-video-item {\n        position: absolute;\n        width: 100%;\n        height: 100%;\n        opacity: 0;\n        transition: opacity 0.5s ease-in-out;\n        pointer-events: none;\n    }\n    \n    .rpg-video-item.active {\n        opacity: 1;\n        pointer-events: auto;\n    }\n    \n    .rpg-video-placeholder {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        height: 100%;\n        color: #666;\n        font-size: 18px;\n    }\n    \n    .rpg-video-item iframe {\n        width: 100%;\n        height: 100%;\n        border: none;\n        border-radius: 10px;\n    }\n    \n    \/* Force visibility for our iframes *\/\n    .rpg-protected-iframe {\n        display: block !important;\n        visibility: visible !important;\n        opacity: 1 !important;\n    }\n    \n    \/* Responsive *\/\n    @media (max-width: 1300px) {\n        .rpg-character-inner {\n            margin: 0 20px;\n        }\n    }\n    \n    @media (max-width: 768px) {\n        .rpg-character-container {\n            padding: 20px;\n        }\n        \n        .rpg-content-section {\n            flex-direction: column;\n        }\n        \n        .rpg-image-carousel-container {\n            flex: 1;\n            width: 100%;\n            max-width: 100%;\n        }\n        \n        .rpg-character-name {\n            font-size: 36px;\n        }\n        \n        .rpg-image-carousel {\n            height: 400px;\n        }\n        \n        .rpg-video-carousel {\n            height: 300px;\n        }\n        \n        .rpg-character-inner {\n            margin: 0 10px;\n        }\n        \n        .rpg-tab-button {\n            padding: 10px 16px;\n            font-size: 14px;\n        }\n        \n        .rpg-tab-content.photo-tab {\n            font-size: 10px;\n            padding: 10px;\n        }\n        \n        .rpg-faction-society {\n            margin-bottom: 20px;\n        }\n    }\n<\/style>\n\n<!-- Background image element -->\n<div class=\"rpg-background-overlay\"><\/div>\n\n<!-- Main content -->\n<div class=\"rpg-character-page\">\n    <div class=\"rpg-character-inner\">\n        <div class=\"rpg-character-container\">\n            <div class=\"rpg-header\">\n                <h1 class=\"rpg-character-name\">Blaine Harrington<\/h1>\n                <div class=\"rpg-follower-count\">@<span style=\"color:#2a6e9b\"><span style=\"color:#347ba6\">B<span style=\"color:#3e88b1\"><span style=\"color:#4895bc\">l<span style=\"color:#52a3c8\">a<span style=\"color:#52a3c8\"><span style=\"color:#4895bc\">i<span style=\"color:#3e88b1\"><span style=\"color:#347ba6\">n<span style=\"color:#2a6e9b\">e<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> | Followers: <span>84<\/span><\/div>\n            <\/div>\n            \n            <div class=\"rpg-content-section\">\n                <div class=\"rpg-image-carousel-container\">\n                    <div class=\"rpg-image-carousel\" id=\"rpgImageCarousel\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/3wc95pb.jpeg\" class=\"rpg-carousel-image active\" alt=\"Character 1\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/P40OLLy.jpeg\" class=\"rpg-carousel-image\" alt=\"Character 2\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/PqXT6T1.jpeg\" class=\"rpg-carousel-image\" alt=\"Character 3\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/OGWr5Dp.jpeg\" class=\"rpg-carousel-image\" alt=\"Character 4\">\n                        \n                        <button class=\"rpg-carousel-nav rpg-prev\" id=\"rpgPrevImage\">\u2039<\/button>\n                        <button class=\"rpg-carousel-nav rpg-next\" id=\"rpgNextImage\">\u203a<\/button>\n                        \n                        <div class=\"rpg-carousel-controls\">\n                            <button class=\"rpg-carousel-dot active\" data-index=\"0\"><\/button>\n                            <button class=\"rpg-carousel-dot\" data-index=\"1\"><\/button>\n                            <button class=\"rpg-carousel-dot\" data-index=\"2\"><\/button>\n                            <button class=\"rpg-carousel-dot\" data-index=\"3\"><\/button>\n                        <\/div>\n                    <\/div>\n                    \n                    \n                <\/div>\n                \n                <div class=\"rpg-text-blurb\">\n                    <div class=\"rpg-tabs\">\n                        <div class=\"rpg-tab-buttons\">\n                            <button class=\"rpg-tab-button active\" data-tab=\"profile\">Profile<\/button>\n                            <button class=\"rpg-tab-button\" data-tab=\"photo\">Photo<\/button>\n                        <\/div>\n                        \n                        <div id=\"profile\" class=\"rpg-tab-content profile-tab active\">\n                            <h3>About Me<\/h3>\n                            <p><span style=\"color:#2f7aac\">Freshly a<span style=\"color:#327ba8\">rrived to New Haven<span style=\"color:#357da7\">. Windermere Fresh<span style=\"color:#3b84ae\">man. I enjoy worki<span style=\"color:#418cb4\">ng out, reading, an<span style=\"color:#4693ba\">d going on long walk<span style=\"color:#4c9bc1\">s in the rain. Bein<span style=\"color:#52a3c8\">g honest, I don&#8217;t ge<span style=\"color:#4c9bc1\">t out as much as I sh<span style=\"color:#4693ba\">ould, but if you&#8217;d l<span style=\"color:#418cb4\">ike I&#8217;d be down to me<span style=\"color:#3b84ae\">et for whatever.<span style=\"color:#c0c0c0\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n                            <p><span style=\"color:#52a3c8\">If you&#8217;d like to <span style=\"color:#4895bc\">get in contact wi<span style=\"color:#3e88b1\">th me but prefer <span style=\"color:#347ba6\">other channels, m<span style=\"color:#2a6e9b\">y phone number is <\/span>7101262<span style=\"color:#2a6e9b\">.<\/span><br><\/span><\/span><\/span><\/span><\/p>\n                            \n                            <h3>Quote<\/h3>\n                            <p><\/p>\n                            \n                            <h3>Joke<\/h3>\n                            <p><\/p>\n                        <\/div>\n                        \n                        <div id=\"photo\" class=\"rpg-tab-content photo-tab\"><span style=\"color:#008080\"> _____________________________________________________________________________\n<\/span><span style=\"color:#008080\">| <\/span>(An impromptu selfie taken at what looks like a pizza party; he wears a     <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>slight, close-lipped half smile.)                                           <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>This is a tall, athletic young man with curious gray eyes in his late       <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>teens.                                                                      <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>You would judge him to be a <span style=\"color:#0087ff\">8.3<\/span> out of 10.                                  <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>He is 6&#8217;3&#8243; and has fair skin, <span style=\"color:#d7af00\">pre<span style=\"color:#d7af5f\">ppy<span style=\"color:#d7af5f\">, s<span style=\"color:#d7af87\">trai<span style=\"color:#d7af87\">ght<span style=\"color:#d7af87\"> li<span style=\"color:#d7af87\">ght <span style=\"color:#d7af5f\">bro<span style=\"color:#d7af5f\">wn <span style=\"color:#d7af00\">hair<span style=\"color:#c0c0c0\">, and <span style=\"color:#2a6e9b\">s<span style=\"color:#347ba6\">to<span style=\"color:#3e88b1\">r<span style=\"color:#4895bc\">my<span style=\"color:#52a3c8\"> <span style=\"color:#008080\">| <\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>\n<span style=\"color:#008080\">| <\/span>g<span style=\"color:#52a3c8\">r<span style=\"color:#4895bc\">ay<span style=\"color:#3e88b1\"> <span style=\"color:#347ba6\">ey<span style=\"color:#2a6e9b\">es<\/span>.                                                                  <span style=\"color:#008080\">| <\/span><\/span><\/span><\/span><\/span>\n<span style=\"color:#008080\">| <\/span>You can see his face, neck, arms, and hands.                                <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>This young man stands tall at around 6&#8217;3, with a lean, athletic physique.   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>His skin is fair in complexion and clear of blemishes, and he looks to be   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>in his late teens. His light brown hair is kept tidy with an interesting    <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>mix of messiness, an Ivy League cut with hints of tousling and texturing    <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>especially at the top. His round, stormy gray eyes have the character of a  <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>gloomy day; melancholy, though conveying warmth still. His clean-shaven     <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>face has a soft contour to it, with dimpled cheeks and a slightly angular   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>jawline.                                                                    <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>His forearms and lower arms appear lean, with a strong yet not overly bulky <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>appearance to them. He has long, slender hands that taper deftly from his   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>wrists, his nails kept neatly trimmed and skin kept moisturized and soft.   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span><span style=\"color:#005f5f\">He has a<span style=\"color:#00875f\"> very fa<span style=\"color:#5f875f\">int scen<span style=\"color:#87875f\">t of pet<span style=\"color:#af875f\">richor, t<span style=\"color:#af875f\">he earth<span style=\"color:#87875f\">y scent <span style=\"color:#5f875f\">after ra<span style=\"color:#00875f\">infall     <span style=\"color:#008080\">| <\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>\n<span style=\"color:#008080\">| <\/span>a<span style=\"color:#005f5f\">bout him.<span style=\"color:#c0c0c0\">                                                                  <span style=\"color:#008080\">| <\/span><\/span><\/span>\n<span style=\"color:#008080\">| <\/span><u>He is using:<\/u>                                                                <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(<span style=\"color:#008080\">E<\/span>) a gray Samsung S25 Plus                                                 <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(bundled up)          a warm navy wool coat with shiny buttons              <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(tucked-in)           a navy blue polo shirt                                <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(over shoulders)  (<span style=\"color:#008080\">C<\/span>) an ergonomic black hiking backpack                    <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(slim fit)        (<span style=\"color:#008080\">E<\/span>) a pair of charcoal gray chinos                        <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(sleek)           (<span style=\"color:#008080\">E<\/span>) a pair of black slip-on dress shoes                   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">|_____________________________________________________________________________|\n<\/span><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <div class=\"rpg-video-section\">\n                <div class=\"rpg-video-carousel\" id=\"rpgVideoCarousel\">\n                    <div class=\"rpg-video-item active\" data-video-id=\"6UrELHoQHbE\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"rQizSeJ1PaU\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"eY1T8NYTsho\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"hOx48_p8RX8\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    \n                    <button class=\"rpg-carousel-nav rpg-prev\" id=\"rpgPrevVideo\">\u2039<\/button>\n                    <button class=\"rpg-carousel-nav rpg-next\" id=\"rpgNextVideo\">\u203a<\/button>\n                    \n                    <div class=\"rpg-carousel-controls\" style=\"bottom: 30px;\">\n                        <button class=\"rpg-carousel-dot active\" data-video-index=\"0\"><\/button>\n                        <button class=\"rpg-carousel-dot\" data-video-index=\"2\"><\/button>\n                        <button class=\"rpg-carousel-dot\" data-video-index=\"4\"><\/button>\n                        <button class=\"rpg-carousel-dot\" data-video-index=\"6\"><\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\njQuery(document).ready(function($) {\n    'use strict';\n    \n    let currentImageIndex = 0;\n    let currentVideoIndex = 0;\n    let imageAutoAdvance;\n    let videosLoaded = false;\n    let protectionActive = false;\n    \n    \/\/ Tab switching functionality\n    $('.rpg-tab-button').on('click', function() {\n        var tabName = $(this).data('tab');\n        \n        \/\/ Hide all tab contents\n        $('.rpg-tab-content').removeClass('active');\n        \n        \/\/ Remove active class from all buttons\n        $('.rpg-tab-button').removeClass('active');\n        \n        \/\/ Show the selected tab and mark button as active\n        $('#' + tabName).addClass('active');\n        $(this).addClass('active');\n    });\n    \n    \/\/ Function to create and insert iframe\n    function createIframe(videoId) {\n        const iframe = document.createElement('iframe');\n        iframe.src = 'https:\/\/www.youtube.com\/embed\/' + videoId;\n        iframe.setAttribute('allowfullscreen', 'true');\n        iframe.setAttribute('frameborder', '0');\n        iframe.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture');\n        iframe.className = 'rpg-protected-iframe';\n        iframe.style.cssText = 'width: 100%; height: 100%; border: none; border-radius: 10px;';\n        return iframe;\n    }\n    \n    \/\/ Function to load video iframes\n    function loadVideoIframes() {\n        if (videosLoaded) return;\n        \n        console.log('RPG: Loading video iframes...');\n        \n        $('.rpg-video-item').each(function() {\n            const $item = $(this);\n            const videoId = $item.data('video-id');\n            \n            if (videoId && !$item.find('iframe').length) {\n                $item.find('.rpg-video-placeholder').remove();\n                const iframe = createIframe(videoId);\n                $item.append(iframe);\n            }\n        });\n        \n        videosLoaded = true;\n        \n        \/\/ Start protection after a short delay\n        setTimeout(startProtection, 500);\n    }\n    \n    \/\/ Smart protection system\n    function startProtection() {\n        if (protectionActive) return;\n        protectionActive = true;\n        \n        \/\/ Check every second for hidden iframes\n        setInterval(function() {\n            $('.rpg-protected-iframe').each(function() {\n                const $iframe = $(this);\n                const computedStyle = window.getComputedStyle(this);\n                \n                \/\/ Only fix if actually hidden\n                if (computedStyle.display === 'none' || \n                    computedStyle.visibility === 'hidden' || \n                    computedStyle.opacity === '0') {\n                    \n                    console.log('RPG: Fixing hidden iframe');\n                    $iframe.css({\n                        'display': 'block',\n                        'visibility': 'visible',\n                        'opacity': '1'\n                    });\n                }\n            });\n        }, 1000);\n    }\n    \n    \/\/ Image carousel functions\n    function changeImage(direction) {\n        const images = $('#rpgImageCarousel .rpg-carousel-image');\n        const dots = $('.rpg-image-carousel-container .rpg-carousel-dot');\n        \n        images.eq(currentImageIndex).removeClass('active');\n        dots.eq(currentImageIndex).removeClass('active');\n        \n        currentImageIndex = (currentImageIndex + direction + images.length) % images.length;\n        \n        images.eq(currentImageIndex).addClass('active');\n        dots.eq(currentImageIndex).addClass('active');\n    }\n    \n    function setCurrentImage(index) {\n        const images = $('#rpgImageCarousel .rpg-carousel-image');\n        const dots = $('.rpg-image-carousel-container .rpg-carousel-dot');\n        \n        images.eq(currentImageIndex).removeClass('active');\n        dots.eq(currentImageIndex).removeClass('active');\n        \n        currentImageIndex = index;\n        \n        images.eq(currentImageIndex).addClass('active');\n        dots.eq(currentImageIndex).addClass('active');\n    }\n    \n    \/\/ Video carousel functions\n    function changeVideo(direction) {\n        const videos = $('#rpgVideoCarousel .rpg-video-item');\n        const dots = $('.rpg-video-section .rpg-carousel-dot');\n        \n        videos.eq(currentVideoIndex).removeClass('active');\n        dots.eq(currentVideoIndex).removeClass('active');\n        \n        currentVideoIndex = (currentVideoIndex + direction + videos.length) % videos.length;\n        \n        videos.eq(currentVideoIndex).addClass('active');\n        dots.eq(currentVideoIndex).addClass('active');\n    }\n    \n    function setCurrentVideo(index) {\n        const videos = $('#rpgVideoCarousel .rpg-video-item');\n        const dots = $('.rpg-video-section .rpg-carousel-dot');\n        \n        videos.eq(currentVideoIndex).removeClass('active');\n        dots.eq(currentVideoIndex).removeClass('active');\n        \n        currentVideoIndex = index;\n        \n        videos.eq(currentVideoIndex).addClass('active');\n        dots.eq(currentVideoIndex).addClass('active');\n    }\n    \n    \/\/ Event handlers\n    $('#rpgPrevImage').on('click', function() {\n        changeImage(-1);\n        clearInterval(imageAutoAdvance);\n    });\n    \n    $('#rpgNextImage').on('click', function() {\n        changeImage(1);\n        clearInterval(imageAutoAdvance);\n    });\n    \n    $('.rpg-image-carousel-container .rpg-carousel-dot').on('click', function() {\n        const index = parseInt($(this).data('index'));\n        setCurrentImage(index);\n        clearInterval(imageAutoAdvance);\n    });\n    \n    $('#rpgPrevVideo').on('click', function() {\n        changeVideo(-1);\n    });\n    \n    $('#rpgNextVideo').on('click', function() {\n        changeVideo(1);\n    });\n    \n    $('.rpg-video-section .rpg-carousel-dot').on('click', function() {\n        const index = parseInt($(this).data('video-index'));\n        setCurrentVideo(index);\n    });\n    \n    \/\/ Auto-advance image carousel only\n    imageAutoAdvance = setInterval(function() {\n        changeImage(1);\n    }, 5000);\n    \n    \/\/ Load videos after 2 second delay\n    setTimeout(loadVideoIframes, 2000);\n});\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Blaine Harrington @Blaine | Followers: 84 \u2039 \u203a Profile Photo About Me Freshly arrived to New Haven. Windermere Freshman. I enjoy working out, reading, and going on long walks in the rain. Being honest, I don&#8217;t get out as much as I should, but if&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":16918,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-28870","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/28870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/comments?post=28870"}],"version-history":[{"count":0,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/28870\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/16918"}],"wp:attachment":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/media?parent=28870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}