/* ===== Explorar: pines y ficha de cristal ===== */
.pin{position:fixed;left:0;top:0;z-index:6;display:flex;align-items:center;gap:.5rem;padding:0;background:none;border:0;color:#fff;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .5s;will-change:transform;margin:-13px 0 0 -13px}
.pin.show{opacity:1;pointer-events:auto}
.pin i{position:relative;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:radial-gradient(circle,rgba(190,220,255,.5) 0 3px,rgba(190,220,255,.08) 4px);box-shadow:0 0 18px rgba(140,190,255,.55)}
.pin i::after{content:'';position:absolute;inset:-7px;border-radius:50%;border:1px solid rgba(190,220,255,.45);animation:pinPulse 2.4s ease-out infinite}
@keyframes pinPulse{0%{transform:scale(.7);opacity:.9}100%{transform:scale(1.7);opacity:0}}
.pin span{font:500 .62rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;padding:.45rem .7rem;border-radius:999px;background:rgba(4,8,22,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(190,215,255,.25);transform:translateX(-6px);opacity:0;transition:.3s;white-space:nowrap}
.pin:hover span,.pin.hot span,.pin:focus-visible span{opacity:1;transform:none}
body.info-open .pin{opacity:0;pointer-events:none}
#info{position:fixed;inset:0;z-index:40;display:flex;justify-content:flex-end}
#info[hidden]{display:none}
.inf-scrim{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(2,3,10,.1),rgba(2,3,10,.72));opacity:0;transition:opacity .5s}
.inf-card{position:relative;width:min(540px,100vw);height:100%;overflow-y:auto;overscroll-behavior:contain;transform:translateX(60px);opacity:0;transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .5s;
  background:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.04) 40%,rgba(90,130,255,.09));-webkit-backdrop-filter:blur(30px) saturate(1.6);backdrop-filter:blur(30px) saturate(1.6);
  border-left:1px solid rgba(255,255,255,.22);box-shadow:-40px 0 120px rgba(0,0,20,.6),inset 1px 0 0 rgba(255,255,255,.35)}
