{"id":2483,"date":"2026-07-02T22:57:50","date_gmt":"2026-07-02T22:57:50","guid":{"rendered":"https:\/\/niasnebraska.com\/?p=2483"},"modified":"2026-07-02T22:57:53","modified_gmt":"2026-07-02T22:57:53","slug":"spearfish-canyon-and-hatchery","status":"publish","type":"post","link":"https:\/\/niasnebraska.com\/index.php\/2026\/07\/02\/spearfish-canyon-and-hatchery\/","title":{"rendered":"Spearfish Canyon and Hatchery"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">We took a side trip to the hatchery and Spearfish Canyon while staying at <a href=\"https:\/\/niasnebraska.com\/index.php\/category\/camping\/south-dakota-camping\/chris-campground\/\">Chris&#8217; Campground<\/a> (one of many side ventures). The canyon is a beautiful drive out of Spearfish (or to it depending on your point of view) and spent the day enjoying the area.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We got out of the truck and hiked up to this place they call the devils bathtub.  It starts off with a nice trail head but eventually turns out to a trek up a gradual incline for a mile or with no distinguished trail.  You&#8217;re forced into crossing the stream about 15 times.  Eventually you come to an area where you can turn around and come back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We also spent some time at the Spearfish Hatchery.  This area is a nice little park (probably the nicest hatchery I&#8217;ve been too) with several nice features which included a railroad car converted into a fish transport vehicle.  This thing was decked out pretty well.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anyway, I am attaching my normal load of photos for you to enjoy below.<\/p>\n\n\n\nngg_shortcode_0_placeholder\n\n\n\n<p class=\"wp-block-paragraph\">The following is a 360 photo of the Devils Bathtub.  It should spin around at a snails pace but feel free to drag it around.<\/p>\n\n\n<style>#pano2579 div.pnlm-orientation-button {\n                    display: none;\n                }<\/style><div id=\"master-container\" class=\"wpvr-cardboard \" style=\"max-width:600px; width: 100%; height: 400px; border-radius:0px; direction:ltr; \"><div id=\"pano22579\" class=\"pano-wrap pano-left\" style=\"width: 49%; border-radius:0px\"><div id=\"center-pointer22579\" class=\"vr-pointer-container\"><span class=\"center-pointer\"><\/span><\/div><\/div><div id=\"pano2579\" class=\"pano-wrap pano-right\" style=\"width: 100%; border-radius:0px;\"><div id=\"center-pointer2579\" class=\"vr-pointer-container\" style=\"display:none\"><span class=\"center-pointer\"><\/span><\/div><div class=\"explainer\" id=\"explainer2579\" style=\"display: none\"><span class=\"close-explainer-video\"><i class=\"fa fa-times\"><\/i><\/span><\/div><div class=\"wpvr-floor-map\" id=\"wpvr-floor-map2579\" style=\"display: none\"><span class=\"close-floor-map-plan\"><i class=\"fa fa-times\"><\/i><\/span><img decoding=\"async\" loading=\"lazy\" src=\"\"><\/div><div class=\"wpvr-hotspot-tweak-contents-wrapper\" style=\"display: none\"><i class=\"fa fa-times cross\" data-id=\"2579\"><\/i><div class=\"wpvr-hotspot-tweak-contents-flex\"><div class=\"wpvr-hotspot-tweak-contents\"><\/div><\/div><\/div><div class=\"custom-ifram-wrapper\" style=\"display: none;\"><i class=\"fa fa-times cross\" data-id=\"2579\"><\/i><div class=\"custom-ifram-flex\"><div class=\"custom-ifram\"><\/div><\/div><\/div><\/div><\/div><style id=\"wpvr-scene-info-2579\">\n            #pano2579 .pnlm-panorama-info.wpvr-scene-info-row {\n                display: flex !important;\n                align-items: center !important;\n                justify-content: center !important;\n                gap: 10px !important;\n                box-sizing: border-box !important;\n                min-width: 0 !important;\n                overflow: hidden !important;\n                text-align: center !important;\n                z-index: 2147483647 !important;\n                -webkit-transform: translateZ(10000px) !important;\n                transform: translateZ(10000px) !important;\n            }\n\n            #pano2579 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(70% - 5px) !important;\n                width: auto !important;\n                margin: 0 !important;\n                padding: 0 !important;\n                display: block !important;\n                overflow: hidden !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano2579 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                flex: 0 1 auto !important;\n                min-width: 0 !important;\n                max-width: calc(30% - 5px) !important;\n                margin: 0 !important;\n                border-left: 1px solid rgba(255, 255, 255, 0.45) !important;\n                padding: 0 0 0 10px !important;\n                display: block !important;\n                overflow: hidden !important;\n                line-height: 1.2 !important;\n                text-overflow: ellipsis !important;\n                white-space: nowrap !important;\n            }\n\n            #pano2579 .pnlm-panorama-info .wpvr-author-label {\n                flex: none !important;\n                margin-right: 4px !important;\n                font-size: 10px !important;\n                font-weight: 700 !important;\n                letter-spacing: 0.06em !important;\n                opacity: 0.8 !important;\n                text-transform: uppercase !important;\n            }\n\n            #pano2579 .pnlm-panorama-info .pnlm-author-box a {\n                color: inherit !important;\n                text-decoration: underline !important;\n                text-underline-offset: 2px !important;\n            }\n\n            #pano2579 .pnlm-panorama-info.wpvr-has-title:not(.wpvr-has-author) .pnlm-title-box,\n            #pano2579 .pnlm-panorama-info.wpvr-has-author:not(.wpvr-has-title) .pnlm-author-box {\n                max-width: 100% !important;\n                border-left: 0 !important;\n                padding-left: 0 !important;\n            }\n\n            #pano2579.wpvr-layout-classic.wpvr-has-scene-info .scene-gallery.wpvr-gallery--classic {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 8px) !important;\n            }\n\n            #pano2579.wpvr-layout-classic.wpvr-has-scene-info .vrgcontrols {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 4px) !important;\n            }\n\n            #pano2579.wpvr-layout-classic.wpvr-has-scene-info .wpvr_slider_nav {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 15px) !important;\n            }\n\n            #pano2579.wpvr-layout-classic.wpvr-has-scene-info .controls {\n                bottom: calc(var(--wpvr-scene-info-height, 34px) + 6px) !important;\n            }\n\n            @media (max-width: 767px) {\n                #pano2579 .pnlm-panorama-info.wpvr-scene-info-row {\n                    gap: 7px !important;\n                    padding-right: 10px !important;\n                    padding-left: 10px !important;\n                }\n\n                #pano2579 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-title-box {\n                    max-width: calc(65% - 4px) !important;\n                }\n\n                #pano2579 .pnlm-panorama-info.wpvr-scene-info-row .pnlm-author-box {\n                    max-width: calc(35% - 4px) !important;\n                    padding-left: 7px !important;\n                }\n            }\n        <\/style>\n        \n<script>(function ($) {jQuery(document).ready(function() {var response = [{\"panoid\":\"pano2579\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":true,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":false,\"preview\":\"\",\"autoRotate\":\"-5\",\"default\":{\"firstScene\":\"RYmSFJnZ\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"RYmSFJnZ\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/niasnebraska.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/DevilsBathtub3-1-scaled.jpg\",\"pitch\":0,\"yaw\":0,\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes = response[1];if(scenes) {var scenedata = scenes.scenes;for(var i in scenedata) {var scenehotspot = scenedata[i].hotSpots;for(var i = 0; i < scenehotspot.length; i++) {if(scenehotspot[i].type === \"info\") {    scenehotspot[i][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };} else if(scenehotspot[i].type === \"scene\") {    scenehotspot[i][\"clickHandlerArgs\"] = scenehotspot[i][\"text\"];if(typeof wpvr_public !== \"undefined\" &#038;&#038; wpvr_public.is_pro_active) {    scenehotspot[i][\"clickHandlerFunc\"] = function(div, args) { if (typeof wpvrhotspotscene === \"function\") { wpvrhotspotscene(div, args); } else if (typeof window.wpvrhotspotscene === \"function\") { window.wpvrhotspotscene(div, args); } };}}if(scenehotspot[i][\"createTooltipArgs\"] != \"\") {scenehotspot[i][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}var panoshow2579;var panoshow22579;function initWPVRViewer2579() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer2579, 50); return; }panoshow2579 = pannellum.viewer(response[0][\"panoid\"], scenes);\n            window.wpvrViewers = window.wpvrViewers || {};\n            window.wpvrViewers[response[0][\"panoid\"]] = panoshow2579;\n            document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                detail: { containerId: response[0][\"panoid\"], viewer: panoshow2579 }\n            }));\n        \n  \n        if(typeof wpvr_public === \"undefined\" || !wpvr_public.is_pro_active || !wpvr_public.is_license_active) {\n            panoshow2579.on(\"load\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n            \n            panoshow2579.on(\"scenechange\", function() {\n                jQuery(\".pnlm-panorama-info\").hide();\n                jQuery(\".pnlm-compass\").hide();\n            });\n        }}initWPVRViewer2579();var response_duplicate = [{\"panoid\":\"pano2579\"},{\"autoLoad\":true,\"showControls\":true,\"orientationSupport\":\"false\",\"compass\":false,\"orientationOnByDefault\":false,\"mouseZoom\":true,\"draggable\":true,\"disableKeyboardCtrl\":false,\"keyboardZoom\":false,\"preview\":\"\",\"autoRotate\":false,\"default\":{\"firstScene\":\"RYmSFJnZ\",\"sceneFadeDuration\":\"\"},\"scenes\":{\"RYmSFJnZ\":{\"type\":\"equirectangular\",\"panorama\":\"https:\\\/\\\/niasnebraska.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/DevilsBathtub3-1-scaled.jpg\",\"pitch\":0,\"yaw\":0,\"hfov\":100,\"maxHfov\":120,\"minHfov\":50,\"hotSpots\":[]}}}];var scenes_duplicate = response_duplicate[1];if(scenes_duplicate) {var scenedata = scenes_duplicate.scenes;for(var i in scenedata) {var scenehotspot = scenedata[i].hotSpots;for(var i = 0; i < scenehotspot.length; i++) {if(scenehotspot[i][\"clickHandlerArgs\"] != \"\") {scenehotspot[i][\"clickHandlerFunc\"] = function(div, args) { if (typeof window.wpvrhotspot === \"function\") { window.wpvrhotspot(div, args); } };}if(scenehotspot[i][\"createTooltipArgs\"] != \"\") {scenehotspot[i][\"createTooltipFunc\"] = function(div, args) { if (typeof window.wpvrtooltip === \"function\") { window.wpvrtooltip(div, args); } };}}}}var vr_mode = \"off\";function initWPVRViewer22579() {if (typeof pannellum === \"undefined\" || typeof jQuery === \"undefined\") { setTimeout(initWPVRViewer22579, 50); return; }panoshow22579 = pannellum.viewer(\"pano22579\", scenes_duplicate);\n                window.wpvrViewers = window.wpvrViewers || {};\n                window.wpvrViewers[\"pano22579\"] = panoshow22579;\n                document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                    detail: { containerId: \"pano22579\", viewer: panoshow22579 }\n                }));\n            }initWPVRViewer22579();\n        var tim;\n        var im = 0;\n        var active_scene = \"RYmSFJnZ\";\n        var c_time;\n        c_time = new Date();\n        var timer = c_time.getTime() + 2000;\n       function panoShowCardBoardOnTrigger(data){\n            if(scenes_duplicate) {\n                var scenedata = scenes_duplicate.scenes;\n                for(var i in scenedata) {\n                    if(active_scene === i) {\n                        var scenehotspot = scenedata[i].hotSpots;\n                        for(var j in scenehotspot) {\n                            var plusFiveYaw = Math.round(scenehotspot[j].yaw) + 5;\n                            var minusFiveYaw = Math.round(scenehotspot[j].yaw) - 5;\n                            var plusFivePitch = Math.round(scenehotspot[j].pitch) + 5;\n                            var minusFivePitch = Math.round(scenehotspot[j].pitch) - 5;\n                            var firstCondition = ( Math.round(data.pitch) > minusFivePitch) && (Math.round(data.pitch) < plusFivePitch) ;\n                            var secCondition = (Math.round(data.yaw) > minusFiveYaw) && (Math.round(data.yaw) < plusFiveYaw);\n                            if(( Math.round(data.pitch) > minusFivePitch) && (Math.round(data.pitch) < plusFivePitch) ){\n                                if((Math.round(data.yaw) > minusFiveYaw) && (Math.round(data.yaw) < plusFiveYaw)){\n                                    jQuery(\".center-pointer\").addClass(\"wpvr-pluse-effect\")\n                                    var getScene = scenehotspot[j].sceneId;\n                                    if(scenehotspot[j].type == \"scene\"){\n                                            panoshow2579.loadScene(getScene);\n                                            panoshow22579.loadScene(getScene);\n\/\/                                            var inside_current_time_object = new Date();\n\/\/                                            var inside_timer = inside_current_time_object.getTime();\n\/\/                                            if(inside_timer > timer) {\n\/\/                                                panoshow2579.loadScene(getScene);\n\/\/                                                panoshow22579.loadScene(getScene);\n\/\/                                                jQuery(\".center-pointer\").removeClass(\"wpvr-pluse-effect\")\n\/\/                                            }\n                                    }else{\n                                        jQuery(\".center-pointer\").removeClass(\"wpvr-pluse-effect\")\n                                    }\n                                }\n                                else {\n                                    jQuery(\".center-pointer\").removeClass(\"wpvr-pluse-effect\")\n                                    c_time = new Date();\n                                    timer = c_time.getTime() + 2000;\n                                }\n                            }\n                            else {\n                                c_time = new Date();\n                                timer = c_time.getTime() + 2000;\n                            }\n                        }\n                    }\n                }\n            }\n       };\n       function vrDeviseOrientation(){\n            var data = {\n                pitch: panoshow2579.getPitch(),\n                yaw: panoshow2579.getYaw(),\n            };\n            panoShowCardBoardOnTrigger(data);\n       }\n            function requestFullScreen(){\n                var elem = document.getElementById(\"master-container\");\n                if (elem.requestFullscreen) {\n                    elem.requestFullscreen();\n                  } else if (elem.webkitRequestFullscreen) { \/* Safari *\/\n                    elem.webkitRequestFullscreen();\n                  } else if (elem.msRequestFullscreen) { \/* IE11 *\/\n                    elem.msRequestFullscreen();\n                  }\n            }\n            function requestExitFullscreen(){\n                var elem = document.getElementById(\"master-container\");\n                if (document.exitFullscreen) {\n                    document.exitFullscreen();\n                 } else if (document.webkitExitFullscreen) { \/* Safari *\/\n                    document.webkitExitFullscreen();\n                 } else if (document.msExitFullscreen) { \/* IE11 *\/\n                    document.msExitFullscreen();\n                 }\n            }\n            jQuery(document).on(\"click\",\".fullscreen-button .expand\",function() {\n                jQuery(this).hide()\n                jQuery(this).parent().find(\".compress\").show()\n                requestFullScreen()\n            });   \n            jQuery(document).on(\"click\",\".fullscreen-button .compress\",function() {\n                jQuery(this).hide()\n                jQuery(this).parent().find(\".expand\").show()\n                requestExitFullscreen()\n                screen.orientation.unlock(); \n            }); \n            let onLoadAnalytics = false;\n            let sceneLoadAnalytics = false;\n\n            function storeAnalyticsData(data) {\n                if (typeof wpvrAnalyticsObj !== \"undefined\" && typeof wpvr_public !== \"undefined\" && wpvr_public.is_pro_active) {\n                    jQuery.ajax({\n                        url: wpvrAnalyticsObj.ajaxUrl,\n                        type: \"POST\",\n                        data: {\n                            action: \"store_scene_hotspot_data\",\n                            scene_id: data.scene_id,\n                            tour_id: data.tour_id,\n                            type: data.type,\n                            hotspot_id: data.hotspot_id || \"\",\n                            user_agent: navigator.userAgent,\n                            device_type: getDeviceType() || \"desktop\",\n                            nonce: wpvrAnalyticsObj.nonce,\n                        },\n                        success: function (response) {\n                            console.log(\"Data stored successfully\");\n                        },\n                        error: function (error) {\n                            console.log(\"Error in storing data\");\n                        }\n                    });\n                } else {\n                    console.warn(\"Analytics object not available or pro not active\");\n                }\n            }\n            function getDeviceType() {\n                const userAgent = navigator.userAgent.toLowerCase();\n                if (\/mobile|android|iphone|ipad|ipod|blackberry|iemobile|opera mini\/i.test(userAgent)) {\n                    return \"mobile\";\n                } else if (\/tablet|ipad\/i.test(userAgent)) {\n                     return \"tablet\";\n                } else {\n                    return \"desktop\";\n                }\n            }\n            panoshow2579.on(\"scenechange\", function(scene) {         \n                onLoadAnalytics = true;\n                sceneLoadAnalytics = true;\n                let scene_id = scene;\n                let tour_id = 2579;\n                let type = \"scene\";\n                let hotspot_id = \"\";\n                let user_agent = navigator.userAgent;\n                let device_type = getDeviceType() ? getDeviceType() : \"desktop\";\n                storeAnalyticsData({\n                    scene_id: scene_id,\n                    tour_id: tour_id,\n                    type: type,\n                    hotspot_id: hotspot_id,\n                    user_agent: user_agent,\n                    device_type: device_type,\n                });\n            });\n            panoshow2579.on(\"load\", function() {\n                let scene_id = panoshow2579.getScene();\n                let tour_id = 2579;\n                let type = \"scene\";\n                let hotspot_id = \"\";\n                let user_agent = navigator.userAgent;\n                let device_type = getDeviceType() ? getDeviceType() : \"desktop\";\n                if(!onLoadAnalytics && !sceneLoadAnalytics) {\n                    storeAnalyticsData({\n                        scene_id: scene_id,\n                        tour_id: tour_id,\n                        type: type,\n                        hotspot_id: hotspot_id,\n                        user_agent: user_agent,\n                        device_type: device_type,\n                    });\n                }\n            });\n            function wpvrhotspotscene(hotSpotDiv, args) {\n                onLoadAnalytics = true;\n                let scene_id = panoshow2579.getScene();\n                let tour_id = 2579;\n                let type = \"hotspot\";\n                let hotspot_id = args;\n                let user_agent = navigator.userAgent;\n                let device_type = getDeviceType() ? getDeviceType() : \"desktop\";\n                storeAnalyticsData({\n                    scene_id: scene_id,\n                    tour_id: tour_id,\n                    type: type,\n                    hotspot_id: hotspot_id,\n                    user_agent: user_agent,\n                    device_type: device_type\n                });\n            }\n            panoshow2579.on(\"scenechange\", function (scene){\n            jQuery(\".center-pointer\").removeClass(\"wpvr-pluse-effect\")\n            active_scene = scene;\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"on\") {\n            if(vr_mode == \"on\") {\n                jQuery(\"#pano22579 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano2579 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n             }\n        });\n        var compassBlock = \"\";\n        var infoBlock = \"\";\n        jQuery(document).on(\"click\",\".vr_mode_change2579\",function (){\n          jQuery(\"#pano22579 .pnlm-load-button\").trigger(\"click\");\n          jQuery(\"#pano2579 .pnlm-load-button\").trigger(\"click\");\n          var getValue =   jQuery(this).val();\n          var getParent = jQuery(this).parent().parent();\n          var compass = getParent.find(\"#pano22579 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\");\n          var panoInfo = getParent.find(\"#pano2579 .pnlm-panorama-info\").css(\"display\");\n          if(compass == \"block\"){\n            compassBlock = \"block\";\n          }\n          if(panoInfo == \"block\"){\n            infoBlock = \"block\";\n          }\n            if (getValue == \"off\") {\n                requestFullScreen()\n                screen.orientation.lock(\"landscape-primary\").then(function() {\n                }).catch(function(error) {\n                    alert(\"VR Glass Mode not supported in this device\");\n                });\n                \/\/ localStorage.setItem(\"vr_mode\", \"on\");\n                vr_mode = \"on\";\n                jQuery(\".vr-mode-title\").show();\n                jQuery(this).val(\"on\");\n                getParent.find(\"#pano22579\").css({\n                    \"opacity\": \"1\", \n                    \"visibility\": \"visible\",\n                    \"position\": \"relative\",\n                });\n                gyroSwitch = true;\n                panoshow2579.startOrientation();\n                panoshow22579.startOrientation();\n                panoshow22579.setPitch(panoshow2579.getPitch(), 0);\n                panoshow22579.setYaw(panoshow2579.getYaw(), 0);\n                getParent.find(\".pano-wrap\").addClass(\"wpvr-cardboard-disable-event\");\n                getParent.find(\"#pano2579 #zoom-in-out-controls2579\").hide();\n                getParent.find(\"#pano2579 #controls2579\").hide();\n                getParent.find(\"#pano2579 #explainer_button_2579\").hide();\n                getParent.find(\"#pano2579 #generic_form_button_2579\").hide();\n                getParent.find(\"#pano2579 #floor_map_button_2579\").hide();\n                getParent.find(\"#pano2579 #vrgcontrols2579\").hide();\n                getParent.find(\"#pano2579 #sccontrols2579\").hide();\n                getParent.find(\"#pano2579 #adcontrol2579\").hide();\n                getParent.find(\"#pano2579 .wpvr_slider_nav\").hide();\n                getParent.find(\"#pano2579 #cp-logo-controls\").hide();\n                getParent.find(\"#pano2579 #wpvr-social-share-bg-box2579\").hide();\n                getParent.find(\"#pano22579 .pnlm-controls-container\").hide();\n                getParent.find(\"#pano2579 .pnlm-controls-container\").hide();\n                getParent.find(\"#pano22579 .pnlm-compass.pnlm-controls.pnlm-control\").hide();\n                getParent.find(\"#pano2579 .pnlm-compass.pnlm-controls.pnlm-control\").hide();\n                getParent.find(\"#pano22579 .pnlm-panorama-info\").hide();\n                getParent.find(\"#pano2579 .pnlm-panorama-info\").hide();\n                getParent.find(\"#pano2579\").addClass(\"cardboard-half\"); \n                getParent.find(\"#center-pointer2579\").show();\n                getParent.find(\".fullscreen-button\").hide();\n                getParent.find(\"#pano2579 #custom-scene-navigation2579\").hide();\n                if (window.DeviceOrientationEvent) {\n                    window.addEventListener(\"deviceorientation\", vrDeviseOrientation);\n                }\n                 panoshow2579.on(\"zoomchange\", function (data){\n                    panoshow22579.setHfov(data, 0);\n                });\n                panoshow22579.on(\"zoomchange\", function (data){\n                    panoshow2579.setHfov(data, 0);\n                });\n                jQuery(document).on(\"click\",\"#pano22579\",function(event) {\n                  panoshow2579.startOrientation();\n                  panoshow22579.startOrientation();\n                });\n                jQuery(document).on(\"click\",\"#pano2579\",function(event) {\n                  panoshow2579.startOrientation();\n                  panoshow22579.startOrientation();\n                });\n                panoshow2579.on(\"mousemove\", function (data){\n                    panoshow22579.setPitch(data.pitch, 0);\n                    panoshow22579.setYaw(data.yaw, 0);\n                    panoShowCardBoardOnTrigger(data);\n                });\n                panoshow22579.on(\"mousemove\", function (data){\n                    panoshow2579.setPitch(data.pitch, 0);\n                    panoshow2579.setYaw(data.yaw, 0);\n                    panoShowCardBoardOnTrigger(data);\n                });\n                panoshow2579.on(\"touchmove\", function (data){\n                    panoshow2579.stopOrientation();\n                    panoshow22579.stopOrientation();\n                    panoshow22579.setPitch(data.pitch, 0);\n                    panoshow22579.setYaw(data.yaw, 0);\n                    panoShowCardBoardOnTrigger(data);\n                });\n                panoshow22579.on(\"touchmove\", function (data){\n                    panoshow2579.stopOrientation();\n                    panoshow22579.stopOrientation();\n                    panoshow2579.setPitch(data.pitch, 0);\n                    panoshow2579.setYaw(data.yaw, 0);\n                    panoShowCardBoardOnTrigger(data);\n                });   \n            } else if(getValue == \"on\") {\n                screen.orientation.unlock();\n                requestExitFullscreen();\n                \/\/ localStorage.setItem(\"vr_mode\", \"off\");\n                vr_mode = \"off\";\n                jQuery(\".vr-mode-title\").hide();\n                jQuery(this).val(\"off\");\n                getParent.find(\"#pano22579\").css({\n                    \"opacity\": \"0\", \n                    \"visibility\": \"hidden\",\n                    \"position\": \"absolute\",\n                });\n                getParent.find(\".pano-wrap\").removeClass(\"wpvr-cardboard-disable-event\");\n                getParent.find(\"#pano2579 #zoom-in-out-controls2579\").show();\n                getParent.find(\"#pano2579 #controls2579\").show();\n                getParent.find(\"#pano2579 #explainer_button_2579\").show();\n                getParent.find(\"#pano2579 #generic_form_button_2579\").show();\n                getParent.find(\"#pano2579 #floor_map_button_2579\").show();\n                getParent.find(\"#pano22579 .pnlm-controls-container\").show();\n                getParent.find(\"#pano2579 .pnlm-controls-container\").show();\n                getParent.find(\"#pano2579 #vrgcontrols2579\").show();\n                getParent.find(\"#pano2579 #sccontrols2579\").hide();\n                getParent.find(\"#pano2579 #adcontrol2579\").show();\n                getParent.find(\"#pano2579 .wpvr_slider_nav\").hide();\n                getParent.find(\"#pano2579 #cp-logo-controls\").show();\n                getParent.find(\"#pano2579 #wpvr-social-share-bg-box2579\").show();\n                 getParent.find(\"#pano2579 #custom-scene-navigation2579\").show();\n                if(compassBlock == \"block\"){\n                    getParent.find(\"#pano22579 .pnlm-compass.pnlm-controls.pnlm-control\").show();\n                    getParent.find(\"#pano2579 .pnlm-compass.pnlm-controls.pnlm-control\").show();\n                }\n                if(infoBlock == \"block\"){\n                    getParent.find(\"#pano22579 .pnlm-panorama-info\").show();\n                    getParent.find(\"#pano2579 .pnlm-panorama-info\").show();\n                }\n                getParent.find(\"#pano2579\").removeClass(\"cardboard-half\");\n                getParent.find(\"#center-pointer2579\").hide();\n                getParent.find(\".fullscreen-button\").hide();\n                panoshow2579.off(\"mousemove\");\n                panoshow2579.off(\"touchmove\");\n                panoshow22579.off(\"mousemove\");\n                panoshow22579.off(\"touchmove\");\n                if (window.DeviceOrientationEvent) {\n                    window.removeEventListener(\"deviceorientation\", vrDeviseOrientation);\n                }\n            }\n        });panoshow22579.on(\"load\", function (){\n                \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n                if( vr_mode == \"off\") {\n                      jQuery(\".vr-mode-title\").hide();\n                    }\n                 else {\n                    jQuery(\"#pano22579 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                    jQuery(\"#pano2579 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                    jQuery(\"#pano22579 .pnlm-panorama-info\").hide();\n                    jQuery(\"#pano2579 .pnlm-panorama-info\").hide();\n                    jQuery(\".vr-mode-title\").show();\n                 }\n\t\t\t});jQuery(\"#pano2579 .wpvr-floor-map .floor-plan-pointer\").on(\"click\",function(){\n           var scene_id = jQuery(this).attr(\"scene_id\");\n           panoshow2579.loadScene(scene_id)\n           jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n           jQuery(this).addClass(\"add-pulse\")\n        });panoshow2579.on(\"mousemove\", function (data){\n            jQuery(\".add-pulse\").css({\"transform\":\"rotate(\"+data.yaw+\"deg)\"});\n        });\n    panoshow2579.on(\"scenechange\", function (scene){\n            jQuery(\".center-pointer\").removeClass(\"wpvr-pluse-effect\")\n            jQuery(\".floor-plan-pointer\").each(function(index ,element){\n                var scene_id = jQuery(this).attr(\"scene_id\");\n                if( active_scene == scene_id ){\n                    jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n                    jQuery(this).addClass(\"add-pulse\")\n                }\n            });\n        });panoshow2579.on(\"load\", function (){\n           if(jQuery(\".floor-plan-pointer\").length > 0){\n               jQuery(\".floor-plan-pointer\").each(function(index ,element){\n                    var scene_id = jQuery(this).attr(\"scene_id\");\n                    if( active_scene == scene_id ){\n                        jQuery(\".floor-plan-pointer\").removeClass(\"add-pulse\")\n                        jQuery(this).addClass(\"add-pulse\")\n                    }\n                });\n           }\n        });jQuery(\"#pano2579 .custom-scene-navigation\").on(\"click\", function() {\n                jQuery(\"#custom-scene-navigation-nav2579 ul\").empty();\n                if (scenes) {\n                    var scene_navigation_content_type = \"scene_title\";\n                    var sceneList = scenes.scenes;\n                    var getScene = panoshow2579.getScene();\n                    for (const key in sceneList) {\n                        let title;\n                        if (scene_navigation_content_type === \"scene_title\") {\n                            if (sceneList[key].title) {\n                                title = sceneList[key].title;\n                            } else {\n                                if (title == \"\" || title == undefined) {\n                                    if (sceneList[key].panorama) {\n                                        title = getImageNameWithoutExtension(sceneList[key].panorama);\n                                    }\n                                }\n                            }\n                        } else if (scene_navigation_content_type === \"scene_image_name\") {\n                            if (sceneList[key].panorama) {\n                                title = getImageNameWithoutExtension(sceneList[key].panorama);\n                            }\n                        } else {\n                            title = key;\n                        }\n                        if (sceneList.hasOwnProperty(key)) {\n                            let ulElement = document.querySelector(\"#custom-scene-navigation-nav2579 ul\");\n                            if (ulElement) {\n                                let liElement = document.createElement(\"li\");\n                                liElement.className = \"scene-navigation-list\" + (key === getScene ? \" active\" : \"\");\n                                liElement.setAttribute(\"scene_id\", key);\n                                liElement.textContent = title;\n                                ulElement.appendChild(liElement);\n                            }\n                        }\n                    }\n                    jQuery(\"#custom-scene-navigation-nav2579\").toggleClass(\"visible\");\n                }\n            });function getImageNameWithoutExtension(imageUrl) {\n                    \/\/ Split the URL by \"\/\"\n                    var parts = imageUrl.split(\"\/\");\n                    \/\/ Get the last part which contains the image name\n                    var imageNameWithExtension = parts[parts.length - 1];\n                    \/\/ Split the image name by period (.)\n                    var imageNameParts = imageNameWithExtension.split(\".\");\n                    \/\/ Remove the last part (which is the extension) and join the remaining parts\n                    var imageNameWithoutExtension = imageNameParts.slice(0, -1).join(\".\");\n                    \/\/ Return the image name without extension\n                    return imageNameWithoutExtension;\n                }jQuery(\"#pano2579 #custom-scene-navigation-nav2579 ul\").on(\"click\", \"li.scene-navigation-list\", function() {\n            if (scenes) {\n                jQuery(this).siblings(\"li\").removeClass(\"active\");\n                jQuery(this).addClass(\"active\");\n                var scene_key = jQuery(this).attr(\"scene_id\");\n                panoshow2579.loadScene(scene_key);\n            }\n        });const node = document.querySelector(\".add-pulse\");\n        panoshow2579.on(\"compasschange\", function (data){\n            \/\/ const node = document.querySelector(\".add-pulse\");\n            \/\/ node.style.transform = data;\n            \/\/ jQuery(\".add-pulse\").css({\"transform\":data});\n            });panoshow2579.on(\"load\", function (){\n            \/\/ if(localStorage.getItem(\"vr_mode\") == \"off\") {\n            if(vr_mode == \"off\") {\n                  jQuery(\".vr-mode-title\").hide();\n                } else {\n                jQuery(\"#pano22579 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano2579 .pnlm-compass.pnlm-controls.pnlm-control\").css(\"display\",\"none\");\n                jQuery(\"#pano22579 .pnlm-panorama-info\").hide();\n                jQuery(\"#pano2579 .pnlm-panorama-info\").hide();\n                jQuery(\".vr-mode-title\").show();\n             }\n            setTimeout(() => {\n                window.dispatchEvent(new Event(\"resize\"));\n            }, 200);\n\t\t\t\t\t\tif (jQuery(\"#pano2579\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n\t               jQuery(\"#controls2579\").css(\"bottom\", \"80px\");\n\t           }\n\t           else {\n\t             jQuery(\"#controls2579\").css(\"bottom\", \"5px\");\n\t           }\n\t\t\t\t\t});panoshow2579.on(\"render\", function (){\n              window.dispatchEvent(new Event(\"resize\"));\n            });if (scenes.autoRotate) {\n                        var wpvrAutoRotateTimer2579 = null;\n                        var wpvrAutoRotateStopDelay2579 = parseInt(scenes.autoRotateStopDelay, 10) || 0;\n                        var wpvrScheduleAutoRotate2579 = function () {\n                            clearTimeout(wpvrAutoRotateTimer2579);\n                            if (wpvrAutoRotateStopDelay2579 > 0) {\n                                wpvrAutoRotateTimer2579 = setTimeout(function () {\n                                    panoshow2579.stopAutoRotate();\n                                }, wpvrAutoRotateStopDelay2579);\n                            } else {\n                                wpvrAutoRotateTimer2579 = setTimeout(function () {\n                                    panoshow2579.startAutoRotate(scenes.autoRotate, 0);\n                                }, 3000);\n                            }\n                        };\n                        panoshow2579.on(\"load\", wpvrScheduleAutoRotate2579);\n                        panoshow2579.on(\"scenechange\", wpvrScheduleAutoRotate2579);\n                    }var touchtime = 0;\n            var wpvrHotspotRoot2579 = document.getElementById(\"pano2579\");\n            if (wpvrHotspotRoot2579) {\n                wpvrHotspotRoot2579.addEventListener(\"click\", function (event) {\n                    var hotspot = event.target.closest(\".pnlm-hotspot-base\");\n\n                    if (!hotspot) {\n                        return;\n                    }\n\n                    var hotspotLink = hotspot.closest(\"a[href]\");\n                    if (!hotspotLink) {\n                        hotspotLink = hotspot.querySelector(\"a[href]\");\n                    }\n\n                    if (!hotspotLink) {\n                        return;\n                    }\n\n                    event.preventDefault();\n                    event.stopImmediatePropagation();\n\n                    if ((hotspotLink.getAttribute(\"target\") || \"_blank\") === \"_self\") {\n                        window.location.assign(hotspotLink.href);\n                    } else {\n                        window.open(hotspotLink.href, \"_blank\", \"noopener,noreferrer\");\n                    }\n                }, true);\n            }\n        jQuery(document).on(\"click\",\"#explainer_button_2579\",function() {\n                    jQuery(\"#explainer2579\").slideToggle(function(){\n                    var $explainerVideoId = jQuery(\"#explainer2579\");\n                    var $explainerVideoIframe = $explainerVideoId.find(\"iframe\");\n                    var explainerVideoIframSrc = $explainerVideoIframe.attr(\"src\");\n                    $explainerVideoIframe.attr(\"src\", \"\");\n                    $explainerVideoIframe.attr(\"src\", explainerVideoIframSrc);\n        });\n            });\n            jQuery(document).on(\"click\", \".close-explainer-video\", function() {\n              var $explainer = jQuery(this).parent(\".explainer\");\n              var $iframe = $explainer.find(\"iframe\");\n              var el_src = $iframe.attr(\"src\");\n              $iframe.attr(\"src\", \"\");\n              $explainer.hide();\n              $iframe.attr(\"src\", el_src);\n            });\n      jQuery(document).on(\"click\",\"#pano2579\",function(event) {\n        var isActiveModal = event.target.closest(\".custom-ifram-wrapper\");\n        var isForm = event.target.closest(\".wpvr-hotspot-tweak-contents\");\n        var isHotspot = event.target.closest(\".pnlm-hotspot-base\");\n        if(isForm != null){\n            jQuery(this).addClass(\"show-modal\");\n        }else if(isActiveModal == null){\n            if(isHotspot == null){\n                jQuery(\".custom-ifram-wrapper .custom-ifram\").empty();\n                jQuery(\".custom-ifram-wrapper\").hide();\n                jQuery(this).removeClass(\"show-modal\");\n                jQuery(\".wpvr-hotspot-tweak-contents-wrapper\").hide(\"show-modal\");\n            }\n        }\n      });jQuery(document).on(\"click\",\"#floor_map_button_2579\",function() {\n                jQuery(\"#wpvr-floor-map2579\").toggle().removeClass(\"fullwindow\");\n              });\n              jQuery(document).on(\"dblclick\",\"#wpvr-floor-map2579\",function(){\n                jQuery(this).addClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").addClass(\"show-modal\");\n              });\n              jQuery(document).on(\"click\",\".close-floor-map-plan\",function() {\n                jQuery(this).parent(\".wpvr-floor-map\").hide();\n                jQuery(this).parent(\".wpvr-floor-map\").removeClass(\"fullwindow\");\n                jQuery(this).parents(\".pano-wrap\").removeClass(\"show-modal\");\n              });jQuery(document).ready(function($){\n\t\t              jQuery(\"#sccontrols2579\").hide();\n                      jQuery(\"#pano2579 .wpvr_slider_nav\").hide();\n\t\t              jQuery(\".vrgctrl2579\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t          });var slide2579 = \"down\";\n\t\t          jQuery(document).on(\"click\",\"#vrgcontrols2579\",function() {\n\t\t            if (slide2579 == \"up\") {\n\t\t              jQuery(\".vrgctrl2579\").empty();\n\t\t              jQuery(\".vrgctrl2579\").html('<i class=\"fa fa-angle-up\"><\/i>');\n\t\t              slide2579 = \"down\";\n\t\t            }\n\t\t            else {\n\t\t              jQuery(\".vrgctrl2579\").empty();\n\t\t              jQuery(\".vrgctrl2579\").html('<i class=\"fa fa-angle-down\"><\/i>');\n\t\t              slide2579 = \"up\";\n\t\t            }\n                    jQuery(\"#pano2579 .wpvr_slider_nav\").slideToggle(); \n                    jQuery(\"#sccontrols2579\").slideToggle(function(){\n                        if (jQuery(\".elementor-edit-mode .elementor-widget-container\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                                jQuery(\".elementor-edit-mode  .elementor-widget-container .wpvr-cardboard .pnlm-container #sccontrols2579\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\",\n                                    \"gap\": \"15px\"\n                                });\n                            }\n                        }\n                        if (jQuery(\".bricks-is-frontend\").length) {\n                            if (jQuery(this).is(\":visible\")) {\n                            jQuery(\".bricks-is-frontend .wpvr-cardboard .pnlm-container #sccontrols2579\").css({\n                                    \"display\": \"flex\",\n                                    \"justify-content\": \"center\",\n                                    \"align-items\": \"center\"\n                                });\n                            }\n                        }              \n                    });\n          });jQuery(\".elementor-tab-title\").click(function(){\n                      var element_id;\n                      var pano_id;\n                      var element_id = this.id;\n                      element_id = element_id.split(\"-\");\n                      element_id = element_id[3];\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).addClass(\"awwww\");\n                      var pano_id = jQuery(\".awwww\").attr(\"id\");\n                      jQuery(\"#elementor-tab-content-\"+element_id).find(\"#master-container\").children(\"div\").eq(1).removeClass(\"awwww\");;\n                      if (pano_id != undefined) {\n                        pano_id = pano_id.split(\"o\");\n                        pano_id = pano_id[1];\n                        if (pano_id == \"2579\") {\n                          jQuery(\"#pano2579\").children(\".pnlm-render-container\").remove();\n                          jQuery(\"#pano2579\").children(\".pnlm-ui\").remove();\n                          panoshow2579 = pannellum.viewer(response[0][\"panoid\"], scenes);\n                          window.wpvrViewers = window.wpvrViewers || {};\n                          window.wpvrViewers[response[0][\"panoid\"]] = panoshow2579;\n                          document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                              detail: { containerId: response[0][\"panoid\"], viewer: panoshow2579 }\n                          }));\n                          jQuery(\"#pano2579\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n                          setTimeout(function() {\n                                \/\/   panoshow2579.loadScene(\"RYmSFJnZ\");\n                                  window.dispatchEvent(new Event(\"resize\"));\n                                  if (jQuery(\"#pano2579\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                                       jQuery(\"#controls2579\").css(\"bottom\", \"55px\");\n                                   } else {\n                                     jQuery(\"#controls2579\").css(\"bottom\", \"5px\");\n                                   }\n                          }, 200);\n                        }\n                      }\n            });jQuery(\".geodir-tab-head dd, #vr-tour-tab\").click(function(){\n              jQuery(\"#pano2579\").children(\".pnlm-render-container\").remove();\n              jQuery(\"#pano2579\").children(\".pnlm-ui\").remove();\n              panoshow2579 = pannellum.viewer(response[0][\"panoid\"], scenes);\n              window.wpvrViewers = window.wpvrViewers || {};\n              window.wpvrViewers[response[0][\"panoid\"]] = panoshow2579;\n              document.dispatchEvent(new CustomEvent(\"wpvr:viewer-ready\", {\n                  detail: { containerId: response[0][\"panoid\"], viewer: panoshow2579 }\n              }));\n              setTimeout(function() {\n                      panoshow2579.loadScene(\"RYmSFJnZ\");\n                      window.dispatchEvent(new Event(\"resize\"));\n                      if (jQuery(\"#pano2579\").children().children(\".pnlm-panorama-info:visible\").length > 0) {\n                           jQuery(\"#controls2579\").css(\"bottom\", \"55px\");\n                       }\n                       else {\n                         jQuery(\"#controls2579\").css(\"bottom\", \"5px\");\n                       }\n              }, 200);\n            });\n            jQuery(\"#pano2579\").children(\".pnlm-ui\").find(\".pnlm-load-button p\").text(\"Click To Load Panorama\")\n            jQuery(\"#pano2579 .pnlm-title-box\").on(\"mouseenter\", function(){\n                jQuery(this).attr(\"title\", jQuery(this).text());\n            });\n            jQuery(\"#pano2579 .pnlm-title-box\").on(\"mouseleave\", function(){\n                jQuery(this).removeAttr(\"title\");\n            });});})(jQuery);<\/script>\n<script id=\"wpvr-scene-info-script-2579\">\n            (function () {\n                var pano = document.getElementById(\"pano2579\");\n                var byLabel = \"By\";\n\n                if (!pano || !window.MutationObserver) {\n                    return;\n                }\n\n                function addAuthorLabel(author) {\n                    if (!author || !author.textContent.trim() || author.querySelector(\".wpvr-author-label\")) {\n                        return;\n                    }\n\n                    var firstNode = author.firstChild;\n                    if (firstNode && firstNode.nodeType === 3) {\n                        var prefix = byLabel + \" \";\n                        if (firstNode.nodeValue.indexOf(prefix) === 0) {\n                            firstNode.nodeValue = firstNode.nodeValue.slice(prefix.length);\n                        }\n                    }\n\n                    var label = document.createElement(\"span\");\n                    label.className = \"wpvr-author-label\";\n                    label.textContent = byLabel;\n                    author.insertBefore(label, author.firstChild);\n                }\n\n                function syncSceneInfo() {\n                    var info = pano.querySelector(\".pnlm-panorama-info\");\n                    if (!info) {\n                        return;\n                    }\n\n                    \/\/ Keep the Pannellum full-screen drag layer in its original\n                    \/\/ stacking order so hotspots remain clickable. Promote only\n                    \/\/ the compact metadata bar to the tour root instead.\n                    if (info.parentNode !== pano) {\n                        pano.appendChild(info);\n                    }\n\n                    var title = info.querySelector(\".pnlm-title-box\");\n                    var author = info.querySelector(\".pnlm-author-box\");\n                    var hasTitle = !!(title && title.textContent.trim());\n                    var hasAuthor = !!(author && author.textContent.trim());\n\n                    if (hasTitle) {\n                        title.setAttribute(\"title\", title.textContent.trim());\n                    } else if (title) {\n                        title.removeAttribute(\"title\");\n                    }\n\n                    if (hasAuthor) {\n                        addAuthorLabel(author);\n                        var authorName = author.textContent.replace(byLabel, \"\").trim();\n                        author.setAttribute(\"aria-label\", byLabel + \" \" + authorName);\n                        author.setAttribute(\"title\", authorName);\n                    } else if (author) {\n                        author.removeAttribute(\"aria-label\");\n                        author.removeAttribute(\"title\");\n                    }\n\n                    info.classList.toggle(\"wpvr-scene-info-row\", hasTitle || hasAuthor);\n                    info.classList.toggle(\"wpvr-has-title\", hasTitle);\n                    info.classList.toggle(\"wpvr-has-author\", hasAuthor);\n                    info.style.display = hasTitle || hasAuthor ? \"flex\" : \"none\";\n\n                    var hasSceneInfo = hasTitle || hasAuthor;\n                    var isClassicLayout = true;\n                    pano.classList.toggle(\"wpvr-has-scene-info\", hasSceneInfo);\n                    pano.classList.toggle(\"wpvr-layout-classic\", isClassicLayout);\n\n                    if (hasSceneInfo) {\n                        pano.style.setProperty(\"--wpvr-scene-info-height\", info.offsetHeight + \"px\");\n                    } else {\n                        pano.style.removeProperty(\"--wpvr-scene-info-height\");\n                    }\n                }\n\n                var observer = new MutationObserver(syncSceneInfo);\n                observer.observe(pano, { childList: true, subtree: true, characterData: true });\n                syncSceneInfo();\n            }());\n        <\/script>\n\n\n<p class=\"wp-block-paragraph\">The following video is a 360 video we took of Spearfish Canyon while driving through.  If this doesn&#8217;t look good, your browser may not support it.  If you open it in the YouTube app, you should be able to look around as we drive through.  Good Luck!<\/p>\n\n\n<div style=\"text-align:center; max-width:100%; width:600px; height:400px; border-radius: 0px; margin: 0 auto;\"><div id=\"video-container-76932-container\" style=\"position:relative; width:100%; height:100%;\"><div id=\"video-container-76932-compatibility-check\" style=\"position:absolute; top:0; left:0; width:100%; height:100%; display:none; pointer-events:none; flex-direction:column; justify-content:center; align-items:center; background-color:#f9f9f9; border-radius:0px;\">\n                    <div style=\"margin-bottom:20px; text-align:center;\">\n                        <div class=\"wpvr-loading-spinner\" style=\"border:5px solid #f3f3f3; border-top:5px solid #3498db; border-radius:50%; width:50px; height:50px; margin:0 auto 15px; animation:wpvr-spin 1s linear infinite;\"><\/div>\n                        <p style=\"margin:0;\">Checking browser compatibility&#8230;<\/p>\n                    <\/div>\n                   <\/div><style>@keyframes wpvr-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }<\/style><div id=\"video-container-76932-frame\" style=\"text-align:center; max-width:100%; width:600px; height:400px; border-radius:0px; margin: 0 auto; display:block;\"><iframe loading=\"lazy\" id=\"video-container-76932-iframe\" src=\"https:\/\/www.youtube.com\/embed\/HnfIRoJA4lw?rel=0&#038;modestbranding=1&#038;autohide=1&#038;showinfo=0&#038;controls=0&#038;playlist=HnfIRoJA4lw&#038;enablejsapi=1&#038;playsinline=1&#038;html5=1&#038;origin=https%3A%2F%2Fniasnebraska.com\" width=\"100%\" height=\"100%\" style=\"border-radius:0px;\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; xr-spatial-tracking\"><\/iframe><\/div><div id=\"video-container-76932-drag-surface\" style=\"position:absolute; top:60px; left:0; right:0; bottom:48px; display:none; pointer-events:none; cursor:grab; z-index:3; background:transparent;\"><\/div><div id=\"video-container-76932-controls\" style=\"display:none; position:absolute; bottom:0; left:0; right:0; height:48px; z-index:5; pointer-events:auto; background:linear-gradient(transparent, rgba(0,0,0,0.7)); align-items:center; padding:0 8px; gap:6px; box-sizing:border-box;\"><button type=\"button\" id=\"video-container-76932-play-btn\" style=\"width:36px; height:36px; border:none; background:transparent; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center; flex-shrink:0;\" title=\"Play\"><svg id=\"video-container-76932-play-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M8 5v14l11-7z\"\/><\/svg><\/button><span id=\"video-container-76932-time-current\" style=\"color:#fff; font-size:12px; font-family:Arial,sans-serif; min-width:36px; text-align:center; user-select:none;\">0:00<\/span><div id=\"video-container-76932-progress-wrap\" style=\"flex:1; height:4px; background:rgba(255,255,255,0.3); border-radius:2px; cursor:pointer; position:relative;\"><div id=\"video-container-76932-progress-buffered\" style=\"position:absolute; top:0; left:0; height:100%; background:rgba(255,255,255,0.4); border-radius:2px; pointer-events:none;\"><\/div><div id=\"video-container-76932-progress-bar\" style=\"position:absolute; top:0; left:0; height:100%; background:#ff0000; border-radius:2px; pointer-events:none;\"><\/div><div id=\"video-container-76932-progress-thumb\" style=\"position:absolute; top:50%; left:0; width:12px; height:12px; background:#ff0000; border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; display:none;\"><\/div><\/div><span id=\"video-container-76932-time-duration\" style=\"color:#fff; font-size:12px; font-family:Arial,sans-serif; min-width:36px; text-align:center; user-select:none;\">0:00<\/span><button id=\"video-container-76932-mute-btn\" style=\"width:36px; height:36px; border:none; background:transparent; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center; flex-shrink:0; position:relative;\" title=\"Mute\"><svg id=\"video-container-76932-vol-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0014 8.14v7.72c1.48-.73 2.5-2.25 2.5-3.86zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"\/><\/svg><\/button><style>#video-container-76932-vol-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;cursor:pointer;margin-top:-5px;}#video-container-76932-vol-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:none;cursor:pointer;}#video-container-76932-vol-slider::-webkit-slider-runnable-track{height:4px;border-radius:4px;}#video-container-76932-vol-slider::-moz-range-track{height:4px;border-radius:4px;background:rgba(255,255,255,0.3);}<\/style><div id=\"video-container-76932-vol-slider-wrap\" style=\"display:none; align-items:center; height:40px; padding:0px 4px;\"><input id=\"video-container-76932-vol-slider\" type=\"range\" min=\"0\" max=\"100\" value=\"100\" style=\"width:80px; height:4px; cursor:pointer; -webkit-appearance:none; appearance:none; background:linear-gradient(to right,#fff 100%,rgba(255,255,255,0.3) 100%); border-radius:4px; outline:none; padding:0;\" \/><\/div><button id=\"video-container-76932-fs-btn\" style=\"width:36px; height:36px; border:none; background:transparent; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center; flex-shrink:0;\" title=\"Toggle fullscreen\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\/><\/svg><\/button><\/div><div id=\"video-container-76932-browser-warning\" style=\"position:absolute; top:0; left:0; width:100%; height:100%; display:none; pointer-events:none; flex-direction:column; justify-content:center; align-items:center; background-color:rgba(0,0,0,0.7); color:white; text-align:center; border-radius:0px;\"><p id=\"video-container-76932-warning-text\" style=\"font-size:16px; margin:0 20px 5px;\"><\/p><p style=\"font-size:14px; margin:5px 20px 15px;\">For the best experience, use a browser with WebGL support.<\/p><button id=\"video-container-76932-browser-continue\" style=\"padding:10px 15px; background-color:#0085ba; color:#fff; border:none; border-radius:4px; cursor:pointer;\">Continue Anyway<\/button><\/div><div id=\"video-container-76932-iphone-fallback\" style=\"position:absolute; top:0; left:0; width:100%; height:100%; display:none; pointer-events:none; flex-direction:column; justify-content:center; align-items:center; background-color:rgba(0,0,0,0.75); color:white; text-align:center; border-radius:0px;\"><p id=\"video-container-76932-mobile-fallback-title\" style=\"font-size:16px; margin:0 20px 8px;\">YouTube 360 is limited in mobile browser embeds.<\/p><p id=\"video-container-76932-mobile-fallback-description\" style=\"font-size:14px; margin:0 20px 15px;\">For proper 360 playback, open this video in the YouTube app.<\/p><a id=\"video-container-76932-iphone-open\" href=\"https:\/\/www.youtube.com\/watch?v=HnfIRoJA4lw\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color:rgba(255,255,255,0.85); text-decoration:underline; font-size:12px; margin-bottom:8px;\">Open in YouTube<\/a><a id=\"video-container-76932-iphone-continue\" href=\"#\" style=\"color:rgba(255,255,255,0.75); text-decoration:underline; font-size:12px;\">Show Here Anyway<\/a><\/div><\/div><\/div>\n<script>\n        function wpvr_check_360_support() {\n            var support = {\n                supported: false,\n                fullySupported: false,\n                webgl: false,\n                orientation: false,\n                gyroscope: false,\n                touch: false,\n                browser: \"unknown\",\n                isMobile: false,\n                isIPhone: false,\n                isAndroid: false,\n                details: []\n            };\n\n            \/\/ Detect mobile devices\n            support.isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);\n            support.isIPhone = \/iPhone\/i.test(navigator.userAgent);\n            support.isAndroid = \/Android\/i.test(navigator.userAgent);\n            if (support.isMobile) {\n                support.details.push(\"Mobile device detected\");\n            }\n            if (support.isIPhone) {\n                support.details.push(\"iPhone detected\");\n            }\n            if (support.isAndroid) {\n                support.details.push(\"Android device detected\");\n            }\n\n            \/\/ Browser detection\n            var ua = navigator.userAgent;\n            if (\/^((?!chrome|android).)*safari\/i.test(ua)) {\n                support.browser = \"safari\";\n                support.details.push(\"Safari browser detected\");\n            } else if (ua.indexOf(\"Chrome\") > -1) {\n                support.browser = \"chrome\";\n                support.details.push(\"Chrome browser detected\");\n            } else if (ua.indexOf(\"Firefox\") > -1) {\n                support.browser = \"firefox\";\n                support.details.push(\"Firefox browser detected\");\n            } else if (ua.indexOf(\"MSIE\") > -1 || ua.indexOf(\"Trident\") > -1) {\n                support.browser = \"ie\";\n                support.details.push(\"Internet Explorer detected\");\n            } else if (ua.indexOf(\"Edge\") > -1 || ua.indexOf(\"Edg\") > -1) {\n                support.browser = \"edge\";\n                support.details.push(\"Edge browser detected\");\n            } else if (ua.indexOf(\"Opera\") > -1 || ua.indexOf(\"OPR\") > -1) {\n                support.browser = \"opera\";\n                support.details.push(\"Opera browser detected\");\n            }\n\n            \/\/ Check WebGL support\n            try {\n                var canvas = document.createElement(\"canvas\");\n                support.webgl = !!(window.WebGLRenderingContext &&\n                    (canvas.getContext(\"webgl\") || canvas.getContext(\"experimental-webgl\")));\n\n                if (support.webgl) {\n                    support.details.push(\"WebGL supported\");\n                } else {\n                    support.details.push(\"WebGL not supported\");\n                }\n            } catch (e) {\n                support.webgl = false;\n                support.details.push(\"WebGL detection error: \" + e.message);\n            }\n\n            \/\/ Check device orientation support\n            support.orientation = !!(window.DeviceOrientationEvent);\n            if (support.orientation) {\n                support.details.push(\"Device Orientation API supported\");\n            } else {\n                support.details.push(\"Device Orientation API not supported\");\n            }\n\n            \/\/ Check for gyroscope\n            if (window.Gyroscope) {\n                support.gyroscope = true;\n                support.details.push(\"Gyroscope supported\");\n            } else {\n                support.details.push(\"Gyroscope not supported\");\n            }\n\n            \/\/ Check touch support for mobile interaction\n            support.touch = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n            if (support.touch) {\n                support.details.push(\"Touch supported\");\n            } else {\n                support.details.push(\"Touch not supported\");\n            }\n\n            \/\/ Overall support determination\n            support.supported = support.webgl;\n            \n            \/\/ Full support means WebGL + orientation on mobile or WebGL on desktop\n            support.fullySupported = support.webgl;\n\n            \/\/ Browser-specific warnings\n                if (support.browser === \"ie\") {\n                support.browserWarning = \"Internet Explorer has limited support for 360 videos. The experience may not be optimal.\";\n                support.fullySupported = false;\n            } else if (!support.supported) {\n                support.browserWarning = \"Your browser does not fully support 360\u00b0 videos. For the best experience, please use a modern browser with WebGL support.\";\n            }\n\n            return support;\n        }\n    <\/script>\n<script>\n        \/\/ Wait for DOM to be fully loaded\n        document.addEventListener(\"DOMContentLoaded\", function() {\n            var playerInitialised = false;\n            var ytPlayer = null;\n            var dragSurface = document.getElementById(\"video-container-76932-drag-surface\");\n            var isDragging = false;\n            var dragStartX = 0;\n            var dragStartY = 0;\n            var dragStartView = null;\n\n            function clamp(value, min, max) {\n                return Math.min(Math.max(value, min), max);\n            }\n\n            function getSphericalView() {\n                if (!ytPlayer || typeof ytPlayer.getSphericalProperties !== \"function\") {\n                    return null;\n                }\n\n                var view = ytPlayer.getSphericalProperties();\n                return view && Object.keys(view).length ? view : null;\n            }\n\n            function setDragSurfaceEnabled(enabled) {\n                if (!dragSurface) {\n                    return;\n                }\n\n                dragSurface.style.display = enabled ? \"block\" : \"none\";\n                dragSurface.style.pointerEvents = enabled ? \"auto\" : \"none\";\n            }\n\n            function getEventPoint(event) {\n                if (event.touches && event.touches.length) {\n                    return event.touches[0];\n                }\n\n                if (event.changedTouches && event.changedTouches.length) {\n                    return event.changedTouches[0];\n                }\n\n                return event;\n            }\n\n            function beginDrag(event) {\n                var point = getEventPoint(event);\n                var sphericalView = getSphericalView();\n\n                if (!sphericalView || !point) {\n                    return;\n                }\n\n                event.preventDefault();\n                dragStartX = point.clientX;\n                dragStartY = point.clientY;\n                dragStartView = sphericalView;\n                dragSurface.style.cursor = \"grabbing\";\n            }\n\n            function updateDrag(event) {\n                var deltaX;\n                var deltaY;\n                var nextView;\n                var point = getEventPoint(event);\n\n                if (!point) {\n                    return;\n                }\n\n                if (!isDragging && dragStartView) {\n                    deltaX = point.clientX - dragStartX;\n                    deltaY = point.clientY - dragStartY;\n                    if (Math.sqrt(deltaX * deltaX + deltaY * deltaY) > 5) {\n                        isDragging = true;\n                    }\n                }\n\n                if (!isDragging || !dragStartView || !ytPlayer || typeof ytPlayer.setSphericalProperties !== \"function\") {\n                    return;\n                }\n\n                event.preventDefault();\n                deltaX = point.clientX - dragStartX;\n                deltaY = point.clientY - dragStartY;\n\n                nextView = {\n                    yaw: (dragStartView.yaw || 0) + (deltaX * 0.2),\n                    pitch: clamp((dragStartView.pitch || 0) + (deltaY * 0.2), -85, 85),\n                    roll: dragStartView.roll || 0,\n                    fov: dragStartView.fov || 100\n                };\n\n                ytPlayer.setSphericalProperties(nextView);\n            }\n\n            function endDrag() {\n                if (!isDragging && dragStartView && ytPlayer) {\n                    var playerState = ytPlayer.getPlayerState();\n                    if (playerState === 1) {\n                        ytPlayer.pauseVideo();\n                    } else {\n                        ytPlayer.playVideo();\n                    }\n                }\n                isDragging = false;\n                dragStartView = null;\n                if (dragSurface) {\n                    dragSurface.style.cursor = \"grab\";\n                }\n            }\n\n            function update360DragAvailability() {\n                var sphericalView = getSphericalView();\n                setDragSurfaceEnabled(!!sphericalView);\n            }\n\n            function schedule360AvailabilityChecks() {\n                update360DragAvailability();\n                window.setTimeout(update360DragAvailability, 500);\n                window.setTimeout(update360DragAvailability, 1500);\n                window.setTimeout(update360DragAvailability, 3000);\n            }\n\n            if (dragSurface) {\n                dragSurface.addEventListener(\"mousedown\", function(event) {\n                    beginDrag(event);\n                });\n\n                dragSurface.addEventListener(\"touchstart\", function(event) {\n                    beginDrag(event);\n                }, { passive: false });\n\n                dragSurface.addEventListener(\"dragstart\", function(event) {\n                    event.preventDefault();\n                });\n\n                window.addEventListener(\"mousemove\", function(event) {\n                    updateDrag(event);\n                });\n\n                window.addEventListener(\"touchmove\", function(event) {\n                    updateDrag(event);\n                }, { passive: false });\n\n                window.addEventListener(\"mouseup\", function() {\n                    endDrag();\n                });\n\n                window.addEventListener(\"touchend\", function() {\n                    endDrag();\n                });\n\n                window.addEventListener(\"touchcancel\", function() {\n                    endDrag();\n                });\n            }\n\n            function wpvrLoadYouTubeApi(callback) {\n                window.wpvrYoutubeApiCallbacks = window.wpvrYoutubeApiCallbacks || [];\n\n                if (window.YT && window.YT.Player) {\n                    callback();\n                    return;\n                }\n\n                window.wpvrYoutubeApiCallbacks.push(callback);\n\n                if (window.wpvrYoutubeApiLoading) {\n                    return;\n                }\n\n                window.wpvrYoutubeApiLoading = true;\n\n                var previousReady = window.onYouTubeIframeAPIReady;\n                window.onYouTubeIframeAPIReady = function() {\n                    if (typeof previousReady === \"function\") {\n                        previousReady();\n                    }\n\n                    var callbacks = window.wpvrYoutubeApiCallbacks || [];\n                    while (callbacks.length) {\n                        var queuedCallback = callbacks.shift();\n                        if (typeof queuedCallback === \"function\") {\n                            queuedCallback();\n                        }\n                    }\n                };\n\n                var tag = document.createElement(\"script\");\n                tag.src = \"https:\/\/www.youtube.com\/iframe_api\";\n                var firstScriptTag = document.getElementsByTagName(\"script\")[0];\n                firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n            }\n\n            function initializeYouTubePlayer() {\n                if (playerInitialised) {\n                    return;\n                }\n\n                wpvrLoadYouTubeApi(function() {\n                    if (playerInitialised || !(window.YT && window.YT.Player)) {\n                        return;\n                    }\n\n                    ytPlayer = new YT.Player(\"video-container-76932-iframe\", {\n                        events: {\n                            onReady: function() {\n                                schedule360AvailabilityChecks();\n                                startProgressLoop();\n                                scheduleIPhoneFallbackCheck();\n                            },\n                            onStateChange: function() {\n                                schedule360AvailabilityChecks();\n                                startProgressLoop();\n                                scheduleIPhoneFallbackCheck();\n                            }\n                        }\n                    });\n                    playerInitialised = true;\n                });\n            }\n\n            \/\/ Check compatibility first\n            var supportInfo = wpvr_check_360_support();\n            var frameContainer = document.getElementById(\"video-container-76932-frame\");\n            let compatibilityCheck = document.getElementById(\"video-container-76932-compatibility-check\");\n            var iphoneFallback = document.getElementById(\"video-container-76932-iphone-fallback\");\n            var iphoneContinue = document.getElementById(\"video-container-76932-iphone-continue\");\n            var mobileFallbackTitle = document.getElementById(\"video-container-76932-mobile-fallback-title\");\n            var mobileFallbackDescription = document.getElementById(\"video-container-76932-mobile-fallback-description\");\n\n            function updateMobileFallbackContent() {\n                if (!mobileFallbackTitle || !mobileFallbackDescription) {\n                    return;\n                }\n\n                if (supportInfo.isIPhone) {\n                    mobileFallbackTitle.textContent = \"YouTube 360 is limited in iPhone Safari embeds.\";\n                    mobileFallbackDescription.textContent = \"For proper 360 playback, open this video in the YouTube app.\";\n                } else if (supportInfo.isAndroid) {\n                    mobileFallbackTitle.textContent = \"YouTube 360 is limited in Android browser embeds.\";\n                    mobileFallbackDescription.textContent = \"For reliable 360 playback, open this video in the YouTube app.\";\n                } else {\n                    mobileFallbackTitle.textContent = \"YouTube 360 is limited in mobile browser embeds.\";\n                    mobileFallbackDescription.textContent = \"For proper 360 playback, open this video in the YouTube app.\";\n                }\n            }\n\n            function hideIPhoneFallback() {\n                if (!iphoneFallback) {\n                    return;\n                }\n\n                iphoneFallback.style.display = \"none\";\n                iphoneFallback.style.pointerEvents = \"none\";\n            }\n\n            function showIPhoneFallback() {\n                if (!iphoneFallback) {\n                    return;\n                }\n\n                frameContainer.style.display = \"none\";\n                iphoneFallback.style.display = \"flex\";\n                iphoneFallback.style.pointerEvents = \"auto\";\n            }\n\n            function scheduleIPhoneFallbackCheck() {\n                if (!supportInfo.isIPhone && !supportInfo.isAndroid) {\n                    return;\n                }\n\n                updateMobileFallbackContent();\n\n                window.setTimeout(function() {\n                    if (!getSphericalView()) {\n                        showIPhoneFallback();\n                    }\n                }, 1800);\n            }\n\n            if (iphoneContinue) {\n                iphoneContinue.addEventListener(\"click\", function(event) {\n                    event.preventDefault();\n                    hideIPhoneFallback();\n                    showVideo();\n                });\n            }\n\n            if (supportInfo.isMobile && !supportInfo.fullySupported) {\n                compatibilityCheck.style.display = \"flex\";\n                compatibilityCheck.style.pointerEvents = \"auto\";\n            }\n            \/\/ Check browser compatibility and handle overlays accordingly.\n            \/\/ The iframe is already visible by default so the YouTube 360\u00b0 WebGL\n            \/\/ renderer gets the correct dimensions during initialisation.\n            setTimeout(function() {\n                document.getElementById(\"video-container-76932-compatibility-check\").style.display = \"none\";\n                document.getElementById(\"video-container-76932-compatibility-check\").style.pointerEvents = \"none\";\n                \/\/ If browser doesn't support 360 videos well, hide the iframe and show warning\n                if (!supportInfo.supported || supportInfo.browserWarning) {\n                    document.getElementById(\"video-container-76932-frame\").style.display = \"none\";\n                    document.getElementById(\"video-container-76932-warning-text\").textContent = \n                        supportInfo.browserWarning || \"Your browser may not fully support 360\u00b0 videos.\";\n                    var warningEl = document.getElementById(\"video-container-76932-browser-warning\");\n                    warningEl.style.display = \"flex\";\n                    warningEl.style.pointerEvents = \"auto\";\n                    \n                    \/\/ Add continue anyway button handler\n                    document.getElementById(\"video-container-76932-browser-continue\").addEventListener(\"click\", function() {\n                        warningEl.style.display = \"none\";\n                        warningEl.style.pointerEvents = \"none\";\n                        showVideo();\n                    });\n                }\n                \/\/ Otherwise (supported desktop browser): iframe is already visible, nothing to do.\n                else {\n                    initializeYouTubePlayer();\n                }\n            }, 500);\n\n            function showVideo() {\n                hideIPhoneFallback();\n                frameContainer.style.display = \"block\";\n                initializeYouTubePlayer();\n            }\n\n            \/\/ === Custom control bar logic ===\n            var outerContainer = document.getElementById(\"video-container-76932-container\");\n            var controlBar = document.getElementById(\"video-container-76932-controls\");\n            var playBtn = document.getElementById(\"video-container-76932-play-btn\");\n            var playIcon = document.getElementById(\"video-container-76932-play-icon\");\n            var timeCurrent = document.getElementById(\"video-container-76932-time-current\");\n            var timeDuration = document.getElementById(\"video-container-76932-time-duration\");\n            var progressWrap = document.getElementById(\"video-container-76932-progress-wrap\");\n            var progressBar = document.getElementById(\"video-container-76932-progress-bar\");\n            var progressBuffered = document.getElementById(\"video-container-76932-progress-buffered\");\n            var progressThumb = document.getElementById(\"video-container-76932-progress-thumb\");\n            var fsBtn = document.getElementById(\"video-container-76932-fs-btn\");\n            var frameEl = document.getElementById(\"video-container-76932-frame\");\n            var muteBtn = document.getElementById(\"video-container-76932-mute-btn\");\n            var volSlider = document.getElementById(\"video-container-76932-vol-slider\");\n            var volSliderWrap = document.getElementById(\"video-container-76932-vol-slider-wrap\");\n            var volIcon = document.getElementById(\"video-container-76932-vol-icon\");\n\n            var playPath = \"M8 5v14l11-7z\";\n            var pausePath = \"M6 19h4V5H6v14zm8-14v14h4V5h-4z\";\n            var volIconMuted = \"M16.5 12A4.5 4.5 0 0014 8.14v2.07l2.45 2.45c.03-.21.05-.43.05-.66zm2.5 0c0 .93-.21 1.82-.58 2.61l1.47 1.47A8.94 8.94 0 0021 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 003.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\";\n            var volIconLow = \"M7 9v6h4l5 5V4L7 9z\";\n            var volIconMed = \"M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0014 8.14v7.72c1.48-.73 2.5-2.25 2.5-3.86z\";\n            var volIconHigh = \"M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0014 8.14v7.72c1.48-.73 2.5-2.25 2.5-3.86zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\";\n\n            function formatTime(sec) {\n                if (!sec || isNaN(sec)) return \"0:00\";\n                sec = Math.floor(sec);\n                var m = Math.floor(sec \/ 60);\n                var s = sec % 60;\n                return m + \":\" + (s < 10 ? \"0\" : \"\") + s;\n            }\n\n            \/\/ Show control bar once player exists\n            if (controlBar) controlBar.style.display = \"flex\";\n\n            \/\/ --- Play \/ Pause ---\n            if (playBtn) {\n                playBtn.addEventListener(\"click\", function() {\n                    if (!ytPlayer) return;\n                    var state = ytPlayer.getPlayerState();\n                    if (state === 1) { ytPlayer.pauseVideo(); }\n                    else { ytPlayer.playVideo(); }\n                });\n            }\n\n            function updatePlayIcon() {\n                if (!ytPlayer || !playIcon) return;\n                var state = ytPlayer.getPlayerState();\n                playIcon.querySelector(\"path\").setAttribute(\"d\", state === 1 ? pausePath : playPath);\n            }\n\n            \/\/ --- Progress bar ---\n            var progressAnimId = null;\n            var isSeeking = false;\n            var progressLoopStarted = false;\n\n            function startProgressLoop() {\n                if (progressLoopStarted) return;\n                progressLoopStarted = true;\n                progressAnimId = requestAnimationFrame(updateProgress);\n            }\n\n            function updateProgress() {\n                if (!ytPlayer || isSeeking) { progressAnimId = requestAnimationFrame(updateProgress); return; }\n                try {\n                    var current = typeof ytPlayer.getCurrentTime === \"function\" ? ytPlayer.getCurrentTime() : 0;\n                    var duration = typeof ytPlayer.getDuration === \"function\" ? ytPlayer.getDuration() : 0;\n                    if (duration > 0) {\n                        var pct = (current \/ duration) * 100;\n                        progressBar.style.width = pct + \"%\";\n                        progressThumb.style.left = pct + \"%\";\n                        timeCurrent.textContent = formatTime(current);\n                        timeDuration.textContent = formatTime(duration);\n                    }\n                    if (typeof ytPlayer.getVideoLoadedFraction === \"function\") {\n                        progressBuffered.style.width = (ytPlayer.getVideoLoadedFraction() * 100) + \"%\";\n                    }\n                    updatePlayIcon();\n                } catch (e) {\n                    \/\/ Player API not ready yet, retry on next frame\n                }\n                progressAnimId = requestAnimationFrame(updateProgress);\n            }\n\n            \/\/ Seek on click \/ drag\n            if (progressWrap) {\n                function seekFromEvent(e) {\n                    var rect = progressWrap.getBoundingClientRect();\n                    var x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));\n                    var pct = x \/ rect.width;\n                    var duration = typeof ytPlayer.getDuration === \"function\" ? ytPlayer.getDuration() : 0;\n                    if (duration > 0 && ytPlayer) {\n                        ytPlayer.seekTo(pct * duration, true);\n                        progressBar.style.width = (pct * 100) + \"%\";\n                        progressThumb.style.left = (pct * 100) + \"%\";\n                        timeCurrent.textContent = formatTime(pct * duration);\n                    }\n                }\n\n                progressWrap.addEventListener(\"mousedown\", function(e) {\n                    isSeeking = true;\n                    seekFromEvent(e);\n                    function onMove(e) { seekFromEvent(e); }\n                    function onUp() {\n                        isSeeking = false;\n                        document.removeEventListener(\"mousemove\", onMove);\n                        document.removeEventListener(\"mouseup\", onUp);\n                    }\n                    document.addEventListener(\"mousemove\", onMove);\n                    document.addEventListener(\"mouseup\", onUp);\n                });\n\n                progressWrap.addEventListener(\"mouseenter\", function() {\n                    progressThumb.style.display = \"block\";\n                });\n                progressWrap.addEventListener(\"mouseleave\", function() {\n                    if (!isSeeking) progressThumb.style.display = \"none\";\n                });\n            }\n\n            \/\/ --- Volume ---\n            var volHideTimer = null;\n            var localVol = 100;\n            var localMuted = false;\n\n            function updateVolIconFromLocal() {\n                if (!volIcon) return;\n                var path;\n                if (localMuted || localVol === 0) { path = volIconMuted; }\n                else if (localVol < 40) { path = volIconLow; }\n                else if (localVol < 75) { path = volIconMed; }\n                else { path = volIconHigh; }\n                volIcon.querySelector(\"path\").setAttribute(\"d\", path);\n            }\n\n            \/\/ Called from schedule360AvailabilityChecks \u2014 only syncs icon, never touches slider\n            function updateVolIcon() {\n                updateVolIconFromLocal();\n            }\n\n            function showVolSlider() {\n                if (volHideTimer) { clearTimeout(volHideTimer); volHideTimer = null; }\n                if (volSliderWrap) volSliderWrap.style.display = \"flex\";\n            }\n            function hideVolSlider() {\n                volHideTimer = setTimeout(function() { if (volSliderWrap) volSliderWrap.style.display = \"none\"; }, 400);\n            }\n\n            if (muteBtn) {\n                muteBtn.addEventListener(\"click\", function() {\n                    if (!ytPlayer) return;\n                    if (localMuted) {\n                        ytPlayer.unMute();\n                        localMuted = false;\n                        if (localVol === 0) { localVol = 100; ytPlayer.setVolume(100); }\n                        if (volSlider) volSlider.value = localVol;\n                    } else {\n                        ytPlayer.mute();\n                        localMuted = true;\n                        if (volSlider) volSlider.value = 0;\n                    }\n                    updateVolIconFromLocal();\n                    updateVolSliderFill();\n                });\n                muteBtn.addEventListener(\"mouseenter\", showVolSlider);\n                muteBtn.addEventListener(\"mouseleave\", hideVolSlider);\n            }\n            if (volSliderWrap) {\n                volSliderWrap.addEventListener(\"mouseenter\", showVolSlider);\n                volSliderWrap.addEventListener(\"mouseleave\", hideVolSlider);\n            }\n            function updateVolSliderFill() {\n                if (!volSlider) return;\n                var v = parseInt(volSlider.value, 10);\n                volSlider.style.background = \"linear-gradient(to right,#fff \" + v + \"%,rgba(255,255,255,0.3) \" + v + \"%)\";\n            }\n            if (volSlider) {\n                volSlider.addEventListener(\"input\", function() {\n                    if (!ytPlayer) return;\n                    var val = parseInt(volSlider.value, 10);\n                    localVol = val;\n                    ytPlayer.setVolume(val);\n                    if (val === 0) {\n                        ytPlayer.mute();\n                        localMuted = true;\n                    } else if (localMuted) {\n                        ytPlayer.unMute();\n                        localMuted = false;\n                    }\n                    updateVolIconFromLocal();\n                    updateVolSliderFill();\n                });\n                updateVolSliderFill();\n            }\n\n            \/\/ --- Fullscreen ---\n            if (outerContainer) {\n                var savedFrameWidth = frameEl ? frameEl.style.width : \"\";\n                var savedFrameHeight = frameEl ? frameEl.style.height : \"\";\n                var savedFrameMaxWidth = frameEl ? frameEl.style.maxWidth : \"\";\n                var savedFrameBorderRadius = frameEl ? frameEl.style.borderRadius : \"\";\n                var savedContainerBackground = outerContainer.style.background;\n                if(fsBtn){\n                    fsBtn.addEventListener(\"click\", function() {\n                        var fsEl = document.fullscreenElement || document.webkitFullscreenElement;\n                        if (fsEl) {\n                            (document.exitFullscreen || document.webkitExitFullscreen).call(document);\n                        } else {\n                            (outerContainer.requestFullscreen || outerContainer.webkitRequestFullscreen).call(outerContainer);\n                        }\n                    });\n                }\n                function onFsChange() {\n                    var fsEl = document.fullscreenElement || document.webkitFullscreenElement;\n                    var isFs = (fsEl === outerContainer);\n                    frameEl.style.width = isFs ? \"100%\" : savedFrameWidth;\n                    frameEl.style.height = isFs ? \"100%\" : savedFrameHeight;\n                    frameEl.style.maxWidth = isFs ? \"100%\" : savedFrameMaxWidth;\n                    frameEl.style.borderRadius = isFs ? \"0\" : savedFrameBorderRadius;\n                    outerContainer.style.background = isFs ? \"#000\" : savedContainerBackground;\n                    fsBtn.querySelector(\"svg path\").setAttribute(\"d\", isFs\n                        ? \"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"\n                        : \"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\n                    );\n                    schedule360AvailabilityChecks();\n                }\n                document.addEventListener(\"fullscreenchange\", onFsChange);\n                document.addEventListener(\"webkitfullscreenchange\", onFsChange);\n            }\n\n            \/\/ Sync controls after player ready\n            var origSchedule = schedule360AvailabilityChecks;\n            schedule360AvailabilityChecks = function() {\n                origSchedule();\n                updateVolIcon();\n                updatePlayIcon();\n            };\n        });\n    <\/script>","protected":false},"excerpt":{"rendered":"<p>We took a side trip to the hatchery and Spearfish Canyon while staying at Chris&#8217; Campground (one of many side [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_members_access_role":[],"_members_access_error":""},"categories":[4,94,99,101],"tags":[97,78,96,102],"class_list":["post-2483","post","type-post","status-publish","format-standard","hentry","category-camping","category-south-dakota","category-south-dakota-camping","category-spearfish-canyon","tag-97","tag-78","tag-south-dakota","tag-spearfish"],"jetpack_publicize_connections":[],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/posts\/2483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/comments?post=2483"}],"version-history":[{"count":11,"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/posts\/2483\/revisions"}],"predecessor-version":[{"id":2596,"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/posts\/2483\/revisions\/2596"}],"wp:attachment":[{"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/media?parent=2483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/categories?post=2483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/niasnebraska.com\/index.php\/wp-json\/wp\/v2\/tags?post=2483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}