/* A little Halloween mischief, carried through the crawl guide. */
:root{--peach:#efad89}
body{background-image:radial-gradient(ellipse 680px 500px at 94% 3%,#34412a40,transparent 75%),radial-gradient(ellipse 480px 620px at 1% 34%,#372c2540,transparent 78%)}
.header-countdown{border-left:0;padding-left:0;gap:7px;align-items:center}
.countdown-moon{width:27px;height:26px;color:var(--peach);overflow:visible;flex-shrink:0}
#countdown-value{font:italic 25px/1.1 var(--serif);letter-spacing:-.035em;color:var(--bone);font-variant-numeric:tabular-nums}
#countdown-suffix{align-self:center;font-size:10px;margin-top:5px;color:#b5bfa5}
.header-countdown[data-phase="active"] #countdown-value,.header-countdown[data-phase="ended"] #countdown-value{font-size:21px}
.hero h1 em{position:relative;display:inline-block}
.hero h1 em:after{content:"";position:absolute;left:0;right:-2%;bottom:-4px;height:8px;border-bottom:1px solid #c78961a6;border-radius:50%;transform:rotate(-2deg);pointer-events:none}
.hero h1 em:last-child:after{border-color:#b2c879a6;transform:rotate(2deg)}
.poster{box-shadow:0 0 80px #a8bf6310;border-color:#808b69}
.poster-creatures{position:absolute;inset:0;pointer-events:none;z-index:1}
.poster-creatures .bat{position:absolute;color:var(--peach);stroke:none}
.poster-creatures .bat-one{width:43px;height:26px;right:17px;top:32%;transform:rotate(17deg)}
.poster-creatures .bat-two{width:27px;height:18px;left:18px;top:45%;transform:rotate(-18deg);color:#d5e79a}
.poster-creatures .poster-sparkle{position:absolute;width:18px;height:18px;right:18%;top:17%;color:#efad89;transform:rotate(12deg)}
.ghost-art{animation:ghost-float 7s ease-in-out infinite;transform-origin:center}
@keyframes ghost-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}
.ticker{position:relative;height:52px;border:0;background:#2a3424}
.ticker:before,.ticker:after{content:"";position:absolute;left:0;right:0;height:7px;pointer-events:none;background-image:radial-gradient(circle at 9px 0,var(--ink) 5px,transparent 5.8px);background-size:18px 7px;background-repeat:repeat-x;top:0}
.ticker:after{top:auto;bottom:0;transform:rotate(180deg)}
.heading-ghost{width:32px;height:39px;margin-left:13px;color:var(--bone);vertical-align:-5px;transform:rotate(10deg);stroke:none}
.heading-bat{width:38px;height:27px;margin-left:14px;color:var(--peach);vertical-align:2px;transform:rotate(-12deg);stroke:none}
.heading-sparkle{width:24px;height:29px;margin-left:10px;vertical-align:0;color:var(--lime);transform:rotate(15deg)}
.current-card{border-radius:12px 12px 12px 3px;box-shadow:4px 5px 0 #0e130e50}
.crawl-hub .location-section{border-radius:15px 15px 4px 15px;box-shadow:4px 5px 0 #0e130e50}
.crawl-hub .location-art{border-radius:8px 8px 25px 8px}
.location-callout{border-radius:13px 13px 13px 2px;box-shadow:3px 4px 0 #526c2520;overflow:visible}
.map-ghost{position:absolute;left:19px;top:-27px;width:31px;height:38px;color:var(--bone);filter:drop-shadow(0 1px 0 #5c703e);transform:rotate(-9deg);stroke:none}
.location-callout strong{font-style:italic}
.crawl-hub .route-number{color:var(--peach);font-style:italic}
.crawl-hub .route-row:nth-child(even) .route-number{color:var(--lime)}
.view-stop{border-radius:8px 8px 8px 2px}
.button{border-radius:7px 7px 7px 2px}
.hero-actions .primary:hover{transform:translateY(-2px) rotate(-1deg)}
.donation-compact{position:relative;border-radius:13px 13px 4px 13px;border-color:#66764d}
.donation-sparkle{position:absolute;right:21px;top:-12px;width:24px;height:25px;color:var(--peach);transform:rotate(13deg);filter:drop-shadow(0 0 4px var(--ink));pointer-events:none}
.donation-message>p strong{font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.5;color:var(--bone)}
.essentials{border-top-style:dashed;border-top-color:#5b674c}
@media(max-width:1050px){.heading-ghost{width:29px;height:35px;margin-left:10px}.heading-bat{width:31px;height:24px;margin-left:10px}}
@media(max-width:760px){.header-event{gap:12px}.header-countdown{padding-left:0;gap:5px}.countdown-moon{width:22px;height:23px}#countdown-value{font-size:21px}#countdown-suffix{font-size:9px;margin-top:4px}.header-countdown[data-phase="active"] #countdown-value,.header-countdown[data-phase="ended"] #countdown-value{font-size:18px}.poster-creatures .bat-one{width:27px;height:17px;right:2%;top:10%;transform:rotate(12deg)}.poster-creatures .bat-two{width:19px;height:13px;left:-1%;top:76%}.poster-creatures .poster-sparkle{width:12px;height:14px;right:4%;top:66%}.hero>.poster{box-shadow:none}.hero h1 em:after{bottom:-3px;height:5px}.heading-ghost{width:27px;height:33px;margin-left:9px;vertical-align:-4px}.heading-bat{width:30px;height:23px;margin-left:9px}.heading-sparkle{width:22px;height:25px}.donation-message>p strong{font-size:18px}.ticker{height:46px}}
@media(max-width:370px){.header-event{gap:9px}.header-countdown{padding-left:0;gap:4px}.countdown-moon{width:20px;height:21px}#countdown-value{font-size:20px}.heading-ghost{width:24px;height:31px;margin-left:7px}.heading-bat{width:25px;height:21px;margin-left:7px}.donation-message>p strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){.ghost-art{animation:none;transform:none}}
@media print{body{background-image:none}.poster-creatures,.heading-ghost,.heading-bat,.heading-sparkle,.donation-sparkle{display:none}.current-card,.crawl-hub .location-section{box-shadow:none}}

/* Reserved space for the venues’ actual promotional logo artwork. */
.venue-promo{padding:0 0 38px}
.venue-promo>.eyebrow{text-align:center;font-size:9px;letter-spacing:.14em;color:var(--muted);margin-bottom:17px}
.venue-logo-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid #4b5840;padding-block:8px}
.venue-logo-slot{min-height:105px;display:flex;align-items:center;justify-content:center;padding:18px 24px;text-align:center}
.venue-logo-slot+.venue-logo-slot{border-left:1px solid #46513b}
.venue-logo-slot>span{font:16px/1.5 var(--sans);letter-spacing:.02em;color:#c3cbb7}
.venue-logo-slot>img{display:block;max-width:100%;width:auto;height:auto;max-height:78px;object-fit:contain}
@media(max-width:760px){.venue-promo{padding-bottom:27px}.venue-promo>.eyebrow{font-size:8px;margin-bottom:14px}.venue-logo-slot{min-height:88px;padding:14px 12px}.venue-logo-slot>span{font-size:12px;line-height:1.6;letter-spacing:0}.venue-logo-slot>img{max-height:60px}}
@media(max-width:370px){.venue-logo-slot{padding-inline:8px}.venue-logo-slot>span{font-size:11px}}

/* Traditional countdown, kept within the compact moon-and-stars header. */
.header-countdown #countdown-value{display:flex;align-items:flex-start;gap:6px;font:inherit;letter-spacing:0}
.header-countdown #countdown-value[hidden],#countdown-event-state[hidden]{display:none}
.cd-unit{display:flex;flex-direction:column;align-items:center;gap:5px;width:41px;flex-shrink:0}
.cd-number{display:block;width:100%;padding:4px 2px;background:#293322;border:1px solid #566544;border-radius:6px 6px 6px 2px;text-align:center;font:26px/1.15 Georgia,serif;font-variant-numeric:tabular-nums;color:var(--bone)}
.cd-label{font:8px/1.2 Arial,sans-serif;color:#b7c2a8;text-transform:uppercase;letter-spacing:.025em}
.cd-colon{font:19px/1 Georgia,serif;color:var(--peach);padding-top:11px}
.header-countdown .countdown-moon{align-self:center;margin-top:-12px}
#countdown-event-state{font:italic 23px/1.2 Georgia,serif;color:var(--bone)}
.venue-logo-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.venue-logo-slot>img{max-width:230px;width:100%;max-height:78px;height:auto}
@media(max-width:1050px){.header-date{display:none}.topbar{gap:22px}.desktop-nav{gap:22px}}
@media(max-width:760px){.topbar{gap:12px;min-height:76px}.header-countdown #countdown-value{gap:4px}.cd-unit{width:30px;gap:4px}.cd-number{font-size:22px;padding:3px 1px;border-radius:5px 5px 5px 2px}.cd-label{font-size:8px;letter-spacing:0}.cd-colon{font-size:15px;padding-top:8px}.header-countdown .countdown-moon{width:20px;height:23px;margin-top:-10px}.header-event{gap:0}.header-give{font-size:11px;padding:9px 12px;gap:6px}#countdown-event-state{font-size:20px}.venue-logo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.venue-logo-slot{min-height:88px}.venue-logo-slot:nth-child(3){border-left:0}.venue-logo-slot:nth-child(n+3){border-top:1px solid #46513b}.venue-logo-slot>img{max-width:175px;max-height:60px}}
@media(max-width:370px){.topbar{gap:8px}.header-countdown{gap:4px}.header-countdown #countdown-value{gap:3px}.cd-unit{width:29px}.cd-number{font-size:21px}.cd-label{font-size:7.5px}.cd-colon{font-size:14px}.header-countdown .countdown-moon{width:18px}.header-give{padding-inline:10px}}

/* Supplied logo proportions stay intact, with room for each venue’s lettering. */
.venue-logo-slot[data-venue-logo="miracle"]>img{width:126px;max-width:100%;max-height:none}
.venue-logo-slot[data-venue-logo="cloud"]>img{max-height:100px}
@media(max-width:760px){.venue-logo-slot[data-venue-logo="miracle"]>img{width:110px}.venue-logo-slot[data-venue-logo="cloud"]>img{max-height:84px}}

/* Frame the lettering within the supplied portrait image’s black margins. */
.venue-logo-crop{position:relative;width:100%;max-width:230px;aspect-ratio:3/1;overflow:hidden;flex-shrink:0}
.venue-logo-crop>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 44.3%}
@media(max-width:760px){.venue-logo-crop{max-width:175px}}

/* A small nod to a lucky Halloween. */
.raffle-note{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;line-height:1.7;color:#c4ccb7;margin-top:21px;text-align:center}
.raffle-note svg{width:18px;height:21px;color:var(--peach)}
.raffle-note strong{font:italic 20px/1.3 var(--serif);color:var(--bone);margin-right:5px}
@media(max-width:760px){.raffle-note{font-size:11px;gap:8px}.raffle-note strong{font-size:19px}}

/* Identical groups make the banner loop without a visible reset. */
.ticker>.ticker-track{display:flex;width:max-content;margin:0;animation:spirits-drift 32s linear infinite}
.ticker .ticker-group{display:flex;align-items:center;justify-content:space-around;flex-shrink:0;min-width:100vw;margin:0;padding-inline:28px;gap:42px;color:inherit}
.ticker .ticker-group>span{margin:0;color:var(--lime)}
@keyframes spirits-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:760px){.ticker .ticker-group{gap:28px;padding-inline:20px}}
@media(prefers-reduced-motion:reduce){.ticker>.ticker-track{animation:none}}
