@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#10251f;--panel:#142d26;--line:#ffffff17;--text:#f0f2e9;--muted:#93a99e;--green:#6ac3a0;--gold:#d8bb86;--mixed:#a8acdf}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px 'DM Sans',sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}header{height:90px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;background:#10251fee;border-bottom:1px solid var(--line);position:relative;z-index:4}.brand{display:flex;align-items:center;gap:10px;font-size:23px;letter-spacing:2px;font-weight:800}.brand-icon{color:var(--green);font-size:42px;line-height:1}.brand small{display:block;font-size:7px;letter-spacing:1.5px;font-weight:500;margin-top:2px}nav{display:flex;gap:38px;align-items:center;font-size:12px;color:#c4d0c7}nav button{background:none;padding:0;color:inherit}nav button span{margin-left:14px}.nav-active{color:var(--text);position:relative}.nav-active:after{content:'';width:4px;height:4px;background:var(--green);border-radius:50%;position:absolute;left:50%;bottom:-16px}.edition{font-size:9px;letter-spacing:1.7px;color:var(--muted)}.edition span{margin:0 12px;color:var(--green)}main{height:calc(100dvh - 90px);position:relative;overflow:hidden}#map{position:absolute;inset:0;background:#10251f}.map-heading{position:absolute;top:44px;left:42px;pointer-events:none;z-index:1}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:var(--green)}.eyebrow i,.live-dot{display:inline-block;width:5px;height:5px;border-radius:100%;background:var(--green);margin-right:8px}.map-heading h1{font:500 clamp(36px,4vw,62px)/1.07 Manrope,sans-serif;letter-spacing:-2.5px;margin:20px 0 15px}.map-heading p{font-size:12px;color:var(--muted);margin:0 0 25px}.cities{display:flex;border:1px solid #ffffff20;border-radius:6px;background:#11271fe8;padding:4px;pointer-events:auto;width:max-content}.cities button{background:transparent;color:#b7c8bd;padding:10px 15px;font-size:11px;border-radius:4px}.cities button.active{background:#d3bc92;color:#132b23}.cities span{font-size:9px;opacity:.6;margin-left:8px}.map-badge{position:absolute;top:26px;left:48%;transform:translateX(-50%);display:flex;align-items:center;background:#12271fd9;padding:11px 16px;border:1px solid var(--line);border-radius:50px;font-size:8px;letter-spacing:1.4px;pointer-events:none}.map-badge .divider{height:10px;background:#ffffff30;width:1px;margin:0 12px}.portfolio{position:absolute;right:22px;top:22px;bottom:42px;width:348px;background:#132c25f5;backdrop-filter:blur(20px);border:1px solid #ffffff19;box-shadow:0 10px 70px #0003;border-radius:12px;display:flex;flex-direction:column;z-index:3;overflow:hidden}.portfolio-head{padding:26px 23px 21px;border-bottom:1px solid var(--line)}h2{font:500 20px Manrope,sans-serif;letter-spacing:-.6px;margin:10px 0 0;display:flex;justify-content:space-between;align-items:center}h2 span{border:1px solid #ffffff25;border-radius:40px;padding:4px 9px;font:11px 'DM Sans';color:var(--muted)}.portfolio-body{min-height:0;display:flex;flex-direction:column;flex:1}.search{display:flex;align-items:center;margin:18px 22px 14px;gap:10px;border-bottom:1px solid #ffffff25;padding-bottom:10px;color:var(--muted)}.search input{background:none;color:var(--text);border:0;outline:none;width:100%;font-size:12px}.search input::placeholder{color:var(--muted)}kbd{font:9px sans-serif;border:1px solid var(--line);padding:2px 5px;border-radius:3px}.filters{display:flex;gap:3px;margin:0 20px 14px}.filters button{font-size:10px;background:none;padding:8px 9px;border-radius:5px;color:var(--muted)}.filters button.active{background:#6ac3a018;color:#96d7b4}.status-filter{display:flex;justify-content:space-between;margin:0 24px 13px;font-size:10px;align-items:center;color:var(--muted)}select{color:#c5d1c7;background:#142d26;border:0;font-size:10px;max-width:150px}#project-list{overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#476455 transparent;padding:0 12px}.project-row{width:100%;display:grid;grid-template-columns:45px 1fr 18px;align-items:center;gap:12px;text-align:left;border-radius:6px;background:transparent;padding:13px 10px;border-top:1px solid #ffffff0c;transition:background .2s}.project-row:hover{background:#ffffff06}.project-row.selected{background:#6ac3a014;border-color:#6ac3a03b}.thumb{width:45px;height:45px;border-radius:50%;object-fit:cover;filter:saturate(.7);border:1px solid #ffffff25}.project-row strong{display:block;font-size:12px;font-weight:500;margin:0 0 6px}.project-row small{font-size:9px;color:var(--muted)}.project-row .arrow{font-size:14px;color:#8fa99a}.project-row .status{display:block;font-size:8px;margin-top:6px;color:#a9c6b7}.status:before{content:'';display:inline-block;width:4px;height:4px;background:var(--green);border-radius:50%;margin-right:5px}.source-note{border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:12px 22px;color:var(--muted)}.source-note p{font-size:9px;line-height:1.6;margin:0;flex:1}.source-note button{background:none;font-size:16px;color:var(--muted)}.map-tools{position:absolute;left:30px;top:55%;transform:translateY(-15%);display:flex;flex-direction:column;border:1px solid #ffffff20;background:#10251fe8;padding:5px;border-radius:30px;z-index:2;gap:2px}.map-tools button{width:38px;height:38px;border-radius:50%;font-size:19px;background:none;color:#d0dbd2}.map-tools button:hover{background:#ffffff10}.map-tools button.on{background:var(--gold);color:#1b3026;font-size:11px;font-weight:700}.map-tools div{height:1px;background:var(--line);margin:4px 8px}.map-bottom{position:absolute;bottom:20px;left:42px;right:390px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.map-legend{display:flex;gap:20px;font-size:9px;color:#b2c0b5;background:#10251fdd;padding:10px 13px;border:1px solid var(--line);border-radius:4px}.map-legend i{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:6px}.res{background:var(--green)}.hos{background:var(--gold)}.mix{background:var(--mixed)}.map-bottom p{font-size:9px;color:var(--muted)}.map-bottom b{margin:0 6px;color:#567162}#detail{position:absolute;left:104px;bottom:80px;width:345px;border:1px solid #ffffff25;z-index:2;border-radius:10px;background:#122b24f5;backdrop-filter:blur(20px);box-shadow:0 10px 50px #0003;overflow:hidden}#detail .hero{height:152px;width:100%;object-fit:cover}#detail .detail-inner{padding:18px 21px 20px}#detail h3{font:500 23px Manrope;letter-spacing:-.6px;margin:8px 0}#detail .location{font-size:10px;color:var(--muted)}#detail .desc{font-size:11px;line-height:1.65;color:#b4c5b8;margin:14px 0}#detail .facts{display:flex;flex-wrap:wrap;gap:5px}#detail .facts span{border:1px solid #ffffff1a;font-size:9px;padding:6px 8px;border-radius:3px}#detail .approx{font-size:8px;letter-spacing:.3px;color:#cfb789;padding-top:13px;margin:13px 0 0;border-top:1px solid var(--line)}.detail-close{position:absolute;right:10px;top:10px;background:#10251fcc;border:1px solid #ffffff45;border-radius:50%;width:28px;height:28px;font-size:18px}.source-page{color:#688d77;font-size:8px;margin-top:7px}.pin{background:none;border:0;position:absolute;padding:0;display:flex;flex-direction:column;align-items:center;gap:7px;--c:var(--green);cursor:pointer;filter:drop-shadow(0 5px 6px #0007)}.pin.hospitality{--c:var(--gold)}.pin.mixed-use{--c:var(--mixed)}.pin .pin-label{color:#e1e8de;background:#14271fea;border:1px solid #ffffff1c;border-radius:4px;white-space:nowrap;font-size:9px;padding:5px 8px}.pin .pin-image{width:50px;height:50px;padding:3px;background:#17352b;border:1.5px solid var(--c);border-radius:50%;transition:transform .2s}.pin img{width:100%;height:100%;object-fit:cover;border-radius:50%}.pin:after{content:'';width:7px;height:7px;background:var(--c);border-radius:50%;box-shadow:0 0 0 4px #6ac3a018}.pin:before{content:'';position:absolute;bottom:6px;left:50%;height:10px;width:1px;background:var(--c)}.pin.selected .pin-image,.pin:hover .pin-image{transform:scale(1.18);box-shadow:0 0 0 5px #6ac3a020}.pin.selected .pin-label{background:var(--c);color:#10251f}.pin.selected{z-index:4}.landmark{font-size:9px;color:#d0bc94;text-align:center;pointer-events:none;text-shadow:0 1px 3px #000}.landmark b{display:block;font-size:17px;margin-bottom:3px}dialog{background:#17332a;color:var(--text);border:1px solid #ffffff30;max-width:640px;max-height:85dvh;border-radius:12px;padding:42px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#03140fcc;backdrop-filter:blur(8px)}dialog h2{font-size:30px;margin:15px 0 30px}dialog h3{font:500 21px Manrope;margin:24px 0 12px}dialog p{font-size:13px;line-height:1.8;color:#bdcec2}.close-dialog{position:absolute;right:18px;top:12px;background:none;font-size:26px;color:#b6cabb}.mobile-toggle{display:none}.empty{padding:30px 12px;color:var(--muted);line-height:1.7;font-size:12px}#map-error{position:absolute;left:50%;top:50%;max-width:320px;transform:translate(-50%,-50%);background:var(--panel);padding:22px;border:1px solid var(--gold);z-index:3;font-size:12px;line-height:1.8}#map-error button{background:var(--gold);color:#10251f;padding:7px;margin-top:8px}#toast{position:absolute;left:50%;bottom:80px;background:#d3bc92;color:#173328;border-radius:6px;padding:12px 18px;z-index:5;font-size:11px}.maplibregl-ctrl-bottom-right{right:385px!important}.maplibregl-ctrl-attrib{font-size:8px!important;background:#10251fbb!important;color:#8ea396!important}.maplibregl-ctrl-attrib a{color:#a8bcac!important}.skip{position:absolute;left:20px;top:-60px;z-index:10;background:var(--gold);padding:14px;color:#10251f}.skip:focus{top:12px}
@media(min-width:1500px){.portfolio{width:380px;right:30px;top:30px;bottom:45px}.map-bottom{right:445px}.maplibregl-ctrl-bottom-right{right:435px!important}.map-heading{top:55px;left:48px}#detail{width:350px}.project-row{padding:16px 12px}.project-row strong{font-size:13px}.thumb{width:50px;height:50px}.project-row{grid-template-columns:50px 1fr 18px}}
@media(max-width:1000px){.map-bottom p,.edition{display:none}header{padding:0 25px}.map-heading{left:28px}.portfolio{width:310px;right:16px;top:16px}.map-badge{left:45%;top:20px}.map-heading h1{font-size:42px}.map-heading p{display:none}.cities button{padding:9px 10px}#detail{width:290px;left:90px;bottom:70px}.map-bottom{left:28px;right:340px}.filters button{padding:7px 6px}.maplibregl-ctrl-bottom-right{right:340px!important}}
@media(max-width:700px){header{height:70px;padding:0 20px}.brand{font-size:19px}.brand-icon{font-size:35px}.brand small{font-size:6px}nav{gap:0}nav a,.nav-active{display:none}nav button{font-size:11px}main{height:calc(100dvh - 70px)}.map-heading{top:24px;left:20px}.map-heading .eyebrow{font-size:8px;letter-spacing:1.3px}.map-heading h1{font-size:34px;letter-spacing:-1.6px;margin:12px 0 18px}.cities{padding:3px}.cities button{font-size:10px;padding:9px}.map-badge{right:16px;left:auto;transform:none;top:24px;font-size:7px;padding:9px}.map-badge .divider,#mode-label{display:none}.portfolio{left:12px;right:12px;top:auto;bottom:30px;width:auto;height:35%;border-radius:12px}.portfolio-head{padding:17px 18px;display:flex;justify-content:space-between;align-items:center}.portfolio-head .eyebrow{display:none}h2{font-size:16px;margin:0;gap:12px}.mobile-toggle{display:block;background:none;font-size:20px}.portfolio.collapsed{height:60px}.portfolio.collapsed .portfolio-body{display:none}.portfolio-body{overflow:auto}.search{margin:12px 19px}.filters{margin:0 13px 8px}.status-filter{margin-bottom:9px}#project-list{flex:none;overflow:visible}.project-row{padding:12px 8px}.source-note{padding:12px 18px}.map-tools{left:auto;right:16px;top:125px;transform:none;padding:4px}.map-tools button{width:33px;height:33px}.map-tools div{margin:2px 8px}.map-bottom{bottom:7px;left:16px;right:16px}.map-legend{font-size:7px;padding:6px 8px;gap:14px;border:0;background:none}#detail{left:14px;bottom:calc(35% + 42px);width:250px;max-height:calc(65% - 200px);overflow:auto}#detail .hero{height:105px}#detail .detail-inner{padding:13px 15px}#detail h3{font-size:18px}#detail .desc{font-size:10px;margin:9px 0}#detail .approx{font-size:8px}#detail .source-page{display:none}#detail .facts{display:none}.maplibregl-ctrl-bottom-right{right:8px!important;bottom:2px!important}.pin .pin-image{width:41px;height:41px}.pin .pin-label{font-size:8px}dialog{padding:30px 23px;margin:20px}dialog h2{font-size:25px}.map-heading{pointer-events:none}.cities{pointer-events:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.gallery-thumbs{display:flex;gap:6px;margin:-3px 0 15px}.gallery-thumbs button{padding:0;border:1px solid #ffffff30;border-radius:3px;overflow:hidden;background:none;width:48px;height:32px}.gallery-thumbs img{width:100%;height:100%;object-fit:cover}.project-link{display:block;color:var(--green);font-size:10px;margin-top:16px}.brand img{object-fit:contain}
@media(max-width:700px){.gallery-thumbs{margin:0 0 8px}.gallery-thumbs button{width:38px;height:25px}}

/* Do not let cached generic pin styles put geographic markers in page flow. */
#map .pin.maplibregl-marker{position:absolute;top:0;left:0;margin:0;transform-origin:center bottom;}
#map .pin[hidden]{display:none!important;}

/* Labels fan out in screen space; connector circles retain geographic anchors. */
.pin-callout-lines{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
.pin-callout-lines path{fill:none;stroke:#f1f2e9;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;opacity:.92;}
.pin-callout-lines path.selected{stroke:#d8bb86;stroke-width:2;}
.pin-callout-lines circle{stroke:#fff;stroke-width:1.8;}
#map .pin{z-index:2;}#map .pin.selected{z-index:4;}
#map .pin::before{display:none;}
#map .pin::after{content:'';width:0;height:0;background:none;box-shadow:none;border-radius:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--c);}
#map .pin-label{max-width:114px;overflow:hidden;text-overflow:ellipsis;}
#map.compact-callouts .pin{gap:3px;}
#map.compact-callouts .pin .pin-label{max-width:62px;font-size:7px;line-height:9px;padding:2px 3px;}
#map.compact-callouts .pin .pin-image{width:30px;height:30px;padding:2px;}
#map.compact-callouts .pin::after{border-top-width:5px;border-left-width:3px;border-right-width:3px;}

#map.tiny-callouts .pin{gap:2px;}
#map.tiny-callouts .pin .pin-label{max-width:42px;font-size:6px;line-height:8px;padding:1px 2px;}
#map.tiny-callouts .pin .pin-image{width:24px;height:24px;padding:1px;}
#map.tiny-callouts .pin::after{border-top-width:4px;}
/* Reference timing: geographic roots move with the map; heads settle after moveend. */
#map .pin{--photo-size:52px;display:grid;justify-items:center;gap:0;width:max-content;overflow:visible;}
#map .pin::before,#map .pin::after{display:none;}
#map .pin .pin-head{position:relative;display:grid;justify-items:center;gap:0;translate:0 0;transition:translate .3s cubic-bezier(.65,0,.35,1);}
#map .pin .pin-image{width:var(--photo-size);height:var(--photo-size);padding:0;border:3px solid var(--c);border-radius:50%;overflow:hidden;background:#ede8df;box-shadow:0 0 0 2px #fff,0 10px 22px -8px #0009;transform:none;translate:0 0;transition:width .25s cubic-bezier(.65,0,.35,1),height .25s cubic-bezier(.65,0,.35,1),translate .2s cubic-bezier(.65,0,.35,1),border-color .2s cubic-bezier(.22,1,.36,1);}
#map .pin .pin-label{position:absolute;top:100%;left:50%;translate:-50% 0;margin-top:2px;max-width:none;overflow:visible;padding:0;border:0;border-radius:0;background:transparent;color:#f1ebe0;text-shadow:0 0 3px #10251f,0 0 6px #10251f,0 0 10px #10251f;font-size:13px;line-height:18px;font-weight:700;white-space:nowrap;pointer-events:none;}
#map .pin.fanned .pin-label{top:auto;bottom:100%;margin:0 0 6px;}
#map .pin .pin-tip{width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid #f1ebe0;margin-top:-2px;filter:drop-shadow(0 2px 2px #0005);}
#map .pin .pin-lead{position:absolute;bottom:0;left:50%;margin-left:-1px;width:2px;height:0;rotate:0deg;transform-origin:50% 100%;background:#fff;box-shadow:0 0 0 1px #0006;opacity:0;pointer-events:none;transition:height .3s cubic-bezier(.65,0,.35,1),rotate .3s cubic-bezier(.65,0,.35,1),opacity .2s cubic-bezier(.22,1,.36,1);}
#map .pin .pin-anchor{position:absolute;bottom:-4px;left:50%;margin-left:-4.5px;width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px #fff,0 0 0 3px #0006;opacity:0;pointer-events:none;}
#map .pin.fanned .pin-lead{opacity:.95;}#map .pin.fanned .pin-anchor{opacity:1;}
#map .pin.selected{--photo-size:68px;--c:#d8bb86;}
#map .pin.selected .pin-image{transform:none;box-shadow:0 0 0 3px #10251f,0 0 0 6px #d5b98c73,0 14px 28px -8px #0009;}
#map.compact-callouts .pin{--photo-size:40px;gap:0;}
#map.compact-callouts .pin.selected{--photo-size:54px;}
#map.compact-callouts .pin .pin-image{width:var(--photo-size);height:var(--photo-size);padding:0;border-width:2.5px;}
#map.compact-callouts .pin .pin-label{max-width:none;font-size:13px;line-height:18px;padding:0;}
@media(hover:hover) and (pointer:fine){#map .pin:hover .pin-image{transform:none;translate:0 -3px;}}
/* Each detail image keeps its own source ratio, including portrait buildings. */
#detail{max-height:calc(100% - 110px);overflow:auto;scrollbar-width:thin;scrollbar-color:#567566 transparent;}
#detail .hero{display:block;width:100%;height:auto;max-height:min(44dvh,420px);object-fit:contain;object-position:center;background:#10251f;}
#detail .gallery-thumbs img{object-fit:contain;background:#10251f;}
@media(max-width:700px){#detail{max-height:calc(65% - 175px);}#detail .hero{height:auto;max-height:25dvh;object-fit:contain;}}
/* Landmark explorer controls, journeys and the two map palettes. */
.explorer-controls{position:absolute;z-index:5;left:42px;bottom:28px;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 4px 20px #0002}.explorer-controls label{font-size:10px;color:var(--muted)}.explorer-controls select{font-size:12px;min-width:65px;color:var(--text);background:var(--panel);padding:6px}.explorer-controls button{background:transparent;width:30px;height:30px;font-size:22px;border-left:1px solid var(--line)}.map-bottom{bottom:86px}.map-tools{max-height:calc(100% - 210px);overflow:auto;scrollbar-width:none}.map-tools button[aria-pressed=true]{color:var(--gold);background:#d8bb8618}.journeys{margin:22px 0 18px;border-top:1px solid var(--line);padding-top:18px}.journeys h4{font:500 18px Manrope,sans-serif;letter-spacing:-.4px;margin:0 0 7px}.journeys p{color:var(--muted);font-size:11px;line-height:1.6;margin:0 0 12px}.journey-list{display:grid;gap:4px}.journey-list button{display:grid;grid-template-columns:22px 1fr 14px;gap:7px;align-items:center;text-align:left;padding:10px 8px;background:transparent;border-radius:6px;border:1px solid transparent;font-size:11px;line-height:1.4}.journey-list button:hover,.journey-list button[aria-pressed=true]{background:#d8bb8612;border-color:#d8bb8650}.journey-list small{display:block;color:var(--muted);font-size:10px;margin-top:4px;font-variant-numeric:tabular-nums}.journey-list .journey-icon{font-size:22px;color:var(--gold)}.journey-list button:disabled{opacity:.5;cursor:default}.journeys .route-note{font-size:10px;margin:14px 0 7px}.journeys .route-credit{font-size:9px}.route-credit a{text-decoration:underline;text-underline-offset:2px}#route-summary{position:absolute;z-index:4;bottom:28px;left:50%;transform:translateX(-50%);max-width:min(440px,calc(100% - 800px));display:flex;gap:14px;align-items:center;background:var(--panel);border:1px solid #d8bb8660;border-radius:9px;padding:14px 16px;box-shadow:0 10px 40px #0003}#route-summary[hidden]{display:none}#route-summary strong{font-size:12px;font-weight:500;display:block;line-height:1.5}#route-summary small{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:5px}#clear-route{font-size:23px;background:none;padding:3px 7px}#detail.routing .hero,#detail.routing .gallery-thumbs,#detail.routing .desc,#detail.routing .facts,#detail.routing .project-link,#detail.routing .source-page{display:none}#detail.routing{max-height:calc(100% - 125px)}#detail.routing .journeys{margin-top:16px}.clean-map .portfolio,.clean-map .map-tools,.clean-map .map-heading,.clean-map .map-bottom,.clean-map .map-badge,.clean-map #detail,.clean-map #route-summary,.clean-map .explorer-controls label,.clean-map #map-theme{display:none}.clean-map .explorer-controls{left:22px;bottom:24px;padding:4px}.clean-map .explorer-controls button{border:0}
:root[data-map-theme=light]{--bg:#e8e5db;--panel:#f6f5edf5;--line:#294f3c22;--text:#183c2c;--muted:#5e7366;--green:#347858;--gold:#967034;--mixed:#68649a;color-scheme:light}:root[data-map-theme=dark]{color-scheme:dark}
[data-map-theme=light] header{background:#f5f3e9ee}[data-map-theme=light] nav{color:#4d6556}[data-map-theme=light] #map{background:#e8e5db}[data-map-theme=light] .portfolio,[data-map-theme=light] #detail,[data-map-theme=light] dialog,[data-map-theme=light] .map-tools,[data-map-theme=light] .map-badge,[data-map-theme=light] .cities,[data-map-theme=light] #toast,[data-map-theme=light] #map-error{background:var(--panel);color:var(--text);border-color:var(--line)}[data-map-theme=light] select{background:#f3f1e6;color:#183c2c}[data-map-theme=light] .cities button{color:#496653}[data-map-theme=light] .cities button.active{background:#d3bc92;color:#183c2c}[data-map-theme=light] .project-row{border-color:var(--line)}[data-map-theme=light] .project-row:hover,[data-map-theme=light] .project-row.selected{background:#37765412}[data-map-theme=light] .filters button.active{color:#246240;background:#37765415}[data-map-theme=light] .facts span,[data-map-theme=light] .status,[data-map-theme=light] .desc,[data-map-theme=light] .location{color:#526b5c}[data-map-theme=light] #map .pin-label{color:#1e3f30;text-shadow:0 1px 3px #fff,0 0 6px #fff}[data-map-theme=light] #map .pin-lead{background:#456b55}[data-map-theme=light] #map .pin-anchor{background:#456b55;border-color:#fff}[data-map-theme=light] #detail .hero{background:#deddd5}[data-map-theme=light] .map-tools button:hover{background:#183c2c10}[data-map-theme=light] .brand img{filter:brightness(.3)}
@media(max-width:1000px) and (min-width:701px){#route-summary{left:calc(50% - 90px);max-width:260px;bottom:22px}.explorer-controls{left:22px}.map-badge{display:none}}
@media(max-width:700px){.explorer-controls{left:14px;bottom:7px;gap:6px;padding:2px 7px}.explorer-controls label{display:none}.explorer-controls select{font-size:10px;padding:5px;min-width:59px}.explorer-controls button{height:26px;font-size:19px}.map-bottom{display:none}.map-tools{top:118px;right:12px;max-height:calc(65% - 140px)}.map-tools button{width:33px;height:31px}.map-tools div{margin:1px 8px}#detail{width:calc(100% - 88px);max-width:320px;max-height:calc(65% - 160px)}#detail.routing{bottom:106px;max-height:37%;width:calc(100% - 28px);max-width:none}#detail.routing .detail-inner{padding:12px 15px}#detail.routing .eyebrow,#detail.routing .location{display:none}#detail.routing h3{font-size:16px;margin:0}#detail.routing .journeys{margin-top:10px;padding-top:10px}#detail.routing .journeys h4{font-size:15px}#route-summary{left:14px;right:14px;bottom:46px;transform:none;max-width:none;padding:9px 12px}#route-summary strong{font-size:10px}#route-summary small{font-size:9px}.journeys{margin-top:16px}.journeys h4{font-size:16px}.journeys p{font-size:10px}.journey-list button{padding:9px 5px}.portfolio.collapsed{bottom:30px}.clean-map .explorer-controls{left:14px;bottom:12px}}
@media(prefers-reduced-motion:reduce){#map .pin-head,#map .pin-lead{transition:none!important}}

#detail .detail-close{position:sticky;top:10px;float:right;margin:10px 10px -44px 0;z-index:4}
/* Project destinations occupy the right portfolio panel, as in the reference. */
.portfolio.showing-journeys .portfolio-head{padding-bottom:16px}.portfolio.showing-journeys .portfolio-head h2{font-size:17px}.portfolio.showing-journeys .portfolio-body>.search,.portfolio.showing-journeys .portfolio-body>.filters,.portfolio.showing-journeys .portfolio-body>.status-filter,.portfolio.showing-journeys #project-list,.portfolio.showing-journeys .source-note{display:none}#landmark-menu{padding:0 20px 20px;margin:0;border:0;overflow:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#567566 transparent}#landmark-menu .journey-back{padding:16px 0 20px;display:block;background:none;font-size:11px;color:var(--muted)}#landmark-menu .eyebrow{display:block;margin-bottom:8px}#landmark-menu .journey-project{font:500 23px Manrope,sans-serif;letter-spacing:-.6px;margin:0 0 20px}#landmark-menu h4{font-size:16px}#landmark-menu .journey-list button{width:100%;padding:12px 6px}.portfolio.showing-journeys .portfolio-body{overflow:hidden}body:has(.portfolio.showing-journeys) .map-heading{visibility:hidden}#detail.routing .detail-inner{padding-bottom:18px}
@media(max-width:700px){.portfolio.showing-journeys:not(.collapsed){height:37%;bottom:38px}#landmark-menu{padding:0 14px 14px}#landmark-menu .journey-back{padding:10px 0 13px}#landmark-menu .journey-project{font-size:19px;margin-bottom:12px}#detail.routing{display:none}#route-summary{bottom:calc(37% + 49px)}.clean-map #route-summary{display:none}}
/* Selected-route travel card: clear time/distance hierarchy, like the reference. */
#detail.routing{display:none}#route-summary{left:104px;right:auto;bottom:80px;transform:none;width:345px;max-width:calc(100% - 130px);padding:20px 23px;border-radius:12px;align-items:flex-start;gap:8px}#route-summary .route-copy{display:block;min-width:0;flex:1}#route-summary strong{font-size:12px;line-height:1.6;padding-right:12px;color:var(--muted)}#route-summary .route-numbers{display:flex;align-items:center;gap:22px;margin:12px 0 10px}#route-summary .route-numbers>span{display:flex;align-items:baseline;gap:7px}#route-summary .route-numbers b{font:600 32px/1.2 Manrope,sans-serif;color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:-1px}#route-summary .route-numbers small{font-size:11px;color:var(--text);margin:0;white-space:nowrap}#route-summary .route-numbers i{height:28px;width:1px;background:var(--line);flex-shrink:0}#route-summary #route-metrics{font-size:9px;line-height:1.6;margin:0}#route-summary #clear-route{position:absolute;right:9px;top:7px;font-size:22px;color:var(--muted)}.clean-map #route-summary{display:none}
@media(max-width:700px){#route-summary{left:14px;right:14px;bottom:calc(37% + 49px);width:auto;max-width:none;padding:12px 16px}#route-summary strong{font-size:10px}#route-summary .route-numbers{margin:7px 0 5px;gap:18px}#route-summary .route-numbers b{font-size:25px}#route-summary .route-numbers small{font-size:10px}#route-summary #route-metrics{font-size:8px}#route-summary .route-numbers i{height:22px}}
body:has(#route-summary:not([hidden])) .map-bottom{display:none}
/* Persistent navigation and a clear return action above the destination list. */
.city-switcher{position:absolute;left:42px;top:22px;z-index:6;margin:0;max-width:calc(100% - 32px)}.map-heading{top:100px}.clean-map .city-switcher{display:none}#detail{max-height:calc(100% - 190px)}.portfolio.showing-journeys .portfolio-head{display:flex;align-items:center;gap:10px;padding:14px 18px}.portfolio.showing-journeys .portfolio-head>div{display:none}.portfolio-head .journey-back{display:block;flex:1;min-height:46px;padding:12px 16px;background:var(--gold);border:1px solid var(--gold);border-radius:7px;color:#17382b;font-size:14px;font-weight:700;text-align:left;box-shadow:0 3px 12px #0002}.portfolio-head .journey-back:hover{filter:brightness(1.1)}#landmark-menu{padding-top:16px}#route-summary.docked-route{position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;width:auto;max-width:none;margin:0 14px 12px;padding:12px 14px;flex-shrink:0;border-radius:8px;box-shadow:none}#route-summary.docked-route[hidden]{display:none}#route-summary.docked-route .route-numbers{margin:7px 0}#route-summary.docked-route .route-numbers b{font-size:25px}
@media(max-width:1100px) and (min-width:701px){#detail{left:84px;width:min(290px,calc(100vw - 480px))}.map-badge{display:none}}
@media(max-width:700px){.city-switcher{top:14px;left:14px}.city-switcher button{padding:10px 12px}.map-heading{top:86px}.map-badge{display:none}#detail{top:88px;bottom:auto;left:14px;right:70px;width:auto;max-width:none;max-height:calc(63% - 120px)}.portfolio.showing-journeys .portfolio-head{padding:7px 12px;min-height:60px}.portfolio-head .journey-back{font-size:13px;min-height:44px;padding:10px 13px}.portfolio.showing-journeys.collapsed{height:60px}#route-summary.docked-route{margin:0 10px 6px;padding:10px 12px}#route-summary.docked-route strong{font-size:10px}#landmark-menu{padding-top:10px}}
@media(max-height:560px){#route-summary.docked-route{padding:8px 12px;margin-bottom:5px}#route-summary.docked-route .route-numbers{margin:4px 0}#route-summary.docked-route .route-numbers b{font-size:22px}#route-summary.docked-route #route-metrics{display:none}}
.portfolio-head .journey-back{order:0}.portfolio-head .mobile-toggle{order:1}
.portfolio-head .journey-back{background:#d8bb86;border-color:#d8bb86;color:#10251f}body:has(.portfolio.showing-journeys) .map-bottom{display:none}
/* Phone flow shows one task at a time: project, destination picker, then route. */
.phone-only,.phone-project-actions,.phone-route-actions{display:none}
@media(max-width:700px){
 .map-heading,.map-bottom{display:none}.city-switcher{left:12px;top:12px;max-width:calc(100% - 24px)}.city-switcher button{min-height:40px;padding:9px 11px}.city-switcher span{margin-left:4px}
 #phone-map-menu{display:block;position:absolute;top:66px;right:12px;z-index:6;width:44px;height:44px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:25px;line-height:1}
 .map-tools,.explorer-controls{display:none}.phone-tools-open .map-tools{display:grid;grid-template-columns:44px 44px;gap:3px;top:170px;right:12px;left:auto;max-height:calc(100% - 190px);padding:5px;transform:none;z-index:7}.phone-tools-open .map-tools button{width:44px;height:44px}.phone-tools-open .map-tools>div{display:none}.phone-tools-open .explorer-controls{display:flex;left:auto;right:12px;bottom:auto;top:116px;padding:4px 6px;z-index:7}.phone-tools-open .explorer-controls button{height:38px;width:38px}.phone-tools-open .explorer-controls select{min-height:38px;font-size:12px}
 .portfolio{left:12px;right:12px;bottom:16px;width:auto}.portfolio.collapsed{bottom:16px}
 body[data-phone-view=project] .portfolio,body[data-phone-view=route] .portfolio{display:none}
 #detail{top:auto;bottom:16px;left:12px;right:12px;width:auto;max-width:none;max-height:46%;border-radius:12px;scroll-padding-top:15px}
 #detail .hero{width:100%;height:auto;max-height:18dvh;object-fit:contain}#detail .detail-inner{padding:12px 16px 14px}#detail h3{font-size:21px;margin:0 0 4px}#detail .location{font-size:11px;margin:0 0 12px}
 #detail .eyebrow,#detail .gallery-thumbs,#detail .desc,#detail .facts,#detail .project-link,#detail .approx,#detail .source-page{display:none}
 .phone-project-actions{display:flex;gap:8px}.phone-project-actions button,.phone-route-actions button,#phone-back-project{min-height:44px;border-radius:7px;font-size:12px;font-weight:600;padding:10px 12px;background:transparent;border:1px solid var(--line)}#compare-distance{background:#d8bb86;color:#10251f;border-color:#d8bb86;flex:1}#phone-project-info{flex:0 0 auto}
 #detail.expanded-info{max-height:70%}#detail.expanded-info .desc,#detail.expanded-info .project-link,#detail.expanded-info .approx,#detail.expanded-info .source-page{display:block}#detail.expanded-info .facts,#detail.expanded-info .gallery-thumbs{display:flex}#detail.expanded-info .desc{font-size:12px;line-height:1.7}#detail.expanded-info .source-page{font-size:9px}#detail.expanded-info .gallery-thumbs{margin-bottom:12px}
 body[data-phone-view=landmarks] #detail,body[data-phone-view=landmarks] #route-summary{display:none}
 body[data-phone-view=landmarks] .portfolio.showing-journeys{display:flex;height:44%;max-height:calc(100% - 125px);bottom:16px}
 body[data-phone-view=landmarks] .portfolio-head{display:flex;gap:8px;min-height:62px;padding:8px 12px}body[data-phone-view=landmarks] #phone-back-project{display:block;order:0;white-space:nowrap}body[data-phone-view=landmarks] .journey-back{order:1;min-height:44px;padding:10px 12px;text-align:center;font-size:12px}body[data-phone-view=landmarks] #list-toggle{display:none}
 body[data-phone-view=landmarks] #landmark-menu{padding:12px 14px 16px;overscroll-behavior:contain}body[data-phone-view=landmarks] #landmark-menu .eyebrow,body[data-phone-view=landmarks] #landmark-menu .journey-project,body[data-phone-view=landmarks] #landmark-menu>p{display:none}body[data-phone-view=landmarks] #landmark-menu h4{font-size:15px;margin:0 0 8px}body[data-phone-view=landmarks] #landmark-menu .journey-list button{min-height:52px;padding:8px 6px;font-size:12px}body[data-phone-view=landmarks] #landmark-menu small{font-size:11px}
 #route-summary.phone-route-card{left:12px;right:12px;bottom:16px;top:auto;transform:none;width:auto;max-width:none;margin:0;padding:12px 15px;display:block;box-shadow:0 8px 30px #0003}
 #route-summary.phone-route-card[hidden]{display:none}#route-summary.phone-route-card strong{font-size:11px;padding-right:23px;line-height:1.4}#route-summary.phone-route-card .route-numbers{margin:6px 0 4px;gap:18px}#route-summary.phone-route-card .route-numbers b{font-size:25px}#route-summary.phone-route-card #route-metrics{display:block;font-size:8px}
 .phone-route-actions{display:flex;gap:8px;margin-top:9px}.phone-route-actions button{flex:1;font-size:11px;min-height:40px;padding:8px}#phone-change-landmark{background:#d8bb86;color:#10251f;border-color:#d8bb86}
 body[data-phone-view=route] #map .pin:not(.selected){display:none}body[data-phone-view=route] #route-summary{display:block}
 .clean-map #phone-map-menu,.clean-map #detail,.clean-map .portfolio,.clean-map #route-summary.phone-route-card{display:none}.clean-map .explorer-controls{display:flex;top:auto;right:auto;left:12px;bottom:16px;z-index:8}.clean-map .explorer-controls button{height:44px;width:44px}
 #toast{max-width:calc(100% - 24px);font-size:11px}
}
@media(max-width:700px) and (max-height:560px){#detail .hero{max-height:12dvh}#detail{max-height:52%}#detail .detail-inner{padding:9px 12px}#detail h3{font-size:17px}#detail .location{margin-bottom:7px}.phone-project-actions button{min-height:40px}#route-summary.phone-route-card{padding:9px 12px}#route-summary.phone-route-card .route-numbers b{font-size:21px}.phone-route-actions{margin-top:5px}body[data-phone-view=landmarks] .portfolio.showing-journeys{height:53%}}

@media(max-width:700px){.desktop-destination-title{display:none}#landmark-menu h4 .phone-only{display:inline}}
/* Full-screen phone project presentation, with an independently scrolling body. */
.phone-gallery{display:none}
@media(max-width:700px){
 body[data-phone-view=project] #detail:not([hidden]){display:block;position:fixed;inset:0;z-index:20;width:100%;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;padding:0 0 calc(84px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:var(--panel)}
 body[data-phone-view=project] #detail .detail-close{position:fixed;top:calc(12px + env(safe-area-inset-top));right:14px;float:none;margin:0;z-index:22;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#10251fee;color:#fff;font-size:32px;line-height:1;border:1px solid #ffffff50;box-shadow:0 3px 15px #0003}
 body[data-phone-view=project] #detail>.hero{display:none}
 #detail .phone-gallery{display:block;background:var(--bg);padding-top:calc(70px + env(safe-area-inset-top))}
 .phone-photo-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;aspect-ratio:16/10;width:100%;max-height:58dvh}.phone-photo-track::-webkit-scrollbar{display:none}.phone-photo-track>img{display:block;flex:0 0 100%;width:100%;min-width:100%;height:100%;object-fit:contain;scroll-snap-align:start;scroll-snap-stop:always}
 .phone-photo-nav{display:flex;justify-content:center;align-items:center;gap:18px;padding:5px 14px 8px}.phone-photo-nav[hidden]{display:none}.phone-photo-nav button{width:44px;height:44px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:27px}.phone-photo-nav button:disabled{opacity:.3;cursor:default}.photo-count{font-size:12px;min-width:42px;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted)}
 body[data-phone-view=project] #detail .detail-inner{padding:22px 22px 26px}body[data-phone-view=project] #detail h3{font-size:29px;line-height:1.2;margin:7px 0 9px}body[data-phone-view=project] #detail .location{font-size:12px;margin-bottom:20px}
 body[data-phone-view=project] #detail .eyebrow,body[data-phone-view=project] #detail .desc,body[data-phone-view=project] #detail .project-link,body[data-phone-view=project] #detail .approx,body[data-phone-view=project] #detail .source-page{display:block}body[data-phone-view=project] #detail .desc{font-size:14px;line-height:1.8;margin:18px 0}body[data-phone-view=project] #detail .facts{display:flex;flex-wrap:wrap;gap:8px}body[data-phone-view=project] #detail .facts span{font-size:11px}body[data-phone-view=project] #detail .source-page{font-size:9px;line-height:1.7;margin-top:22px}body[data-phone-view=project] #detail .gallery-thumbs{display:none}
 body[data-phone-view=project] #detail .phone-project-actions{position:fixed;bottom:0;left:0;right:0;z-index:21;display:flex;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -6px 24px #0001}#detail #compare-distance{min-height:50px;font-size:14px;display:flex;justify-content:space-between;align-items:center;padding:14px 20px}
}
@media(max-width:700px){body[data-phone-view=project] #detail .desc{color:var(--text)}body[data-phone-view=project] #detail .location,body[data-phone-view=project] #detail .facts span{color:var(--muted)}}

/* Keep the driving figures in the map’s lower-left corner. */
@media(min-width:701px){#route-summary:not(.docked-route){left:104px;bottom:100px;transform:none;max-width:320px}}

/* Match full-frame photography to the main portfolio. */
#detail>.hero{object-fit:contain;object-position:center;transform:none;cursor:default}#detail .phone-photo-track>img{object-fit:contain;transform:none}
