body { font-family: 'Inter', sans-serif; background-color: #09090B; /\* Zinc 950 \*/ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%2318181b' fill-opacity='0.4'%3E%3Cpath d='M0 38.59l2.83-2.83 1.41 1.41L1.41 40H0v-1.41zM0 1.4l2.83 2.83 1.41-1.41L1.41 0H0v1.41zM38.59 40l-2.83-2.83 1.41-1.41L40 38.59V40h-1.41zM40 1.41l-2.83 2.83-1.41-1.41L38.59 0H40v1.41z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } .font-creepster { font-family: 'Creepster', cursive; } .card { background-color: #18181B; /\* Zinc 900 \*/ border: 1px solid #27272A; /\* Zinc 800 \*/ border-radius: 0.75rem; transition: all 0.2s ease-in-out; } .card:hover { border-color: #F97316; /\* Orange 500 \*/ transform: translateY(-4px); box-shadow: 0 10px 25px -10px rgba(249, 115, 22, 0.2); } .btn-primary { background-color: #F97316; /\* Orange 500 \*/ color: #FAFAFA; /\* Zinc 50 \*/ transition: all 0.2s ease-in-out; box-shadow: 0 0 15px rgba(249, 115, 22, 0.3); } .btn-primary:hover { background-color: #EA580C; /\* Orange 600 \*/ box-shadow: 0 0 25px rgba(249, 115, 22, 0.5); } .text-glow { text-shadow: 0 0 8px rgba(249, 115, 22, 0.5); }
Liverpool Halloween 2025
Ghost hunts, Mersey cruises, gothic cabaret, raves, and pumpkin-perfect family days out — all in one place.
Updated: 2 September 2025 · Liverpool, UK
Countdown to Halloween
00
Days
00
Hours
00
Minutes
00
Seconds
Haunted History & Ghost Hunts
👻 High Scare
Old Police Station Ghost Hunt
Explore one of Lark Lane’s most storied buildings after dark.
🎭 Theatrical
Shiverpool – Ghost Walk & Talk
Join the city’s famous theatrical ghost tour for a walk on the dark side.
👻 High Scare
St George’s Hall Ghost Hunt
Explore the catacombs, corridors, and courtroom of one of Liverpool’s most haunted landmarks.
Theatrical & Immersive Frights
👻 High Scare 🔥 Don’t Miss
Farmaggedon Scare Attraction
The legendary scare attraction with interactive horror mazes. Not for the faint-hearted!
⭐ Special Event
Liverpool Horror Con
A convention for all things horror, with special guests, Q&As, and merchandise.
Club Nights & Parties
🎵 Live Music 🔥 Sells Out Fast
CIRCUS Halloween at Hangar 34
The city’s biggest house and techno night throws its annual spooky party.
🎉 Party
Monster Mash Halloween Cruise
DJs, costumes, and skyline views aboard the Mersey Ferries.
Family-Friendly Fun
🎃 Family Fun
Pumpkin Picking at Church View Farm
Pick your own pumpkins from the patch, plus other family activities.
🎃 Family Fun
Halloween Spooktacular
A full day of spooky fun, rides, and shows at Otterspool Adventure.
Planning Tips
- Book early: High‑demand nights around Oct 31st sell out quickly.
- Check age limits: Many club events are 18+; family events list specific age guidance.
- Travel smart: Plan taxis or public transport in advance for late finishes.
- Costume rules: Some venues have prop or mask restrictions — check event pages.
Curated by L1 Web Tips
Dates and line‑ups can change. Confirm details with organisers before booking.
Back to top button
// Countdown Timer Logic const countdown = () => { const countToDate = new Date(“October 31, 2025 00:00:00”).getTime(); const now = new Date().getTime(); const difference = countToDate - now;
const seconds = 1000; const minutes = seconds * 60; const hours = minutes * 60; const days = hours * 24;
if (difference > 0) { const d = Math.floor(difference / days); const h = Math.floor((difference % days) / hours); const m = Math.floor((difference % hours) / minutes); const s = Math.floor((difference % minutes) / seconds);
document.getElementById(‘days’).innerText = d.toString().padStart(2, ‘0’); document.getElementById(‘hours’).innerText = h.toString().padStart(2, ‘0’); document.getElementById(‘minutes’).innerText = m.toString().padStart(2, ‘0’); document.getElementById(‘seconds’).innerText = s.toString().padStart(2, ‘0’); } else { // Expired state document.getElementById(‘countdown’).innerHTML = ’
’; } }; setInterval(countdown, 1000); countdown();
// Back to Top Button Logic const toTopButton = document.getElementById(‘to-top-button’); window.onscroll = () => { if (document.body.scrollTop > 200 || document.documentElement.scrollTop > 200) { toTopButton.classList.remove(‘hidden’); } else { toTopButton.classList.add(‘hidden’); } };