/* Band sites. Three styles, set with data-theme on <body>; the band's accent colour comes in as --accent. */
body[data-theme=tide]{--bg:#0c1a1c;--panel:#142527;--line:#23393c;--edge:#3a5558;--text:#eef3ef;--soft:#d3dedb;--mute:#a8bdb9;--alt-bg:#eef3ef;--alt-text:#0c1a1c;--alt-mute:#35494b;--stripe-a:#142527;--stripe-b:#19302f}
body[data-theme=ink]{--bg:#0b0b0c;--panel:#18181b;--line:#2a2a30;--edge:#55555f;--text:#f4f4f0;--soft:#cfcfd6;--mute:#a9a9b2;--alt-bg:#f4f4f0;--alt-text:#0b0b0c;--alt-mute:#44444c;--stripe-a:#18181b;--stripe-b:#202024}
body[data-theme=paper]{--bg:#f3f1ea;--panel:#e7e4da;--line:#cfcabb;--edge:#8a8676;--text:#16150f;--soft:#33312a;--mute:#5c594d;--alt-bg:#16150f;--alt-text:#f3f1ea;--alt-mute:#c9c5b6;--stripe-a:#e7e4da;--stripe-b:#dedacc}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body-font,Archivo),system-ui,sans-serif;font-size:17px;line-height:1.5}
a{color:var(--text)}a:hover{opacity:.85}
h1,h2,h3,p{margin:0}
img,video{max-width:100%}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.display{font-family:var(--display-font,Anton),Impact,sans-serif;font-weight:var(--display-weight,400);font-style:var(--display-style,normal);text-transform:var(--caps,uppercase);letter-spacing:var(--track,0);line-height:var(--lh,.95)}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:var(--btn-radius,4px);border:1px solid var(--edge);background:none;color:var(--text);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.btn.fill{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.big{min-height:54px;font-size:18px}
.btn[disabled]{opacity:.55;cursor:default}
.top{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;padding:20px 24px;max-width:1200px;margin:0 auto}
.top .name{font-family:var(--display-font,Anton),Impact,sans-serif;font-weight:var(--display-weight,400);font-style:var(--display-style,normal);font-size:var(--name-size,28px);text-transform:var(--caps,uppercase);text-decoration:none;letter-spacing:1px}
.top nav{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.top nav a{padding:12px 14px;text-decoration:none;font-weight:500}
.top nav a.btn{padding:0 18px;font-weight:700}
.hero{position:relative;min-height:min(72vh,620px);display:flex;align-items:flex-end;background:repeating-linear-gradient(135deg,var(--stripe-a) 0 22px,var(--stripe-b) 22px 44px);background-size:cover;background-position:center;overflow:hidden}
.hero video,.hero img.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero.has-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.05) 65%)}
.hero .wrap{position:relative;z-index:1;width:100%;padding-top:48px;padding-bottom:48px}
.hero.has-media{color:#fff}
.hero h1{font-size:clamp(calc(64px*var(--scale,1)),calc(13vw*var(--scale,1)),calc(200px*var(--scale,1)));line-height:var(--hero-lh,.88);overflow-wrap:anywhere}
.hero p{font-size:21px;max-width:620px;margin-top:16px}
.section{padding:80px 24px}
.section h2{font-size:clamp(calc(44px*var(--scale,1)),calc(6vw*var(--scale,1)),calc(72px*var(--scale,1)));margin-bottom:28px}
.alt{background:var(--alt-bg);color:var(--alt-text)}
.alt a{color:var(--alt-text)}
.music{display:flex;flex-wrap:wrap;gap:40px}
.music .art{flex:0 1 340px;min-width:0}
.music .art .sq{aspect-ratio:1/1;border-radius:6px;background:repeating-linear-gradient(45deg,var(--stripe-a) 0 16px,var(--stripe-b) 16px 32px);background-size:cover;background-position:center;margin-bottom:16px}
.music .play{flex:1 1 440px;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{padding:11px 16px;border:1px solid var(--edge);border-radius:var(--btn-radius,4px);text-decoration:none;font-size:15px}
.player{background:var(--panel);border-radius:var(--radius,8px);padding:18px 20px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:12px}
.player .pp{width:56px;height:56px;border-radius:50%;border:0;background:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.player .pp svg path{fill:var(--on-accent)}
.player .pp .pause{display:none}.player .pp.is-playing .pause{display:block}.player .pp.is-playing .tri{display:none}
.player .mid{flex:1 1 200px;min-width:0}
.player .track{height:16px;display:flex;align-items:center;cursor:pointer;margin-top:6px}
.player .track span{display:block;width:100%;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.player .track i{display:block;height:6px;width:0;background:var(--accent)}
.tracks button{display:flex;gap:16px;align-items:center;width:100%;min-height:52px;padding:8px 4px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--soft);font:inherit;text-align:left;cursor:pointer}
.tracks button[aria-current=true]{color:var(--text);font-weight:700}
.tracks .n{width:26px}
.dates{border-bottom:2px solid var(--alt-text)}
.date{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;padding:18px 0;border-top:2px solid var(--alt-text)}
.date .d{font-family:var(--display-font,Anton),Impact,sans-serif;font-weight:var(--display-weight,400);font-style:var(--display-style,normal);font-size:var(--date-size,30px);width:130px}
.date .w{flex:1 1 240px;min-width:0}
.date .w b{font-size:20px}
.date .w div{color:var(--alt-mute)}
.date .tix{padding:12px 24px;background:var(--alt-text);color:var(--alt-bg);text-decoration:none;font-weight:700;border-radius:var(--btn-radius,4px)}
.date .so{padding:10px 22px;border:2px solid var(--alt-text);font-weight:700;border-radius:var(--btn-radius,4px)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:24px 16px}
@media (min-width:700px){.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px 20px}}
.prod{display:flex;flex-direction:column;gap:10px;text-decoration:none}
.prod .ph,.ph{aspect-ratio:4/5;border-radius:6px;background:repeating-linear-gradient(45deg,var(--stripe-a) 0 16px,var(--stripe-b) 16px 32px);background-size:cover;background-position:center}
.prod .line{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}
.join{background:var(--accent);color:var(--on-accent)}
.join form{display:flex;flex-wrap:wrap;gap:20px 40px;align-items:flex-end;padding:56px 24px;max-width:1200px;margin:0 auto}
.join form>div{flex:1 1 340px;min-width:0}
.join h2{font-size:48px}
.join label{color:var(--on-accent)}
.join input[type=email]{border:2px solid var(--on-accent);background:#fff;color:#111}
.join .btn{background:var(--on-accent);border-color:var(--on-accent);color:var(--accent)}
label{display:block;font-size:15px;font-weight:600;margin-bottom:6px}
input[type=text],input[type=email],input[type=date],input[type=number],select,textarea{width:100%;min-height:48px;padding:10px 12px;font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--edge);border-radius:var(--field-radius,4px)}
textarea{min-height:110px;resize:vertical}
.inline{display:flex;flex-wrap:wrap;gap:8px}
.inline input{flex:1 1 200px;min-width:0}
.about{display:flex;flex-wrap:wrap;gap:56px}
.about>*{flex:1 1 400px;min-width:0}
.about .text{display:flex;flex-direction:column;gap:16px;color:var(--soft)}
.card{background:var(--panel);border-radius:var(--radius,8px);padding:32px;display:flex;flex-direction:column;gap:16px}
.card h2{font-size:40px;margin:0}
.pair{display:flex;flex-wrap:wrap;gap:16px}
.pair>div{flex:1 1 190px;min-width:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.note{font-weight:600;min-height:1.5em}
.note.bad{text-decoration:underline}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:40px}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
.foot{border-top:1px solid var(--line);color:var(--mute);font-size:15px}
.foot .wrap{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;padding-top:28px;padding-bottom:28px}
.foot a{color:var(--mute)}
.narrow{max-width:760px;margin:0 auto;padding:56px 24px 96px}
.product{display:flex;flex-wrap:wrap;gap:48px;padding:40px 24px 96px}
.product>*{flex:1 1 360px;min-width:0}
.product h1{font-size:clamp(40px,6vw,64px);margin-bottom:8px}
.product form{display:flex;flex-direction:column;gap:16px;margin-top:24px;max-width:420px}
blockquote{margin:0;padding:0 0 0 20px;border-left:4px solid var(--accent);font-size:20px}
blockquote cite{display:block;font-size:15px;font-style:normal;color:var(--mute);margin-top:6px}
@media (max-width:640px){.section{padding:56px 16px}.wrap{padding:0 16px}.top{padding:14px 16px}.date .d{width:96px;font-size:26px}.join form{padding:40px 16px}.card{padding:22px}}

/* ---------- Neon: electronic ---------- */
body[data-theme=neon]{--bg:#0d0718;--panel:#1a1030;--line:#2e2150;--edge:#6a59a0;--text:#f3eeff;--soft:#d5cbee;--mute:#a99bd0;--alt-bg:#160c2b;--alt-text:#f3eeff;--alt-mute:#b8abdc;--stripe-a:#150c26;--stripe-b:#1f1340;
 --display-font:Unbounded;--display-weight:800;--caps:none;--track:-.03em;--lh:1;--hero-lh:.95;--scale:.72;--name-size:20px;--date-size:22px;--btn-radius:999px;--radius:18px;--field-radius:12px}
body[data-theme=neon] .hero h1{text-shadow:0 0 28px color-mix(in srgb,var(--accent) 70%,transparent),0 0 2px var(--accent)}
body[data-theme=neon] .hero:not(.has-media){background:radial-gradient(ellipse at 20% 110%,#ff3df2 0,transparent 55%),radial-gradient(ellipse at 90% -10%,#3d5afe 0,transparent 50%),#0d0718}
body[data-theme=neon] .alt{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
body[data-theme=neon] .date,body[data-theme=neon] .dates{border-color:var(--line)}
body[data-theme=neon] .date .tix{background:var(--accent);color:var(--on-accent)}
body[data-theme=neon] .date .so{border-color:var(--edge)}
body[data-theme=neon] .player,body[data-theme=neon] .card{border:1px solid var(--line)}
body[data-theme=neon] .ph,body[data-theme=neon] .sq{border-radius:18px}

/* ---------- Hearth: folk ---------- */
body[data-theme=hearth]{--bg:#f6f0e4;--panel:#ece3d0;--line:#d6cab0;--edge:#8d8166;--text:#23281f;--soft:#3c4236;--mute:#5e6453;--alt-bg:#2f3b2c;--alt-text:#f6f0e4;--alt-mute:#cdd3c0;--stripe-a:#ece3d0;--stripe-b:#e3d8c1;
 --display-font:Fraunces;--display-weight:600;--caps:none;--track:-.02em;--lh:1.02;--hero-lh:.98;--scale:.86;--body-font:"Source Sans 3";--name-size:26px;--date-size:26px;--btn-radius:999px;--radius:14px;--field-radius:8px}
body[data-theme=hearth] .hero .wrap{text-align:center}
body[data-theme=hearth] .hero p{margin-left:auto;margin-right:auto}
body[data-theme=hearth] .hero{align-items:center}
body[data-theme=hearth] .section h2{text-align:center}
body[data-theme=hearth] .section h2::after{content:"";display:block;width:56px;height:3px;background:var(--accent);margin:18px auto 0;border-radius:2px}
body[data-theme=hearth] .music h2::after,body[data-theme=hearth] .about h2::after,body[data-theme=hearth] .card h2::after{display:none}
body[data-theme=hearth] .music h2,body[data-theme=hearth] .about h2,body[data-theme=hearth] .card h2{text-align:left}
body[data-theme=hearth] .date,body[data-theme=hearth] .dates{border-width:1px;border-color:#55634f}
body[data-theme=hearth] .ph,body[data-theme=hearth] .sq{border-radius:14px}

/* ---------- Zine: punk ---------- */
body[data-theme=zine]{--bg:#ffffff;--panel:#ffffff;--line:#111111;--edge:#111111;--text:#111111;--soft:#222222;--mute:#555555;--alt-bg:#111111;--alt-text:#ffffff;--alt-mute:#cfcfcf;--stripe-a:#f1f1f1;--stripe-b:#dcdcdc;
 --display-font:"Archivo Black";--caps:uppercase;--track:-.02em;--lh:.95;--hero-lh:.9;--scale:.8;--body-font:"Courier Prime";--name-size:24px;--date-size:24px;--btn-radius:0;--radius:0;--field-radius:0}
body[data-theme=zine] .top{border-bottom:4px solid #111;max-width:none}
body[data-theme=zine] .hero h1{display:inline;background:var(--accent);color:#111;padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
body[data-theme=zine] .hero p{background:#111;color:#fff;display:inline-block;padding:6px 12px;transform:rotate(-1deg);margin-top:28px}
body[data-theme=zine] .section h2{display:inline-block;background:var(--accent);color:#111;padding:6px 16px 2px;transform:rotate(-1.5deg);margin-bottom:36px}
body[data-theme=zine] .join h2{background:#111;color:var(--accent)}
body[data-theme=zine] .about .text h2,body[data-theme=zine] .card h2{align-self:flex-start}
body[data-theme=zine] .btn,body[data-theme=zine] .chips a{border:3px solid #111;text-transform:uppercase}
body[data-theme=zine] .player,body[data-theme=zine] .card{border:3px solid #111;box-shadow:8px 8px 0 #111}
body[data-theme=zine] .ph,body[data-theme=zine] .sq{border:3px solid #111;border-radius:0}
body[data-theme=zine] .tracks button{border-bottom:2px dashed #111}
body[data-theme=zine] .date{border-top-style:dashed}
body[data-theme=zine] .dates{border-bottom-style:dashed}
body[data-theme=zine] .date .tix{background:var(--accent);color:#111;text-transform:uppercase}
body[data-theme=zine] .join{border-top:4px solid #111;border-bottom:4px solid #111}
body[data-theme=zine] input,body[data-theme=zine] textarea,body[data-theme=zine] select{border-width:3px}

/* ---------- Forge: metal ---------- */
body[data-theme=forge]{--bg:#0a0a0a;--panel:#151515;--line:#2b2b2b;--edge:#5c5c5c;--text:#e9e6e1;--soft:#c9c5be;--mute:#9d988f;--alt-bg:#141212;--alt-text:#e9e6e1;--alt-mute:#b0aba2;--stripe-a:#111111;--stripe-b:#181616;
 --display-font:"Pirata One";--caps:none;--lh:1;--hero-lh:.95;--scale:1;--name-size:32px;--date-size:30px;--btn-radius:0;--radius:0;--field-radius:0}
body[data-theme=forge] .hero .wrap{text-align:center}
body[data-theme=forge] .hero p{margin-left:auto;margin-right:auto;text-transform:uppercase;letter-spacing:.18em;font-size:15px}
body[data-theme=forge] .hero{align-items:center}
body[data-theme=forge] .hero:not(.has-media){background:radial-gradient(ellipse at 50% 120%,#5a0a10 0,transparent 60%),#0a0a0a}
body[data-theme=forge] .section h2{text-align:center;display:flex;align-items:center;gap:24px}
body[data-theme=forge] .section h2::before,body[data-theme=forge] .section h2::after{content:"";flex:1;height:1px;background:var(--edge)}
body[data-theme=forge] .card h2::before,body[data-theme=forge] .card h2::after,body[data-theme=forge] .about .text h2::before,body[data-theme=forge] .about .text h2::after,body[data-theme=forge] .music h2::before,body[data-theme=forge] .music h2::after{display:none}
body[data-theme=forge] .btn,body[data-theme=forge] .date .tix,body[data-theme=forge] .date .so,body[data-theme=forge] .chips a,body[data-theme=forge] .top nav a{text-transform:uppercase;letter-spacing:.12em;font-size:14px}
body[data-theme=forge] .alt{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
body[data-theme=forge] .date,body[data-theme=forge] .dates{border-width:1px;border-color:var(--line)}
body[data-theme=forge] .date .tix{background:var(--accent);color:var(--on-accent)}
body[data-theme=forge] .date .so{border-width:1px;border-color:var(--edge)}
body[data-theme=forge] .player,body[data-theme=forge] .card{border:1px solid var(--line)}
body[data-theme=forge] .ph,body[data-theme=forge] .sq{border-radius:0}

/* ---------- Blue Note: jazz and soul ---------- */
body[data-theme=bluenote]{--bg:#0f2a4a;--panel:#16365c;--line:#27496f;--edge:#6f8db0;--text:#f4efe3;--soft:#dcd6c7;--mute:#a9b8cb;--alt-bg:#f4efe3;--alt-text:#0f2a4a;--alt-mute:#3d5573;--stripe-a:#143459;--stripe-b:#193d67;
 --display-font:"Playfair Display";--display-weight:800;--display-style:italic;--caps:none;--track:-.01em;--lh:1;--hero-lh:.95;--scale:.88;--name-size:26px;--date-size:26px;--btn-radius:2px;--radius:2px;--field-radius:2px}
body[data-theme=bluenote] .hero:not(.has-media){background:linear-gradient(270deg,var(--accent) 0 22%,transparent 22%),repeating-linear-gradient(135deg,var(--stripe-a) 0 22px,var(--stripe-b) 22px 44px)}
body[data-theme=bluenote] .hero:not(.has-media) h1,body[data-theme=bluenote] .hero:not(.has-media) p{max-width:74%}
body[data-theme=bluenote] .section h2{border-bottom:6px solid var(--accent);display:inline-block;padding-bottom:6px}
body[data-theme=bluenote] .join h2{border-color:var(--on-accent)}
body[data-theme=bluenote] .card h2{border:0;padding:0}
body[data-theme=bluenote] .ph,body[data-theme=bluenote] .sq{border-radius:2px}

/* ---------- Sundae: indie pop ---------- */
body[data-theme=sundae]{--bg:#ffe9ec;--panel:#ffd6dc;--line:#f5b8c3;--edge:#b0687a;--text:#3a1730;--soft:#55294a;--mute:#7a4a6a;--alt-bg:#fff7d6;--alt-text:#3a1730;--alt-mute:#6b4560;--stripe-a:#ffd6dc;--stripe-b:#ffc8d1;
 --display-font:"Bricolage Grotesque";--display-weight:800;--caps:none;--track:-.035em;--lh:.98;--hero-lh:.92;--scale:.9;--name-size:26px;--date-size:26px;--btn-radius:999px;--radius:28px;--field-radius:14px}
body[data-theme=sundae] .hero{margin:0 16px;border-radius:32px}
body[data-theme=sundae] .hero h1{color:var(--accent)}
body[data-theme=sundae] .hero.has-media h1{color:#fff}
body[data-theme=sundae] .alt{margin:0 16px;border-radius:32px}
body[data-theme=sundae] .join{margin:0 16px;border-radius:32px}
body[data-theme=sundae] .date,body[data-theme=sundae] .dates{border-color:#f0dc9a}
body[data-theme=sundae] .date .tix{background:var(--accent);color:var(--on-accent)}
body[data-theme=sundae] .ph,body[data-theme=sundae] .sq{border-radius:28px}
body[data-theme=sundae] .photos img{border-radius:24px}
@media print{.top nav,.foot,.noprint{display:none}body{background:#fff;color:#000}}
