{"id":2,"date":"2026-07-27T09:42:35","date_gmt":"2026-07-27T09:42:35","guid":{"rendered":"https:\/\/test.upsuiterp.com\/?page_id=2"},"modified":"2026-07-28T06:59:16","modified_gmt":"2026-07-28T06:59:16","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/test.upsuiterp.com\/?page_id=2","title":{"rendered":"Sample Page"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This is an example page. It&#8217;s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Hi there! I&#8217;m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like pi\u00f1a coladas. (And gettin&#8217; caught in the rain.)<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">&#8230;or something like this:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">As a new WordPress user, you should go to <a href=\"https:\/\/test.upsuiterp.com\/wp-admin\/\">your dashboard<\/a> to delete this page and create new pages for your content. Have fun!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n        <div class=\"irt-wrapper\">\n            <!-- LEFT PANEL: CONTROLS -->\n            <div class=\"irt-panel\">\n                <div class=\"irt-panel-header\">\n                    <h2>Room Controls<\/h2>\n                    <p>Toggle elements to customize your bedroom view in real-time.<\/p>\n                <\/div>\n\n                <div class=\"irt-controls-list\">\n                    <!-- Curtains -->\n                    <div class=\"irt-control-item\">\n                        <div class=\"irt-control-info\">\n                            <span class=\"irt-icon\">\ud83e\ude9f<\/span>\n                            <span class=\"irt-label\">Curtains<\/span>\n                        <\/div>\n                        <label class=\"irt-switch\">\n                            <input type=\"checkbox\" id=\"irt-toggle-curtains\" data-target=\"curtains\">\n                            <span class=\"irt-slider\"><\/span>\n                        <\/label>\n                    <\/div>\n\n                    <!-- Lighting -->\n                    <div class=\"irt-control-item\">\n                        <div class=\"irt-control-info\">\n                            <span class=\"irt-icon\">\ud83d\udca1<\/span>\n                            <span class=\"irt-label\">Lighting<\/span>\n                        <\/div>\n                        <label class=\"irt-switch\">\n                            <input type=\"checkbox\" id=\"irt-toggle-lights\" data-target=\"lights\">\n                            <span class=\"irt-slider\"><\/span>\n                        <\/label>\n                    <\/div>\n\n                    <!-- Ceiling Fan -->\n                    <div class=\"irt-control-item\">\n                        <div class=\"irt-control-info\">\n                            <span class=\"irt-icon\">\ud83c\udf00<\/span>\n                            <span class=\"irt-label\">Ceiling Fan<\/span>\n                        <\/div>\n                        <label class=\"irt-switch\">\n                            <input type=\"checkbox\" id=\"irt-toggle-fan\" data-target=\"fan\">\n                            <span class=\"irt-slider\"><\/span>\n                        <\/label>\n                    <\/div>\n\n                    <!-- Television -->\n                    <div class=\"irt-control-item\">\n                        <div class=\"irt-control-info\">\n                            <span class=\"irt-icon\">\ud83d\udcfa<\/span>\n                            <span class=\"irt-label\">Television<\/span>\n                        <\/div>\n                        <label class=\"irt-switch\">\n                            <input type=\"checkbox\" id=\"irt-toggle-tv\" data-target=\"tv\">\n                            <span class=\"irt-slider\"><\/span>\n                        <\/label>\n                    <\/div>\n\n                    <!-- Air Conditioner -->\n                    <div class=\"irt-control-item\">\n                        <div class=\"irt-control-info\">\n                            <span class=\"irt-icon\">\u2744\ufe0f<\/span>\n                            <span class=\"irt-label\">Air Conditioner<\/span>\n                        <\/div>\n                        <label class=\"irt-switch\">\n                            <input type=\"checkbox\" id=\"irt-toggle-ac\" data-target=\"ac\">\n                            <span class=\"irt-slider\"><\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"irt-panel-footer\">\n                    <button type=\"button\" class=\"irt-btn-reset\" onclick=\"irtResetAll()\">Reset All Off<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- RIGHT PANEL: INTERACTIVE CANVAS -->\n            <div class=\"irt-display\">\n                <div class=\"irt-canvas-container\">\n                    <!-- Base Layer (Always visible, z-index: 1) -->\n                    <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/room-base.jpg\" class=\"irt-layer irt-layer-base\" alt=\"Bedroom Base\">\n\n                    <!-- Default OFF Overlays (z-index: 2) -->\n                    <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/room-lights-off.png\" class=\"irt-layer irt-layer-lights-off irt-active\" id=\"irt-layer-lights-off\" alt=\"Lights Off\">\n                    <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/ac-console-off.png\" class=\"irt-layer irt-layer-ac-off irt-active\" id=\"irt-layer-ac-off\" alt=\"AC Off\">\n\n                    <!-- Independent ON Overlays (z-index: 3 to 7) -->\n                    <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/curtains-closed.png\" class=\"irt-layer irt-layer-curtains\" id=\"irt-layer-curtains\" alt=\"Curtains Closed\">\n                    <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/tv-screen-active.png\" class=\"irt-layer irt-layer-tv\" id=\"irt-layer-tv\" alt=\"TV On\">\n                    <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/lights-and-fan-active.png\" class=\"irt-layer irt-layer-lights\" id=\"irt-layer-lights\" alt=\"Lights On\">\n                    <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/ac-console-on.png\" class=\"irt-layer irt-layer-ac\" id=\"irt-layer-ac\" alt=\"AC On\">\n\n                    <!-- Fan Blade Rotation Overlay (z-index: 8) -->\n                    <div class=\"irt-fan-spin-wrapper\" id=\"irt-layer-fan-wrapper\">\n                        <img decoding=\"async\" src=\"https:\/\/test.upsuiterp.com\/wp-content\/plugins\/interactive-room-toggle\/assets\/fan-off.png\" class=\"irt-layer-fan-blade\" alt=\"Ceiling Fan\">\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <style>\n            .irt-wrapper {\n                display: flex;\n                flex-direction: row;\n                gap: 24px;\n                max-width: 1100px;\n                margin: 20px auto;\n                background: #121316;\n                border: 1px solid #2a2d34;\n                border-radius: 16px;\n                padding: 24px;\n                box-shadow: 0 20px 40px rgba(0,0,0,0.4);\n                color: #e2e8f0;\n                font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n                box-sizing: border-box;\n            }\n            .irt-wrapper * { box-sizing: border-box; }\n\n            \/* LEFT PANEL CONTROLS *\/\n            .irt-panel {\n                flex: 1;\n                min-width: 280px;\n                background: #1a1c23;\n                border: 1px solid #2d313e;\n                border-radius: 12px;\n                padding: 20px;\n                display: flex;\n                flex-direction: column;\n                justify-content: space-between;\n            }\n            .irt-panel-header h2 { margin: 0 0 6px 0; font-size: 1.3rem; font-weight: 700; color: #fff; }\n            .irt-panel-header p { margin: 0 0 20px 0; font-size: 0.85rem; color: #94a3b8; }\n            .irt-controls-list { display: flex; flex-direction: column; gap: 12px; }\n            .irt-control-item {\n                display: flex; align-items: center; justify-content: space-between;\n                background: #232733; padding: 12px 16px; border-radius: 8px;\n                border: 1px solid #323748; transition: border-color 0.2s ease;\n            }\n            .irt-control-item:hover { border-color: #4f46e5; }\n            .irt-control-info { display: flex; align-items: center; gap: 10px; }\n            .irt-icon { font-size: 1.2rem; }\n            .irt-label { font-size: 0.95rem; font-weight: 600; color: #f1f5f9; }\n\n            \/* SWITCH TOGGLES *\/\n            .irt-switch { position: relative; display: inline-block; width: 48px; height: 26px; }\n            .irt-switch input { opacity: 0; width: 0; height: 0; }\n            .irt-slider {\n                position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0;\n                background-color: #475569; transition: .3s cubic-bezier(0.4, 0, 0.2, 1); border-radius: 26px;\n            }\n            .irt-slider:before {\n                position: absolute; content: \"\"; height: 20px; width: 20px; left: 3px; bottom: 3px;\n                background-color: white; transition: .3s cubic-bezier(0.4, 0, 0.2, 1);\n                border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n            }\n            input:checked + .irt-slider { background-color: #6366f1; }\n            input:checked + .irt-slider:before { transform: translateX(22px); }\n\n            .irt-panel-footer { margin-top: 24px; padding-top: 16px; border-top: 1px solid #2d313e; }\n            .irt-btn-reset {\n                width: 100%; padding: 10px; background: #2a2e3d; border: 1px solid #3f4457;\n                color: #cbd5e1; border-radius: 6px; cursor: pointer; font-weight: 600; font-size: 0.85rem;\n                transition: all 0.2s;\n            }\n            .irt-btn-reset:hover { background: #373c4f; color: #fff; }\n\n            \/* CANVAS DISPLAY & LAYER STACKING *\/\n            .irt-display {\n                flex: 2; position: relative; width: 100%; background: #0d0e11;\n                border-radius: 12px; overflow: hidden; border: 1px solid #2d313e;\n            }\n            .irt-canvas-container {\n                position: relative; width: 100%; padding-top: 68.5%; overflow: hidden;\n            }\n            .irt-layer {\n                position: absolute; top: 0; left: 0; width: 100%; height: 100%;\n                object-fit: cover; opacity: 0; transition: opacity 0.4s ease-in-out; pointer-events: none;\n            }\n\n            \/* INDIVIDUAL STACKING Z-INDEXING *\/\n            .irt-layer-base { opacity: 1; z-index: 1; }\n            .irt-layer-lights-off, .irt-layer-ac-off { z-index: 2; }\n            .irt-layer-curtains { z-index: 3; }\n            .irt-layer-tv { z-index: 4; }\n            .irt-layer-lights { z-index: 5; mix-blend-mode: screen; } \/* Blend lighting with underlying TV\/Room layers *\/\n            .irt-layer-ac { z-index: 6; }\n\n            .irt-layer.irt-active { opacity: 1; }\n\n            \/* FAN ROTATION HANDLING *\/\n            .irt-fan-spin-wrapper {\n                position: absolute; top: 0; left: 0; width: 100%; height: 100%;\n                pointer-events: none; opacity: 0; z-index: 8;\n                transition: opacity 0.3s ease;\n            }\n            .irt-fan-spin-wrapper.irt-active { opacity: 1; }\n\n            .irt-fan-spin-wrapper.irt-spinning .irt-layer-fan-blade {\n                animation: irt-spin-animation 0.5s linear infinite;\n                transform-origin: 50% 50%;\n            }\n            .irt-layer-fan-blade { width: 100%; height: 100%; object-fit: cover; }\n\n            @keyframes irt-spin-animation {\n                from { transform: rotate(0deg); }\n                to { transform: rotate(360deg); }\n            }\n\n            @media (max-width: 850px) {\n                .irt-wrapper { flex-direction: column; }\n                .irt-panel { order: 2; }\n                .irt-display { order: 1; }\n            }\n        <\/style>\n\n        <script>\n            document.addEventListener('DOMContentLoaded', function() {\n                const toggles = document.querySelectorAll('.irt-switch input');\n\n                toggles.forEach(toggle => {\n                    toggle.addEventListener('change', function() {\n                        const target = this.getAttribute('data-target');\n                        const isChecked = this.checked;\n\n                        if (target === 'lights') {\n                            const lightsActive = document.getElementById('irt-layer-lights');\n                            const lightsOff = document.getElementById('irt-layer-lights-off');\n                            if (isChecked) {\n                                lightsActive.classList.add('irt-active');\n                                lightsOff.classList.remove('irt-active');\n                            } else {\n                                lightsActive.classList.remove('irt-active');\n                                lightsOff.classList.add('irt-active');\n                            }\n                        } else if (target === 'ac') {\n                            const acActive = document.getElementById('irt-layer-ac');\n                            const acOff = document.getElementById('irt-layer-ac-off');\n                            if (isChecked) {\n                                acActive.classList.add('irt-active');\n                                acOff.classList.remove('irt-active');\n                            } else {\n                                acActive.classList.remove('irt-active');\n                                acOff.classList.add('irt-active');\n                            }\n                        } else if (target === 'fan') {\n                            const fanWrapper = document.getElementById('irt-layer-fan-wrapper');\n                            if (isChecked) {\n                                fanWrapper.classList.add('irt-active', 'irt-spinning');\n                            } else {\n                                fanWrapper.classList.remove('irt-spinning');\n                                fanWrapper.classList.remove('irt-active');\n                            }\n                        } else if (target === 'curtains') {\n                            const curtainsLayer = document.getElementById('irt-layer-curtains');\n                            if (isChecked) {\n                                curtainsLayer.classList.add('irt-active');\n                            } else {\n                                curtainsLayer.classList.remove('irt-active');\n                            }\n                        } else if (target === 'tv') {\n                            const tvLayer = document.getElementById('irt-layer-tv');\n                            if (isChecked) {\n                                tvLayer.classList.add('irt-active');\n                            } else {\n                                tvLayer.classList.remove('irt-active');\n                            }\n                        }\n                    });\n                });\n            });\n\n            function irtResetAll() {\n                const inputs = document.querySelectorAll('.irt-switch input');\n                inputs.forEach(input => {\n                    if (input.checked) {\n                        input.checked = false;\n                        input.dispatchEvent(new Event('change'));\n                    }\n                });\n            }\n        <\/script>\n        \n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is an example page. It&#8217;s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this: Hi there! I&#8217;m a bike messenger [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sample Page - Calculating Infinity<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/test.upsuiterp.com\/?page_id=2\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sample Page - Calculating Infinity\" \/>\n<meta property=\"og:description\" content=\"This is an example page. It&#8217;s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this: Hi there! I&#8217;m a bike messenger [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.upsuiterp.com\/?page_id=2\" \/>\n<meta property=\"og:site_name\" content=\"Calculating Infinity\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-28T06:59:16+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/test.upsuiterp.com\\\/?page_id=2\",\"url\":\"https:\\\/\\\/test.upsuiterp.com\\\/?page_id=2\",\"name\":\"Sample Page - Calculating Infinity\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/test.upsuiterp.com\\\/#website\"},\"datePublished\":\"2026-07-27T09:42:35+00:00\",\"dateModified\":\"2026-07-28T06:59:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/test.upsuiterp.com\\\/?page_id=2#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/test.upsuiterp.com\\\/?page_id=2\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/test.upsuiterp.com\\\/?page_id=2#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/test.upsuiterp.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sample Page\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/test.upsuiterp.com\\\/#website\",\"url\":\"https:\\\/\\\/test.upsuiterp.com\\\/\",\"name\":\"Calculating Infinity\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/test.upsuiterp.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sample Page - Calculating Infinity","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/test.upsuiterp.com\/?page_id=2","og_locale":"en_US","og_type":"article","og_title":"Sample Page - Calculating Infinity","og_description":"This is an example page. It&#8217;s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this: Hi there! I&#8217;m a bike messenger [&hellip;]","og_url":"https:\/\/test.upsuiterp.com\/?page_id=2","og_site_name":"Calculating Infinity","article_modified_time":"2026-07-28T06:59:16+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/test.upsuiterp.com\/?page_id=2","url":"https:\/\/test.upsuiterp.com\/?page_id=2","name":"Sample Page - Calculating Infinity","isPartOf":{"@id":"https:\/\/test.upsuiterp.com\/#website"},"datePublished":"2026-07-27T09:42:35+00:00","dateModified":"2026-07-28T06:59:16+00:00","breadcrumb":{"@id":"https:\/\/test.upsuiterp.com\/?page_id=2#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.upsuiterp.com\/?page_id=2"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/test.upsuiterp.com\/?page_id=2#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.upsuiterp.com\/"},{"@type":"ListItem","position":2,"name":"Sample Page"}]},{"@type":"WebSite","@id":"https:\/\/test.upsuiterp.com\/#website","url":"https:\/\/test.upsuiterp.com\/","name":"Calculating Infinity","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/test.upsuiterp.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2"}],"version-history":[{"count":3,"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":26,"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions\/26"}],"wp:attachment":[{"href":"https:\/\/test.upsuiterp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}