{"id":1159,"date":"2025-03-08T00:01:03","date_gmt":"2025-03-08T06:01:03","guid":{"rendered":"https:\/\/newdev.hmns.org\/?post_type=films&#038;p=1159"},"modified":"2026-03-31T12:19:47","modified_gmt":"2026-03-31T17:19:47","slug":"black-holes","status":"publish","type":"films","link":"https:\/\/www.hmns.org\/films\/black-holes\/","title":{"rendered":"Black Holes"},"content":{"rendered":"<style type=\"text\/css\">\n\t#container { padding-top: 100px !important;}\n\t#content { padding-top: 0; margin-top: -150px; }\n\t#homepage-hero {\n\t\tposition: relative;\n\t\tpadding: 400px 0 180px;\n\t\tmargin: 0px auto 0px;\n\t\tmax-width: 100%;\n\t\twidth: 1400px;\t\t\n\t}\n\t.shade {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 50%;\n\t\twidth: 100vw;\n\t\theight: 100%;\n\t\ttransform: translate(-50%,0);\n\t\tz-index: 1;\t\n\t\tbackground: none;\n\t}\n\t\n\t#homepage-hero .sub { line-height: 1.2; margin-top: 8px;  }\n\t#homepage-hero .sub, #homepage-hero .large-title {\n\t\tcolor: white;\n\t\ttext-align: left;\n\t}\n\t#homepage-hero .super {\n\t\tcolor: white;\t\n\t\tfont-family: 'Termina';\n\t\tfont-weight: 500;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 14px;\n\t\tmargin-bottom: 8px;\n\t\ttext-shadow: 0px 0px 4px rgba(0, 0, 0, 0.85);\n\t}\n\t#homepage-hero .super-large {\n\t\tcolor:white;\n\t\tfont-family: 'Termina';\n\t\tfont-size: 30px;\n\t\tfont-style: normal;\t\n\t\tletter-spacing: 1.5px;\n\t\tfont-weight: 500;\n\t\tmargin-bottom:8px;\n\t}\t\n\t\n\t\n\t\n\t#homepage-hero .super.extra-margin { margin-bottom: 16px; }\n\t#homepage-hero .super a {\n\t\tcolor: white;\n\t\tpadding-bottom: 8px;\n\t\tborder-bottom: 1px solid var(--serengeti);\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\twidth: max-content;\n\t}\n\t\n\t#homepage-hero .super a svg { margin-right: 4px; }\n\t\n\t#homepage-hero .super a:hover {\n\t\tborder-bottom-color: var(--monarch);\t\n\t}\n\t\n\t\n\t#homepage-hero .cta-flex {\n\t\tdisplay: flex; \n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tmargin-top: 48px;\n\t\tcolumn-gap: 24px;\t\n\t}\n\t#homepage-hero a:hover {\n\t\tcolor: ;\n\t\tborder-color: ;\t\n\t}\n\t#homepage-hero .large-title, #homepage-hero .sub {  transition: all .5s; line-height: 1.2; text-shadow:0px 1px 8px rgba(0, 0, 0, 0.85); }\n\t\/*#homepage-hero .title.shrink-hh-title {font-size: 50px; }*\/\n\t#homepage-hero .large-title:last-child { margin-bottom: 30px; }\n\t#homepage-hero .fw-bg {\n\t\tbackground-image: url('https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/08\/planetarium.jpg');\n\t\tbackground-size: cover;\n\t\tbackground-position: center center;\n\t\tbackground-repeat: no-repeat;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 0;\n\t\ttransform: translate(-50%,0);\n\t\twidth: 100vw;\n\t\theight: 100%;\n\t\tz-index: 0;\t\n\t}\n\t#homepage-hero .hero-content {\n\t\tposition: relative;\n\t\tz-index: 1;\t\n\t\ttext-align: left;\n\t\tpadding: 0; \n\t\ttransition: all .5s;\n\t}\n\t#homepage-hero .video-box {\n\t\tposition: absolute;\n\t\twidth: 100vw;\n\t\tleft: 50%;\n\t\ttop: 0;\t\n\t\ttransform:translate(-50%,0);\n\t\toverflow: hidden;\n\t\theight: 100%;\n\t}\n\t#homepage-hero .video-box video {\n\t\tposition: absolute;\n\t\tmin-width: 100%;\n\t\tmin-height: 100%;\t\n\t\tz-index: 0;\n\t\tleft:50%;\n\t\ttop: 50%;\n\t\ttransform:translate(-50%,-50%);\n\t}\n\t.hero-flex {\n\t\tdisplay: flex;\n\t\talign-items: center;\t\n\t\tposition: relative;\n\t\tz-index: 2;\n\t} \n\t#homepage-hero .hero-flex .hero-content {\n\t\twidth: 100%;\n\t}\n\t.bot-texture {\n\t\t\twidth: 100% !important;\n\t\t\tposition: absolute;\n\t\t\tleft: 0;\n\t\t\tbottom: -20px;\t\t\n\t\t\t\n\t\t}\n\t\t.bot-texture path { fill: white; }\n\t\t.content-bg-pattern {\n\t\tposition: absolute;\n\t\tleft: -96px;\n\t\ttop: 0;\n\t\twidth: 766px;\n\t\theight: 100%;\t\n\t}\n\t\n\t.play-pause {\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\tbottom: 48px;\n\t\ttransform:translate(-50%,0);\t\n\t}\n\t.pause:hover, .play:hover { cursor: pointer; }\n\t\t\n\t@media screen and (max-width:1600px) {\t\n\t\t.content-bg-pattern {\n\t\t\twidth: 718px;\t\t\n\t\t}\n\t}\n\t@media screen and (max-width:1400px) {\n\t\t#homepage-hero .hero-flex .hero-tiles .hero-tiles-flex {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: 1fr 1fr 1fr 1fr;\t\t\n\t\t}\n\t\t#homepage-hero .hero-flex .hero-tiles .tile {\n\t\t\twidth: 100%;\n\t\t\tpadding-bottom: 100%;\t\t\n\t\t}\n\t}\n\t@media screen and (max-width:1340px) {\n\t\t.content-bg-pattern {\n\t\t\twidth: calc(50% + 48px);\n\t\t\tleft: -48px;\n\t\t}\t\n\t}\n\t@media screen and (max-width: 900px) {\n\t\t#homepage-hero .sub { text-align: center; font-size: 24px; }\t\n\t\t#homepage-hero .super-large { font-size: 16px; letter-spacing:.8px; }\n\t}\n\t\n<\/style>\n<style type=\"text\/css\">\n\t@media screen and (max-width:1200px) {\n\t\t#homepage-hero .super { font-size:12px; }\n\t\t#homepage-hero a {\n\t\tpadding: 10px 20px;\n\t\tfont-size: 18px;\n\t}\n\t#homepage-hero {\n\t\tpadding: 250px 0 200px;\t\n\t}\n\t#homepage-hero .hero-content, #homepage-hero .large-title { text-align: center; }\n\t#homepage-hero .super a { width: max-content; margin: 0 auto;  }\n\t\n\t}\n\t@media screen and (max-width:1024px) {\n\t\t#homepage-hero .hero-flex .hero-tiles .hero-tiles-flex {\n\t\t\twidth: 450px;\n\t\t\tmax-width: 100%;\n\t\t\tmargin: 0 auto;\n\t\t\tgrid-template-columns: 1fr 1fr;\t\t\n\t\t}\t\n\t\t#homepage-hero .super-large { font-size: 16px;  letter-spacing:.8px; }\n\t}\n\t@media screen and (max-width: 768px) {\n\t\t.play-pause { display: none; }\n\t\t#homepage-hero .sub, #homepage-hero .large-title {\n\t\t\tcolor: white;\n\t\t\tmax-width: 100%;\n\t\t\ttext-align: center\n\t\t}\n\t\t#homepage-hero {\n\t\tpadding: 200px 0 144px;\t\n\t}\n\t\t#homepage-hero .video-box video {\n\t\theight: 100%;\n\t}\n\t#homepage-hero .cta-flex {\n\t\tdisplay: block;\n\t\tmargin-top: 48px\n\t}\n\t#homepage-hero .cta-flex a.cta {\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tdisplay: flex;\n\t\tjustify-content:center;\n\t}\n\t#homepage-hero a {\n\tfont-size: 18px;\n\tmargin: 20px 0;\n\tdisplay: block;\n}\n\t\n\t}\n<\/style>\n<style type=\"text\/css\">\n\n\t@media screen and (max-width: 640px) {\n\t\t#homepage-hero .hero-flex {\n\t\t\tdisplay: block;\t\t\n\t\t}\t\n\t\t#homepage-hero .hero-flex .hero-image {\n\t\t\twidth: 200px;\n\t\t\tmargin: 0 auto;\n\t\t\tposition: relative;\n\t\t}\n\t\t#homepage-hero .hero-flex .hero-content {\n\t\t\twidth: 100%;\n\t\t\ttext-align: center;\n\t\t}\n\t\t#homepage-hero .super {\n\t\t\tfont-size: 12px; \t\t\n\t\t}\n\t\t#homepage-hero {\n\t\t\tpadding: 350px 0 144px;\t\n\t\t}\n\t}\n<\/style>\n<section id=\"homepage-hero\">\n\t\t\t<div class=\"fw-bg\"><\/div>\n\t\t\t<div class=\"hero-flex\">\n\t\t<div class=\"hero-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"super\">PLANETARIUM<\/div>\n\t\t\t\t\t\t\t\t\t\t<h1 class=\"large-title\">Black Holes<\/h1>\t\n\t\t\t\t\t\t\t\t<\/div>\n\t<\/div>\n\t<\/section>\n<script>\njQuery(document).ready(function ($) {\n\t$('.play-pause .pause').on('click tap',function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('.video-box video').trigger('pause');\n\t\t$('.play-pause .pause').addClass('hide');\n\t\t$('.play-pause .play').removeClass('hide');\n\t});\n\t$('.play-pause .play').on('click tap',function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('.video-box video').trigger('play');\n\t\t$('.play-pause .play').addClass('hide');\n\t\t$('.play-pause .pause').removeClass('hide');\n\t});\n\t$('.play-pause .play').on('keydown',function (e) {\n\t\tif (e.keyCode == 32) {\n\t\t\te.preventDefault();\n\t\t\t$('.video-box video').trigger('play');\n\t\t\t$('.play-pause .play').addClass('hide');\n\t\t\t$('.play-pause .pause').removeClass('hide').focus();\n\t\t}\n\t});\n\t$('.play-pause .pause').on('keydown',function (e) {\n\t\tif (e.keyCode == 32) {\n\t\t\te.preventDefault();\n\t\t\t$('.video-box video').trigger('pause');\n\t\t\t$('.play-pause .pause').addClass('hide');\n\t\t\t$('.play-pause .play').removeClass('hide').focus();\n\t\t}\n\t});\n});\n<\/script>\n\n<style type=\"text\/css\">\n\t#featured-exhibit-info {\n\t\tpadding: 96px 0 96px;\n\t\twidth: 1400px;\n\t\tmargin: 0 auto;\n\t\tmax-width: 100%;\n\t\tz-index: 4;\n\t}\n\t#featured-exhibit-info .fei-flex {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tcolumn-gap: 126px;\t\n\t}\n\t#featured-exhibit-info .featured-background-info {\n\t\twidth: 700px;\t\n\t}\n\t#featured-exhibit-info .featured-background-info h2.feat-info-title {\n\t\tfont-family: 'Sentinel Semibold';\n\t\tfont-size: 45px;\n\t\tline-height: 55px;\n\t\tfont-weight: 375;\t\n\t\tmargin-bottom: 24px;\n\t}\n\t#featured-exhibit-info .featured-background-info .feat-info-sub {\n\t\tfont-family: 'Ringside Regular';\n\t\tfont-size: 25px;\n\t\tline-height: 35px;\t\n\t\tmargin-bottom: 24px;\n\t}\n\t#featured-exhibit-info .info-card {\n\t\twidth: 574px;\n\t\tmargin-top: -200px;\n\t\tbackground: var(--dark-grey);\n\t\tbackground-image:url(\/wp-content\/uploads\/2023\/08\/image-1.png);\n\t\tbackground-repeat: repeat;\n\t\tbackground-size:auto;\n\t\tpadding: 32px;\n\t\tcolor: var(--cream);\t\n\t}\n\t#featured-exhibit-info .button-flex { \n\t\tdisplay: flex;\n\t\talign-items: center;0\n\t\tjustify-content: center;\t\n\t\tmargin-bottom: 32px;\n\t\tcolumn-gap: 24px;\n\t}\n\t#featured-exhibit-info .button-flex a {\n\t\tdisplay: flex;\n\t\talign-items: center;\t\n\t}\n\t#featured-exhibit-info .button-flex a.cta { width: 100%; display:flex; justify-content:center;  }\n\t#featured-exhibit-info .icon-list-flex {\n\t\tdisplay: flex;\n\t\tmargin-bottom: 32px;\t\n\t}\n\t#featured-exhibit-info .icon-list-flex .icon {\n\t\tmargin-right: 10px;\t\n\t}\n\t#featured-exhibit-info .icon-title { \n\t\tfont-family: 'Ringside Regular Bold';\n\t\tfont-weight: 400;\n\t\tline-height: 22px;\n\t\tmargin-bottom: 8px;\n\t}\n\t#featured-exhibit-info .icon-sub {\n\t\tfont-family: 'Sentinel Italic';\n\t}\n\t#featured-exhibit-info .icon-list-flex a {\n\t\tcolor: var(--cream);\n\t\tpadding-bottom: 8px;\n\t\tborder-bottom: 1px solid var(--serengeti);\t\n\t}\n\t#featured-exhibit-info .icon-list-flex a:hover {\n\t\tborder-bottom-color: var(--monarch);\t\n\t}\n\t#featured-exhibit-info .optional-note {\n\t\tpadding: 24px;\n\t\tbackground: #2E3333;\t\n\t}\n\t#featured-exhibit-info .optional-note .on-title {\n\t\tfont-family: 'Sentinel Italic';\n\t\tline-height: 28px;\n\t\tmargin-bottom: 10px;\t\n\t}\n\t #featured-exhibit-info.background-svg-texture {\n\t\tposition: absolute;\n\t\tleft:973px;\n\t\ttop: -250px;\n\t\twidth:1122px;\n\t\theight:1122px;\n\t\tz-index: 6;\n\t\ttransform: rotate(-8.43deg);\n\t\tpointer-events:none;\n\t}\n\t.buy-tickets {\n\t\tbackground: var(--mud);\n  padding: 23px 32px 32px;\n  border-radius: 6px;\n  margin-bottom: 20px;\n\t}\t\n\t.buy-tickets h2 { margin-bottom: 20px; }\n\t.buy-tickets form#addTickets .select-shell {\n\t\twidth: 100%;\n  background: none;\n  justify-content: center;\n  display: flex;\n  align-items: center;\n  border: 1px solid var(--cream);\n  margin-bottom: 12px;\n  border-radius: 0px;\n\t}\n\t.buy-tickets .select-flex {\n\t\tdisplay:flex;\n\t\tjustify-content: center; \n\t\tpadding: 12px 17px;\n\t\tmargin-bottom: 16px;\n\t\tborder: 1px solid var(--cream);\n\t\tborder-radius: 0px;\n\t\tfont-size: 18px;\t\n\t}\n\t.buy-tickets .select-flex.open {\n\t\tbackground:var(--dark-grey);\t\n\t}\n\t.buy-tickets .select-flex:hover {\n\t\tcursor: pointer;\t\n\t}\n\t.buy-tickets .select-flex > svg {\n\t\tposition: absolute;\n\t\tright:17px;\n\t\ttop: 50%;\n\t\ttransform:translate(0,-50%);\t\n\t}\n\t\n\t.selectPerf .perfDropDownMenu, .selectPerfTime .timeDropDownMenu {\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\theight: 532px;\n\t\tbackground: var(--dark-grey);\n\t\tz-index: 99;\n\t\tpadding:16px 16px 38px;\n\t\ttext-align:center;\n\t\tline-height: 34px;\n\t\toverflow:hidden;\n\t\tborder: 1px solid #cdcdcd;\n\t\tborder-radius: 8px;\t\n\t}\n\t.selectPerf .perfDropDownMenu .select-scrollbox, .selectPerfTime .timeDropDownMenu .select-scrollbox {\n\t\theight: 478px;\t\n\t}\n\t.selectPerf .perfDropDownMenu .select-scrollbox ul, .selectPerfTime .timeDropDownMenu .select-scrollbox ul {\n\t\theight:478px;\n\t\toverflow:auto;\t\n\t}\n\t.selectPerf .perfDropDownMenu ul li:hover, .selectPerf .perfDropDownMenu ul li.selected, .selectPerfTime .timeDropDownMenu ul li:hover, .selectPerfTime .timeDropDownMenu ul li.selected {\n\t\tcolor: var(--monarch);\n\t\tcursor: pointer;\t\n\t}\n\t.buy-tickets form#addTickets select {\n\t\tbackground: none;\n\t  \tborder: none;\n\t  \tappearance: none;\n\t  \tcolor: var(--cream);\n\t  \tfont-size: 18px;\n\t  \tfont-weight: 300;\t\n\t  \tpadding: 12px 17px;\n\t  \twidth: 100%;\t\n\t\ttext-align: center;\n\t\topacity: 1;\n\t\ttransition: all .5s;\n\t}\n\t.buy-tickets form#addTickets .select-shell svg {\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tright: 17px;\n\t\ttransform: translate(0,-50%);\n\t}\n\t\n\t.buy-tickets form#addTickets .select-text .label-italic.white { color: var(--cream); }\n\t\n\t.buy-tickets .label-flex { margin-bottom: 12px; display: flex; gap: 12px; }\n\t\n\t.buy-tickets .form-flex { display: flex; align-items: center; }\n\t.buy-tickets .form-flex .subhead-bold { margin-right: auto; }\n\t.buy-tickets .form-flex input[type=\"number\"] {\n\t\tbackground: none;\n\t\tcolor: white;\n\t\tborder: 1px solid var(--cream);\n\t\tpadding:6px 12px;\t\n\t\twidth: 100px;\n\t\ttext-align: center;\n\t}\n\t\n\t.buy-tickets .price-types {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 12px;\n\t\tmargin-top: 24px;\t\n\t\topacity: 1;\n\t\ttransition: all .5s;\n\t}\n\t.success-msg {\n\t\twidth: 100%;\n\t\tmargin-top: 24px;\n\t\tbackground: none;\n\t\tcolor: white;\n\t\tfont-family: \"Ringside Regular Bold\";\n\t\tfont-size: 18px;\n\t\tpadding: 12px 17px;\n\t\tborder: 1px solid var(--mossy-oak);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\t\n\t\tcolor: var(--mossy-oak);\n\t}\n\t.success-msg svg { width: 20px; height: 20px; }\n\t.success-msg svg path { fill: var(--mossy-oak); }\n\t.buy-tickets form input[type=\"submit\"], .buy-tickets form button.add-to-cart-btn, .add-to-cart-spinner {\n\t\twidth: 100%;\n\t\tmargin-top: 24px;\n\t\tbackground: var(--monarch);\n\t\tcolor: white;\n\t\tfont-family: \"Ringside Regular Bold\";\n\t\tfont-size: 18px;\n\t\tpadding: 12px 17px;\n\t\tborder: var(--monarch);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t}\n\t.buy-tickets form button.add-to-cart-btn.greyed-out {\n\t\tborder: 1px solid var(--dark-grey);\n\t\tbackground: rgba(196, 196, 196, 0.50);\t\n\t\tcolor: var(--dark-grey);\n\t\topacity: 1 !important;\n\t}\n\t\n\t.buy-tickets form button.add-to-cart-btn.greyed-out svg, .buy-tickets form button.add-to-cart-btn.greyed-out svg * {\n\t\tfill: var(--dark-grey);\n\t\tstroke: var(--dark-grey);\n\t\topacity: 1 !important;\t\n\t}\n\t.buy-tickets form button.add-to-cart-btn svg, .buy-tickets form button.add-to-cart-btn svg * {\n\t\tfill: white;\n\t\tstroke:white;\n\t\topacity: 1 !important;\t\n\t}\n\t.add-to-cart-spinner svg { \/*animation: ajaxspinner 1.5s linear infinite;*\/ width:20px; height: 20px; transform:translate(0,0); top: -10px; right: unset; position absolute; }\n\t.add-to-cart-spinner svg path { \/*fill: white; stroke: white;*\/ }\n\t\n\t.buy-tickets a.cta.secondary { margin-top: 12px; width: 100%; display:block; text-align: center; }\n\t\n\t.buy-tickets .select-text { width: 100%; }\n\t\n\t.buy-tickets .greyed-out, .buy-tickets .greyed-out * { opacity: .5 !important; appearance:none !important; }\n\t.buy-tickets form#addTickets .selectPerfTime.greyed-out .select-shell {\n\t\topacity: .5;\n\t} \n\t\n\t.buy-tickets form#addTickets .select-shell .zone-spinner { position: absolute; top:50%; left: 50%; transform: translate(-50%,-50%); }\n\t.buy-tickets form#addTickets .select-shell .zone-spinner svg { \/*animation: ajaxspinner 1.5s linear infinite;*\/ width:20px; height: 20px; transform:translate(0,0); top: -10px; right: unset; position absolute; }\n\t.buy-tickets form#addTickets .select-shell .zone-spinner svg path {\n\t\t\/* fill: var(--cream); *\/\t\n\t\t\n\t\t\n\t}\n\t.sold-out-msg {\n\t\ttext-align:center;\t\t\t\n\t}\n\t@keyframes ajaxspinner {\n\t\tfrom { transform: rotate(0deg); }\n\t\tto { transform: rotate(359deg); }\n\t}\n\t.num-flexbox {\n\t\tdisplay: flex;\n  \t\talign-items: center;\n  \t\tpadding: 5px;\n  \t\tborder: 1px solid var(--cream);\n  \t\tgap: 0px;\n  \t\twidth: 120px;\t\n\t}\n\t.num-flexbox .minus, .num-flexbox .plus { padding: 8px; height: max-content; display: flex; align-items: center; justify-content: center;}\n\t.num-flexbox .minus:hover, .num-flexbox .plus:hover {\n\t\tcursor: pointer;\t\n\t}\n\t.num-flexbox .tix-num { margin: 0 auto; }\n\t.limited-qty-msg { \n\t\tcolor: var(--cream); \n\t\tfont-size: 14px; \n\t\tfont-style: italic;\n\t\tmargin-bottom: 8px;\n\t}\n\t@media screen and (max-width:1200px) {\n\t\t#featured-exhibit-info .fei-flex {\n\t\t\tdisplay: flex;\t\t\n\t\t\tflex-wrap: wrap;\n\t\t}\t\n\t\t#featured-exhibit-info .fei-flex .featured-background-info {\n\t\t\torder: 2;\n\t\t\twidth: 100%;\n\t\t}\n\t\t #featured-exhibit-info .fei-flex .info-card { order: 1; max-width: 100%; margin: -200px auto 48px; }\n\t}\n\t@media screen and (max-width:768px) {\n\t\t#featured-exhibit-info .fei-flex .info-card { padding: 16px; }\n\t\t#featured-exhibit-info .featured-background-info .feat-info-title { font-size: 25px; line-height: 1.2; }\n\t\t#featured-exhibit-info .featured-background-info .feat-info-sub {\n\t\tfont-family: 'Ringside Regular';\n\t\tfont-size: 21px;\n\t\tline-height: 31px;\t\n\t\tmargin-bottom: 24px;\n\t\t\n\t}\n\t.subhead-bold {\n    font-family: 'Ringside Regular Bold';\n    font-weight: 400;\n    font-size: 16px;\n    line-height: 24px;\n\t\t}\n\t\t.buy-tickets .price-types {\n\tmargin-left: -34px;\n}\n\t.buy-tickets {\n\tbackground: var(--mud);\n\tpadding: 12px;\n\tborder-radius: 6px;\n\tmargin-bottom: 20px;\n}\n\t#featured-exhibit-info .fei-flex .info-card {\n\torder: 1;\n\tmax-width: unset;\n\twidth: 100vw;\n\tleft: 50%;\n\ttransform:translate(-50%,0);\n\tmargin: -24px auto 48px;\n\t\t}\n\t\t#featured-exhibit-info { padding-top: 0; }\n\t\t.selectPerf .perfDropDownMenu .select-scrollbox ul, .selectPerfTime .timeDropDownMenu .select-scrollbox ul {\n\t\t\theight: 442px;\n\t\t\toverflow-y: scroll;\n\t\t}\n\t\t.selectPerf .perfDropDownMenu, .selectPerfTime .timeDropDownMenu {\n\t\t    position: absolute;\n\t\t    width: 100%;\n\t\t    height: 482px;\n\t\t    background: var(--dark-grey);\n\t\t    z-index: 99;\n\t\t    padding: 16px 16px 38px;\n\t\t    text-align: center;\n\t\t    line-height: 34px;\n\t\t    overflow: hidden;\n\t\t    border: 1px solid #cdcdcd;\n\t\t    border-radius: 8px;\n\t\t}\n\t\t\n\t\t.selectPerf .perfDropDownMenu .select-scrollbox, .selectPerfTime .timeDropDownMenu .select-scrollbox {\n    \t\theight: 442px;\n\t\t}\n\t}\n<\/style>\n<section id=\"featured-exhibit-info\">\n\t<div class=\"background-svg-texture abs\"><\/div>\n<div class=\"fw-bg\" style=\"background:#f5f5f5\" role=\"presentation\"><\/div>\t<div class=\"fei-flex\">\n\t\t<div class=\"featured-background-info\">\n\t\t\t<h2 class=\"feat-info-title\">Cosmic Enigmas: Unraveling the Mysteries of Black Holes<\/h2>\n\t\t\t<div class=\"feat-info-sub\">Embark on an Intergalactic Journey to Understand the Immense Power and Mind-Bending Nature of Black Holes<\/div>\t\t\t<div class=\"feat-info-desc\">Black holes, with their immensity and power, ignite a sense of wonder and curiosity within us. As we contemplate these enigmatic cosmic phenomena, the fabric of space-time warps before our eyes. The collapse of a massive star into an infinitesimally small region renders space and time meaningless within its confines. Our cosmic expedition takes us further, exploring super-massive black holes of unimaginable size that reside at the heart of galaxies. These concealed behemoths orchestrate a mesmerizing gravitational dance, binding their entire galaxies in a captivating kaleidoscope.<br \/>\n<br \/>\nAn intergalactic voyage, delving into the depths of the cosmos, as we seek to unravel the mysteries surrounding black holes. Join the captivating narration of John de Lancie as we venture through galaxies, pursuing answers to these perplexing natural enigmas.<\/div>\n\t\t<\/div>\t\n\t\t<div class=\"info-card\">\n\t\t\t\t\t\t<div class=\"info-list-container\"><div class=\"icon-list-flex\"><div class=\"icon\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 10C0 4.4878 4.4878 0 10 0C15.5122 0 20 4.4878 20 10C20 15.5122 15.5122 20 10 20C4.4878 20 0 15.5122 0 10ZM10 18.2927C14.5756 18.2927 18.2927 14.5756 18.2927 10C18.2927 5.42439 14.5756 1.70732 10 1.70732C5.42439 1.70732 1.70732 5.42439 1.70732 10C1.70732 14.5756 5.42439 18.2927 10 18.2927ZM10.8487 4.17561V9.64878L10.8292 9.63903L14.7413 13.5415C15.0731 13.8732 15.0731 14.4195 14.7413 14.7512C14.5755 14.9171 14.3706 15.0049 14.1365 15.0049C13.9023 15.0049 13.6974 14.9171 13.5316 14.7512L9.37549 10.5951C9.33647 10.5561 9.27793 10.4781 9.27793 10.4781L9.1511 10.2049L9.13159 10.1073V10V4.17561C9.13159 3.69757 9.51208 3.31708 9.99013 3.31708C10.4682 3.31708 10.8487 3.70732 10.8487 4.17561Z\" fill=\"#F2F4EE\"\/>\n<\/svg><\/div><div class=\"icon-titles-link\"><div class=\"icon-title\">Open Today: 10:00 am &#8211; 5:00 pm<\/div><a href=\"\/visit\/\" aria-label=\"Plan A Visit Today\">Plan A Visit <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"animate-right\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.91273 0.519595C6.17801 0.264267 6.60004 0.272331 6.85537 0.537607L10.647 4.477C10.8955 4.73514 10.8955 5.14349 10.647 5.40163L6.85536 9.34102C6.60004 9.6063 6.178 9.61436 5.91273 9.35903C5.64745 9.1037 5.63939 8.68167 5.89472 8.41639L8.59974 5.60598L1.50004 5.60598C1.13185 5.60598 0.833374 5.3075 0.833374 4.93931C0.833374 4.57112 1.13185 4.27265 1.50004 4.27265L8.59974 4.27265L5.89472 1.46223C5.63939 1.19696 5.64745 0.774923 5.91273 0.519595Z\" fill=\"#F2F4EE\"\/>\n<\/svg><\/a><\/div><\/div><div class=\"icon-list-flex\"><div class=\"icon\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M21.7899 9.04599L19.9219 7.17793C19.6527 6.90874 19.2775 6.90874 19.0083 7.17793C18.4209 7.76527 17.3931 7.76527 16.8058 7.17793C16.5121 6.88427 16.3489 6.49271 16.3489 6.07668C16.3489 5.66065 16.5121 5.26909 16.8058 4.97543C17.0749 4.70623 17.0749 4.33099 16.8058 4.06179L14.9377 2.2019C14.6685 1.9327 14.2933 1.9327 14.0241 2.2019L2.20394 14.0302C2.07342 14.1607 2 14.3157 2 14.487C2 14.6583 2.07342 14.8133 2.20394 14.9438L4.07199 16.8119C4.34118 17.0811 4.71643 17.0811 4.98562 16.8119C5.57296 16.2245 6.6008 16.2245 7.18813 16.8119C7.4818 17.1055 7.64495 17.4971 7.64495 17.9131C7.64495 18.3292 7.4818 18.7207 7.18813 19.0144C6.91894 19.2836 6.91894 19.6588 7.18813 19.928L9.05618 21.7961C9.1867 21.9266 9.34985 22 9.513 22C9.67615 22 9.8393 21.9266 9.96982 21.7961L21.7981 9.96778C22.0673 9.69858 22.0673 9.32334 21.7981 9.05414L21.7899 9.04599ZM20.4195 9.5028L9.50484 20.4175L8.51779 19.4304C9.19486 18.2639 9.02355 16.8282 8.09361 15.8901C7.14734 14.9438 5.6219 14.7644 4.55328 15.4577L3.57439 14.4788L14.4809 3.56419L15.4679 4.55124C14.7909 5.71775 14.9622 7.15346 15.8921 8.09157C16.8384 9.03783 18.3638 9.21729 19.4324 8.52391L20.4113 9.5028H20.4195Z\" fill=\"white\" stroke=\"white\" stroke-width=\"0.5\" stroke-linejoin=\"round\"\/><\/svg><\/div><div class=\"icon-titles-link\"><div class=\"icon-title\">Hours &#038; Admission<\/div><a href=\"\/hours-admission\/\" aria-label=\"\">See Admission <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"animate-right\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.91273 0.519595C6.17801 0.264267 6.60004 0.272331 6.85537 0.537607L10.647 4.477C10.8955 4.73514 10.8955 5.14349 10.647 5.40163L6.85536 9.34102C6.60004 9.6063 6.178 9.61436 5.91273 9.35903C5.64745 9.1037 5.63939 8.68167 5.89472 8.41639L8.59974 5.60598L1.50004 5.60598C1.13185 5.60598 0.833374 5.3075 0.833374 4.93931C0.833374 4.57112 1.13185 4.27265 1.50004 4.27265L8.59974 4.27265L5.89472 1.46223C5.63939 1.19696 5.64745 0.774923 5.91273 0.519595Z\" fill=\"#F2F4EE\"\/>\n<\/svg><\/a><\/div><\/div><div class=\"icon-list-flex\"><div class=\"icon\"><svg width=\"18\" height=\"22\" viewBox=\"0 0 18 22\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" id=\"huh\">\n<path d=\"M8.8958 5.99585C7.02641 5.99585 5.49988 7.52238 5.49988 9.39177C5.49988 11.2612 7.02641 12.7877 8.8958 12.7877C10.7652 12.7877 12.2917 11.2612 12.2917 9.39177C12.2917 7.52238 10.7652 5.99585 8.8958 5.99585ZM8.8958 11.5469C7.70396 11.5469 6.74069 10.5836 6.74069 9.39177C6.74069 8.19993 7.70396 7.23667 8.8958 7.23667C10.0876 7.23667 11.0509 8.19993 11.0509 9.39177C11.0509 10.5836 10.0876 11.5469 8.8958 11.5469Z\" fill=\"#F2F4EE\" stroke=\"#F2F4EE\" stroke-width=\"0.5\" stroke-linejoin=\"round\"\/>\n<path d=\"M8.89184 1C4.26326 1 0.5 4.76327 0.5 9.39184C0.5 10.5837 0.744898 11.7265 1.22653 12.8041C1.6102 13.6612 2.13265 14.4449 2.78571 15.1469L8.45918 20.8204C8.57347 20.9347 8.72857 21 8.9 21C9.07143 21 9.21837 20.9347 9.34082 20.8204L15.0224 15.1388C15.6673 14.4449 16.1898 13.6612 16.5653 12.8122C17.0469 11.7347 17.2918 10.5918 17.2918 9.4C17.2918 4.76327 13.5204 1 8.89184 1ZM15.4224 12.298C15.0959 13.0245 14.6633 13.6857 14.1163 14.2653L8.88367 19.498L3.66735 14.2816C3.12041 13.6939 2.67143 13.0245 2.3449 12.298C1.93673 11.3837 1.72449 10.4041 1.72449 9.39184C1.74082 5.44898 4.94898 2.24082 8.89184 2.24082C8.89184 2.24082 8.9 2.24082 8.90816 2.24082C12.8429 2.24898 16.0429 5.45714 16.0429 9.39184C16.0429 10.4041 15.8388 11.3837 15.4224 12.298Z\" fill=\"#F2F4EE\" stroke=\"#F2F4EE\" stroke-width=\"0.5\" stroke-linejoin=\"round\"\/>\n<\/svg><\/div><div class=\"icon-titles-link\"><div class=\"icon-title\">Located in Level 1<\/div><a href=\"\/accessibility\/\" aria-label=\"\">See Accessibility <svg width=\"11\" height=\"10\" viewBox=\"0 0 11 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"animate-right\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.91273 0.519595C6.17801 0.264267 6.60004 0.272331 6.85537 0.537607L10.647 4.477C10.8955 4.73514 10.8955 5.14349 10.647 5.40163L6.85536 9.34102C6.60004 9.6063 6.178 9.61436 5.91273 9.35903C5.64745 9.1037 5.63939 8.68167 5.89472 8.41639L8.59974 5.60598L1.50004 5.60598C1.13185 5.60598 0.833374 5.3075 0.833374 4.93931C0.833374 4.57112 1.13185 4.27265 1.50004 4.27265L8.59974 4.27265L5.89472 1.46223C5.63939 1.19696 5.64745 0.774923 5.91273 0.519595Z\" fill=\"#F2F4EE\"\/>\n<\/svg><\/a><\/div><\/div><\/div>\n\t\t\t\t\t\t\t<div class=\"buy-tickets\">\n\t\t\t\t\t<h2>Buy Tickets<\/h2>\n\t\t\t\t\t<form id=\"addTickets\" action=\"\" method=\"POST\">\n\t\t\t\t\t\t<div class=\"label-flex days-label\">\n\t\t\t\t\t\t\t<div class=\"cal-icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M3.65 23C3.21 23 2.825 22.835 2.495 22.505C2.165 22.175 2 21.79 2 21.35V4.3C2 3.86 2.165 3.475 2.495 3.145C2.825 2.815 3.21 2.65 3.65 2.65H5.4375V1.88C5.4375 1.6325 5.52 1.4235 5.6905 1.253C5.861 1.0825 6.07 1 6.3175 1C6.565 1 6.7905 1.0825 6.9665 1.253C7.1425 1.4235 7.225 1.6325 7.225 1.88V2.65H16.575V1.88C16.575 1.6325 16.6575 1.4235 16.828 1.253C16.9985 1.0825 17.2075 1 17.455 1C17.7025 1 17.928 1.0825 18.104 1.253C18.28 1.4235 18.3625 1.6325 18.3625 1.88V2.65H20.15C20.59 2.65 20.975 2.815 21.305 3.145C21.635 3.475 21.8 3.86 21.8 4.3V21.35C21.8 21.79 21.635 22.175 21.305 22.505C20.975 22.835 20.59 23 20.15 23H3.65ZM3.65 21.35H20.15V9.525H3.65V21.35ZM3.65 7.875H20.15V4.3H3.65V7.875ZM11.9 14.2C11.5865 14.2 11.328 14.0955 11.1135 13.881C10.899 13.6665 10.7945 13.408 10.7945 13.0945C10.7945 12.781 10.899 12.5225 11.1135 12.308C11.328 12.0935 11.5865 11.989 11.9 11.989C12.2135 11.989 12.472 12.0935 12.6865 12.308C12.8955 12.517 13.0055 12.781 13.0055 13.0945C13.0055 13.408 12.901 13.6665 12.6865 13.881C12.4775 14.09 12.2135 14.2 11.9 14.2ZM7.5 14.2C7.1865 14.2 6.928 14.0955 6.7135 13.881C6.499 13.6665 6.3945 13.408 6.3945 13.0945C6.3945 12.781 6.499 12.5225 6.7135 12.308C6.928 12.0935 7.1865 11.989 7.5 11.989C7.8135 11.989 8.072 12.0935 8.2865 12.308C8.501 12.5225 8.6055 12.781 8.6055 13.0945C8.6055 13.408 8.501 13.6665 8.2865 13.881C8.072 14.0955 7.8135 14.2 7.5 14.2ZM16.3 14.2C15.9865 14.2 15.728 14.0955 15.5135 13.881C15.299 13.6665 15.1945 13.408 15.1945 13.0945C15.1945 12.781 15.299 12.5225 15.5135 12.308C15.728 12.0935 15.9865 11.989 16.3 11.989C16.6135 11.989 16.872 12.0935 17.0865 12.308C17.301 12.5225 17.4055 12.781 17.4055 13.0945C17.4055 13.408 17.301 13.6665 17.0865 13.881C16.872 14.0955 16.6135 14.2 16.3 14.2ZM11.9 18.6C11.5865 18.6 11.328 18.4955 11.1135 18.281C10.9045 18.072 10.7945 17.808 10.7945 17.4945C10.7945 17.181 10.899 16.9225 11.1135 16.708C11.328 16.4935 11.5865 16.389 11.9 16.389C12.2135 16.389 12.472 16.4935 12.6865 16.708C12.8955 16.917 13.0055 17.181 13.0055 17.4945C13.0055 17.808 12.901 18.0665 12.6865 18.281C12.4775 18.49 12.2135 18.6 11.9 18.6ZM7.5 18.6C7.1865 18.6 6.928 18.4955 6.7135 18.281C6.5045 18.072 6.3945 17.808 6.3945 17.4945C6.3945 17.181 6.499 16.9225 6.7135 16.708C6.928 16.4935 7.1865 16.389 7.5 16.389C7.8135 16.389 8.072 16.4935 8.2865 16.708C8.501 16.9225 8.6055 17.181 8.6055 17.4945C8.6055 17.808 8.501 18.0665 8.2865 18.281C8.0775 18.49 7.8135 18.6 7.5 18.6ZM16.3 18.6C15.9865 18.6 15.728 18.4955 15.5135 18.281C15.3045 18.072 15.1945 17.808 15.1945 17.4945C15.1945 17.181 15.299 16.9225 15.5135 16.708C15.728 16.4935 15.9865 16.389 16.3 16.389C16.6135 16.389 16.872 16.4935 17.0865 16.708C17.301 16.9225 17.4055 17.181 17.4055 17.4945C17.4055 17.808 17.301 18.0665 17.0865 18.281C16.8775 18.49 16.6135 18.6 16.3 18.6Z\" fill=\"#F2F4EE\"\/><\/svg><\/div>\n\t\t\t\t\t\t\t<div class=\"select-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"body-bold\">Select a Day and Time<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"selectPerf\">\n\t\t\t\t\t\t\t<div class=\"select-flex\">\n\t\t\t\t\t\t\t\t<div class=\"option selected\">Available dates<\/div>\n\t\t\t\t\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.85972 5.56133C3.13026 5.27146 3.58457 5.2558 3.87445 5.52634L7.99996 9.37682L12.1255 5.52634C12.4153 5.2558 12.8697 5.27146 13.1402 5.56133C13.4107 5.85121 13.3951 6.30552 13.1052 6.57606L8.48983 10.8838C8.21399 11.1412 7.78593 11.1412 7.51009 10.8838L2.89471 6.57606C2.60484 6.30552 2.58917 5.85121 2.85972 5.56133Z\" fill=\"#F2F4EE\"\/><\/svg>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"perfDropDownMenu hide\">\n\t\t\t\t\t\t\t\t<div class=\"select-scrollbox\"><ul><\/ul><\/div>\n\t\t\t\t\t\t\t<\/div>\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"selectPerfTime\"><div class=\"timeDropDownMenu\"><div class=\"select-scrollbox\"><\/div><\/div><\/div> \n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"label-flex tickets-label\">\n\t\t\t\t\t\t\t<div class=\"tickets-icon\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M21.7899 9.04599L19.9219 7.17793C19.6527 6.90874 19.2775 6.90874 19.0083 7.17793C18.4209 7.76527 17.3931 7.76527 16.8058 7.17793C16.5121 6.88427 16.3489 6.49271 16.3489 6.07668C16.3489 5.66065 16.5121 5.26909 16.8058 4.97543C17.0749 4.70623 17.0749 4.33099 16.8058 4.06179L14.9377 2.2019C14.6685 1.9327 14.2933 1.9327 14.0241 2.2019L2.20394 14.0302C2.07342 14.1607 2 14.3157 2 14.487C2 14.6583 2.07342 14.8133 2.20394 14.9438L4.07199 16.8119C4.34118 17.0811 4.71643 17.0811 4.98562 16.8119C5.57296 16.2245 6.6008 16.2245 7.18813 16.8119C7.4818 17.1055 7.64495 17.4971 7.64495 17.9131C7.64495 18.3292 7.4818 18.7207 7.18813 19.0144C6.91894 19.2836 6.91894 19.6588 7.18813 19.928L9.05618 21.7961C9.1867 21.9266 9.34985 22 9.513 22C9.67615 22 9.8393 21.9266 9.96982 21.7961L21.7981 9.96778C22.0673 9.69858 22.0673 9.32334 21.7981 9.05414L21.7899 9.04599ZM20.4195 9.5028L9.50484 20.4175L8.51779 19.4304C9.19486 18.2639 9.02355 16.8282 8.09361 15.8901C7.14734 14.9438 5.6219 14.7644 4.55328 15.4577L3.57439 14.4788L14.4809 3.56419L15.4679 4.55124C14.7909 5.71775 14.9622 7.15346 15.8921 8.09157C16.8384 9.03783 18.3638 9.21729 19.4324 8.52391L20.4113 9.5028H20.4195Z\" fill=\"white\" stroke=\"white\" stroke-width=\"0.5\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n\t\t\t\t\t\t\t<div class=\"select-text\">\n\t\t\t\t\t\t\t\t<div class=\"body-bold\">Select Tickets<\/div>\n\t\t\t\t\t\t\t\t<div class=\"limited-qty-msg hide\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"price-types\"><\/div>\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<input type=\"hidden\" value=\"Add To Cart\" name=\"addtocart\"> \n\t\t\t\t\t\t<button class=\"add-to-cart-btn greyed-out\" aria-label=\"Add Ticket\/s To Cart\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"29\" viewBox=\"0 0 25 29\" fill=\"none\"><g clip-path=\"url(#clip0_9031_73102)\"><path d=\"M8.08886 27C7.49412 27 6.98348 26.7897 6.56295 26.3632C6.14243 25.9367 5.93217 25.426 5.93217 24.8313C5.93217 24.2365 6.14243 23.7259 6.56295 23.3054C6.98348 22.8849 7.48811 22.6746 8.08285 22.6746C8.6776 22.6746 9.18223 22.8849 9.61477 23.3114C10.0473 23.7379 10.2636 24.2486 10.2636 24.8433C10.2636 25.438 10.0533 25.9487 9.62678 26.3692C9.20025 26.7897 8.68961 27 8.09487 27H8.08886ZM20.1039 27C19.5091 27 18.9985 26.7897 18.578 26.3632C18.1574 25.9367 17.9472 25.426 17.9472 24.8313C17.9472 24.2365 18.1574 23.7259 18.578 23.3054C18.9985 22.8849 19.5031 22.6746 20.0979 22.6746C20.6926 22.6746 21.1972 22.8849 21.6298 23.3114C22.0623 23.7379 22.2786 24.2486 22.2786 24.8433C22.2786 25.438 22.0683 25.9487 21.6418 26.3692C21.2153 26.7897 20.7046 27 20.1099 27H20.1039ZM6.53292 7.17522L9.83705 14.0238H18.4879L22.2425 7.17522H6.53292ZM7.79449 20.7522C6.95344 20.7522 6.34668 20.4698 5.97422 19.9111C5.60175 19.3524 5.60776 18.7217 5.99224 18.0188L7.91464 14.4743L3.34894 4.80225H1.8771C1.6368 4.80225 1.43254 4.71214 1.25832 4.53191C1.09011 4.35169 1 4.13542 1 3.8831C1 3.63079 1.09011 3.42653 1.26433 3.25832C1.43855 3.09011 1.64881 3 1.90713 3H3.94969C4.12991 3 4.29212 3.04205 4.4363 3.13217C4.58048 3.22228 4.68861 3.34844 4.7607 3.51064L5.63179 5.37297H23.3239C23.9667 5.37297 24.3692 5.57121 24.5434 5.9617C24.7176 6.35219 24.6576 6.79074 24.3752 7.27134L20.3202 14.5705C20.1219 14.9129 19.8396 15.2073 19.4791 15.4596C19.1186 15.7119 18.7282 15.838 18.3076 15.838H9.20626L7.52416 18.962H21.4015C21.6418 18.962 21.8461 19.0521 22.0203 19.2323C22.1945 19.4125 22.2786 19.6288 22.2786 19.8811C22.2786 20.1334 22.1945 20.3437 22.0203 20.5119C21.8461 20.6801 21.6358 20.7702 21.3775 20.7702H7.79449V20.7522Z\" fill=\"#C57E2B\" stroke=\"#C57E2B\"\/><\/g><defs><clipPath id=\"clip0_9031_73102\"><rect width=\"25\" height=\"29\" fill=\"white\"\/><\/clipPath><\/defs><\/svg> Add To Cart<\/button>\n\t\t\t\t\t\t<div class=\"add-to-cart-spinner hide\"><div class=\"spinner-icon\"><svg xmlns:svg=\"http:\/\/www.w3.org\/2000\/svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.0\" width=\"64px\" height=\"64px\" viewBox=\"0 0 128 128\" xml:space=\"preserve\"><g><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,1)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.1)\" transform=\"rotate(30 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.1)\" transform=\"rotate(60 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.1)\" transform=\"rotate(90 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.2)\" transform=\"rotate(120 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.3)\" transform=\"rotate(150 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.4)\" transform=\"rotate(180 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.5)\" transform=\"rotate(210 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.6)\" transform=\"rotate(240 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.7)\" transform=\"rotate(270 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.8)\" transform=\"rotate(300 64 64)\"\/><path d=\"M97.63 8.23a7.38 7.38 0 0 1 2.7 10.07L89.2 37.57a7.38 7.38 0 1 1-12.77-7.37l11.12-19.27a7.38 7.38 0 0 1 10.08-2.7z\" fill=\"rgba(242,244,238,.9)\" transform=\"rotate(330 64 64)\"\/><animateTransform attributeName=\"transform\" type=\"rotate\" values=\"0 64 64;30 64 64;60 64 64;90 64 64;120 64 64;150 64 64;180 64 64;210 64 64;240 64 64;270 64 64;300 64 64;330 64 64\" calcMode=\"discrete\" dur=\"1080ms\" repeatCount=\"indefinite\"><\/animateTransform><\/g><\/svg><\/div><\/div>\n\t\t\t\t\t\t<div class=\"success-msg hide\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\"><path class=\"fa-secondary\" opacity=\".4\" d=\"\"\/><path class=\"fa-primary\" d=\"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"\/><\/svg> Added To Cart!<\/div>\n\t\t\t\t\t\t<div class=\"sold-out-msg hide\"><div class=\"body-bold\">It looks like this performance is Sold Out. Please check another Date or Time for tickets.<\/div><\/div>\n\t\t\t\t\t\t<div class=\"needs-login-msg hide\"><div class=\"body-bold\">We&#8217;re sorry. Tickets are not available at this time. Availability may be based on your member level. Please <span>Log In<\/span><\/div><\/div>\n\t\t\t\t\t<\/form>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"optional-note\">\n\t\t\t\t\t<div class=\"on-title\">Please Note:<\/div>\t\t\t\t\t<div class=\"on\">Please arrive at least 15 minutes before showtime. Late entry is not allowed.<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t<\/div>\n\t<\/div>\n<\/section>\n<script>\njQuery(document).ready(function ($) {\n\t\/\/experiment\n\t\n\tvar now = '2026-04-09T20:26:36';\n\tconst datenow = new Date(now);\n\t\/\/Global Variable Declarations\n\tvar selectedZoneID = '';\n\tvar returnURL = 'https:\/\/www.hmns.org\/films\/black-holes\/';\n\tvar loggedIn = getCookie('tessituraLogin');\t\n\tif (loggedIn == null) {\n\t\tif ($('.perfDropDownMenu .select-scrollbox li.selected').hasClass('needs-login')) {\n\t\t\t\/\/console.log('hide things');\n\t\t\t$('.needs-login-msg').removeClass('hide');\t\t\n\t\t}\n\t}\n\tvar numtixcount = 0;\n\tvar ajaxArray = [];\n\tvar responseArray = [];\n\tvar sessionKey = getCookie('sessionKey');\n\tvar pType = 'films';\n\tvar zType = 'ga';\n\tvar zoneMax = 9999; \/\/ Track available tickets for selected zone\n\tvar maxPerType = 20; \/\/ Max tickets per type (adult\/child)\n\t\/\/ Config for AJAX dropdown load\n\tvar featExhibitProductionSeasonID = \"60748\";\n\tvar featExhibitPrettyQDate = \"\";\n\tvar featExhibitPid = \"\";\n\tvar featExhibitPosttype = \"films\";\n\tvar featExhibitBlogId = 0;\n\tif (pType == 'films') {\n\t\tvar venue = 'planetarium';\n\t}\n\t\n\t\/\/ Helper function to update limited quantity message\n\tfunction updateLimitedQtyMsg(available) {\n\t\tif (available <= 10) {\n\t\t\t$('.limited-qty-msg').text('(limited quantity remaining: ' + available + ')').removeClass('hide');\n\t\t} else {\n\t\t\t$('.limited-qty-msg').addClass('hide');\n\t\t}\n\t}\n\t\n\t\/\/ Helper function to get total tickets selected\n\tfunction getTotalTickets() {\n\t\tvar total = 0;\n\t\t$('.ticketsField').each(function() {\n\t\t\ttotal += parseInt($(this).val()) || 0;\n\t\t});\n\t\treturn total;\n\t}\n\t\n\t\/\/ Helper function to reset all ticket counts\n\tfunction resetTicketCounts() {\n\t\t$('.ticketsField').val(0);\n\t\t$('.tix-num').text('0');\n\t\tnumtixcount = 0;\n\t\t$('button.add-to-cart-btn').addClass('greyed-out');\n\t}\n\t\n\t\/\/ Helper function to set zoneMax from selected zone element\n\tfunction setZoneMaxFromElement($el) {\n\t\tvar avl = parseInt($el.attr('data-avl')) || 9999;\n\t\tzoneMax = avl;\n\t\tupdateLimitedQtyMsg(avl);\n\t\t\/\/ If current selection exceeds new availability, reset\n\t\tif (getTotalTickets() > zoneMax) {\n\t\t\tresetTicketCounts();\n\t\t}\n\t}\n\t\n\tvar createTNEWSession = window.hmnsCreateTNEWSession;\n\t\/\/ Zone defaults are now set by setFeatExhibitZoneDefaults() after AJAX loads with the real zType.\n\t$(document).on('click tap','.num-flexbox .plus',function (e) {\n\t\t\te.preventDefault();\n\t\t\tthisplus = $(this);\n\t\t\tthisnum = parseInt($(this).parent().children('.tix-num').text()) || 0;\n\t\t\t\n\t\t\t\/\/ Check max per type limit (20)\n\t\t\tif (thisnum >= maxPerType) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Check total availability limit\n\t\t\tvar currentTotal = getTotalTickets();\n\t\t\tif (currentTotal >= zoneMax) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tthisnum++;\n\t\t\t$(this).parent().children('.tix-num').text(thisnum);\n\t\t\tvar $qtyHidden = $(this).closest('.num-flexbox').prev('input.ticketsField[type=\"hidden\"]');\n\t\t\tif ($qtyHidden.length) {\n\t\t\t\t$qtyHidden.val(thisnum);\n\t\t\t}\n\t\t\tif (!$('.price-types').hasClass('greyed-out')) {\n\t\t\t\tnumtixcount = getTotalTickets();\n\t\t\t\tif (numtixcount >= 1) {\n\t\t\t\t\tif  (selectedZoneID != '') {\n\t\t\t\t\t\t$('button.add-to-cart-btn').removeClass('greyed-out');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$('button.add-to-cart-btn').addClass('greyed-out');\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\n\t\t$(document).on('click tap','.num-flexbox .minus',function (e) {\n\t\t\te.preventDefault();\n\t\t\tthisplus = $(this);\n\t\t\tthisnum = parseInt($(this).parent().children('.tix-num').text()) || 0;\n\t\t\tif (thisnum >= 1) {\n\t\t\t\tthisnum--;\n\t\t\t\t$(this).parent().children('.tix-num').text(thisnum);\n\t\t\t\tvar $qtyHidden = $(this).closest('.num-flexbox').prev('input.ticketsField[type=\"hidden\"]');\n\t\t\t\tif ($qtyHidden.length) {\n\t\t\t\t\t$qtyHidden.val(thisnum);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!$('.price-types').hasClass('greyed-out')) {\n\t\t\t\tnumtixcount = getTotalTickets();\n\t\t\t\tif (numtixcount >= 1) {\n\t\t\t\t\tif  (selectedZoneID != '') {\n\t\t\t\t\t\t$('button.add-to-cart-btn').removeClass('greyed-out');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$('button.add-to-cart-btn').addClass('greyed-out');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tvar perfID = '';\n\t\/\/Javascript for query date var (perfDate)\n\tvar perfDate = '';\n\tif (perfDate != '') {\n    const inputDate = new Date(perfDate);\n    const today = new Date();\n    today.setHours(0, 0, 0, 0); \/\/ Normalize today's date to midnight for accurate comparison\n    inputDate.setHours(0, 0, 0, 0); \/\/Normalize inputDate to midnight.\n\n    if (inputDate < today) {\n        \/\/ Provided date is in the past, so ignore it and default to today's logic\n        perfDate = ''; \/\/ Reset perfDate to trigger the default logic\n    }\n\t}\n\tfunction runFeatExhibitInit() {\n\t\tif (perfDate != '') {\n\t\t\tsessionKey = getCookie('sessionKey');\n\t\t\tconst days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];\n\t\t\tconst months = ['January','February','March','April','May','June','July','August','September','October','November','December'];\n\t\t\tvar date = new Date(perfDate);\n\t\t\tdate.setDate(date.getDate() + 1);\n\t\t\tvar dayOfWeek = days[date.getDay()];\n\t\t\tvar month = months[date.getMonth()];\n\t\t\tvar dayOfMonth = date.getDate();\n\t\t\tvar year = date.getFullYear();\n\t\t\tvar formattedDate = dayOfWeek + ', ' + month + ' ' + dayOfMonth + ' ' + year;\n\t\t\t$('.perfDropDownMenu .select-scrollbox ul').children('li').map(function () {\n\t\t\t\tif ($(this).hasClass('selected')) {\n\t\t\t\t\tperfID = $(this).attr('data-id');\n\t\t\t\t\tperfType = $(this).attr('data-perftype');\n\t\t\t\t\tperfTime = $(this).attr('data-perftime');\n\t\t\t\t\t$('.selectPerf .option.selected').attr('data-id',perfID);\n\t\t\t\t\t$('.selectPerf .option.selected').attr('data-perftype',perfType);\n\t\t\t\t\t$('.selectPerf .option.selected').attr('data-perftime',perfTime);\n\t\t\t\t\t$('.selectPerf .option.selected').text($(this).text());\n\t\t\t\t}\n\t\t\t}).get();\n\t\t\tperfID = $('.selectPerf .option.selected').attr('data-id');\n\t\t\tif (zType == 'ga' || zType == 'tw' || zType == 'virt' || zType == 'tix' || zType == 'cl') { $('.price-types').removeClass('greyed-out'); }\n\t\t\t$('.selectPerfTime .timeDropDownMenu ul').children('li').map(function () {\n\t\t\t\tif ($(this).attr('data-perfid') == perfID) {\n\t\t\t\t\t$(this).removeClass('hide');\n\t\t\t\t} else {\n\t\t\t\t\t$(this).addClass('hide');\n\t\t\t\t}\n\t\t\t}).get();\n\t\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox').children('input[type=\"hidden\"]').map(function () {\n\t\t\tif ($(this).attr('data-perfid') == perfID) { selectedZoneID = $(this).val(); }\n\t\t}).get();\n\t\t$('.price-types').children('.form-flex').map(function () {\n\t\t\tif ($(this).attr('data-perfID') == perfID) { $(this).removeClass('hide'); }\n\t\t\telse { $(this).addClass('hide'); }\n\t\t}).get();\n\t\t\tif (sessionKey == '' || sessionKey == null) {\n\t\t\t\tcreateTNEWSession(function(newSessionKey) {\n\t\t\t\t\tsnapToZones(newSessionKey);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsnapToZones(sessionKey);\n\t\t\t}\n\t\t} else {\n\t\t\tlet $autoselectPerf = $('.selectPerf .perfDropDownMenu .select-scrollbox ul li:first-child');\n\t\t\t$autoselectPerf.addClass('selected');\n\t\t\tvar asID = $autoselectPerf.attr('data-id');\n\t\t\tvar asText = $autoselectPerf.text();\n\t\t\t$('.selectPerf .option.selected').attr('data-id',asID);\n\t\t\t$('.selectPerf .option.selected').text(asText);\n\t\t\t$('.selectPerfTime .timeDropDownMenu ul').children('li').map(function () {\n\t\t\t\tif ($(this).attr('data-perfid') == asID) {\n\t\t\t\t\t$(this).removeClass('hide');\n\t\t\t\t} else {\n\t\t\t\t\t$(this).addClass('hide');\n\t\t\t\t}\n\t\t\t}).get();\n\t\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox').children('input[type=\"hidden\"]').map(function () {\n\t\t\tif ($(this).attr('data-perfid') == asID) { selectedZoneID = $(this).val(); }\n\t\t}).get();\n\t\t\t$('.price-types').children('.form-flex').map(function () {\n\t\t\t\tif ($(this).attr('data-perfID') == asID) { $(this).removeClass('hide'); }\n\t\t\t\telse { $(this).addClass('hide'); }\n\t\t\t}).get();\n\t\t\tif (sessionKey == '' || sessionKey == null) {\n\t\t\t\tcreateTNEWSession(function(newSessionKey) {\n\t\t\t\t\tsnapToZones(newSessionKey);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsnapToZones(sessionKey);\n\t\t\t}\n\t\t\tif ($('.logged-in').hasClass('hide')) { loggedstatus = 0; } else { loggedstatus = 1; }\n\t\t}\n\t}\n\n\tfunction setFeatExhibitZoneDefaults() {\n\t\tif (zType == 'tw') {\n\t\t\t$('.price-types').removeClass('greyed-out');\n\t\t\tselectedZoneID = 219;\n\t\t} else if (zType == 'virt') {\n\t\t\t$('.price-types').removeClass('greyed-out');\n\t\t\tselectedZoneID = 246;\n\t\t} else if (zType == 'ga') {\n\t\t\t$('.price-types').removeClass('greyed-out');\n\t\t\tif (pType == 'films') {\n\t\t\t\tif (venue == 'planetarium') {\n\t\t\t\t\tselectedZoneID = 143;\n\t\t\t\t} else {\n\t\t\t\t\tselectedZoneID = 156;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (String(featExhibitBlogId) == '2') { selectedZoneID = 246; }\n\t\t\t}\n\t\t}\n\t}\n\n\tif (featExhibitProductionSeasonID) {\n\t\t$('.selectPerf .option.selected').text('Loading dates\u2026');\n\t\tvar doFeatExhibitAjax = function() {\n\t\t\tvar ajaxUrl = '';\n\t\t\tif (window.hmns_ajax_router) { ajaxUrl = window.hmns_ajax_router.url || ''; }\n\t\t\t$.ajax({\n\t\t\t\turl: ajaxUrl,\n\t\t\t\ttype: 'post',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'feat_exhibit_data',\n\t\t\t\t\tquery: JSON.stringify([featExhibitProductionSeasonID, featExhibitPrettyQDate, featExhibitPid, featExhibitPosttype, featExhibitBlogId])\n\t\t\t\t},\n\t\t\t\tbeforeSend: typeof setAjaxHeaders === 'function' ? setAjaxHeaders : function() {},\n\t\t\t\txhrFields: { withCredentials: true },\n\t\t\t\tsuccess: function(response) {\n\t\t\t\t\tif (response) {\n\t\t\t\t\t\tif (response.listingsHtml !== undefined) {\n\t\t\t\t\t\t\t$('.selectPerf .perfDropDownMenu .select-scrollbox ul').html(response.listingsHtml);\n\t\t\t\t\t\t\tif (pType == 'films') {\n\t\t\t\t\t\t\t\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox').html(response.zonesHtml || '');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (response.zType === 'ga') {\n\t\t\t\t\t\t\t\t\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox').html(response.zonesHtml || '');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox').html('<ul>' + (response.zonesHtml || '') + '<\/ul>');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$('.price-types').html(response.pricesHtml || '');\n\t\t\t\t\t\t\tif (response.zType !== undefined) { zType = response.zType; }\n\t\t\t\t\t\t\tsetFeatExhibitZoneDefaults();\n\t\t\t\t\t\t\trunFeatExhibitInit();\n\t\t\t\t\t\t\tinitializeTouchScroll('.selectPerf .perfDropDownMenu .select-scrollbox ul');\n\t\t\t\t\t\t\tif (pType != 'films') {\n\t\t\t\t\t\t\t\tinitializeTouchScroll('.selectPerfTime .timeDropDownMenu .select-scrollbox ul');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$('.selectPerf .option.selected').text('Unable to load dates');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('.selectPerf .option.selected').text('Unable to load dates');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t$('.selectPerf .option.selected').text('Unable to load dates');\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tif (window.hmns_ajax_router) {\n\t\t\tif (window.hmns_ajax_router.ready) {\n\t\t\t\tdoFeatExhibitAjax();\n\t\t\t} else {\n\t\t\t\t$(document).one('hmns_nonce_ready', doFeatExhibitAjax);\n\t\t\t}\n\t\t} else {\n\t\t\t$(document).one('hmns_nonce_ready', doFeatExhibitAjax);\n\t\t}\n\t} else {\n\t\trunFeatExhibitInit();\n\t}\n\n\tvar scrolled = 0;\n\t$('.selectPerf .select-flex').on('click tap', function (e) {\n\t    e.preventDefault();\n\t    e.stopImmediatePropagation();\n\t\n\t    \/\/ Toggle the current dropdown\n\t    $('.selectPerf .select-flex').toggleClass('open');\n\t    $('.selectPerf .perfDropDownMenu').toggleClass('hide');\n\t    if (!$('.selectPerf .perfDropDownMenu').hasClass('hide')) {\n\t        let $scrollBox = $('.selectPerf .perfDropDownMenu .select-scrollbox ul'); \/\/ <-- Target the actual scrollable container\n\t        let $selectedPerf = $scrollBox.find('li.selected'); \/\/ Find selected item within the scrollbox\n\t        if ($selectedPerf.length) {\n\t            let selectedTop = $selectedPerf[0].offsetTop; \/\/ Use vanilla JS offsetTop\n\t            let itemHeight = $selectedPerf.outerHeight(true); \/\/ true includes margin\n\t            let desiredOffset = itemHeight * 2; \/\/ Aim to show it ~2 items down\n\t            let targetScrollTop = selectedTop - desiredOffset;\n\t            targetScrollTop = Math.max(0, targetScrollTop);\n\t            $scrollBox.stop().animate({\n\t                scrollTop: targetScrollTop\n\t            }, 200); \n\t        }\n\t    }\n\t    \/\/ Close the other dropdown (time)\n\t  \t$('.selectPerfTime .timeDropDownMenu').addClass('hide');\n\t  \t$('.selectPerfTime .select-flex').removeClass('open');\n\t});\n\t$(document).on('click tap',function (e) {\n\t\tif (!$('.selectPerf .perfDropDownMenu').hasClass('hide')) { \n\t\t\tif (!$(e.target).closest('.selectPerf .perfDropDownMenu').length) {\n\t\t\t\t$('.selectPerf .select-flex').removeClass('open');\n\t\t\t\t$('.selectPerf .perfDropDownMenu').addClass('hide');\n\t\t\t}\n\t\t}\n\t\tif (!$('.selectPerfTime .timeDropDownMenu').hasClass('hide')) { \n\t\t\tif (!$(e.target).closest('.selectPerfTime .timeDropDownMenu').length) {\n\t\t\t\t$('.selectPerfTime .select-flex').removeClass('open');\n\t\t\t\t$('.selectPerfTime .timeDropDownMenu').addClass('hide');\n\t\t\t}\n\t\t}\n\t});\n\t$(document).on('click tap', '.selectPerf .perfDropDownMenu ul li', function (e) {\n\t\tsessionKey = getCookie('sessionKey');\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\tif (zType == 'ga'){\n\t\t\t$('.price-types').removeClass('greyed-out');\t\t\n\t\t}\n\t\tzperfType = $(this).attr('data-perfType');\n\t\tzperfID = $(this).attr('data-id');\n\t\tzmapTime = $(this).attr('data-perfTime');\n\t\t$('.selectPerf .option.selected').html($(this).text());\n\t\t$('.selectPerf .option.selected').attr('data-id',$(this).attr('data-id'));\n\t\t$('.selectPerf .option.selected').attr('data-perfType',zperfType);\n\t\t$('.selectPerf .option.selected').attr('data-mapTime',zmapTime);\n\t\t$('.selectPerf .select-flex').toggleClass('open');\n\t\t$('.selectPerf .perfDropDownMenu').toggleClass('hide');\n\t\t$('.selectPerf .perfDropDownMenu ul').children('li').map(function () {\n\t\t\tif ($(this).attr('data-id') != zperfID) { $(this).removeClass('selected'); }\n\t\t\telse { $(this).addClass('selected'); }\n\t\t}).get();\n\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox').children('input[type=\"hidden\"]').map(function () {\n\t\t\tif ($(this).attr('data-perfid') == zperfID) { selectedZoneID = $(this).val(); }\n\t}).get();\n$('.price-types').children('.form-flex').map(function () {\n\tif ($(this).attr('data-perfID') == zperfID) { $(this).removeClass('hide'); }\n\telse { $(this).addClass('hide'); }\n}).get();\n\t\/\/ CONVERTED: Session creation - Simplified with New TNEW Method\n\tif (sessionKey == '' || sessionKey == null) {\n\t\tcreateTNEWSession(function(newSessionKey) {\n\t\t\tsnapToZones(newSessionKey);\n\t\t});\n\t} else {\n\t\tsnapToZones(sessionKey);\t\t\n\t}\n\t});\n\tvar startY;\n\tconst initializeTouchScroll = (selector) => {\n  $(selector).each(function() {\n    \/\/ Ensure each element has its own state\n    const state = {\n      startY: 0,\n      lastScrollTop: 0,\n      velocity: 0,\n      lastUpdateTime: 0,\n      isScrolling: false,\n    };\n\n    $(this).on('touchstart', function(e) {\n      state.startY = e.originalEvent.touches[0].pageY;\n      state.scrollStart = Date.now();\n      state.lastScrollTop = $(this).scrollTop();\n      state.velocity = 0;\n      state.lastUpdateTime = state.scrollStart;\n      state.isScrolling = true;\n    });\n\n    $(this).on('touchmove', function(e) {\n      if (!state.isScrolling) return;\n      e.preventDefault();\n      const touch = e.originalEvent.touches[0];\n      const currentY = touch.pageY;\n      const deltaY = currentY - state.startY;\n\n      \/\/ Correct scroll direction by adding deltaY instead of subtracting\n      $(this).scrollTop(state.lastScrollTop - deltaY);\n      state.lastScrollTop = $(this).scrollTop(); \/\/ Update lastScrollTop\n      state.startY = currentY;\n\n      \/\/ Calculate velocity based on touch movement\n      const currentTime = Date.now();\n      const elapsedTime = currentTime - state.lastUpdateTime;\n      if (elapsedTime > 0) {\n        state.velocity = deltaY \/ elapsedTime;\n        state.velocity = Math.min(Math.max(state.velocity, -2), 2); \/\/ Cap the velocity to control speed\n      }\n      state.lastUpdateTime = currentTime;\n    });\n\n    $(this).on('touchend', function(e) {\n      if (!state.isScrolling) return;\n      state.isScrolling = false;\n\n      const deceleration = 0.1; \/\/ Adjust this value for desired deceleration rate\n      let currentSpeed = state.velocity * 1000; \/\/ Convert to pixels per second\n      let lastScrollTop = $(this).scrollTop();\n\n      const animate = () => {\n        if (Math.abs(currentSpeed) < 0.1) return; \/\/ Stop if the speed is too low\n\n        currentSpeed *= (1 - deceleration); \/\/ Apply deceleration to slow down the speed\n        const scrollAmount = currentSpeed \/ 60; \/\/ 60 frames per second\n        const newScrollTop = lastScrollTop - scrollAmount;\n\n        \/\/ Prevent scrolling beyond the boundaries\n        const maxScrollTop = this.scrollHeight - this.clientHeight;\n        if (newScrollTop < 0) {\n          $(this).scrollTop(0);\n          return;\n        }\n        if (newScrollTop > maxScrollTop) {\n          $(this).scrollTop(maxScrollTop);\n          return;\n        }\n\n        $(this).scrollTop(newScrollTop);\n        lastScrollTop = newScrollTop;\n\n        requestAnimationFrame(animate);\n      };\n\n      requestAnimationFrame(animate);\n    });\n  });\n};\n\n\/\/ Initialize touch scroll for both selectors\ninitializeTouchScroll('.selectPerf .perfDropDownMenu .select-scrollbox ul');\ninitializeTouchScroll('.selectPerfTime .timeDropDownMenu .select-scrollbox ul');\n\t\n\t$('.selectPerfTime .select-flex').on('click tap',function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('.selectPerfTime .select-flex').toggleClass('open');\n\t\t$('.selectPerfTime .timeDropDownMenu').toggleClass('hide');\n\t\t$('.selectPerf .perfDropDownMenu').addClass('hide');\n\t\t$('.selectPerf .select-flex').removeClass('open');\n\t});\n\t\n\t$(document).on('click tap', '.selectPerfTime .timeDropDownMenu ul li', function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('.price-types').removeClass('greyed-out');\t\t\n\t\tselectedZoneID = $(this).attr('data-id');\n\t\tsetZoneMaxFromElement($(this)); \/\/ Capture availability and update display\n\t\t$('.selectPerfTime .option.selected').html($(this).text());\n\t\t$('.selectPerfTime .select-flex').removeClass('open');\n\t\t$('.selectPerfTime .timeDropDownMenu').toggleClass('hide');\n\t\t$('.selectPerfTime .timeDropDownMenu ul').children('li').map(function () {\n\t\t\tif ($(this).attr('data-id') != selectedZoneID) { $(this).removeClass('selected'); }\n\t\t\telse { \n\t\t\t\t$(this).addClass('selected');\n\t\t\t}\n\t\t}).get();\n\t\tnumtixcount = getTotalTickets();\n\t\tif (numtixcount >= 1) {\n\t\t\t$('button.add-to-cart-btn').removeClass('greyed-out');\t\t\n\t\t}\n\t});\n\t\t\n\t$('.buy-tickets form button.add-to-cart-btn').on('click tap',function (e) {\n\t\te.stopImmediatePropagation();\n\t\te.preventDefault();\n\t\tif (!$(this).hasClass('greyed-out')) {\n\t\t\t\/\/console.log('huh - are we getting here?');\n\t\t\tvar priceArray = [];\n\t\t\tvar $form = $(this).parent();\n\t\t\tvar perfID = $('.option.selected').attr('data-id');\n\t\t\tvar $visibleFormFlex = $form.find('.form-flex:not(.hide)');\n\t\t\tvar adulttix = $visibleFormFlex.find('input[name=\"tickets-6\"]').val();\n\t\t\tif (adulttix == null) { adulttix = 0; }\n\t\t\tvar adultpriceID = $visibleFormFlex.find('input[name=\"tickets-6\"]').attr('data-priceTypeId');\n\t\t\tif (adultpriceID == null) { adultpriceID = 6; }\n\t\t\tvar childtix = $visibleFormFlex.find('input[name=\"tickets-7\"]').val();\n\t\t\tif (childtix == null) { childtix = 0; }\n\t\t\tvar childpriceId = $visibleFormFlex.find('input[name=\"tickets-7\"]').attr('data-priceTypeId');\n\t\t\tif (childpriceId == null) { childpriceId = 7; }\n\t\t\t\/\/var pubitem = $form.find('input[name=\"tickets-32\"]').val();\n\t\t\t\/\/var memitem = $form.find('input[name=\"tickets-33\"]').val();\n\t\t\t\/\/console.log('Zone ID: ' + selectedZoneID + ' Adult Tix: ' + adulttix + ' Child Tix: ' + childtix);\n\t\t\tsessionKey = getCookie('sessionKey');\n\t\t\tif (sessionKey != null) {\n\t\t\t\t\/\/console.log('or here? - are we getting here?');\n\t\t\tif (adulttix > 0 || childtix > 0) {\n\t\t\t\t\/\/console.log('we got here');\n\t\t\tif (selectedZoneID != null) { if (selectedZoneID != '') {\n\t\t\t\t\/\/console.log('and what about here?');\n\t\t\t\t\tajaxArray = [];\n\t\t\t\t\t\/\/ajaxArray.push(''); \/\/\n\t\t\t\t\tajaxArray.push('\/api\/Web\/Cart\/{sessionkey}\/Tickets'); \/\/0\n\t\t\t\t\tajaxArray.push(sessionKey); \/\/1\t\t\n\t\t\t\t\tajaxArray.push(perfID); \/\/2\n\t\t\t\t\tajaxArray.push(adulttix); \/\/3\n\t\t\t\t\tajaxArray.push(adultpriceID); \/\/4\n\t\t\t\t\tajaxArray.push(childtix); \/\/5\n\t\t\t\t\tajaxArray.push(childpriceId); \/\/6\n\t\t\t\t\tajaxArray.push(selectedZoneID) \/\/7\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (window.hmns_ajax_router) {\n\t\t\t\t\t\t\tif (window.hmns_ajax_router.ready) {\n\t\t\t\t\t\t\t\t\/\/ Nonce ready - proceed with AJAX call\n\t\t\t\t\t\t\t\trunapiAJAX();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\/\/ Wait for nonce\n\t\t\t\t\t\t\t\t$(document).one('hmns_nonce_ready', function() {\n\t\t\t\t\t\t\t\t\trunapiAJAX();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\/\/ Wait for nonce\n\t\t\t\t\t\t\t$(document).one('hmns_nonce_ready', function() {\n\t\t\t\t\t\t\t\trunapiAJAX();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t} }\telse {\n\t\t\t\t\t$('.cartReturn').text('Please select an entry time before adding to the cart.').removeClass('hide');\t\t\t\n\t\t\t\t} \n\t\t\t}\n\t\t} \n\t}\n});\n\t\n\tfunction snapToZones(sessionKey) {\n\tvar $zform = $('form#addTickets');\n\t\t$('.selectPerfTime').removeClass('greyed-out');\n\t\tperfID = $('.perfDropDownMenu ul li.selected').attr('data-id');\n\t\tvar now = '2026-04-09T20:26:36';\n\t\tvar zloopcount = 0;\n\t\tvar $selectedZoneEl = null;\n\t\tselectedZoneID = '';\n\t\t$('button.add-to-cart-btn').addClass('greyed-out');\n\n\t\tif (zType == 'ga') {\n\t\t\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox').children('input').map(function () {\n\t\t\t\tif ($(this).attr('data-perfid') == perfID) { \n\t\t\t\t\t$(this).addClass('selected-zone'); \n\t\t\t\t\tselectedZoneID = $(this).val();\n\t\t\t\t\t$selectedZoneEl = $(this);\n\t\t\t\t\tzloopcount++;\n\t\t\t\t\tif ($(this).attr('data-avl') == 0) {\n\t\t\t\t\t\t$('.tickets-label').addClass('hide');\t\t\n\t\t\t\t\t\t$('.add-to-cart-btn').addClass('hide');\n\t\t\t\t\t\t$('.sold-out-msg').removeClass('hide');\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('.tickets-label').removeClass('hide');\t\t\n\t\t\t\t\t\t$('.add-to-cart-btn').removeClass('hide');\n\t\t\t\t\t\t$('.sold-out-msg').addClass('hide');\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(this).removeClass('selected-zone');\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}).get();\n\t} else {\n\t\t$('.selectPerfTime .timeDropDownMenu .select-scrollbox ul').children('li').map(function () {\n\t\t\tconst datethis = new Date($(this).attr('data-utmcode'));\n\t\t\tif ($(this).attr('data-perfid') == perfID) {\n\t\t\t\tif (datenow < datethis) {\n\t\t\t\t\t$(this).removeClass('hide');\n\t\t\t\t\tzloopcount++;\t\n\t\t\t\t\tif (!$selectedZoneEl) {\n\t\t\t\t\t\t$selectedZoneEl = $(this);\n\t\t\t\t\t}\n\t\t\t\t\tif ($(this).attr('data-avl') == 0) {\n\t\t\t\t\t\t$('.tickets-label').addClass('hide');\t\t\n\t\t\t\t\t\t$('.add-to-cart-btn').addClass('hide');\n\t\t\t\t\t\t$('.sold-out-msg').removeClass('hide');\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('.tickets-label').removeClass('hide');\t\t\n\t\t\t\t\t\t$('.add-to-cart-btn').removeClass('hide');\n\t\t\t\t\t\t$('.sold-out-msg').addClass('hide');\t\t\t\t\t\t\n\t\t\t\t\t}\t\t\n\t\t\t\t} else { \n\t\t\t\t\t$(this).addClass('hide'); \n\t\t\t\t}\n\t\t\t} else { \n\t\t\t\t$(this).addClass('hide'); \n\t\t\t}\n\t\t}).get();\n\t}\n\t\t\/\/ Set zone availability from selected element\n\t\tif ($selectedZoneEl) {\n\t\t\tsetZoneMaxFromElement($selectedZoneEl);\n\t\t}\n\t\tif (zloopcount >= 1) { \n\t\t\t$('.selectPerfTime').removeClass('greyed-out');\n\t\t\tnumberFields = document.getElementsByClassName('.ticketsField');\n\t\t\tnumtixcount = 0;\n\t\t\tfor (i=0;i<numberFields.length;i++) {\n\t\t\t\tnumtixcount += parseInt(numberFields[i].value);\t\t\n\t\t\t}\n\t\t\tif (numtixcount >= 1) {\n\t\t\t\tif (selectedZoneID != '') {\n\t\t\t\t\t$('button.add-to-cart-btn').removeClass('greyed-out');\n\t\t\t\t}\n\t\t\t}\n\t\t\t$('.tickets-label').removeClass('hide');\n\t\t\tif (zType != 'ga') {\n\t\t\t\t$('.zones-label').removeClass('hide');\n\t\t\t\t$('.selectPerfTime').removeClass('hide');\n\t\t\t} else {\n\t\t\t\t$('.zones-label').addClass('hide');\n\t\t\t\t$('.selectPerfTime').addClass('hide');\n\t\t\t}\n\t\t\t$('.tickets-label').removeClass('hide');\n\t\t\t$('.selectPerf').removeClass('hide');\n\t\t\t$('.add-to-cart-btn').removeClass('hide');\n\t\t\t$('.sold-out-msg').addClass('hide');\n\t\t} else {\n\t\t\t$('.tickets-label').addClass('hide');\n\t\t\t$('.zones-label').addClass('hide');\n\t\t\t$('.selectPerfTime').addClass('hide');\n\t\t\t$('.tickets-label').addClass('hide');\t\n\t\t\tif ($('.selectPerf .perfDropDownMenu .select-scrollbox').html() == '<ul><\/ul>') {\n\t\t\t\t$('.selectPerf').addClass('hide');\t\t\t\t\n\t\t\t}\n\t\t\t$('.add-to-cart-btn').addClass('hide');\n\t\t\t$('.sold-out-msg').removeClass('hide');\t\t\n\t\t}\n\t\t$('.zone-spinner').addClass('hide');\n}\n\t\n\tfunction runapiAJAX() {\n\t\tquery = JSON.stringify(ajaxArray);\n\t\t$.ajax({\n\t\t\ttype : 'post',\n\t\t\turl : hmns_ajax_router.url, \/\/ CONVERTED: Use custom router instead of admin-ajax.php\n\t\t\tbeforeSend: setAjaxHeaders, \/\/ CONVERTED: Add missing security headers\n\t\t\tdata : {\n\t\t\t\taction : 'tessitura_api_interactions',\n\t\t\t\tquery : query\t\t\n\t\t\t},\n\t\t\txhrFields: { withCredentials: true }, \/\/ CONVERTED: Add missing credentials\n\t\t\tbeforeSend : function (xhr) {\n\t\t\t\tsetAjaxHeaders(xhr); \/\/ CONVERTED: Apply headers\n\t\t\t\tif (ajaxArray[0] == '\/api\/Web\/Cart\/{sessionkey}\/Tickets') {\n\t\t\t\t\t$('button.add-to-cart-btn').addClass('hide');\n\t\t\t\t\t$('.add-to-cart-spinner').removeClass('hide');\n\t\t\t\t} else {\n\t\t\t\t\t$('.zone-spinner').removeClass('hide');\n\t\t\t\t\t$('select#selectZone').addClass('greyed-out');\n\t\t\t\t}\n\t\t\t},\n\t\t\tsuccess : function (response) {\n\t\t\t\tif (ajaxArray[0] == '\/api\/Web\/Session' ) {\n\t\t\t\t\t\/\/console.log(response);\n\t\t\t\t\t$('.selectPerfTime').removeClass('greyed-out');\n\t\t\t\t\tsessionKey = response.sessionKey; \/\/ CONVERTED: Handle new structured response\n\t\t\t\t\tsetCookie('sessionKey',sessionKey,30); \/\/ CONVERTED: Use minutes instead of string\n\t\t\t\t\t\/\/ok -- we have a session key, let's get zone info for the production ID\n\t\t\t\t\tsnapToZones(sessionKey);\t\t\t\t\t\n\t\t\t\t} else if (ajaxArray[0] == '\/api\/Web\/Cart\/{sessionkey}') {\n\t\t\t\t\t\/\/ CONVERTED: Handle new structured JSON response (no more string cleanup needed)\n\t\t\t\t\t$('.spinner').addClass('hide');\n\t\t\t\t\t$('.cartInfoReturn').html(JSON.stringify(response)).removeClass('hide');\n\t\t\t} else if (ajaxArray[0] == '\/api\/Web\/Session\/{sessionkey}\/Expiration') {\n\t\t\t\tvar timetoexpiry = response.expirationTime;\n\t\t\t\tsetCookie('sessionTimer',timetoexpiry,30);\n\t\t\t\tvar expiration = new Date(timetoexpiry).getTime();\n\t\t\t\t$('.sessionTimer').removeClass('hide');\n\t\t\t\tvar dst = getCookie('dst') || (isDaylightSavingTimeCentral() ? '1' : '0');\n\t\t\t\tfunction updateTimer() {\n\t    let now = new Date();\n\t    let options = { timeZone: 'America\/Chicago', hour12: false, year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' };\n\t    let formatter = new Intl.DateTimeFormat('en-US', options);\n\t    let parts = formatter.formatToParts(now);\n\t    let [month, day, year, hour, minute, second] = parts.filter(part => part.type !== 'literal').map(part => part.value);\n\t     let cstTime;\n\t    if (dst == '1') {\n\t   \tcstTime = new Date(`${year}-${month}-${day}T${hour}:${minute}:${second}-05:00`).getTime();\n\t\t} else {\n\t\t\tcstTime = new Date(`${year}-${month}-${day}T${hour}:${minute}:${second}-06:00`).getTime();\n\t\t}\n\t    let distance = expiration - cstTime;\n\t    let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) \/ (1000 * 60 * 60));\n\t    let minutes = Math.floor((distance % (1000 * 60 * 60)) \/ (1000 * 60));\n\t    let seconds = Math.floor((distance % (1000 * 60)) \/ 1000);\n\t    if (distance <= 0) {\n\t        $('.sessionTimer').html('');\n\t        window.setTimeout(function () {\n\t            $('.sessionTimer').addClass('hide');\n\t            $('.tessitura-cell.cart .cart-counter span').text('0');\n\t\t\t\t   $('.tessitura-cell.cart').removeClass('populated');\n\t\t\t\t   $('.tessitura-cell.user-menu .logged-in').addClass('hide');\n\t\t\t\t   $('.tessitura-cell.user-menu .logged-out').removeClass('hide');\n\t            $('.cart-expired').removeClass('hide');\n\t        }, 1000);\n\t        clearInterval(window.sessionTimerInterval);\n\t        window.sessionTimerReady = false;\n\t        eat_cookies();\n\t    } else {\n\t        let timeLeft = `Time Left: ${minutes}:${seconds < 10 ? '0' + seconds : seconds}`;\n\t        $('.sessionTimer').html(timeLeft);\n\t    }\n\t}\n\t\n\tif (window.sessionTimerInterval) { clearInterval(window.sessionTimerInterval); }\n\twindow.sessionTimerInterval = setInterval(updateTimer, 1000);\n\twindow.sessionTimerReady = true;\n\tupdateTimer();\n\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\t$('.success-msg').addClass('hide');\n\t\t\t\t\t\t\t$('button.add-to-cart-btn').removeClass('hide');\n\t\t\t\t\t\t},3000);\t\t\t\n\t\t\t} else if (ajaxArray[0] == '\/api\/Web\/Cart\/{sessionkey}\/Tickets') {\n\t\t\t\t$('.add-to-cart-spinner').addClass('hide');\n\t\t\t\t$('.success-msg').removeClass('hide');\n\t\t\t\t$('.buy-tickets a.sessionShareTNEW').remove();\n\t\t\t\t$('.tessitura-cell.cart').removeClass('hide');\n\t\t\t\tupdate_cart(sessionKey);\n\t\t\t\t\tajaxArray = [];\n\t\t\t\t\t\/\/ajaxArray.push('');\n\t\t\t\t\tajaxArray.push('\/api\/Web\/Session\/{sessionkey}\/Expiration');\n\t\t\t\t\tajaxArray.push(sessionKey);\n\t\t\t\t\trunapiAJAX();\n\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t$('.success-msg').addClass('hide');\n\t\t\t\t\t\t$('button.add-to-cart-btn').removeClass('hide');\n\t\t\t\t\t},3000);\n\t\t\t\t} else if (ajaxArray[1] == 'clear') {\n\t\t\t\t\t$('.spinner').addClass('hide');\n\t\t\t\t\t$('button.clearSession').addClass('hide');\n\t\t\t\t\t$('button.createSessionKey').removeClass('hide');\n\t\t\t\t\t$('.sessionKeyReturn').html('Session Key Cleared.');\n\t\t\t\t}\n\t\t\t},\n\terror: function(jqXHR, textStatus, errorThrown) {\n\t\tif (ajaxArray[0] == '\/api\/Web\/Cart\/{sessionkey}\/Tickets') {\n\t\t\t$('.add-to-cart-spinner').addClass('hide');\n\t\t\t$('button.add-to-cart-btn').removeClass('hide');\n\n\t\t\tvar resp = jqXHR.responseJSON || {};\n\t\t\tvar perfDateAttr = $('.perfDropDownMenu ul li.selected').attr('data-utmcode');\n\t\t\tvar refreshMin = 15;\n\t\t\tif (perfDateAttr) {\n\t\t\t\tvar daysOut = Math.floor((new Date(perfDateAttr) - new Date()) \/ 86400000);\n\t\t\t\tif (daysOut > 60) { refreshMin = 60; }\n\t\t\t\telse if (daysOut > 30) { refreshMin = 30; }\n\t\t\t}\n\n\t\t\t$('.sold-out-msg .body-bold').html('Sorry, this item is no longer available. Another shopper has reserved the last available units. Please check back soon &mdash; items held in carts are released if not purchased.');\n\t\t\t$('.sold-out-msg').removeClass('hide');\n\t\t\t$('button.add-to-cart-btn').addClass('hide');\n\n\t\t\tif (resp.error_type == 'tickets_unavailable') {\n\t\t\t} else {\n\t\t\t}\n\t\t}\n\t}\n\t});\n}\n$('.cart-exp-close button').on('click tap',function (e) {\n\te.preventDefault();\n\te.stopImmediatePropagation();\n\t$('.cart-expired').addClass('hide');\n});\nfunction update_cart(sessionKey) {\n\t\tajaxArray = [];\n\t\t\/\/ajaxArray.push('');\n\t\tajaxArray.push('\/api\/Web\/Session\/{sessionkey}');\n\t\tajaxArray.push(sessionKey);\n\t\tquery = JSON.stringify(ajaxArray);\t\n\t\t$.ajax({\n\t\t\ttype : 'post',\n\t\t\turl : hmns_ajax_router.url, \/\/ CONVERTED: Use custom router instead of admin-ajax.php\n\t\t\tbeforeSend: setAjaxHeaders, \/\/ CONVERTED: Add missing security headers\n\t\t\tdata : {\n\t\t\t\taction : 'update_cart_totals',\n\t\t\t\tquery : query\t\t\n\t\t\t},\n\t\t\txhrFields: { withCredentials: true }, \/\/ CONVERTED: Add missing credentials\n\t\t\tsuccess : function (response) {\n\t\t\t\t\/\/ CONVERTED: Handle new structured response format\n\t\t\t\tvar cartCount = response.cartCount || 0;\n\t\t\t\tif (cartCount != 0) {\n\t\t\t\t\t$('.tessitura-cell.cart .cart-counter span').text(cartCount);\n\t\t\t\t\t$('.tessitura-cell.cart').addClass('populated');\n\t\t\t\t\t$('.tessitura-cell.cart').removeClass('hide');\n\t\t\t\t\t\/\/ Hide promo clear button when cart has items\n\t\t\t\t\t$('.promo-clear').addClass('hide');\n\t\t\t\t} else {\n\t\t\t\t\t$('.selectPerfTime').addClass('hide');\n\t\t\t\t\t$('.tessitura-cell.cart').removeClass('populated');\n\t\t\t\t\t$('.sessionTimer').addClass('hide');\n\t\t\t\t\t\/\/ Show promo clear button when cart is empty (if promo exists)\n\t\t\t\t\tif (getCookie('promoCode')) {\n\t\t\t\t\t\t$('.promo-clear').removeClass('hide');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$('.tessitura-cell.cart').removeClass('hide');\n\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\tfunction eat_cookies() {\n\t\tdocument.cookie = \"sessionKey=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=.hmns.org; path=\/;\";\t\n\t\tdocument.cookie = \"sessionTimer=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=.hmns.org; path=\/;\";\n\t\tdocument.cookie = \"modeOfSale=2; domain=.hmns.org; path=\/;\";\n\t\tdocument.cookie = \"promoCode=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=.hmns.org; path=\/;\";\n\t} \n\tfunction getCookie(name) {\n\t    var dc = document.cookie;\n\t    var prefix = name + \"=\";\n\t    var begin = dc.indexOf(\"; \" + prefix);\n\t    if (begin == -1) {\n\t        begin = dc.indexOf(prefix);\n\t        if (begin != 0) return null;\n\t    } else {\n\t        begin += 2;\n\t    }\n\t    var end = dc.indexOf(\";\", begin);\n\t    if (end == -1) {\n\t        end = dc.length;\n\t    }\n\t    \/\/ because unescape has been deprecated, replaced with decodeURI\n\t    \/\/return unescape(dc.substring(begin + prefix.length, end));\n\t    return decodeURI(dc.substring(begin + prefix.length, end));\n\t}\n\tfunction setCookie(name, value, minutes) {\n\t   let expires = \"\";\n\t\tif (minutes) {\n\t   \tconst date = new Date();\n\t\t\tdate.setTime(date.getTime() + (minutes * 60 * 1000)); \/\/ Convert minutes to milliseconds\n\t\t\texpires = \"; expires=\" + date.toUTCString();\n\t\t}\n\t\tdocument.cookie = name + \"=\" + (value || \"\") + expires + \"; path=\/; domain=.hmns.org;\";\n\t} \n\t\n\tvar setAjaxHeaders = window.hmnsSetAjaxHeaders;\n\n\/\/ CONVERTED: Add isDaylightSavingTimeCentral function (from functions.php)\nfunction isDaylightSavingTimeCentral() {\n    const today = new Date();\n    const year = today.getFullYear();\n    \n    \/\/ DST starts on the second Sunday in March\n    const march = new Date(year, 2, 1); \/\/ March 1st\n    const dstStart = new Date(year, 2, 14 - march.getDay()); \/\/ Second Sunday\n    \n    \/\/ DST ends on the first Sunday in November\n    const november = new Date(year, 10, 1); \/\/ November 1st\n    const dstEnd = new Date(year, 10, 7 - november.getDay()); \/\/ First Sunday\n    \n    if (today >= dstStart) {\n        if (today < dstEnd) {\n            return true;\n        }\n    }\n    return false;\n}\n});\n<\/script>\n\n\n \n\t<style type=\"text\/css\">\n\t\t.hmns-gallery-screen-item-main { \n\t\t\twidth: 100%;\n\t\t\tmax-width: 100%;\n\t\t\theight: 0;\n\t\t\tpadding-bottom: 56.25%; \n\t\t\tbox-shadow: 0px 0px 27.2px -1px #000;\n\t\t\tmargin-bottom: 56px;\n\t\t}\n\t\t.hmns-gallery-screen-item-main video {\n\t\t\tposition: absolute;\n\t\t\tmin-width: 100%;\n\t\t\tmin-height: 100%;\t\n\t\t\tz-index: 0;\n\t\t\tleft:50%;\n\t\t\ttop: 50%;\n\t\t\ttransform:translate(-50%,-50%);\n\t\t\twidth: 100%; \n\t\t\theight: 100%;\n\t\t}\n\t\t.hmns-gallery-screen-item-main video.fullscreen {\n\t\t\tposition: fixed;\n\t\t\tz-index: 9999999; \n\t\t\twidth: 100%;\n\t\t\tleft: 0;\n\t\t\ttop: 0;\n\t\t\theight: auto;\t\t\n\t\t\ttransform:translate(0,0);\n\t\t}\n\t\t@media screen and (max-width: 1600px) {\n\t\t\t.hmns-gallery-screen-item-main {\t\t\n\t\t\t\tmargin: 0px auto 56px; \n\t\t\t}\n\t\t}\n\t\t@media screen and (max-width: 768px) {\n\t\t\t.hmns-gallery-screen-item-main { \n\t\t\t\twidth: 100%;\n\t\t\t\tmax-width: 100%;\n\t\t\t\theight: 0; \n\t\t\t\tbox-shadow: 0px 0px 27.2px -1px #000;\n\t\t\t\tmargin-top: 0px;\n\t\t\t\tmargin-bottom: 36px;\n\t\t\t}\t\n\t\t\t.hmns-gallery-screen-item-main video {\n\t\t\t\tposition: absolute;\n\t\t\t\tmin-width: 100%;\n\t\t\t\tmin-height: 100%;\t\n\t\t\t\tz-index: 0;\n\t\t\t\tleft:50%;\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform:translate(-50%,-50%);\n\t\t\t\twidth: auto;\n\t\t\t\theight: 100%; \n\t\t\t}\t\t\n\t\t}\n\t<\/style>\n\n\n<style>\n  #hmns-gallery {\n    max-width: 1400px;\n    margin: 0px auto 0px;\n    padding: 0px 0 0px;\n  }\n  .hmns-gallery-thumbs {\n\t\tdisplay: flex;\n\t\tcolumn-gap: 24px;  \n  }\n  #hmns-gallery .item{\n    width: calc(25% - 3*16px\/4);\n    height: 190px;\n    background-color: #ccc;\n  }\n  \n  @media (max-width: 950px){\n    #hmns-gallery .item{\n      width: calc(33.3333% - 2*16px \/ 3)\n    }\n  }\n  @media (max-width: 750px){\n    #hmns-gallery .item{\n      width: calc(50% - 16px \/ 2);\n      height: 25vw;\n    }\n  }\n  .hmns-gallery-screen{\n    height: 790px;\n    margin-bottom: 16px;\n    background-color: #ccc;\n  }\n  @media (max-width: 1500px){\n    .hmns-gallery-screen{\n      height: 53vw;\n    }\n  }\n  #hmns-gallery .flickity-prev-next-button,\n  #hmns-gallery .flickity-page-dots{\n    display: none;\n  }\n  .hmns-gallery-thumbnail{\n    cursor: default;\n    overflow: hidden;\n  }\n  .hmns-gallery-thumbnail,\n  .hmns-gallery-thumbnail>img{\n    position: absolute; \n    left: 0px;\n    top: 0px;\n    width: 100%;\n    height: 100%;\n  }\n  .hmns-gallery-thumbnail>img{\n    object-fit: cover;\n    object-position: center;\n    -o-object-fit: cover;\n    -o-object-position: center;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n  }\n  .hmns-gallery-thumbnail:not(.have-title):hover img{\n    -moz-transform: scale(1.2);\n    -webkit-transform: scale(1.2);\n    -o-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2);\n  }\n  .hmns-gallery-thumbnail .z-title{\n    position: absolute;\n    left: 0px;\n    bottom: 0px;\n    width: 100%;\n    padding: 15px;\n    display: flex;\n    align-items:center;\n    justify-content: center;\n\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n\n    min-height: 70px;\n\n    -moz-transform: translateY(100%);\n    -webkit-transform: translateY(100%);\n    -o-transform: translateY(100%);\n    -ms-transform: translateY(100%);\n    transform: translateY(100%);\n\n    background-color: #111111;\n    color: white;\n\n    font-family: 'Sentinel Semibold';\n    font-size: 18px;\n\n\n    text-align: center;\n  }\n  .hmns-gallery-thumbnail.have-title:hover img{\n    top: -70px;\n  }\n  .hmns-gallery-thumbnail.have-title:hover .z-title{\n    -moz-transform: translateY(0%);\n    -webkit-transform: translateY(0%);\n    -o-transform: translateY(0%);\n    -ms-transform: translateY(0%);\n    transform: translateY(0%);\n  }\n\n\n  .hmns-gallery-screen{\n    position: relative;\n    overflow: hidden;\n  }\n  .hmns-gallery-screen-item{\n    position: absolute;\n    background-color: rgba(0,0,0,0.5);\n    left:0px;\n    top:0px;\n    width: 100%;\n    height: 100%;\n\n    opacity: 0;\n    z-index: 1;\n\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n  }\n  .hmns-gallery-screen-item.active{\n    opacity: 1;\n    z-index: 5;\n  }\n  .hmns-gallery-photo>img,\n  .hmns-gallery-mp4>video{\n    display: block;\n    position: absolute;\n    left: 0px;\n    top:0px;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center;\n    -o-object-fit: cover;\n    -o-object-position: center;\n  }\n  .hmns-gallery-youtube>iframe{\n    display: block;\n    position: absolute;\n    left:0px;\n    top: 0px;\n    width: 100%;\n    height: 100%;\n  }\n  .hmns-gallery-screen-item-main{\n    opacity: 1;\n    z-index: 2;\n  }\n  .hmns-gallery-screen-item-main>*{\n    display: block;\n    position: absolute;\n    object-fit: cover;\n    object-position: center;\n    -o-object-fit: cover;\n    -o-object-position: center;\n    left: 0px;\n    top: 0px;\n    width: 100%;\n    height: 100%;\n  }\n  .hmns-gallery-screen-item-main>script{\n    display: none;\n  }\n  \n .hmns-gallery-screen .button-bar {\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\tbottom: 48px;\n\t\ttransform:translate(-50%,0);\t\n\t\tdisplay: flex; \n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: max-content;\n\t\tgap: 12px;\n\t\tz-index: 9999999999;\n\t}\n\t.hmns-gallery-screen .fullscreen-bar {\n\t\tposition: absolute;\n\t\ttop: 12px;\n\t\tright: 12px;\n\t\tz-index: 99999999999;\t\n\t}\n\t.hmns-gallery-screen .fullscreen-bar.fsfix {\n\t\tposition: fixed;\n\t\ttop: 48px;\n\t\tright: 48px;\n\t\tz-index: 99999999999;\t\n\t}\n\t.pause, .play, .fs-vid, .exitfs-vid { line-height:1; }\n\t.pause svg, .play svg { width: 48px;height:48px; }\n\t.fs-vid svg, .exitfs-vid svg { width: 32px;height:32px; }\n\t.pause:hover, .play:hover, .fs-vid:hover, .exitfs-vid:hover { cursor: pointer; }\n  .hmns-gallery-screen .button-bar.bfix {\n\t\tposition: fixed;\n\t\tbottom:48px;\n\t\tleft: 50%;\n\t\ttransform:translate(-50%,0);\n\t\tz-index: 9999999999999;\t\n\t\t\n\t}\n @media screen and (max-width: 1024px) {\n.hmns-gallery-screen .button-bar {\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\tbottom: 16px;\n\t\ttransform:translate(-50%,0);\t\n\t}\n\t.bfix {\n\t\tposition: fixed;\n\t\tbottom:60px;\n\t\tleft: 50%;\n\t\ttransform:translate(-50%,0);\n\t\tz-index: 9999999999999;\t\n\t\t\n\t}\n\t.hmns-gallery-screen .fullscreen-bar {\n\t\tposition: absolute;\n\t\ttop: 12px;\n\t\tright: 12px;\n\t\tz-index: 99999999999;\t\n\t}\n\t.hmns-gallery-screen .fullscreen-bar.fsfix {\n\t\tposition: fixed;\n\t\ttop: 12px;\n\t\tright: 12px;\n\t\tz-index: 99999999999;\t\n\t}\n}\n<\/style>\n<section id=\"hmns-gallery\">\n    <div class=\"hmns-gallery-screen\">\n    \n\n         \n      <div class=\"hmns-gallery-screen-item hmns-gallery-screen-item-main\">\n                  <!--<iframe frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\"width=\"800\" height=\"443\" type=\"text\/html\" src=\"https:\/\/www.youtube.com\/embed\/95NydoN4oio?rel=0&modestbranding=1&autohide=1&mute=1&showinfo=0&controls=0&autoplay=1\" allow=\"autoplay\"><\/iframe>-->\n          <div id=\"hmns-gallery-yt-player\"><\/div>\n          <script src=\"https:\/\/www.youtube.com\/player_api\"><\/script>\n          <script>\n            \/*var tag = document.createElement('script');\n            tag.src = \"http:\/\/www.youtube.com\/player_api\";\n            var firstScriptTag = document.getElementsByTagName('script')[0];\n            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);*\/\n\n            var playerYT;\n            window.playerYT = null;\n            function onYouTubePlayerAPIReady() {\n                window.playerYT = new YT.Player('hmns-gallery-yt-player', {\n                    \/*height: '315',\n                    width: '560',*\/\n                    videoId: '95NydoN4oio',\n                    playerVars:{\n                      \/\/'autoplay': 1, \n                      'controls': 1,\n                      'autohide': 1,\n                      'loop': 1,\n                    },\n                    events: {\n                      'onReady': function(event){\n                        \/\/event.target.playVideo(); \n                        \/*\n                        event.target.mute();*\/\n                      },\n                      'onStateChange': function(event){\n                      }\n                    }\n                    \n                });\n                \/*document.getElementById('resume').onclick = function() {\n                    playerYT.playVideo();\n                };\n                document.getElementById('pause').onclick = function() {\n                    player.pauseVideo();\n                };*\/\n            }\n          <\/script>\n                <\/div>\n      \n    <div class=\"hmns-gallery-screen-item hmns-gallery-photo\"><\/div>\n    <div class=\"hmns-gallery-screen-item hmns-gallery-mp4\"><\/div>\n    <div class=\"hmns-gallery-screen-item hmns-gallery-youtube\"><\/div>\n    \n\n  <\/div>\n  \n  \n\n\n\n\n<\/section>\n<script>\n const ZG_MEDIA_TYPE_IMAGE = 'image';\n  const ZG_MEDIA_TYPE_VIDEO_MP4 = 'video';\n  const ZG_MEDIA_TYPE_YOUTUBE_ID = 'youtube';\n  const ZGalleryData = [{\"itIsMain\":true,\"type\":\"youtube\",\"thumbnail\":null,\"title\":\"\",\"photo\":false,\"photoalt\":\"\",\"mp4\":false,\"youtube_id\":\"95NydoN4oio\"}];\n  const ZGalleryMainItem = {\"itIsMain\":true,\"type\":\"youtube\",\"thumbnail\":null,\"title\":\"\",\"photo\":false,\"photoalt\":\"\",\"mp4\":false,\"youtube_id\":\"95NydoN4oio\"};\n jQuery(document).ready(function($){\t  \n if(window['$']==null)window['$'] = jQuery;  \n\t$('.hmns-gallery-screen .play').on('keydown',function (e) {\n\t\tif (e.keyCode == 32) {\n\t\t\te.preventDefault();\n\t\t\t$('video#hmns-gallery-video').trigger('play');\n\t\t\t$('.hmns-gallery-screen .button-bar .play').addClass('hide');\n\t\t\t$('.hmns-gallery-screen .button-bar .pause').removeClass('hide').focus();\n\t\t}\n\t});\n\t$('.hmns-gallery-screen .pause').on('keydown',function (e) {\n\t\tif (e.keyCode == 32) {\n\t\t\te.preventDefault();\n\t\t\t$('video#hmns-gallery-video').trigger('pause');\n\t\t\t$('.hmns-gallery-screen .button-bar .pause').addClass('hide');\n\t\t\t$('.hmns-gallery-screen .button-bar .play').removeClass('hide').focus();\n\t\t}\n\t});\n\t$('.hmns-gallery-screen .fs-vid').on('click tap',function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('#hmns-gallery video').addClass('fullscreen');\n\t\t$(this).addClass('hide');\n\t\t$('.hmns-gallery-screen .fullscreen-bar .exitfs-vid').removeClass('hide');\n\t\t$('.hmns-gallery-screen .button-bar').addClass('bfix');\n\t\t$('.hmns-gallery-screen .fullscreen-bar').addClass('fsfix');\n\t\t$('header#header').addClass('hide');\n\t\t$('.top-nav').addClass('hide'); \n\t});\n\t$('.hmns-gallery-screen .exitfs-vid').on('click tap',function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('#hmns-gallery video').removeClass('fullscreen');\n\t\t$(this).addClass('hide');\n\t\t$('.hmns-gallery-screen .fullscreen-bar .fs-vid').removeClass('hide');\n\t\t$('.hmns-gallery-screen .button-bar').removeClass('bfix');\n\t\t$('.hmns-gallery-screen .fullscreen-bar').removeClass('fsfix');\n\t\t$('header#header').removeClass('hide');\n\t\t$('.top-nav').removeClass('hide');\n\t});\n\t$('.hmns-gallery-screen .fs-vid').on('keydown',function (e) {\n\t\tif (e.keyCode == 32) {\n\t\t\te.preventDefault();\n\t\t\t$('#hmns-gallery video').addClass('fullscreen');\n\t\t\t$(this).addClass('hide');\n\t\t\t$('.hmns-gallery-screen .fullscreen-bar .exitfs-vid').removeClass('hide');\n\t\t\t$('.hmns-gallery-screen .button-bar').addClass('bfix');\n\t\t\t$('.hmns-gallery-screen .fullscreen-bar').addClass('fsfix');\n\t\t\t$('header#header').addClass('hide');\n\t\t\t$('.top-nav').addClass('hide');\n\t\t}\n\t});\n\t$('.hmns-gallery-screen .exitfs-vid').on('keydown',function (e) {\n\t\tif (e.keyCode == 32) {\n\t\t\te.preventDefault();\n\t\t\t$('#hmns-gallery video').removeClass('fullscreen');\n\t\t\t$(this).addClass('hide');\n\t\t\t$('.hmns-gallery-screen .fullscreen-bar .fs-vid').removeClass('hide');\n\t\t\t$('.hmns-gallery-screen .button-bar').removeClass('bfix');\n\t\t\t$('.hmns-gallery-screen .fullscreen-bar').removeClass('fsfix');\n\t\t\t$('header#header').removeClass('hide');\n\t\t\t$('.top-nav').removeClass('hide');\n\t\t}\n\t});\n\t$('.hmns-gallery-screen .pause').on('click tap',function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('video#hmns-gallery-video').trigger('pause');\n\t\t$('.hmns-gallery-screen .button-bar .pause').addClass('hide');\n\t\t$('.hmns-gallery-screen .button-bar .play').removeClass('hide');\n\t});\n\t$('.hmns-gallery-screen .play').on('click tap',function (e) {\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\t\t$('video#hmns-gallery-video').trigger('play');\n\t\t$('.hmns-gallery-screen .button-bar .play').addClass('hide');\n\t\t$('.hmns-gallery-screen .button-bar .pause').removeClass('hide');\n\t});\n\n \n });\n function ______ZGalleryThumbONMouseOver(index_data){\n    clearTimeout(window.__IndexTimeoutYoutubeGalleryClose);\n    const data = ZGalleryData[index_data];\n    if(data.type==ZG_MEDIA_TYPE_IMAGE){\n      $('.hmns-gallery-photo').html(`<img decoding=\"async\" src=\"${data.photo}\" alt=\"${data.photoalt}\" \/>`);\n      $('.hmns-gallery-photo').addClass('active');\n      $('.button-bar').addClass('hide');\n      $('.fullscreen-bar').addClass('hide');\n    }\n    else if(data.type==ZG_MEDIA_TYPE_VIDEO_MP4){\n      \/*<video width=\"320\" height=\"240\" controls>\n        <source src=\"movie.mp4\" type=\"video\/mp4\">\n        <source src=\"movie.ogg\" type=\"video\/ogg\">\n        Your browser does not support the video tag.\n      <\/video>*\/\n      $('.hmns-gallery-mp4').html(`<video loop muted autoplay><source src=\"${data.mp4}\" type=\"video\/mp4\"><\/video>`);\n      $('.hmns-gallery-mp4').addClass('active');\n    }\n    else if(data.type==ZG_MEDIA_TYPE_YOUTUBE_ID){\n    \t$('.button-bar').addClass('hide');\n    \t$('.fullscreen-bar').addClass('hide');\n      \/\/<iframe frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\"width=\"800\" height=\"443\" type=\"text\/html\" src=\"https:\/\/www.youtube.com\/embed\/ah3S2-kK_VU?autoplay=1&#038;fs=0&#038;iv_load_policy=3&#038;showinfo=0&#038;rel=0&#038;cc_load_policy=0&#038;start=0&#038;end=0\"><\/iframe>\n      $('.hmns-gallery-youtube').html(`<iframe frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\"width=\"800\" height=\"443\" type=\"text\/html\" src=\"https:\/\/www.youtube.com\/embed\/${data.youtube_id}?rel=0&#038;modestbranding=1&#038;autohide=1&#038;mute=1&#038;showinfo=0&#038;controls=0&#038;autoplay=1\" allow=\"autoplay\"><\/iframe>`);\n      $('.hmns-gallery-youtube').addClass('active');\n    }\n\n    if(window.playerYT!=null){\n      window.playerYT.pauseVideo();\n    }\n    if(window.ZGalleryPlayer!=null){\n      window.ZGalleryPlayer.pause();\n    }\n  }\n  function ______ZGalleryThumbONMouseOut(index_data){\n    const data = ZGalleryData[index_data];\n    $('.hmns-gallery-photo').removeClass('active');\n    $('.hmns-gallery-mp4').removeClass('active');\n    $('.hmns-gallery-youtube').removeClass('active');\n    window.__IndexTimeoutYoutubeGalleryClose = setTimeout(function(){\n      $('.hmns-gallery-youtube').html('');\n    }, 300);\n    $('.button-bar').removeClass('hide');\n    $('.fullscreen-bar').removeClass('hide');\n  }\n<\/script>\n\n<style type=\"text\/css\">\n\t#full-width-columns {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tpadding: 50px 0 50px;\n\t\tmargin: 0px 0 0px;  \n\t\theight: 600px;\n\t}\n\t#full-width-columns div { position: relative; }\n\t#full-width-columns .fw-grid-container {\n\t\tposition: absolute;\n\t\twidth: 100vw;\n\t\theight: 100%;\n\t\tleft: 50%;\n\t\ttop: 0;\n\t\ttransform: translate(-50%,0);\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr 1fr 1fr;\t\n\t\tcolumn-gap:4px;\n\t}\n\t#full-width-columns .column {\t\n\t}\n\t#full-width-columns .column .column-content {\n\t\ttext-align: center;\n\t\tz-index: 1;\n\t\tfont-weight: bold;\n\t\tposition: absolute;\n\t\tbackground:white;\n\t\tpadding: 48px;\n\t\tbottom: 38px;\n\t\tleft: 48px;\n\t\tright: 48px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tgap: 48px;\n\t}\n\t#full-width-columns .column-content h3.column-title {\n\t\tfont-size:\t35px;\n\t\tfont-family: 'Sentinel Semibold';\n\t\tfont-weight: 375;\n\t}\n\t\n<\/style>\n<style type=\"text\/css\">\n@media screen and (max-width: 1920px) {\n\t#full-width-columns {\n\tposition: relative;\n\twidth: 100%;\n\tpadding: 50px 0 0;\n\tmargin: 0px 0 0px;\n\theight: auto !important;\n}\n#full-width-columns .fw-grid-container {\n\tposition: relative;\n\twidth: 100vw;\n\theight: 100%;\n\tleft: 50%;\n\ttop: 0;\n\ttransform: translate(-50%,0);\n\tdisplay: grid;\n\tgrid-template-columns: 1fr;\n\tcolumn-gap: 4px;\n}\n#full-width-columns .column .column-content {\n\ttext-align: center;\n\tz-index: 1;\n\tfont-weight: bold;\n\tposition: relative;\n\tbackground: white;\n\tpadding: 48px;\n\tbottom: unset;\n\tleft: unset;\n\tright: unset;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 48px;\n\tmargin: 48px;\n}\n}\n<\/style>\n<section id=\"full-width-columns\">\n\t<div class=\"fw-grid-container\"><div class=\"column\" style=\"background-image:url(https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/06\/Cockrell-Butterfly-Center.png);background-size:cover;background-position:center center;background-repeat:no-repeat;\"><div class=\"column-content\"><h3 class=\"column-title\">Cockrell Butterfly Center<\/h3><a href=\"\/cockrell-butterfly-center\/\" target=\"_self\" aria-label=\"\" class=\"cta alt\">Explore Attraction<\/a><\/div><\/div><div class=\"column\" style=\"background-image:url(https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Full_Width_Column_Exhibits.jpg);background-size:cover;background-position:center center;background-repeat:no-repeat;\"><div class=\"column-content\"><h3 class=\"column-title\">View All Exhibitions<\/h3><a href=\"\/hmns-exhibits\/\" target=\"_self\" aria-label=\"\" class=\"cta alt\">Explore Exhibitions<\/a><\/div><\/div><div class=\"column\" style=\"background-image:url(https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/06\/Wortham-Giant-Screen-Theater.png);background-size:cover;background-position:center center;background-repeat:no-repeat;\"><div class=\"column-content\"><h3 class=\"column-title\">Wortham Giant Screen Theatre<\/h3><a href=\"\/giant-screen-theatre\/\" target=\"_self\" aria-label=\"\" class=\"cta alt\">Explore Attraction<\/a><\/div><\/div><\/div>\n<\/section>\n<script>\n\tjQuery(document).ready(function ($) {\n\t\tvar wwidth = $(window).width();\n\t\tvar columnheight;\n\t\tif (wwidth >= 1601) { \n\t\t\tcolumnheight = $('.fw-grid-container .column').height() + 50;\n\t\t} \t\t\n\t\t$('#full-width-columns').height(columnheight);\n\t\t$(window).resize(function () {\n\t\t\tvar wwidth = $(window).width();\n\t\t\tif (wwidth >= 1601) {\n\t\t\t\tcolumnheight = $('.fw-grid-container .column').height();\n\t\t\t\t$('#full-width-columns').height(600);\n\t\t\t}\n\t\t});\n\t});\n<\/script>","protected":false},"excerpt":{"rendered":"<p>Embark on an Intergalactic Journey to Understand the Immense Power and Mind-Bending Nature of Black Holes<\/p>\n","protected":false},"featured_media":1230,"template":"","venue":[15],"wf_films_folders":[],"class_list":["post-1159","films","type-films","status-publish","has-post-thumbnail","hentry","venue-planetarium"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Black Holes - HMNS<\/title>\n<meta name=\"description\" content=\"Embark on an Intergalactic Journey to Understand the Immense Power and Mind-Bending Nature of Black Holes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hmns.org\/films\/black-holes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Black Holes - Houston Museum of Natural Science\" \/>\n<meta property=\"og:description\" content=\"Embark on an Journey to Understand the Nature of Black Holes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hmns.org\/films\/black-holes\/\" \/>\n<meta property=\"og:site_name\" content=\"HMNS\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-31T17:19:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Black Holes - Houston Museum of Natural Science\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hmns.org\/films\/black-holes\/\",\"url\":\"https:\/\/www.hmns.org\/films\/black-holes\/\",\"name\":\"Black Holes - HMNS\",\"isPartOf\":{\"@id\":\"https:\/\/www.hmns.org\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hmns.org\/films\/black-holes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hmns.org\/films\/black-holes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg\",\"datePublished\":\"2025-03-08T06:01:03+00:00\",\"dateModified\":\"2026-03-31T17:19:47+00:00\",\"description\":\"Embark on an Intergalactic Journey to Understand the Immense Power and Mind-Bending Nature of Black Holes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hmns.org\/films\/black-holes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hmns.org\/films\/black-holes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hmns.org\/films\/black-holes\/#primaryimage\",\"url\":\"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg\",\"contentUrl\":\"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hmns.org\/films\/black-holes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hmns.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Black Holes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hmns.org\/#website\",\"url\":\"https:\/\/www.hmns.org\/\",\"name\":\"Houston Museum of Natural Science\",\"description\":\"Explore, Engage, Enlighten\",\"alternateName\":\"HMNS\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hmns.org\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Black Holes - HMNS","description":"Embark on an Intergalactic Journey to Understand the Immense Power and Mind-Bending Nature of Black Holes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hmns.org\/films\/black-holes\/","og_locale":"en_US","og_type":"article","og_title":"Black Holes - Houston Museum of Natural Science","og_description":"Embark on an Journey to Understand the Nature of Black Holes.","og_url":"https:\/\/www.hmns.org\/films\/black-holes\/","og_site_name":"HMNS","article_modified_time":"2026-03-31T17:19:47+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_title":"Black Holes - Houston Museum of Natural Science","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hmns.org\/films\/black-holes\/","url":"https:\/\/www.hmns.org\/films\/black-holes\/","name":"Black Holes - HMNS","isPartOf":{"@id":"https:\/\/www.hmns.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hmns.org\/films\/black-holes\/#primaryimage"},"image":{"@id":"https:\/\/www.hmns.org\/films\/black-holes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg","datePublished":"2025-03-08T06:01:03+00:00","dateModified":"2026-03-31T17:19:47+00:00","description":"Embark on an Intergalactic Journey to Understand the Immense Power and Mind-Bending Nature of Black Holes.","breadcrumb":{"@id":"https:\/\/www.hmns.org\/films\/black-holes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hmns.org\/films\/black-holes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hmns.org\/films\/black-holes\/#primaryimage","url":"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg","contentUrl":"https:\/\/www.hmns.org\/wp-content\/uploads\/2023\/07\/Hero_Films_BlackHoles_text.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.hmns.org\/films\/black-holes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hmns.org\/"},{"@type":"ListItem","position":2,"name":"Black Holes"}]},{"@type":"WebSite","@id":"https:\/\/www.hmns.org\/#website","url":"https:\/\/www.hmns.org\/","name":"Houston Museum of Natural Science","description":"Explore, Engage, Enlighten","alternateName":"HMNS","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hmns.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/www.hmns.org\/wp-json\/wp\/v2\/films\/1159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hmns.org\/wp-json\/wp\/v2\/films"}],"about":[{"href":"https:\/\/www.hmns.org\/wp-json\/wp\/v2\/types\/films"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hmns.org\/wp-json\/wp\/v2\/media\/1230"}],"wp:attachment":[{"href":"https:\/\/www.hmns.org\/wp-json\/wp\/v2\/media?parent=1159"}],"wp:term":[{"taxonomy":"venue","embeddable":true,"href":"https:\/\/www.hmns.org\/wp-json\/wp\/v2\/venue?post=1159"},{"taxonomy":"wf_films_folders","embeddable":true,"href":"https:\/\/www.hmns.org\/wp-json\/wp\/v2\/wf_films_folders?post=1159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}