#info.on .inf-scrim{opacity:1}#info.on .inf-card{transform:none;opacity:1}
.inf-x{position:sticky;top:.9rem;float:right;margin:.9rem .9rem 0 0;z-index:3;width:40px;height:40px;border-radius:50%;background:rgba(4,8,22,.6);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}
.inf-x:hover{background:rgba(255,255,255,.16)}
.inf-ph{margin:0;position:relative;background:#000}
.inf-ph img{display:block;width:100%;height:min(300px,34vh);object-fit:cover;transition:opacity .25s}
.inf-ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.2rem 1.3rem .8rem;background:linear-gradient(0deg,rgba(2,3,10,.92),transparent);font-size:.78rem;line-height:1.4;color:#dfe8ff}
.inf-ph figcaption em{display:block;font:normal .55rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8fa6d8;margin-top:.3rem}
.inf-th{display:flex;gap:.5rem;padding:.7rem 1.3rem 0}
.inf-th button{width:64px;height:44px;padding:0;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.18);opacity:.55;cursor:pointer;background:#000;transition:.3s}
.inf-th button.on,.inf-th button:hover{opacity:1;border-color:rgba(255,255,255,.7)}
.inf-th img{width:100%;height:100%;object-fit:cover;display:block}
.inf-tx{padding:1.4rem 1.5rem 3rem}
.inf-k{font:500 .62rem var(--mono);letter-spacing:.3em;text-transform:uppercase;color:#a9d4ff;margin:0 0 .6rem}
.inf-tx h3{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(2rem,5vw,3rem);line-height:1.05;background:linear-gradient(100deg,#fff,#b9ccff 50%,#fff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.inf-tag{margin:.7rem 0 1.2rem;font-family:var(--serif);font-style:italic;font-size:1.1rem;color:#cfdcff}
.inf-st{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.2rem;padding:1.1rem 0;margin-bottom:1.1rem;border-block:1px solid rgba(255,255,255,.14)}
.inf-st i{display:block;font:normal .52rem var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#8fd0ff;margin-bottom:.25rem}
.inf-st b{font:500 .95rem var(--sans);color:#fff}
.inf-tx>p{font-size:.95rem;line-height:1.65;color:#d9e2ff;margin:.9rem 0}
.inf-w{margin-top:1.4rem;padding:1rem 1.1rem;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16)}
.inf-w label{display:block;font:500 .6rem var(--mono);letter-spacing:.24em;text-transform:uppercase;color:#a9d4ff;margin-bottom:.6rem}
.inf-w div{display:flex;align-items:center;gap:.7rem}
.inf-w input{width:96px;padding:.55rem .7rem;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:rgba(2,3,10,.5);color:#fff;font:500 1rem var(--sans)}
.inf-w span{font-size:.8rem;color:var(--mute)}
.inf-w p{margin:.8rem 0 0;font-family:var(--serif);font-size:1.25rem;color:#fff}
.inf-tx .inf-src{font:.55rem var(--mono);letter-spacing:.12em;color:#7f8db8;margin-top:1.6rem;text-transform:uppercase}
@media(max-width:760px){.inf-card{width:100vw;height:88vh;align-self:flex-end;border-left:0;border-top:1px solid rgba(255,255,255,.25);border-radius:24px 24px 0 0;transform:translateY(60px)}.inf-ph img{height:30vh}.inf-st{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.pin i::after{animation:none}.inf-card{transition:opacity .2s;transform:none}}

/* ficha ampliable + visor de fotos + tarjeta ampliada */
.inf-ex{position:sticky;top:.9rem;float:right;margin:.9rem .5rem 0 0;z-index:3;width:40px;height:40px;border-radius:50%;background:rgba(4,8,22,.6);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.2rem;line-height:1;cursor:pointer}
.inf-ex:hover{background:rgba(255,255,255,.16)}
.inf-card{transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .5s,width .55s cubic-bezier(.2,.7,.2,1)}
#info.wide .inf-card{width:min(1180px,100vw)}
#info.wide .inf-in{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:auto 1fr;column-gap:0;min-height:100%}
#info.wide .inf-ph{grid-column:1;grid-row:1}#info.wide .inf-th{grid-column:1;grid-row:2;align-self:start;padding-top:.9rem}
#info.wide .inf-tx{grid-column:2;grid-row:1/3;padding:4.2rem 2rem 3rem 1.6rem}
#info.wide .inf-ph img{height:min(72vh,720px);object-fit:contain;background:#000}
.inf-ph img{cursor:zoom-in}
.inf-ph::after{content:'⤢ ampliar foto';position:absolute;right:.8rem;top:.8rem;padding:.35rem .7rem;border-radius:999px;background:rgba(4,8,22,.6);border:1px solid rgba(255,255,255,.25);font:.55rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#dfe8ff;pointer-events:none;opacity:.85}
@media(max-width:860px){#info.wide .inf-card{width:100vw}#info.wide .inf-in{display:block}#info.wide .inf-ph img{height:46vh}#info.wide .inf-tx{padding:1.4rem 1.4rem 3rem}}
#phbox{position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:rgba(2,3,10,.95);opacity:0;transition:opacity .35s;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
#phbox[hidden]{display:none}#phbox.on{opacity:1}
#phbox figure{margin:0;display:grid;gap:.9rem;justify-items:center;max-width:96vw;overflow:hidden}
#phbox img{max-width:94vw;max-height:80vh;object-fit:contain;border-radius:10px;box-shadow:0 30px 120px #000;cursor:zoom-in;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
#phbox.zoomed img{transform:scale(2.2);cursor:zoom-out}
#phbox figcaption{max-width:min(900px,92vw);text-align:center;font-size:.9rem;line-height:1.5;color:#dfe8ff}
#phbox figcaption em{display:block;font:normal .58rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8fa6d8;margin-top:.4rem}
#phbox figcaption b{display:block;font:500 .6rem var(--mono);letter-spacing:.2em;color:#a9d4ff;margin-top:.3rem}
.pb-x,.pb-p,.pb-n{position:absolute;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;transition:.25s;z-index:2}
.pb-x{top:1rem;right:1rem}.pb-p{left:1rem;top:50%;margin-top:-24px}.pb-n{right:1rem;top:50%;margin-top:-24px}
.pb-x:hover,.pb-p:hover,.pb-n:hover{background:rgba(255,255,255,.2)}
#phbox.one .pb-p,#phbox.one .pb-n{display:none}
#zoomCard{position:fixed;inset:0;z-index:65;display:grid;place-items:center;background:rgba(2,3,10,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transition:opacity .35s;cursor:zoom-out}
#zoomCard[hidden]{display:none}#zoomCard.on{opacity:1}
#zoomCard .bp{width:470px;max-width:none;margin:0;cursor:default;transform:none!important}
.bp{cursor:zoom-in}.bp .bp-ph{cursor:zoom-in}.pase-ph{cursor:zoom-in}

/* ===== v2 · marcador de ficha: insignia HUD ámbar, inconfundible frente a las estrellas ===== */
.pin i{width:30px;height:30px;border-radius:9px;border:1.5px solid #ffd089;background:linear-gradient(145deg,rgba(40,26,8,.92),rgba(10,8,20,.92));box-shadow:0 0 0 3px rgba(255,208,137,.14),0 6px 22px rgba(0,0,0,.7),0 0 20px rgba(255,190,100,.45);transform:rotate(45deg) scale(.82);display:grid;place-items:center}
.pin i::before{content:'i';transform:rotate(-45deg);font:italic 700 1.05rem/1 'Fraunces',Georgia,serif;color:#ffe2b0;text-shadow:0 0 8px rgba(255,200,120,.8)}
.pin i::after{inset:-8px;border-radius:12px;border:1px solid rgba(255,208,137,.55)}
.pin span{border-color:rgba(255,208,137,.5);background:rgba(18,12,4,.82);color:#ffe9c4;opacity:1;transform:none;margin-left:.2rem}
.pin:hover i,.pin.hot i{background:linear-gradient(145deg,#ffd089,#e9a24a);box-shadow:0 0 28px rgba(255,190,100,.9)}
.pin:hover i::before,.pin.hot i::before{color:#2a1604;text-shadow:none}
