@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--cream:#f8f5ec;--green:#243e32;--ink:#263b31;--muted:#667064;--lime:#dfec95;--line:#d5d8c9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #af573b;outline-offset:5px}button,a{touch-action:manipulation}.skip{position:absolute;top:-100px;background:white;padding:15px;z-index:20}.skip:focus{top:0}header{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:30px 5%;border-bottom:1px solid var(--line)}.wordmark{font-size:11px;letter-spacing:2px;line-height:1.3;font-weight:700}.wordmark span{display:block;font-size:23px;letter-spacing:-1px}nav{display:flex;align-items:center;gap:32px;font-size:13px}nav a:hover,.text-link:hover{color:#9a4b31}.nav-pill{border:1px solid var(--green);border-radius:30px;padding:10px 20px}.hero{max-width:1440px;margin:auto;padding:65px 5% 75px;display:grid;grid-template-columns:1.05fr 1fr;gap:35px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;margin:0 0 22px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:-3px;line-height:1.02}h1{font-size:clamp(60px,6.7vw,100px);margin-bottom:28px}h1 em,h2 em{font-weight:400}h2{font-size:clamp(42px,4.3vw,66px);margin-bottom:22px}h3{font-weight:500;font-size:27px;line-height:1.2}.intro{font-size:18px;line-height:1.65;color:var(--muted);margin-bottom:28px}.button{display:inline-flex;background:var(--green);color:var(--cream);border-radius:30px;gap:35px;padding:16px 24px;font-size:13px}.button:hover{background:#3f5d49}.event-meta{display:flex;gap:13px;align-items:center;margin-top:35px;font-size:12px}.event-meta strong,.event-meta div>span{display:block}.event-meta div>span{font-size:11px;color:var(--muted)}.sun{font-size:40px;line-height:1}.hero-art{position:relative;padding:0 16px 22px 0;min-height:530px}.hero-photo{width:100%;height:100%;max-height:620px;object-fit:cover;object-position:50% 45%;border-radius:180px 180px 5px 5px}.roundel{position:absolute;right:-12px;top:20px;background:var(--lime);width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;font-size:10px;line-height:1.4;letter-spacing:1px;transform:rotate(12deg)}.roundel span{font-size:27px}.photo-note{position:absolute;bottom:0;left:20px;background:var(--cream);padding:12px 25px;font:italic 21px Georgia;transform:rotate(-4deg);box-shadow:0 2px 7px #0001}.ticker{display:flex;gap:50px;justify-content:center;align-items:center;background:var(--lime);padding:19px;overflow:hidden;white-space:nowrap;font-size:22px}.ticker span{font-size:11px;font-weight:700;letter-spacing:3px}.section{max-width:1440px;margin:auto;padding:95px 5%}.welcome-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:100px}.welcome-grid>div{max-width:430px;color:var(--muted)}.welcome-grid h2{font-size:48px}.banner-wrap{margin-top:50px;padding:35px;background:#ebe9dd;border:1px solid var(--line);text-align:center}.banner-wrap img{width:min(100%,680px);max-height:220px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:35px}.section-head>p{color:var(--muted);font-size:14px}.music{padding-top:30px}.lineup-empty{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:48px 20px;text-align:center}.music-symbol{font-size:48px;display:block;color:#a8583e;line-height:1;margin-bottom:20px}.lineup-empty h3{font:32px 'DM Serif Display',Georgia}.lineup-empty p{color:var(--muted)}.tags{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.tags span{font-size:11px;border:1px solid var(--line);border-radius:25px;padding:7px 15px}.artist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.artist-card{border-top:1px solid;padding:25px 0}.porches{padding-top:20px}.map-layout{display:grid;grid-template-columns:1.7fr 1fr;min-height:410px;border:1px solid var(--line)}.map-placeholder{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#e8eddd;text-align:center;padding:50px 20px}.map-lines{position:absolute;inset:-100px;background:repeating-linear-gradient(21deg,transparent 0 80px,#f8f5ec 82px 96px,transparent 98px 180px),repeating-linear-gradient(105deg,transparent 0 140px,#d2dbc3 142px 146px,transparent 148px 210px);transform:rotate(-7deg)}.map-message{position:relative;background:#f8f5eced;padding:26px 35px;border:1px solid #d5d8c9;max-width:90%}.map-message>span{font-size:40px}.map-message h3{font:30px 'DM Serif Display',Georgia}.map-message p{font-size:13px;color:var(--muted);margin:0}.map-label{position:absolute;top:25px;left:25px;letter-spacing:3px;font-size:10px}.map-placeholder small{position:absolute;bottom:10px;font-size:9px}.venue-panel{padding:40px}.venue-panel h3{font:40px/1.05 'DM Serif Display',Georgia;letter-spacing:-1px}.pending{padding:20px 0;border-block:1px solid var(--line);font-size:13px}.fine{font-size:12px;color:var(--muted)}.gallery-section{padding-bottom:80px;background:#eeeee3}.gallery-section .section{padding-bottom:0;padding-top:70px}.gallery-controls{display:flex;gap:10px}.gallery-controls button{width:45px;height:45px;border:1px solid #a9b1a0;border-radius:50%;background:none}.gallery-controls button:hover{background:var(--lime)}.photo-strip{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:5px max(5%,calc((100vw - 1296px)/2)) 20px;scrollbar-width:thin}.photo-card{position:relative;border:0;background:none;padding:0;flex:0 0 330px;height:390px;scroll-snap-align:center}.photo-card:nth-child(even){height:335px;margin-top:35px}.photo-card img{width:100%;height:100%;object-fit:cover}.photo-card span{position:absolute;bottom:12px;right:12px;background:var(--cream);border-radius:50%;width:30px;height:30px}.gallery-caption{display:flex;justify-content:space-between;margin:15px 5% 0;font-size:11px;color:var(--muted)}.visit{display:grid;grid-template-columns:1fr 1fr;gap:90px}.visit>div>p:not(.eyebrow){max-width:360px;color:var(--muted);font-size:14px}.text-link{font-size:13px;border-bottom:1px solid;padding-bottom:6px}details{border-bottom:1px solid var(--line);padding:20px 0}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:22px;font-weight:400}details[open] summary:after{content:'−'}details p{font-size:13px;color:var(--muted);margin:15px 0 0}.closing{background:var(--green);color:var(--cream);text-align:center;padding:75px 20px 85px}.closing h2{font-size:clamp(65px,9vw,130px);line-height:.93;margin-bottom:30px}.closing h2 span{color:var(--lime);display:inline-block;font-size:.7em;margin-left:15px}.closing p:not(.eyebrow){font-size:14px;color:#cbd2c7}.closing a{font-size:13px;border-bottom:1px solid #8b9a87;margin:0 15px;padding-bottom:5px}footer{padding:35px 5%;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}footer p{margin:0}dialog{border:0;padding:15px;background:var(--cream);max-width:90vw;max-height:92vh}dialog::backdrop{background:#102318df}dialog img{display:block;max-width:82vw;max-height:76vh;object-fit:contain}dialog p{font-size:12px;margin:10px 0 0}.close{position:absolute;right:22px;top:22px;background:var(--cream);border:0;border-radius:50%;width:40px;height:40px}@media(max-width:800px){header{padding:22px 5%}nav{gap:18px}nav a:not(.nav-pill){display:none}.hero{grid-template-columns:1fr;padding-top:38px;gap:40px}.hero-art{min-height:480px;max-height:600px;margin:0 10px}.hero-photo{height:480px}.hero h1{font-size:70px}.roundel{right:-10px}.ticker{justify-content:flex-start;gap:25px}.section{padding:60px 5%}.welcome-grid,.visit{grid-template-columns:1fr;gap:20px}.welcome-grid h2{font-size:40px}.banner-wrap{margin-top:25px;padding:15px}.section-head{display:block}.section-head>p{margin-bottom:25px}.map-layout{grid-template-columns:1fr}.map-placeholder{min-height:350px}.venue-panel{padding:30px}.gallery-section .section-head{display:flex;align-items:flex-end}.gallery-section h2{font-size:39px;letter-spacing:-2px}.gallery-controls{gap:5px}.gallery-controls button{width:36px;height:36px}.photo-card{flex-basis:75vw;height:350px}.photo-card:nth-child(even){height:310px}.artist-grid{grid-template-columns:1fr}.visit{gap:30px}footer{gap:25px;flex-wrap:wrap}footer p{display:none}.closing{padding:60px 15px}.closing h2{letter-spacing:-3px}.gallery-caption{gap:20px}.eyebrow{font-size:9px;letter-spacing:1.5px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.performer-callout{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:40px;padding:32px;background:#eeeee3}.performer-callout h3{font:34px "DM Serif Display",Georgia;margin-bottom:12px}.performer-callout p:not(.eyebrow){font-size:13px;max-width:440px;margin-bottom:0}.performer-callout .button{flex-shrink:0}.partner{text-align:center;padding-top:15px;padding-bottom:65px}.partner img{width:min(100%,430px);height:auto}@media(max-width:800px){.performer-callout{flex-direction:column;align-items:flex-start;padding:25px}.partner{padding-top:10px}}

