/* Prescott Post Digital Companion — phone first, bright sun. Tokens from the design canvas. */
:root { --ink:#16181B; --muted:#4A4F55; --paper:#fff; --bg:#E9EBEE; --rule:#D8DBDF; --panel:#F2F3F5;
        --navy:#1E3A66; --navy-dark:#122744; --ident:#6F7F99; --stone:#C3C8CE; --dash:#7A8088;
        --monument:#E08A1E; --gold:#C9A227; --todo:#ffe66d;
        --sans:"Public Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
        --serif:"Source Serif 4", Georgia, "Times New Roman", serif; }
* { box-sizing:border-box; }
html { font-size:112.5%; -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); line-height:1.5; }
.column { max-width:520px; margin:0 auto; background:var(--paper); min-height:100vh; box-shadow:0 0 0 1px var(--rule); }
a { color:var(--navy); }
a:hover { color:var(--navy-dark); }
main { padding:0 20px 2rem; }
header.site { display:flex; align-items:center; justify-content:space-between; padding:18px 20px 14px; border-bottom:1px solid var(--rule); }
header.site .home { font-weight:700; font-size:.82rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink); text-decoration:none; }
header.site .maplink { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:1.05rem; text-decoration:none; }
footer.site { padding:1.2rem 20px 2rem; border-top:1px solid var(--rule); font-size:.85rem; color:var(--muted); }
footer.site a { color:var(--navy); }
footer.site .org { margin-top:.9rem; padding-top:.7rem; border-top:1px solid var(--rule); }
.banner { background:var(--todo); color:var(--ink); font-size:.8rem; padding:.4rem 20px; }

