{"id":24603,"date":"2025-08-21T17:32:58","date_gmt":"2025-08-21T21:32:58","guid":{"rendered":""},"modified":"2026-04-08T05:00:07","modified_gmt":"2026-04-08T09:00:07","slug":"teagan-lawson","status":"publish","type":"page","link":"https:\/\/havenrpg.net\/newsite\/characters\/teagan-lawson\/","title":{"rendered":"Teagan Lawson"},"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.imgur.com\/muZhBcE.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\">Teagan Lawson<\/h1>\n                <div class=\"rpg-follower-count\">@<span style=\"color:#005fff\">Code<span style=\"color:#000087\">Concerto<\/span><\/span> | Followers: <span>68,229<\/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\/BMOK1ZH.jpeg\" class=\"rpg-carousel-image active\" alt=\"Character 1\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/4ueDwpq.png\" class=\"rpg-carousel-image\" alt=\"Character 2\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/wN026zD.png\" class=\"rpg-carousel-image\" alt=\"Character 3\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/LQMDJPU.png\" class=\"rpg-carousel-image\" alt=\"Character 4\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/uGNgCTz.png\" class=\"rpg-carousel-image\" alt=\"Character 5\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/XzZEYpH.png\" class=\"rpg-carousel-image\" alt=\"Character 6\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/7AzyYPA.png\" class=\"rpg-carousel-image\" alt=\"Character 7\">\n                        <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/TqqQIMN.png\" class=\"rpg-carousel-image\" alt=\"Character 8\">\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                            <button class=\"rpg-carousel-dot\" data-index=\"6\"><\/button>\n                            <button class=\"rpg-carousel-dot\" data-index=\"7\"><\/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><b><span style=\"color:#005fff\">Hey there!<\/span><\/b><\/p>\n                            <p><span style=\"color:#008000\">Violinist<\/span> by day, <span style=\"color:#005fd7\">code wrangler<\/span> by night. Currently surviving Windmere University on a combination of <span style=\"color:#ff8700\">coffee<\/span>, <span style=\"color:#00d7ff\">music<\/span>, and pure stubbornness.<\/p>\n                            <p>I live for <span style=\"color:#ffaf00\">melodies<\/span> that make your chest hum and <span style=\"color:#00afff\">algorithms<\/span> that actually make sense (sometimes). When Im not buried in <span style=\"color:#ffff5f\">computer screens<\/span> or practicing <span style=\"color:#ff8700\">concertos<\/span>, youll probably find me:<\/p>\n                            <p>&#8211; Scavenging for <span style=\"color:#af00ff\">fun trinkets<\/span> in New Haven<\/p>\n                            <p>&#8211; Hunting for the perfect cozy game<\/p>\n                            <p>&#8211; Taking <span style=\"color:#ffd7ff\">late-night walks<\/span> with music blasting through my headphones<\/p>\n                            <p>I post memes more than I should, debug life like I debug code, and occasionally overthink everything. But I like to think thats part of the fun.<\/p>\n                            <p><b><span style=\"color:#0087af\">Fun fact:<\/span><\/b> I can make a violin sing and a loop compile in the same breath. Oh, and yes, I do collect tiny thingsdont ask why, just enjoy the mystery.<\/p>\n                            <p><span style=\"color:#00af00\">If you want to chat about music, code, or weird coincidences, Im probably online.<\/span><\/p>\n                            <p>(I wanna match everyone but it&#8217;s hard so feel free to text me: 710-0637)<\/p>\n                            \n                            <h3>Quote<\/h3>\n                            <p>&#8220;The most dangerous phrase in the language is, &#8216;We&#8217;ve always done it this way.'&#8221; &#8211; Grace Hopper<\/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>In a stairwell at Plymouth House, in the fading sun from a window. Taken in <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>a rush, likely by a passing student, the whole image blurs just slightly.   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>This is a mousey woman with sleek red hair and blue eyes in her             <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>mid-twenties with E cup breasts.                                            <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>She is 5&#8217;4&#8243; and has freckled, pale cream skin, red hair, and blue eyes.     <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>You can see her face, neck, and hands.                                      <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>A petite, delicate woman in her mid-twenties with a slightly rounded frame: <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>someone who only works out the minimum necessary, really. Her <span style=\"color:#af0000\">red hair<\/span>      <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>falls just past her shoulders, sleek and glossy, catching the light with    <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>subtle <span style=\"color:#d70000\">auburn highlights<\/span>. Her  <span style=\"color:#005fff\">bright blue eyes<\/span> are clear and expressive,   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>framed by naturally long lashes, giving a quietly observant, curious gaze.  <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>Pale cream skin with a <span style=\"color:#d78700\">scattering of freckles<\/span> across her cheeks and nose    <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>lends a touch of color, while her lips have a natural <span style=\"color:#af5f5f\">dusky rose flush<\/span>. Her <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>posture is slightly reserved: aloof, perhaps, but observant. <span style=\"color:#ffffff\">               <span style=\"color:#008080\">| <\/span><\/span>\n<span style=\"color:#008080\">| <\/span>Her hands are delicate and nimble, fingers long and graceful: a musician&#8217;s  <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>touch. <span style=\"color:#ffffff\">                                                                     <span style=\"color:#008080\">| <\/span><\/span>\n<span style=\"color:#008080\">| <\/span>Her neck is pale and smooth, with a <span style=\"color:#d78787\">hint of pink undertones<\/span> along the nape  <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>and collarbones. <span style=\"color:#ffffff\">                                                           <span style=\"color:#008080\">| <\/span><\/span>\n<span style=\"color:#008080\">| <\/span>There is a soft, faint scent of clean skin with a hint of light floral      <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(jasmine, primarily) notes to her.                                          <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span><u>She is using:<\/u>                                                               <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>    a sleek dark teal cell phone with subtle gold accents along the edges   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>and buttons                                                                 <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(<span style=\"color:#008080\">D<\/span>) amber Pendant Necklace                                                  <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(<span style=\"color:#008080\">D<\/span>) oversized Cinnamon Knit Sweater                                         <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(<span style=\"color:#008080\">C<\/span>) a rugged charcoal canvas backpack                                       <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(<span style=\"color:#008080\">D<\/span>) <span style=\"color:#585858\">Black Skinny Jeans<\/span>                                                      <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>(<span style=\"color:#008080\">D<\/span>) brown Leather Hiking Boots                                              <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>    a delicate silver necklace with a tiny violin pendant hanging from it   <span style=\"color:#008080\">| <\/span>\n<span style=\"color:#008080\">| <\/span>    large, round glasses with black frames                                  <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=\"ClC2YUBtVvI\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"QLdoOGOnxHU\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"9sfYpolGCu8\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"d_HlPboLRL8\">\n                        <div class=\"rpg-video-placeholder\">Loading video&#8230;<\/div>\n                    <\/div>\n                    <div class=\"rpg-video-item\" data-video-id=\"Twix375Me4Q\">\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                        <button class=\"rpg-carousel-dot\" data-video-index=\"8\"><\/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>Teagan Lawson @CodeConcerto | Followers: 68,229 \u2039 \u203a Profile Photo About Me Hey there! Violinist by day, code wrangler by night. Currently surviving Windmere University on a combination of coffee, music, and pure stubbornness. I live for melodies that make your chest hum and algorithms&#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-24603","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/24603","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=24603"}],"version-history":[{"count":0,"href":"https:\/\/havenrpg.net\/newsite\/wp-json\/wp\/v2\/pages\/24603\/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=24603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}