.map-explorer{display:grid;grid-template-columns:1.4fr 1fr;gap:6%;align-items:center;margin-top:44px;margin-bottom:40px}.map-canvas{position:relative;background:#113d3e;border-radius:6px;padding:22px;overflow:hidden;color:white}.map-canvas svg{display:block;width:100%;aspect-ratio:1;max-height:620px;overflow:hidden}.map-state{cursor:pointer;outline:none}.map-state path{fill:#235052;stroke:#82a79a;stroke-width:.9;vector-effect:non-scaling-stroke;transition:fill .2s,stroke .2s}.map-state.has-projects path{fill:#6a9d80}.map-state:hover path,.map-state:focus-visible path{fill:#9cd79b;stroke:#fff;stroke-width:2}.map-state.selected path{fill:#c5e88a;stroke:#fff;stroke-width:2}.state-label{fill:#082c2a;font-size:12px;pointer-events:none;text-anchor:middle;font-weight:700}.map-legend{display:flex;gap:10px;align-items:center;font-size:12px;line-height:1.5;margin:12px 0}.map-legend span{width:12px;height:12px;flex-shrink:0;border-radius:2px;background:#6a9d80}.map-credit{font-size:12px;color:#c6dace;text-decoration:underline}.map-controls h3{font-size:40px;letter-spacing:-1.4px;font-weight:500;margin:0 0 17px}.map-controls>p{font-size:16px;line-height:1.65;color:#516d62;margin-bottom:23px}.map-controls .state-select{margin-bottom:18px;min-width:0;font-size:14px}.map-controls input{font:inherit;background:transparent;border:1px solid #b8c8ba;padding:13px 15px;width:100%;color:#173e35;border-radius:0}.map-controls select{width:100%}.map-controls button{border:1px solid #456e5d;border-radius:25px;color:#173e35;background:transparent;padding:12px 19px;font-size:14px;cursor:pointer}.map-controls button:hover{background:#173e35;color:white}.map-controls p.map-note{font-size:12px;line-height:1.65;margin-top:22px}.portfolio-gallery{padding-top:75px;border-top:1px solid #cfdbd1}.portfolio-gallery h2{font-size:clamp(35px,4vw,58px);letter-spacing:-2px;margin-bottom:30px}.portfolio-gallery>p{padding:34px;border:1px solid #c7d8ce;background:#eaf1eb;font-size:17px;line-height:1.7;color:#567164}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-item{border:0;padding:0;text-align:left;background:white;color:#173e35;cursor:zoom-in}.gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.gallery-item span{display:block;padding:18px;font-size:14px;line-height:1.6}#gallery-dialog{padding:20px}#gallery-close{margin-left:auto;display:block;border:0;background:#173e35;color:white;font-size:24px;border-radius:50%;width:42px;height:42px}#gallery-image{max-height:75svh;width:auto;max-width:100%;margin:14px auto}#gallery-caption{font-size:16px}.fuel-concept{margin:-35px -40px 30px;position:relative}.fuel-concept img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}.fuel-concept figcaption{position:absolute;bottom:0;left:0;right:0;padding:28px 20px 14px;font-size:10px;line-height:1.5;letter-spacing:1px;background:linear-gradient(transparent,#062c2bcc);color:white}
@media(max-width:900px){.map-explorer{gap:4%;grid-template-columns:1.1fr 1fr}.map-canvas{padding:15px}.map-controls h3{font-size:32px}}@media(max-width:760px){.map-explorer{grid-template-columns:1fr;gap:30px;margin-top:30px}.map-canvas svg{max-height:480px}.map-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.map-controls>h3,.map-controls>p,.map-controls>.eyebrow,.map-controls>button,.map-controls>label:last-of-type{grid-column:1/-1}.map-controls>button{justify-self:start}.gallery-grid{grid-template-columns:1fr}.fuel-concept{margin:-28px -28px 27px}.fuel-concept figcaption{font-size:9px}.portfolio-gallery>p{padding:25px}.state-label{font-size:13px}}
@media(prefers-reduced-motion:reduce){.map-state path{transition:none}}
/* Square photographic portfolio, matching the supplied editorial reference. */
.portfolio-gallery{background:#fff;padding-inline:3%;padding-bottom:90px}.portfolio-gallery>.eyebrow,.portfolio-gallery>h2{margin-left:2%}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;background:#164a49;border:0;border-radius:0;isolation:isolate;cursor:zoom-in;transition:box-shadow .4s,transform .4s}.gallery-item img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:1;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1),filter .5s}.gallery-item .gallery-overlay{position:absolute;inset:7%;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#fff;border:7px solid #205459;text-align:center;opacity:0;transform:scale(.96);transition:opacity .4s,transform .5s;background:#062e321c}.gallery-item .gallery-overlay strong{font-size:16px;line-height:1.45;font-weight:500}.gallery-item .gallery-overlay>span{padding:0;font-size:15px;line-height:1.5}.gallery-overlay time{font-size:12px;line-height:1.5}.gallery-item:hover img,.gallery-item:focus-visible img,.gallery-item.revealed img{transform:scale(1.04);filter:brightness(.65)}.gallery-item:hover .gallery-overlay,.gallery-item:focus-visible .gallery-overlay,.gallery-item.revealed .gallery-overlay{opacity:1;transform:scale(1)}.gallery-item:hover,.gallery-item:focus-visible,.gallery-item.revealed{box-shadow:0 18px 25px #163e3c26;transform:translateY(-3px)}.gallery-item:focus-visible{outline:3px solid #205459;outline-offset:5px}
@media(max-width:1100px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}}@media(max-width:760px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portfolio-gallery{padding-inline:5%}.gallery-item .gallery-overlay{border-width:4px;inset:6%;padding:10px;gap:7px}.gallery-item .gallery-overlay strong{font-size:14px}.gallery-item .gallery-overlay>span{font-size:13px}.gallery-overlay time{font-size:12px}}@media(max-width:420px){.gallery-grid{grid-template-columns:1fr;gap:23px}.gallery-item .gallery-overlay{inset:7%;padding:20px;border-width:6px}.gallery-item .gallery-overlay strong{font-size:18px}.gallery-item .gallery-overlay>span{font-size:16px}}
@media(prefers-reduced-motion:reduce){.gallery-item,.gallery-item img,.gallery-item .gallery-overlay{transition:none;transform:none!important}}
