:root{--navy:#032553;--mid:#4386B2;--headland:#3E7095;--water:#8FB5CC;--sand:#E1D1B9;
--sky:#e9f2f8;--paper:#ffffff;--ink:#14213a;--muted:#5b6578;--rule:#e6e9ee;--soft:#f5f7fa;
--warm:#f7f0e4;--focus:#3E7095;--shadow:0 1px 2px rgba(3,37,83,.06),0 6px 18px rgba(3,37,83,.08)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--headland)}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* shared Bay Scoop header, copied from the music and directory sites */
.masthead{background:rgb(249,246,245);border-bottom:1px solid rgb(227,218,214);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.nav-main{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:16px}
.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
.nav-links a{color:rgb(26,26,26);font-size:16px;font-weight:500;text-decoration:none;padding:2px 4px}
.nav-links a:hover,.nav-links a[aria-current]{text-decoration:underline;text-underline-offset:4px}
.brand{display:block}
.brand img{display:block;height:96px;width:auto}
.nav-right{display:flex;justify-content:flex-end;align-items:center}
.subscribe{background:rgb(67,134,178);color:rgb(26,26,26);font-size:16px;line-height:1.5;padding:6px 12px;border-radius:8px;text-decoration:none;white-space:nowrap}
.subscribe:hover{filter:brightness(1.06)}
@media (max-width:760px){
 .nav-main{grid-template-columns:1fr auto 1fr;grid-template-areas:". brand right" "links links links";padding:10px 16px 12px;row-gap:8px}
 .brand{grid-area:brand}.brand img{height:72px}
 .nav-right{grid-area:right}
 .nav-links{grid-area:links;justify-content:center}
}
/* featured */
.featured{padding:18px 0 4px}
.fhead{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fhead h2{margin:0;font-size:13px;letter-spacing:.9px;text-transform:uppercase;color:var(--navy)}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--headland);border:1px solid #c9dbe8;border-radius:999px;padding:3px 10px;text-decoration:none}
.pill svg{width:14px;height:14px}
.fstrip{display:grid;grid-auto-flow:column;grid-auto-columns:calc(50% - 6px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
@media (max-width:760px){.fstrip{grid-auto-columns:86%}}
.fcard{position:relative;display:block;aspect-ratio:16/10;border-radius:14px;overflow:hidden;scroll-snap-align:start;color:#fff;text-decoration:none;background:var(--navy)}
.fcard img,.fcard .tile{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,37,83,0) 40%,rgba(3,20,45,.85) 100%)}
.fcard .cap{position:absolute;left:16px;right:16px;bottom:14px;z-index:1}
.fcard .d{font-size:13px;font-weight:600;opacity:.9}
.fcard .t{display:block;font-size:19px;font-weight:800;line-height:1.2;margin-top:2px}
.fcard .w{display:block;font-size:13px;opacity:.85;margin-top:2px}
/* toolbar */
.bar{position:relative;z-index:20;background:var(--paper);border-bottom:1px solid var(--rule);padding:10px 0 8px}
.r1,.r2{display:flex;gap:8px;align-items:center}
.r2{margin-top:8px}
.search{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;border:1px solid var(--rule);border-radius:10px;padding:0 10px;background:var(--soft);color:var(--muted)}
.search input{border:0;background:none;font:inherit;padding:10px 0;width:100%;min-width:0;color:var(--ink);outline:none}
.sel{position:relative;display:flex;align-items:center}
.sel select{appearance:none;-webkit-appearance:none;font:inherit;color:var(--ink);background:#fff;border:1px solid var(--rule);border-radius:10px;padding:9px 30px 9px 11px;max-width:100%;cursor:pointer}
.sel svg{position:absolute;right:9px;pointer-events:none;width:15px;height:15px;color:var(--muted)}
.sel.wide{flex:1 1 0;min-width:0}.sel.wide select{width:100%}
.views{display:flex;border:1px solid var(--rule);border-radius:10px;overflow:hidden;flex:0 0 auto}
.views button{background:#fff;border:0;padding:8px 10px;color:var(--muted);cursor:pointer;display:flex}
.views button[aria-pressed=true]{background:var(--navy);color:#fff}
.add{display:inline-flex;align-items:center;gap:6px;background:var(--headland);color:#fff;text-decoration:none;font-weight:700;border-radius:999px;padding:8px 13px;white-space:nowrap;flex:0 0 auto}
.add:hover{background:var(--navy)}
@media (min-width:701px){.bar{position:sticky;top:0}}
#pickday{border:1px solid var(--rule);border-radius:10px;padding:8px;font:inherit}
@media (max-width:700px){
 .r1{flex-wrap:wrap}.search{flex-basis:100%}
 .r1 .sel.cat{flex:1 1 0}.r1 .sel.cat select{width:100%}
 .add .lbl{display:none}.add{padding:9px}
 .r2{flex-wrap:wrap}.r2 .sel.wide{flex:1 1 40%}
 .r2 .sel.rad{flex:1 1 100%}.r2 .sel.rad select{width:100%}
 .r2 .sel.rad:has(select:disabled){display:none}
 #pickday{flex:1 1 100%}
}
.count{font-size:13px;color:var(--muted);padding:10px 0 0}
/* list */
.feed{padding:4px 0 30px}
.day{margin-top:14px}
.day h3{margin:0;padding:10px 0 6px;font-size:15px;color:var(--navy);border-bottom:2px solid var(--sand)}
.day h3 .rel{color:var(--headland);font-weight:600;font-size:13px;margin-left:8px}
ul.ev{list-style:none;margin:0;padding:0}
.ev>li{border-bottom:1px solid var(--rule)}
.row{display:grid;grid-template-columns:132px 1fr auto;gap:14px;padding:12px 0;align-items:start}
.thumb{display:block;position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--soft)}
.thumb img,.thumb .tile{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--tile,#032553);
background-image:radial-gradient(120% 80% at 100% 100%,rgba(143,181,204,.45),transparent 60%),radial-gradient(90% 60% at 0% 0%,rgba(225,209,185,.22),transparent 60%);color:#fff;text-align:center;line-height:1}
.tile .tm{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--sand);font-weight:700}
.tile .td{font-size:34px;font-weight:800;margin:3px 0}
.tile .tw{font-size:11px;opacity:.85;padding:0 6px;line-height:1.2}
.body{min-width:0}
.tt{display:block;font-weight:800;color:var(--ink);text-decoration:none;font-size:16px;line-height:1.25}
.tt:hover{text-decoration:underline}
.where{color:var(--muted);margin-top:3px}
.time{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--ink);font-size:14px}
.time svg{width:15px;height:15px;color:var(--muted)}
.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.tag{font-size:12px;border-radius:6px;padding:2px 7px;background:var(--soft);color:var(--navy)}
.tag.ba{background:var(--warm);color:#7a4b12;font-weight:600}
.tag.ft{background:#e4eef6;color:var(--navy);font-weight:600}
.side{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:56px}
.dist{display:flex;align-items:center;gap:3px;font-size:13px;color:var(--ink);font-weight:600;white-space:nowrap}
.dist:has(.n:empty){display:none}
.dist svg{width:14px;height:14px;color:var(--headland)}
.savebtn{background:none;border:0;padding:4px;color:#9aa4b2;cursor:pointer;display:flex}
.savebtn[aria-pressed=true]{color:var(--headland)}
.savebtn[aria-pressed=true] svg{fill:currentColor}
@media (max-width:560px){.row{grid-template-columns:96px 1fr auto;gap:11px}.tt{font-size:15px}.tile .td{font-size:26px}}
/* grid view: one flowing grid of cards, date on each card */
.dchip{display:none}
.feed.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding-top:16px}
.feed.grid .day,.feed.grid ul.ev{display:contents}
.feed.grid .day h3{display:none}
.feed.grid .ev>li{border:1px solid var(--rule);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.feed.grid .row{display:block;padding:0;position:relative}
.feed.grid .thumb{border-radius:0;aspect-ratio:16/10}
.feed.grid .body{padding:10px 12px 12px}
.feed.grid .dchip{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--headland);margin-bottom:3px}
.feed.grid .side{position:absolute;top:8px;right:8px;flex-direction:row;align-items:center;gap:6px}
.feed.grid .dist{background:rgba(255,255,255,.92);border-radius:999px;padding:3px 8px}
.feed.grid .savebtn{background:rgba(255,255,255,.92);border-radius:999px;padding:5px}
@media (max-width:560px){.feed.grid{grid-template-columns:1fr 1fr;gap:10px}.feed.grid .body{padding:8px 9px 10px}.feed.grid .tt{font-size:14px}.feed.grid .tags{display:none}.feed.grid .where{font-size:13px}}
/* map view */
#map{display:none;height:72vh;min-height:420px;border-radius:14px;margin:14px 0 30px;border:1px solid var(--rule);background:var(--soft)}
.feed.map{display:none}.mapon #map{display:block}
.mpop{font:14px/1.35 system-ui,sans-serif;max-width:240px}
.mpop a{font-weight:700;color:var(--navy);text-decoration:none}
.mpop div{margin-bottom:8px}.mpop div:last-child{margin-bottom:0}
.mpop small{color:var(--muted)}
.empty{display:none;margin:28px 0;padding:22px;border:1px dashed #cdd6e0;border-radius:12px;text-align:center;color:var(--muted)}
/* bottom panel */
.tell{margin:10px 0 30px;background:var(--navy);color:#fff;border-radius:16px;padding:22px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.tell h2{margin:0 0 4px;font-size:21px}
.tell p{margin:0;opacity:.9}
.tell .grow{flex:1 1 300px}
.btn{display:inline-flex;align-items:center;gap:7px;border-radius:10px;padding:10px 15px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;border:1px solid transparent}
.btn.sand{background:var(--sand);color:var(--navy)}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn.navy{background:var(--navy);color:#fff}
.btn.line{background:#fff;color:var(--navy);border-color:#cfd8e3}
.btn.small{padding:7px 11px;font-size:14px}
footer.site{border-top:1px solid var(--rule);color:var(--muted);font-size:13px;padding:18px 0 40px}
footer.site .wrap{display:flex;gap:10px 18px;flex-wrap:wrap;justify-content:space-between}
footer.site a{color:var(--muted)}
footer.site nav a{margin-right:12px}
/* event page */
.crumb{margin:16px 0 10px;font-size:14px}
.crumb a{text-decoration:none}
.evgrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:800px){.evgrid{grid-template-columns:1fr;gap:18px}}
.hero{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--soft)}
.hero img,.hero .tile{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .tile .td{font-size:84px}.hero .tile .tm{font-size:18px}.hero .tile .tw{font-size:16px}
#evmap{height:220px;border-radius:14px;margin-top:14px;border:1px solid var(--rule);background:var(--soft);position:relative}
.openmaps{position:absolute;top:10px;left:10px;z-index:500;background:#fff;border-radius:8px;padding:4px 9px;font-size:13px;box-shadow:var(--shadow);text-decoration:none}
.sharebar{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 8px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.sharebar a,.sharebar button{display:inline-flex;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;color:#fff;text-decoration:none;border:0;cursor:pointer;font:700 13px system-ui}
.minor{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.evinfo h1{margin:0;font-size:30px;line-height:1.15;color:var(--navy)}
.evinfo .when{margin-top:8px;font-size:16px}
.evinfo .addcal{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:14px;text-decoration:none}
.evinfo h2{font-size:15px;margin:22px 0 4px;color:var(--navy)}
.evinfo p{margin:0}
.evinfo .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.goodfor{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.note{font-size:13px;color:var(--muted);margin-top:18px}
.sub{margin:30px 0;background:var(--warm);border-radius:16px;padding:20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.sub h2{margin:0 0 4px;color:var(--navy);font-size:20px}
.sub p{margin:0}.sub .grow{flex:1 1 280px}
.more h2{font-size:13px;letter-spacing:.9px;text-transform:uppercase;color:var(--navy)}
