@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Grenze+Gotisch:wght@500;600;700&family=Libre+Franklin:wght@400;500;600;700&display=swap');

:root{--ink:#10100e;--paper:#ddd9ca;--paper-2:#c9c4b4;--fog:#91958b;--acid:#bdf343;--blood:#681a18;--bruise:#312339;--line:rgba(16,16,14,.28);--white:#f5f1e5;--shadow:8px 8px 0 #10100e}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Libre Franklin",sans-serif;min-height:100vh;background-image:radial-gradient(rgba(16,16,14,.065) 1px,transparent 1px);background-size:6px 6px}.film-grain{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}.skip-link{position:absolute;left:-999px;top:8px}.skip-link:focus{left:8px;z-index:100;background:var(--acid);padding:10px;color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}.masthead{height:112px;display:grid;grid-template-columns:1fr auto auto;align-items:center;padding:14px clamp(18px,4vw,64px);border-bottom:5px double var(--paper);gap:18px;background:var(--ink);color:var(--paper);position:relative}.brand-mark{width:72px;height:72px;background:var(--paper);color:var(--ink);border-radius:50%;display:grid;place-items:center;position:relative;box-shadow:0 0 0 3px var(--ink),0 0 0 4px var(--paper)}.brand-mark:before,.brand-mark:after{content:"";position:absolute;width:19px;height:23px;background:var(--paper);top:-5px;transform:rotate(45deg)}.brand-mark:before{left:6px}.brand-mark:after{right:6px}.brand-mark span{font-family:"Grenze Gotisch";font-size:22px;z-index:1}.eyebrow,.kicker,.edition{font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.12em}.eyebrow{margin:0;font-size:10px}.masthead h1{font-family:"Grenze Gotisch";font-size:clamp(27px,4vw,44px);line-height:.78;margin:5px 0 3px}.masthead h1 em{font-weight:500}.edition{font-size:9px;margin:0}.favorites-button{border:1px solid var(--paper);color:var(--paper);background:transparent;display:flex;align-items:center;gap:12px;padding:9px 10px 9px 14px;text-transform:uppercase;font-family:"DM Mono";font-size:10px;letter-spacing:.06em}.favorites-button strong{background:var(--acid);color:var(--ink);min-width:28px;height:28px;display:grid;place-items:center}.favorites-button:hover,.favorites-button:focus-visible{background:var(--bruise);outline:2px solid var(--acid);outline-offset:2px}
main{max-width:1600px;margin:auto}.intro{min-height:430px;display:grid;grid-template-columns:1.05fr .95fr;border-bottom:2px solid var(--ink);overflow:hidden;position:relative}.intro-copy{padding:clamp(42px,7vw,92px) clamp(24px,7vw,110px)}.kicker{font-size:10px;margin:0 0 12px}.intro h2{font-family:"Grenze Gotisch";font-size:clamp(48px,7vw,92px);line-height:.82;max-width:800px;margin:0 0 24px;font-weight:600;letter-spacing:-.035em}.intro-copy>p:not(.kicker){font-size:clamp(15px,1.5vw,19px);line-height:1.55;max-width:670px}.hero-actions{display:flex;gap:18px;align-items:center;margin-top:30px}.primary-action{background:var(--ink);color:var(--white);border:2px solid var(--ink);padding:15px 20px;text-transform:uppercase;letter-spacing:.08em;font-family:"DM Mono";font-size:11px;box-shadow:5px 5px 0 var(--acid)}.primary-action:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--acid)}.text-action{border:0;border-bottom:1px solid;background:transparent;padding:8px 0;font-size:12px;font-weight:600}.moon-scene{position:relative;background:var(--ink);min-height:380px;overflow:hidden}.moon{width:min(32vw,390px);height:min(32vw,390px);border-radius:50%;background:var(--paper);position:absolute;right:12%;top:30px;box-shadow:inset -30px -18px 0 #bcb8ad}.moon:before,.moon:after{content:"";position:absolute;background:#c8c3b7;border-radius:50%}.moon:before{width:55px;height:35px;top:21%;left:20%}.moon:after{width:40px;height:40px;right:23%;bottom:24%}.bat{position:absolute;color:var(--ink);font-weight:bold;font-size:38px;transform:rotate(20deg)}.bat-one{left:18%;top:40%}.bat-two{right:12%;top:17%;font-size:24px}.mansion{position:absolute;bottom:-1px;left:10%;width:80%;height:59%;filter:drop-shadow(0 -2px 0 var(--paper))}.house-body{position:absolute;background:#090908;bottom:0;left:14%;right:10%;height:58%;border:1px solid var(--paper)}.roof{position:absolute;width:72%;height:70px;left:10%;top:14%;background:#090908;clip-path:polygon(0 100%,16% 0,75% 0,100% 100%)}.tower{position:absolute;bottom:0;width:25%;height:84%;background:#090908;border:1px solid var(--paper)}.tower:before{content:"";position:absolute;left:-12%;right:-12%;top:-35px;height:40px;background:#090908;clip-path:polygon(50% 0,100% 100%,0 100%)}.tower-left{left:0}.tower-right{right:0;height:70%}.window{position:absolute;background:var(--acid);width:20px;height:34px;bottom:22%;z-index:2;box-shadow:0 0 15px var(--acid)}.w1{left:9%}.w2{left:45%}.w3{right:10%}.palms{position:absolute;bottom:-8px;color:var(--paper);font-size:180px;line-height:.5;transform:scaleX(.3);transform-origin:bottom}.palm-one{left:-5%}.palm-two{right:-4%}
.controls{padding:28px clamp(18px,4vw,64px);border-bottom:2px solid var(--ink);display:grid;grid-template-columns:minmax(250px,1fr) 2.3fr auto;gap:28px;align-items:end;background:var(--paper-2)}.search-wrap label,legend,.sort-control{font-family:"DM Mono";font-size:9px;text-transform:uppercase;letter-spacing:.12em;font-weight:600}.search-box{margin-top:7px;border-bottom:2px solid var(--ink);display:flex;align-items:center;gap:8px;padding:4px 0}.search-box span{font-size:22px}.search-box input{width:100%;border:0;background:transparent;padding:7px 2px;outline:0;color:var(--ink)}.search-box input::placeholder{color:#64635c}.filter-groups{display:flex;gap:18px;flex-wrap:wrap}.filter-groups fieldset{border:0;padding:0;margin:0}.segmented{display:flex;margin-top:7px}.segmented button{border:1px solid var(--ink);border-right:0;background:transparent;padding:9px 11px;font-size:10px}.segmented button:last-child{border-right:1px solid}.segmented button.active{background:var(--ink);color:var(--paper)}.segmented button:focus-visible{outline:3px solid var(--acid);outline-offset:1px}.quick-toggles{display:flex;gap:8px;flex-direction:column}.quick-toggles label{font-family:"DM Mono";font-size:10px;text-transform:uppercase}.quick-toggles input{accent-color:var(--ink)}
.explorer{display:grid;grid-template-columns:minmax(290px,36%) 1fr;min-height:800px}.county-map{border-right:2px solid var(--ink);padding:30px clamp(18px,3vw,48px);position:sticky;top:0;align-self:start;height:100vh;max-height:920px;background:var(--ink);color:var(--paper)}.map-heading{display:flex;justify-content:space-between;align-items:center;font-family:"DM Mono";text-transform:uppercase;font-size:8px;letter-spacing:.12em}.map-heading strong{font-family:"Grenze Gotisch";font-size:28px;text-transform:none;letter-spacing:0}.map-canvas{position:relative;height:calc(100% - 80px);margin:15px 0;overflow:hidden}.county-shape{position:absolute;left:32%;top:4%;width:35%;height:88%;background:var(--paper);clip-path:polygon(40% 0,67% 6%,55% 16%,77% 24%,57% 38%,79% 47%,58% 60%,80% 69%,65% 82%,48% 100%,24% 93%,30% 76%,12% 65%,29% 50%,8% 36%,24% 21%,18% 10%)}.county-shape:after{content:"";position:absolute;inset:5px;background:var(--ink);clip-path:inherit}.lagoon{position:absolute;right:2%;top:38%;font:8px "DM Mono";letter-spacing:.12em;text-transform:uppercase;transform:rotate(90deg);transform-origin:center;color:var(--fog)}.zone-label{position:absolute;font:9px "DM Mono";text-transform:uppercase;letter-spacing:.1em;color:var(--fog)}.zone-label.north{left:8%;top:17%}.zone-label.central{right:8%;top:40%}.zone-label.south{left:4%;top:63%}.zone-label.deep-south{right:5%;top:82%}.map-markers{position:absolute;inset:0}.map-marker{position:absolute;width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);background:var(--acid);color:var(--ink);font:600 9px "DM Mono";display:grid;place-items:center;transform:translate(-50%,-50%);box-shadow:0 0 0 2px var(--acid);transition:.2s}.map-marker:hover,.map-marker.active{width:40px;height:40px;z-index:3;background:var(--white)}.map-note{font:8px "DM Mono";text-transform:uppercase;letter-spacing:.1em;color:var(--fog)}
.event-register{padding:42px clamp(18px,4vw,64px) 80px}.register-heading{display:flex;justify-content:space-between;align-items:end;padding-bottom:20px;border-bottom:4px double var(--ink)}.register-heading h2{font-family:"Grenze Gotisch";font-size:clamp(34px,4vw,55px);margin:0;line-height:.9}.sort-control{display:flex;gap:10px;align-items:center}.sort-control select{background:transparent;border:0;border-bottom:1px solid;padding:4px}.active-summary{font:9px "DM Mono";text-transform:uppercase;letter-spacing:.08em;padding:12px 0;color:#55534c}.event-list{display:flex;flex-direction:column}.event-card{display:grid;grid-template-columns:82px 1fr;gap:20px;padding:24px 0;border-top:1px solid var(--line);transition:background .2s,transform .2s}.event-card:first-child{border-top:0}.event-card:hover{background:rgba(255,255,255,.28);transform:translateX(3px)}.event-card.highlighted{background:var(--acid)}.date-stamp{border:1px solid var(--ink);width:72px;height:80px;display:grid;grid-template-rows:auto 1fr auto;text-align:center;text-transform:uppercase;font-family:"DM Mono"}.date-stamp .month{background:var(--ink);color:var(--paper);font-size:8px;padding:3px}.date-stamp strong{font:600 36px "Grenze Gotisch";line-height:1}.date-stamp .weekday{font-size:7px;padding-bottom:4px}.event-meta{font:8px "DM Mono";text-transform:uppercase;letter-spacing:.1em;color:#55534c;margin-bottom:6px}.event-main h3{font-family:"Grenze Gotisch";font-size:clamp(24px,2.5vw,35px);margin:0 0 6px;line-height:1}.description{font-size:13px;line-height:1.5;margin:0 0 14px;max-width:760px}.event-details{display:flex;gap:16px;flex-wrap:wrap;font:9px "DM Mono";text-transform:uppercase}.event-details span:before{margin-right:5px}.time:before{content:"◷"}.venue:before{content:"⌖"}.price:before{content:"$"}.event-actions{display:flex;gap:20px;align-items:center;margin-top:15px}.source-link{color:var(--ink);font-size:11px;font-weight:700;text-underline-offset:3px}.save-button{border:1px solid var(--ink);background:transparent;padding:6px 9px;font:9px "DM Mono";text-transform:uppercase}.save-button.saved{background:var(--ink);color:var(--paper)}.empty-state{text-align:center;padding:80px 20px}.empty-portrait{width:80px;height:90px;border:2px solid;margin:auto;display:grid;place-items:center;font:54px "Grenze Gotisch";box-shadow:6px 6px 0 var(--ink)}.empty-state h3{font:38px "Grenze Gotisch";margin:24px 0 4px}.empty-state button{border:0;background:transparent;text-decoration:underline}.source-note{border-top:2px solid var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:55px clamp(24px,7vw,110px);background:var(--blood);color:var(--white)}.source-note h2{font:48px/1 "Grenze Gotisch";margin:0;max-width:520px}.source-note>p{line-height:1.7;max-width:600px}
.itinerary{position:fixed;right:0;top:0;bottom:0;width:min(470px,94vw);background:var(--paper);z-index:80;border-left:2px solid var(--ink);transform:translateX(105%);transition:transform .3s ease;padding:28px;display:flex;flex-direction:column}.itinerary.open{transform:translateX(0)}.itinerary-header{display:flex;justify-content:space-between;border-bottom:4px double;padding-bottom:18px}.itinerary h2{font:46px "Grenze Gotisch";margin:0}.itinerary-header button,.dialog-close{border:0;background:transparent;font-size:34px}.itinerary-list{overflow:auto;flex:1}.saved-item{padding:18px 0;border-bottom:1px solid var(--line)}.saved-item h3{font:23px "Grenze Gotisch";margin:3px 0}.saved-item p{font:9px "DM Mono";margin:0}.saved-item button{border:0;background:transparent;text-decoration:underline;padding:7px 0}.itinerary-footer{display:flex;gap:10px;padding-top:18px}.itinerary-footer button{flex:1;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:13px}.itinerary-footer .ghost-button{background:transparent;color:var(--ink)}.scrim{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:70}.summon-dialog{width:min(620px,92vw);border:2px solid var(--ink);background:var(--paper);box-shadow:10px 10px 0 var(--acid);padding:36px}.summon-dialog::backdrop{background:rgba(0,0,0,.7)}.summon-dialog h2{font:clamp(36px,6vw,64px)/.9 "Grenze Gotisch";margin:10px 0}.summon-dialog .dialog-close{position:absolute;right:12px;top:8px}.summon-dialog .summon-detail{font:11px "DM Mono";text-transform:uppercase;line-height:1.8}.summon-dialog .summon-description{line-height:1.6}.summon-dialog a{display:inline-block;background:var(--ink);color:var(--paper);padding:12px 15px;margin-top:12px}.summon-dialog .save-button{margin-left:10px}

/* Gothic broadcast details: original, campy, and intentionally theatrical. */
.creator-chip{color:var(--paper);text-decoration:none;border-left:1px solid var(--fog);padding:4px 18px;display:grid;line-height:1.05;min-width:176px}.creator-chip span,.creator-chip small{font:7px "DM Mono";text-transform:uppercase;letter-spacing:.11em}.creator-chip strong{font:22px "Grenze Gotisch";color:var(--acid)}.creator-chip:hover strong,.creator-chip:focus-visible strong{text-shadow:0 0 14px var(--acid)}.creator-chip:focus-visible{outline:1px solid var(--acid);outline-offset:4px}
.cobweb{position:absolute;width:155px;height:155px;z-index:3;opacity:.32;background:repeating-radial-gradient(circle at 0 0,transparent 0 15px,var(--ink) 16px 17px),repeating-conic-gradient(from 0deg at 0 0,transparent 0 14deg,var(--ink) 15deg 16deg);pointer-events:none}.cobweb-left{left:0;top:0}.cobweb-right{right:0;top:0;transform:scaleX(-1)}
.intro-copy{position:relative;z-index:4}.intro h2{text-shadow:3px 3px 0 rgba(255,255,255,.75),6px 6px 0 rgba(16,16,14,.14)}
.station-break{height:42px;background:var(--bruise);color:var(--paper);border-block:2px solid var(--ink);display:flex;align-items:center;justify-content:space-around;gap:24px;overflow:hidden;white-space:nowrap;font:9px "DM Mono";text-transform:uppercase;letter-spacing:.18em}.station-break span{color:var(--acid);font-size:16px}
.lightning{position:absolute;width:70px;height:170px;background:var(--acid);clip-path:polygon(50% 0,100% 0,64% 39%,91% 39%,18% 100%,43% 55%,18% 55%);opacity:.1}.lightning-one{left:3%;top:4%;transform:rotate(-9deg)}.lightning-two{right:2%;top:9%;transform:rotate(16deg) scale(.65)}
.address-plaque{position:absolute;z-index:5;left:43%;bottom:8%;font:8px "DM Mono";color:var(--acid);border:1px solid var(--acid);padding:2px 4px}.graveyard{position:absolute;inset:auto 0 0;height:65px;z-index:3}.graveyard i{position:absolute;bottom:0;width:28px;height:48px;background:var(--paper);border-radius:14px 14px 0 0;opacity:.72}.graveyard i:after{content:"";position:absolute;left:11px;top:10px;width:6px;height:15px;border-left:2px solid var(--ink);border-right:2px solid var(--ink)}.graveyard i:nth-child(1){left:4%;height:38px}.graveyard i:nth-child(2){left:28%;height:52px}.graveyard i:nth-child(3){right:28%;height:35px}.graveyard i:nth-child(4){right:8%;height:55px}.graveyard i:nth-child(5){right:18%;height:29px}.ground-fog{position:absolute;bottom:-24px;width:65%;height:70px;background:var(--paper);border-radius:50%;filter:blur(16px);opacity:.16;z-index:6}.fog-one{left:-10%}.fog-two{right:-10%}
.window{animation:flicker 4s steps(1) infinite}.w2{animation-delay:1.3s}.w3{animation-delay:2.2s}@keyframes flicker{0%,18%,22%,63%,100%{opacity:1}20%,64%{opacity:.35}}
.event-card{position:relative}.event-card:after{content:"✦";position:absolute;right:4px;top:23px;font-size:8px;opacity:.35}.event-card:hover:after{color:var(--blood);opacity:1}.date-stamp{box-shadow:3px 3px 0 var(--ink);background:var(--paper)}
.contact-crypt{padding:70px clamp(24px,7vw,110px);display:grid;grid-template-columns:auto minmax(280px,1fr) auto;gap:38px;align-items:center;background:var(--ink);color:var(--paper);border-top:8px double var(--paper);position:relative;overflow:hidden}.contact-crypt:before{content:"";position:absolute;inset:14px;border:1px solid rgba(221,217,202,.25);pointer-events:none}.crypt-portrait{width:110px;height:138px;border:3px double var(--paper);border-radius:55px 55px 8px 8px;display:grid;place-items:center;box-shadow:0 0 0 7px var(--ink),0 0 0 8px var(--paper);position:relative}.crypt-portrait:before{content:"";position:absolute;inset:8px;border:1px solid var(--fog);border-radius:48px 48px 3px 3px}.crypt-portrait span{font:52px "Grenze Gotisch";color:var(--acid)}.crypt-copy h2{font:clamp(38px,5vw,68px)/.88 "Grenze Gotisch";margin:0 0 12px}.crypt-copy>p:last-child{line-height:1.6;max-width:700px}.crypt-button{position:relative;z-index:2;background:var(--acid);color:var(--ink);border:2px solid var(--paper);box-shadow:7px 7px 0 var(--paper);padding:18px 20px;text-decoration:none;font:700 10px "DM Mono";text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.crypt-button:hover{transform:translate(3px,3px);box-shadow:4px 4px 0 var(--paper)}.site-footer{background:var(--bruise);color:var(--paper);min-height:64px;padding:16px clamp(18px,4vw,64px);display:flex;justify-content:space-between;align-items:center;border-top:2px solid var(--ink);font:9px "DM Mono";text-transform:uppercase;letter-spacing:.08em}.site-footer a{color:var(--acid);text-underline-offset:4px}
@media(max-width:980px){.controls{grid-template-columns:1fr}.quick-toggles{flex-direction:row}.explorer{grid-template-columns:1fr}.county-map{position:relative;height:380px;max-height:none;border-right:0;border-bottom:2px solid}.map-canvas{height:290px}.source-note{grid-template-columns:1fr}.moon{width:330px;height:330px}.intro{grid-template-columns:1fr}.moon-scene{min-height:330px}}@media(max-width:620px){.masthead{height:90px;padding:10px 14px}.brand-mark{width:54px;height:54px}.brand-copy .eyebrow,.edition{display:none}.masthead h1{font-size:26px}.favorites-button span{display:none}.intro-copy{padding:42px 20px}.intro h2{font-size:54px}.moon-scene{min-height:280px}.moon{width:270px;height:270px;right:5%}.controls{padding:24px 16px}.filter-groups{display:block}.filter-groups fieldset+fieldset{margin-top:16px}.segmented{overflow:auto}.segmented button{white-space:nowrap}.event-register{padding:34px 16px 60px}.register-heading{align-items:flex-start;gap:16px}.sort-control{display:none}.event-card{grid-template-columns:60px 1fr;gap:12px}.date-stamp{width:56px;height:66px}.date-stamp strong{font-size:28px}.event-details{display:grid;gap:6px}.source-note{padding:44px 20px}.source-note h2{font-size:40px}.county-map{padding:25px 16px}.map-heading strong{font-size:24px}}@media(max-width:980px){.creator-chip{display:none}.contact-crypt{grid-template-columns:auto 1fr}.crypt-button{grid-column:2;justify-self:start}}
@media(max-width:620px){.masthead{grid-template-columns:1fr auto}.contact-crypt{grid-template-columns:1fr;text-align:center;padding:58px 28px}.crypt-portrait{margin:auto}.crypt-button{grid-column:auto;justify-self:stretch}.site-footer{display:grid;gap:10px;text-align:center}.station-break b:nth-of-type(2){display:none}.cobweb{width:95px;height:95px}.intro h2{text-shadow:2px 2px 0 rgba(255,255,255,.72)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.film-grain{display:none}.window{animation:none!important}}