/* Keep grid tracks and long editorial headings within narrow viewports. */
.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.hero-copy,.hero-art,.section-head>*,.welcome-grid>*,.visit>*,.map-layout>*{min-width:0}
@media(max-width:800px){
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero h1{font-size:clamp(40px,12vw,70px);letter-spacing:-2px;line-height:1.04}
  .hero-art{min-height:0;max-height:none;margin:0;padding:0 0 20px}
  .hero-photo{display:block;height:auto;aspect-ratio:4/5;max-height:540px;border-radius:160px 160px 5px 5px}
  .roundel{width:100px;height:100px;right:10px;top:15px;font-size:9px;transform:rotate(8deg)}
  .photo-note{left:12px;max-width:calc(100% - 24px);font-size:18px;padding:10px 16px}
  header{flex-wrap:wrap;gap:18px;padding-bottom:14px}
  nav{width:100%;justify-content:space-between;gap:8px;flex-wrap:wrap}
  nav a:not(.nav-pill){display:inline-flex;align-items:center;min-height:44px;font-size:12px}
  .nav-pill{font-size:12px;padding:10px 13px}
  .button{max-width:100%;gap:20px;justify-content:space-between;min-height:48px}
  .event-meta>div{min-width:0}
  .event-meta .sun{flex-shrink:0}
  .gallery-section .section-head{display:block;margin-bottom:24px}
  .gallery-section h2{max-width:100%;margin-bottom:20px}
  .gallery-controls{justify-content:flex-end;gap:10px}
  .gallery-controls button{width:44px;height:44px;flex-shrink:0}
  .gallery-caption{flex-wrap:wrap;align-items:center;row-gap:8px}
  .gallery-caption a{display:inline-flex;align-items:center;min-height:44px}
  .performer-callout .button{width:100%;justify-content:center;white-space:normal;text-align:center}
  .map-message{padding:24px 20px;max-width:100%}
  .map-placeholder small{left:12px;right:12px;line-height:1.4}
  .closing h2{font-size:clamp(54px,15vw,100px)}
  .closing h2 span{margin-left:6px}
  dialog{max-width:calc(100vw - 24px);padding:12px;margin:auto}
  dialog img{max-width:100%;max-height:75dvh}
  dialog p{overflow-wrap:anywhere}
}
@media(max-width:360px){
  nav{column-gap:10px;justify-content:flex-start}
  nav .nav-pill{margin-left:auto}
  .hero .eyebrow{max-width:260px}
}
