@font-face{font-family:"Fell";src:url(fonts/IMFeENrm28P.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Fell";font-style:italic;src:url(fonts/IMFeENit28P.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Fell SC";src:url(fonts/IMFeENsc28P.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Apple Hand";src:url(fonts/HomemadeApple-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"Cedar Hand";src:url(fonts/Cedarville-Cursive.ttf) format("truetype");font-display:swap}
:root{--paper:#e3d3ac;--paper-2:#d6c293;--sheet:#ede1c3;--ink:#2a2016;--ink-2:#5b4630;--oxblood:#7a1f14;--slate:#41606d;--rule:#8a6f4c;
--body:"Fell",Georgia,"Times New Roman",serif;--sc:"Fell SC",Georgia,serif;--hand:"Apple Hand",cursive;--cursive:"Cedar Hand",cursive;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--paper:#1d1812;--paper-2:#28211a;--sheet:#241e17;--ink:#e9dcc0;--ink-2:#c3ad8a;--oxblood:#d07a62;--slate:#8fb3c2;--rule:#7d6748;color-scheme:dark}}
*{box-sizing:border-box}
html{scroll-padding-top:4rem}
body{margin:0;background:var(--paper) radial-gradient(ellipse at 50% 0%,rgba(255,250,235,.35),transparent 70%) fixed;color:var(--ink);font-family:var(--body);font-size:1.125rem;line-height:1.6}
a{color:var(--oxblood)} a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--slate);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--sheet);padding:.5rem 1rem;z-index:2000}
.top{position:sticky;top:0;z-index:1000;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:baseline;justify-content:space-between;padding:.7rem clamp(1rem,4vw,2.5rem);background:var(--paper-2);border-bottom:1px solid var(--rule)}
.brand{font-family:var(--sc);font-size:1.35rem;color:var(--ink);text-decoration:none;letter-spacing:.01em}
.brand-small{font-family:var(--body);font-style:italic;font-size:.95rem;color:var(--ink-2)}
.top nav{display:flex;gap:1.1rem;flex-wrap:wrap}
.top nav a{color:var(--ink-2);text-decoration:none;font-size:1rem}
.top nav a[aria-current=page],.top nav a:hover{color:var(--oxblood);text-decoration:underline;text-underline-offset:4px}
/* JOURNEY */
.journey{position:relative;height:calc(100vh - 3.4rem);min-height:560px;border-bottom:1px solid var(--rule)}
.map{background:#cdbf9e}
#journey-map{position:absolute;inset:0}
.leaflet-tile-pane{filter:sepia(.55) saturate(.8) contrast(.92) brightness(1.02)}
@media (prefers-color-scheme:dark){.leaflet-tile-pane{filter:sepia(.6) saturate(.6) brightness(.55) contrast(1.1)}}
.leaflet-container{font-family:var(--body)}
.ledger{position:absolute;top:1.2rem;left:1.2rem;bottom:1.2rem;width:min(380px,calc(100% - 2.4rem));overflow:auto;z-index:500;background:var(--sheet);border:1px solid var(--rule);box-shadow:4px 6px 0 rgba(42,32,22,.18);padding:1.3rem 1.4rem 1.1rem}
.ledger-title{font-family:var(--sc);font-weight:400;font-size:1.75rem;line-height:1.1;margin:0}
.ledger-sub{font-style:italic;color:var(--ink-2);margin:.3rem 0 1rem;font-size:1rem}
.ledger-step{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.8rem 0;margin-bottom:.9rem;min-height:9.5rem}
.step-count{margin:0;color:var(--ink-2);font-size:.95rem}
.step-title{font-family:var(--sc);font-weight:400;font-size:1.45rem;margin:.1rem 0 0}
.step-dates{font-family:var(--hand);word-spacing:.35em;font-size:.9rem;margin:.35rem 0 .6rem;color:var(--ink)}
.step-places{list-style:none;padding:0;margin:0;font-size:.95rem;line-height:1.35}
.step-places li{margin:.35rem 0}
.step-places .j{font-style:italic}
.step-places .m{display:block;color:var(--ink-2);font-size:.88rem}
.tally{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.4rem .8rem;margin:0 0 1rem}
.tally div{margin:0}
.tally dt{font-size:.85rem;color:var(--ink-2)}
.tally dd{margin:0;font-family:var(--hand);font-size:1.15rem;color:var(--oxblood);white-space:nowrap}
.tally .tally-reg{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-top:1px dotted var(--rule);padding-top:.4rem}
.tally .tally-reg dd{font-size:.95rem;color:var(--ink-2)}
.controls{display:flex;gap:.5rem}
button{font:inherit;font-size:1rem;cursor:pointer;border:1px solid var(--ink-2);background:transparent;color:var(--ink);padding:.45rem .8rem;border-radius:2px}
button:hover{background:rgba(122,31,20,.08)}
button.primary{background:var(--oxblood);border-color:var(--oxblood);color:#f4ead2;flex:1}
@media (prefers-color-scheme:dark){button.primary{color:#1d1812}}
.read-link{display:inline-block;margin-top:.8rem}
.legend{font-size:.82rem;color:var(--ink-2);margin:.9rem 0 0;line-height:1.9}
.lg{display:inline-block;width:26px;height:0;vertical-align:middle;margin:0 .3rem 0 .5rem;border-top:3px solid var(--oxblood)}
.lg.foot{margin-left:0}.lg.rail{border-top:3px dashed var(--ink)}.lg.water{border-top:3px dotted var(--slate)}.lg.reg{border-top:2px dotted var(--oxblood);opacity:.7}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--sheet);color:var(--ink);border-radius:2px;box-shadow:3px 4px 0 rgba(42,32,22,.2)}
.pop-j{font-style:italic;font-size:1.05rem;display:block}
.pop-m{display:block;color:var(--ink-2);font-size:.9rem;margin-top:.2rem}
.pop-w{display:block;font-family:var(--hand);font-size:.78rem;margin-top:.45rem}
@media (max-width:760px){
 .journey{height:auto;min-height:0}
 #journey-map{position:relative;height:58vh}
 .ledger{position:relative;inset:auto;width:auto;box-shadow:none;border-left:0;border-right:0}
}
/* PROSE */
.prose{max-width:40rem;margin:0 auto;padding:3rem 1.25rem}
.prose.wide{max-width:60rem}
.prose h1,.prose h2{font-family:var(--sc);font-weight:400;font-size:2.1rem;line-height:1.15;margin:0 0 1rem}
.prose h3{font-family:var(--sc);font-weight:400;font-size:1.4rem;margin:2.2rem 0 .8rem}
.intro p{text-indent:1.5em;margin:0 0 .4rem}
.fathers{list-style:none;padding:0;margin:0 0 1rem;border-left:2px solid var(--oxblood);padding-left:1.2rem}
.fathers li{margin:.45rem 0}
.fn{font-variant:small-caps;font-family:var(--sc)} .fr{color:var(--ink-2);font-style:italic}
.sig{font-family:var(--hand);text-align:right;font-size:1rem;margin-top:1.4rem}
.muted{color:var(--ink-2)}
.chapter-list{list-style:none;counter-reset:ch;padding:0;margin:1.5rem 0}
.chapter-list li{counter-increment:ch;border-top:1px solid var(--rule)}
.chapter-list li:last-child{border-bottom:1px solid var(--rule)}
.chapter-list a{display:grid;grid-template-columns:2.4rem 1fr auto;grid-template-areas:"n t m" "n d m";gap:0 1rem;padding:.75rem .2rem;text-decoration:none;color:var(--ink)}
.chapter-list a::before{content:counter(ch);grid-area:n;font-family:var(--hand);font-size:1rem;color:var(--oxblood);padding-top:.15rem}
.chapter-list a:hover{background:rgba(122,31,20,.06)}
.cl-t{grid-area:t;font-family:var(--sc);font-size:1.2rem}.cl-d{grid-area:d;font-style:italic;color:var(--ink-2);font-size:.95rem}.cl-m{grid-area:m;align-self:center;font-size:.88rem;color:var(--ink-2);text-align:right}
@media (max-width:520px){.chapter-list a{grid-template-columns:2rem 1fr;grid-template-areas:"n t" "n d" "n m"}.cl-m{text-align:left}}
/* CHAPTER */
.chapter{max-width:72rem;margin:0 auto;padding:2.5rem clamp(1rem,4vw,2.5rem) 3rem}
.ch-head{text-align:center;margin-bottom:2.2rem;border-bottom:1px solid var(--rule);padding-bottom:1.5rem}
.ch-num{margin:0;color:var(--ink-2);font-style:italic}
.ch-head h1{font-family:var(--sc);font-weight:400;font-size:clamp(2.2rem,6vw,3.6rem);line-height:1.05;margin:.2rem 0 .3rem}
.ch-dates{font-family:var(--hand);word-spacing:.35em;margin:.2rem 0 1rem}
.ch-grid{display:grid;grid-template-columns:minmax(18rem,24rem) minmax(0,40rem);gap:3rem;justify-content:center}
.ch-side{position:sticky;top:4.5rem;align-self:start}
.map.small{height:340px;border:1px solid var(--rule);box-shadow:3px 4px 0 rgba(42,32,22,.15)}
.ch-miles{margin:.9rem 0 .2rem;font-size:1rem}
.ch-run{margin:0 0 1rem;color:var(--ink-2);font-size:.92rem}
.places{width:100%;border-collapse:collapse;font-size:.9rem;line-height:1.35}
.places caption{text-align:left;font-family:var(--sc);font-size:1.05rem;margin-bottom:.3rem}
.places th,.places td{text-align:left;vertical-align:top;padding:.4rem .3rem;border-top:1px solid var(--rule)}
.places thead th{font-weight:400;color:var(--ink-2);font-size:.82rem;border-top:0}
.places tbody th{font-weight:400;font-style:italic}
.places td{color:var(--ink-2)}
.ch-text .place{font-family:var(--body);font-style:italic;font-weight:400;font-size:1.3rem;text-align:center;margin:2.6rem 0 .1rem;color:var(--ink-2)}
.ch-text .place:first-child{margin-top:0}
.ch-text .date{font-family:var(--hand);word-spacing:.3em;text-align:center;margin:.1rem 0 1.1rem;font-size:.95rem}
.entry{margin:0 0 .5rem;text-indent:1.4em;font-size:1.18rem;line-height:1.65}
body.hand .entry{font-family:var(--cursive);font-size:1.45rem;line-height:1.55;text-indent:1.2em}
body.hand .entry.mary{font-family:var(--hand);font-size:1.05rem;line-height:1.9}
.meh{font-family:var(--hand);font-size:.95rem;text-align:center;margin:1.6rem 1rem;line-height:1.9;color:var(--ink-2)}
.ch-text .sig{margin-top:.6rem}
.note{margin:1.6rem 0 1.4rem;padding:.2rem 0 .2rem 1rem;border-left:3px solid var(--oxblood);font-size:.98rem;line-height:1.55}
.note-h{font-family:var(--sc);color:var(--oxblood);margin:0 0 .2rem;font-size:1.05rem}
.note p{margin:0}
.hand-toggle{font-size:.95rem}
.bookmaps{margin-top:2.5rem;border-top:1px solid var(--rule);padding-top:1rem}
.bookmaps summary{cursor:pointer;font-family:var(--sc);font-size:1.15rem}
.bookmap,.record{margin:1.2rem 0}
.bookmap img,.record img{width:100%;height:auto;display:block;border:1px solid var(--rule)}
figcaption{font-style:italic;color:var(--ink-2);font-size:.92rem;margin-top:.4rem}
.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;border-top:1px solid var(--rule);padding-top:1.2rem}
.pager a{text-decoration:none;font-family:var(--sc);font-size:1.15rem;max-width:48%}
.pager a span{display:block;font-family:var(--body);font-style:italic;font-size:.9rem;color:var(--ink-2)}
.pager .nx{text-align:right;margin-left:auto}
@media (max-width:900px){.ch-grid{grid-template-columns:1fr;gap:1.5rem}.ch-side{position:static}}
.rests .rest-p{font-style:italic}
.marker{font-family:var(--sc);text-align:center;font-size:1.35rem;margin:1.5rem 0}
.table-wrap{overflow-x:auto}
.records{border-collapse:collapse;font-size:.95rem;line-height:1.4;width:100%}
.records th,.records td{border:1px solid var(--rule);padding:.5rem;vertical-align:top;text-align:left}
.records thead th{font-family:var(--sc);font-weight:400;background:rgba(122,31,20,.07)}
.sources li{margin:.6rem 0;overflow-wrap:anywhere}
.foot{border-top:1px solid var(--rule);padding:1.5rem clamp(1rem,4vw,2.5rem);font-size:.9rem;color:var(--ink-2);text-align:center}
.foot p{margin:.3rem auto;max-width:44rem}
.nowrap{white-space:nowrap}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
