:root{--bg:#030000;--text:#f3f3f3;--muted:#c4c0c0;--red:#ff3333;--line:#652525;--display:'UnifrakturCook',Georgia,serif;--body:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif}
.haunt-carousel{position:relative;margin-top:32px;outline-offset:5px}.carousel-slide{margin:0 0 24px}.carousel-slide img{width:100%;max-height:720px;object-fit:contain;background:#080303}.carousel-slide figcaption{padding:16px 20px;color:var(--muted);font-size:14px}.carousel-ready{border:1px solid var(--line);background:rgba(0,0,0,.75)}.carousel-ready .carousel-slide{margin:0}.carousel-ready .carousel-slide img{height:clamp(300px,48vw,620px);width:100%;object-fit:contain}.carousel-ready .carousel-slide figcaption{padding-bottom:60px}.carousel-arrow{position:absolute;top:40%;width:52px;height:64px;border:0;background:rgba(0,0,0,.3);color:#fff;font-size:48px;line-height:1;opacity:0;transition:opacity .2s;min-width:44px;min-height:44px}.carousel-prev{left:12px}.carousel-next{right:12px}.haunt-carousel:hover .carousel-arrow,.haunt-carousel:focus-within .carousel-arrow{opacity:1}.carousel-bottom{position:absolute;bottom:12px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;color:var(--muted)}.carousel-pause{min-height:44px;padding:8px 12px;border:1px solid var(--line);background:transparent;color:#fff}.carousel-pause:hover{background:#300000}@media(hover:none){.carousel-arrow{opacity:.8}}@media(prefers-reduced-motion:reduce){.carousel-arrow{transition:none}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.7 var(--body);isolation:isolate}body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--site-art) center/100% 100% no-repeat}header,main,footer,.mobile-ticket{position:relative;z-index:1}a{color:inherit;text-decoration:none}button,input{font:inherit}a,button,input,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #fff;outline-offset:4px}button{cursor:pointer}h1,h2{font-family:var(--display);font-weight:700;color:#ff2424;line-height:1.12;margin:0}h1{font-size:clamp(58px,6vw,88px)}h2{font-size:clamp(36px,4vw,60px)}h3{font:600 24px/1.35 var(--body);margin:12px 0}p{margin:22px 0}img{max-width:100%;height:auto;display:block}.eyebrow{font:600 11px/1.5 var(--body);letter-spacing:1.7px;text-transform:uppercase;color:var(--muted);margin:0 0 22px}.section{padding:74px 9%;background:rgba(3,0,0,.68);border-top:1px solid var(--line)}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;white-space:nowrap;padding:14px 22px;min-height:48px;background:#c90000;color:#fff;font-size:14px;font-weight:600;border:1px solid transparent}.button:hover{background:#ec0000}.button.light{background:#eee;color:#170000}.text-link{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid #a47878;font-size:14px;font-weight:600}.text-link:hover{color:#ff7777}.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.skip{position:absolute;top:-100px;left:16px;background:#fff;color:#000;padding:12px;z-index:10}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}
header{position:sticky;top:0;display:flex;align-items:center;gap:20px;padding:5px 6%;min-height:82px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.94);z-index:5}.brand{margin-right:auto;flex-shrink:0}.brand img{width:120px;height:76px;object-fit:contain}header nav{display:flex;gap:8px}header nav a{padding:10px;white-space:nowrap;font-size:13px;font-weight:500;min-height:44px;display:flex;align-items:center}.header-ticket{padding:10px 16px;gap:12px}.menu-toggle{display:none}
.hero{padding:65px 9%;display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:45px;background:rgba(0,0,0,.25)}.hero-copy{max-width:42ch;color:var(--muted);font-size:17px}.hero-schedule{font-size:19px;line-height:1.7;margin:25px 0}.hero-schedule strong,.hero-schedule span{display:block}.hero-schedule strong{font-weight:600}.hero-schedule span{font-size:16px}.hero-logo{width:100%;max-width:400px;justify-self:end}.hero-age{font-size:13px;color:#ddd;margin-bottom:0}
.visit,.experience,.faq,.contact{display:grid;grid-template-columns:1fr 1fr;gap:50px}.visit>div>p{max-width:46ch;color:var(--muted)}.visit-panel{border-top:1px solid var(--line)}.visit-row{padding:22px 0;border-bottom:1px solid var(--line)}.visit-row .eyebrow{display:block;margin-bottom:5px}.visit-row p{margin:10px 0;color:var(--muted);font-size:15px}.age-note{grid-column:1/-1;display:flex;align-items:center;gap:25px;padding:20px;border:1px solid #ad600c;background:rgba(24,10,0,.85)}.age-note img{width:360px;max-width:65%}.age-note p{margin:0;font-size:16px;font-weight:600}.visit-notes{grid-column:1/-1}.schedule-list{list-style:none;padding:0;margin:16px 0}.schedule-list li{margin:10px 0}.schedule-list a{display:inline-block;min-height:30px;text-decoration:underline;text-underline-offset:4px}.experience p{margin-top:0;color:var(--muted);max-width:48ch}
.local-video-layout{display:grid;grid-template-columns:1fr minmax(240px,340px);gap:50px;align-items:center}.local-video-player{width:100%;aspect-ratio:9/16;position:relative;border:1px solid #a33636;background:#000;box-shadow:0 0 25px #430000}.local-video-player video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.video-audio-controls{position:absolute;bottom:0;left:0;right:0;display:flex;gap:12px;align-items:center;padding:25px 12px 12px;background:linear-gradient(transparent,rgba(0,0,0,.95))}.video-audio-controls button,.video-extras button,.video-error button{color:#fff;border:1px solid #a33636;background:#1a0000;min-height:44px;padding:8px 12px;font-size:13px;white-space:nowrap}.video-audio-controls input{flex:1;min-width:0;width:100%;height:44px;accent-color:#ff3333}.video-extras{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:12px}.video-extras span{font-size:13px;color:var(--muted)}.video-error{font-size:14px}.video-error a{text-decoration:underline}
.story-intro{font-size:21px;max-width:60ch}.story-ending{font-size:20px;color:#ff6666;font-weight:600;max-width:65ch}.story-details{margin:28px 0}.story-chapters{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;padding-top:20px}.story-chapters h3{font-size:19px}.story-chapters p{font-size:16px;color:var(--muted);margin:12px 0}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.gallery-grid figure{margin:0}.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--line)}figcaption{color:var(--muted);font-size:14px;margin-top:12px}.fear-grid{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);padding:0;gap:14px;margin:28px 0}.fear-grid li{padding:15px 18px;border:1px solid var(--line);background:rgba(38,0,0,.65)}.fear-art img{max-width:620px;margin:25px auto 0}.volunteer{background:linear-gradient(90deg,rgba(45,0,0,.86),rgba(0,0,0,.6))}.volunteer p{max-width:52ch}.questions{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:18px 0}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font-size:16px;font-weight:600;min-height:32px;align-items:center}summary::-webkit-details-marker{display:none}summary::after{content:'+';color:#ff7777;font-size:24px;line-height:1}details[open]>summary::after{content:'-'}details p{color:var(--muted);font-size:15px}.contact-links{align-self:center}.contact-links a{display:flex;flex-direction:column;padding:20px 0;border-bottom:1px solid var(--line);gap:8px}.contact-links span{font-size:13px;color:var(--muted)}.contact-links strong{font-size:23px;font-weight:600;overflow-wrap:anywhere}.contact-links a:last-child strong{font-size:18px}.final-call{text-align:center;background:radial-gradient(ellipse at center,rgba(60,0,0,.5),rgba(0,0,0,.65))}.final-call h2{font-size:clamp(50px,7vw,90px);margin:0 0 28px}.final-call .eyebrow{margin-bottom:25px}footer{background:rgba(0,0,0,.9);border-top:1px solid var(--line);padding:24px 6%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px}footer nav{display:flex;gap:20px}footer a{min-height:44px;display:flex;align-items:center}.mobile-ticket{display:none}
@media(max-width:1000px){header{flex-wrap:wrap;gap:12px;padding:3px 5%}.brand img{width:96px;height:65px}.menu-toggle{display:block;background:transparent;border:1px solid #723333;color:#fff;padding:8px 12px;min-height:44px;font-size:13px}.header-ticket{font-size:13px;padding:10px 14px}header nav{order:5;width:100%;flex-wrap:wrap;padding-bottom:12px}.menu-ready header nav{display:none}.menu-ready header nav[data-open=true]{display:flex}.menu-ready header nav a{flex:1 0 40%;padding:12px;min-height:44px}.hero{gap:25px}.hero-logo{max-width:270px}.visit,.experience,.contact,.faq{gap:30px}}
@media(max-width:760px){html{scroll-padding-top:86px}body{padding-bottom:64px}.hero{display:block;padding:30px 8% 32px}.hero .eyebrow{font-size:10px;letter-spacing:1px;margin-bottom:15px}.hero h1{font-size:clamp(44px,13vw,58px)}.hero-copy{font-size:16px;line-height:1.65;margin:18px 0;max-width:100%}.hero-schedule{font-size:17px;margin:18px 0}.hero-schedule span{font-size:14px}.hero-logo{display:none}.actions{gap:12px;flex-wrap:nowrap}.button{gap:12px;font-size:13px;padding:12px 17px}.text-link{font-size:13px}.hero-age{font-size:12px;margin-top:15px}.section{padding:42px 8%}h2{font-size:38px}.visit,.experience,.contact,.faq,.local-video-layout{grid-template-columns:1fr;gap:28px}.visit-row h3{font-size:23px}.age-note{padding:16px;flex-direction:column;align-items:flex-start;gap:12px}.age-note img{width:100%;max-width:100%}.age-note p{font-size:14px}.local-video-player{max-width:330px;margin:auto}.story-intro{font-size:18px}.story-ending{font-size:17px}.story-chapters,.gallery-grid{grid-template-columns:1fr}.fear-grid{grid-template-columns:1fr 1fr;gap:10px}.fear-grid li{font-size:14px;padding:12px}.contact-links strong{font-size:23px}.contact-links a:last-child strong{font-size:17px}footer{flex-direction:column;align-items:flex-start;padding:20px 8%;gap:10px}.mobile-ticket{position:fixed;bottom:0;left:0;right:0;z-index:6;display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:10px 7% max(10px,env(safe-area-inset-bottom));background:#b40000;border-top:1px solid #ff7777;font-size:14px;font-weight:600;white-space:nowrap}.mobile-ticket span:first-of-type{font-size:11px;font-weight:400}.video-extras{font-size:13px}}
@media(max-width:350px){.actions{flex-wrap:wrap}.mobile-ticket span:first-of-type{display:none}.header-ticket{padding:10px}.brand img{width:80px}.menu-toggle{padding:8px}.fear-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


.brand-description{font-size:15px;font-weight:600;color:var(--text)}.entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px}.entry-grid article{border-top:2px solid var(--line)}.entry-grid ul{padding-left:20px}.entry-grid li{margin:12px 0}.entry-grid h3{font-size:21px}@media(max-width:900px){.entry-grid{grid-template-columns:1fr;gap:20px}}


/* Layer neighboring photos behind the active slide. */
.carousel-ready{border:0;background:transparent;overflow:hidden}
.carousel-ready .carousel-slides{position:relative;height:clamp(390px,49vw,650px);perspective:1100px;isolation:isolate;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.carousel-ready .carousel-slide{position:absolute;top:20px;left:50%;width:58%;background:#070303;border:1px solid #532323;box-shadow:0 18px 45px #0009;transform:translateX(-50%);transition:transform .7s ease,opacity .7s ease,filter .7s ease;transform-origin:center;z-index:3}
.carousel-ready .carousel-slide img{height:clamp(280px,37vw,490px);background:#050202}
.carousel-ready .carousel-slide figcaption{min-height:62px;padding:16px 20px;text-align:center}
.carousel-ready .carousel-slide[data-offset="-1"]{transform:translateX(-115%) rotateY(28deg) scale(.78);opacity:.48;filter:brightness(.65);z-index:2;cursor:pointer}
.carousel-ready .carousel-slide[data-offset="1"]{transform:translateX(15%) rotateY(-28deg) scale(.78);opacity:.48;filter:brightness(.65);z-index:2;cursor:pointer}
.carousel-ready .carousel-slide[data-offset="-2"]{transform:translateX(-155%) rotateY(40deg) scale(.55);opacity:.16;filter:brightness(.45) blur(1px);z-index:1;cursor:pointer}
.carousel-ready .carousel-slide[data-offset="2"]{transform:translateX(55%) rotateY(-40deg) scale(.55);opacity:.16;filter:brightness(.45) blur(1px);z-index:1;cursor:pointer}
.carousel-ready .carousel-slide:not([data-offset="0"]) figcaption{visibility:hidden}
.carousel-controls .carousel-arrow{z-index:4;top:38%;background:#0005}
.carousel-bottom{z-index:4;bottom:0}
@media(max-width:600px){.carousel-ready .carousel-slides{height:410px;perspective:700px}.carousel-ready .carousel-slide{width:74%;top:12px}.carousel-ready .carousel-slide img{height:300px}.carousel-ready .carousel-slide figcaption{font-size:12px;padding:12px 10px}.carousel-prev{left:0}.carousel-next{right:0}.carousel-arrow{width:44px}.carousel-bottom{left:8px;right:8px}}
@media(prefers-reduced-motion:reduce){.carousel-ready .carousel-slide{transition:none}}

.video-audio-controls{opacity:0;transition:opacity .2s;pointer-events:none;background:transparent!important;padding:8px!important}
.local-video-player:hover .video-audio-controls,.local-video-player:focus-within .video-audio-controls{opacity:1;pointer-events:auto}
#video-sound{display:grid;place-items:center;width:48px;height:48px;min-width:48px;padding:8px;border:0;background:#0005;color:#fff;border-radius:50%}
#video-sound svg{display:block}#video-sound .speaker-slash{display:none}
#video-sound[data-muted="true"] .speaker-waves{display:none}#video-sound[data-muted="true"] .speaker-slash{display:block}
@media(hover:none){.video-audio-controls{opacity:1;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.video-audio-controls{transition:none}}

/* Event calendar: dates come from the editable event schedule. */
.calendar-prompt{font-weight:600;margin:24px 0 12px}
.calendar-wrap{padding:18px 12px 12px;border:1px solid #762525;background:radial-gradient(ellipse at top,#34070799,transparent 65%),#070303;box-shadow:inset 0 0 30px #0008;max-width:100%}
.haunt-calendar{table-layout:fixed;border-collapse:separate;border-spacing:4px;width:100%;text-align:center}
.haunt-calendar caption{font:700 clamp(26px,3vw,36px)/1.2 var(--display);color:#ff3333;padding:4px 0 18px}
.haunt-calendar th{font:600 10px/1.4 var(--body);color:#d3bebe;text-transform:uppercase;padding:4px 0 9px}
.haunt-calendar abbr{text-decoration:none}
.haunt-calendar td{padding:0;height:54px;vertical-align:middle}
.calendar-inactive{color:#837878;background:#ffffff03;font-size:14px}
.calendar-open a{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:54px;gap:2px;color:white;background:linear-gradient(155deg,#c40000,#680707);border:1px solid #ff4747;box-shadow:0 0 12px #bd000027;transition:background .15s,box-shadow .15s}
.calendar-open a:hover{background:#df1111;box-shadow:0 0 15px #ff171760}
.calendar-open a:focus-visible{outline:2px solid #fff;outline-offset:1px;z-index:1}
.calendar-day{font-size:19px;font-weight:700;line-height:1.2}
.calendar-time{font-size:9px;white-space:nowrap;line-height:1.3;letter-spacing:-.15px}
.calendar-key{display:flex;align-items:center;gap:8px;font-size:11px;line-height:1.6;color:#d3bebe;margin:14px 4px 0}
.calendar-key>span{display:inline-block;flex:0 0 10px;width:10px;height:10px;background:#c40000;border:1px solid #ff4747}
@media(max-width:400px){.calendar-wrap{padding:12px 6px}.haunt-calendar{border-spacing:2px}.haunt-calendar th{font-size:9px}.calendar-time{font-size:8px}.calendar-day{font-size:17px}}
@media(prefers-reduced-motion:reduce){.calendar-open a{transition:none}}

/* Classic gothic calendar, with readable proportions instead of stretched text. */
.calendar-wrap{padding:18px 12px 12px;background:#000;border:1px solid #6e6e6e;box-shadow:none}
.haunt-calendar{border-collapse:collapse;border-spacing:0}
.haunt-calendar caption{color:#ff1616;font-family:var(--display);font-size:clamp(34px,3.8vw,52px);line-height:1.15;letter-spacing:1px;padding:0 0 20px}
.haunt-calendar th{border:1px solid #707070;background:#000;color:#eee;font-size:10px;padding:8px 2px}
.haunt-calendar td{height:72px;border:1px solid #707070;text-align:left;background:#000}
.haunt-calendar .calendar-empty{border:1px solid #707070}
.calendar-inactive>span{display:block;padding:8px;align-self:start;font:700 25px/1.1 var(--display);color:#ff2626}
.calendar-inactive{vertical-align:top!important}
.calendar-open a{align-items:flex-start;justify-content:flex-start;min-height:72px;padding:7px 6px;gap:7px;border:0;background:#600000;box-shadow:none;color:#ff2626}
.calendar-day{font:700 25px/1.1 var(--display)}
.calendar-time{font:600 9px/1.4 var(--body);color:#fff;letter-spacing:-.15px}
.calendar-open a:hover{background:#940000;box-shadow:inset 0 0 0 1px #ff5555}
.calendar-key{color:#ddd}.calendar-key>span{background:#600000;border-color:#b74444}
@media(max-width:600px){.haunt-calendar td,.calendar-open a{height:66px;min-height:66px}.haunt-calendar caption{font-size:40px}.calendar-time{font-size:10px}}
@media(max-width:400px){.calendar-wrap{padding:16px 5px 10px}.haunt-calendar caption{font-size:34px}.haunt-calendar th{font-size:9px}.haunt-calendar td,.calendar-open a{height:62px;min-height:62px}.calendar-open a{padding:6px 3px}.calendar-inactive>span{padding:7px 4px}.calendar-day,.calendar-inactive>span{font-size:21px}.calendar-time{font-size:7px;letter-spacing:-.3px}}

/* Traditional blackletter alternative for the reference calendar. */
.haunt-calendar caption,.calendar-day,.calendar-inactive>span{font-family:'New Rocker','UnifrakturCook',Georgia,serif;font-weight:400}
.haunt-calendar caption{letter-spacing:.5px}
