:root{--ink:#09202f;--ink2:#142f3e;--muted:#5e6a70;--paper:#f6efe2;--paper2:#fffaf2;--sand:#dcc9ab;--line:#d7c8ad;--gold:#b8874d;--copper:#87542d;--river:#0f3b4c;--deep:#071722;--green:#203b36;--ok:#1d6f48;--bad:#8b2d22;--shadow:0 24px 70px rgba(7,23,34,.16);--radius:26px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.58}img{max-width:100%;display:block}a{color:inherit}.serif,h1,h2,h3{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.02em}.site-header{position:sticky;top:0;z-index:50;background:rgba(246,239,226,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(9,32,47,.12)}.nav{max-width:1220px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 22px}.brand{text-decoration:none;font-weight:900;letter-spacing:.09em;text-transform:uppercase;font-size:15px;color:var(--ink)}.brand span{display:block;font-size:11px;color:var(--copper);letter-spacing:.22em;margin-top:1px}.nav-links{display:flex;align-items:center;gap:20px}.nav-links a{text-decoration:none;font-weight:700;font-size:14px;color:var(--ink2)}.nav-cta,.button,button{border:0;border-radius:999px;padding:12px 18px;background:var(--ink);color:#fff;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;transition:.18s}.button:hover,button:hover,.nav-cta:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(7,23,34,.16)}.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.button.ghost{background:transparent;color:var(--ink);border:1px solid rgba(9,32,47,.28)}.button.small{padding:8px 12px;font-size:13px}.hero{min-height:84vh;display:grid;align-items:end;position:relative;color:#fff;background:#0b2432}.hero:before{content:'';position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(4,14,21,.92) 0%,rgba(4,14,21,.64) 43%,rgba(4,14,21,.22) 100%),linear-gradient(180deg,rgba(4,14,21,.20),rgba(4,14,21,.82)),image-set(url('assets/mystic-river-hero-1600.webp') type('image/webp'),url('assets/mystic-river-hero-1600.jpg') type('image/jpeg'));background-size:cover;background-position:center;filter:saturate(.9)}.hero-inner{position:relative;max-width:1220px;margin:0 auto;width:100%;padding:128px 22px 82px}.eyebrow{letter-spacing:.24em;text-transform:uppercase;font-size:12px;font-weight:900;color:#e5c799}.hero h1{font-size:clamp(48px,8vw,110px);line-height:.93;margin:14px 0 20px;max-width:930px;color:#fff}.hero p{max-width:760px;font-size:clamp(18px,2vw,24px);color:#f7efe2;text-shadow:0 2px 18px rgba(0,0,0,.35)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.container{max-width:1220px;margin:0 auto;padding:74px 22px}.section-title{font-size:clamp(36px,5.6vw,72px);line-height:1;margin:0 0 18px}.lede{font-size:19px;color:#344753;max-width:760px}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:start}.card{background:rgba(255,250,242,.92);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.panel{background:#fff7eb;border:1px solid var(--line);border-radius:var(--radius);padding:30px}.kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--copper);font-size:12px;font-weight:900}.mission{font-size:clamp(26px,3vw,42px);line-height:1.16;color:var(--ink);font-family:Georgia,serif}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.location-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;text-decoration:none;box-shadow:0 14px 42px rgba(7,23,34,.08);transition:.18s}.location-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.location-card img{height:170px;width:100%;object-fit:cover}.location-card .body{padding:19px}.location-card h3{font-size:26px;margin:6px 0}.tag{font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:var(--copper)}.status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:800;background:#efe1c9;color:#5c391d}.status.active{background:#dceedd;color:#1d5a3a}.status.paused{background:#fff1c6;color:#6b4d00}.status.retired{background:#ead7d3;color:#7b2b23}.map-wrap{height:540px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#d8e6e8}#map{height:100%;width:100%}.leaflet-popup-content-wrapper{border-radius:16px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}.stat{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.stat strong{font-size:34px;display:block;font-family:Georgia,serif}.prompt-band{background:linear-gradient(135deg,var(--deep),var(--river));color:#fff}.prompt-band .container{padding-top:58px;padding-bottom:58px}.prompt-band h2{font-size:clamp(34px,5vw,70px);margin:0;color:#fff}.prompt-band p{color:#e3edf0}.response-list{display:grid;gap:16px}.quote{background:#fff;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:18px;padding:20px}.quote p{font-family:Georgia,serif;font-size:22px;line-height:1.36;margin:0 0 10px}.form{display:grid;gap:15px}.form label{font-weight:800}.form input,.form textarea,.form select{width:100%;padding:13px 14px;border-radius:14px;border:1px solid #c7b894;background:#fff;color:var(--ink);font:inherit}.form textarea{min-height:160px;resize:vertical}.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}.check input{width:auto;margin-top:6px}.fineprint{font-size:13px;color:#59656c}.notice,.success{padding:14px 16px;border-radius:15px;background:#e8f5ee;border:1px solid #b4dac5;color:#173c2a}.warning{padding:14px 16px;border-radius:15px;background:#fff2c7;border:1px solid #e5ca79;color:#5f4500}.error{padding:14px 16px;border-radius:15px;background:#fae4e0;border:1px solid #e8aaa0;color:#75261d}.page-hero{position:relative;color:#fff;background:#0b2432}.page-hero:before{content:'';position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(4,14,21,.88),rgba(4,14,21,.45)),image-set(url('assets/mystic-river-hero-1600.webp') type('image/webp'),url('assets/mystic-river-hero-1600.jpg') type('image/jpeg'));background-size:cover;background-position:center}.page-hero .container{position:relative;padding-top:98px;padding-bottom:78px}.page-hero h1{font-size:clamp(44px,7vw,88px);line-height:1;margin:0 0 16px;color:#fff}.page-hero p{color:#f7efe2;font-size:20px;max-width:820px}.footer{background:#081b28;color:#e7eff0;padding:38px 22px}.footer a{color:#e7eff0}.footer-inner{max-width:1220px;margin:auto;display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap}.admin-shell{display:grid;grid-template-columns:300px 1fr;gap:22px}.admin-nav{display:grid;gap:10px;align-content:start}.admin-nav button{background:#fff;color:var(--ink);border:1px solid var(--line);justify-content:flex-start;border-radius:16px}.admin-nav button.active{background:var(--ink);color:#fff}.table-wrap{overflow:auto;border-radius:20px;border:1px solid var(--line)}.table{width:100%;min-width:820px;border-collapse:collapse;background:#fff}.table th,.table td{text-align:left;vertical-align:top;padding:12px;border-bottom:1px solid #eadfc9}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#6b5a43;background:#fbf2e4}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 16px}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.media-item{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.media-item img,.media-item audio{width:100%}.media-item div{padding:10px}.hide{display:none!important}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}.location-hero-image{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);height:360px;object-fit:cover;width:100%}.consent-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:16px;top:16px;z-index:99;background:#fff;padding:10px;border-radius:10px}@media(max-width:880px){.nav{align-items:flex-start}.nav-links{gap:10px;flex-wrap:wrap;justify-content:flex-end}.nav-links a:not(.nav-cta){display:none}.split,.admin-shell,.two-col{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.stat-row{grid-template-columns:1fr 1fr}.hero{min-height:82vh}.hero-inner{padding-top:94px}.map-wrap{height:430px}.media-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.stat-row,.media-grid{grid-template-columns:1fr}.hero h1{font-size:46px}.container{padding:54px 18px}.card,.panel{padding:22px}.hero-inner{padding-left:18px;padding-right:18px}.brand{font-size:13px}}

/* v3.2 polish fixes */
.nav-cta{background:#082334!important;color:#fff!important;border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 28px rgba(7,23,34,.22)}
.nav-cta:hover,.nav-cta:focus{background:#0d3449!important;color:#fff!important;outline:3px solid rgba(184,135,77,.28);outline-offset:2px}
.hero:before{background-image:linear-gradient(90deg,rgba(4,14,21,.84) 0%,rgba(4,14,21,.48) 42%,rgba(4,14,21,.18) 100%),linear-gradient(180deg,rgba(4,14,21,.10),rgba(4,14,21,.72)),image-set(url('assets/mystic-river-hero-1600.webp') type('image/webp'),url('assets/mystic-river-hero-1600.jpg') type('image/jpeg'));background-position:center 62%;filter:saturate(1.02) contrast(1.04)}
.page-hero:before{background-image:linear-gradient(90deg,rgba(4,14,21,.84),rgba(4,14,21,.38)),image-set(url('assets/mystic-river-hero-1600.webp') type('image/webp'),url('assets/mystic-river-hero-1600.jpg') type('image/jpeg'));background-position:center 62%;filter:saturate(1.02) contrast(1.04)}
.location-hero-image{object-position:center 62%;background:#0b2432}
.form input,.form textarea,.form select{font-size:18px;line-height:1.45;min-height:52px;overflow:visible}.form textarea{min-height:190px}.form input::placeholder,.form textarea::placeholder{color:#777;opacity:.78}.form button:disabled,.button:disabled,button:disabled{opacity:.72;cursor:wait;transform:none;box-shadow:none}.success,.notice,.error,.warning{font-size:17px;line-height:1.45}.table td{font-size:16px}.table input[type="number"]{min-height:36px;padding:4px 6px}.site-header{box-shadow:0 2px 18px rgba(7,23,34,.06)}
@media(max-width:880px){.nav-cta{padding:11px 15px}.hero:before,.page-hero:before{background-position:center 66%}.location-hero-image{height:300px}}
@media(max-width:520px){.form input,.form textarea,.form select{font-size:16px}.location-hero-image{height:240px}.nav{padding:12px 16px}.brand span{font-size:10px}.nav-cta{font-size:13px}}

/* v3.4 public map, support, admin media system */
.nav-links a[href="index.html"]{font-weight:900}.map-intro{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;margin-bottom:22px}.map-legend{display:flex;gap:12px;flex-wrap:wrap;background:#fff8ec;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-weight:800}.pin{width:13px;height:13px;border-radius:50%;display:inline-block;margin-right:6px;background:var(--gold);vertical-align:-1px}.pin.active{background:#0d5d48}.pin.paused{background:#a65b38}.pin.planned{background:#b8874d}.map-shell{display:grid;grid-template-columns:1fr 340px;min-height:620px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff8ec}.map-shell #map{height:620px}.map-detail{padding:26px;background:linear-gradient(180deg,#fffaf2,#f3e8d4);border-left:1px solid var(--line)}.map-detail h3{font-size:32px;margin:12px 0}.question-card{background:#fff;border-left:5px solid var(--gold);padding:16px;border-radius:16px;font-family:Georgia,serif;font-size:21px;line-height:1.3;margin:18px 0}.map-actions{display:flex;gap:10px;flex-wrap:wrap}.memory-marker{background:transparent;border:0}.memory-marker span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#09202f;color:#fff;border:3px solid #f6efe2;box-shadow:0 8px 26px rgba(7,23,34,.35);font-weight:900}.memory-marker.paused span{background:#9a4d28}.memory-marker.planned span{background:#b8874d}.map-tiles{filter:saturate(.85) contrast(.96)}.search-box{min-width:280px;padding:14px 16px;border:1px solid var(--line);border-radius:999px;background:#fff;font:inherit}.location-tile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.location-tile{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:stretch;background:#fffaf2;border:1px solid var(--line);border-radius:24px;overflow:hidden;text-decoration:none;box-shadow:0 12px 36px rgba(7,23,34,.08);transition:.18s}.location-tile:hover,.location-tile.selected{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--gold)}.location-tile img{height:100%;min-height:210px;width:100%;object-fit:cover;object-position:center 62%}.location-tile>div{padding:19px}.location-tile h3{font-size:30px;margin:9px 0}.location-tile p{margin:0 0 12px;color:#384d59}.location-tile blockquote{margin:14px 0 0;padding-left:14px;border-left:4px solid var(--gold);font-family:Georgia,serif;font-size:20px;line-height:1.28}.tile-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.support-grid h3{font-size:28px}.impact-stack{display:grid;gap:14px}.impact-card{background:#fffaf2;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 12px 38px rgba(7,23,34,.08)}.impact-card strong{display:block;font-family:Georgia,serif;font-size:42px;line-height:1;color:var(--ink)}.impact-card span{display:block;margin-top:8px;color:#394c56}.dropzone{position:relative;border:2px dashed #cdbb99;border-radius:20px;padding:22px;background:#fff;display:grid;gap:6px;text-align:center;cursor:pointer}.dropzone.drag{background:#fff4d8;border-color:var(--gold)}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.media-grid.compact{grid-template-columns:repeat(3,1fr);margin:12px 0 18px}.mini-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.location-admin-list{display:grid;gap:14px}.location-admin-card{display:grid;grid-template-columns:150px 1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px}.location-admin-card img{width:150px;height:110px;object-fit:cover;border-radius:14px}.location-admin-card h3{margin:4px 0;font-size:24px}.location-admin-card p{margin:0 0 8px}.location-editor{margin-bottom:20px;background:#fffdf8}.muted{color:#5e6a70}@media(max-width:980px){.map-shell{grid-template-columns:1fr}.map-detail{border-left:0;border-top:1px solid var(--line)}.location-tile-grid{grid-template-columns:1fr}.support-grid{grid-template-columns:1fr}.map-intro{grid-template-columns:1fr}.map-shell #map{height:480px}.media-grid.compact{grid-template-columns:1fr 1fr}.location-admin-card{grid-template-columns:120px 1fr}.location-admin-card button{grid-column:1/-1}.location-admin-card img{width:120px;height:92px}}@media(max-width:620px){.location-tile{grid-template-columns:1fr}.location-tile img{height:210px}.map-shell #map{height:420px}.search-box{width:100%;min-width:0}.toolbar{align-items:stretch}.media-grid.compact{grid-template-columns:1fr}.map-legend{border-radius:18px}.location-admin-card{grid-template-columns:1fr}.location-admin-card img{width:100%;height:170px}}


/* v3.5 polish: public galleries, QR tools, and admin media controls */
.location-gallery h2{margin-top:0}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:16px}
.gallery-item{margin:0;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fffdf8}
.gallery-item img{width:100%;height:220px;object-fit:cover;display:block;background:#eadfcb}
.gallery-item figcaption{padding:12px 14px;font-size:.95rem;color:var(--ink)}
.gallery-item figcaption span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;color:var(--rust);font-weight:800;margin-bottom:4px}
.media-player{padding:16px}
.media-player audio,.media-player video{width:100%;margin-top:10px;border-radius:12px}
.loading-image{background:linear-gradient(110deg,#e8decc,#f8f1e6,#e8decc);min-height:300px}
.admin-note{border:1px dashed var(--line);background:#fffdf8;border-radius:20px;padding:16px;margin-bottom:18px}
.qr-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px}
#qr-canvas{width:160px!important;height:160px!important;background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px}
#admin-map{height:280px;border-radius:22px;border:1px solid var(--line);overflow:hidden;margin-top:12px}
.map-tools{border:1px solid var(--line);border-radius:22px;padding:14px;margin:14px 0;background:#fffdf8}
.media-item.is-hero,.media-item.is-card{box-shadow:0 0 0 3px rgba(139,90,43,.18)}
.mini-form{display:grid;gap:8px;margin-top:10px}
.mini-form label{font-size:.85rem}
.mini-form input,.mini-form select{font-size:.95rem;padding:8px 10px;border-radius:12px}
.media-grid.compact{grid-template-columns:repeat(auto-fit,minmax(180px,260px))}
.location-hero-image{background:#e8decc}
.home-link-emphasis{font-weight:800}
@media(max-width:760px){
  .gallery-grid{grid-template-columns:1fr}
  .gallery-item img{height:260px}
  #admin-map{height:240px}
  .qr-tools{align-items:flex-start}
}

/* v3.0 final audit fixes: admin media, QR, responsive forms */
.form input,.form textarea,.form select{max-width:100%;text-overflow:ellipsis;line-height:1.35}
.form input::placeholder,.form textarea::placeholder{font-size:.92em;line-height:1.3;white-space:normal}
.two-col{align-items:start}.check{align-items:center}.check input{flex:0 0 auto;width:18px!important;height:18px!important;min-height:18px!important;margin:0 12px 0 0}.check{font-size:1.02rem;line-height:1.35}
.media-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-items:start}.media-grid.compact{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:start}.media-item{display:flex;flex-direction:column;min-width:0;box-shadow:0 10px 30px rgba(7,23,34,.06)}.media-item img{width:100%;height:220px;object-fit:cover;background:#ede4d4}.media-item .media-body{padding:14px;display:grid;gap:9px}.media-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.media-title-row .tag{font-size:10px;text-align:right}.media-badges{display:flex;gap:6px;flex-wrap:wrap}.media-preview{min-height:160px;display:grid;place-items:center;background:#fff8ec;padding:12px}.media-preview audio,.media-preview video{width:100%}.media-item.is-card{outline:3px solid rgba(29,111,72,.28)}.media-item.is-hero{outline:3px solid rgba(9,32,47,.35)}.mini-form{display:grid;grid-template-columns:1fr;gap:8px}.mini-form input,.mini-form select{width:100%;min-height:40px;font-size:15px}.mini-actions{display:flex;gap:8px;flex-wrap:wrap}.mini-actions .button:not(.secondary):not(.ghost){background:var(--ink);color:#fff}.mini-actions .button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}
.location-editor code{display:block;white-space:normal;overflow-wrap:anywhere;font-size:16px}.qr-tools canvas{display:block}.admin-note strong{font-size:20px}.dropzone{min-height:108px;align-content:center}.dropzone input[type=file]{font-size:0}.location-admin-card img{background:#eadfcb}.location-card img,.location-tile img{background:#eadfcb}.gallery-grid{align-items:start}.gallery-item img{object-position:center}.page-hero .eyebrow,.hero .eyebrow{color:#e9cc9b}.home-link-emphasis{font-weight:900}
@media(max-width:760px){.form input::placeholder,.form textarea::placeholder{font-size:.82em}.two-col{gap:12px}.admin-shell{gap:14px}.admin-nav{position:relative}.media-grid,.media-grid.compact{grid-template-columns:1fr}.media-item img{height:260px}.location-editor{padding:18px}.qr-tools{gap:10px}.check{font-size:.98rem}.section-title{font-size:clamp(40px,11vw,62px)}}
