{"id":1331,"date":"2026-07-22T15:01:40","date_gmt":"2026-07-22T15:01:40","guid":{"rendered":"https:\/\/beepano.com\/?page_id=1331"},"modified":"2026-07-31T18:08:54","modified_gmt":"2026-07-31T18:08:54","slug":"features","status":"publish","type":"page","link":"https:\/\/beepano.com\/?page_id=1331","title":{"rendered":"Features"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1331\" class=\"elementor elementor-1331\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f1b5d3b e-con e-atomic-element e-flexbox-base e-7b01e57 \" data-id=\"f1b5d3b\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"f1b5d3b\" data-e-type=\"e-flexbox\" data-id=\"f1b5d3b\">\n    <div class=\"elementor-element elementor-element-f2bb62f e-flex e-con-boxed e-con e-parent\" data-id=\"f2bb62f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b6cd94 elementor-widget elementor-widget-heading\" data-id=\"5b6cd94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Pro Features.<br>Absolute <br><span class=\"animated-global\">Immersion.<\/span><\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82329d2 elementor-widget elementor-widget-text-editor\" data-id=\"82329d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>The technology behind the tour.<\/strong><strong>\u00a0Every feature is built to turn your physical space into a powerful digital asset.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-7e9d8d6 e-con e-atomic-element e-flexbox-base e-78904d1 \" data-id=\"7e9d8d6\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"7e9d8d6\" data-e-type=\"e-flexbox\" data-id=\"7e9d8d6\">\n    <div class=\"elementor-element elementor-element-dff1eca e-flex e-con-boxed e-con e-parent\" data-id=\"dff1eca\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a22a9d4 elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-spacer\" data-id=\"a22a9d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-018806a elementor-widget elementor-widget-heading\" data-id=\"018806a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">VISUAL DOMINANCE<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f6dfe7e elementor-widget elementor-widget-heading\" data-id=\"f6dfe7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Dynamic <span class=\"animated-global\">Time<\/span> Shift<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ae0ee1 elementor-widget elementor-widget-text-editor\" data-id=\"9ae0ee1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><b>Control the sun.<\/b><span style=\"font-weight: 400;\"> Instantly transition the environment between day and night to showcase entirely different atmospheres with a single click.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e44a8e elementor-widget elementor-widget-html\" data-id=\"0e44a8e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  PANOSKY \u2014 MINIMAL TIME-SHIFT BOX\r\n  Paste this complete file into ONE Elementor HTML widget.\r\n  It intentionally contains no heading, section background, or outer section spacing.\r\n\r\n  INTERACTIONS\r\n  - Drag or click the bottom time rail.\r\n  - Click Morning, Day, or Night.\r\n  - Use arrow keys while the time rail is focused.\r\n  - Holds each scene for one second, then transitions over two seconds.\r\n-->\r\n\r\n<!--\r\n  ================================================================\r\n  EASY MOTION CONTROLS \u2014 EDIT THESE VALUES ANY TIME\r\n  ================================================================\r\n  Times are in milliseconds: 1000 = 1 second, 2000 = 2 seconds.\r\n-->\r\n<script>\r\n  window.PS_TIMEBOX_SETTINGS = {\r\n    autoplay: true,\r\n    initialTime: 100,          \/\/ 0 = Morning, 50 = Day, 100 = Night\r\n    holdDuration: 1000,        \/\/ How long each image remains still\r\n    transitionDuration: 2000,  \/\/ Thumbnail click + automatic transition speed\r\n    snapDuration: 500          \/\/ Slider release \u2192 nearest point speed\r\n  };\r\n<\/script>\r\n\r\n<style>\r\n  .ps-timebox {\r\n    \/* ---------- EASY DESIGN SETTINGS ---------- *\/\r\n    --ps-radius: 30px;\r\n    --ps-dock-radius: 22px;\r\n    --ps-border: rgba(148, 192, 255, 0.38);\r\n    --ps-border-soft: rgba(148, 192, 255, 0.2);\r\n    --ps-panel: rgba(2, 17, 47, 0.91);\r\n    --ps-title: var(--e-global-color-541fa18, #f8fbff);\r\n    --ps-muted: var(--e-global-color-text, rgba(231, 240, 255, 0.68));\r\n    --ps-accent: var(--e-global-color-7655478, #009fff);\r\n    --ps-morning: #e99555;\r\n    --ps-day: #ecf6ff;\r\n    --ps-night: #1c72ff;\r\n    --ps-font: var(--e-global-typography-text-font-family, \"Satoshi\");\r\n    --ps-small-font: var(\r\n      --e-global-typography-3b5881b-font-family,\r\n      var(--e-global-typography-accent-font-family, \"Satoshi\")\r\n    );\r\n\r\n    \/* The three matched scenes are embedded, so the component works immediately. *\/\r\n    --ps-image-morning: url(https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/01-Morning.jpg);\r\n    --ps-image-day: url(https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/01-Day.jpg);\r\n    --ps-image-night: url(https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/01-Night.jpg);\r\n\r\n    \/* JavaScript-controlled values *\/\r\n    --ps-position: 100%;\r\n    --ps-morning-opacity: 0;\r\n    --ps-day-opacity: 0;\r\n    --ps-night-opacity: 1;\r\n\r\n    position: relative;\r\n    width: 100%;\r\n    padding: 0 0 76px;\r\n    color: var(--ps-title);\r\n    font-family: var(--ps-font), Arial, sans-serif;\r\n    box-sizing: border-box;\r\n    isolation: isolate;\r\n  }\r\n\r\n  .ps-timebox *,\r\n  .ps-timebox *::before,\r\n  .ps-timebox *::after {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .ps-timebox button {\r\n    font: inherit;\r\n  }\r\n\r\n  .ps-timebox,\r\n  .ps-timebox button,\r\n  .ps-timebox__viewport,\r\n  .ps-timebox__rail {\r\n    -webkit-tap-highlight-color: transparent;\r\n  }\r\n\r\n  .ps-timebox__viewport {\r\n    position: relative;\r\n    overflow: hidden;\r\n    width: 100%;\r\n    aspect-ratio: 16 \/ 9;\r\n    border: 1px solid var(--ps-border);\r\n    border-radius: var(--ps-radius);\r\n    background: #041737;\r\n    box-shadow:\r\n      0 28px 80px rgba(0, 7, 26, 0.42),\r\n      inset 0 0 0 1px rgba(255, 255, 255, 0.025);\r\n  }\r\n\r\n  .ps-timebox__viewport::after {\r\n    position: absolute;\r\n    z-index: 8;\r\n    inset: 0;\r\n    pointer-events: none;\r\n    content: \"\";\r\n    border-radius: inherit;\r\n    background:\r\n      linear-gradient(0deg, rgba(0, 8, 28, 0.2), transparent 35%),\r\n      linear-gradient(90deg, rgba(0, 8, 28, 0.05), transparent 25%, transparent 75%, rgba(0, 8, 28, 0.12));\r\n    box-shadow: inset 0 -1px 0 rgba(138, 196, 255, 0.15);\r\n  }\r\n\r\n  .ps-timebox__image-stack,\r\n  .ps-timebox__scene {\r\n    position: absolute;\r\n    inset: 0;\r\n  }\r\n\r\n  .ps-timebox__image-stack {\r\n    z-index: 1;\r\n  }\r\n\r\n  .ps-timebox__scene {\r\n    transform: scale(1.002);\r\n    background-position: center;\r\n    background-repeat: no-repeat;\r\n    background-size: cover;\r\n    transition: opacity 90ms linear;\r\n    will-change: opacity;\r\n  }\r\n\r\n  .ps-timebox__scene--morning {\r\n    opacity: var(--ps-morning-opacity);\r\n  }\r\n\r\n  .ps-timebox__scene--day {\r\n    opacity: var(--ps-day-opacity);\r\n  }\r\n\r\n  .ps-timebox__scene--night {\r\n    opacity: var(--ps-night-opacity);\r\n  }\r\n\r\n  .ps-timebox__scene--morning {\r\n    background-image: var(--ps-image-morning);\r\n  }\r\n\r\n  .ps-timebox__scene--day {\r\n    background-image: var(--ps-image-day);\r\n  }\r\n\r\n  .ps-timebox__scene--night {\r\n    background-image: var(--ps-image-night);\r\n  }\r\n\r\n  .ps-timebox__current {\r\n    position: absolute;\r\n    z-index: 12;\r\n    top: 18px;\r\n    right: 18px;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    padding: 8px 11px;\r\n    color: rgba(248, 252, 255, 0.92);\r\n    border: 1px solid rgba(152, 200, 255, 0.26);\r\n    border-radius: 999px;\r\n    background: rgba(1, 18, 49, 0.54);\r\n    font-family: var(--ps-small-font), var(--ps-font), sans-serif;\r\n    font-size: 10px;\r\n    font-weight: 600;\r\n    letter-spacing: 0.13em;\r\n    line-height: 1;\r\n    text-transform: uppercase;\r\n    backdrop-filter: blur(10px);\r\n  }\r\n\r\n  .ps-timebox__current::before {\r\n    width: 6px;\r\n    height: 6px;\r\n    content: \"\";\r\n    border-radius: 50%;\r\n    background: var(--ps-accent);\r\n    box-shadow: 0 0 12px rgba(0, 159, 255, 0.82);\r\n  }\r\n\r\n  \/* ---------- FLOATING CONTROL DOCK ---------- *\/\r\n  .ps-timebox__dock {\r\n    position: absolute;\r\n    z-index: 20;\r\n    bottom: 0;\r\n    left: 50%;\r\n    width: min(700px, 66%);\r\n    padding: 16px 20px 15px;\r\n    border: 1px solid var(--ps-border-soft);\r\n    border-radius: var(--ps-dock-radius);\r\n    background:\r\n      radial-gradient(circle at 76% 115%, rgba(0, 115, 255, 0.14), transparent 38%),\r\n      linear-gradient(180deg, rgba(9, 25, 54, 0.91), rgba(0, 14, 42, 0.96));\r\n    box-shadow:\r\n      0 22px 60px rgba(0, 6, 24, 0.46),\r\n      inset 0 1px 0 rgba(255, 255, 255, 0.04);\r\n    transform: translateX(-50%);\r\n    backdrop-filter: blur(18px);\r\n  }\r\n\r\n  .ps-timebox__options {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n    gap: 14px;\r\n  }\r\n\r\n  .ps-timebox__option {\r\n    min-width: 0;\r\n    padding: 0;\r\n    color: var(--ps-muted);\r\n    border: 0 !important;\r\n    outline: 0;\r\n    background: transparent !important;\r\n    background-color: transparent !important;\r\n    box-shadow: none !important;\r\n    cursor: pointer;\r\n    appearance: none;\r\n  }\r\n\r\n  .ps-timebox__option:hover,\r\n  .ps-timebox__option:focus,\r\n  .ps-timebox__option:focus-visible,\r\n  .ps-timebox__option:active,\r\n  .ps-timebox__option.is-active {\r\n    color: var(--ps-muted);\r\n    border: 0 !important;\r\n    outline: 0;\r\n    background: transparent !important;\r\n    background-color: transparent !important;\r\n    box-shadow: none !important;\r\n    text-decoration: none !important;\r\n  }\r\n\r\n  .ps-timebox__option:focus-visible {\r\n    outline: none;\r\n  }\r\n\r\n  .ps-timebox__option-image {\r\n    position: relative;\r\n    display: block;\r\n    overflow: hidden;\r\n    width: 100%;\r\n    aspect-ratio: 16 \/ 7.8;\r\n    border: 1px solid rgba(149, 195, 255, 0.2);\r\n    border-radius: 10px;\r\n    background-position: center;\r\n    background-size: cover;\r\n    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);\r\n    transition:\r\n      border-color 200ms ease,\r\n      box-shadow 200ms ease,\r\n      transform 200ms ease,\r\n      opacity 200ms ease;\r\n  }\r\n\r\n  .ps-timebox__option[data-time-value=\"0\"] .ps-timebox__option-image {\r\n    background-image: var(--ps-image-morning);\r\n  }\r\n\r\n  .ps-timebox__option[data-time-value=\"50\"] .ps-timebox__option-image {\r\n    background-image: var(--ps-image-day);\r\n  }\r\n\r\n  .ps-timebox__option[data-time-value=\"100\"] .ps-timebox__option-image {\r\n    background-image: var(--ps-image-night);\r\n  }\r\n\r\n  .ps-timebox__option:hover .ps-timebox__option-image {\r\n    border-color: rgba(151, 207, 255, 0.6);\r\n    transform: translateY(-2px);\r\n  }\r\n\r\n  .ps-timebox__option:focus-visible .ps-timebox__option-image {\r\n    box-shadow: 0 0 0 2px #00163d, 0 0 0 4px var(--ps-accent);\r\n  }\r\n\r\n  .ps-timebox__option.is-active .ps-timebox__option-image {\r\n    border-color: var(--ps-accent);\r\n    box-shadow:\r\n      0 0 0 2px rgba(0, 159, 255, 0.15),\r\n      0 0 18px rgba(0, 159, 255, 0.28);\r\n  }\r\n\r\n  .ps-timebox__option-name {\r\n    display: block;\r\n    margin-top: 7px;\r\n    color: rgba(237, 245, 255, 0.7);\r\n    font-family: var(--ps-small-font), var(--ps-font), sans-serif;\r\n    font-size: 10px;\r\n    font-weight: 600;\r\n    letter-spacing: 0.12em;\r\n    line-height: 1;\r\n    text-align: center;\r\n    text-transform: uppercase;\r\n    transition: color 200ms ease;\r\n  }\r\n\r\n  .ps-timebox__option.is-active .ps-timebox__option-name {\r\n    color: #fff;\r\n  }\r\n\r\n  \/* ---------- HORIZONTAL TIME CONTROL ---------- *\/\r\n  .ps-timebox__rail-label {\r\n    margin: 13px 0 8px;\r\n    color: rgba(218, 231, 249, 0.48);\r\n    font-family: var(--ps-small-font), var(--ps-font), sans-serif;\r\n    font-size: 9px;\r\n    font-weight: 500;\r\n    letter-spacing: 0.18em;\r\n    line-height: 1;\r\n    text-align: center;\r\n    text-transform: uppercase;\r\n  }\r\n\r\n  .ps-timebox__rail {\r\n    position: relative;\r\n    height: 26px;\r\n    margin-inline: 6px;\r\n    cursor: ew-resize;\r\n    touch-action: none;\r\n    outline: none;\r\n  }\r\n\r\n  .ps-timebox__rail::before {\r\n    position: absolute;\r\n    top: 50%;\r\n    right: 0;\r\n    left: 0;\r\n    height: 2px;\r\n    content: \"\";\r\n    border-radius: 999px;\r\n    background: linear-gradient(\r\n      90deg,\r\n      var(--ps-morning),\r\n      var(--ps-day) 50%,\r\n      var(--ps-night)\r\n    );\r\n    box-shadow: 0 0 12px rgba(83, 161, 255, 0.16);\r\n    transform: translateY(-50%);\r\n  }\r\n\r\n  .ps-timebox__rail:focus-visible {\r\n    border-radius: 9px;\r\n    box-shadow: 0 0 0 2px #00163d, 0 0 0 4px var(--ps-accent);\r\n  }\r\n\r\n  .ps-timebox__rail-node {\r\n    position: absolute;\r\n    z-index: 1;\r\n    top: 50%;\r\n    width: 12px;\r\n    height: 12px;\r\n    border: 2px solid rgba(221, 236, 255, 0.68);\r\n    border-radius: 50%;\r\n    background: #082253;\r\n    box-shadow: 0 0 0 2px rgba(0, 15, 45, 0.88);\r\n    transform: translate(-50%, -50%);\r\n  }\r\n\r\n  .ps-timebox__rail-node--morning {\r\n    left: 0;\r\n    border-color: var(--ps-morning);\r\n  }\r\n\r\n  .ps-timebox__rail-node--day {\r\n    left: 50%;\r\n  }\r\n\r\n  .ps-timebox__rail-node--night {\r\n    left: 100%;\r\n    border-color: #6ea5ff;\r\n  }\r\n\r\n  .ps-timebox__rail-thumb {\r\n    position: absolute;\r\n    z-index: 3;\r\n    top: 50%;\r\n    left: var(--ps-position);\r\n    width: 19px;\r\n    height: 19px;\r\n    pointer-events: none;\r\n    border: 2px solid #fff;\r\n    border-radius: 50%;\r\n    background: #fff;\r\n    box-shadow:\r\n      0 0 0 4px rgba(255, 255, 255, 0.13),\r\n      0 0 16px rgba(226, 244, 255, 0.5);\r\n    transform: translate(-50%, -50%);\r\n    transition: width 170ms ease, height 170ms ease;\r\n  }\r\n\r\n  .ps-timebox__rail:hover .ps-timebox__rail-thumb,\r\n  .ps-timebox__rail.is-dragging .ps-timebox__rail-thumb {\r\n    width: 23px;\r\n    height: 23px;\r\n  }\r\n\r\n  .ps-timebox__sr-only {\r\n    position: absolute !important;\r\n    overflow: hidden !important;\r\n    width: 1px !important;\r\n    height: 1px !important;\r\n    margin: -1px !important;\r\n    padding: 0 !important;\r\n    clip: rect(0, 0, 0, 0) !important;\r\n    border: 0 !important;\r\n    white-space: nowrap !important;\r\n  }\r\n\r\n  \/* ---------- TABLET ---------- *\/\r\n  @media (max-width: 1024px) {\r\n    .ps-timebox {\r\n      --ps-radius: 24px;\r\n      --ps-dock-radius: 20px;\r\n      padding-bottom: 72px;\r\n    }\r\n\r\n    .ps-timebox__dock {\r\n      width: min(670px, 78%);\r\n    }\r\n  }\r\n\r\n  \/* ---------- MOBILE ---------- *\/\r\n  @media (max-width: 767px) {\r\n    .ps-timebox {\r\n      --ps-radius: 20px;\r\n      display: block;\r\n      overflow: hidden;\r\n      padding-bottom: 0;\r\n      border: 1px solid var(--ps-border);\r\n      border-radius: var(--ps-radius);\r\n      background: #03183d;\r\n      box-shadow:\r\n        0 24px 60px rgba(0, 7, 26, 0.4),\r\n        inset 0 0 0 1px rgba(255, 255, 255, 0.02);\r\n    }\r\n\r\n    .ps-timebox__viewport {\r\n      aspect-ratio: 4 \/ 3;\r\n      border: 0;\r\n      border-radius: 0;\r\n      box-shadow: none;\r\n    }\r\n\r\n    .ps-timebox__scene {\r\n      background-position: center;\r\n    }\r\n\r\n    .ps-timebox__current {\r\n      top: 11px;\r\n      right: 11px;\r\n      padding: 7px 9px;\r\n      font-size: 8px;\r\n    }\r\n\r\n    .ps-timebox__dock {\r\n      position: relative;\r\n      bottom: auto;\r\n      left: auto;\r\n      width: 100%;\r\n      padding: 12px 11px 10px;\r\n      border: 0;\r\n      border-top: 1px solid var(--ps-border-soft);\r\n      border-radius: 0;\r\n      background:\r\n        radial-gradient(circle at 76% 115%, rgba(0, 115, 255, 0.12), transparent 38%),\r\n        linear-gradient(180deg, #061d47, #021537);\r\n      box-shadow: none;\r\n      transform: none;\r\n      backdrop-filter: none;\r\n    }\r\n\r\n    .ps-timebox__options {\r\n      gap: 7px;\r\n    }\r\n\r\n    .ps-timebox__option-image {\r\n      border-radius: 8px;\r\n    }\r\n\r\n    .ps-timebox__option-name {\r\n      margin-top: 6px;\r\n      font-size: 8px;\r\n      letter-spacing: 0.08em;\r\n    }\r\n\r\n    .ps-timebox__rail-label {\r\n      margin-top: 11px;\r\n      font-size: 8px;\r\n      letter-spacing: 0.13em;\r\n    }\r\n\r\n    .ps-timebox__rail {\r\n      margin-inline: 9px;\r\n    }\r\n  }\r\n\r\n  @media (prefers-reduced-motion: reduce) {\r\n    .ps-timebox__scene,\r\n    .ps-timebox__option-image,\r\n    .ps-timebox__option-name,\r\n    .ps-timebox__rail-thumb {\r\n      transition: none !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"ps-timebox\" data-ps-timebox>\r\n  <div\r\n    class=\"ps-timebox__viewport\"\r\n    data-time-viewport\r\n    role=\"img\"\r\n    aria-label=\"A luxury interior transitioning through morning, day, and night\"\r\n  >\r\n    <div class=\"ps-timebox__image-stack\" aria-hidden=\"true\">\r\n      <div class=\"ps-timebox__scene ps-timebox__scene--morning\"><\/div>\r\n      <div class=\"ps-timebox__scene ps-timebox__scene--day\"><\/div>\r\n      <div class=\"ps-timebox__scene ps-timebox__scene--night\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ps-timebox__current\" aria-hidden=\"true\">\r\n      <span data-time-current>Night<\/span>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ps-timebox__dock\">\r\n    <div class=\"ps-timebox__options\" aria-label=\"Select a time of day\">\r\n      <button class=\"ps-timebox__option\" data-time-value=\"0\" type=\"button\" aria-pressed=\"false\">\r\n        <span class=\"ps-timebox__option-image\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"ps-timebox__option-name\">Morning<\/span>\r\n      <\/button>\r\n\r\n      <button class=\"ps-timebox__option\" data-time-value=\"50\" type=\"button\" aria-pressed=\"false\">\r\n        <span class=\"ps-timebox__option-image\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"ps-timebox__option-name\">Day<\/span>\r\n      <\/button>\r\n\r\n      <button class=\"ps-timebox__option is-active\" data-time-value=\"100\" type=\"button\" aria-pressed=\"true\">\r\n        <span class=\"ps-timebox__option-image\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"ps-timebox__option-name\">Night<\/span>\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <p class=\"ps-timebox__rail-label\">Drag to shift time<\/p>\r\n\r\n    <div\r\n      class=\"ps-timebox__rail\"\r\n      data-time-rail\r\n      role=\"slider\"\r\n      tabindex=\"0\"\r\n      aria-label=\"Choose the time of day\"\r\n      aria-valuemin=\"0\"\r\n      aria-valuemax=\"100\"\r\n      aria-valuenow=\"100\"\r\n      aria-valuetext=\"Night\"\r\n    >\r\n      <span class=\"ps-timebox__rail-node ps-timebox__rail-node--morning\" aria-hidden=\"true\"><\/span>\r\n      <span class=\"ps-timebox__rail-node ps-timebox__rail-node--day\" aria-hidden=\"true\"><\/span>\r\n      <span class=\"ps-timebox__rail-node ps-timebox__rail-node--night\" aria-hidden=\"true\"><\/span>\r\n      <span class=\"ps-timebox__rail-thumb\" aria-hidden=\"true\"><\/span>\r\n    <\/div>\r\n\r\n    <span class=\"ps-timebox__sr-only\" data-time-live aria-live=\"polite\">Night selected<\/span>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  (() => {\r\n    \"use strict\";\r\n\r\n    const reducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\r\n    const editableSettings = window.PS_TIMEBOX_SETTINGS || {};\r\n    const timePoints = [0, 50, 100];\r\n    const numberOr = (value, fallback) => {\r\n      const parsed = Number(value);\r\n      return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;\r\n    };\r\n    const motionSettings = {\r\n      autoplay: editableSettings.autoplay !== false,\r\n      initialTime: Math.min(100, numberOr(editableSettings.initialTime, 100)),\r\n      holdDuration: numberOr(editableSettings.holdDuration, 1000),\r\n      transitionDuration: numberOr(editableSettings.transitionDuration, 2000),\r\n      snapDuration: numberOr(editableSettings.snapDuration, 500)\r\n    };\r\n\r\n    document.querySelectorAll(\"[data-ps-timebox]\").forEach((root) => {\r\n      if (root.dataset.timeboxReady === \"true\") return;\r\n      root.dataset.timeboxReady = \"true\";\r\n\r\n      const rail = root.querySelector(\"[data-time-rail]\");\r\n      const current = root.querySelector(\"[data-time-current]\");\r\n      const live = root.querySelector(\"[data-time-live]\");\r\n      const options = Array.from(root.querySelectorAll(\"[data-time-value]\"));\r\n\r\n      let value = motionSettings.initialTime;\r\n      let activeDrag = false;\r\n      let animationFrame = 0;\r\n      let autoplayTimer = 0;\r\n      let autoplayStopped = false;\r\n      let autoplayIndex = 0;\r\n\r\n      const clamp = (number, minimum, maximum) =>\r\n        Math.min(maximum, Math.max(minimum, number));\r\n\r\n      const nearestPoint = (nextValue) =>\r\n        timePoints.reduce((closest, point) =>\r\n          Math.abs(point - nextValue) < Math.abs(closest - nextValue)\r\n            ? point\r\n            : closest\r\n        );\r\n\r\n      const pointIndexFor = (nextValue) =>\r\n        timePoints.indexOf(nearestPoint(nextValue));\r\n\r\n      const stateFor = (nextValue) => {\r\n        if (nextValue < 25) return { key: \"morning\", name: \"Morning\", snap: 0 };\r\n        if (nextValue > 75) return { key: \"night\", name: \"Night\", snap: 100 };\r\n        return { key: \"day\", name: \"Day\", snap: 50 };\r\n      };\r\n\r\n      const opacitiesFor = (nextValue) => {\r\n        const normalized = clamp(nextValue, 0, 100);\r\n\r\n        if (normalized <= 50) {\r\n          return {\r\n            morning: 1 - normalized \/ 50,\r\n            day: normalized \/ 50,\r\n            night: 0\r\n          };\r\n        }\r\n\r\n        return {\r\n          morning: 0,\r\n          day: 1 - (normalized - 50) \/ 50,\r\n          night: (normalized - 50) \/ 50\r\n        };\r\n      };\r\n\r\n      const update = (nextValue, announce = false) => {\r\n        value = clamp(Number(nextValue) || 0, 0, 100);\r\n\r\n        const blend = opacitiesFor(value);\r\n        const state = stateFor(value);\r\n\r\n        root.style.setProperty(\"--ps-position\", `${value.toFixed(3)}%`);\r\n        root.style.setProperty(\"--ps-morning-opacity\", blend.morning.toFixed(4));\r\n        root.style.setProperty(\"--ps-day-opacity\", blend.day.toFixed(4));\r\n        root.style.setProperty(\"--ps-night-opacity\", blend.night.toFixed(4));\r\n\r\n        rail.setAttribute(\"aria-valuenow\", String(Math.round(value)));\r\n        rail.setAttribute(\"aria-valuetext\", state.name);\r\n        current.textContent = state.name;\r\n\r\n        options.forEach((option) => {\r\n          const isActive = Number(option.dataset.timeValue) === state.snap;\r\n          option.classList.toggle(\"is-active\", isActive);\r\n          option.setAttribute(\"aria-pressed\", String(isActive));\r\n        });\r\n\r\n        if (announce && live) {\r\n          live.textContent = `${state.name} selected`;\r\n        }\r\n      };\r\n\r\n      const cancelAnimation = () => {\r\n        if (!animationFrame) return;\r\n        cancelAnimationFrame(animationFrame);\r\n        animationFrame = 0;\r\n      };\r\n\r\n      const animateTo = (target, animationOptions = {}) => {\r\n        const announce = animationOptions.announce !== false;\r\n        const onComplete =\r\n          typeof animationOptions.onComplete === \"function\"\r\n            ? animationOptions.onComplete\r\n            : null;\r\n        const duration = numberOr(\r\n          animationOptions.duration,\r\n          motionSettings.transitionDuration\r\n        );\r\n\r\n        cancelAnimation();\r\n\r\n        if (reducedMotion.matches || duration === 0 || target === value) {\r\n          update(target, announce);\r\n          if (onComplete) onComplete();\r\n          return;\r\n        }\r\n\r\n        const startValue = value;\r\n        const distance = target - startValue;\r\n        const startTime = performance.now();\r\n\r\n        const step = (time) => {\r\n          const progress = clamp((time - startTime) \/ duration, 0, 1);\r\n          const eased = progress * progress * (3 - 2 * progress);\r\n          update(startValue + distance * eased);\r\n\r\n          if (progress < 1) {\r\n            animationFrame = requestAnimationFrame(step);\r\n          } else {\r\n            animationFrame = 0;\r\n            update(target, announce);\r\n            if (onComplete) onComplete();\r\n          }\r\n        };\r\n\r\n        animationFrame = requestAnimationFrame(step);\r\n      };\r\n\r\n      const valueFromElement = (event, element) => {\r\n        const rect = element.getBoundingClientRect();\r\n        return clamp(((event.clientX - rect.left) \/ rect.width) * 100, 0, 100);\r\n      };\r\n\r\n      const beginDrag = (event) => {\r\n        cancelAnimation();\r\n        activeDrag = true;\r\n        rail.classList.add(\"is-dragging\");\r\n        rail.setPointerCapture(event.pointerId);\r\n        update(valueFromElement(event, rail));\r\n        event.preventDefault();\r\n      };\r\n\r\n      const moveDrag = (event) => {\r\n        if (!activeDrag) return;\r\n        update(valueFromElement(event, rail));\r\n      };\r\n\r\n      const endDrag = (event) => {\r\n        if (!activeDrag) return;\r\n        activeDrag = false;\r\n        rail.classList.remove(\"is-dragging\");\r\n\r\n        if (rail.hasPointerCapture(event.pointerId)) {\r\n          rail.releasePointerCapture(event.pointerId);\r\n        }\r\n\r\n        animateTo(nearestPoint(value), {\r\n          duration: motionSettings.snapDuration,\r\n          announce: true\r\n        });\r\n      };\r\n\r\n      rail.addEventListener(\"pointerdown\", beginDrag);\r\n      rail.addEventListener(\"pointermove\", moveDrag);\r\n      rail.addEventListener(\"pointerup\", endDrag);\r\n      rail.addEventListener(\"pointercancel\", endDrag);\r\n\r\n      const handleKeyboard = (event) => {\r\n        let target;\r\n\r\n        if (\r\n          event.key === \"ArrowRight\" ||\r\n          event.key === \"ArrowUp\" ||\r\n          event.key === \"PageUp\"\r\n        ) {\r\n          target = timePoints.find((point) => point > value + 0.01);\r\n          if (target === undefined) target = 100;\r\n        } else if (\r\n          event.key === \"ArrowLeft\" ||\r\n          event.key === \"ArrowDown\" ||\r\n          event.key === \"PageDown\"\r\n        ) {\r\n          target = [...timePoints]\r\n            .reverse()\r\n            .find((point) => point < value - 0.01);\r\n          if (target === undefined) target = 0;\r\n        } else if (event.key === \"Home\") target = 0;\r\n        else if (event.key === \"End\") target = 100;\r\n        else return;\r\n\r\n        animateTo(target, {\r\n          duration: motionSettings.snapDuration,\r\n          announce: true\r\n        });\r\n        event.preventDefault();\r\n      };\r\n\r\n      rail.addEventListener(\"keydown\", handleKeyboard);\r\n\r\n      options.forEach((option) => {\r\n        option.addEventListener(\"click\", () => {\r\n          animateTo(Number(option.dataset.timeValue), {\r\n            duration: motionSettings.transitionDuration,\r\n            announce: true\r\n          });\r\n        });\r\n      });\r\n\r\n      const stopAutoplay = () => {\r\n        if (autoplayStopped) return;\r\n        autoplayStopped = true;\r\n        window.clearTimeout(autoplayTimer);\r\n        autoplayTimer = 0;\r\n      };\r\n\r\n      const scheduleAutoplay = () => {\r\n        if (autoplayStopped) return;\r\n\r\n        window.clearTimeout(autoplayTimer);\r\n        autoplayTimer = window.setTimeout(() => {\r\n          if (autoplayStopped) return;\r\n\r\n          autoplayIndex = (autoplayIndex + 1) % timePoints.length;\r\n          animateTo(timePoints[autoplayIndex], {\r\n            announce: false,\r\n            duration: motionSettings.transitionDuration,\r\n            onComplete: scheduleAutoplay\r\n          });\r\n        }, motionSettings.holdDuration);\r\n      };\r\n\r\n      root.addEventListener(\"pointerdown\", stopAutoplay, {\r\n        capture: true,\r\n        once: true,\r\n        passive: true\r\n      });\r\n      root.addEventListener(\"keydown\", stopAutoplay, {\r\n        capture: true,\r\n        once: true\r\n      });\r\n\r\n      autoplayIndex = pointIndexFor(value);\r\n      update(value);\r\n      if (motionSettings.autoplay) scheduleAutoplay();\r\n    });\r\n  })();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-bbdbae0 e-con e-atomic-element e-flexbox-base e-0e9ad2a \" data-id=\"bbdbae0\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"bbdbae0\" data-e-type=\"e-flexbox\" data-id=\"bbdbae0\">\n    <div class=\"elementor-element elementor-element-68dbcc7 e-flex e-con-boxed e-con e-parent\" data-id=\"68dbcc7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-1ca460e e-con-full e-flex e-con e-child\" data-id=\"1ca460e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f46125d elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"f46125d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"animated-guesswork\">Gigapixel<\/span> Clarity<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8158c3c elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"8158c3c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:200}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Uncompromising detail.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0b48da elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"a0b48da\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:400}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Zoom infinitely into luxury textures, architectural finishes, and distant views without a single pixel of degradation.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6f9e0d9 e-con-full e-flex e-con e-child\" data-id=\"6f9e0d9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5fead57 elementor-widget elementor-widget-image\" data-id=\"5fead57\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom-1024x1024.jpg\" class=\"attachment-large size-large wp-image-1434\" alt=\"\" srcset=\"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom-1024x1024.jpg 1024w, https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom-300x300.jpg 300w, https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom-150x150.jpg 150w, https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom-768x768.jpg 768w, https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom.jpg 1254w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-2d12e32 e-con e-atomic-element e-flexbox-base e-2d12e32-f8a0160 \" data-id=\"2d12e32\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"2d12e32\" data-e-type=\"e-flexbox\" data-id=\"2d12e32\">\n    <div class=\"elementor-element elementor-element-e8b9571 e-flex e-con-boxed e-con e-parent\" data-id=\"e8b9571\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2c677d4 elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-spacer\" data-id=\"2c677d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-83ebfce elementor-widget elementor-widget-heading\" data-id=\"83ebfce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\"><span class=\"animated-global\">Aerial 360\u00b0 <\/span> Perspective<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77b2fbd elementor-widget elementor-widget-text-editor\" data-id=\"77b2fbd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><b>Own the horizon.<\/b><span style=\"font-weight: 400;\"> Elevate the perspective. Seamlessly integrate high-altitude 360\u00b0 views to reveal the true scale and surrounding context of your property.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81d5c5e elementor-widget elementor-widget-html\" data-id=\"81d5c5e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PANOSKY RESPONSIVE 360 VIEWER \u2014 MOBILE FIXED -->\r\n\r\n<link\r\n  rel=\"stylesheet\"\r\n  href=\"https:\/\/cdn.pannellum.org\/2.5\/pannellum.css\"\r\n\/>\r\n\r\n<style>\r\n  .ps360-shell {\r\n    --ps360-height-desktop: clamp(500px, 54vw, 760px);\r\n    --ps360-height-mobile: clamp(350px, 76vw, 540px);\r\n\r\n    position: relative;\r\n    width: 100%;\r\n    height: var(--ps360-height-desktop);\r\n    overflow: hidden;\r\n\r\n    background: #011841;\r\n    border: 1px solid rgba(91, 164, 255, 0.34);\r\n    border-radius: 28px;\r\n\r\n    box-shadow:\r\n      0 30px 80px rgba(0, 8, 30, 0.38),\r\n      inset 0 0 40px rgba(0, 159, 255, 0.04);\r\n\r\n    isolation: isolate;\r\n    cursor: grab;\r\n\r\n    user-select: none;\r\n    -webkit-user-select: none;\r\n    -webkit-touch-callout: none;\r\n\r\n    touch-action: none;\r\n  }\r\n\r\n  .ps360-shell.ps360-dragging {\r\n    cursor: grabbing;\r\n  }\r\n\r\n  .ps360-stage {\r\n    position: absolute;\r\n    inset: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    outline: none;\r\n  }\r\n\r\n  .ps360-shell::after {\r\n    content: \"\";\r\n    position: absolute;\r\n    inset: 0;\r\n    z-index: 4;\r\n\r\n    pointer-events: none;\r\n    border-radius: inherit;\r\n\r\n    background:\r\n      linear-gradient(\r\n        180deg,\r\n        rgba(0, 11, 35, 0.08),\r\n        transparent 22%,\r\n        transparent 75%,\r\n        rgba(0, 10, 32, 0.2)\r\n      ),\r\n      radial-gradient(\r\n        circle at center,\r\n        transparent 58%,\r\n        rgba(0, 10, 32, 0.13) 100%\r\n      );\r\n  }\r\n\r\n  .ps360-hint {\r\n    position: absolute;\r\n    left: 50%;\r\n    bottom: 22px;\r\n    z-index: 8;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 9px;\r\n\r\n    padding: 9px 14px;\r\n\r\n    color: rgba(255, 255, 255, 0.84);\r\n    background: rgba(2, 20, 52, 0.68);\r\n\r\n    border: 1px solid rgba(135, 190, 255, 0.28);\r\n    border-radius: 100px;\r\n\r\n    box-shadow: 0 10px 30px rgba(0, 7, 26, 0.24);\r\n\r\n    backdrop-filter: blur(12px);\r\n    -webkit-backdrop-filter: blur(12px);\r\n\r\n    transform: translateX(-50%);\r\n\r\n    transition:\r\n      opacity 0.4s ease,\r\n      transform 0.4s ease;\r\n\r\n    pointer-events: none;\r\n\r\n    font-family: inherit;\r\n    font-size: 11px;\r\n    font-weight: 500;\r\n    line-height: 1;\r\n    letter-spacing: 0.1em;\r\n    text-transform: uppercase;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  .ps360-hint-icon {\r\n    color: #63b8ff;\r\n    font-size: 17px;\r\n    line-height: 1;\r\n    letter-spacing: 0;\r\n  }\r\n\r\n  .ps360-hint-touch {\r\n    display: none;\r\n  }\r\n\r\n  .ps360-shell.ps360-used .ps360-hint {\r\n    opacity: 0;\r\n    transform: translate(-50%, 7px);\r\n  }\r\n\r\n  \/* Remove default Pannellum controls *\/\r\n  .ps360-shell .pnlm-about-msg,\r\n  .ps360-shell .pnlm-controls-container,\r\n  .ps360-shell .pnlm-zoom-controls,\r\n  .ps360-shell .pnlm-fullscreen-toggle-button {\r\n    display: none !important;\r\n  }\r\n\r\n  .ps360-shell .pnlm-container,\r\n  .ps360-shell .pnlm-render-container {\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n    background: #011841;\r\n  }\r\n\r\n  \/* MOBILE AND TABLET *\/\r\n  @media (max-width: 1024px), (hover: none), (pointer: coarse) {\r\n    .ps360-shell {\r\n      height: var(--ps360-height-mobile);\r\n      border-radius: 20px;\r\n\r\n      \/*\r\n       * Horizontal movement is controlled by JavaScript.\r\n       * Vertical movement remains available for page scrolling.\r\n       *\/\r\n      touch-action: pan-y !important;\r\n    }\r\n\r\n    .ps360-stage,\r\n    .ps360-shell .pnlm-container,\r\n    .ps360-shell .pnlm-render-container,\r\n    .ps360-shell canvas {\r\n      touch-action: pan-y !important;\r\n    }\r\n\r\n    .ps360-hint {\r\n      bottom: 14px;\r\n      padding: 8px 12px;\r\n      font-size: 9px;\r\n    }\r\n\r\n    .ps360-hint-desktop {\r\n      display: none;\r\n    }\r\n\r\n    .ps360-hint-touch {\r\n      display: inline;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 480px) {\r\n    .ps360-shell {\r\n      border-radius: 16px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div\r\n  class=\"ps360-shell\"\r\n  data-ps360-viewer\r\n  aria-label=\"Interactive 360 degree panoramic image\"\r\n>\r\n  <div\r\n    class=\"ps360-stage\"\r\n    tabindex=\"0\"\r\n    role=\"application\"\r\n    aria-label=\"Drag to explore the 360 degree view\"\r\n  ><\/div>\r\n\r\n  <div class=\"ps360-hint\">\r\n    <span class=\"ps360-hint-icon\">\u2194<\/span>\r\n\r\n    <span class=\"ps360-hint-desktop\">\r\n      Drag to explore\r\n    <\/span>\r\n\r\n    <span class=\"ps360-hint-touch\">\r\n      Swipe sideways to explore\r\n    <\/span>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdn.pannellum.org\/2.5\/pannellum.js\"><\/script>\r\n\r\n<script>\r\n(() => {\r\n  \/* =====================================================\r\n     EASY SETTINGS\r\n  ===================================================== *\/\r\n\r\n  const SETTINGS = {\r\n    PANORAMA_URL:\r\n      \"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/DJI_20260318165240_0002_D_1779132351010-scaled.jpg\",\r\n\r\n    \/* Starting view *\/\r\n    START_YAW: 340,\r\n    START_PITCH: -40,\r\n    START_FIELD_OF_VIEW: 95,\r\n\r\n    \/* Desktop vertical limits *\/\r\n    MIN_PITCH: -55,\r\n    MAX_PITCH: 55,\r\n\r\n    \/* Automatic rotation *\/\r\n    AUTO_ROTATE_SPEED: -1.3,\r\n    AUTO_START_DELAY: 900,\r\n    AUTO_RESUME_DELAY: 2200,\r\n\r\n    \/* Desktop drag sensitivity *\/\r\n    DESKTOP_HORIZONTAL_SPEED: 0.12,\r\n    DESKTOP_VERTICAL_SPEED: 0.1,\r\n\r\n    \/*\r\n     * Mobile sensitivity.\r\n     * Increase this if you want faster mobile rotation.\r\n     *\r\n     * Recommended range:\r\n     * 0.30 = slower\r\n     * 0.42 = balanced\r\n     * 0.55 = faster\r\n     *\/\r\n    TOUCH_HORIZONTAL_SPEED: 0.42,\r\n\r\n    \/*\r\n     * Smaller value makes horizontal control begin sooner.\r\n     *\/\r\n    TOUCH_DIRECTION_THRESHOLD: 4,\r\n\r\n    \/*\r\n     * 0.90 allows slightly diagonal horizontal swipes.\r\n     * Lower values make horizontal control easier,\r\n     * but can make vertical scrolling less sensitive.\r\n     *\/\r\n    TOUCH_HORIZONTAL_BIAS: 0.9,\r\n\r\n    \/* Responsive heights *\/\r\n    DESKTOP_HEIGHT: \"clamp(500px, 54vw, 760px)\",\r\n    MOBILE_HEIGHT: \"clamp(350px, 76vw, 540px)\"\r\n  };\r\n\r\n\r\n  \/* =====================================================\r\n     VIEWER ENGINE\r\n  ===================================================== *\/\r\n\r\n  const reduceMotion = window.matchMedia(\r\n    \"(prefers-reduced-motion: reduce)\"\r\n  ).matches;\r\n\r\n  const clamp = (value, minimum, maximum) =>\r\n    Math.min(Math.max(value, minimum), maximum);\r\n\r\n  const normalizeYaw = value =>\r\n    ((value + 180) % 360 + 360) % 360 - 180;\r\n\r\n\r\n  function initializeViewer(root) {\r\n    if (root.dataset.ps360Ready === \"true\") return;\r\n\r\n    root.dataset.ps360Ready = \"true\";\r\n\r\n    root.style.setProperty(\r\n      \"--ps360-height-desktop\",\r\n      SETTINGS.DESKTOP_HEIGHT\r\n    );\r\n\r\n    root.style.setProperty(\r\n      \"--ps360-height-mobile\",\r\n      SETTINGS.MOBILE_HEIGHT\r\n    );\r\n\r\n    const stage = root.querySelector(\".ps360-stage\");\r\n\r\n    const viewer = pannellum.viewer(stage, {\r\n      type: \"equirectangular\",\r\n      panorama: SETTINGS.PANORAMA_URL,\r\n\r\n      autoLoad: true,\r\n\r\n      yaw: SETTINGS.START_YAW,\r\n      pitch: SETTINGS.START_PITCH,\r\n      hfov: SETTINGS.START_FIELD_OF_VIEW,\r\n\r\n      minPitch: SETTINGS.MIN_PITCH,\r\n      maxPitch: SETTINGS.MAX_PITCH,\r\n\r\n      \/*\r\n       * Pannellum's default drag controls are disabled.\r\n       * Custom desktop and touch controls are used below.\r\n       *\/\r\n      draggable: false,\r\n\r\n      \/* Keep mouse wheel available for page scrolling *\/\r\n      mouseZoom: false,\r\n      keyboardZoom: false,\r\n      disableKeyboardCtrl: true,\r\n\r\n      showControls: false,\r\n      showZoomCtrl: false,\r\n      showFullscreenCtrl: false,\r\n\r\n      orientationOnByDefault: false,\r\n      compass: false,\r\n      escapeHTML: true\r\n    });\r\n\r\n    let viewerLoaded = false;\r\n    let autoRotateTimer = null;\r\n\r\n\r\n    \/* =====================================================\r\n       AUTOMATIC ROTATION\r\n    ===================================================== *\/\r\n\r\n    function clearAutoTimer() {\r\n      if (!autoRotateTimer) return;\r\n\r\n      window.clearTimeout(autoRotateTimer);\r\n      autoRotateTimer = null;\r\n    }\r\n\r\n    function stopAutoRotation() {\r\n      clearAutoTimer();\r\n\r\n      if (viewerLoaded) {\r\n        viewer.stopAutoRotate();\r\n      }\r\n    }\r\n\r\n    function startAutoRotation() {\r\n      clearAutoTimer();\r\n\r\n      if (\r\n        !viewerLoaded ||\r\n        reduceMotion ||\r\n        !SETTINGS.AUTO_ROTATE_SPEED\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      viewer.startAutoRotate(\r\n        SETTINGS.AUTO_ROTATE_SPEED,\r\n        viewer.getPitch()\r\n      );\r\n    }\r\n\r\n    function scheduleAutoRotation(\r\n      delay = SETTINGS.AUTO_RESUME_DELAY\r\n    ) {\r\n      clearAutoTimer();\r\n\r\n      if (\r\n        reduceMotion ||\r\n        !SETTINGS.AUTO_ROTATE_SPEED\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      autoRotateTimer = window.setTimeout(\r\n        startAutoRotation,\r\n        delay\r\n      );\r\n    }\r\n\r\n    function markViewerUsed() {\r\n      root.classList.add(\"ps360-used\");\r\n    }\r\n\r\n\r\n    \/* =====================================================\r\n       DESKTOP MOUSE CONTROL\r\n    ===================================================== *\/\r\n\r\n    const mouse = {\r\n      active: false,\r\n      pointerId: null,\r\n      lastX: 0,\r\n      lastY: 0\r\n    };\r\n\r\n    stage.addEventListener(\"pointerdown\", event => {\r\n      \/*\r\n       * Touch controls are handled separately below.\r\n       * This prevents mobile browsers cancelling the drag.\r\n       *\/\r\n      if (\r\n        event.pointerType !== \"mouse\" ||\r\n        event.button !== 0 ||\r\n        !viewerLoaded\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      mouse.active = true;\r\n      mouse.pointerId = event.pointerId;\r\n      mouse.lastX = event.clientX;\r\n      mouse.lastY = event.clientY;\r\n\r\n      stopAutoRotation();\r\n      markViewerUsed();\r\n\r\n      root.classList.add(\"ps360-dragging\");\r\n\r\n      try {\r\n        stage.setPointerCapture(event.pointerId);\r\n      } catch (error) {}\r\n\r\n      event.preventDefault();\r\n    });\r\n\r\n    stage.addEventListener(\r\n      \"pointermove\",\r\n      event => {\r\n        if (\r\n          !mouse.active ||\r\n          event.pointerType !== \"mouse\" ||\r\n          event.pointerId !== mouse.pointerId ||\r\n          !viewerLoaded\r\n        ) {\r\n          return;\r\n        }\r\n\r\n        event.preventDefault();\r\n\r\n        const movementX =\r\n          event.clientX - mouse.lastX;\r\n\r\n        const movementY =\r\n          event.clientY - mouse.lastY;\r\n\r\n        const yaw =\r\n          viewer.getYaw() -\r\n          movementX *\r\n            SETTINGS.DESKTOP_HORIZONTAL_SPEED;\r\n\r\n        const pitch =\r\n          viewer.getPitch() +\r\n          movementY *\r\n            SETTINGS.DESKTOP_VERTICAL_SPEED;\r\n\r\n        viewer.setYaw(\r\n          normalizeYaw(yaw),\r\n          false\r\n        );\r\n\r\n        viewer.setPitch(\r\n          clamp(\r\n            pitch,\r\n            SETTINGS.MIN_PITCH,\r\n            SETTINGS.MAX_PITCH\r\n          ),\r\n          false\r\n        );\r\n\r\n        mouse.lastX = event.clientX;\r\n        mouse.lastY = event.clientY;\r\n      },\r\n      { passive: false }\r\n    );\r\n\r\n    function endMouseInteraction(event) {\r\n      if (!mouse.active) return;\r\n\r\n      if (\r\n        stage.hasPointerCapture?.(mouse.pointerId)\r\n      ) {\r\n        try {\r\n          stage.releasePointerCapture(\r\n            mouse.pointerId\r\n          );\r\n        } catch (error) {}\r\n      }\r\n\r\n      mouse.active = false;\r\n      mouse.pointerId = null;\r\n\r\n      root.classList.remove(\"ps360-dragging\");\r\n\r\n      scheduleAutoRotation();\r\n    }\r\n\r\n    stage.addEventListener(\r\n      \"pointerup\",\r\n      endMouseInteraction\r\n    );\r\n\r\n    stage.addEventListener(\r\n      \"pointercancel\",\r\n      endMouseInteraction\r\n    );\r\n\r\n\r\n    \/* =====================================================\r\n       MOBILE AND TABLET TOUCH CONTROL\r\n    ===================================================== *\/\r\n\r\n    const touch = {\r\n      active: false,\r\n      identifier: null,\r\n      mode: null,\r\n\r\n      startX: 0,\r\n      startY: 0,\r\n\r\n      lastX: 0,\r\n      lastY: 0\r\n    };\r\n\r\n    function getTrackedTouch(touchList) {\r\n      for (let index = 0; index < touchList.length; index++) {\r\n        if (\r\n          touchList[index].identifier ===\r\n          touch.identifier\r\n        ) {\r\n          return touchList[index];\r\n        }\r\n      }\r\n\r\n      return null;\r\n    }\r\n\r\n    stage.addEventListener(\r\n      \"touchstart\",\r\n      event => {\r\n        if (\r\n          !viewerLoaded ||\r\n          event.touches.length !== 1\r\n        ) {\r\n          return;\r\n        }\r\n\r\n        const currentTouch = event.touches[0];\r\n\r\n        touch.active = true;\r\n        touch.identifier = currentTouch.identifier;\r\n        touch.mode = null;\r\n\r\n        touch.startX = currentTouch.clientX;\r\n        touch.startY = currentTouch.clientY;\r\n\r\n        touch.lastX = currentTouch.clientX;\r\n        touch.lastY = currentTouch.clientY;\r\n\r\n        \/*\r\n         * Do not preventDefault here.\r\n         * The browser must still be able to detect\r\n         * an intended vertical page scroll.\r\n         *\/\r\n      },\r\n      { passive: true }\r\n    );\r\n\r\n    stage.addEventListener(\r\n      \"touchmove\",\r\n      event => {\r\n        if (!touch.active || !viewerLoaded) return;\r\n\r\n        const currentTouch =\r\n          getTrackedTouch(event.touches);\r\n\r\n        if (!currentTouch) return;\r\n\r\n        const totalMovementX =\r\n          currentTouch.clientX - touch.startX;\r\n\r\n        const totalMovementY =\r\n          currentTouch.clientY - touch.startY;\r\n\r\n        const absoluteX =\r\n          Math.abs(totalMovementX);\r\n\r\n        const absoluteY =\r\n          Math.abs(totalMovementY);\r\n\r\n\r\n        \/*\r\n         * Decide the gesture direction quickly.\r\n         *\/\r\n        if (!touch.mode) {\r\n          const largestMovement =\r\n            Math.max(absoluteX, absoluteY);\r\n\r\n          if (\r\n            largestMovement <\r\n            SETTINGS.TOUCH_DIRECTION_THRESHOLD\r\n          ) {\r\n            return;\r\n          }\r\n\r\n          \/*\r\n           * Horizontal gestures are allowed to be\r\n           * slightly diagonal.\r\n           *\/\r\n          if (\r\n            absoluteX >=\r\n            absoluteY *\r\n              SETTINGS.TOUCH_HORIZONTAL_BIAS\r\n          ) {\r\n            touch.mode = \"horizontal\";\r\n\r\n            stopAutoRotation();\r\n            markViewerUsed();\r\n\r\n            root.classList.add(\r\n              \"ps360-dragging\"\r\n            );\r\n          } else {\r\n            \/*\r\n             * This is a vertical gesture.\r\n             * Leave it untouched so the webpage scrolls.\r\n             *\/\r\n            touch.mode = \"vertical\";\r\n            return;\r\n          }\r\n        }\r\n\r\n\r\n        \/*\r\n         * Keep native vertical page scrolling.\r\n         *\/\r\n        if (touch.mode === \"vertical\") {\r\n          return;\r\n        }\r\n\r\n\r\n        \/*\r\n         * Horizontal gesture:\r\n         * prevent page movement and rotate panorama.\r\n         *\/\r\n        event.preventDefault();\r\n\r\n        const movementX =\r\n          currentTouch.clientX - touch.lastX;\r\n\r\n        const yaw =\r\n          viewer.getYaw() -\r\n          movementX *\r\n            SETTINGS.TOUCH_HORIZONTAL_SPEED;\r\n\r\n        viewer.setYaw(\r\n          normalizeYaw(yaw),\r\n          false\r\n        );\r\n\r\n        touch.lastX = currentTouch.clientX;\r\n        touch.lastY = currentTouch.clientY;\r\n      },\r\n      { passive: false }\r\n    );\r\n\r\n    function endTouchInteraction() {\r\n      if (!touch.active) return;\r\n\r\n      const wasHorizontal =\r\n        touch.mode === \"horizontal\";\r\n\r\n      touch.active = false;\r\n      touch.identifier = null;\r\n      touch.mode = null;\r\n\r\n      root.classList.remove(\"ps360-dragging\");\r\n\r\n      if (wasHorizontal) {\r\n        scheduleAutoRotation();\r\n      }\r\n    }\r\n\r\n    stage.addEventListener(\r\n      \"touchend\",\r\n      endTouchInteraction,\r\n      { passive: true }\r\n    );\r\n\r\n    stage.addEventListener(\r\n      \"touchcancel\",\r\n      endTouchInteraction,\r\n      { passive: true }\r\n    );\r\n\r\n\r\n    \/* =====================================================\r\n       KEYBOARD ACCESSIBILITY\r\n    ===================================================== *\/\r\n\r\n    stage.addEventListener(\"keydown\", event => {\r\n      if (\r\n        event.key !== \"ArrowLeft\" &&\r\n        event.key !== \"ArrowRight\"\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      event.preventDefault();\r\n\r\n      stopAutoRotation();\r\n      markViewerUsed();\r\n\r\n      const direction =\r\n        event.key === \"ArrowLeft\" ? 1 : -1;\r\n\r\n      viewer.setYaw(\r\n        normalizeYaw(\r\n          viewer.getYaw() + direction * 6\r\n        ),\r\n        220\r\n      );\r\n\r\n      scheduleAutoRotation();\r\n    });\r\n\r\n\r\n    \/* =====================================================\r\n       LOAD AND RESIZE\r\n    ===================================================== *\/\r\n\r\n    viewer.on(\"load\", () => {\r\n      viewerLoaded = true;\r\n\r\n      scheduleAutoRotation(\r\n        SETTINGS.AUTO_START_DELAY\r\n      );\r\n    });\r\n\r\n    viewer.on(\"error\", error => {\r\n      console.error(\r\n        \"PanoSky 360 viewer error:\",\r\n        error\r\n      );\r\n    });\r\n\r\n    if (\"ResizeObserver\" in window) {\r\n      const observer = new ResizeObserver(() => {\r\n        if (viewerLoaded) {\r\n          viewer.resize();\r\n        }\r\n      });\r\n\r\n      observer.observe(root);\r\n    } else {\r\n      window.addEventListener(\"resize\", () => {\r\n        if (viewerLoaded) {\r\n          viewer.resize();\r\n        }\r\n      });\r\n    }\r\n\r\n    document.addEventListener(\r\n      \"visibilitychange\",\r\n      () => {\r\n        if (document.hidden) {\r\n          stopAutoRotation();\r\n        } else {\r\n          scheduleAutoRotation();\r\n        }\r\n      }\r\n    );\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     INITIALIZATION\r\n  ===================================================== *\/\r\n\r\n  function bootViewer() {\r\n    if (!window.pannellum) {\r\n      window.setTimeout(bootViewer, 60);\r\n      return;\r\n    }\r\n\r\n    document\r\n      .querySelectorAll(\r\n        \"[data-ps360-viewer]:not([data-ps360-ready='true'])\"\r\n      )\r\n      .forEach(initializeViewer);\r\n  }\r\n\r\n  bootViewer();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Pro Features.Absolute Immersion. The technology behind the tour.\u00a0Every feature is built to turn your physical space into a powerful digital asset. VISUAL DOMINANCE Dynamic Time Shift Control the sun. Instantly transition the environment between day and night to showcase entirely different atmospheres with a single click. Night Morning Day Night Drag to shift time Night [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1331","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Features - PanoSky New<\/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:\/\/beepano.com\/?page_id=1331\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Features - PanoSky New\" \/>\n<meta property=\"og:description\" content=\"Pro Features.Absolute Immersion. The technology behind the tour.\u00a0Every feature is built to turn your physical space into a powerful digital asset. VISUAL DOMINANCE Dynamic Time Shift Control the sun. Instantly transition the environment between day and night to showcase entirely different atmospheres with a single click. Night Morning Day Night Drag to shift time Night [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beepano.com\/?page_id=1331\" \/>\n<meta property=\"og:site_name\" content=\"PanoSky New\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-31T18:08:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1254\" \/>\n\t<meta property=\"og:image:height\" content=\"1254\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/beepano.com\\\/?page_id=1331\",\"url\":\"https:\\\/\\\/beepano.com\\\/?page_id=1331\",\"name\":\"Features - PanoSky New\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/beepano.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/beepano.com\\\/?page_id=1331#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/beepano.com\\\/?page_id=1331#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beepano.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Gigapizel-zoom-1024x1024.jpg\",\"datePublished\":\"2026-07-22T15:01:40+00:00\",\"dateModified\":\"2026-07-31T18:08:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/beepano.com\\\/?page_id=1331#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/beepano.com\\\/?page_id=1331\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/beepano.com\\\/?page_id=1331#primaryimage\",\"url\":\"https:\\\/\\\/beepano.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Gigapizel-zoom.jpg\",\"contentUrl\":\"https:\\\/\\\/beepano.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Gigapizel-zoom.jpg\",\"width\":1254,\"height\":1254},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/beepano.com\\\/?page_id=1331#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/beepano.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Features\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/beepano.com\\\/#website\",\"url\":\"http:\\\/\\\/beepano.com\\\/\",\"name\":\"PanoSky New\",\"description\":\"\",\"publisher\":{\"@id\":\"http:\\\/\\\/beepano.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/beepano.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/beepano.com\\\/#organization\",\"name\":\"PanoSky New\",\"url\":\"http:\\\/\\\/beepano.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/beepano.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/beepano.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/PanoSky-Logo-for-website-temp-01.png\",\"contentUrl\":\"https:\\\/\\\/beepano.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/PanoSky-Logo-for-website-temp-01.png\",\"width\":1024,\"height\":221,\"caption\":\"PanoSky New\"},\"image\":{\"@id\":\"http:\\\/\\\/beepano.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Features - PanoSky New","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:\/\/beepano.com\/?page_id=1331","og_locale":"en_US","og_type":"article","og_title":"Features - PanoSky New","og_description":"Pro Features.Absolute Immersion. The technology behind the tour.\u00a0Every feature is built to turn your physical space into a powerful digital asset. VISUAL DOMINANCE Dynamic Time Shift Control the sun. Instantly transition the environment between day and night to showcase entirely different atmospheres with a single click. Night Morning Day Night Drag to shift time Night [&hellip;]","og_url":"https:\/\/beepano.com\/?page_id=1331","og_site_name":"PanoSky New","article_modified_time":"2026-07-31T18:08:54+00:00","og_image":[{"width":1254,"height":1254,"url":"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/beepano.com\/?page_id=1331","url":"https:\/\/beepano.com\/?page_id=1331","name":"Features - PanoSky New","isPartOf":{"@id":"http:\/\/beepano.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beepano.com\/?page_id=1331#primaryimage"},"image":{"@id":"https:\/\/beepano.com\/?page_id=1331#primaryimage"},"thumbnailUrl":"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom-1024x1024.jpg","datePublished":"2026-07-22T15:01:40+00:00","dateModified":"2026-07-31T18:08:54+00:00","breadcrumb":{"@id":"https:\/\/beepano.com\/?page_id=1331#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beepano.com\/?page_id=1331"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beepano.com\/?page_id=1331#primaryimage","url":"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom.jpg","contentUrl":"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/Gigapizel-zoom.jpg","width":1254,"height":1254},{"@type":"BreadcrumbList","@id":"https:\/\/beepano.com\/?page_id=1331#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beepano.com\/"},{"@type":"ListItem","position":2,"name":"Features"}]},{"@type":"WebSite","@id":"http:\/\/beepano.com\/#website","url":"http:\/\/beepano.com\/","name":"PanoSky New","description":"","publisher":{"@id":"http:\/\/beepano.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/beepano.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/beepano.com\/#organization","name":"PanoSky New","url":"http:\/\/beepano.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/beepano.com\/#\/schema\/logo\/image\/","url":"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/PanoSky-Logo-for-website-temp-01.png","contentUrl":"https:\/\/beepano.com\/wp-content\/uploads\/2026\/07\/PanoSky-Logo-for-website-temp-01.png","width":1024,"height":221,"caption":"PanoSky New"},"image":{"@id":"http:\/\/beepano.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/beepano.com\/index.php?rest_route=\/wp\/v2\/pages\/1331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beepano.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/beepano.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/beepano.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beepano.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1331"}],"version-history":[{"count":5,"href":"https:\/\/beepano.com\/index.php?rest_route=\/wp\/v2\/pages\/1331\/revisions"}],"predecessor-version":[{"id":1453,"href":"https:\/\/beepano.com\/index.php?rest_route=\/wp\/v2\/pages\/1331\/revisions\/1453"}],"wp:attachment":[{"href":"https:\/\/beepano.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}