:root{--black:#0b0d0b;--green:#3dff7a;--red:#c8102e;--bone:#ede6d3;--fog:#a7b0a8;--line:#ffffff26;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--black);color:var(--bone);font-family:Barlow,Arial,sans-serif;font-size:18px;line-height:1.55}a{color:inherit}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button:disabled{opacity:.55;cursor:not-allowed}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h2,h3{font-family:'Big Shoulders Display',Impact,sans-serif;line-height:.98}h2{font-size:clamp(40px,6vw,80px);letter-spacing:-.025em;margin-bottom:24px}h3{font-size:36px;margin-bottom:20px}p{margin-bottom:18px}ul{padding-left:20px}li{padding:5px 0}li::marker{color:var(--green)}.wrap{max-width:1200px;margin:auto;padding:80px 32px}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:700;color:var(--green);text-transform:uppercase}.micro{font-size:14px;color:var(--fog);line-height:1.5}.muted{color:var(--fog)}.button{border:1px solid var(--green);background:var(--green);color:var(--black);font-weight:700;letter-spacing:.055em;display:inline-flex;justify-content:center;gap:36px;align-items:center;min-height:56px;padding:16px 26px;text-decoration:none;font-size:15px;transition:background .2s,box-shadow .2s}.button:hover{background:#b4ffca;box-shadow:0 0 30px #3dff7a33}.small{min-height:44px;padding:10px 18px;font-size:12px}.text-button{background:none;border:0;border-bottom:1px solid var(--green);color:var(--green);padding:10px 0;text-decoration:none}.topbar{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2;background:#0b0d0bf2}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.1em}.brand img{object-fit:contain}.hero{min-height:820px;position:relative;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line)}.hero-scene{position:absolute;inset:0;background:linear-gradient(90deg,#0b0d0b 1%,#0b0d0bf0 25%,#0b0d0b66 57%,#0b0d0b33),linear-gradient(0deg,#0b0d0b,transparent 35%),url('/images/haunted-tribe-shirt.webp') right 38% / auto 115% no-repeat}.hero-scene:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 60% 90%,#3dff7a14,transparent 60%);animation:mist 12s ease-in-out infinite alternate;pointer-events:none}.hero-inner{position:relative;z-index:1;width:min(1200px,100%);margin:auto;padding:50px 32px 100px}.hero h1{line-height:.8;margin:38px 0 28px;max-width:700px}.the{display:block;font:700 20px Barlow,sans-serif;letter-spacing:.45em;margin:0 0 12px 5px}.haunted{font:400 clamp(64px,10vw,138px)/.9 Creepster,Impact,sans-serif;color:var(--bone);display:block;text-shadow:2px 3px var(--red)}.tribe{font:900 clamp(100px,17vw,225px)/.85 'Big Shoulders Display',Impact,sans-serif;letter-spacing:.015em;display:block;color:var(--green)}.tagline{font-size:29px;font-weight:600;margin-top:28px}.hero-sub{max-width:420px;color:var(--fog)}.hero .micro{margin-top:18px}.hero-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:20px 5vw;font-size:10px;letter-spacing:.14em;border-top:1px solid var(--line);z-index:1}.hero-bottom a{font-size:25px;text-decoration:none}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);margin-right:8px}.schedule{display:grid;grid-template-columns:1fr 1fr;gap:60px}.times>p:not(.muted){display:flex;flex-direction:column;border-bottom:1px solid var(--line);padding-bottom:22px}.times strong{font:700 43px 'Big Shoulders Display',Impact,sans-serif}.times small{font-size:24px}.times span{font-size:14px;color:var(--fog)}.times .muted{font-size:15px}.ticket-section{background:#121711;border-block:1px solid var(--line)}.section-heading{max-width:700px;margin-bottom:42px}.section-heading>p:last-child{color:var(--fog)}.offers{display:grid;grid-template-columns:1fr 1fr;gap:24px}.offer{padding:32px;border:1px solid var(--line);background:#0b0d0b80}.offer ul{min-height:130px}.price{font:800 58px 'Big Shoulders Display',Impact,sans-serif}.price span{font:400 14px Barlow,sans-serif;color:var(--fog)}label{display:block;font-size:15px;font-weight:600;margin:20px 0 8px}input,select{display:block;width:100%;padding:13px;margin-top:8px;border:1px solid #596154;border-radius:0;background:#080b08;color:var(--bone);min-height:48px}.quantity{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;gap:20px}.quantity input{width:86px;margin:0}.bundle{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;border:1px solid #3dff7a55;background:#0b0d0b}.shirt-image{position:relative;align-self:start}.shirt-image img{width:100%;height:auto}.shirt-image>span{position:absolute;top:22px;left:22px;padding:8px 12px;background:var(--red);font-size:11px;font-weight:700;letter-spacing:.1em}.bundle-copy{padding:40px}.bundle h3{font-size:56px}.included{font-size:12px;letter-spacing:.08em;color:var(--green);font-weight:700;margin-top:14px}.bundle-copy>p:not(.eyebrow):not(.included):not(.micro){font-size:15px;color:var(--fog)}.future-perk{padding:20px 0;border-block:1px solid var(--line);margin:25px 0}.future-perk p{font-size:16px;margin:8px 0 0}.sizes{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.sizes label{margin:4px 0}.checkout-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:64px}.consent{display:flex;gap:12px;font-size:13px;font-weight:400;color:var(--fog)}.consent input{flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:4px 0}.summary{border:1px solid var(--line);padding:32px;align-self:start;background:#0b0d0b}.summary .button{width:100%}.summary-line,.total{display:flex;gap:14px;justify-content:space-between;padding:12px 0}.summary-line{font-size:15px;color:var(--fog)}.total{border-top:1px solid var(--line);font-size:24px;margin-top:20px}.total strong{color:var(--green)}[role=status]{font-size:15px;margin:16px 0 0}.payment-panel{max-width:650px;margin:40px auto;padding:35px;border:1px solid var(--green);background:#0b0d0b}.payment-panel .button{margin-top:24px;width:100%}.payment-panel .text-button{margin-top:18px}.costume{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.costume h2{color:var(--bone);text-shadow:3px 3px var(--red)}.prizes{display:grid;grid-template-columns:1fr 1fr;gap:25px}.prizes>div{border-top:2px solid var(--red);padding-top:22px}.prizes span{display:block;font-size:11px;letter-spacing:.1em;color:var(--fog)}.prizes strong{font:800 clamp(65px,8vw,110px) 'Big Shoulders Display',Impact,sans-serif;display:block}.prizes em{font-style:normal;color:var(--green);font-size:13px;letter-spacing:.12em}.visit{display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid var(--line)}.visit h2{font-size:48px}.know h3{font-size:30px}.know details{border-bottom:1px solid var(--line);padding:15px 0;font-size:16px}.know summary{cursor:pointer;font-weight:600}.know details p{color:var(--fog);margin:16px 0 0}footer.wrap{border-top:1px solid var(--line);padding-block:28px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--fog)}footer a{text-decoration:none}.mobile-ticket{display:none}.skip{position:absolute;top:-100px;z-index:10;background:var(--green);color:#000;padding:15px}.skip:focus{top:0}[hidden]{display:none!important}.ticket-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}.ticket{padding:24px;background:#151a13;border:1px solid var(--line)}.ticket img{width:240px;max-width:100%;margin:20px auto}.ticket code{font-size:12px;overflow-wrap:anywhere}.staff-actions{display:flex;flex-wrap:wrap;gap:8px}.staff-actions button{font-size:13px;min-height:44px;padding:10px;background:var(--green);color:#000;border:0}.staff-status{padding:16px;border:1px solid var(--green);margin-block:20px}.plain-main{min-height:70vh}.plain-main h1{font:800 60px 'Big Shoulders Display',Impact,sans-serif}.staff-form{display:flex;gap:15px;flex-wrap:wrap}.staff-form input{flex:1;min-width:200px;margin:0}.camera{max-width:480px;width:100%;margin-top:20px}@keyframes mist{to{transform:translateX(-30px);opacity:.4}}@media(max-width:760px){.wrap{padding:52px 22px}.topbar{height:72px;padding:0 20px}.brand span{font-size:9px;max-width:95px}.hero{min-height:730px}.hero-scene{background:linear-gradient(90deg,#0b0d0be6,#0b0d0b70),linear-gradient(0deg,#0b0d0b,transparent 70%),url('/images/haunted-tribe-shirt.webp') 60% center/auto 100% no-repeat}.hero-inner{padding:50px 22px 90px}.hero .eyebrow{font-size:10px}.hero h1{margin-top:34px}.haunted{font-size:clamp(60px,14vw,105px)}.tribe{font-size:clamp(100px,27vw,180px)}.tagline{font-size:25px}.hero-bottom{font-size:9px;padding:15px 22px}.hero-bottom>span:nth-child(2){display:none}.schedule,.offers,.bundle,.checkout-grid,.costume,.visit{grid-template-columns:1fr;gap:30px}.offer{padding:25px}.offer ul{min-height:0}.bundle-copy{padding:25px}.bundle h3{font-size:48px}.shirt-image img{max-height:520px;object-fit:contain;background:#201e19}.checkout-grid{margin-top:40px}.summary{padding:25px}.costume{gap:15px}.prizes strong{font-size:95px}.payment-panel{padding:22px}.mobile-ticket{display:flex;position:fixed;bottom:12px;left:16px;right:16px;z-index:5;box-shadow:0 3px 25px #000}.ticket-section:has(input:focus)~*{scroll-margin:15px}footer.wrap{flex-direction:column;padding-bottom:100px}.plain-main h1{font-size:45px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media print{.topbar,footer,.mobile-ticket,.staff-actions{display:none}.ticket{break-inside:avoid}body{background:#fff;color:#000}.ticket{background:#fff;border:1px solid #000}.micro{color:#333}}
