.portfolio-map-section{padding:88px 32px;background:#fff;color:#203444;font-family:-apple-system,BlinkMacSystemFont,Inter,Arial,sans-serif}.portfolio-map-section *{box-sizing:border-box}.portfolio-map-inner{max-width:1120px;margin:auto}.portfolio-map-header{display:flex;justify-content:space-between;align-items:flex-end;gap:42px;margin-bottom:32px}.portfolio-map-header h2{font:600 clamp(30px,3.5vw,44px)/1.12 -apple-system,BlinkMacSystemFont,Inter,Arial,sans-serif;letter-spacing:-.04em;max-width:560px;margin:0}.portfolio-map-header>p{max-width:320px;font-size:16px;line-height:1.7;color:#61727d;margin:0}.portfolio-map-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);border:1px solid #dce5e8;border-radius:26px;overflow:hidden;background:#fff}.portfolio-map-surface{background:linear-gradient(140deg,#edf4f4,#f7faf8);position:relative;min-width:0;padding:18px 24px}.portfolio-map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;position:relative;z-index:1}.portfolio-map-toolbar>span{font-size:11px;letter-spacing:.19em;color:#667c80;font-weight:600}.portfolio-map-toolbar>div{display:flex;gap:6px}.portfolio-map-toolbar button{height:40px;min-width:40px;padding:0 12px;background:#fff;border:1px solid #d0dcdf;border-radius:10px;color:#24424d;font:500 15px/1 inherit;cursor:pointer}.portfolio-map-toolbar button:hover{background:#dceae8}#portfolio-map-svg{display:block;width:100%;height:auto;max-height:650px;overflow:hidden;touch-action:pan-y;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}.map-place-label{font:600 12px/1 -apple-system,BlinkMacSystemFont,Inter,Arial,sans-serif;letter-spacing:.01em;fill:#28434e;paint-order:stroke;stroke:#f5f9f8;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.map-place-dot{fill:#789395;stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.map-pin{cursor:pointer;outline:none}.map-pin:focus path,.map-pin:hover path{stroke:#eac86c;stroke-width:3}.map-density-key{display:flex;align-items:center;gap:10px;font-size:12px;color:#586f73;margin-top:8px}.map-density-swatch{width:54px;height:9px;border-radius:6px;background:linear-gradient(90deg,#cfede5,#31b7a1,#efb94e)}.portfolio-map-panel{padding:32px;border-left:1px solid #dce5e8}.map-headline-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-bottom:1px solid #e1e7eb;padding-bottom:24px}.map-headline-stats strong{display:block;font-size:31px;font-weight:600;letter-spacing:-.035em;line-height:1.2}.map-headline-stats span{display:block;font-size:12px;color:#6a7a84;margin-top:7px}.map-stage-key{display:flex;flex-wrap:wrap;gap:10px 14px;margin:22px 0 28px}.map-stage-key span{font-size:12px;display:flex;align-items:center;gap:6px;color:#516873}.map-stage-key i{width:8px;height:8px;border-radius:50%;display:inline-block}.portfolio-map-panel label{display:block;font-size:14px;font-weight:600;margin-bottom:10px}.portfolio-map-panel select{width:100%;height:48px;border:1px solid #c5d2d9;border-radius:10px;padding:0 12px;background:#fff;color:#223d4c;font-size:14px;text-overflow:ellipsis}.map-welcome{padding:26px 0 12px}.portfolio-map-panel h3{font-size:22px;line-height:1.25;letter-spacing:-.02em;margin:0 0 14px}.map-welcome p{font-size:15px;color:#687984;line-height:1.75;margin:0}.map-location-note{font-size:12px!important;line-height:1.7!important;color:#687984;margin:24px 0 20px}.map-portfolio-link,.map-selected-project>a{font-size:14px;font-weight:600;color:#23536c;text-decoration:none;display:inline-block}.map-portfolio-link:hover,.map-selected-project>a:hover{text-decoration:underline}.map-data-credit{font-size:11px;line-height:1.7;color:#778891;margin:14px 0 0}.map-data-credit a{color:inherit;text-decoration:underline}.map-selected-project{padding-top:24px}.map-selected-project img{width:100%;height:150px;object-fit:cover;border-radius:12px;display:block;margin-bottom:18px}.map-selected-project .map-project-stage{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#61747e;margin:0 0 10px}.map-selected-project>p{font-size:14px;line-height:1.6;color:#61747e;margin:0 0 12px}.map-selected-project>strong{display:block;font-size:18px;margin-bottom:8px}.map-selected-project .map-precision{font-size:11px}.map-cluster-list button{display:block;width:100%;background:#f2f6f7;border:1px solid #dae4e7;border-radius:10px;padding:12px;margin:8px 0;text-align:left;font-size:14px;color:#234150;cursor:pointer}.map-cluster-list span{display:block;font-size:12px;margin-top:4px}@media(max-width:800px){.portfolio-map-section{padding:58px 24px}.portfolio-map-header{display:block}.portfolio-map-header>p{margin-top:22px;max-width:550px}.portfolio-map-layout{grid-template-columns:1fr}.portfolio-map-panel{border-left:0;border-top:1px solid #dce5e8;padding:26px}#portfolio-map-svg{max-height:510px}.portfolio-map-surface{padding:18px}.map-headline-stats{max-width:400px}.map-selected-project img{height:auto;max-height:240px;object-fit:contain;background:#f4f7f8}}@media(prefers-reduced-motion:reduce){.portfolio-map-section *{scroll-behavior:auto}}

#portfolio-map-svg>text{pointer-events:none}.portfolio-map-section{scroll-margin-top:90px}

.portfolio-map-section .home-kicker{color:#637582!important;font-size:12px!important}.portfolio-map-section .portfolio-map-header h2{color:#203444!important}

/* Refined map detail and official California county boundaries. */
#map-county-lines{fill:none;stroke:#8fa4a3;stroke-width:.7;stroke-opacity:.68;pointer-events:none}
#map-county-lines path{vector-effect:non-scaling-stroke}
.map-county-key{display:inline-flex;align-items:center;gap:7px;margin-left:8px}
.map-county-key i{display:inline-block;width:22px;height:0;border-top:1px solid #8fa4a3}
.portfolio-map-surface{background:radial-gradient(circle at 48% 40%,#fbfdfc 0,#edf4f3 72%,#e7efee 100%)}
#portfolio-map-svg{filter:drop-shadow(0 8px 16px rgba(31,64,70,.06))}
@media(max-width:560px){.map-density-key{align-items:flex-start;flex-wrap:wrap;line-height:1.5}.map-county-key{margin-left:0;width:100%}}

/* Keep dense Bay Area county boundaries legible above the project glow. */
#map-county-lines{stroke:#718b8d;stroke-width:1;stroke-opacity:.9}

/* Direct map exploration with mouse, trackpad, or touch. */
.portfolio-map-toolbar>span small{display:block;margin-top:5px;font-size:10px;letter-spacing:.02em;text-transform:none;font-weight:500;color:#75898d}
#portfolio-map-svg{cursor:default;user-select:none;-webkit-user-select:none}
#portfolio-map-svg:not([viewBox="0 0 700 830"]){cursor:grab;touch-action:none}
#portfolio-map-svg.is-dragging{cursor:grabbing}
#portfolio-map-svg{touch-action:none}
.map-county-label{font:600 8px/1 -apple-system,BlinkMacSystemFont,Inter,Arial,sans-serif;letter-spacing:.015em;fill:#60787a;paint-order:stroke;stroke:#f4f8f7;stroke-width:2.5px;stroke-linejoin:round;pointer-events:none}
