{"id":31653,"date":"2026-10-25T19:43:34","date_gmt":"2026-10-25T23:43:34","guid":{"rendered":"https:\/\/havenrpg.net\/newsite\/?page_id=31653"},"modified":"2026-11-05T08:15:27","modified_gmt":"2026-11-05T13:15:27","slug":"h5-spring-sullivan","status":"publish","type":"page","link":"https:\/\/havenrpg.net\/newsite\/h5-characters\/h5-spring-sullivan\/","title":{"rendered":"Spring Sullivan"},"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:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcSxmO9t7L5i2m9Y46ywP11U408BA3HG5c4uWsW3khE31A&amp;s=10');\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\">Spring Sullivan<\/h1>\n                <div class=\"rpg-follower-count\">@<span style=\"color:#b7ff00\">S<span style=\"color:#9eff00\">p<span style=\"color:#85ff14\">r<span style=\"color:#6eff52\">i<span style=\"color:#81ff8f\">n<span style=\"color:#aaffcc\">g<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:\/\/i.pinimg.com\/474x\/fa\/54\/3e\/fa543e80f80db81305754d3d26f394be.jpg\" class=\"rpg-carousel-image active\" alt=\"Character 1\">\n                        <img decoding=\"async\" src=\"https:\/\/i.pinimg.com\/736x\/54\/56\/62\/545662bfb6aea2f0c5e1d4c94c00bff6.jpg\" class=\"rpg-carousel-image\" alt=\"Character 2\">\n                        <img decoding=\"async\" src=\"https:\/\/i.pinimg.com\/236x\/1c\/6d\/e4\/1c6de4b5ece1ce863b940564cb047c88.jpg\" class=\"rpg-carousel-image\" alt=\"Character 3\">\n                        <img decoding=\"async\" src=\"https:\/\/i.pinimg.com\/236x\/02\/17\/61\/0217611a7bc4a9965292b2125d80ba55.jpg\" class=\"rpg-carousel-image\" alt=\"Character 4\">\n                        <img decoding=\"async\" src=\"https:\/\/i.pinimg.com\/236x\/01\/9c\/6b\/019c6bb2074a2ca3919155638d420953.jpg\" class=\"rpg-carousel-image\" alt=\"Character 5\">\n                        <img decoding=\"async\" src=\"https:\/\/i.ibb.co\/PsvdsXbh\/springanddeacon.png\" class=\"rpg-carousel-image\" alt=\"Character 6\">\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                            <button class=\"rpg-carousel-dot\" data-index=\"5\"><\/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>I&#8217;m not particularly good at pretending to be more outgoing than I am, and honestly, I don&#8217;t see the point. I enjoy a little peace and quiet, dry humor, and people who don&#8217;t take themselves too seriously. If I like you, you&#8217;ll probably figure it out eventually. If I don&#8217;t, well, I&#8217;m not especially talented at pretending otherwise.<\/p>\n                            <p>I have a weakness for pretty things with a darker edge. Pastel colors, gothic details, silver jewelry, and anything that manages to be both cute and a little intimidating tend to catch my eye. My white hair and green eyes are probably the most memorable things about me, though I&#8217;d like to think there&#8217;s a little more to my personality than that.<\/p>\n                            <p>I&#8217;m not always easy to read, and I tend to keep certain things to myself until I decide someone is worth letting in. I appreciate quick wit, good conversation, and people who can tease without being cruel. I can be playful when the mood strikes, but don&#8217;t expect me to bounce off the walls about it.<\/p>\n                            <p>I&#8217;m perfectly content being a little mysterious. Besides, where&#8217;s the fun in explaining everything about yourself right away?<\/p>\n                            \n                            <h3>Quote<\/h3>\n                            <p>You&#8217;re awfully persistent for someone I&#8217;m pretending not to find interesting.<\/p>\n                            \n                            <h3>Joke<\/h3>\n                            <p>I have a bright future ahead of me. Probably an oncoming train.<br><br><\/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>She poses with quiet confidence, her glossy white waves framing her pale    <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>face and striking emerald-green eyes. Her cropped black jacket and fitted   <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>gothic top feature delicate lavender accents, complemented by pink-strapped <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>trousers and lilac-buckled platform boots. A cast encases her right arm up to\n\n<span style=\"color:#008080\">| <\/span>the elbow, while her uninjured hand holds a pearlescent lavender iPhone     <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>decorated with tiny silver stars. She tilts her head slightly toward the    <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>camera, her rosy lips forming a faint, restrained smile. Despite her injury, <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>she maintains an effortlessly composed, subtly defiant elegance.            <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 slim woman with a soft appearance in her late teens with small D cup breasts.\n\n<span style=\"color:#008080\">| <\/span>She is 5&#8217;2&#8243; and has smooth and pale skin, white, and green eyes.            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>You can see her face, neck, top of her breasts, and hands.                  <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>She appears injured.                                                        <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>She has a strikingly face framed by a thick fall of glossy, white hair, its silky lengths flowing well past her shoulders in soft, natural waves. Fine strands frame her temples and cheekbones, while the rest spills down her back in a smooth, snowy cascade. Her complexion is smooth and even, with a delicate warmth that softens the paleness of her hair and bright eyes. High cheekbones, a gently tapered jaw, and a small, straight nose give her features an elegant balance, while her full, naturally rosy lips lend softness to her face. Her eyes are a brilliant shade of emerald green, luminous and richly colored, with subtle golden flecks surrounding the pupils. Dark, curved lashes accentuate their shape, and her well-defined brows lend depth to her expression. Her gaze is captivating without being severe, framed by features that are both delicate and distinct. Her lips curve naturally at the corners, giving her an effortlessly lovely expression, while the faintest smile brings a warmth to her otherwise striking appearance. Her figure is feminine and gracefully proportioned, with a defined waist, softly rounded hips, and a naturally full C-cup bust. Her shoulders are smooth and gently sloped, complementing the elegant lines of her neck and collarbones. Her curves are balanced against her frame, creating a shapely silhouette without appearing exaggerated. There is a natural elegance to her overall appearance, from the lustrous pull of her hair to the vivid green of her eyes. Her beauty lies in the contrast of her features: the richness of her snowy hair, the brightness of her gaze, and the softness of her lips against the definition of her cheekbones. The result is a woman with an undeniably beautiful, memorable appearance, refined without seeming artificial.\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>Her right arm has been casted up to the elbow.                              <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span>                                                                            <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span><u>She is using:<\/u>                                                               <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span> (<span style=\"color:#008080\">E<\/span>) a pearlescent lavender iPhone in a star-decorated case                 <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> (<span style=\"color:#008080\">D<\/span>) a cropped black jacket with lavender satin lining                      <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span> (<span style=\"color:#008080\">E<\/span>) a fitted black gothic top with lavender mesh panels                    <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\">E<\/span>) a pair of fitted black trousers with pink straps                       <span style=\"color:#008080\">| <\/span>\n\n<span style=\"color:#008080\">| <\/span> (<span style=\"color:#008080\">E<\/span>) a pair of black platform boots with lilac buckles                      <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=\"49tpIMDy9BE\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"q7qdpyjHyNk\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"Ah0Ys50CqO8\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"HcVv9R1ZR84\">\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                        <button class=\"rpg-carousel-dot\" data-video-index=\"2\"><\/button>\n                        <button class=\"rpg-carousel-dot\" data-video-index=\"3\"><\/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>Spring Sullivan @Spring \u2039 \u203a Profile Photo About Me I&#8217;m not particularly good at pretending to be more outgoing than I am, and honestly, I don&#8217;t see the point. I enjoy a little peace and quiet, dry humor, and people who don&#8217;t take themselves too&#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-31653","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/31653","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=31653"}],"version-history":[{"count":0,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/31653\/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=31653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}