@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Nunito Sans,system-ui,sans-serif;font-weight:400;line-height:1.5}body{margin:0}:root{--ink:#0b1215;--bay:#142026;--fog:#1e3036;--bone:#e8dfd0;--bone-dim:#b9aea0;--pumpkin:#e07a2f;--amber:#f0a84b;--moss:#4a6b52;--moss-deep:#2f4636;--haunt:#c45c4a;--trunk:#6b8f71;--treat:#d4a017;--decor:#7a9eb5;--other:#a78b6d;--line:#e8dfd024;--font-display:"Fraunces", Georgia, serif;--font-body:"Nunito Sans", Georgia, sans-serif;--radius:4px;--ease:cubic-bezier(.22, 1, .36, 1);color:var(--bone);background:var(--ink);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);min-width:320px;margin:0}#root{min-height:100svh}a{color:var(--amber);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--bone)}button,input,select,textarea{font:inherit}.page{background:var(--ink);min-height:100svh;position:relative;overflow-x:clip}.spooky-backdrop{pointer-events:none;z-index:0;width:100%;display:block;position:relative;overflow:hidden}.spooky-bg{will-change:transform;width:100%;position:relative}.spooky-bg img{filter:saturate(1.08)contrast(1.05);width:100%;height:auto;display:block}.spooky-veil{background:linear-gradient(#080c0e26 0%,#080c0e0d 45%,#080c0e66 100%),linear-gradient(90deg,#080c0e66 0%,#080c0e14 42%,#0000 68%);position:absolute;inset:0}.sprite-layer{z-index:2;will-change:transform;transition:transform .35s var(--ease);position:absolute;inset:0}.pixel-sprite{image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 4px 6px #00000073);position:absolute;left:-10%}.pixel-sprite.drift-right{animation-name:fly-right;animation-timing-function:linear;animation-iteration-count:infinite}.pixel-sprite.drift-left{animation-name:fly-left;animation-timing-function:linear;animation-iteration-count:infinite;left:auto;right:-10%}@keyframes fly-right{0%{transform:translate3d(-12vw, 0, 0) rotate(calc(var(--spin,0deg) * -1))}50%{transform:translate3d(55vw, -18px, 0) rotate(var(--spin,0deg))}to{transform:translate3d(120vw, 0, 0) rotate(calc(var(--spin,0deg) * -1))}}@keyframes fly-left{0%{transform:translate3d(12vw, 0, 0) scaleX(-1) rotate(calc(var(--spin,0deg) * -1))}50%{transform:translate3d(-55vw, 14px, 0) scaleX(-1) rotate(var(--spin,0deg))}to{transform:translate3d(-120vw, -8px, 0) scaleX(-1) rotate(calc(var(--spin,0deg) * -1))}}.atmosphere{display:none}.smoke-cursor{z-index:50;pointer-events:none;mix-blend-mode:screen;width:100%;height:100%;position:fixed;inset:0}.site-nav,main,.site-footer{z-index:1;position:relative}.site-nav{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#0b1215b8;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem clamp(1.25rem,4vw,3rem);display:flex;position:sticky;top:0}.nav-brand{font-family:var(--font-display);color:var(--bone);letter-spacing:.01em;font-size:1.15rem;font-weight:700;text-decoration:none}.site-nav nav{align-items:center;gap:1.1rem;display:flex}.site-nav nav a{color:var(--bone-dim);font-size:.95rem;font-weight:600;text-decoration:none}.site-nav nav a:hover{color:var(--bone)}.btn{border-radius:var(--radius);cursor:pointer;transition:transform .35s var(--ease), background .25s ease, border-color .25s ease, color .25s ease;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.15rem;font-weight:700;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--pumpkin);color:#1a1008;border-color:var(--pumpkin)}.btn-primary:hover{background:var(--amber);border-color:var(--amber)}.btn-ghost{color:var(--bone);border-color:var(--line);background:0 0}.btn-ghost:hover{border-color:var(--bone-dim);background:#e8dfd00d}.btn-nav{background:var(--moss-deep);color:var(--bone);border-color:var(--moss);padding:.5rem .9rem;font-size:.9rem}.btn-text{color:var(--bone-dim);cursor:pointer;text-underline-offset:.15em;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.btn-text:hover{color:var(--amber)}.hero{isolation:isolate;background:#0b1215;width:100%;display:block;position:relative;overflow:hidden}.hero-copy{z-index:1;max-width:40rem;animation:rise-in .9s var(--ease) both;flex-direction:column;justify-content:flex-end;padding:clamp(1.5rem,5vw,4rem) clamp(1.25rem,4vw,3rem) clamp(2rem,6vw,4rem);display:flex;position:absolute;inset:0}.hero-brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--amber);text-shadow:0 2px 24px #0000008c;margin:0 0 .75rem;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:700;line-height:.95}.hero-copy h1{font-family:var(--font-display);color:var(--bone);text-shadow:0 2px 18px #00000073;margin:0 0 1rem;font-size:clamp(1.35rem,2.8vw,1.85rem);font-weight:500;line-height:1.25}.hero-lede{max-width:32rem;color:var(--bone);text-shadow:0 1px 12px #00000080;margin:0 0 1.75rem;font-size:1.05rem;line-height:1.55}.hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.panel{border-top:1px solid var(--line);background:#10181c}.nav-admin{opacity:.7;font-size:.88rem!important}.btn-danger{color:#fff7f5;background:#c45c4ae6;border-color:#c45c4a}.btn-danger:hover{background:#c45c4a}.admin-page .admin-main{padding:clamp(2rem,5vw,3.5rem) clamp(1.25rem,4vw,3rem)}.admin-panel{border:1px solid var(--line);background:#0b1215e0;border-radius:8px;max-width:720px;margin:0 auto;padding:1.5rem clamp(1rem,3vw,1.75rem)}.admin-panel h1{font-family:var(--font-display);margin:0 0 .5rem;font-size:clamp(1.8rem,3vw,2.3rem)}.admin-lede{color:var(--bone-dim);margin:0 0 1.5rem;line-height:1.5}.admin-lede code{color:var(--amber);font-size:.92em}.admin-login{gap:1rem;max-width:320px;display:grid}.admin-list{gap:.85rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.admin-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;display:flex}.admin-list li div{gap:.2rem;display:grid}.admin-list li span{color:var(--bone-dim);font-size:.9rem}.section{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.25rem,4vw,3rem)}.calendar-head{max-width:40rem;margin-bottom:1.75rem}.calendar-head h2,.section-head h2,.modal-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:700}.calendar-head p,.section-head p,.modal-head p{color:var(--bone-dim);margin:0;line-height:1.5}.calendar-weekdays{color:var(--bone-dim);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:repeat(7,1fr);gap:.4rem;margin-bottom:.45rem;font-size:.78rem;font-weight:700;display:grid}.calendar-weekdays span{text-align:center}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.4rem;display:grid}.cal-cell{border:1px solid var(--line);border-radius:var(--radius);min-height:5.5rem;color:var(--bone);text-align:left;cursor:pointer;transition:border-color .25s ease, background .25s ease, transform .35s var(--ease);background:#1e303673;flex-direction:column;gap:.35rem;padding:.45rem;display:flex}.cal-empty{cursor:default;background:0 0;border-color:#0000;min-height:0}.cal-cell:not(.cal-empty):hover{border-color:#f0a84b73;transform:translateY(-2px)}.cal-cell.has-events{background:#2f463659}.cal-cell.is-selected{border-color:var(--pumpkin);background:#e07a2f29;box-shadow:inset 0 0 0 1px #e07a2f59}.cal-num{font-family:var(--font-display);font-size:1.05rem;font-weight:700}.cal-dots{flex-wrap:wrap;gap:.25rem;display:flex}.dot{letter-spacing:.02em;text-transform:uppercase;color:var(--bone-dim);background:#0b121573;border-radius:2px;padding:.12rem .28rem;font-size:.62rem;font-weight:700}.dot.type-haunted_house{color:#f0c4bc;background:#c45c4a40}.dot.type-trick_or_treat{color:#ffe39a;background:#d4a01738}.dot.type-trunk_or_treat{color:#c8e0cc;background:#6b8f7147}.dot.type-decorations{color:#d0e4f0;background:#7a9eb547}.dot.type-other{color:#e4d4c0;background:#a78b6d47}.dot.more{color:var(--amber)}.clear-day{margin-top:1rem}.listings-section .section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem;margin-bottom:1.5rem;display:flex}.filter-row{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.filter-chip{border:1px solid var(--line);color:var(--bone-dim);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.45rem .85rem;font-size:.88rem;font-weight:700;transition:background .2s,color .2s,border-color .2s}.filter-chip:hover,.filter-chip.is-active{color:var(--ink);background:var(--amber);border-color:var(--amber)}.event-list{gap:1.25rem;display:grid}.event-card{border-top:1px solid var(--line);animation:rise-in .55s var(--ease) both;grid-template-columns:minmax(140px,220px) 1fr;gap:0;padding-top:1.25rem;display:grid}.event-media{background:var(--fog);min-height:160px;overflow:hidden}.event-media img{object-fit:cover;filter:saturate(.9)contrast(1.05);width:100%;height:100%;display:block}.event-media-fallback{background:linear-gradient(145deg, #e07a2f33, transparent 55%), var(--fog);font-family:var(--font-display);color:var(--amber);place-items:center;font-size:1.4rem;display:grid}.event-body{padding:0 0 .5rem 1.25rem}.event-meta{color:var(--bone-dim);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.55rem;font-size:.88rem;display:flex}.type-tag{letter-spacing:.04em;text-transform:uppercase;border-radius:2px;padding:.2rem .45rem;font-size:.72rem;font-weight:700}.type-haunted_house{color:#f0c4bc;background:#c45c4a38}.type-trick_or_treat{color:#ffe39a;background:#d4a01733}.type-trunk_or_treat{color:#c8e0cc;background:#6b8f7140}.type-decorations{color:#d0e4f0;background:#7a9eb540}.type-other{color:#e4d4c0;background:#a78b6d40}.event-body h3{font-family:var(--font-display);letter-spacing:-.015em;margin:0 0 .35rem;font-size:1.45rem;font-weight:700}.event-when,.event-where,.event-desc{margin:0 0 .55rem;line-height:1.5}.event-when{color:var(--amber);font-size:.95rem;font-weight:700}.event-where{color:var(--bone);flex-direction:column;gap:.15rem;display:flex}.event-where span{color:var(--bone-dim);font-size:.92rem}.event-desc{color:var(--bone-dim);max-width:48rem}.event-footer{flex-wrap:wrap;align-items:center;gap:.85rem 1.1rem;margin-top:.75rem;font-size:.9rem;display:flex}.muted{color:var(--bone-dim)}.empty-state{border-top:1px solid var(--line);justify-items:start;gap:1rem;padding:2.5rem 0;display:grid}.site-footer{border-top:1px solid var(--line);color:var(--bone-dim);padding:2.5rem clamp(1.25rem,4vw,3rem) 3.5rem;font-size:.95rem;line-height:1.55}.site-footer p{max-width:40rem;margin:0 0 .75rem}.site-footer strong{color:var(--bone);font-family:var(--font-display)}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05080ac7;place-items:center;padding:1rem;animation:.25s both fade-in;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line);width:min(720px,100%);max-height:min(92svh,900px);animation:rise-in .4s var(--ease) both;background:linear-gradient(#162229,#10181c);border-radius:8px;padding:1.5rem clamp(1rem,3vw,1.75rem) 1.75rem;overflow:auto}.modal-head{margin-bottom:1.25rem}.form-grid{grid-template-columns:1fr 1fr;gap:.9rem 1rem;display:grid}.field{gap:.35rem;display:grid}.field-span{grid-column:1/-1}.field span{letter-spacing:.03em;text-transform:uppercase;color:var(--bone-dim);font-size:.82rem;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius);width:100%;color:var(--bone);background:#0b1215a6;padding:.65rem .75rem}.field input:focus,.field select:focus,.field textarea:focus{outline-offset:1px;outline:2px solid #f0a84b73}.file-hint{color:var(--moss);font-size:.85rem}.form-error{color:#f0c4bc;margin:1rem 0 0;font-weight:600}.form-actions{justify-content:flex-end;gap:.75rem;margin-top:1.25rem;display:flex}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width<=900px){.hero-copy{justify-content:flex-end;padding:1.25rem 1.1rem 1.5rem}.hero-brand{font-size:clamp(1.9rem,9vw,2.6rem)}.cal-cell{min-height:4.25rem}.dot{display:none}.cal-cell.has-events .cal-num:after{content:"";background:var(--pumpkin);vertical-align:middle;border-radius:50%;width:.4rem;height:.4rem;margin-left:.3rem;display:inline-block}}@media (width<=700px){.site-nav nav a:not(.btn){display:none}.event-card{grid-template-columns:1fr}.event-body{padding:1rem 0 0}.event-media{min-height:180px}.form-grid{grid-template-columns:1fr}.calendar-weekdays{font-size:.65rem}.cal-cell{min-height:3.4rem;padding:.3rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
