:root{--ink:#1d1d1f;--muted:#666;--bg:#faf8f4;--accent:#9b1c1c;--card:#fff;--line:#e5e0d6}
*{box-sizing:border-box}body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent)}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.2}
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;background:#1f1a17;color:#fff;position:sticky;top:0;z-index:1000;flex-wrap:wrap}
.top a{color:#fff;text-decoration:none}.brand{font-weight:700;font-family:Georgia,serif;font-size:1.15rem}.top nav a{margin-left:1rem;opacity:.85}.top nav a:hover{opacity:1}
.wrap{max-width:1100px;margin:0 auto;padding:1rem}.prose{max-width:800px}
.home main{position:relative}.fullmap{height:calc(100vh - 52px);width:100%}
.panel{position:absolute;top:1rem;left:1rem;z-index:500;background:rgba(255,255,255,.96);padding:1rem 1.2rem;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.2);width:300px}
.panel h1{margin:.1rem 0 .4rem;font-size:1.4rem}.panel p{margin:.3rem 0 .6rem;font-size:.92rem}.panel label{display:block;font-size:.85rem;font-weight:600;margin:.5rem 0}
.panel select{width:100%;padding:.4rem;margin-top:.2rem;border:1px solid var(--line);border-radius:6px;font:inherit}
.muted{color:var(--muted)}.small{font-size:.85rem}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:.45rem .9rem;border-radius:8px;text-decoration:none;font-weight:600;margin:.2rem .3rem .2rem 0}.btn.ghost{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}
.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1.5rem}.bmap{height:420px;border-radius:12px;border:1px solid var(--line)}
.facts{width:100%;border-collapse:collapse;font-size:.93rem;background:var(--card)}.facts th,.facts td{padding:.45rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.facts th{width:38%}
.src{color:var(--muted);font-size:.75rem}.yr{color:var(--muted);font-weight:400}.crumbs{font-size:.85rem;color:var(--muted)}
.affs{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.aff{background:var(--card);border:2px dashed #94a3b8;border-radius:12px;padding:1rem}.aff h3{margin:.4rem 0}.aff .tag{background:#64748b}
.blist{list-style:none;padding:0;columns:2;gap:2rem}.blist li{break-inside:avoid;padding:.35rem 0;border-bottom:1px solid var(--line)}.blist a{text-decoration:none;color:var(--ink)}.blist span{color:var(--muted)}.blist small{display:block;color:var(--muted)}
.pn{display:flex;justify-content:space-between;gap:1rem;margin:2rem 0}
.foot{background:#1f1a17;color:#cfc8bd;font-size:.88rem;margin-top:2rem}.home .foot{margin-top:0}.foot a{color:#f3d9b1}.foot .cols{display:flex;gap:3rem;flex-wrap:wrap}.foot h4{color:#fff;margin:.5rem 0}.foot ul{list-style:none;padding:0;margin:0}.attr{font-size:.78rem;opacity:.85}
.leaflet-popup-content a{font-weight:600}
@media(max-width:760px){.grid,.affs{grid-template-columns:1fr}.blist{columns:1}.bmap{height:300px}
.panel{position:static;width:auto;border-radius:0;box-shadow:none}.fullmap{height:65vh}.top nav a{margin:0 1rem 0 0}}
.timeline{position:absolute;left:50%;transform:translateX(-50%);bottom:24px;z-index:600;width:min(720px,calc(100% - 340px));display:flex;gap:.8rem;align-items:center;background:rgba(31,26,23,.92);color:#fff;padding:.6rem 1rem;border-radius:14px;box-shadow:0 4px 20px rgba(0,0,0,.3)}
.timeline #tlPlay{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--accent);color:#fff;font-size:1.1rem;cursor:pointer}
.tlmid{flex:1;min-width:0}.tllabel{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tlRange{width:100%;height:32px;accent-color:#e8b77a;touch-action:pan-x;margin:0}
.tlends{display:flex;justify-content:space-between;font-size:.75rem;opacity:.8}.linkbtn{background:none;border:0;color:#f3d9b1;text-decoration:underline;cursor:pointer;font-size:.75rem;padding:4px 8px}
@media(max-width:760px){.timeline{position:static;transform:none;width:auto;border-radius:0;padding:.6rem .8rem}.fullmap{height:58vh}}
.bicon{display:flex;align-items:center;justify-content:center}.bicon span{display:flex;align-items:center;justify-content:center;flex:none;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.45);color:#fff;font-size:15px}
.bicon.cur span{outline:4px solid rgba(232,163,61,.7)}
.imgtip{padding:0;border-radius:10px;overflow:hidden;border:0;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.card{width:240px}.card img{display:block;width:240px;height:150px;object-fit:cover;background:#eee}.card .ct{padding:.4rem .6rem;white-space:normal;font-size:.85rem;line-height:1.35}
.leaflet-popup-content{margin:0;width:240px!important}.leaflet-popup-content-wrapper{padding:0;overflow:hidden}.plink{display:block;padding:0 .6rem .55rem;font-weight:600}
.legend{list-style:none;padding:0;margin:.4rem 0 .7rem;font-size:.8rem}.legend li{display:flex;align-items:center;gap:.4rem;padding:2px 0;cursor:pointer}.legend li.off{opacity:.35}.legend small{color:var(--muted);margin-left:auto}
.sw{width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #999;flex:none}
.hero{margin:.5rem 0 1rem}.hero img{width:100%;max-height:420px;object-fit:cover;border-radius:12px;display:block;background:#eee}.hero figcaption,.credit{font-size:.78rem;color:var(--muted)}
.locbox{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem 1rem;margin:1rem 0}
.blist small{font-size:.78rem}
@media(min-width:761px){.panel{max-height:calc(100vh - 80px);overflow:auto}}

@media(max-width:760px){.bicon span{border-width:1.5px}}
.bicon svg{width:62%;height:62%}

.panel{width:310px}.panel input{width:100%;padding:.4rem;margin-top:.2rem;border:1px solid var(--line);border-radius:6px;font:inherit}
.linkbtn.dark{color:var(--accent);font-size:.85rem;padding:4px 0}
.ptoggle{display:none}
.imap{height:380px;border-radius:12px;border:1px solid var(--line);margin:1rem 0}
.jump{font-size:.9rem}.eras{list-style:none;padding:0}.eras li{padding:.5rem 0;border-bottom:1px solid var(--line);display:flex;gap:.6rem;align-items:center}.eras a{display:flex;gap:.5rem;align-items:center;text-decoration:none;color:var(--ink)}.eras .sw{display:inline-block}
.clist{list-style:none;padding:0;columns:3;gap:1.5rem}.clist li{break-inside:avoid;padding:.2rem 0}.clist small{color:var(--muted)}
.near{padding-left:1.1rem}.cols2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.leaflet-container{background:#aad3df}
.bcanvas{pointer-events:none}
@media(max-width:760px){.clist{columns:2}.cols2{grid-template-columns:1fr}.ptoggle{display:block;width:100%;padding:.5rem;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-weight:600;margin-bottom:.4rem}.panel.closed #pBody{display:none}.top nav a{margin:0 .7rem 0 0;font-size:.92rem}.brand{font-size:1.05rem}}
@media(max-width:760px){.panel{width:auto}}
