
:root{--sand:#efe7d6;--paper:#faf7f0;--ink:#26231c;--muted:#6b6352;--olive:#4b5320;--olive2:#3a4019;--khaki:#c3b091;--rule:#d9cfba;--red:#a4161a;--grn:#1e6b35;--blk:#1a1a1a;--cham:#e3c98f}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px}
body{background:var(--paper);color:var(--ink);font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;line-height:1.72}
a{color:var(--olive);text-decoration:underline;text-decoration-color:var(--khaki);text-underline-offset:3px}
a:hover{text-decoration-color:var(--olive)}
.ribbon{height:10px;background:linear-gradient(90deg,var(--red) 0 11%,#fff 11% 15.5%,var(--grn) 15.5% 17.8%,#fff 17.8% 22.3%,var(--blk) 22.3% 33.6%,var(--cham) 33.6% 66.4%,var(--blk) 66.4% 77.7%,#fff 77.7% 82.2%,var(--grn) 82.2% 84.5%,#fff 84.5% 89%,var(--red) 89% 100%)}
.top{background:var(--olive2);color:var(--sand);padding:18px 28px 16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px}
.top a.brand{color:#f5efe0;text-decoration:none;font-family:"Courier New",Courier,monospace;font-weight:700;font-size:1.4rem;letter-spacing:.06em;text-transform:uppercase}
.top .sub{font-family:"Courier New",Courier,monospace;font-size:.82rem;letter-spacing:.08em;color:var(--khaki);text-transform:uppercase}
.wrap{display:grid;grid-template-columns:280px 1fr;min-height:80vh}
aside{background:var(--sand);border-right:1px solid var(--rule);padding:26px 22px 40px;font-size:.88rem;font-family:"Segoe UI",Roboto,Arial,sans-serif}
aside h4{font-family:"Courier New",Courier,monospace;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--olive);margin:20px 0 6px;border-bottom:1px solid var(--rule);padding-bottom:4px}
aside h4:first-child{margin-top:0}
aside a{display:block;color:var(--ink);text-decoration:none;padding:3px 0 3px 10px;border-left:3px solid transparent;line-height:1.35}
aside a:hover{color:var(--olive);border-left-color:var(--khaki)}
aside a.on{border-left-color:var(--olive);color:var(--olive);font-weight:600}
main{padding:34px 48px 70px;max-width:860px;min-width:0}
.crumb{font-family:"Courier New",Courier,monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
h1{font-family:"Segoe UI",Roboto,Arial,sans-serif;font-weight:800;font-size:2.1rem;line-height:1.18;color:var(--ink);margin-bottom:10px}
.lede{font-size:1.15rem;color:var(--muted);margin-bottom:22px;font-style:italic}
h2{font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:1.3rem;margin:36px 0 10px;color:var(--olive2);text-transform:none}
h3{font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:1.04rem;margin:22px 0 6px;color:var(--ink)}
p{margin:0 0 15px}
ul.bul,ol.num{margin:4px 0 18px 24px}
ul.bul li,ol.num li{margin:5px 0}
.callout{background:#fff;border:1px solid var(--rule);border-left:5px solid var(--olive);padding:14px 18px;margin:22px 0}
.fact{background:var(--olive2);color:#f2ecdc;padding:16px 20px;margin:22px 0;font-family:"Courier New",Courier,monospace;font-size:.88rem;line-height:1.6}
.fact strong{color:var(--cham)}
.tw{overflow-x:auto;margin:14px 0 22px}
table.t{border-collapse:collapse;width:100%;font-size:.92rem;background:#fff;font-family:"Segoe UI",Roboto,Arial,sans-serif}
table.t th{text-align:left;background:var(--sand);color:var(--ink);padding:9px 12px;border-bottom:2px solid var(--olive);font-weight:700}
table.t td{padding:9px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:18px 0 26px}
.tile{background:#fff;border:1px solid var(--rule);padding:16px}
.tile b{display:block;font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:1.6rem;color:var(--olive2);line-height:1.1}
.tile span{font-size:.85rem;color:var(--muted);font-family:"Segoe UI",Roboto,Arial,sans-serif}
.idx{columns:2;column-gap:28px;margin:10px 0 24px;font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:.95rem}
.idx a{display:block;break-inside:avoid;padding:4px 0}
.next{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--rule);margin-top:40px;padding-top:14px;font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:.9rem}
footer{background:var(--olive2);color:var(--khaki);padding:26px 28px 30px;font-size:.84rem;font-family:"Segoe UI",Roboto,Arial,sans-serif}
footer p{max-width:900px;margin:0 auto 8px}
footer a{color:#f2ecdc}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font:.82rem "Segoe UI",Roboto,Arial,sans-serif;color:var(--muted);margin:6px 0 12px}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px;flex:none;border:1px solid #fff;box-shadow:0 0 0 1px #0003}
main:has(.basemap){max-width:1240px}
.basemap{display:grid;grid-template-columns:1fr 340px;gap:0;border:1px solid var(--rule);background:#fff;margin:0 0 20px}
#map{height:640px;min-height:400px;z-index:0}
.blist{list-style:none;height:640px;overflow-y:auto;border-left:1px solid var(--rule);font:.8rem/1.3 "Segoe UI",Roboto,Arial,sans-serif;margin:0}
.blist li{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border-bottom:1px solid var(--rule);cursor:pointer;flex-wrap:wrap}
.blist li:hover{background:var(--sand)}.blist li.sel{background:#e9e3c9;box-shadow:inset 3px 0 0 var(--olive)}
.blist .dot{margin-top:3px}.blist .bn{flex:1;min-width:0}.blist i{color:var(--muted)}.blist small{color:var(--muted)}
.blist code{flex-basis:100%;padding-left:19px;font:.78rem "Courier New",Courier,monospace;color:var(--olive2)}
table.bt{min-width:960px}table.bt td{font-size:.84rem}
@media (max-width:1100px){.basemap{grid-template-columns:1fr}.blist{height:360px;border-left:0;border-top:1px solid var(--rule)}#map{height:460px}}
figure{margin:4px 0 26px}
figure img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover;background:var(--sand);border:1px solid var(--rule)}
figure.hero.tall img{object-fit:contain;max-height:560px}
figcaption{font:.8rem/1.45 "Segoe UI",Roboto,Arial,sans-serif;color:var(--muted);padding:7px 2px 0;border-bottom:1px solid var(--rule);padding-bottom:8px}
figcaption span{display:block;font-size:.72rem;color:#8b8371;margin-top:2px}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:12px 0 26px}
.gal figure{margin:0}.gal img{height:190px;object-fit:cover}
.pano{margin:12px 0 18px}.pano img{width:100%;height:auto;min-height:150px;object-fit:cover;display:block}
.badges{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-end;margin:6px 0 24px;font:.8rem "Segoe UI",Roboto,Arial,sans-serif;color:var(--muted)}
.badges figure{margin:0;text-align:center}.badges img{width:auto;height:70px;border:0;background:none;margin:0 auto}
.badges figcaption{border:0}
.infobox{display:grid;grid-template-columns:1fr 300px;gap:0;border:1px solid var(--rule);background:#fff;margin:0 0 22px}
.infobox table{border-collapse:collapse;font:.88rem "Segoe UI",Roboto,Arial,sans-serif;width:100%}
.infobox th{text-align:left;vertical-align:top;background:var(--sand);padding:8px 10px;width:150px;border-bottom:1px solid var(--rule);font-weight:700}
.infobox td{padding:8px 10px;border-bottom:1px solid var(--rule)}
.minimap{min-height:240px;border-left:1px solid var(--rule);z-index:0}
.locwrap{display:flex;flex-direction:column;border-left:1px solid var(--rule);min-width:0}.locwrap .minimap{border-left:0;border-top:1px solid var(--rule);flex:1}
.locator{margin:0;background:#fff}.locator svg{display:block;width:100%;height:auto}.locator figcaption{font:.74rem/1.35 "Segoe UI",Roboto,Arial,sans-serif;color:#6b6655;padding:5px 9px 7px}
.gsmap{display:flex;gap:14px;align-items:center;border:1px solid var(--rule);background:#fff;padding:12px 14px;margin:0 0 22px}.gsmap b{display:block}
.rollstats{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 14px;font:.85rem "Segoe UI",Roboto,Arial,sans-serif;color:var(--muted)}.rollstats span{background:#fff;border:1px solid var(--rule);padding:6px 12px}.rollstats b{color:var(--olive2);font-size:1.1rem;margin-right:4px}
h3.rollunit{border-left:4px solid var(--olive);padding-left:10px;margin-top:18px}h3.rollunit small{color:var(--muted);font-weight:400}table.roll{table-layout:fixed}table.roll th:nth-child(1){width:42%}table.roll th:nth-child(2){width:26%}table.roll td{word-wrap:break-word}
.backmap{font:.85rem "Segoe UI",Roboto,Arial,sans-serif;margin-bottom:14px}
.small{font-size:.9rem;color:var(--muted)}
table.ut td:nth-child(3){min-width:110px}
ol.src li{font-size:.85rem;word-break:break-word}
.blist a.more{flex-basis:100%;padding-left:19px;font-size:.76rem}
.board{margin:10px 0 30px;font-family:"Segoe UI",Roboto,Arial,sans-serif}
.bform{background:#fff;border:1px solid var(--rule);border-top:4px solid var(--olive);padding:16px;margin-bottom:16px}
.bform label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:10px}
.bform input,.bform textarea,.bform select{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid #c9bfa8;font:inherit;font-weight:400;font-size:.95rem;background:#fffdf8}
.brow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bform button{background:var(--olive);color:#fff;border:0;padding:9px 18px;font:600 .9rem "Segoe UI",Roboto,Arial,sans-serif;cursor:pointer}
.bform button:disabled{opacity:.6}
.bform label.rollchk{display:flex;gap:8px;align-items:flex-start;font-weight:600;background:#f4f1e6;border:1px solid var(--rule);padding:8px 10px}.bform label.rollchk input{width:auto;margin-top:3px}
.bnote{font-size:.78rem;color:var(--muted);margin:10px 0 0}.bmsg{font-size:.88rem;color:var(--olive2);font-weight:600;margin:6px 0 0}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
.bstat{font-size:.9rem;color:var(--muted)}
.post{background:#fff;border:1px solid var(--rule);padding:12px 14px;margin:0 0 10px}
.post p{margin:6px 0 0;white-space:pre-wrap;font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}
.phead{font-size:.82rem;color:var(--muted)}.phead b{color:var(--ink)}
@media (max-width:1000px){.infobox{grid-template-columns:1fr}.minimap{border-left:0;border-top:1px solid var(--rule);height:240px}.locwrap{border-left:0;border-top:1px solid var(--rule)}.locator{max-width:420px;margin:0 auto}}
@media (max-width:560px){.brow{grid-template-columns:1fr}.infobox th{width:110px}}
.memorial{position:relative;background:#1c2414;color:#efe7d6;text-align:center;padding:34px 30px 26px;margin:6px 0 18px;border:1px solid #0f140a;box-shadow:inset 0 0 0 6px #1c2414,inset 0 0 0 7px #c9a22766}
.mribbon{position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,var(--red) 0 11%,#fff 11% 15.5%,var(--grn) 15.5% 17.8%,#fff 17.8% 22.3%,var(--blk) 22.3% 33.6%,var(--cham) 33.6% 66.4%,var(--blk) 66.4% 77.7%,#fff 77.7% 82.2%,var(--grn) 82.2% 84.5%,#fff 84.5% 89%,var(--red) 89% 100%)}
.gstar{width:64px;height:64px;display:block;margin:6px auto 8px}
.mkicker{font:700 .74rem "Courier New",Courier,monospace;letter-spacing:.32em;text-transform:uppercase;color:#c9a227;margin:0 0 6px}
.memorial h2.mname{color:#fff;font-size:1.55rem;margin:0 0 8px;letter-spacing:.02em}
.munit{font:.84rem "Segoe UI",Roboto,Arial,sans-serif;color:#d9cfba;margin:0 0 4px}
.mdates{font:600 .84rem "Segoe UI",Roboto,Arial,sans-serif;color:#c9a227;margin:0 0 18px}
.mbody{text-align:left;max-width:640px;margin:0 auto;border-top:1px solid #c9a22755;padding-top:16px}
.mbody p{color:#efe7d6;font-size:1rem}
.mline{font-style:italic;font-size:1.08rem;color:#fff;margin:10px auto 14px}.mline span{display:block;font-style:normal;font-size:.78rem;color:#c3b091;margin-top:4px}
.mfoot{font:.74rem "Segoe UI",Roboto,Arial,sans-serif;color:#a89f88;margin:0}
.mroll-h{margin-top:4px}.mroll{list-style:none;margin:0 0 22px;padding:0;font:.9rem "Segoe UI",Roboto,Arial,sans-serif}
.mroll li{padding:6px 0 6px 22px;border-bottom:1px solid var(--rule);position:relative}.mroll li:before{content:"°5";color:#c9a227;position:absolute;left:2px}
@media (max-width:560px){.memorial{padding:28px 16px 20px}.memorial h2.mname{font-size:1.25rem}}
.fishbox{border-left-color:#c9a227}.fishbox figure.tall img{max-height:620px}
.mportrait{max-width:420px;margin:4px auto 18px}.mportrait figure{margin:0}.mportrait img{border:3px solid #c9a227;max-height:none}.mportrait figcaption{color:#c3b091;border-bottom:0}.mportrait figcaption span{color:#a89f88}
.crisis{background:#fff;border:1px solid var(--rule);border-left:5px solid #a4161a;padding:12px 16px;margin:0 0 22px;font:.9rem/1.5 "Segoe UI",Roboto,Arial,sans-serif}
.book{display:grid;grid-template-columns:190px 1fr;gap:22px;background:#fff;border:1px solid var(--rule);padding:18px;margin:0 0 26px}
.bookcover{background:linear-gradient(160deg,#1c2414,#3a4019 60%,#5a4a1e);color:#efe7d6;aspect-ratio:2/3;display:flex;flex-direction:column;justify-content:space-between;padding:18px 14px;border:1px solid #0f140a;box-shadow:4px 4px 0 #d9cfba}
.bk1{font:800 1.45rem/1.1 "Segoe UI",Roboto,Arial,sans-serif;color:#e3c98f;text-transform:uppercase;letter-spacing:.04em}.bk2{font:italic .85rem/1.35 Georgia,serif}.bk3{font:600 .78rem "Segoe UI",Roboto,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#c3b091}
.bookmeta{font:.86rem/1.55 "Segoe UI",Roboto,Arial,sans-serif;color:var(--muted)}.bookmeta b{color:var(--ink);font-size:.98rem}
@media (max-width:640px){.book{grid-template-columns:1fr}.bookcover{max-width:180px}}
.unitfeature{border-top:4px solid var(--olive);padding-top:10px;margin-top:30px}
.unitfeature .infobox{grid-template-columns:1fr}.unitfeature .infobox th{width:200px}
.featurebanner{background:#fff;border:1px solid var(--rule);border-left:5px solid #c9a227;padding:12px 16px;margin:0 0 20px;font:.92rem/1.5 "Segoe UI",Roboto,Arial,sans-serif}
@media (max-width:860px){.wrap{grid-template-columns:minmax(0,1fr)}aside{border-right:0;border-bottom:1px solid var(--rule);columns:2;column-gap:18px}aside h4{break-after:avoid}main{padding:26px 18px 50px}.idx{columns:1}h1{font-size:1.7rem}}
@media (max-width:480px){aside{columns:1}}
