.roots-page { background:#000; color:#d9e3e2; }
.roots-page [hidden] { display:none !important; }
.roots-nav { display:flex; justify-content:space-between; align-items:center; padding:28px 5%; border-bottom:1px solid #243638; }
.roots-nav nav { display:flex; gap:26px; font-size:12px; }
.roots-nav a { text-decoration:none; }
.root-kicker { font-size:10px; line-height:1.6; letter-spacing:.15em; text-transform:uppercase; color:#aac4c5; }
.roots-hero { padding:68px 5% 54px; display:grid; grid-template-columns:1fr 290px; gap:70px; align-items:center; }
.roots-hero h1 { font:400 clamp(38px,4.7vw,76px)/1.08 Gloock,Georgia,serif; margin:20px 0 25px; letter-spacing:-.025em; }
.roots-hero > div > p:last-child { font-size:16px; line-height:1.8; color:#aebfc0; max-width:650px; }
.memorial-invite { text-decoration:none; border-left:1px solid #6e746d; padding:12px 0 12px 28px; display:flex; flex-direction:column; gap:16px; color:#cacfc7; }
.memorial-invite strong { font:400 35px/1.2 Gloock,Georgia,serif; }
.memorial-invite > span { font-size:12px; line-height:1.7; }
.roots-search { margin:0 5%; padding:26px 0 12px; border-top:1px solid #31474a; }
.roots-search > label { display:block; font-size:12px; margin-bottom:12px; }
.roots-search-row { display:flex; gap:10px; }
.roots-search input,.roots-search select,.roots-search button,.roots-map-views button { background:#0b171b; border:1px solid #3d555b; color:#e4ecec; border-radius:0; padding:13px 16px; font:inherit; font-size:13px; min-height:44px; }
.roots-search input { flex:1; min-width:0; }
.roots-search select { max-width:210px; }
.roots-search button { cursor:pointer; }
#roots-count { font-size:11px; color:#9fb4b6; min-height:20px; }
.roots-explorer { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr); gap:28px; margin:0 5% 65px; align-items:start; }
.roots-map-wrap { border:1px solid #31474a; background:#061014; overflow:hidden; }
.roots-map-head { padding:18px 20px 0; }
.roots-map-views { display:flex; gap:6px; flex-wrap:wrap; margin-top:12px; }
.roots-map-views button { padding:8px 12px; font-size:11px; cursor:pointer; }
.roots-map-views button[aria-pressed="true"] { background:#d0e4df; color:#071213; }
#roots-map { display:block; width:100%; height:330px; }
.map-road,.map-rail,.map-water { fill:none; vector-effect:non-scaling-stroke; }
.map-road { stroke:#34474a; stroke-width:.7; }
.map-rail { stroke:#99a7a2; stroke-width:1.1; stroke-dasharray:4 3; }
.map-water { stroke:#4689aa; stroke-width:1.5; }
.root-pin { cursor:pointer; outline:none; }
.root-pin circle { fill:#071416; stroke:#a7bcba; stroke-width:2; }
.root-pin.home circle,.root-pin.school circle { fill:#dde4dd; stroke:#fff; }
.root-pin.friends circle,.root-pin.district circle { stroke-dasharray:2 2; }
.root-pin text { fill:#e4eeeb; font:12px Arial,sans-serif; paint-order:stroke; stroke:#061014; stroke-width:4px; stroke-linejoin:round; }
.root-pin.active circle,.root-pin:focus circle { fill:#3e8ef7; stroke:#fff; stroke-width:3; }
.map-key,.map-line-key { padding:0 20px; display:flex; flex-wrap:wrap; gap:15px; font-size:10px; color:#c1cdcb; }
.map-line-key span:nth-child(3) { color:#7eb5d1; }
#roots-map-note,.root-map-credit { padding:0 20px; font-size:10px; line-height:1.7; color:#a0b5b7; }
.root-map-credit { padding-bottom:12px; }
.roots-results { margin-top:18px; border-top:1px solid #31474a; }
.roots-results ol { list-style:none; padding:0; margin:0; }
.roots-ready .roots-results ol { max-height:410px; overflow:auto; scrollbar-color:#537176 #0a1417; }
.roots-results li { border-bottom:1px solid #25393d; }
.roots-results a { text-decoration:none; display:block; padding:16px 18px; border-left:3px solid transparent; }
.roots-results a:hover,.roots-results a[aria-current="true"] { background:#102026; border-left-color:#6fbbcb; }
.roots-results span,.roots-results small { display:block; font-size:10px; color:#9fb8bd; line-height:1.6; }
.roots-results strong { display:block; font-size:15px; font-weight:500; color:#e1e9e7; margin:5px 0; }
.roots-detail { padding:30px; border:1px solid #34484a; background:#0b1417; min-width:0; scroll-margin-top:20px; }
.root-entry { scroll-margin-top:20px; outline:none; }
.root-entry + .root-entry { margin-top:40px; }
.roots-ready .root-entry + .root-entry { margin-top:0; }
.root-entry h2 { font:400 34px/1.2 Gloock,Georgia,serif; margin:18px 0; overflow-wrap:break-word; }
.root-entry > p { font-size:13px; line-height:1.85; }
.root-entry .root-when { color:#97b9c1; font-size:11px; }
.root-entry .root-standfirst { font-size:17px; line-height:1.65; color:#cbd8d5; border-bottom:1px solid #304449; padding-bottom:22px; }
.root-link { display:block; font-size:12px; margin:18px 0; color:#b5dce4; }
.root-sources { margin:24px 0; border-top:1px solid #354a4c; padding-top:16px; font-size:11px; line-height:1.8; }
.root-sources summary { cursor:pointer; }
.root-sources ul { padding-left:16px; }
.root-sources li { margin:10px 0; }
.root-entry .root-provenance { font-size:10px; color:#94aaaa; }
.root-related { margin-top:30px; padding-top:18px; border-top:1px solid #354a4c; }
.root-related h3 { font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#a8bdbd; }
.root-related a { display:block; font-size:12px; margin-top:14px; }
.roots-outward { padding:60px 5%; border-top:1px solid #31474a; background:#081215; }
.roots-outward h2 { font:400 40px/1.2 Gloock,Georgia,serif; }
.roots-outward p { max-width:670px; font-size:14px; line-height:1.8; }
.roots-outward a { display:inline-block; margin:15px 28px 0 0; font-size:13px; }
.roots-page a:focus-visible,.roots-page button:focus-visible,.roots-page input:focus-visible,.roots-page select:focus-visible { outline:2px solid #d6e9ed; outline-offset:4px; }
.memorial-page { color:#dadbd3; background:#050605; }
.memorial-hero { text-align:center; padding:100px 7% 90px; border-bottom:1px solid #34372f; background:radial-gradient(ellipse at 50% 30%,#1a211c 0%,#050605 70%); }
.memorial-rule { height:65px; width:1px; background:#a7b1a0; margin:30px auto; }
.memorial-hero h1 { font:400 clamp(44px,6.4vw,94px)/1.1 Gloock,Georgia,serif; margin:30px 0; }
.memorial-role { font-size:19px; letter-spacing:.04em; }
.memorial-dedication { font:italic 20px/1.8 Georgia,serif; color:#aeb4a8; }
.memorial-hero a { display:inline-block; margin:30px 15px 0; font-size:11px; color:#c1cbba; }
.memorial-life { max-width:760px; margin:auto; padding:100px 35px; }
.memorial-life h2,.memorial-record h2,.memorial-afterword h2 { font:400 clamp(34px,4vw,54px)/1.2 Gloock,Georgia,serif; margin:22px 0 35px; }
.memorial-life p { font-size:15px; line-height:1.95; color:#bdc5b8; }
.memorial-life .memorial-lede { font-size:21px; line-height:1.7; color:#dbe0d4; }
.memorial-life blockquote { margin:50px 0 0; padding:20px 0 20px 25px; border-left:1px solid #87947d; font:italic 28px/1.5 Georgia,serif; }
.memorial-life cite { display:block; font:11px/1.8 Arial,sans-serif; margin-top:18px; }
.memorial-record { border-top:1px solid #343c34; border-bottom:1px solid #343c34; padding:80px 7%; background:#0c100d; display:grid; grid-template-columns:1fr 1.5fr; gap:65px; }
.memorial-record-heading > p:last-child { max-width:290px; line-height:1.8; font-size:13px; color:#a8b4a2; }
.memorial-timeline { list-style:none; padding:0; margin:0; }
.memorial-timeline li { display:flex; gap:25px; padding:0 0 40px; margin-bottom:35px; border-bottom:1px solid #30392f; }
.memorial-chapter { font:28px Georgia,serif; color:#7a8a73; padding-top:7px; }
.memorial-timeline h3 { font:400 25px/1.3 Gloock,Georgia,serif; margin:12px 0; }
.memorial-timeline p { font-size:14px; line-height:1.85; color:#bcc7b6; }
.memorial-timeline a { font-size:10px; line-height:1.8; color:#b3c6a6; }
.memorial-afterword { text-align:center; padding:100px 25px; max-width:700px; margin:auto; }
.memorial-afterword p { font-size:15px; line-height:1.85; }
.memorial-afterword a { font-size:12px; }
.memorial-notes { padding:40px 7%; border-top:1px solid #30392f; font-size:11px; line-height:1.9; color:#a3afa0; }
.memorial-notes h2 { font:400 18px Georgia,serif; }
.memorial-notes p { max-width:850px; }
.memorial-notes ul { padding-left:15px; }
.memorial-notes li { margin:10px 0; }
.tribute-page .memorial-hero { padding-bottom:65px; }
.tribute-obituaries { margin-top:45px; padding-top:28px; border-top:1px solid #46503f; }
.tribute-obituaries h3 { font:400 21px Georgia,serif; }
.tribute-obituaries ul { list-style:none; padding:0; }
.tribute-obituaries a { display:block; padding:15px 0; font-size:12px; line-height:1.8; color:#c3d5b5; }
.memorial-life .personal-memory { margin:0 0 60px; font-size:32px; }
.roots-page .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:849px) {
 .roots-hero { grid-template-columns:1fr 220px; gap:25px; padding-top:45px; }
 .roots-explorer { grid-template-columns:1fr; }
 .roots-detail { padding:25px; }
 .roots-ready .roots-results ol { max-height:260px; }
 .memorial-record { grid-template-columns:1fr; gap:35px; }
}
@media(max-width:549px) {
 .roots-nav { padding:20px 5%; }
 .roots-nav nav { gap:14px; font-size:10px; }
 .roots-nav .atlas-wordmark { font-size:10px; }
 .roots-hero { grid-template-columns:1fr; padding-top:35px; gap:30px; }
 .roots-hero h1 { font-size:42px; }
 .roots-hero > div > p:last-child { font-size:14px; }
 .memorial-invite { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding-left:18px; }
 .memorial-invite strong { font-size:27px; grid-row:2/4; }
 .memorial-invite > .root-kicker { grid-column:1/-1; }
 .memorial-invite .root-link { margin:4px 0; }
 .roots-search-row { flex-wrap:wrap; }
 .roots-search input { flex-basis:100%; }
 .roots-search select { flex:1; max-width:none; }
 #roots-map { height:300px; }
 #roots-map[data-view="region"] .friends text { display:none; }
 #roots-map[data-view="region"] .friends:focus text,#roots-map[data-view="region"] .friends.active text { display:block; }
 .roots-map-head { padding:14px 12px 0; }
 .roots-map-views button { padding:8px; }
 .map-key,.map-line-key,#roots-map-note,.root-map-credit { padding-left:12px; padding-right:12px; }
 .root-entry h2 { font-size:30px; }
 .roots-outward h2 { font-size:32px; }
 .memorial-hero { padding:65px 6%; }
 .memorial-hero h1 { font-size:43px; }
 .memorial-life { padding:65px 7%; }
 .memorial-life .memorial-lede { font-size:18px; }
 .memorial-timeline li { gap:16px; }
 .memorial-timeline h3 { font-size:23px; }
}
