:root{--ink:#22301f;--paper:#faf6ee;--accent:#b3541e;--accent2:#2e5e4e;--card:#fff;--muted:#6b7263}
*{box-sizing:border-box}body{margin:0;font-family:Georgia,'Times New Roman',serif;background:var(--paper);color:var(--ink);line-height:1.55}
header{background:var(--accent2);color:#fff;padding:2.2rem 1rem 1.6rem;text-align:center}
header .series{letter-spacing:.18em;text-transform:uppercase;font-size:.78rem;opacity:.85}
header h1{margin:.4rem 0 .3rem;font-size:2rem;line-height:1.2}
header p{margin:.2rem auto;max-width:40rem;opacity:.92}
main{max-width:56rem;margin:0 auto;padding:1.2rem 1rem 3rem}
.card{background:var(--card);border:1px solid #e3dcc9;border-radius:10px;padding:1.2rem 1.3rem;margin:1rem 0;box-shadow:0 1px 3px rgba(34,48,31,.06)}
.counts{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:1rem 0}
.counts span{background:var(--accent2);color:#fff;border-radius:999px;padding:.35rem .9rem;font-size:.92rem}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;padding:.7rem 1.4rem;border-radius:8px;font-weight:bold;border:0;cursor:pointer;font-size:1rem}
.btn.secondary{background:var(--accent2)}
.btn.ghost{background:transparent;color:var(--accent2);border:2px solid var(--accent2)}
.center{text-align:center}.muted{color:var(--muted)}small{color:var(--muted)}
blockquote{border-left:4px solid var(--accent);margin:1rem 0;padding:.4rem 1rem;font-style:italic;background:#f3eddc}
.locked{filter:none;background:repeating-linear-gradient(45deg,#efe9d8,#efe9d8 10px,#e9e1cb 10px,#e9e1cb 20px);border-radius:8px;padding:1rem;text-align:center;color:var(--muted)}
label{display:block;font-weight:bold;margin:.8rem 0 .3rem}
input[type=text],input[type=email]{width:100%;padding:.7rem;border:1px solid #c9c2ab;border-radius:8px;font-size:1.05rem}
.err{color:#a11;font-weight:bold}.ok{color:var(--accent2);font-weight:bold}
.filters{display:flex;flex-wrap:wrap;gap:.45rem;margin:.8rem 0}
.filters button{border:2px solid var(--accent2);background:#fff;color:var(--accent2);border-radius:999px;padding:.3rem .85rem;cursor:pointer;font-size:.92rem}
.filters button.active{background:var(--accent2);color:#fff}
.point h3{margin:.2rem 0}.point .conf{display:inline-block;background:#e8f0e9;color:var(--accent2);border-radius:6px;padding:.1rem .55rem;font-size:.82rem;font-weight:bold}
.point .cats{font-size:.85rem;color:var(--muted)}
#map{height:380px;border-radius:10px;border:1px solid #d8d0ba}
.routes a{margin:.25rem .25rem .25rem 0}
details.card summary{cursor:pointer;font-size:1.12rem;font-weight:bold}
footer{text-align:center;color:var(--muted);padding:1.5rem 1rem 2.5rem;font-size:.9rem}
@media(max-width:600px){header h1{font-size:1.55rem}#map{height:300px}}
