:root{--red:#a8442a;--red-d:#7d2f1c;--cream:#f7efe2;--sand:#ead9c0;--sage:#7d8a6a;--sage-l:#dfe3d3;--dusk:#4a3a5c;--dusk-d:#2c2238;--ink:#2b211d;--muted:#6b5d55;--card:#fffaf2}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:17px/1.6 "Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--cream)}
h1,h2,.brand{font-family:Fraunces,Georgia,serif}a{color:var(--red-d)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #e8a33d;outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:9;background:#fff;padding:8px 12px}
.top{position:absolute;inset:0 0 auto;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:16px 28px;background:linear-gradient(rgba(28,18,24,.6),transparent)}
.brand{color:#fff;font-size:24px;font-weight:700;text-decoration:none;letter-spacing:.3px}nav a{color:#fbeee0;margin-left:20px;text-decoration:none;font-weight:600}nav a:hover{text-decoration:underline}
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero>img,.band img,.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(44,34,56,.15) 30%,rgba(44,34,56,.85))}
.hero-in{position:relative;z-index:2;width:100%;max-width:1180px;margin:auto;padding:120px 24px 48px}
.kicker{text-transform:uppercase;letter-spacing:2px;font-size:13px;font-weight:600;color:var(--sage);margin:0}.hero .kicker{color:#f3d9b6}
h1{font-size:clamp(38px,6vw,76px);line-height:1.05;margin:8px 0 12px;text-shadow:0 2px 18px rgba(0,0,0,.35)}.hero-sub{max-width:620px;font-size:19px;margin:0 0 24px;color:#fdf3e6}
.bar{display:grid;grid-template-columns:1fr auto;gap:14px}.search{display:flex;gap:6px;flex-wrap:wrap;background:rgba(255,250,242,.95);border-radius:14px;padding:12px}
.search input{flex:1;min-width:180px;font:inherit;font-size:18px;padding:10px 14px;border:1px solid #d6c3a6;border-radius:9px;background:#fff;color:var(--ink)}
.search button{font:600 15px inherit;font-family:inherit;padding:10px 16px;border:0;border-radius:9px;background:var(--red);color:#fff;cursor:pointer}.search button.alt{background:var(--dusk)}.search button:last-child{background:var(--sage)}
.wx{background:rgba(44,34,56,.78);border-radius:14px;padding:12px 18px;min-width:230px;color:#fff}.wx b{font:700 30px Fraunces,serif}.wx small{display:block;color:#e5d8ea}.wx a{color:#f3d9b6}
main{max-width:1180px;margin:auto;padding:0 20px}
.hsc{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-28px 0 40px;position:relative;z-index:4;padding:22px 26px;border-radius:14px;background:linear-gradient(120deg,var(--dusk-d),var(--dusk));color:#f3e6d3;text-decoration:none;box-shadow:0 10px 30px rgba(44,34,56,.25)}
.hsc h2{margin:0;font-size:26px}.hsc p{margin:2px 0 0;opacity:.9}.hsc span{background:var(--red);color:#fff;padding:10px 18px;border-radius:9px;white-space:nowrap;font-weight:600}
.group{padding:24px 0 36px}.group>h2{font-size:clamp(28px,3.5vw,40px);margin:4px 0 4px;color:var(--red-d)}.lead{color:var(--muted);margin:0 0 20px}
.cols{columns:3 300px;column-gap:18px}.panel{break-inside:avoid;background:var(--card);border:1px solid var(--sand);border-top:4px solid var(--red);border-radius:12px;padding:14px 18px;margin:0 0 18px}
.group:nth-of-type(2n) .panel{border-top-color:var(--sage)}.panel h2{font:600 20px Fraunces,serif;margin:0 0 6px;color:var(--dusk)}
.links{list-style:none;margin:0;padding:0}.links li{padding:6px 0;border-top:1px dashed var(--sand)}.links li:first-child{border:0}.links a{text-decoration:none;font-weight:600}.links a:hover{text-decoration:underline}
.biz small{display:block;color:var(--muted);font-size:14px}.verify{font-size:10px;text-transform:uppercase;letter-spacing:.5px;background:#fff0c9;color:#6e5100;border-radius:4px;padding:1px 5px;margin-left:4px}
.note{color:var(--muted);font-size:14px}.wrap{text-align:center;margin:0 0 30px}
.band{position:relative;margin:0 calc(50% - 50vw);height:56vh;min-height:300px}.band.short{height:42vh}
.band figcaption{position:absolute;right:24px;bottom:18px;color:#fff;font:500 italic 18px Fraunces,serif;text-shadow:0 1px 8px rgba(0,0,0,.6);background:rgba(44,34,56,.4);padding:4px 12px;border-radius:6px}
.page-hero{position:relative;height:46vh;min-height:260px}.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(44,34,56,.45),transparent 50%)}
.prose{max-width:700px;padding:30px 0 50px}.prose h1{color:var(--red-d);font-size:48px;text-shadow:none}
footer{background:var(--dusk-d);color:#e3d6e6;text-align:center;padding:30px 20px;font-size:15px}footer a{color:#f3d9b6}footer p{margin:4px 0}.ft-home{font:600 18px Fraunces,serif;color:#fff}.credits{font-size:12px;opacity:.85}
@media(max-width:700px){.bar{grid-template-columns:1fr}.hsc{flex-direction:column;align-items:flex-start;margin-top:-16px}.top{padding:12px 16px}nav a{margin-left:12px;font-size:15px}.hero{min-height:92vh}.band{height:38vh}.band figcaption{font-size:15px;right:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hero{min-height:min(88vh,860px)}.band{height:min(56vh,600px)}.band.short{height:min(42vh,460px)}.page-hero{height:min(46vh,480px)}
@media(max-width:700px){.hero{min-height:min(92vh,760px)}.band{height:min(38vh,320px)}}

/* v3 hero: El Cap, text in the sky; palette from photo (sky #2b527a, rock #8a4a2c, sage #827a4a) */
.hero{align-items:flex-start;background:#2b527a}
.hero>img{object-position:72% 100%}
.hero::after{background:linear-gradient(180deg,rgba(18,38,62,.55) 0%,rgba(18,38,62,.2) 45%,transparent 62%,rgba(30,22,14,.35) 100%)}
.hero-in{margin:0 auto auto;padding:96px 24px 40px}
.hero .kicker{color:#f2c9a4}
.hero-cap{position:absolute;right:20px;bottom:150px;z-index:2;margin:0;font-size:13px;color:#fff;opacity:.85;text-shadow:0 1px 4px rgba(0,0,0,.6)}
@media(max-width:700px){.hero>img{object-position:70% 100%}.hero-in{padding:80px 16px 32px}.hero::after{background:linear-gradient(180deg,rgba(18,38,62,.7) 0%,rgba(18,38,62,.35) 60%,rgba(30,22,14,.3) 100%)}}
@media(max-width:700px){.hero-cap{bottom:110px}}
/* v2.1 additions: home-page helper, scanner, events, polish */
.homebtn{background:var(--red);color:#fff!important;padding:6px 12px;border-radius:999px;font-weight:600}
.homebtn:hover{background:var(--red-d)}
.homedlg{max-width:560px;width:calc(100% - 32px);border:1px solid var(--sand);border-top:4px solid var(--red);border-radius:14px;background:var(--card);color:var(--ink);padding:20px 22px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.homedlg::backdrop{background:rgba(28,18,24,.55)}
.homedlg h2{margin:0 32px 8px 0;font-size:24px}
.homedlg code{background:var(--sage-l);padding:2px 6px;border-radius:6px;word-break:break-all}
.homedlg .copy{font:inherit;font-size:14px;border:0;border-radius:7px;background:var(--red);color:#fff;padding:3px 10px;cursor:pointer}
.homedlg details{border-top:1px solid var(--sand);padding:8px 0}.homedlg summary{font-weight:600;cursor:pointer}
.homedlg details p{margin:6px 0 2px;font-size:15px;line-height:1.5}
.homedlg .x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:28px;line-height:1;cursor:pointer;color:var(--muted)}
.scanner{border-top-color:var(--dusk)!important}.scanner .note{margin:10px 0 0;font-size:14px}
.links small{display:block;color:var(--muted);font-size:14px;margin-top:1px}
.links li{margin:0 0 9px}
.events{max-width:none;border-top-color:var(--sage)}.events p{margin:4px 0}.events .small{color:var(--muted);font-size:15px}
nav a{white-space:nowrap}
footer p{margin:6px auto;max-width:760px;line-height:1.6}footer a{color:#fff}
@media(max-width:700px){
 .top{flex-wrap:wrap;gap:6px}nav{display:flex;flex-wrap:wrap;gap:6px 12px}nav a{margin-left:0;font-size:14px}.homebtn{padding:4px 10px}
 .wx{min-width:0;padding:8px 12px;border-radius:10px;font-size:14px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;background:rgba(44,34,56,.6)}
 .wx b{font-size:20px}
 .hero-in{padding-top:150px}
 .hero-cap{bottom:12px}
}

/* Today strip, events, meetings */
.today{position:relative;z-index:4;margin:-28px 0 18px;background:var(--card);border:1px solid var(--sand);border-left:5px solid var(--sage);border-radius:14px;padding:14px 20px;box-shadow:0 10px 30px rgba(44,34,56,.15)}
.today+.hsc{margin-top:0}
.today h2{font:600 20px Fraunces,serif;margin:0 0 8px;color:var(--dusk)}
.t-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px 22px}
.t-grid>div{font-size:15px}.t-grid h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--sage)}.t-grid small{color:var(--muted);display:block;font-size:13px}
.t-notice{background:#fff0c9;color:#5a4200;border-radius:8px;padding:8px 12px;margin:0 0 10px}
.aqi{display:inline-block;min-width:34px;text-align:center;font-weight:700;border-radius:6px;padding:0 6px;color:#fff}.aq-g{background:#3d8b3d}.aq-m{background:#b58900;}.aq-s{background:#d35400}.aq-u{background:#c0392b}.aq-v{background:#7d3c98}
.evlist time,.mtg time{display:block;font-weight:600;color:var(--red-d);font-size:14px}.evlist b,.mtg b{display:block}.evlist small,.mtg small{display:block;color:var(--muted);font-size:14px}
.subpage #main{padding-top:4.5rem}.subpage .wide{max-width:900px;padding:30px 0 50px}.subpage .wide h1{color:var(--red-d);font-size:48px;text-shadow:none}
.mtg li a{font-weight:600}.panel h3{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--sage);margin:12px 0 2px}

/* v2.2: boards, history, signup */
.thisday,.signup{max-width:none;margin:0 0 18px;border-top-color:var(--dusk)}.thisday time{font-weight:600;color:var(--red-d)}.thisday .src{color:var(--muted);font-size:14px}
.nl{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.nl input{flex:1 1 240px;font:inherit;padding:9px 12px;border:1px solid var(--sand);border-radius:8px}.nl button{font:inherit;font-weight:600;border:0;border-radius:8px;background:var(--red);color:#fff;padding:9px 18px;cursor:pointer}.nl-msg{margin:4px 0;font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.jump{margin:0 0 16px;font-size:15px}.empty{color:var(--muted);font-style:italic}.btn-sub{display:inline-block;background:var(--red);color:#fff!important;padding:6px 14px;border-radius:8px;font-weight:600;text-decoration:none;margin-right:6px}
.subpage .panel,.wide .panel{margin-bottom:16px}
