@font-face{font-family:Raleway;src:url('./assets/raleway.ttf') format('truetype');font-weight:100 900;font-display:swap}@font-face{font-family:Acumin;src:url('./assets/acumin.otf') format('opentype');font-weight:100 900;font-display:swap}
:root{--teal:#00767e;--deep:#00575e;--lime:#b6cc2b;--pale:#e1ec65;--blue:#00a1d3;--orange:#f8a22c;--pink:#ff3d84;--ink:#173b3e;--muted:#536d70;--line:#dce7e7;--paper:#f5f8f8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Raleway,Arial,sans-serif;font-size:16px;line-height:1.45}button,input,select{font:inherit}button,select{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.45}a{color:var(--teal)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #f8a22c;outline-offset:3px}button{border:0}button svg{pointer-events:none}.skip{position:absolute;top:-100px;left:10px;background:white;padding:12px;z-index:50}.skip:focus{top:10px}.site-header{background:var(--teal);color:white;padding:26px 4%;display:flex;align-items:center;gap:30px;border-bottom:6px solid var(--lime)}.brand{width:116px;height:72px;flex:none}.header-text{border-left:1px solid #68aab0;padding-left:30px}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;margin:0 0 3px;color:var(--pale)}h1{font-family:Acumin,Raleway,sans-serif;font-weight:850;font-size:clamp(25px,2.7vw,39px);line-height:1.08;margin:0}h2,h3,p{margin-top:0}.header-note{margin:6px 0 0;font-size:15px;color:#e1eeee}.period{margin-left:auto;border:1px solid #78b1b6;border-radius:30px;padding:8px 16px;white-space:nowrap;font-size:14px}.workspace{max-width:1700px;margin:auto;padding:24px 4% 0}.filter-bar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,.55fr) minmax(155px,.4fr) auto;gap:14px;align-items:end}.field label{display:block;font-size:13px;font-weight:750;margin:0 0 6px}.input-wrap{position:relative}.input-wrap svg{position:absolute;left:14px;top:14px;width:20px;color:var(--muted)}input,select{width:100%;height:48px;border:1px solid #b5cacc;background:white;border-radius:10px;padding:0 14px;color:var(--ink);font-size:15px}input{padding-left:44px}input::placeholder{color:#687f81}select{padding-right:30px}.reset{height:48px;background:transparent;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;padding:0 8px}.types{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:18px 0}.type{border:1px solid #bdcdcf;background:white;border-radius:30px;display:flex;align-items:center;gap:7px;padding:9px 13px;font-size:14px;font-weight:650;transition:background .15s}.type svg{width:18px;height:18px}.type.active{background:var(--deep);color:white;border-color:var(--deep)}.type:hover:not(.active){background:#e6eeee}.summary{display:flex;gap:26px;align-items:center;padding:0 0 17px;font-size:14px}.summary strong{font-family:Acumin,sans-serif;font-size:25px;font-weight:850;vertical-align:-1px;margin-right:4px}.scope-note{margin-left:auto;color:var(--muted);font-size:13px}.explorer{display:grid;grid-template-columns:minmax(0,1fr) 355px;border-radius:18px;overflow:hidden;border:1px solid #bfd1d3;background:white;box-shadow:0 8px 32px #003d4510}.map-wrap{background:var(--teal);position:relative;min-height:640px;height:min(76vh,820px);isolation:isolate}.map{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.map.dragging{cursor:grabbing}.department{fill:#398f96;stroke:#a2c9cc;stroke-width:.8;vector-effect:non-scaling-stroke;transition:fill .15s}.department.has-data{fill:#bad141;stroke:#e9f3a6;cursor:pointer}.department.selected{fill:#e1ec65;stroke:white;stroke-width:1.6}.department.has-data:hover{fill:#e5ee85}.map-title{position:absolute;top:22px;left:24px;pointer-events:none;color:white}.map-title b{display:block;font-size:19px}.map-title span{font-size:13px;color:#d7e9e9}.map-controls{position:absolute;right:18px;top:18px;display:flex;flex-direction:column;gap:7px}.map-controls button{width:42px;height:42px;border-radius:10px;background:white;display:grid;place-items:center;box-shadow:0 2px 10px #00464d33}.map-controls svg{width:20px;height:20px}.map-controls button:hover{background:var(--pale)}.map-key{position:absolute;left:20px;bottom:35px;background:#00575eea;color:white;border:1px solid #62a4a9;border-radius:9px;padding:8px 11px;display:flex;align-items:center;gap:7px;font-size:12px;pointer-events:none}.key-dot{width:12px;height:12px;background:var(--pale);border:2px solid white;border-radius:50%}.attribution{position:absolute;bottom:0;right:0;left:0;color:#e2f0f0;background:#00575ecc;padding:5px 10px;font-size:11px;display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.attribution a{color:white}.map-marker{cursor:pointer;outline:none}.map-marker circle{fill:var(--pale);stroke:white;stroke-width:2;vector-effect:non-scaling-stroke}.map-marker text{fill:#004e55;pointer-events:none;font-family:Raleway,sans-serif;font-weight:850;text-anchor:middle;dominant-baseline:central}.map-marker:hover circle,.map-marker:focus circle{fill:white;stroke:var(--orange);stroke-width:3}.map-marker.is-selected circle{fill:var(--orange);stroke:white;stroke-width:3}.map-label{fill:#eff8f5;paint-order:stroke;stroke:#00767e;stroke-width:3;stroke-linejoin:round;font-family:Raleway,sans-serif;font-weight:650;text-anchor:middle;pointer-events:none}.tooltip{position:absolute;display:none;background:#fff;color:var(--ink);border-radius:8px;padding:7px 11px;box-shadow:0 3px 14px #00363d44;pointer-events:none;font-size:13px;z-index:10;max-width:230px}.map-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(85%,350px);background:white;padding:22px;border-radius:14px;text-align:center}.map-empty strong{display:block}.map-empty p{font-size:14px;margin:6px 0 0}.side-panel{border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;height:min(76vh,820px);min-height:640px}.list-head{padding:21px 22px 16px;border-bottom:1px solid var(--line);flex:none}.list-head h2{font-size:21px;line-height:1.2;margin:0 0 5px;font-weight:800}.list-head p{font-size:13px;margin:0;color:var(--muted)}.results{overflow:auto;flex:1;overscroll-behavior:contain;padding:0 10px 10px}.result{width:100%;text-align:left;display:block;background:white;border-bottom:1px solid var(--line);padding:15px 12px;position:relative}.result:hover{background:#f0f6f5}.result-name{font-size:16px;font-weight:750;display:block;padding-right:26px}.result-place{font-size:13px;color:var(--muted);margin:3px 0 8px;display:block}.result .chevron{position:absolute;top:18px;right:10px;width:18px;color:var(--teal)}.mini-tags{display:flex;flex-wrap:wrap;gap:5px}.mini-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:650;border-radius:5px;padding:3px 6px;background:#eaf1f1;color:var(--deep)}.mini-tag svg{width:13px;height:13px}.empty-list{padding:25px 14px}.empty-list h3{font-size:18px}.empty-list p{font-size:14px;color:var(--muted)}.detail{overflow:auto;padding:22px}.back{display:flex;align-items:center;gap:7px;background:none;padding:0;font-size:14px;color:var(--teal);font-weight:750;margin-bottom:27px}.back svg{width:18px}.detail .kicker{color:var(--teal);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.detail h2{font-family:Acumin,sans-serif;font-weight:800;font-size:33px;line-height:1.08;margin-bottom:9px}.detail-place{font-size:16px;color:var(--muted);margin-bottom:24px}.year-badge{display:inline-block;border:1px solid #b7d2d1;border-radius:30px;font-size:13px;padding:5px 10px;margin:0 0 27px}.detail h3{font-size:15px;font-weight:800;margin-bottom:12px}.program{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);padding:12px 0;font-size:15px;font-weight:650}.program-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#e5f0ef;color:var(--teal);flex:none}.program-icon svg{width:20px;height:20px}.detail-note{background:#fff4dc;border-left:3px solid var(--orange);padding:11px 13px;font-size:13px;margin-top:22px}.detail-meta{border-top:1px solid var(--line);padding-top:15px;margin-top:25px;font-size:12px;color:var(--muted)}.detail-meta p{margin:5px 0}.mobile-switch{display:none}.method{padding:18px 0 25px;font-size:13px;color:var(--muted)}.method summary{cursor:pointer;width:fit-content;font-weight:700;color:var(--teal)}.method-content{max-width:940px;padding-top:12px;line-height:1.65}.method-content p{margin-bottom:10px}.site-footer{border-top:1px solid var(--line);max-width:calc(100% - 8%);margin:0 auto;padding:17px 0 25px;display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px}.footer-motto{font-weight:800;color:var(--teal)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}body.embed .site-header{padding:17px 3%}body.embed .workspace{padding:18px 3% 0}body.embed .site-footer{display:none}
@media(min-width:1550px){.explorer{grid-template-columns:minmax(0,1fr) 410px}.map-wrap,.side-panel{height:800px}.site-header{padding-left:max(4%,calc((100vw - 1564px)/2));padding-right:max(4%,calc((100vw - 1564px)/2))}}
@media(max-width:1050px){.period{display:none}.filter-bar{grid-template-columns:minmax(180px,1fr) minmax(160px,.8fr) minmax(135px,.6fr);gap:10px}.reset{grid-column:3;text-align:right;height:25px}.types{padding-top:10px}.summary{gap:16px}.scope-note{display:none}.explorer{grid-template-columns:minmax(0,1fr) 320px}}
@media(max-width:760px){.site-header{padding:20px 5%;gap:19px}.brand{width:79px;height:53px}.header-text{padding-left:19px}.eyebrow{font-size:10px;letter-spacing:.1em}h1{font-size:26px}.header-note{font-size:13px;margin-top:5px}.workspace{padding:20px 4% 0}.filter-bar{grid-template-columns:1fr 1fr}.field:first-child{grid-column:1/-1}.reset{grid-column:auto;text-align:left;padding:0;font-size:13px;height:24px}.types{gap:7px;padding:13px 0}.type{font-size:13px;padding:8px 10px}.type svg{width:16px}.summary{gap:13px;flex-wrap:wrap;font-size:12px;padding-bottom:12px}.summary strong{font-size:23px}.mobile-switch{display:flex;gap:4px;padding:4px;background:#e1eaea;border-radius:10px;margin-bottom:12px}.mobile-switch button{flex:1;padding:8px;background:transparent;border-radius:7px;font-size:14px;font-weight:750}.mobile-switch button.active{background:white;box-shadow:0 1px 4px #17474d12}.explorer{display:block;border-radius:14px}.map-wrap{height:550px;min-height:0}.side-panel{height:auto;min-height:0;max-height:520px;border-left:0;border-top:1px solid var(--line)}.side-panel.list-mode{max-height:650px}.list-head{padding:17px 19px}.results{max-height:420px}.detail{max-height:none;padding:21px}.side-panel.detail-mode{max-height:none}.map-controls{right:12px;top:12px}.map-title{left:17px;top:17px}.map-key{left:13px;bottom:42px;font-size:11px}.attribution{font-size:10px;justify-content:center}.map-wrap.mobile-hide{display:none}.side-panel.mobile-hide{display:none}.method{font-size:12px;padding:16px 1% 22px}.site-footer{font-size:11px;flex-wrap:wrap}.detail h2{font-size:30px}.map-label{font-size:12px}.period{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Original Tierra Grata artwork supplied in iconos.svg. */
.brand-icon{width:23px;height:23px;object-fit:contain;flex:none;pointer-events:none}.brand-icon.wordmark{width:57px;height:29px}.type.active .brand-icon{background:white;border-radius:5px;padding:2px}.mini-tag .brand-icon{width:19px;height:19px}.mini-tag .brand-icon.wordmark{width:49px;height:23px}.mini-tag{font-size:12px;min-height:27px}.program-icon{width:64px;height:45px;border-radius:9px;background:#fff}.program-icon .brand-icon{width:35px;height:35px}.program-icon .brand-icon.wordmark{width:62px;height:37px}.type{min-height:43px}.map-marker image{pointer-events:none}

.tooltip.solution-tooltip{width:300px;max-width:calc(100% - 20px);padding:0;pointer-events:auto;border:1px solid #cde0dd;border-radius:14px;box-shadow:0 10px 35px #00363d40;overflow:hidden;animation:solution-in .16s ease-out}
.hover-heading{padding:12px 16px;background:#edf4f1;font-weight:800;color:var(--deep)}
.hover-communities{max-height:min(350px,48vh);overflow-y:auto;overscroll-behavior:contain}
.hover-community{padding:15px 16px;border-bottom:1px solid var(--line)}
.hover-community>strong{font-size:17px;color:var(--deep);line-height:1.2;display:block}
.hover-community>p{font-size:12px;color:var(--muted);margin:5px 0 12px}
.hover-solutions{display:grid;gap:8px}.hover-solution{display:flex;gap:10px;align-items:center;font-weight:650;font-size:13px}
.hover-solution>span:first-child{width:64px;height:38px;display:grid;place-items:center;flex:none}
.hover-solution .brand-icon,.hover-solution svg{width:32px;height:32px;color:var(--teal)}
.hover-solution .brand-icon.wordmark{width:64px;height:38px}
.hover-hint{padding:10px 16px;background:#f6f9f8;font-size:11px;color:var(--muted)}
@keyframes solution-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.tooltip.solution-tooltip{animation:none}}

/* White map and institutional colors from the supplied reference. */
body{background:#fff}.map-wrap{background:#fff}
.department{fill:#fff;stroke:#00767e;stroke-width:1;transition:fill .2s,opacity .2s}
.department.has-data{fill:var(--territory-color);stroke:white;stroke-width:1.3}
.department.selected{fill:var(--territory-color);stroke:#00575e;stroke-width:2.5}
.department.has-data:hover{fill:var(--territory-color);opacity:.82}
.map-title{color:var(--deep)}.map-title span{color:#536d70;display:block;max-width:250px}
.map-label{fill:#173b3e;stroke:white;stroke-width:3;vector-effect:non-scaling-stroke}
.attribution{background:#ffffffed;color:#536d70;border-top:1px solid #e3ecec}.attribution a{color:var(--teal)}
.map-key{background:#fff;color:var(--deep);border:1px solid #cadcdd}.key-dot{background:var(--lime);border-color:var(--teal)}
.map-controls button{border:1px solid #cadcdd;box-shadow:0 2px 8px #00464d16}
.map-marker .pin-body{fill:var(--lime);stroke:#fff;stroke-width:1.3;vector-effect:non-scaling-stroke}
.map-marker .pin-center,.map-marker:hover .pin-center,.map-marker:focus .pin-center{fill:white;stroke:none}
.map-marker:hover .pin-body,.map-marker:focus .pin-body{fill:var(--teal);stroke:var(--lime);stroke-width:2}
.map-marker.is-selected .pin-body{fill:var(--orange);stroke:white;stroke-width:2}
.map-marker.is-selected .pin-center{fill:white;stroke:none}
#island-inset{pointer-events:none}

/* Quiet exploration: borders stay visible; solution icons appear on demand. */
.department{stroke-width:2.4}.department.has-data{stroke:#fff;stroke-width:2.4}.department.selected{stroke:#00575e;stroke-width:3}
.map-key,#map-labels{display:none}
.map-title span{max-width:275px;font-size:12px}
.map-marker .location-hit,.map-marker:hover .location-hit,.map-marker:focus .location-hit,.map-marker.is-selected .location-hit{fill:transparent;stroke:none}
.solution-reveal{opacity:0;transition:opacity .16s ease;pointer-events:none}
.map-marker.is-hovered .solution-reveal{opacity:1}
.map-marker .solution-disc,.map-marker:hover .solution-disc,.map-marker:focus .solution-disc{fill:#fff;stroke:#00767e;stroke-width:1.2;vector-effect:non-scaling-stroke}
.map-marker:focus-visible{outline:none}.map-marker:focus-visible .solution-disc{stroke:#f8a22c;stroke-width:2.5}

/* Persistent location dots, solution pins revealed on hover or selection. */
.map-marker .community-point,.map-marker:hover .community-point,.map-marker:focus .community-point{fill:#00767e;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.map-marker.is-selected .community-point{fill:#f8a22c;stroke:#00767e;stroke-width:1.5}
.map-marker.is-selected .solution-reveal{opacity:1}
.solution-pin-body{fill:#b6cc2b;stroke:white;stroke-width:1.2;vector-effect:non-scaling-stroke}
.map-marker .solution-pin .solution-disc,.map-marker:hover .solution-pin .solution-disc,.map-marker:focus .solution-pin .solution-disc{fill:white;stroke:none}
.map-marker.is-selected .solution-pin-body{fill:#f8a22c}

.department{stroke-linejoin:round;stroke-linecap:round;shape-rendering:geometricPrecision}

/* Mi Período Grato: Tierra Grata pink, including selected locations. */
.map-marker.has-period .community-point,.map-marker.has-period:hover .community-point,.map-marker.has-period:focus .community-point,.map-marker.has-period.is-selected .community-point{fill:#ff3d84;stroke:#fff;stroke-width:1.8}
.solution-pin.period-pin .solution-pin-body,.map-marker.is-selected .solution-pin.period-pin .solution-pin-body{fill:#ff3d84}

/* Typography for the landing integration. */
@font-face{font-family:'Acumin Pro UltraBlack';src:url('../fonts/acumin-pro-ultrablack.ttf') format('truetype');font-weight:900;font-display:swap;}
@font-face{font-family:'Acumin Variable Concept';src:url('../fonts/acumin-variable-concept.ttf') format('truetype');font-weight:100 900;font-display:swap;}
body{font-family:'Acumin Variable Concept',sans-serif;}
h1,h2,h3,.detail h2{font-family:'Acumin Pro UltraBlack',sans-serif;font-weight:900;}
button,.reset,.result-name{font-family:'Acumin Pro UltraBlack',sans-serif;font-weight:900;}
button:not(.result){text-transform:uppercase;}
body.embed .site-header{display:none;}
body.embed .workspace{padding-top:20px;}
