/* Region shapes carry selection and focus; information stays below the map. */
.geo {padding:64px 0;background:#141513;color:#f7f5f0;scroll-margin-top:78px;}
.geo .geo-heading {display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:8px;}
.geo h2 {font-size:clamp(30px,3.6vw,50px);line-height:1.13;margin:0;}
.geo-legend {display:flex;align-items:center;gap:9px;font-size:12px;color:#b8beaf;margin:0;white-space:nowrap;}
.geo-legend > span:first-child {width:8px;height:8px;flex-shrink:0;background:#ffe64b;border-radius:50%;}
.geo-map-frame {position:relative;isolation:isolate;overflow:hidden;aspect-ratio:2;margin:16px 0 4px;}
.geo-map {display:block;width:100%;height:100%;user-select:none;touch-action:manipulation;}
.geo-region {fill:#30352f;stroke:#69715f;stroke-width:.65;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
.geo-region.has-projects {fill:#ffe64b;stroke:#141513;stroke-width:1;cursor:pointer;transition:fill .18s;}
.geo-region.has-projects:hover {fill:#fff9d0;stroke:#fff9d0;stroke-width:1.6;}
.geo-region.is-selected {fill:#fff4b0;stroke:#fff4b0;stroke-width:1.6;}
.geo[data-zoomed="true"] .geo-region.has-projects {fill:#646340;stroke:#aaa980;}
.geo[data-zoomed="true"] .geo-region.is-selected {fill:#ffe64b;stroke:#fff4b0;stroke-width:1.6;}
.geo[data-zoomed="true"] .geo-region.has-projects:hover {fill:#e2d774;}
/* SVG focus outlines are rectangular in some browsers. Stroke follows the border. */
.geo-map,.geo-region,.geo-region:focus,.geo-region:focus-visible {outline:none!important;box-shadow:none;-webkit-tap-highlight-color:transparent;}
.geo .geo-map .geo-region.has-projects:focus-visible {stroke:#fff;stroke-width:2.5;}
.geo-tooltip {position:absolute;z-index:3;max-width:calc(100% - 24px);padding:9px 13px;background:#f7f5f0;color:#141513;font-size:13px;font-weight:650;line-height:1.35;border-radius:5px;pointer-events:none;box-shadow:0 4px 18px #0003;}
.geo-selection {display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:22px 0;border-top:1px solid #41463b;border-bottom:1px solid #41463b;}
.geo-region-picker,.geo-project-picker {flex:1 1 260px;min-width:0;}
.geo-selection select {width:100%;min-height:46px;padding:10px 36px 10px 14px;border:1px solid #626958;border-radius:6px;background:#20241e;color:#f7f5f0;font:inherit;font-size:14px;cursor:pointer;color-scheme:dark;text-overflow:ellipsis;}
.geo-view-controls {display:flex;gap:8px;flex-shrink:0;margin-left:auto;}
.geo-view-controls button {display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:8px 16px;border:1px solid #626958;border-radius:6px;background:transparent;color:#c9cdbf;font:inherit;font-size:13px;cursor:pointer;}
.geo-view-controls button[aria-pressed="true"] {border-color:#c9cdbf;color:#f7f5f0;}
.geo button:hover {border-color:#ffe64b;}
.geo button:focus-visible,.geo select:focus-visible,.geo a:focus-visible {outline:2px solid #ffe64b;outline-offset:4px;}
.geo-detail {display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:center;min-height:180px;padding-top:28px;}
.geo-photo {width:100%;height:auto;aspect-ratio:1.7;object-fit:cover;border-radius:6px;}
.geo-detail:has(.geo-photo[hidden]) .geo-project-copy {grid-column:1 / -1;max-width:820px;}
.geo-location {margin:0 0 8px;font-size:12px;color:#b5bfa7;}
.geo .geo-title {font-family:Manrope,sans-serif;font-weight:750;letter-spacing:-.025em;line-height:1.25;font-size:28px;margin:0 0 10px;text-wrap:pretty;}
.geo-description {max-width:730px;margin:0 0 10px;font-size:15px;line-height:1.6;color:#c3c8ba;}
.geo-project-link {display:inline-flex;align-items:center;min-height:40px;border-bottom:1px solid #858b7c;font-size:13px;font-weight:650;}
.geo-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:980px) {.geo .geo-heading {align-items:flex-start;flex-direction:column;gap:14px;}.geo .geo-title {font-size:26px;}}
@media(max-width:700px) {
  .geo {padding:44px 0;scroll-margin-top:68px;}
  .geo h2 {font-size:29px;}
  .geo-map-frame {aspect-ratio:1.75;margin:14px -4px 4px;}
  .geo-region {stroke-width:.45;}
  .geo-region.has-projects {stroke-width:.65;}
  .geo-region.is-selected {stroke-width:1.4;}
  .geo-tooltip {font-size:12px;padding:8px 10px;}
  .geo-selection {gap:10px;padding:18px 0;}
  .geo-region-picker,.geo-project-picker {flex-basis:100%;}
  .geo-selection select {font-size:16px;}
  .geo-view-controls {width:100%;margin-left:0;}
  .geo-view-controls button {flex:1;padding:8px 12px;}
  .geo-detail {display:block;min-height:0;padding-top:24px;}
  .geo-photo {max-height:210px;margin:0 0 20px;}
  .geo .geo-title {font-size:25px;}
  .geo-description {font-size:14px;}
}
@media(prefers-reduced-motion:reduce) {.geo-region {transition:none;}}
