
:root{--paper:#F3EEE4;--paper2:#EBE4D6;--ink:#1C2A22;--green:#2D6B4A;--sage:#9DB8A5;--terra:#B9654A;--line:#D5CBB8;--mut:#6F6A60;
--Comer:#B9654A;--Mover:#2D6B4A;--Conviver:#B08A2E;--Descansar:#4F6F8F;--Cuidar:#7A5C8C;--r:18px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:Geist,system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit}
.mono{font-family:"Geist Mono",ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;font-size:11px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
img{display:block;max-width:100%}

/* hero / gate */
.hero{position:relative;min-height:100svh;color:var(--paper);display:flex;flex-direction:column;overflow:hidden;background:var(--ink)}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center 40%;transform:scale(1.04);animation:slow 22s ease-out forwards}
@keyframes slow{to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,30,24,.72) 0%,rgba(20,30,24,.25) 55%,rgba(20,30,24,0) 75%),linear-gradient(180deg,rgba(20,30,24,.55) 0%,rgba(20,30,24,.1) 30%,rgba(20,30,24,.55) 70%,rgba(20,30,24,.9) 100%)}
.hero>*{position:relative;z-index:1}
.hero>.bg,.cathead>.bg{z-index:0!important}
.top{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;max-width:1120px;margin:0 auto;width:100%}
.brand{display:flex;align-items:center;gap:10px;font-weight:500;letter-spacing:-.01em}
.brand .pi{font-size:30px;font-weight:200;line-height:1}
.hero-in{margin-top:auto;padding:0 20px 28px;max-width:1120px;margin-left:auto;margin-right:auto;width:100%;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end}
.city{display:inline-flex;gap:8px;align-items:center;border:1px solid rgba(243,238,228,.7);border-radius:99px;padding:6px 14px;font-size:14px;margin-bottom:18px}
.city i{width:7px;height:7px;border-radius:50%;background:#9DB8A5;display:block}
h1{font-weight:300;font-size:clamp(34px,5.6vw,64px);line-height:1.02;letter-spacing:-.025em}
.lede{margin-top:16px;font-size:17px;max-width:520px;opacity:.92}
.stats{display:flex;gap:28px;margin-top:26px;flex-wrap:wrap}
.stats b{display:block;font-weight:300;font-size:30px;line-height:1}
.stats span{opacity:.8}
.gate{background:rgba(243,238,228,.97);color:var(--ink);border-radius:var(--r);padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.gate h2{font-weight:500;font-size:19px;letter-spacing:-.01em}
.gate p.s{color:var(--mut);font-size:14px;margin:4px 0 14px}
.gate label{display:block;font-size:13px;margin:12px 0 6px;color:var(--mut)}
.gate input[type=email]{width:100%;font:inherit;font-size:16px;padding:14px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);outline:none}
.gate input[type=email]:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(45,107,74,.15)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);border-radius:99px;padding:7px 12px;font-size:14px;background:#fff;transition:.15s}
.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cta{margin-top:16px;width:100%;background:var(--green);color:#fff;border-radius:12px;padding:15px;font-weight:500;font-size:16px;display:flex;justify-content:center;gap:8px;transition:.15s}
.cta:hover{background:#245a3d}
.cta[disabled]{opacity:.6}
.legal{font-size:12px;color:var(--mut);margin-top:10px;line-height:1.4}
.err{color:#A23B2A;font-size:13px;margin-top:8px;display:none}
.scrollhint{text-align:center;padding:0 0 14px;opacity:.7}
.credit{position:absolute;right:12px;bottom:8px;font-size:9px;opacity:.55;z-index:2;color:var(--paper)}

/* locked teaser */
.locked .guide{display:none}
.teaser{padding:56px 0 64px}
.locked .teaser{display:block}
.teaser{display:none}
.teaser .grid{filter:blur(5px);opacity:.6;pointer-events:none;user-select:none}
.teaser .unlock{text-align:center;margin-top:-140px;position:relative}
.teaser .unlock a{display:inline-block;background:var(--ink);color:var(--paper);padding:14px 22px;border-radius:99px;text-decoration:none}

/* guide */
section{padding:64px 0}
.eyebrow{color:var(--green);margin-bottom:10px;display:block}
h3.t{font-weight:300;font-size:clamp(28px,4vw,42px);letter-spacing:-.02em;line-height:1.08;max-width:760px}
.letter{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.letter p{margin-top:14px;font-size:17px;color:#2f3a33}
.letter .sig{margin-top:18px;font-weight:500}
.personal{margin-top:24px;border-left:3px solid var(--green);padding:6px 0 6px 16px;font-size:16px;display:none}
.personal.on{display:block}
.legend{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.legend div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.legend b{display:block;font-weight:500;margin-bottom:4px}
.legend span{color:var(--mut);font-size:14px}

.bar{position:sticky;top:0;z-index:20;background:rgba(243,238,228,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar .wrap{display:flex;gap:8px;align-items:center;overflow-x:auto;padding-top:12px;padding-bottom:12px;scrollbar-width:none}
.bar .wrap::-webkit-scrollbar{display:none}
.f{white-space:nowrap;border:1px solid var(--line);border-radius:99px;padding:8px 14px;font-size:14px;display:flex;gap:7px;align-items:center;background:#fff}
.f i{width:8px;height:8px;border-radius:50%;display:block}
.f[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.f .c{opacity:.6;font-size:12px}
.viewtog{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:99px;overflow:hidden;flex-shrink:0;background:#fff}
.viewtog button{padding:8px 14px;font-size:14px}
.viewtog button[aria-pressed=true]{background:var(--green);color:#fff}

#map{height:62vh;min-height:380px;border-radius:var(--r);border:1px solid var(--line);margin-top:20px;display:none;z-index:1}
.mapmode #map{display:block}
.leaflet-container{font-family:Geist,system-ui,sans-serif;background:#EDE7DA}
.pin{width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.25)}
.pin span{transform:rotate(45deg);color:#fff;font:500 11px "Geist Mono",monospace}
.leaflet-popup-content{margin:12px 14px;font-size:14px}
.leaflet-popup-content b{display:block;font-size:15px;font-weight:500}
.leaflet-popup-content button{margin-top:8px;color:var(--green);font-weight:500}

.catblock{margin-top:40px}
.cathead{position:relative;border-radius:var(--r);overflow:hidden;min-height:220px;color:var(--paper);display:flex;align-items:flex-end;padding:24px;background:var(--ink)}
.cathead .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.cathead::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,30,24,.75),rgba(20,30,24,.15) 70%),linear-gradient(180deg,rgba(20,30,24,0) 30%,rgba(20,30,24,.6))}
.cathead>div{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;width:100%;flex-wrap:wrap}
.cathead h4{font-weight:300;font-size:clamp(34px,5vw,54px);letter-spacing:-.02em;line-height:1}
.cathead p{max-width:420px;opacity:.92;margin-top:6px}
.cathead .st{background:rgba(243,238,228,.95);color:var(--ink);border-radius:14px;padding:12px 16px;max-width:300px}
.cathead .st b{font-weight:300;font-size:30px;display:block;line-height:1}
.cathead .st span{font-size:13px;color:var(--mut)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-align:left;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(28,42,34,.10)}
.card .ph{aspect-ratio:16/10;background-size:cover;background-position:center;position:relative}
.card .ph svg{position:absolute;inset:0;width:100%;height:100%}
.card .ph .pstat{position:absolute;left:14px;right:14px;bottom:12px;color:var(--ink)}
.card .ph .pstat b{display:block;font-weight:300;font-size:34px;line-height:1;letter-spacing:-.02em}
.card .ph .pstat span{display:block;font-size:12px;line-height:1.3;color:#4a4f49;margin-top:4px;max-width:90%}
.sh-ph.np{aspect-ratio:16/6}
@media (max-width:820px){.card .ph .pstat b{font-size:28px}.card .ph .pstat span{display:none}}
.card .num{position:absolute;left:12px;top:12px;background:rgba(243,238,228,.95);color:var(--ink);border-radius:99px;padding:3px 9px;font:500 11px "Geist Mono",monospace}
.card .bd{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h5{font-weight:500;font-size:18px;letter-spacing:-.01em;line-height:1.2}
.card .meta{color:var(--mut);font-size:13px}
.card .stat{margin-top:auto;padding-top:10px;display:flex;gap:10px;align-items:baseline;border-top:1px dashed var(--line)}
.card .stat b{font-weight:400;font-size:20px;white-space:nowrap}
.card .stat span{font-size:12px;color:var(--mut);line-height:1.3}
.seed{display:inline-flex;align-items:center;gap:5px;background:#E3EDE5;color:var(--green);border-radius:99px;padding:2px 9px;font-size:12px;font-weight:500;width:max-content}
.hidden{display:none!important}

/* sheet */
.ov{position:fixed;inset:0;background:rgba(20,30,24,.45);z-index:50;opacity:0;pointer-events:none;transition:.25s}
.ov.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;z-index:51;background:var(--paper);overflow:auto;transition:transform .3s cubic-bezier(.2,.8,.2,1);-webkit-overflow-scrolling:touch}
@media (min-width:821px){.sheet{top:0;right:0;bottom:0;width:min(560px,100vw);transform:translateX(105%)}.sheet.on{transform:none}}
@media (max-width:820px){.sheet{left:0;right:0;bottom:0;max-height:92svh;border-radius:22px 22px 0 0;transform:translateY(105%)}.sheet.on{transform:none}}
.sh-ph{aspect-ratio:16/10;background-size:cover;background-position:center;position:relative}
.sh-ph svg{position:absolute;inset:0;width:100%;height:100%}
.x{position:absolute;right:12px;top:12px;width:38px;height:38px;border-radius:50%;background:rgba(243,238,228,.95);font-size:20px;z-index:3}
.sh-ph .credit{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.7);opacity:.85;left:12px;right:auto;max-width:90%}
.sh-bd{padding:22px 22px 40px}
.sh-bd h2{font-weight:400;font-size:30px;letter-spacing:-.02em;line-height:1.1;margin:6px 0 10px}
.row2{display:grid;grid-template-columns:1fr 150px;gap:16px;align-items:center;margin:18px 0}
.bigstat{border-left:3px solid var(--green);padding-left:14px}
.bigstat b{font-weight:300;font-size:42px;line-height:1;display:block}
.bigstat span{font-size:14px;display:block;margin-top:4px}
.bigstat em{font-style:normal;color:var(--mut);display:block;margin-top:4px}
.blk{margin-top:18px}
.blk h6{margin-bottom:6px;color:var(--green)}
.blk ul{padding-left:18px}
.blk li{margin:4px 0}
.learn{background:#E3EDE5;border-radius:14px;padding:16px;margin-top:18px}
.learn h6{color:var(--green);margin-bottom:6px}
.info{margin-top:22px;border-top:1px solid var(--line);padding-top:16px;display:grid;gap:10px;font-size:15px}
.info div{display:grid;grid-template-columns:90px 1fr;gap:10px}
.info .mono{color:var(--mut);padding-top:3px}
.btns{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:99px;padding:12px 18px;text-decoration:none;font-weight:500;font-size:15px}
.btn.p{background:var(--ink);color:var(--paper)}
.btn.s{border:1px solid var(--ink)}
.nav2{display:flex;justify-content:space-between;margin-top:26px;border-top:1px solid var(--line);padding-top:14px;color:var(--mut);font-size:14px}

/* bridge */
.bridge{background:var(--ink);color:var(--paper);border-radius:28px;padding:48px;margin-top:20px;position:relative;overflow:hidden}
.bridge h3.t{color:var(--paper)}
.bridge .eyebrow{color:var(--sage)}
.bridge>p{max-width:640px;margin-top:14px;opacity:.88;font-size:17px}
.layers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.layer{border:1px solid rgba(243,238,228,.18);border-radius:18px;padding:22px;background:rgba(243,238,228,.04)}
.layer .k{color:var(--sage)}
.layer h4{font-weight:400;font-size:22px;margin:8px 0 6px;letter-spacing:-.01em}
.layer p{opacity:.85;font-size:15px}
.layer a{display:inline-block;margin-top:14px;color:var(--paper);font-weight:500;text-decoration:none;border-bottom:1px solid var(--sage)}
.bridge svg.topo{position:absolute;right:-60px;top:-60px;width:420px;opacity:.18;pointer-events:none}

.next{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.next form{display:flex;gap:8px}
.next input{flex:1;font:inherit;padding:14px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:16px}
.next button{background:var(--green);color:#fff;border-radius:12px;padding:0 20px;font-weight:500}
.ok{color:var(--green);margin-top:10px;display:none}
.sci ol{columns:2;column-gap:40px;padding-left:20px;font-size:14px;color:#3a443d}
.sci li{margin:0 0 10px;break-inside:avoid}
.sci a{color:var(--green)}
.creds{margin-top:26px;font-size:12px;color:var(--mut);columns:2}
footer{border-top:1px solid var(--line);padding:30px 0 50px;color:var(--mut);font-size:14px}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.dl{display:inline-flex;gap:8px;align-items:center;margin-top:18px}

@media (max-width:820px){
 .hero-in{grid-template-columns:1fr;gap:22px;padding-bottom:18px}
 .hero::after{background:linear-gradient(180deg,rgba(20,30,24,.6) 0%,rgba(20,30,24,.55) 30%,rgba(20,30,24,.75) 55%,rgba(20,30,24,.92) 100%)}
 .stats{gap:20px;margin-top:18px}.stats b{font-size:24px}
 .letter,.next{grid-template-columns:1fr;gap:26px}
 .grid{grid-template-columns:1fr 1fr;gap:10px}
 .card .bd{padding:12px}.card h5{font-size:15px}.card .meta{font-size:12px}
 .card .stat{flex-direction:column;gap:2px}.card .stat b{font-size:17px}.card .stat span{font-size:11px}
 .layers{grid-template-columns:1fr}
 .bridge{padding:30px 22px;border-radius:22px}
 .sci ol,.creds{columns:1}
 section{padding:48px 0}
 .row2{grid-template-columns:1fr 120px}
 .cathead{min-height:200px;padding:18px}
 .viewtog{margin-left:6px}
}
@media (max-width:380px){.grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.ck{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;max-width:420px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 20px 50px -20px rgba(0,0,0,.4);display:grid;gap:10px;font-size:14px}
.ck[hidden]{display:none}
.ck p{color:var(--mut);font-size:13px}
.ck div{display:flex;gap:8px;flex-wrap:wrap}
.ck button{border-radius:99px;padding:9px 14px;font-size:14px;border:1px solid var(--ink)}
.ck button.p{background:var(--ink);color:var(--paper)}
@media (max-width:560px){.ck{right:12px;left:12px;max-width:none;padding:12px 14px;gap:8px;font-size:13px}.ck p{font-size:12px;line-height:1.35}.ck button{padding:7px 12px;font-size:13px}}
