/* Sea Sky Radio — Bar Harbor, Maine
   Palette: deep harbor blue, sea-fog gray, pink granite, sunrise orange */
:root{
  --harbor:#0b2a4a; --harbor-deep:#071c33; --harbor-mid:#164a72; --sea:#2f7fa8;
  --fog:#e6ecef; --fog-2:#cfd9de; --fog-ink:#5d7280;
  --granite:#e3a497; --granite-deep:#c97b6c; --granite-soft:#f6dcd5;
  --sunrise:#f28c38; --sunrise-2:#ffb35c; --gold:#ffd27a;
  --white:#fff; --ink:#10263b;
  --radius:20px; --shadow:0 14px 40px rgba(7,28,51,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--fog);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Outfit,system-ui,sans-serif;line-height:1.12;letter-spacing:-.01em}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--granite-deep);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--sunrise);border-radius:2px}
h2{font-size:clamp(1.9rem,5vw,2.8rem);margin:8px 0 16px;color:var(--harbor)}
.lead{font-size:1.08rem;max-width:640px;color:#2b4357}
section{padding:72px 0;position:relative}
.center{text-align:center}.center .lead{margin-left:auto;margin-right:auto}

/* NAV */
nav{position:sticky;top:0;z-index:50;background:rgba(7,28,51,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:62px;gap:12px}
.brand{display:flex;gap:10px;align-items:center;font-family:Outfit;font-weight:800;font-size:1.15rem;text-decoration:none;white-space:nowrap}
nav ul{display:none;gap:20px;list-style:none}
nav ul a{text-decoration:none;opacity:.85;font-size:.92rem}
nav ul a:hover{opacity:1;color:var(--sunrise-2)}
.nav-listen{background:var(--sunrise);color:#fff;border:0;border-radius:999px;padding:8px 16px;font:600 .9rem Outfit;cursor:pointer;text-decoration:none}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,var(--sunrise),var(--sunrise-2));color:#fff;border:0;border-radius:999px;padding:15px 30px;font:700 1.05rem Outfit;cursor:pointer;box-shadow:0 10px 28px rgba(242,140,56,.45);transition:transform .2s,box-shadow .2s;text-decoration:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(242,140,56,.55)}
.btn.ghost{background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.6);box-shadow:none}
.btn.harbor{background:var(--harbor);box-shadow:0 10px 26px rgba(11,42,74,.3)}
.btn.kofi{background:#29abe0;box-shadow:0 10px 26px rgba(41,171,224,.4)}
.btn.kofi:hover{background:#1f9bd0}

/* HERO */
.hero{position:relative;color:#fff;overflow:hidden;min-height:92vh;display:flex;align-items:center;padding:90px 0 170px;text-align:center;
  background:linear-gradient(180deg,rgba(7,28,51,.78) 0%,rgba(11,42,74,.45) 45%,rgba(201,123,108,.35) 80%,rgba(242,140,56,.35) 100%),url(../images/hero-sunrise-poster.jpg) center 30%/cover no-repeat,var(--harbor)}
.hero .fog{position:absolute;inset:auto -10% 90px -10%;height:180px;background:radial-gradient(ellipse at center,rgba(230,236,239,.35),transparent 70%);filter:blur(10px);animation:drift 18s ease-in-out infinite alternate;pointer-events:none}
@keyframes drift{from{transform:translateX(-4%)}to{transform:translateX(4%)}}
.hero .wrap{position:relative;z-index:2;width:100%}
.hero .kicker{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:6px 14px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px}
.hero h1{font-size:clamp(2.8rem,11vw,5.6rem);font-weight:800;letter-spacing:-.03em;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.hero h1 span{background:linear-gradient(90deg,var(--gold),var(--sunrise-2),var(--granite));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .tagline{font-size:clamp(1.05rem,3vw,1.3rem);margin:14px auto 30px;max-width:620px;opacity:.95}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.player{margin:26px auto 0;max-width:500px;background:rgba(7,28,51,.45);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:12px 16px;display:flex;flex-direction:column;gap:10px;backdrop-filter:blur(6px)}
.player audio{width:100%;height:40px}
.player .mini{display:flex;align-items:center;gap:10px;font-size:.9rem;text-align:left}
.player .mini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.applink{display:inline-block;margin-top:14px;color:#ffe2c4;font-weight:600;font-size:.95rem}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.12em;background:#e5484d;color:#fff;border-radius:999px;padding:3px 10px;flex:none}
.badge i{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
.badge.off{background:#6b7d8a}.badge.off i{animation:none}
@keyframes pulse{50%{opacity:.25}}
.hero-credit{position:absolute;right:14px;bottom:118px;z-index:3;font-size:.72rem;font-style:italic;opacity:.8;text-shadow:0 1px 4px rgba(0,0,0,.6)}

/* WAVES */
.wave{position:absolute;left:0;width:100%;line-height:0;pointer-events:none;z-index:1}
.wave svg{width:100%;height:90px;display:block}
.wave.bottom{bottom:-1px}.wave.top{top:-1px;transform:rotate(180deg)}
.hero .wave svg{height:140px}

/* ABOUT */
.about-grid{display:grid;gap:36px;align-items:center}
.feats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}
.feat{background:#fff;border-radius:16px;padding:16px;font-weight:600;font-size:.93rem;display:flex;gap:10px;align-items:center;box-shadow:0 6px 18px rgba(7,28,51,.06);border-left:4px solid var(--granite)}
.feat:nth-child(2){border-color:var(--sunrise)}.feat:nth-child(3){border-color:var(--sea)}.feat:nth-child(4){border-color:var(--harbor)}
.about-photo{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;color:#fff;font-size:.85rem;background:linear-gradient(transparent,rgba(7,28,51,.85))}

/* NOW PLAYING */
.np-section{background:linear-gradient(160deg,var(--harbor-deep),var(--harbor) 55%,var(--harbor-mid));color:#fff;padding:120px 0}
.np-section h2{color:#fff}.np-section .eyebrow{color:var(--granite)}
.np-grid{display:grid;gap:24px;margin-top:20px}
.np-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:20px;display:grid;gap:18px;align-items:center}
.np-art{position:relative;width:100%;max-width:340px;margin:0 auto;aspect-ratio:1;border-radius:18px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.4);background:linear-gradient(135deg,var(--sea),var(--granite-deep))}
.np-art img{width:100%;height:100%;object-fit:cover}
.np-meta small{color:var(--sunrise-2);font-weight:700;letter-spacing:.12em;font-size:.78rem}
.np-meta h3{font-size:clamp(1.5rem,4.5vw,2.1rem);margin:8px 0 4px}
.np-meta .artist{font-size:1.1rem;opacity:.85}
.np-meta .status{font-size:.82rem;opacity:.6;margin-top:10px}
.bars{display:flex;gap:4px;align-items:end;height:24px;margin-top:16px}
.bars b{width:5px;background:var(--sunrise-2);border-radius:2px;animation:eq 1s infinite ease-in-out}
.bars b:nth-child(2){animation-delay:.2s;background:var(--granite)}.bars b:nth-child(3){animation-delay:.4s}.bars b:nth-child(4){animation-delay:.1s;background:var(--fog-2)}.bars b:nth-child(5){animation-delay:.3s}
.bars.paused b{animation-play-state:paused}
@keyframes eq{0%,100%{height:20%}50%{height:100%}}
.recent{background:rgba(255,255,255,.95);color:var(--ink);border-radius:24px;padding:22px}
.recent h3{color:var(--harbor);font-size:1.2rem;margin-bottom:10px}
.recent ol{list-style:none;counter-reset:r}
.recent li{counter-increment:r;display:flex;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px dashed var(--fog-2);font-size:.95rem}
.recent li:last-child{border:0}
.recent li::before{content:counter(r);font:700 .8rem Outfit;color:#fff;background:var(--granite-deep);border-radius:50%;width:24px;height:24px;flex:none;display:grid;place-items:center}
.recent li span{color:var(--fog-ink);font-size:.86rem}
.recent .empty{color:var(--fog-ink);font-size:.92rem}

/* GENRES */
.genre-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px}
.genre{border-radius:20px;padding:22px 18px;color:#fff;min-height:170px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;box-shadow:var(--shadow);transition:transform .25s}
.genre:hover{transform:translateY(-4px)}
.genre svg{position:absolute;top:16px;right:16px;opacity:.9}
.genre h3{font-size:1.3rem}
.genre p{font-size:.88rem;opacity:.92;margin-top:4px}
.g-country{background:linear-gradient(150deg,#c97b6c,#f28c38)}
.g-rock{background:linear-gradient(150deg,#0b2a4a,#2f7fa8)}
.g-motown{background:linear-gradient(150deg,#7a3e5c,#e3a497)}
.g-easy{background:linear-gradient(150deg,#4f7c8c,#9fc3cf)}

/* VIDEO BAND */
.video-band{position:relative;min-height:420px;display:flex;align-items:center;color:#fff;overflow:hidden;padding:110px 0;background:var(--harbor-deep)}
.video-band video,.video-band .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,28,51,.8),rgba(7,28,51,.25))}
.video-band .wrap{position:relative;z-index:2}
.video-band h2{color:#fff;max-width:560px}
.video-band p{max-width:520px;opacity:.92}
.video-band .vcredit{position:absolute;right:12px;bottom:96px;z-index:2;font-size:.7rem;opacity:.75;font-style:italic}

/* GALLERY */
.gallery{background:#fff}
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:26px}
.gal figure{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 10px 26px rgba(7,28,51,.16);position:relative}
.gal figure.wide{grid-column:span 2;aspect-ratio:16/9}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gal figure:hover img{transform:scale(1.05)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;color:#fff;font-size:.8rem;background:linear-gradient(transparent,rgba(7,28,51,.8))}

/* TEAM */
.team{background:linear-gradient(180deg,var(--granite-soft),var(--fog))}
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:28px}
.member{background:#fff;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.member .photo{aspect-ratio:4/5;width:100%;object-fit:cover}
.member .photo-zoom{border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%;overflow:hidden}
.member .photo-zoom .photo{display:block;transition:transform .5s}
.member .photo-zoom:hover .photo{transform:scale(1.04)}
.member .photo-zoom:focus-visible{outline:3px solid var(--sunrise);outline-offset:-3px}
.member .placeholder{aspect-ratio:4/5;display:grid;place-items:center;background:linear-gradient(160deg,var(--harbor),var(--sea) 60%,var(--granite));color:#fff;position:relative;overflow:hidden}
.member .placeholder.alt{background:linear-gradient(160deg,var(--harbor-deep),var(--harbor-mid) 55%,var(--sunrise))}
.member .placeholder .initial{font:800 4.4rem Outfit;width:130px;height:130px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);border:2px solid rgba(255,255,255,.4)}
.member .placeholder svg.w{position:absolute;bottom:0;left:0;width:100%;height:70px}
.member .info{padding:18px 20px 22px}
.member small{color:var(--granite-deep);font-weight:700;letter-spacing:.08em;font-size:.76rem;text-transform:uppercase}
.member h3{margin:4px 0 2px;color:var(--harbor);font-size:1.35rem}
.member .role{color:var(--sunrise);font-weight:700;font-size:.92rem}
.member p{font-size:.92rem;color:#3c5568;margin-top:8px}

/* SCHEDULE */
.schedule{background:#fff}
.sched-card{margin-top:22px;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:linear-gradient(120deg,var(--harbor),var(--harbor-mid));color:#fff;display:grid}
.sched-card .clock{padding:26px;display:flex;align-items:center;gap:18px;background:rgba(255,255,255,.06)}
.sched-card .clock strong{font:800 3rem Outfit;color:var(--sunrise-2)}
.sched-card .detail{padding:26px}
.sched-card h3{font-size:1.4rem}
.days{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.days span{background:rgba(255,255,255,.14);border-radius:999px;padding:4px 12px;font-size:.82rem;font-weight:600}
.soon{margin-top:18px;display:inline-flex;gap:10px;align-items:center;background:var(--fog);color:var(--fog-ink);border:1px dashed var(--fog-2);border-radius:14px;padding:10px 14px;font-size:.9rem}

/* SHOUTOUTS */
.shoutouts{background:linear-gradient(180deg,var(--fog),#f7efe9)}
.wall{display:grid;grid-template-columns:1fr;gap:16px;margin-top:26px}
.note{background:#fff;border-radius:18px;padding:20px 20px 16px;box-shadow:0 8px 22px rgba(7,28,51,.08);position:relative;border-top:5px solid var(--granite)}
.note:nth-child(2){border-color:var(--sunrise);transform:rotate(.6deg)}
.note:nth-child(3){border-color:var(--sea);transform:rotate(-.6deg)}
.note .ex{position:absolute;top:12px;right:12px;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:var(--fog);color:var(--fog-ink);border-radius:999px;padding:3px 9px}
.note blockquote{font-size:1.02rem;margin:8px 0 10px;padding-right:56px}
.note cite{font-style:normal;font-size:.85rem;color:var(--fog-ink)}
.wall-cta{text-align:center;margin-top:28px}
.wall-cta p{font-size:.9rem;color:var(--fog-ink);margin-top:10px}

/* PHONE */
.phone{background:var(--harbor);color:#fff;padding:120px 0}
.phone h2{color:#fff}.phone .eyebrow{color:var(--granite)}
.phone-grid{display:grid;gap:30px;align-items:center}
.qr-card{background:#fff;border-radius:24px;padding:22px;max-width:300px;margin:0 auto;text-align:center;color:var(--harbor);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.qr-card img{width:100%;border-radius:10px}
.qr-card p{font-weight:700;margin-top:10px;font-size:.95rem}
.steps{display:grid;gap:14px}
.step{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:18px}
.step h3{font-size:1.1rem;color:var(--sunrise-2);margin-bottom:8px}
.step ol{padding-left:20px;font-size:.95rem}
.step li{margin:4px 0}

/* SUPPORT / KO-FI */
.support{background:linear-gradient(135deg,var(--granite-soft),#fde7d3)}
.support-card{background:#fff;border-radius:24px;padding:30px 22px;box-shadow:var(--shadow);text-align:center;max-width:720px;margin:0 auto}
.support-card .cup{width:72px;height:72px;margin:0 auto 10px;border-radius:50%;background:#29abe0;display:grid;place-items:center}
/* Venmo tips */
.btn.venmo{background:#008cff;box-shadow:0 10px 26px rgba(0,140,255,.35)}
.btn.venmo:hover{background:#0074d4}
.venmo-block{display:flex;flex-direction:column;align-items:center;gap:18px;background:var(--fog);border:1px solid var(--fog-2);border-radius:20px;padding:22px;margin:0 auto 6px;max-width:560px}
.venmo-block[hidden],[data-venmo-or][hidden]{display:none}
.venmo-qr{background:#fff;border-radius:16px;padding:10px;box-shadow:0 6px 18px rgba(7,28,51,.1)}
.venmo-qr img{width:180px;height:180px}
.venmo-qr.venmo-qr-missing{display:none}
.venmo-info{text-align:center}
.venmo-handle{font:600 1.15rem Outfit;color:var(--harbor);margin-bottom:4px}
.venmo-handle strong{color:#008cff}
.venmo-note{font-size:.92rem;color:var(--fog-ink);margin-bottom:14px}
.support-or{display:flex;align-items:center;gap:12px;max-width:320px;margin:18px auto;color:var(--fog-ink);font-size:.85rem;text-transform:uppercase;letter-spacing:.14em}
.support-or::before,.support-or::after{content:"";flex:1;height:1px;background:var(--fog-2)}
@media(min-width:700px){.venmo-block{flex-direction:row;text-align:left;gap:26px}.venmo-info{text-align:left}}

/* CONTACT */
.contact{background:linear-gradient(180deg,#fde7d3,var(--fog));text-align:center}
.email{font:700 clamp(1.1rem,4.5vw,1.6rem) Outfit;color:var(--harbor);text-decoration:none;border-bottom:3px solid var(--sunrise);word-break:break-all}
.socials{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:26px 0}
.socials a{width:52px;height:52px;border-radius:50%;background:var(--harbor);display:grid;place-items:center;transition:.2s}
.socials a:hover{background:var(--sunrise);transform:translateY(-3px)}
.tiktoks{margin-top:18px;font-size:.95rem}
.tiktoks a{font-weight:700;color:var(--harbor)}

/* FOOTER */
footer{background:var(--harbor-deep);color:#b9c8d4;padding:96px 0 32px;font-size:.88rem;position:relative}
footer .top{display:flex;flex-direction:column;gap:12px;justify-content:space-between}
footer .credits{font-size:.75rem;opacity:.75;margin-top:18px;line-height:1.6}
footer a{color:#e8d2c9}

/* RESPONSIVE */
@media(min-width:700px){
  section{padding:96px 0}
  .feats{grid-template-columns:repeat(4,1fr)}.feat{flex-direction:column;text-align:center}
  .genre-grid{grid-template-columns:repeat(4,1fr)}
  .gal{grid-template-columns:repeat(4,1fr);gap:16px}
  .team-grid{grid-template-columns:repeat(4,1fr)}
  .wall{grid-template-columns:repeat(3,1fr)}
  .sched-card{grid-template-columns:auto 1fr}
  .steps{grid-template-columns:1fr 1fr}
  footer .top{flex-direction:row}
}
@media(min-width:900px){
  nav ul{display:flex}
  .about-grid{grid-template-columns:1.1fr 1fr}
  .np-grid{grid-template-columns:1.4fr 1fr}
  .np-card{grid-template-columns:260px 1fr}
  .phone-grid{grid-template-columns:320px 1fr}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* layout refinements */
.gal{grid-auto-rows:190px}
.gal figure{aspect-ratio:auto;height:100%}
.gal figure.wide{aspect-ratio:auto}
.member .placeholder{aspect-ratio:16/10}
.video-band .vcredit{bottom:auto;top:96px;right:12px;left:12px;text-align:right}
.hero-credit{bottom:128px}
@media(max-width:699px){.hero-credit{left:12px;right:12px;text-align:center;bottom:118px}}
@media(min-width:700px){
  .gal{grid-auto-rows:260px}
  .member .placeholder{aspect-ratio:4/5}
}

/* ===== NAV extras ===== */
.nav-right{display:flex;gap:8px;align-items:center}
.nav-love-pill{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#c95b6f,#e3a497);color:#fff;border-radius:999px;padding:8px 13px;font:600 .88rem Outfit;text-decoration:none}
nav ul a.nav-love{color:#f6b3a6}
nav ul a[aria-current="page"]{color:var(--sunrise-2);opacity:1}
@media(min-width:900px){.nav-love-pill{display:none}}

/* ===== SCHEDULE: Love Hour row ===== */
.sched-card.love{background:linear-gradient(120deg,#5a2440,#c95b6f 55%,#f28c38)}
.sched-card.love .clock strong{color:#ffd27a}

/* ===== LOVE HOUR TEASER (home) ===== */
.love-teaser{background:linear-gradient(160deg,#3b1f3f 0%,#7a3e5c 40%,#c95b6f 75%,#f28c38 100%);color:#fff;padding:130px 0 140px}
.love-teaser h2{color:#fff}
.love-grid{display:grid;gap:32px;align-items:center}
.love-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.love-tags span{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:5px 13px;font-size:.85rem;font-weight:600}
.love-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:24px;padding:34px 24px;text-align:center;max-width:380px;margin:0 auto;width:100%}
.love-heart{width:110px;height:110px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(255,210,122,.35),rgba(255,255,255,.05));animation:beat 2.4s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.08)}30%{transform:scale(1)}}
.love-card p{font:700 1.4rem Outfit}
.love-card small{opacity:.85}
@media(min-width:900px){.love-grid{grid-template-columns:1.3fr 1fr}}

/* ===== EMAIL UPDATES ===== */
.updates{background:#fde7d3;padding:56px 0 40px}
.signup-card{background:linear-gradient(135deg,var(--harbor),var(--harbor-mid));color:#fff;border-radius:24px;padding:28px 22px;display:grid;gap:22px;box-shadow:var(--shadow);max-width:960px;margin:0 auto}
.signup-card h2{color:#fff;margin-bottom:8px}
.signup-card .eyebrow{color:var(--granite)}
.signup-form{display:grid;gap:8px}
.signup-form label{font-weight:600;font-size:.9rem}
.opt{font-weight:400;opacity:.7}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
input,textarea,select{font:inherit;width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--fog-2);background:#fff;color:var(--ink)}
input:focus,textarea:focus{outline:3px solid rgba(242,140,56,.45);border-color:var(--sunrise)}
.signup-form .btn{margin-top:8px}
@media(min-width:800px){.signup-card{grid-template-columns:1fr 1fr;padding:38px;align-items:center}}

/* ===== LOVE HOUR PAGE (warm sunset-harbor palette) ===== */
body.lh{background:#fff4ec}
.lh-hero{position:relative;color:#fff;text-align:center;overflow:hidden;padding:90px 0 170px;
  background:linear-gradient(180deg,rgba(59,31,63,.82) 0%,rgba(122,62,92,.6) 45%,rgba(242,140,56,.45) 100%),url(../images/frenchman-bay-sunrise.jpg) center 60%/cover no-repeat,#5a2440}
.lh-hero h1{font-size:clamp(2.6rem,10vw,5rem);font-weight:800;letter-spacing:-.02em;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.lh-hero h1 span{background:linear-gradient(90deg,#ffd27a,#ffb35c,#f6b3a6);-webkit-background-clip:text;background-clip:text;color:transparent}
.lh-hero .tagline{font-size:clamp(1.05rem,3vw,1.25rem);max-width:620px;margin:14px auto 26px;opacity:.95}
.lh-time{display:inline-flex;gap:10px;align-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:7px 16px;font-weight:600;margin-bottom:16px}
.lh .eyebrow{color:#c95b6f}
.lh h2{color:#5a2440}
.how{background:#fff4ec}
.how-grid{display:grid;gap:16px;margin-top:26px}
.how-step{background:#fff;border-radius:20px;padding:22px;box-shadow:0 10px 28px rgba(90,36,64,.1);border-top:5px solid #c95b6f}
.how-step:nth-child(2){border-color:#f28c38}.how-step:nth-child(3){border-color:#e3a497}.how-step:nth-child(4){border-color:#7a3e5c}
.how-step .num{font:800 1.6rem Outfit;color:#f28c38}
.how-step h3{color:#5a2440;margin:4px 0 6px;font-size:1.15rem}
.how-step p{font-size:.94rem;color:#5b4651}
.occasions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}
.occasion{border-radius:18px;padding:18px;color:#fff;font:700 1.05rem Outfit;min-height:96px;display:flex;align-items:flex-end}
.oc1{background:linear-gradient(140deg,#7a3e5c,#c95b6f)}.oc2{background:linear-gradient(140deg,#c95b6f,#f28c38)}.oc3{background:linear-gradient(140deg,#f28c38,#ffd27a);color:#5a2440}.oc4{background:linear-gradient(140deg,#0b2a4a,#7a3e5c)}
.request{background:linear-gradient(180deg,#fde7d3,#fff4ec)}
.req-card{background:#fff;border-radius:26px;padding:26px 20px;box-shadow:0 18px 44px rgba(90,36,64,.15);max-width:760px;margin:24px auto 0}
.req-form{display:grid;gap:14px}
.req-form label{font-weight:600;font-size:.92rem;color:#5a2440;display:block;margin-bottom:5px}
.req-form textarea{min-height:120px;resize:vertical}
.req-row{display:grid;gap:14px}
.req-note{font-size:.88rem;color:#7a5f6b;text-align:center;margin-top:16px}
.req-note a{color:#c95b6f;font-weight:700}
.btn.love{background:linear-gradient(135deg,#c95b6f,#f28c38);box-shadow:0 10px 28px rgba(201,91,111,.4)}
@media(min-width:700px){.how-grid{grid-template-columns:repeat(4,1fr)}.occasions{grid-template-columns:repeat(4,1fr)}.req-row{grid-template-columns:1fr 1fr}.req-card{padding:36px}}
.lh-gallery{background:#fff}
.lh-gal{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:24px;grid-auto-rows:170px}
.lh-slot{position:relative;margin:0;border-radius:18px;overflow:hidden;box-shadow:0 10px 26px rgba(90,36,64,.15);display:grid;place-items:center;color:#fff;text-align:center;font-size:.85rem;font-weight:600;padding:10px}
.lh-slot:nth-child(1){background:linear-gradient(150deg,#3b1f3f,#c95b6f)}.lh-slot:nth-child(2){background:linear-gradient(150deg,#c95b6f,#f28c38)}.lh-slot:nth-child(3){background:linear-gradient(150deg,#7a3e5c,#e3a497)}.lh-slot:nth-child(4){background:linear-gradient(150deg,#0b2a4a,#c95b6f)}
.lh-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lh-slot .ph{opacity:.9}
@media(min-width:700px){.lh-gal{grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:16px}}
.lh-video{margin-top:22px;border-radius:20px;overflow:hidden;box-shadow:0 14px 36px rgba(90,36,64,.2);background:#3b1f3f}
.lh-video video{width:100%;display:block;max-height:540px}
.lh-player{background:linear-gradient(135deg,#3b1f3f,#7a3e5c);color:#fff;padding:22px 0}
.lh-player .player{margin:0 auto;background:rgba(255,255,255,.1)}

/* ===== SUCCESS PAGE ===== */
.thanks{min-height:80vh;display:grid;place-items:center;text-align:center;color:#fff;padding:80px 20px;background:linear-gradient(180deg,rgba(11,42,74,.8),rgba(201,91,111,.55)),url(../images/bar-harbor-sunrise.jpg) center/cover}
.thanks h1{font-size:clamp(2.2rem,8vw,3.6rem)}
.thanks p{max-width:520px;margin:12px auto 26px;font-size:1.1rem}

/* ===== Shoreline clip (About) + mobile hero video ===== */
.about-media{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.shore-clip{position:relative;margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:9/16;background:var(--harbor)}
.shore-clip video{width:100%;height:100%;object-fit:cover;display:block}
.shore-clip figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 12px 12px;color:#fff;font-size:.8rem;background:linear-gradient(transparent,rgba(7,28,51,.85));display:flex;flex-direction:column}
.shore-clip figcaption strong{font:700 1rem Outfit}
.about-photo.tall{aspect-ratio:auto;height:100%}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:0;display:block}
.hero.has-video::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,28,51,.7) 0%,rgba(11,42,74,.4) 45%,rgba(201,123,108,.35) 80%,rgba(242,140,56,.4) 100%)}
.hero .fog,.hero .wave,.hero-credit{z-index:2}
.mob-only{display:none}
@media(max-width:699px){
  .hero-video{object-position:center center}
  .hero.has-video .mob-only{display:inline}.hero.has-video .desk-only{display:none}
}

/* mobile fixes */
.nav-love-pill{white-space:nowrap}
@media(max-width:699px){
  .brand{font-size:1rem;gap:7px}.brand svg{width:28px;height:28px}
  .nav-love-pill{padding:7px 10px;font-size:.82rem}.nav-love-pill svg{width:13px;height:13px}
  .nav-listen{padding:7px 12px;font-size:.82rem}
  .video-band{padding-bottom:160px}
  .video-band .vcredit{top:auto;bottom:100px;text-align:center}
}

/* ===== Love Hour gallery v2: featured + 2x2, lightbox ===== */
.lh-gal{display:block;margin-top:24px}
.lh-slot{min-height:0}
.lh-slot.feature{height:auto;aspect-ratio:4/5;max-width:640px;margin:0 auto}
.lh-grid4{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px auto 0;max-width:640px}
.lh-grid4 .lh-slot{aspect-ratio:3/4}
.lh-grid4 .lh-slot:nth-child(1){background:linear-gradient(150deg,#c95b6f,#f28c38)}
.lh-grid4 .lh-slot:nth-child(2){background:linear-gradient(150deg,#7a3e5c,#e3a497)}
.lh-grid4 .lh-slot:nth-child(3){background:linear-gradient(150deg,#0b2a4a,#c95b6f)}
.lh-grid4 .lh-slot:nth-child(4){background:linear-gradient(150deg,#3b1f3f,#f28c38)}
.lh-slot .zoom{position:absolute;inset:0;border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%;height:100%}
.lh-slot .zoom img{transition:transform .5s}
.lh-slot .zoom:hover img{transform:scale(1.04)}
.lh-slot.feature .zoom img{object-position:center 30%}
.lh-slot.missing .zoom{display:none}
@media(min-width:700px){
  .lh-gal{display:grid;grid-template-columns:1fr;gap:16px}
  .lh-slot.feature{max-width:none;width:100%;aspect-ratio:auto;height:620px}
  .lh-grid4{max-width:none;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:0}
  .lh-grid4 .lh-slot{aspect-ratio:auto;height:520px}
}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,8,20,.92);display:flex;align-items:center;justify-content:center;padding:56px 12px}
.lightbox[hidden]{display:none}
.lightbox button[hidden]{display:none}
.lightbox figure{margin:0;max-width:min(92vw,900px);text-align:center}
.lightbox img{max-width:100%;max-height:80vh;border-radius:12px;margin:0 auto;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lightbox figcaption{color:#f3dfe4;font-size:.9rem;margin-top:12px}
.lightbox button{position:absolute;background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:50%;width:46px;height:46px;font-size:1.9rem;line-height:1;cursor:pointer}
.lightbox button:hover{background:rgba(255,255,255,.28)}
.lb-close{top:12px;right:12px}.lb-prev{left:10px;top:50%;transform:translateY(-50%)}.lb-next{right:10px;top:50%;transform:translateY(-50%)}
.lh-gal{grid-auto-rows:auto}

/* ===== Home gallery v2: Around Bar Harbor ===== */
.gallery .gal{display:none}
.gcredit{display:block;font-size:.85rem;color:var(--fog-ink);font-style:italic;margin-top:4px}
.g{position:relative;margin:0;border-radius:16px;overflow:hidden;box-shadow:0 10px 26px rgba(7,28,51,.16);background:var(--fog-2)}
.g .zoom{border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%;height:100%}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.g .zoom:hover img{transform:scale(1.04)}
.g figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;color:#fff;font-size:.8rem;background:linear-gradient(transparent,rgba(7,28,51,.82));pointer-events:none}
.g-sub{font-size:1.25rem;color:var(--harbor);margin:30px 0 12px;display:flex;align-items:center;gap:10px}
.g-sub::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--granite),transparent)}
.g-big{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
.g-big .g{aspect-ratio:9/15}
.g-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.g-row3 .g{aspect-ratio:3/4}
.g-row3 figcaption{font-size:.72rem;padding:20px 8px 8px}
.g-small-row{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin-top:16px}
.g.small{width:140px;aspect-ratio:334/500}
.g-note{background:var(--fog);border-radius:16px;padding:16px;border-left:4px solid var(--sunrise)}
.g-note h3{color:var(--harbor);font-size:1.05rem;margin-bottom:4px}
.g-note p{font-size:.88rem;color:#3c5568}
.g-note a{color:var(--granite-deep);font-weight:700;word-break:break-all}
.local-spot{margin-top:24px}
.local-spot a{word-break:normal;white-space:nowrap}
.g-row4{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.g-row4 .g{aspect-ratio:3/4}
.g-row4 .g.wide{grid-column:span 2;aspect-ratio:16/9}
@media(min-width:700px){
  .g-big{gap:16px}.g-big .g{aspect-ratio:auto;height:640px}
  .g-row3{gap:16px}.g-row3 .g{aspect-ratio:auto;height:440px}.g-row3 figcaption{font-size:.85rem}
  .g.small{width:220px}
  .g-note{padding:24px 28px;max-width:520px}
  .g-row4{grid-template-columns:2fr 1fr 1fr;gap:16px}.g-row4 .g,.g-row4 .g.wide{grid-column:auto;aspect-ratio:auto;height:300px}
}
@media(min-width:700px){.lh-grid4{width:100%;margin:0}}

/* ===== Owner photo strip (under Francine's card) ===== */
.owner-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.owner-strip .os{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 6px 16px rgba(7,28,51,.14);background:var(--fog-2)}
.owner-strip .zoom{border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%;height:100%}
.owner-strip img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;transition:transform .5s}
.owner-strip .zoom:hover img{transform:scale(1.04)}
.owner-strip .zoom:focus-visible{outline:3px solid var(--sunrise);outline-offset:-3px}

/* Ko-fi hidden until payments are connected (remove these two lines to show again) */
[data-kofi], [data-venmo-or] { display: none !important; }
/* Now Playing hidden until the MP3 library is in (remove these lines to show again) */
#now, a[href="#now"], a[href="index.html#now"] { display: none !important; }

/* Bar Harbor Sunrise Radio: longer brand name, keep the phone header on one line */
@media(max-width:420px){.brand{font-size:.9rem;gap:6px}.brand svg{width:24px;height:24px}.nav-love-pill{padding:6px 9px;font-size:.78rem}}
@media(max-width:370px){.brand{font-size:.82rem}.nav-love-pill svg{display:none}}

/* ===== Sea Sky media (welcome section + Love Hour video) ===== */
/* One remaining welcome card is centered; auto-fit keeps two columns if the porch clip is restored. */
.ss-duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,17.5rem));justify-content:center;gap:12px;max-width:560px;margin:22px auto 0}
.ss-card{margin:0;position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:2/3;background:#0b2a4a;min-width:0}
.ss-card img,.ss-card video{width:100%;height:100%;object-fit:cover;display:block}
.ss-card img{object-position:50% 30%}
.ss-card figcaption{position:absolute;left:0;right:0;top:0;padding:10px 12px 22px;color:#fff;font-size:.8rem;text-align:left;background:linear-gradient(rgba(7,28,51,.7),transparent);pointer-events:none}
.lh-starry{padding:28px 0 4px}
.lh-starry-card{margin:0 auto;max-width:420px;border-radius:20px;overflow:hidden;box-shadow:0 14px 36px rgba(90,36,64,.2);background:#3b1f3f}
.lh-starry-card video{width:100%;display:block;aspect-ratio:484/720;max-height:75vh;object-fit:contain;background:#000}
.lh-starry-card figcaption{padding:10px 14px;color:#fff;font-size:.85rem;text-align:center}
.lh-couples{display:grid;grid-auto-flow:column;grid-auto-columns:40%;gap:10px;margin:18px auto 0;max-width:900px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.lh-couples .lc{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 6px 16px rgba(90,36,64,.18);background:#3b1f3f;scroll-snap-align:start}
.lh-couples .zoom{border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%;height:100%}
.lh-couples img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform .5s}
.lh-couples .zoom:hover img{transform:scale(1.04)}
.lh-couples .zoom:focus-visible{outline:3px solid var(--sunrise);outline-offset:-3px}
@media(min-width:700px){.lh-couples{grid-auto-flow:row;grid-template-columns:repeat(5,1fr);grid-auto-columns:auto;overflow:visible;padding:2px}}

/* JINGLES (hero, tap-to-play) */
.jingles{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:14px auto 0;max-width:500px}
.jingles-lbl{width:100%;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.jingle{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:999px;padding:7px 14px;font:600 .88rem Outfit,system-ui,sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .2s,border-color .2s}
.jingle::before{content:"";width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent currentColor}
.jingle:hover{background:rgba(255,255,255,.2)}
.jingle.playing{background:linear-gradient(135deg,var(--sunrise),var(--sunrise-2));border-color:transparent}
.jingle.playing::before{width:8px;height:10px;border:0;border-left:3px solid currentColor;border-right:3px solid currentColor}
.jingle:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* Co-owner photo (picture wrapper for WebP + JPEG fallback) */
.member picture{display:block}
.member picture .photo{display:block}

/* Team photo gallery */
.team-gallery{margin-top:34px}
.tg-note{max-width:640px;margin:22px auto 0;text-align:center;font:italic 400 1.08rem/1.6 Outfit,sans-serif;color:var(--harbor)}
.team-gallery h3{color:var(--harbor);font:700 1.3rem Outfit;margin-bottom:14px}
.tg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:700px){.tg-grid{grid-template-columns:repeat(3,1fr);gap:18px}}
.tg{margin:0;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 22px rgba(7,28,51,.12)}
.tg .zoom{border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%;aspect-ratio:4/5;overflow:hidden}
.tg picture,.tg img{display:block;width:100%;height:100%}
.tg img{object-fit:cover;object-position:50% 30%;transition:transform .5s}
.tg .zoom:hover img{transform:scale(1.04)}
.tg figcaption{padding:10px 14px 12px;font:600 .92rem Inter;color:var(--harbor);border-top:3px solid var(--granite)}
.tg:nth-child(3n+2) figcaption{border-color:var(--sunrise)}.tg:nth-child(3n) figcaption{border-color:var(--sea)}

/* MAROON TITLE (Nov 5) - title writing in maroon/red, light halo so it stands out on the photo */
.hero h1{color:#A3172F;text-shadow:0 0 2px #fff4ea,0 0 14px rgba(255,244,234,.85),0 4px 30px rgba(0,0,0,.35)}
.hero h1 span{background:linear-gradient(90deg,#7A1426,#C8102E,#7A1426);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 2px #fff4ea) drop-shadow(0 0 10px rgba(255,244,234,.8))}

/* MORE MAROON / RED LETTERING (Nov 5) — keep body text dark; title block above untouched */
:root{
  --maroon:#A3172F;
  --maroon-deep:#7A1426;
  --red:#C8102E;
}
/* Section headings on light backgrounds */
h2{color:var(--maroon)}
h3{color:var(--maroon-deep)}
.g-sub{color:var(--maroon)}
.team-gallery h3{color:var(--maroon)}
.tg figcaption{color:var(--maroon-deep)}
.tg-note{color:var(--maroon-deep)}
/* Kickers / eyebrow labels */
.eyebrow{color:var(--maroon)}
.eyebrow::before{background:var(--red)}
.jingles-lbl{color:#ffd0d8}
/* Nav links: red on hover / current */
nav ul a:hover{color:var(--red);opacity:1}
nav ul a[aria-current="page"]{color:var(--red);opacity:1}
nav ul a.nav-love{color:#ffb3bc}
a.brand:hover{color:#ffd0d8}
/* In-content links */
.g-note a,.local-spot a,.lead a,section a:not(.btn):not(.nav-listen):not(.nav-love-pill):not(.socials a):not(.applink){color:var(--red)}
.g-note a:hover,.local-spot a:hover{color:var(--maroon-deep);text-decoration:underline}
/* Soft cream glow when maroon headings sit on dark / photo bands */
.video-band h2,
.love-teaser h2,
.signup-card h2,
.np-section h2,
.phone h2{
  color:#E85A6B;
  text-shadow:0 0 2px #fff4ea,0 0 12px rgba(255,244,234,.75),0 2px 18px rgba(0,0,0,.4)
}
.video-band .eyebrow,
.love-teaser .eyebrow,
.signup-card .eyebrow,
.np-section .eyebrow,
.phone .eyebrow{
  color:#ffb3bc
}
/* Footer / misc accents */
footer .top strong{color:#ffb3bc !important}
.member .role{color:var(--maroon)}
.member .info small{color:var(--maroon-deep)}
/* Buttons that use harbor blue can stay; optional maroon listen variant already covered by .btn */
.btn.harbor{background:var(--maroon);box-shadow:0 10px 26px rgba(163,23,47,.35)}
.btn.harbor:hover{background:var(--red)}

/* ITALIC HEADINGS (Nov 5) */
.hero h1,
.hero h1 span,
h2,
h3{
  font-style:italic
}
/* Gallery: center a short last row (Nov 9, after removing one photo) */
.tg-grid.tg-center{display:flex;flex-wrap:wrap;justify-content:center}
.tg-grid.tg-center>.tg{flex:0 0 calc((100% - 14px)/2)}
@media(min-width:700px){.tg-grid.tg-center>.tg{flex-basis:calc((100% - 36px)/3)}}

/* Acadia NP drone clip, full-width band directly under the ocean video (Nov 9).
   New class only — existing .video-band rules are unchanged so the ocean section is untouched.
   Portrait 400x736 source is centered and shown in full (not cover-cropped). */
.acadia-drone{background:var(--harbor-deep);display:flex;justify-content:center;align-items:center;margin:0;padding:0}
.acadia-drone video{display:block;width:min(100%,36rem);height:auto;background:var(--harbor-deep)}



/* Sunrise clips, just under the weather section (Nov 10).
   New class only — existing .video-band, .acadia-drone, and hero rules are unchanged.
   Three portrait clips in a row on desktop, stacked on phones; shown in full (not cover-cropped). */
.sunrise-clip{padding:8px 0 40px}
.sunrise-clip .sunrise-pair{display:grid;grid-template-columns:1fr;gap:22px;justify-items:center}
.sunrise-clip figure{margin:0;width:min(100%,22rem);display:flex;flex-direction:column}
.sunrise-clip video{display:block;width:100%;height:auto;border-radius:18px;box-shadow:var(--shadow);background:var(--harbor-deep)}
.sunrise-clip .sunrise-caption{margin:10px 0 0;text-align:center;font-size:.9rem;font-style:italic;opacity:.8}
@media(min-width:800px){
  .sunrise-clip .sunrise-pair{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;justify-items:stretch}
  .sunrise-clip figure{width:auto;height:100%}
  .sunrise-clip .sunrise-caption{margin-top:auto;padding-top:10px}
}


/* In Loving Memory as its own compact homepage section, just above the footer (Nov 10).
   New/updated classes only. Extra bottom padding so the footer wave does not cover the tributes. */
.memory{padding:36px 0 130px;background:var(--fog)}
.memorial{max-width:520px;margin:0 auto;padding:16px 14px 14px;background:#fff;border-radius:18px;box-shadow:var(--shadow);text-align:center}
.memorial h3{color:var(--maroon,var(--harbor));font:700 1.15rem Outfit,sans-serif;margin:0 0 6px}
.memorial .memory-lead{margin:0;font:italic 400 .92rem/1.4 Outfit,sans-serif;color:var(--maroon-deep,var(--harbor))}
.memorial .tributes{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px;align-items:start}
.memorial .tribute-col{margin:0;min-width:0}
.memorial .tribute{margin:0}
.memorial .tribute img{width:92px;max-width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:10px;box-shadow:var(--shadow);display:block;margin:0 auto}
.memorial .tribute figcaption{margin-top:6px;font:700 .9rem Outfit,sans-serif;color:var(--maroon,var(--harbor))}
.memorial blockquote{margin:8px 0 0;font:italic 400 .78rem/1.4 Outfit,sans-serif;color:var(--maroon-deep,var(--harbor));text-align:center}
.memorial blockquote span{display:block;margin-top:4px;font-style:normal;font-weight:600;font-size:.72rem}
@media(min-width:600px){
  .memorial{max-width:560px;padding:18px 18px 16px}
  .memorial .tribute img{width:120px}
  .memorial blockquote{font-size:.82rem}
}

/* Days of Summer (Nov 11). New classes only; welcome .ss-duo / dock photo unchanged. */
.days-of-summer{padding:28px 0 36px}
.days-of-summer .summer-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,17.5rem));justify-content:center;gap:16px;max-width:560px;margin:18px auto 0}
.days-of-summer figure{margin:0;width:auto;max-width:17.5rem}
.days-of-summer img,.days-of-summer video{display:block;width:100%;height:auto;border-radius:18px;box-shadow:var(--shadow);background:var(--harbor-deep)}
.days-of-summer .summer-play{margin:8px 0 0;text-align:center;font-size:.8rem;opacity:.75}
.days-of-summer .summer-caption{margin:14px 0 0;text-align:center;font-size:.95rem;font-style:italic;opacity:.85}

/* Sunrise cove clip (Nov 11). New classes only; Days of Summer stays hidden. */
.cove-waves{padding:16px 0 36px}
.cove-waves figure{margin:0 auto;width:auto;max-width:17.5rem}
.cove-waves video{display:block;width:100%;height:auto;border-radius:18px;box-shadow:var(--shadow);background:var(--harbor-deep)}
.cove-waves figcaption{margin:10px 0 0;text-align:center;font-size:.95rem;font-style:italic;opacity:.85}


/* ===== LISTENERS MAP ===== */
.listeners{background:linear-gradient(180deg,var(--fog),#fff 40%,var(--fog));padding:72px 0 80px}
.listeners .lead{font-size:clamp(1.12rem,2.6vw,1.28rem);max-width:700px;line-height:1.55}
.listen-stats{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:28px auto 22px;max-width:640px}
.listen-stat{background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:18px 28px;min-width:200px;text-align:center;border-top:5px solid var(--sunrise);flex:1}
.listen-stat:last-child{border-top-color:var(--sea)}
.listen-stat-num{display:block;font:800 clamp(2.3rem,8vw,3.4rem)/1.05 Outfit,sans-serif;color:var(--harbor);letter-spacing:-.03em}
.listen-stat-lbl{display:block;margin-top:8px;font:700 1.05rem/1.3 Inter,sans-serif;color:var(--fog-ink)}
.listener-map{height:min(62vw,480px);min-height:320px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--fog-2);border:1px solid rgba(11,42,74,.08);z-index:0}
.listener-map .leaflet-container{height:100%;width:100%;background:#d9e4ea;font:600 13px Inter,system-ui,sans-serif}
.listener-map .leaflet-control-attribution{font-size:11px;background:rgba(255,255,255,.85)}
.listener-map .leaflet-popup-content-wrapper{border-radius:14px;box-shadow:var(--shadow)}
.listener-map .leaflet-popup-content{margin:12px 14px;font-size:1.05rem;line-height:1.4;color:var(--ink)}
.listener-map .leaflet-popup-content strong{font:700 1.15rem Outfit,sans-serif;color:var(--harbor);display:block}
.listener-note{text-align:center;margin-top:16px;font-size:1.05rem;color:var(--fog-ink);line-height:1.45}
.listener-note.is-preview{color:var(--granite-deep);font-weight:600}
@media(min-width:700px){
  .listeners{padding:96px 0 100px}
  .listen-stats{gap:24px}
  .listen-stat{padding:22px 32px}
}


/* ===== BIG PLAY BUTTON (hero) + iPad tap target ===== */
.hero-video,
.hero.has-video::before{pointer-events:none}
.play-btn{
  position:relative;z-index:5;
  width:min(100%, 28rem);
  min-height:88px;
  padding:22px 48px;
  font:800 clamp(1.8rem, 6vw, 2.6rem)/1 Outfit,sans-serif;
  letter-spacing:.02em;
  gap:14px;
  box-shadow:0 14px 36px rgba(242,140,56,.55);
}
.play-btn svg{width:2rem;height:2rem;flex:none}
.stream-note, #streamNote{font-size:1.05rem}

/* Extra pictures under team cards: keep files, do not show under the portraits.
   .owner-strip { display:grid } would otherwise override the hidden attribute. */
.member-gallery,
.owner-strip,
.team-gallery{display:none!important}


/* ===== ENGAGE: postcards, chat, guestbook, sticky player ===== */
body{padding-bottom:96px}
.hero-listeners{margin-top:12px;font:700 1.15rem Outfit,sans-serif;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45)}

.postcards{background:#fff;padding:56px 0 64px}
.postcards .lead{font-size:1.15rem}
.postcard-row{display:flex;gap:14px;overflow-x:auto;padding:8px 4px 16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.postcard{flex:0 0 min(78vw,280px);margin:0;scroll-snap-align:start;background:var(--fog);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.postcard img{width:100%;height:200px;object-fit:cover;display:block}
.postcard figcaption{padding:10px 12px 12px;font:600 1.02rem Outfit,sans-serif;color:var(--harbor)}

.community{background:linear-gradient(180deg,#fff,var(--fog));padding:64px 0 72px}
.community h2{font-size:clamp(2rem,5vw,2.8rem)}
.community .lead{font-size:1.15rem;max-width:700px}
.comm-grid{display:grid;gap:28px;margin-top:28px}
.comm-grid{max-width:640px;margin-left:auto;margin-right:auto}
@media(min-width:860px){.comm-grid{grid-template-columns:1fr;align-items:start}}
.comm-card{background:#fff;border-radius:22px;padding:22px 20px 24px;box-shadow:var(--shadow)}
.comm-card h3{font-size:1.55rem;margin:0 0 8px}
.comm-card p{font-size:1.08rem;margin:0 0 14px;color:#2b4357}
.comm-card label{display:block;font-weight:700;font-size:1.05rem;margin:10px 0 4px;color:var(--harbor)}
.comm-card input,.comm-card textarea{font-size:1.12rem;padding:12px 14px}
.comm-card textarea{min-height:90px;resize:vertical}
.comm-card .btn{margin-top:12px;font-size:1.15rem;padding:14px 26px}
.chat-log,.book-log{list-style:none;margin:14px 0 0;max-height:280px;overflow:auto;border-top:1px solid var(--fog-2);padding-top:8px}
.chat-log li,.book-log li{padding:10px 0;border-bottom:1px dashed var(--fog-2);font-size:1.08rem;line-height:1.45}
.chat-log strong,.book-log strong{color:var(--harbor)}
.chat-log .empty,.book-log .empty{color:var(--fog-ink);border:0}
.comm-note{min-height:1.3em;margin:8px 0 0;font-size:1.05rem;color:var(--granite-deep);font-weight:600}

.nowbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(7,28,51,.94);color:#fff;display:flex;align-items:center;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 24px rgba(7,28,51,.35);backdrop-filter:blur(8px)}
.nowbar-play{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--sunrise),var(--sunrise-2));color:#fff;border:0;border-radius:999px;padding:12px 22px;font:800 1.2rem Outfit,sans-serif;cursor:pointer;min-height:52px}
.nowbar-play svg{width:18px;height:18px}
.nowbar-art{width:48px;height:48px;border-radius:8px;object-fit:cover;flex:none;background:var(--harbor-mid)}
.nowbar-meta{min-width:0;flex:1}
.nowbar-meta strong{display:block;font:700 1.05rem Outfit,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nowbar-meta span{display:block;font-size:.95rem;opacity:.85}
@media(min-width:700px){
  .nowbar{padding:12px 28px calc(12px + env(safe-area-inset-bottom,0px));gap:16px}
  .nowbar-play{padding:14px 28px;font-size:1.3rem;min-height:56px}
  .nowbar-art{width:56px;height:56px}
  .nowbar-meta strong{font-size:1.2rem}
  .postcard img{height:220px}
}
