:root{
  --ink:#121212;--cream:#f3ecd9;--orange:#ff7a18;--orange2:#ff9438;--green:#a9c97c;--yellow:#f7d477;--white:#fffaf0;
  --hand:'Patrick Hand',system-ui,sans-serif;--body:'Source Sans 3',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{margin:0;background:var(--ink);color:var(--white);font-family:var(--body);font-size:18px;line-height:1.45;overflow-x:hidden}
img{max-width:100%}
.section-shell{width:min(1180px,90vw);margin:auto}
.sr-only,.anchor-target{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:sticky;top:0;z-index:30;min-height:74px;padding:10px max(5vw,24px);display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(18,18,18,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08)}
.school-mark{color:var(--white);text-decoration:none;font-family:var(--hand);font-weight:700;line-height:.9;font-size:1.45rem;transform:rotate(-1deg)}
.school-mark span,.school-mark small{display:block}.school-mark small{font-size:.75em;text-align:center;letter-spacing:.04em}
.anchor-nav{display:flex;gap:clamp(12px,2.5vw,34px);overflow:auto;scrollbar-width:none}.anchor-nav::-webkit-scrollbar{display:none}
.anchor-nav a{color:var(--white);text-decoration:none;text-transform:uppercase;font-size:.8rem;font-weight:700;white-space:nowrap;position:relative;transition:color .18s ease}
.anchor-nav a:hover,.anchor-nav a.active{color:var(--orange)}
.anchor-nav a::after{content:"";position:absolute;left:-3px;right:-3px;bottom:-10px;height:8px;opacity:0;transform:scaleX(.72) rotate(-1deg);transform-origin:left center;transition:opacity .18s ease,transform .22s ease;background-repeat:no-repeat;background-size:100% 100%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='12' viewBox='0 0 160 12'%3E%3Cpath d='M2 7 C20 1 35 10 54 6 S92 2 111 7 S142 3 158 6' fill='none' stroke='%23ff7a18' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E")}
.anchor-nav a:hover::after,.anchor-nav a.active::after{opacity:1;transform:scaleX(1) rotate(-1deg)}
.section-cream{background:var(--cream);color:var(--ink)}

.hero{position:relative;width:100%;min-height:clamp(760px,67.8vw,1050px);isolation:isolate;overflow:hidden;background:#111}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:0}
.hero-inner{position:relative;z-index:2;width:min(1260px,94vw);height:100%;min-height:inherit;margin:auto;text-align:center;padding:34px 0 88px}
.hero-heading{position:relative;z-index:4;display:block;width:min(990px,74vw);margin:0 auto;filter:drop-shadow(0 12px 18px rgba(0,0,0,.35));transform-origin:50% 70%;animation:titlePlay 5.8s ease-in-out infinite}
.ghost-row{position:relative;z-index:3;width:min(970px,78vw);height:clamp(245px,23vw,365px);margin:-2.8vw auto -8px;display:flex;align-items:flex-end;justify-content:center;gap:clamp(0px,.55vw,8px);pointer-events:none;transform:translateY(24px)}
.ghost{display:block;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 14px rgba(0,0,0,.34));transform-origin:50% 100%;will-change:transform}
.ghost-1{width:20%;animation:ghostPopLeft 2.6s cubic-bezier(.35,.02,.36,1) infinite}
.ghost-2{width:18%;animation:ghostPulse 4.4s ease-in-out -.7s infinite}
.ghost-3{width:15%;transform:translateY(0)}
.ghost-4{width:18%;animation:ghostJitter 3.4s ease-in-out -1.2s infinite}
.ghost-5{width:20%;animation:ghostPopRight 2.9s cubic-bezier(.35,.02,.36,1) -.35s infinite}
.hero-copy{position:relative;z-index:5;margin:18px auto 0;width:min(900px,92vw)}
.date-block{font-family:var(--hand);display:flex;flex-direction:column;gap:0;margin:4px 0 24px;text-shadow:0 3px 7px rgba(0,0,0,.7)}
.date-block strong{font-size:clamp(2.4rem,4.9vw,4.7rem);line-height:.92}.date-block span{font-size:clamp(1.15rem,2.25vw,2rem);opacity:.94}
.cta{display:inline-flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;border-radius:999px;font-weight:800;letter-spacing:.01em;transition:transform .18s ease,box-shadow .18s ease}.cta:hover{transform:translateY(-3px)}
.primary{background:var(--orange);color:#101010;padding:17px 30px;font-family:var(--hand);font-size:clamp(1.25rem,2.35vw,2rem);box-shadow:0 8px 0 #9a3500}
.hero-note{font-size:.95rem;margin-top:16px;opacity:.84;text-shadow:0 2px 5px #000}

/* rough, hand-drawn section separators */
.hero::after,.quick-info::after{content:"";position:absolute;left:0;right:0;height:26px;z-index:8;pointer-events:none;background-repeat:repeat-x;background-size:420px 26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='26' viewBox='0 0 420 26'%3E%3Cpath d='M0 14 C34 7 67 19 102 12 S169 6 209 14 S281 19 321 10 S385 9 420 13 L420 26 L0 26 Z' fill='%23f3ecd9'/%3E%3C/svg%3E")}
.hero::after{bottom:-1px}.quick-info{position:relative}.quick-info::after{bottom:-25px;transform:rotate(180deg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='26' viewBox='0 0 420 26'%3E%3Cpath d='M0 14 C34 7 67 19 102 12 S169 6 209 14 S281 19 321 10 S385 9 420 13 L420 26 L0 26 Z' fill='%23121212'/%3E%3C/svg%3E")}

@keyframes titlePlay{0%,100%{transform:translateY(0) rotate(-.25deg) scale(1)}32%{transform:translateY(-5px) rotate(.25deg) scale(1.006)}62%{transform:translateY(-1px) rotate(-.12deg) scale(.997)}80%{transform:translateY(-7px) rotate(.18deg) scale(1.003)}}
@keyframes ghostPulse{0%,100%{transform:translateY(0) scale(1) rotate(-.25deg)}50%{transform:translateY(-3px) scale(1.018) rotate(.25deg)}}
@keyframes ghostJitter{0%,72%,100%{transform:translateY(0) rotate(.2deg)}76%{transform:translate(2px,-2px) rotate(-1.2deg)}80%{transform:translate(-2px,-1px) rotate(1deg)}84%{transform:translate(1px,-3px) rotate(-.6deg)}88%{transform:translateY(0) rotate(.2deg)}}
@keyframes ghostPopLeft{0%,100%{transform:translateY(1px) rotate(-1.2deg) scale(1)}38%{transform:translateY(-8px) rotate(1deg) scale(1.018)}48%{transform:translateY(-4px) rotate(.2deg) scale(1.006)}62%{transform:translateY(-10px) rotate(1.1deg) scale(1.02)}}
@keyframes ghostPopRight{0%,100%{transform:translateY(1px) rotate(1.2deg) scale(1)}40%{transform:translateY(-10px) rotate(-1.1deg) scale(1.02)}53%{transform:translateY(-4px) rotate(-.2deg) scale(1.006)}67%{transform:translateY(-9px) rotate(-1deg) scale(1.018)}}

.intro{text-align:center;padding:76px 0 28px;position:relative;scroll-margin-top:74px}.intro h2,.food h2,.thanks h2{font-family:var(--hand);font-size:clamp(3rem,7vw,6rem);line-height:.88;margin:0}.intro h2 em{font-style:normal}.lede{max-width:720px;margin:22px auto;color:#403b34}.secondary{padding:13px 24px;background:var(--ink);color:var(--white);font-family:var(--hand);font-size:1.2rem}.is-placeholder{opacity:.58;pointer-events:none}
.quick-info{padding:32px 0 90px}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.info-card{position:relative;min-height:440px;padding:38px;border-radius:28px;overflow:hidden;box-shadow:0 14px 32px rgba(23,17,9,.15)}.map-card{background:var(--green);display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:20px}.schedule-card{background:var(--orange);padding-right:170px}.card-kicker{font-weight:700;margin:0 0 4px}.info-card h2{font-family:var(--hand);font-size:clamp(3.4rem,6vw,5.5rem);line-height:.78;margin:8px 0 30px}.mini{background:var(--orange);color:#111;padding:12px 22px;font-family:var(--hand);font-size:1.25rem}.schedule-card .mini{background:#111;color:white}.map-preview img{width:100%;display:block;transform:rotate(-3deg);border:8px solid rgba(255,255,255,.45);box-shadow:0 10px 25px rgba(0,0,0,.18)}.schedule-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.schedule-columns h3{font-family:var(--hand);font-size:1.65rem;margin:0}.schedule-columns p{margin:.25rem 0 0}.signpost{position:absolute;right:25px;top:92px;display:flex;flex-direction:column;gap:10px;transform:rotate(-2deg)}.signpost span{background:#f4ead7;color:#111;border:4px solid #111;padding:7px 12px;font-family:var(--hand);font-weight:700;font-size:1.2rem;box-shadow:4px 4px 0 #111}

.footer-scene{position:relative;isolation:isolate;overflow:hidden;background:#101010;min-height:850px}
.footer-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;z-index:-1}
.food{padding:100px 0 105px;text-align:center;position:relative;scroll-margin-top:74px}.food h2{color:var(--white)}.section-sub{max-width:720px;margin:8px auto 34px;opacity:.78;text-shadow:0 2px 5px #000}.vendor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;max-width:980px;margin:0 auto}.vendor-card{min-height:240px;background:var(--cream);color:#111;border-radius:16px;padding:22px 18px 18px;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:space-between;box-shadow:0 7px 0 rgba(255,122,24,.75);transition:.18s}.vendor-card:hover{transform:translateY(-6px) rotate(-1deg)}.vendor-logo-wrap{width:100%;height:135px;display:flex;align-items:center;justify-content:center;padding:8px 10px}.vendor-logo{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.jets-logo{max-height:92px}.wholly-logo{max-height:110px}.kona-logo{max-height:132px}.vendor-card span{background:var(--orange);padding:9px 18px;border-radius:999px;font-weight:800;font-size:.82rem}
.thanks{position:relative;min-height:420px;padding:35px 0 60px;text-align:center;scroll-margin-top:74px}.thanks-inner{position:relative;z-index:2}.thanks h2{font-size:clamp(2.8rem,5.5vw,5rem);text-shadow:0 3px 7px #000}.thanks p{margin:0 0 28px;text-shadow:0 2px 5px #000}.sponsor-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 32px}.sponsor-row a{color:var(--white);text-decoration:none;font-family:var(--hand);font-size:clamp(1.4rem,2.3vw,2rem);opacity:.92;text-shadow:0 2px 5px #000}.sponsor-row a:hover{color:var(--orange)}.footer-note{margin-top:70px!important;opacity:.72;font-size:.9rem}
.sticky-buy{display:none;position:fixed;z-index:30;bottom:12px;left:50%;transform:translateX(-50%);background:var(--orange);color:#111;text-decoration:none;padding:11px 22px;border-radius:999px;font-family:var(--hand);font-weight:800;box-shadow:0 5px 18px rgba(0,0,0,.35)}

@media(max-width:900px){
  .site-header{align-items:flex-start;flex-direction:column;gap:8px;padding:9px 18px 10px}.anchor-nav{width:100%;padding-bottom:3px}
  .hero{min-height:860px}.hero-inner{padding-top:32px}.hero-heading{width:min(920px,92vw)}.ghost-row{width:96vw;height:310px;margin:-12px auto 0;transform:translateY(20px)}.ghost-1,.ghost-5{width:21%}.ghost-2,.ghost-4{width:19%}.ghost-3{width:16%}.hero-copy{margin-top:24px}
  .card-grid{grid-template-columns:1fr}.map-card{grid-template-columns:1fr 1fr}.schedule-card{padding-right:160px}.vendor-grid{grid-template-columns:repeat(3,1fr);gap:16px}.vendor-card{min-height:220px}.sticky-buy.visible{display:block}.footer-scene{min-height:1200px}
}
@media(max-width:650px){.vendor-grid{grid-template-columns:1fr;max-width:420px}.vendor-card{min-height:180px}.vendor-logo-wrap{height:105px}}
@media(max-width:560px){
  html{scroll-padding-top:105px}body{font-size:16px}.site-header{min-height:100px}.school-mark{display:none}.anchor-nav{gap:20px}
  .hero{min-height:840px}.hero-bg{object-position:66% center}.hero-inner{width:100%;padding:32px 0 82px}.hero-heading{width:97vw}.ghost-row{width:108vw;height:270px;margin:4px 0 2px;left:-4vw;gap:0;transform:translateY(18px)}.ghost-1,.ghost-5{width:22%}.ghost-2,.ghost-4{width:20%}.ghost-3{width:17%}.hero-copy{width:95vw;margin-top:26px}.date-block strong{font-size:2.55rem}.date-block span{font-size:1.25rem}.primary{width:92%;padding:14px 18px}.hero-note{padding:0 24px}
  .intro{padding-top:60px;scroll-margin-top:98px}.quick-info{padding-top:20px}.info-card{padding:28px;min-height:auto}.map-card{grid-template-columns:1fr}.map-preview{margin-top:10px}.schedule-card{padding-right:28px;padding-bottom:210px}.signpost{top:auto;bottom:35px;right:35px}.schedule-columns{grid-template-columns:1fr}.sponsor-row{flex-direction:column}.footer-note{margin-top:48px!important}.footer-scene{min-height:1550px}.footer-bg{object-position:54% bottom}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cta,.vendor-card{transition:none}.hero-heading,.ghost{animation:none!important}}