h1 { font-family:var(--serif); font-weight:700; font-size:2.15rem; line-height:1.1; letter-spacing:.01em; margin:.5rem 0 .6rem; }
h2 { font-family:var(--serif); font-weight:700; font-size:1.5rem; line-height:1.2; margin:2rem 0 .6rem; padding-bottom:.3rem; border-bottom:2px solid var(--ink); }
h3 { font-family:var(--sans); font-weight:700; font-size:1.05rem; margin:1.4rem 0 .4rem; }
p { margin:.6rem 0; }
p.lede { font-size:1.15rem; line-height:1.4; margin:0 0 1rem; }
p.gridline { display:flex; align-items:center; gap:12px; margin:1.3rem 0 .2rem; color:var(--muted); font-size:1.05rem; }
.chip { display:inline-block; background:var(--ink); color:#fff; font-weight:800; font-size:1.05rem; padding:.35rem .9rem; border-radius:8px; letter-spacing:.02em; }
code { font-family:ui-monospace, Menlo, monospace; font-size:.9em; }
mark.todo { background:var(--todo); padding:0 .15em; }
img { max-width:100%; height:auto; }

/* research-status bar */
.progress { margin:1rem 0 1.2rem; }
.progress .segs { display:flex; gap:6px; }
.progress .seg { flex:1 1 0; height:9px; border-radius:5px; background:var(--rule); }
.progress .seg.on { background:var(--navy); }
.progress .labs { display:flex; gap:6px; margin-top:.35rem; font-size:.9rem; color:var(--muted); }
.progress .labs span { flex:1 1 0; }
.progress .labs span:nth-child(2) { text-align:left; }
.progress .labs .cur { color:var(--navy); font-weight:700; }
.progress .cap { margin:.5rem 0 0; color:var(--muted); font-size:.95rem; }

/* pill navigation */
nav.jump { display:flex; flex-wrap:wrap; gap:10px; margin:.2rem 0 1.4rem; }
nav.jump a { display:inline-block; background:var(--panel); color:var(--navy); font-weight:600; font-size:1.05rem;
             padding:.6rem 1.1rem; border-radius:999px; text-decoration:none; white-space:nowrap; }

/* the stone card */
section.stone { border:1px solid var(--rule); border-radius:14px; overflow:hidden; margin:0 0 1.6rem; background:var(--paper); }
section.stone .hero { display:block; width:100%; height:300px; object-fit:cover; object-position:center 45%; }
section.stone .nophoto { display:flex; align-items:center; justify-content:center; min-height:120px; background:var(--panel); color:var(--muted); font-style:italic; }
section.stone .stone-body { padding:14px 18px 12px; }
.eyebrow { font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:0 0 .4rem; }
p.carved { font-family:var(--serif); font-weight:700; font-size:1.3rem; line-height:1.35; margin:0 0 .6rem; }
section.stone .stone-body p:last-child { margin-bottom:0; }
section.stone .stone-body p:not(.carved):not(.eyebrow) { font-size:.98rem; color:var(--ink); }

/* records */
ul.records { list-style:none; padding:0; }
ul.records li.record { margin:0 0 1.2rem; }
ul.records li.missing { margin:.4rem 0; }
ul.records .path { font-family:ui-monospace, Menlo, monospace; font-size:.85em; }
ul.records .note { font-style:italic; }
figure { margin:.6rem 0 1rem; }
figure img { width:100%; height:auto; border:1px solid var(--rule); border-radius:8px; display:block; }
figcaption { font-size:.9rem; margin-top:.35rem; color:var(--muted); }
p.doc { font-size:.95rem; }
ol.sources { padding-left:1.4rem; font-size:.95rem; }
ol.sources li { margin:.5rem 0; }
a.cite { text-decoration:none; font-weight:700; padding:0 1px; }
ul.cols { columns:2 14rem; padding-left:1.2rem; }
ul.cols li { break-inside:avoid; }
section.help { margin:1.6rem 0; padding:1rem 1.1rem; border:1px solid var(--rule); border-radius:14px; background:var(--panel); }
section.help h2 { margin-top:0; border:0; padding:0; font-size:1.35rem; }
a.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.6rem 1.1rem; border-radius:10px;
           background:var(--navy); color:#fff; text-decoration:none; font-weight:700; }
a.button:hover { background:var(--navy-dark); color:#fff; }

/* map page */
.lotmap { background:var(--panel); border-radius:14px; padding:14px 12px 10px; margin:1rem 0 .8rem; }
.lotmap .compass { display:flex; justify-content:space-between; font-size:.9rem; color:var(--muted); margin:0 2px 8px 24px; }
.lotmap .compass b { font-weight:600; color:var(--ink); }
.maprow { display:flex; align-items:center; gap:8px; padding:3px 2px; border-radius:6px; }
.maprow.on { background:#fff; box-shadow:inset 0 0 0 2px var(--navy); }
.maprow .maplabel { width:14px; text-align:center; font-size:.8rem; font-weight:600; color:var(--muted); }
.maprow.on .maplabel { color:var(--navy); font-weight:800; }
.maprow .cells { display:flex; gap:2px; align-items:flex-end; }
.cell { display:block; width:11px; height:17px; border-radius:5px 5px 2px 2px; background:var(--stone); }
.cell.i { background:var(--ident); } .cell.d { background:var(--navy); } .cell.c { background:var(--ink); box-shadow:0 0 0 2px var(--gold); }
.cell.e { background:transparent; border:1.5px dashed var(--dash); }
.cell.f { width:11px; height:11px; border-radius:50%; border:2px solid var(--ink); background:#fff; }
.cell.m { background:var(--monument); border-radius:2px; } .cell.gap { background:transparent; }
.lotmap .note { font-size:.9rem; color:var(--muted); margin:.6rem 2px 0; }
.legend { display:flex; flex-wrap:wrap; gap:.5rem 1.1rem; font-size:.95rem; margin:.6rem 0 1.4rem; }
.legend span { display:inline-flex; align-items:center; gap:6px; }
.chooser { margin:1.2rem 0 .4rem; }
.chooser .eyebrow { margin-bottom:.5rem; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chips button { height:44px; min-width:44px; padding:0 .8rem; border-radius:10px; font:700 1.05rem var(--sans); cursor:pointer;
                border:2px solid var(--stone); background:#fff; color:var(--ink); }
.chips button[aria-pressed="true"] { background:var(--navy); color:#fff; border-color:var(--navy); }
.rowlist .rowhead { display:flex; align-items:baseline; justify-content:space-between; padding:1.2rem 0 .5rem; border-bottom:2px solid var(--ink); }
.rowlist .rowhead h2 { margin:0; border:0; padding:0; font-size:1.5rem; }
.rowlist .rowhead span { font-size:.9rem; color:var(--muted); }
.place { display:flex; align-items:center; gap:14px; min-height:60px; padding:8px 0; border-bottom:1px solid var(--rule); color:var(--ink); text-decoration:none; }
.place .code { flex:0 0 44px; font-weight:700; color:var(--muted); }
.place.linked .code { color:var(--navy); }
.place .what { flex:1 1 auto; display:flex; flex-direction:column; gap:2px; }
.place .name { font-weight:600; }
.place .name.unnamed { font-weight:400; font-style:italic; color:var(--muted); }
.place .st { font-size:.85rem; color:var(--muted); }
.place svg { flex:0 0 auto; }
.essay h2 { margin-top:2rem; }
