{"id":31587,"date":"2026-09-26T07:52:36","date_gmt":"2026-09-26T11:52:36","guid":{"rendered":"https:\/\/havenrpg.net\/newsite\/?page_id=31587"},"modified":"2026-10-16T05:00:02","modified_gmt":"2026-10-16T09:00:02","slug":"h5-oliver-wilson","status":"publish","type":"page","link":"https:\/\/havenrpg.net\/newsite\/h5-characters\/h5-oliver-wilson\/","title":{"rendered":"Oliver Wilson"},"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('https:\/\/i.redd.it\/ayiv6zczr1hf1.jpeg');\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\">Oliver Wilson<\/h1>\n                <div class=\"rpg-follower-count\">@<span style=\"color:#a57d02\">o<span style=\"color:#b58801\">l<span style=\"color:#c59300\">l<span style=\"color:#cf9e0b\">y<span style=\"color:#d2a722\">.<span style=\"color:#d5b038\">w<span style=\"color:#c0c0c0\"><\/span><\/span><\/span><\/span><\/span><\/span><\/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:\/\/femboy.beauty\/5tvFVr.png\" class=\"rpg-carousel-image active\" alt=\"Character 1\">\n                        <img decoding=\"async\" src=\"https:\/\/femboy.beauty\/eiOdVf.png\" class=\"rpg-carousel-image\" alt=\"Character 2\">\n                        <img decoding=\"async\" src=\"https:\/\/femboy.beauty\/kzjl3E.png\" class=\"rpg-carousel-image\" alt=\"Character 3\">\n                        <img decoding=\"async\" src=\"https:\/\/femboy.beauty\/Uff0z5.png\" class=\"rpg-carousel-image\" alt=\"Character 4\">\n                        <img decoding=\"async\" src=\"https:\/\/femboy.beauty\/5Xf5Rw.png\" class=\"rpg-carousel-image\" alt=\"Character 5\">\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                            <button class=\"rpg-carousel-dot\" data-index=\"4\"><\/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:#a57d02\">H<span style=\"color:#ab8102\">i<span style=\"color:#b68901\">, <span style=\"color:#bc8d01\">I<span style=\"color:#c29101\">&#8216;<span style=\"color:#c79500\">m <span style=\"color:#ce9c08\">O<span style=\"color:#cfa010\">l<span style=\"color:#d0a318\">i<span style=\"color:#d2a620\">ve<span style=\"color:#d4ad30\">r<span style=\"color:#d5b038\">.<span style=\"color:#c0c0c0\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n                            <p><span style=\"color:#d5b038\">Fr<span style=\"color:#d4ac2e\">eshm<span style=\"color:#d2a824\">an a<span style=\"color:#d1a319\">t Gr<span style=\"color:#cf9f0f\">eyst<span style=\"color:#ce9b05\">one, <span style=\"color:#c99600\">maj<span style=\"color:#c29101\">orin<span style=\"color:#bb8c01\">g in <span style=\"color:#b48701\">Fin<span style=\"color:#ac8202\">e Ar<span style=\"color:#a57d02\">ts.<span style=\"color:#c0c0c0\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n                            <p><span style=\"color:#a57d02\">I e<span style=\"color:#b48801\">njoy l<span style=\"color:#c19101\">ong wa<span style=\"color:#ce9b04\">lks, d<span style=\"color:#d1a41a\">rizzl<span style=\"color:#d4ac2f\">y autumn day<span style=\"color:#d1a41a\">s, an<span style=\"color:#ce9b04\">d meet<span style=\"color:#c19101\">ing ne<span style=\"color:#b48801\">w muse<span style=\"color:#a57d02\">s. <span style=\"color:#c0c0c0\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n                            \n                            <h3>Quote<\/h3>\n                            <p><span style=\"color:#a57d02\">&#8220;W<span style=\"color:#b28601\">hile <span style=\"color:#c39200\">we <span style=\"color:#ce9b05\">wa<span style=\"color:#d0a217\">it f<span style=\"color:#d4ac2f\">or lif<span style=\"color:#d0a217\">e, l<span style=\"color:#ce9b05\">ife <span style=\"color:#c39200\">pa<span style=\"color:#b28601\">sses<span style=\"color:#a57d02\">.&#8221;<span style=\"color:#c0c0c0\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> <span style=\"color:#ffffff\">&#8212; <span style=\"color:#008080\">Seneca<\/span><\/span><\/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\n<\/span><span style=\"color:#008080\">| <\/span>An artsy photo of an artsy boy. His attention doesn&#8217;t grace the camera but  <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>instead is turned towards a nearby window just out of the shot. Contrast and <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>brightness have been tweaked to try and &#8216;perfect&#8217; the image, with a decent &#8211; <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>though perhaps pretentious &#8211; affect.                                        <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>This is a slender young guy with a credulous air in his late teens.         <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>He is 5&#8217;9&#8243; and has fair skin with a clear complexion, <span style=\"color:#e4afa0\">to<span style=\"color:#f8c6a7\">us<span style=\"color:#facfab\">led <span style=\"color:#fcdfb4\">s<span style=\"color:#fce7bd\">trawbe<span style=\"color:#fcdfb4\">rr<span style=\"color:#facfab\">y b<span style=\"color:#f8c6a7\">lo<span style=\"color:#e4afa0\">nd<span style=\"color:#c0c0c0\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span> hair, and blue eyes.\n\n<span style=\"color:#008080\">| <\/span>You can see his face, neck, and hands.                                      <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>This guy has a skinny figure with long limbs for his height that carry something of a delicate affect. He&#8217;s of an average stature, neither particularly tall nor short, though he doesn&#8217;t have the best posture for standing tall in any event.\n\n<span style=\"color:#008080\">| <\/span><span style=\"color:#c0c0c0\"><\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span><span style=\"color:#c0c0c0\"><\/span>Atop his head rests an ear-length, playfully tousled mop of strawberry blond waves that make him appear as though he&#8217;d just rolled out of bed, or perhaps walked out of a wind tunnel. His eyebrows are thick, kept well-groomed, and often lifted in thought. His eyes have a plaintive character, round in shape with a light grayish-blue color that might remind one of a rainy day. His face is oval-shaped, with a softly angled jawline kept clean-shaven. \n\n<span style=\"color:#008080\">| <\/span><span style=\"color:#c0c0c0\"><\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span><span style=\"color:#c0c0c0\"><\/span>His hands are soft, with long delicate fingers and nails meticulously kept trimmed and clean. \n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span><u>He is using:<\/u>                                                                <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span> (<span style=\"color:#008080\">E<\/span>) a Desert Titanium iPhone 16 Pro                                        <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>(in ears)         a white pair of wired Apple EarPods                       <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>(worn close)      a thin silvery chain necklace                             <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>(over torso)  (<span style=\"color:#008080\">E<\/span>) a full-zip navy blue Brooks Brothers Teddy Fleece jacket  <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>(on torso)    (<span style=\"color:#008080\">E<\/span>) a black and blue striped Calvin Klein polo shirt          <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>(slim-fit)        a pair of khaki colored chinos                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>(sleek)       (<span style=\"color:#008080\">E<\/span>) a pair of white and gray Adidas Adizeros                  <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">|_____________________________________________________________________________|\n\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=\"R30MT_5Zsfg\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"8YiDQk6Bgik\">\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=\"1\"><\/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>Oliver Wilson @olly.w \u2039 \u203a Profile Photo About Me Hi, I&#8216;m Oliver. Freshman at Greystone, majoring in Fine Arts. I enjoy long walks, drizzly autumn days, and meeting new muses. Quote &#8220;While we wait for life, life passes.&#8221; &#8212; Seneca Joke _____________________________________________________________________________ | An artsy&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":30426,"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-31587","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/31587","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=31587"}],"version-history":[{"count":0,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/31587\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/30426"}],"wp:attachment":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/media?parent=31587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}