:root{--paper:#f7f5ef;--ink:#263f37;--muted:#69766b;--line:#dcded5;--gold:#9a7745}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 system-ui,sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;font:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b28142;outline-offset:3px}header{height:92px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;gap:14px;align-items:center;font-size:13px;letter-spacing:2px;font-weight:600}.brand small{display:block;letter-spacing:1px;font-size:10px;color:var(--muted);font-weight:400}.seal{font:30px Georgia,serif;border:1px solid #8b9b87;padding:0 9px}.edition{font-size:10px;letter-spacing:2px}.edition span{color:var(--gold)}main{display:grid;grid-template-columns:410px 1fr;height:calc(100dvh - 92px);min-height:580px}.explore{padding:30px 28px 16px;overflow:auto}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--gold)}h1{font:44px/1.12 Georgia,serif;letter-spacing:-1px;margin:20px 0}h1 em{font-weight:400;color:#627461}.intro>p:last-child{font-size:12px;color:var(--muted)}.sample{font-size:10px;background:#ece8da;padding:9px 12px;margin:20px 0;color:#665a3b}label{font-size:10px;text-transform:uppercase;letter-spacing:1.4px}.search{display:flex;border-bottom:1px solid #9baa9b;padding:8px 0;gap:10px}.search span{font-size:25px}.search input{min-width:0;width:100%;border:0;background:transparent;font:12px system-ui;color:var(--ink)}#filters{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0}#filters button{border:1px solid var(--line);border-radius:24px;padding:7px 12px;background:transparent;font-size:11px}#filters button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.result-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);letter-spacing:.5px}.result-heading button{background:none;border:0;font-size:10px;color:var(--ink);padding:10px}.place{display:flex;align-items:center;text-align:left;width:100%;gap:14px;border:0;border-top:1px solid var(--line);padding:19px 0;background:none;color:var(--ink)}.place:hover{background:#edeedc}.place .number{font:21px Georgia;color:#8c9a86;width:28px}.place strong{display:block;font:19px Georgia}.place small{font-size:10px;color:var(--muted)}.place .arrow{margin-left:auto}.category-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:var(--color)}footer{padding:20px 0;font-size:10px;color:var(--muted)}.map-area{position:relative;background:#dfe5da;min-width:0}#map{height:100%;width:100%}.map-label{position:absolute;top:22px;left:24px;background:#f7f5eff2;padding:8px 13px;font-size:11px;letter-spacing:3px;pointer-events:none}.map-label span{display:block;font-size:8px;letter-spacing:1px;color:var(--muted)}#map-status{position:absolute;bottom:65px;left:16px;right:16px;max-width:420px;font-size:12px;background:var(--paper);padding:12px}#map-status:empty{display:none}.map-credit{position:absolute;bottom:0;left:0;right:0;background:#f7f5eff0;font-size:10px;padding:5px 9px;z-index:2}.maplibregl-ctrl-bottom-right{bottom:28px}.pin{height:36px;width:36px;border:3px solid #fff;border-radius:50%;background:var(--color);color:white;box-shadow:0 3px 12px #233c3744;font-size:11px;font-weight:bold}.pin:hover{filter:brightness(1.2)}dialog{border:0;background:var(--paper);color:var(--ink);border-radius:6px;max-width:540px;width:calc(100% - 28px);max-height:88dvh;padding:25px;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#182f286b}.detail-top{display:flex;justify-content:space-between;align-items:center}.detail-top button{border:0;background:none;font-size:22px;width:44px;height:44px}h2{font:34px Georgia;margin:15px 0 8px}.detail-meta{font-size:11px;color:var(--muted)}.detail-description{font-size:14px}.video-placeholder{background:#e7eadd;padding:28px 20px;text-align:center;font:22px Georgia;margin:22px 0}.video-placeholder small{display:block;font:11px/1.6 system-ui;margin-top:10px}.video{width:100%;aspect-ratio:16/9;border:0;margin-top:20px}.primary{display:inline-block;text-decoration:none;border:0;background:var(--ink);color:white;padding:12px 18px;font-size:12px}.secondary{display:inline-block;margin:12px;font-size:12px}.empty{padding:25px 0;font-size:13px}@media(max-width:760px){header{height:74px;padding:0 18px}.brand{font-size:10px;letter-spacing:1px}.edition{display:none}main{height:auto;min-height:0;display:flex;flex-direction:column}.map-area{order:-1;height:43dvh;min-height:290px}.explore{padding:22px 20px;overflow:visible}h1{font-size:36px;margin:12px 0}.intro>p:last-child{margin-bottom:10px}.sample{margin:15px 0}.map-label{top:14px;left:14px}.map-credit{font-size:9px}.maplibregl-ctrl-top-right{top:5px}dialog{padding:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.video.facebook{display:block;width:100%;max-width:300px;height:534px;aspect-ratio:auto;margin:16px auto;border:0;background:#e7eadd}.video-warning{font-size:11px;color:var(--muted)}

.facebook-slot{margin:16px auto;max-width:267px}.facebook-slot .video-warning{margin:8px 0;font-size:11px}

/* Mobile-first controls and a persistent dialog close button. */
.pin{width:44px;height:44px}
#filters button,.result-heading button{min-height:44px}
.detail-top{position:sticky;top:-25px;background:var(--paper);z-index:5;padding:6px 0}
dialog{overscroll-behavior:contain}
body:has(dialog[open]){overflow:hidden}
@media(max-width:760px){
 dialog{padding:12px;max-height:94dvh;width:calc(100% - 16px)}
 .detail-top{top:-12px}
 h2{font-size:28px;margin:6px 0}
 .detail-meta{margin:6px 0}
 .facebook-slot{margin:10px auto}
 .search input{font-size:16px;min-height:44px}
 .secondary{min-height:44px;display:inline-flex;align-items:center}
 .maplibregl-ctrl-group button{width:44px;height:44px}
}

.facebook-slot button[hidden]{display:none}

/* Non-modal video window: the map remains interactive. */
[hidden]{display:none!important}
#browse{display:none}
.floating-video{position:fixed;right:16px;bottom:42px;z-index:10;width:224px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 6px 28px #142b3555;max-height:calc(100dvh - 100px);overflow:auto;overscroll-behavior:contain}
.video-toolbar{display:flex;align-items:center;gap:4px;position:sticky;top:-10px;background:var(--paper);z-index:2}
.video-toolbar h2{font:17px/1.2 Georgia;margin:0;flex:1}
.video-toolbar button,#expand{min-height:44px;background:transparent;border:0;color:var(--ink)}
.video-toolbar button{min-width:44px;font-size:22px}
#expand{width:100%;text-align:left;font-size:11px;padding:0}
.mini-video{height:clamp(200px,35dvh,356px);width:100%;background:#17251f}
.mini-video iframe{display:block;border:0;width:100%;height:100%}
.mini-player .video-warning{font-size:10px;margin:6px 0}
.floating-video details{font-size:12px}.floating-video summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.floating-video .secondary{margin:0 6px 0 0;min-height:44px;display:inline-flex;align-items:center}
.floating-video.expanded{width:min(420px,calc(100vw - 24px))}.floating-video.expanded .mini-video{height:55dvh;min-height:200px}
.pin[aria-pressed=true]{outline:4px solid #d9ae47;outline-offset:3px;z-index:3}
.place[aria-pressed=true]{background:#e7eadd}
@media(max-width:760px){
 body{overflow:hidden}header{height:64px;padding:0 10px;gap:6px}.brand{font-size:9px;gap:6px}.brand small{font-size:9px}.seal{font-size:24px}
 #browse{display:block;min-height:44px;font-size:11px;background:var(--paper);border:1px solid var(--line);border-radius:8px}
 main{height:calc(100dvh - 64px);display:block}.map-area{height:100%;min-height:0}
 .explore{display:none;position:fixed;top:64px;left:0;right:0;z-index:20;background:var(--paper);max-height:calc(100dvh - 64px);overflow:auto;box-shadow:0 5px 20px #0003}
 .browse-open .explore{display:block}.explore .intro{display:none}
 .floating-video{right:8px;bottom:38px;width:224px;padding:10px;max-height:calc(100dvh - 84px)}
 .map-credit{padding-right:4px}.map-label{font-size:10px;left:10px}
}

/* Geographic video bubbles. Animation is on the content, never the map transform. */
.video-bubble{z-index:10}.video-bubble .maplibregl-popup-content{padding:0;background:var(--paper);border-radius:14px;box-shadow:0 8px 26px #19362b55;animation:bubble-in .32s cubic-bezier(.2,.8,.25,1.2);transform-origin:50% 100%}
.video-bubble.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--paper)}
.pin-video{width:224px;padding:10px;color:var(--ink);font:12px/1.4 system-ui;max-height:calc(100dvh - 130px);overflow:auto;overscroll-behavior:contain;border:1px solid #ccd6c9;border-radius:14px}
.popup-toolbar{display:flex;align-items:center;gap:5px;position:sticky;top:-10px;background:var(--paper);z-index:2}.popup-toolbar h2{font:17px/1.15 Georgia;margin:0;flex:1}.popup-toolbar button{font-size:24px;min-width:44px}
.pin-video button{min-height:44px;border:0;background:transparent;color:var(--ink)}.popup-actions{display:flex;justify-content:space-between}.popup-actions button{padding:0 10px;border-radius:22px;font-size:11px}
.pin-video .mini-video{height:220px;min-width:200px}.pin-video summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.pin-video .secondary{margin:0 8px 0 0;display:inline-flex;align-items:center;min-height:44px}.pin-video .video-warning{font-size:10px;margin:6px 0}
.pin-video.large{width:min(340px,calc(100vw - 28px))}.pin-video.large .mini-video{height:320px}
.mapless-video{position:fixed;right:10px;bottom:45px;background:var(--paper);z-index:20}
#popup-notice{position:fixed;left:50%;bottom:38px;transform:translateX(-50%);z-index:30;background:#263f37ee;color:white;border-radius:18px;padding:7px 12px;font:11px/1.3 system-ui;max-width:calc(100vw - 24px);width:max-content;pointer-events:none;margin:0}
@keyframes bubble-in{from{opacity:0;transform:translateY(12px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.video-bubble .maplibregl-popup-content{animation:none}}





/* Saved places and a single-video walking planner */
.place-row{display:flex;align-items:center;border-bottom:1px solid #ddd8cc;gap:4px}.place-row .place{flex:1;min-width:0;border-bottom:0}.favorite,#saved-filter,.course-add,.stop-controls button{min-height:44px;border:1px solid #c9c7bb;border-radius:18px;background:#faf8f1;color:#31453a;padding:8px 12px;cursor:pointer}.favorite[aria-pressed=true],#saved-filter[aria-pressed=true]{background:#314d3d;color:white}.favorite{white-space:nowrap}.place-row .favorite{font-size:12px;padding:8px}.place-row .place strong{overflow-wrap:anywhere}#save-status{font-size:11px;color:#656b60;margin:8px 0 16px}.walk-planner{border:1px solid #d6d5c8;border-radius:12px;padding:12px;margin:12px 0}.walk-planner summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}.walk-planner p,.walk-planner small{font-size:12px;line-height:1.6}.walk-planner ol{padding-left:22px}.walk-planner li{padding:10px 0;border-bottom:1px solid #ddd8cc}.stop-controls{display:flex;gap:6px;margin:8px 0}.stop-controls button:disabled{opacity:.35;cursor:default}.walk-link{display:inline-flex;min-height:44px;align-items:center;color:#314d3d;font-size:12px}.course-add{margin:4px 4px 4px 0;font-size:12px}.popup-actions .favorite{font-size:11px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b77946;outline-offset:2px}
body.browse-open #popup-notice{display:none}
