:root{
  --lime:#B8F23A;
  --lime-soft:#C7F45C;
  --ink:#17131D;
  --purple:#21112F;
  --purple-2:#35144A;
  --cream:#F6F4EF;
  --white:#fff;
  --muted:#bcb7c1;
  --sans:"DM Sans",Arial,sans-serif;
  --serif:"Playfair Display",Georgia,serif;
  --script:"Allura","Brush Script MT",cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans)}
a{text-decoration:none;color:inherit}
.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:94px;padding:15px 4.5vw;display:flex;align-items:center;justify-content:space-between;color:#fff;background:linear-gradient(180deg,rgba(9,5,14,.82),rgba(9,5,14,0));}
.brand{width:180px;position:relative;line-height:.82;color:#fff;display:block}
.brand-main{display:block;font-weight:700;font-size:31px;letter-spacing:-1.7px}
.brand-lower{display:block;font-weight:700;font-size:31px;letter-spacing:-1.8px;margin-left:0}
.brand-of{font-family:var(--script);font-size:17px;font-weight:400;letter-spacing:0;position:relative;top:-1px;margin-right:3px}
.brand-we{color:var(--lime);font-weight:700}
.brand-ek{color:#fff}
.brand-swoosh{display:block;width:170px;height:21px;margin-top:3px;overflow:visible}
.brand-swoosh path{fill:none;stroke:var(--lime);stroke-width:2.7;stroke-linecap:round}
nav{display:flex;gap:30px;align-items:center;font-size:13px;font-weight:500}
nav a{opacity:.9;position:relative;padding:15px 0}
nav a:after{content:"";position:absolute;left:0;bottom:7px;width:0;height:2px;background:var(--lime);transition:.25s}
nav a:hover:after,nav a.active:after{width:100%}
.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:25px}
.hero{height:100vh;min-height:680px;position:relative;overflow:hidden;background:#100b18}
.hero-photo{position:absolute;inset:0}
.placeholder-photo{background:
 radial-gradient(circle at 72% 34%,rgba(117,38,171,.55),transparent 28%),
 radial-gradient(circle at 25% 60%,rgba(45,18,77,.75),transparent 34%),
 linear-gradient(135deg,#0c0912 0%,#1c0b2c 46%,#080711 100%);
}
.placeholder-photo:before{content:"";position:absolute;inset:0;background:
 radial-gradient(circle at 20% 30%,rgba(255,255,255,.16) 0 2px,transparent 3px),
 radial-gradient(circle at 28% 58%,rgba(255,255,255,.11) 0 3px,transparent 4px),
 radial-gradient(circle at 67% 29%,rgba(255,255,255,.12) 0 2px,transparent 3px),
 radial-gradient(circle at 85% 54%,rgba(255,255,255,.16) 0 2px,transparent 3px);
 filter:blur(1px);opacity:.45}
.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,4,8,.2),rgba(5,4,8,.05),rgba(5,4,8,.42))}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,4,13,.42),rgba(8,4,13,.08) 42%,rgba(8,4,13,.82) 100%)}
.hero-content{position:absolute;left:7vw;bottom:15vh;max-width:820px;color:#fff}
.eyebrow,.section-kicker{font-size:11px;letter-spacing:.2em;font-weight:700}
.eyebrow{color:var(--lime);margin-bottom:23px}
.hero h1{margin:0;line-height:.86}
.hero h1 span{display:block;font:600 clamp(58px,8vw,122px)/.88 var(--serif);letter-spacing:-.055em}
.hero h1 em{display:block;font:400 clamp(75px,10vw,145px)/.7 var(--script);font-style:normal;color:var(--lime);margin-left:-5px;margin-top:10px}
.hero-copy{max-width:510px;font-size:16px;line-height:1.7;color:#e8e3eb;margin:32px 0 28px}
.button{display:inline-flex;gap:18px;align-items:center;border:1px solid var(--lime);background:var(--lime);color:#141019;padding:14px 20px;font-weight:700;font-size:13px;border-radius:0;transition:.25s}
.button:hover{transform:translateY(-2px);background:#d2fa72}
.button span{font-size:18px}
.button.light{background:transparent;color:#fff;border-color:#fff}
.scroll-note{position:absolute;right:5vw;bottom:30px;color:#fff;font-size:9px;letter-spacing:.2em;transform:rotate(90deg);transform-origin:right bottom}.scroll-note span{color:var(--lime);font-size:15px}
.section{padding:125px 7vw}
.section-kicker{color:#7e7882;margin-bottom:25px}
.about h2,.gallery h2{font:600 clamp(48px,6vw,82px)/.95 var(--serif);letter-spacing:-.04em;margin:0 0 30px}
.about h2 i,.gallery h2 i,.split-heading h2 i,.dates-heading h2 i,.join h2 i,.contact h2 i{font-family:var(--script);font-style:normal;font-weight:400;color:#5c2d91}
.about-grid{display:grid;grid-template-columns:1.15fr 1.35fr .65fr;gap:25px;align-items:end}
.about-grid>div:first-child{padding-right:30px}
.lead{font-size:20px;line-height:1.55;max-width:530px}
.about p:not(.lead){font-size:15px;line-height:1.8;color:#68626c;max-width:540px}
.image-card{height:530px;position:relative;overflow:hidden}
.image-card span,.portrait span,.news-image span,.gallery-item span,.join-image span{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:rgba(255,255,255,.42);font-size:11px;letter-spacing:.18em;font-weight:700}
.portrait-card{padding-bottom:20px}
.portrait{height:330px;position:relative;overflow:hidden}
.portrait-caption{display:flex;flex-direction:column;padding-top:13px}.portrait-caption strong{font:600 21px var(--serif)}.portrait-caption span{font-size:11px;color:#77717a;margin-top:4px}
.text-link{display:inline-flex;gap:12px;font-size:13px;font-weight:700;margin-top:18px;border-bottom:1px solid #aaa0ad;padding-bottom:7px}.text-link span{color:#5c2d91}
.dark-section{background:var(--ink);color:#fff}.music{padding:120px 7vw}.split-heading{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}.split-heading h2,.dates-heading h2,.join h2,.contact h2{font:600 clamp(56px,7vw,98px)/.86 var(--serif);letter-spacing:-.05em;margin:0}.split-heading p,.dates-heading p{font-size:17px;line-height:1.8;color:#bdb7c2;max-width:500px}.music-tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:65px}.music-tags span{border:1px solid #4d4352;padding:12px 18px;font-size:10px;letter-spacing:.18em;color:#d8d2dc}
.news{background:#f0eee9}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.news-image{height:280px;position:relative;margin-bottom:22px}.news-card.featured .news-image{height:350px}.news-meta{font-size:10px;letter-spacing:.2em;color:#6b626f;font-weight:700}.news-card h3{font:600 28px/1.05 var(--serif);margin:9px 0}.news-card p{font-size:14px;color:#6e6870;line-height:1.6}
.dates{padding:120px 7vw}.dates-heading{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:70px}.date-list{border-top:1px solid #3a3340}.date-row{display:grid;grid-template-columns:130px 1fr 50px;align-items:center;gap:25px;padding:28px 0;border-bottom:1px solid #3a3340}.date-number{font:600 48px var(--serif);line-height:.8}.date-number span{display:block;font:700 9px var(--sans);letter-spacing:.2em;color:var(--lime);margin-top:10px}.date-row small{font-size:9px;letter-spacing:.18em;color:var(--lime)}.date-row h3{font:600 26px var(--serif);margin:7px 0}.date-row p{margin:0;color:#a9a1ad;font-size:13px}.arrow{color:var(--lime);font-size:23px}
.join{position:relative;min-height:680px;display:flex;align-items:center;overflow:hidden;color:#fff}.join-image{position:absolute;inset:0}.join-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,5,13,.88),rgba(9,5,13,.28),rgba(9,5,13,.6))}.join-content{position:relative;z-index:2;margin-left:10vw;max-width:600px}.join .section-kicker{color:var(--lime)}.join h2{margin-bottom:30px}.join h2 i{color:var(--lime)}.join p{font-size:17px;line-height:1.8;color:#e0dbe3;max-width:500px;margin-bottom:30px}
.gallery{background:#f6f4ef}.gallery-grid{display:grid;grid-template-columns:1fr .75fr 1.15fr;grid-auto-rows:210px;gap:16px;margin-top:45px}.gallery-item{position:relative;min-height:210px}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.gallery-item:nth-child(4){grid-column:2}.gallery-item:nth-child(5){grid-column:3}
.contact{padding:125px 7vw}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact h2{margin:0 0 28px}.contact h2 i{color:var(--lime)}.contact p{color:#bdb7c2;font-size:17px;line-height:1.8;max-width:470px}.email{display:inline-block;color:var(--lime);font-size:17px;margin-top:12px}.contact-form{display:grid;gap:18px}.contact-form label{display:grid;gap:7px;font-size:11px;letter-spacing:.08em;color:#c9c2ce}.contact-form input:not([type=checkbox]),.contact-form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid #4a414e;padding:10px 0;color:#fff;font:16px var(--sans);outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--lime)}.contact-form .check{display:flex;grid-template-columns:none;flex-direction:row;align-items:flex-start;gap:9px;font-size:10px;line-height:1.5}.contact-form .check input{margin-top:3px;accent-color:var(--lime)}.hp{position:absolute;left:-9999px}
footer{padding:35px 7vw;background:#0d0a11;color:#a9a2ad;display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;font-size:11px;align-items:center}.footer-brand{font-weight:700;color:#fff;font-size:18px}.footer-brand span{color:var(--lime)}footer div:last-child{text-align:right}footer a:hover{color:var(--lime)}
@media(max-width:950px){nav{display:none}.menu-toggle{display:block}.about-grid{grid-template-columns:1fr 1fr}.portrait-card{grid-column:2}.split-heading,.dates-heading,.contact-grid{grid-template-columns:1fr}.news-grid{grid-template-columns:1fr 1fr}.news-card:last-child{grid-column:span 2}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item.wide{grid-column:span 2}.gallery-item:nth-child(4),.gallery-item:nth-child(5){grid-column:auto}}
@media(max-width:650px){.site-header{height:80px;padding:12px 20px}.brand{width:150px}.brand-main,.brand-lower{font-size:25px}.brand-swoosh{width:145px}.hero{min-height:720px}.hero-content{left:25px;right:20px;bottom:90px}.hero h1 span{font-size:60px}.hero h1 em{font-size:76px;margin-top:14px}.hero-copy{font-size:14px}.section,.music,.dates,.contact{padding:80px 24px}.about-grid{grid-template-columns:1fr}.portrait-card{grid-column:auto}.image-card{height:400px}.news-grid{grid-template-columns:1fr}.news-card:last-child{grid-column:auto}.date-row{grid-template-columns:75px 1fr 25px;gap:15px}.date-number{font-size:36px}.date-row h3{font-size:21px}.join{min-height:650px}.join-content{margin:0 24px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.contact-grid{gap:55px}footer{grid-template-columns:1fr;gap:10px}footer div:last-child{text-align:left}.scroll-note{display:none}}

/* Location label: keep Elmshorn in natural capitalization */
.eyebrow .location-name{text-transform:none;letter-spacing:.06em}
