@import url('mv-tokens.css');
:root{color-scheme:dark;--night:#091b24;--paper:var(--mv-marfil-claro);--copper:var(--mv-cobre-claro);--sea:#80c8bf;--muted:#b7c3c5}*{box-sizing:border-box}body{margin:0;background:var(--night);color:var(--paper);font:17px/1.6 'Segoe UI',sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:var(--night);border:1px solid #547079;cursor:pointer}a,button{min-height:44px}button{padding:10px 18px}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:3px solid var(--sea);outline-offset:5px}[hidden]{display:none!important}header{display:flex;justify-content:space-between;align-items:center;padding:24px 5vw;border-bottom:1px solid #ffffff20;gap:20px}.wordmark{font-size:21px;letter-spacing:.16em;font-weight:600;line-height:1.2}.wordmark span{color:var(--copper)}.wordmark small{display:block;font-size:9px;letter-spacing:.34em;margin-top:7px}header nav{display:flex;flex-wrap:wrap;gap:6px}header nav a{padding:10px 8px;font-size:12px}header nav a[aria-current]{color:var(--sea);border-bottom:1px solid var(--sea)}.prototype{color:var(--muted);font-size:12px;letter-spacing:.08em;text-align:center;margin:12px 16px}h1,h2,h3,h4{font-family:Georgia,serif;font-weight:400;line-height:1.1}h1{font-size:clamp(42px,6vw,88px);margin:20px 0}h2{font-size:clamp(32px,4vw,58px);margin:12px 0 30px}h3{font-size:36px}h4{font-size:26px}p{max-width:65ch}.eyebrow{font-size:11px;letter-spacing:.24em;color:var(--copper)}#portal{text-align:center;min-height:78svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 20px 70px}#portal img{width:clamp(160px,22vw,260px);height:auto;filter:drop-shadow(0 22px 38px #0009)}.primary{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;background:var(--paper);color:var(--night);border:0;margin-top:18px;font-weight:600}#selector{max-width:1120px;margin:0 auto;padding:50px 30px 80px}.islands{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.island-choice{display:grid;grid-template-columns:1fr auto;padding:20px 4px;border-top:1px solid #ffffff35}.island-choice>span:first-child{font:27px Georgia,serif}.island-choice small{grid-row:2;font-size:12px;color:var(--muted)}.island-choice>span:last-child{grid-column:2;grid-row:1/3;color:var(--copper)}.island-choice[aria-current=true]{color:var(--sea);border-color:var(--sea)}#exploration{position:relative;min-height:700px}#map{height:65svh;background:var(--night)}.map-controls{display:flex;flex-wrap:wrap;gap:8px;padding:16px 5vw}#status{margin:0 5vw;color:var(--sea)}#content{padding:24px 5vw}.island-content{padding-bottom:30px}.place-link{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff30;padding:14px 0}.place-card{padding:24px;background:var(--paper);color:var(--night);margin-top:24px;max-width:650px}.place-card img{width:100%;height:220px;object-fit:cover}.place-card__cover{margin:-24px -24px 18px;aspect-ratio:16/9;overflow:hidden;background:var(--night);border-bottom:1px solid #c8886255}.place-card__cover img{width:100%;height:100%;object-fit:cover;display:block}.enhanced .place-card__cover{margin:-20px -20px 18px}.place-card section{border-top:1px solid #122a3133;padding-top:20px;margin-top:20px}.credit{font-size:13px}.close{background:transparent;color:var(--night);border-color:#122a3155}.maplibregl-marker button{border-radius:4px;font-size:12px;padding:8px 12px;background:var(--paper);color:var(--night);box-shadow:0 4px 16px #0006;max-width:160px}footer{padding:24px 5vw;color:var(--muted);font-size:12px;border-top:1px solid #ffffff20}body.enhanced #portal,body.enhanced #selector{min-height:70svh}body.enhanced #exploration{height:calc(100svh - 150px);min-height:600px}body.enhanced #map{position:absolute;inset:0;height:100%}body.enhanced .map-controls{position:relative;z-index:2}body.enhanced #status{position:relative;z-index:2;background:var(--night);padding:4px 12px;width:fit-content}body.enhanced #content{position:absolute;right:24px;top:100px;bottom:24px;width:350px;overflow:auto;background:#091b24ed;padding:24px;z-index:2}body.enhanced #content h2{font-size:34px}.enhanced.list-only #map{visibility:hidden}.enhanced.list-only #content{left:5vw;right:5vw;width:auto}.enhanced .place-card{padding:20px}.enhanced .place-card h3{font-size:29px}@media(max-width:650px){header{padding:18px 16px;gap:10px}.wordmark{font-size:16px}header nav{gap:0}header nav a{padding:10px 7px}.islands{grid-template-columns:1fr}#selector{padding:28px 22px}body.enhanced #exploration{height:auto;min-height:100svh}body.enhanced #map{position:relative;height:42svh}body.enhanced .map-controls{padding:12px;gap:6px}body.enhanced .map-controls button{font-size:13px;padding:10px}body.enhanced #content{position:relative;inset:auto;width:auto;margin:12px;padding:22px;max-height:55svh}body.enhanced.list-only #content{inset:auto;width:auto;max-height:none}.prototype{font-size:10px}#portal{min-height:70svh}h1{font-size:44px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
body:not(.enhanced) .map-controls,body:not(.enhanced) .close,body:not(.enhanced) #map{display:none}
body.enhanced.list-only #map{display:none}

/* Apertura canónica: rail de 340vh, escena sticky y progreso reversible.
   Las hojas no tienen transición temporal; cada fotograma deriva del scroll. */
.portal-scroll{position:relative}
.portal-sticky{position:relative}
.portal-gate{display:none}.portal-copy{display:flex;flex-direction:column;align-items:center}
body.enhanced .portal-scroll{height:340svh;--portal-open:0;--portal-scale:1;--portal-copy-opacity:1}
body.enhanced .portal-sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--night);isolation:isolate}
body.enhanced #portal{position:absolute;inset:0;z-index:2;min-height:100svh;overflow:hidden;padding:0;background:transparent;pointer-events:none}
body.enhanced #selector{position:absolute;inset:0;z-index:0;max-width:none;margin:0;padding:clamp(80px,12vh,130px) max(30px,calc((100vw - 1120px)/2));overflow:auto;background:var(--night)}
.enhanced .portal-gate{display:block;position:absolute;inset:0;z-index:1;pointer-events:none}
.enhanced .portal-leaf{position:absolute;top:0;bottom:0;width:calc(50% + 2px);overflow:hidden;background:linear-gradient(to bottom,rgba(224,164,126,.06),transparent 55%),repeating-linear-gradient(to bottom,#ffffff08 0 1px,transparent 1px 4px),var(--mv-roca);will-change:transform}
.enhanced .portal-left{left:0;transform:translate3d(calc(var(--portal-open) * -101%),0,0)}
.enhanced .portal-right{right:0;transform:translate3d(calc(var(--portal-open) * 101%),0,0)}
.enhanced .portal-right::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(transparent,rgba(224,164,126,.53) 20%,rgba(224,164,126,.53) 80%,transparent);opacity:calc(1 - var(--portal-open) * 4)}
.enhanced .portal-leaf::after{content:"";position:absolute;top:0;bottom:0;width:22px;opacity:calc(var(--portal-open) * (1 - var(--portal-open)) * 3.2)}
.enhanced .portal-left::after{right:0;background:linear-gradient(to left,rgba(224,164,126,.26),transparent)}
.enhanced .portal-right::after{left:0;background:linear-gradient(to right,rgba(224,164,126,.26),transparent)}
.enhanced .portal-seal{position:absolute;top:46%;width:clamp(190px,24vw,300px);aspect-ratio:1;will-change:transform}
.enhanced .portal-left .portal-seal{left:100%;transform:translate(-50%,-50%) scale(var(--portal-scale))}
.enhanced .portal-right .portal-seal{left:0;transform:translate(-50%,-50%) scale(var(--portal-scale))}
.enhanced .portal-seal img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 38px #000b)}
.enhanced .portal-copy{position:absolute;inset:0;z-index:2;justify-content:flex-end;padding:110px 20px clamp(38px,8vh,86px);opacity:var(--portal-copy-opacity);pointer-events:none}
.enhanced .portal-copy>*{pointer-events:auto}.enhanced .portal-copy h1{font-size:clamp(40px,5vw,72px);margin:10px 0}.enhanced .portal-copy>p:not(.eyebrow){margin:0}
.enhanced .portal-copy .eyebrow{position:absolute;top:calc(46% + clamp(105px,13vw,165px));margin:0}
.enhanced[data-phase="SELECTOR"] .portal-copy{pointer-events:none}.enhanced[data-phase="SELECTOR"] .portal-copy>*{pointer-events:none}
@media(max-width:650px){
 .enhanced .portal-seal{top:42%;width:clamp(180px,64vw,260px)}
 .enhanced .portal-copy{padding:94px 18px 34px}
 .enhanced .portal-copy h1{font-size:40px}
 .enhanced .portal-copy .eyebrow{top:calc(42% + clamp(105px,34vw,145px))}
 .enhanced .portal-copy>p:not(.eyebrow){font-size:15px;max-width:30ch}
 .enhanced .portal-copy .primary{margin-top:12px}
 body.enhanced #selector{padding:80px 22px 30px}
}
@media(prefers-reduced-motion:reduce){body.enhanced .portal-scroll{height:100svh}}
/* R46: crédito visible y discreto de la portada (foto real Grupo Oby /
   interpretación artística generada con IA), superpuesto en la esquina inferior. */
.place-card__cover{position:relative}
.place-card__credit{position:absolute;right:10px;bottom:8px;margin:0;max-width:calc(100% - 20px);padding:3px 9px;background:#091b24b3;color:var(--mv-marfil-claro);font-size:11px;letter-spacing:.05em;line-height:1.4;border-radius:2px}
/* Frente G (demo): el toggle 2D/3D marcado en cobre cuando el relieve esta activo. */
.map-controls button#relieve[aria-pressed="true"]{border-color:var(--copper);color:var(--copper)}
