/* Atenea · galería de eventos y visor */
.gal-sec{padding-top:clamp(1.2rem,3vw,2.2rem)}
.gal-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1.2rem;margin-bottom:1.6rem}
.gal-count{margin:0;color:var(--muted);font-weight:800}
.gal-filter{display:flex;flex-wrap:wrap;gap:.45rem}
.gal-filter button{font:inherit;font-weight:800;font-size:.9rem;padding:.45rem 1rem;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;transition:transform .2s,border-color .2s}
.gal-filter button:hover{border-color:var(--purple);transform:translateY(-2px)}
.gal-filter button.on{background:var(--grad);color:#fff;border-color:transparent}

.gal-event{margin-bottom:clamp(2.2rem,5vw,3.6rem)}
.gal-event[hidden]{display:none}
.gal-ev-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.4rem 2rem;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:2px solid transparent;border-image:var(--grad) 1}
.gal-ev-head h2{margin:0;font-size:clamp(1.4rem,2.6vw,1.9rem)}
.gal-ev-meta{margin:.1rem 0 0;color:var(--purple);font-weight:800;font-size:.9rem}
html[data-tema="oscuro"] .gal-ev-meta{color:#d9a6ff}
.gal-ev-desc{margin:0;color:var(--muted);max-width:60ch}

.gal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
.gal-tile{position:relative;display:block;padding:0;border:0;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:var(--bg-alt);cursor:pointer;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;font:inherit;color:#fff;text-align:left}
.gal-tile:hover,.gal-tile:focus-visible{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.gal-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.gal-tile:hover img{transform:scale(1.05)}
.gal-ph{position:absolute;inset:0;display:grid;place-items:center;background:var(--grad);color:rgba(255,255,255,.85)}
.gal-badge{position:absolute;top:.6rem;right:.6rem;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(20,10,40,.6);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.gal-over{position:absolute;inset:auto 0 0 0;display:flex;flex-direction:column;gap:.15rem;padding:2.4rem .8rem .7rem;background:linear-gradient(to top,rgba(20,8,40,.82),transparent);opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}
.gal-tile:hover .gal-over,.gal-tile:focus-visible .gal-over{opacity:1;transform:none}
.gal-over b{font-family:var(--head);font-weight:600;font-size:.98rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gal-meta{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:800;opacity:.9}
.gal-meta em{font-style:normal}
.gal-empty{text-align:center;max-width:640px;margin:1rem auto;display:grid;justify-items:center;gap:.4rem;color:var(--purple)}
.gal-empty h2{color:var(--ink)}.gal-empty p{color:var(--muted)}

@media (max-width:1020px){.gal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.gal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.gal-over{opacity:1;transform:none;padding-top:1.8rem}.gal-over b{font-size:.85rem}}
@media (hover:none){.gal-over{opacity:1;transform:none}}

/* ---------- Visor (estilo Instagram) ---------- */
body.gv-open{overflow:hidden}
body.gv-open .jump,body.gv-open .chat{display:none}
.gv{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;background:rgba(14,8,28,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:gvIn .22s ease}
.gv[hidden]{display:none}
@keyframes gvIn{from{opacity:0}to{opacity:1}}
.gv-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 400px;width:min(1120px,100vw - 170px);height:min(88vh,780px);background:var(--card);color:var(--ink);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.gv-media{position:relative;background:#000;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;touch-action:pan-x}
.gv-stage{position:absolute;inset:0;display:grid;place-items:center}
.gv-stage img,.gv-stage video{width:100%;height:100%;object-fit:contain;display:block;background:#000}
.gv-stage.up{animation:gvUp .3s ease}
.gv-stage.down{animation:gvDown .3s ease}
@keyframes gvUp{from{opacity:.2;transform:translateY(-36px)}to{opacity:1;transform:none}}
@keyframes gvDown{from{opacity:.2;transform:translateY(36px)}to{opacity:1;transform:none}}
.gv-stage video{cursor:pointer}
.gv-pp{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.5);color:#fff;opacity:0;pointer-events:none;transform:scale(.8);transition:opacity .2s,transform .2s}
.gv-pp.show{opacity:1;transform:none}
.gv-mute{position:absolute;right:.8rem;bottom:1rem;width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;cursor:pointer}
.gv-mute[hidden],.gv-prog[hidden]{display:none}
.gv-mute .i-on{display:none}.gv-mute[aria-pressed="false"] .i-on{display:block}.gv-mute[aria-pressed="false"] .i-off{display:none}
.gv-prog{position:absolute;left:0;right:0;bottom:0;height:5px;background:rgba(255,255,255,.25);cursor:pointer}
.gv-prog i{display:block;height:100%;width:0;background:var(--grad)}
.gv-count{position:absolute;left:.8rem;top:.8rem;padding:.2rem .65rem;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-weight:800;font-size:.78rem}

.gv-side{display:flex;flex-direction:column;min-width:0;min-height:0;border-left:1px solid var(--line)}
.gv-head{display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;border-bottom:1px solid var(--line)}
.gv-head img{width:38px;height:38px;border-radius:50%;background:var(--bg-alt);border:2px solid var(--pink);object-fit:cover}
.gv-head b{display:block;font-size:.95rem;line-height:1.2}
.gv-head small{color:var(--muted);font-weight:700}
.gv-scroll{flex:1;min-height:0;overflow-y:auto;padding:1rem;overscroll-behavior:contain}
.gv-cap{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.gv-title{display:block;font-family:var(--head);font-size:1.2rem;line-height:1.25;margin-bottom:.3rem}
.gv-detail{margin:0 0 .6rem;white-space:pre-line}
.gv-evdesc{margin:0;color:var(--muted);font-size:.9rem;white-space:pre-line}
.gv-evdesc b{color:var(--purple)}html[data-tema="oscuro"] .gv-evdesc b{color:#d9a6ff}
.gv-comments{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.gv-comments li{display:flex;gap:.65rem;align-items:flex-start}
.gv-av{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:.85rem;background:var(--purple)}
.gv-cb{min-width:0;font-size:.93rem;line-height:1.4}
.gv-cb b{margin-right:.35rem}
.gv-cb p{display:inline;margin:0;overflow-wrap:anywhere;white-space:pre-line}
.gv-cb time{display:block;color:var(--muted);font-size:.76rem;font-weight:700;margin-top:.1rem}
.gv-none{color:var(--muted);font-style:italic;font-size:.92rem;margin:0}
.gv-foot{border-top:1px solid var(--line);padding:.7rem 1rem .9rem;background:var(--card)}
.gv-actions{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.5rem;color:var(--muted);font-weight:800;font-size:.88rem}
.gv-actions span{display:inline-flex;align-items:center;gap:.4rem}
.gv-copy{display:inline-flex;align-items:center;gap:.4rem;border:0;background:none;color:var(--purple);font:inherit;font-weight:800;font-size:.86rem;cursor:pointer;padding:.2rem .4rem;border-radius:8px}
.gv-copy:hover{background:var(--bg-alt)}
html[data-tema="oscuro"] .gv-copy{color:#d9a6ff}
.gv-form{display:grid;gap:.45rem}
.gv-form input[type=text]{width:100%;padding:.6rem .9rem;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-weight:600;font-size:.93rem}
.gv-form input[type=text]:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(155,37,224,.18)}
.gv-row{display:flex;gap:.5rem}
.gv-row button{flex:none;border:0;border-radius:12px;padding:0 1.1rem;background:var(--grad);color:#fff;font:inherit;font-weight:800;cursor:pointer}
.gv-row button:disabled{opacity:.6;cursor:wait}
.gv-msg{margin:0;min-height:1.1em;font-size:.84rem;font-weight:800}
.gv-msg.ok{color:var(--teal)}.gv-msg.bad{color:#d6246e}
.gv-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}

.gv-close{position:fixed;top:14px;right:18px;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2;transition:background .2s}
.gv-close:hover{background:rgba(255,255,255,.3)}
.gv-nav{position:fixed;right:42px;width:50px;height:50px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2;transition:background .2s,opacity .2s}
.gv-nav:hover{background:rgba(255,255,255,.3)}
.gv-nav[disabled]{opacity:.25;cursor:default}
.gv-prev{top:calc(50% - 56px)}
.gv-next{top:calc(50% + 6px)}

@media (max-width:1180px){.gv-card{width:min(980px,100vw - 150px);grid-template-columns:minmax(0,1fr) 340px}.gv-nav{right:26px}}
@media (max-width:820px){
  .gv{background:var(--card)}
  .gv-card{width:100vw;height:100vh;height:100dvh;border-radius:0;grid-template-columns:1fr;grid-template-rows:minmax(0,46%) minmax(0,1fr);box-shadow:none}
  .gv-side{border-left:0}
  .gv-media{touch-action:none}
  .gv-close{top:10px;right:10px;width:40px;height:40px;background:rgba(0,0,0,.55)}
  .gv-nav{right:10px;width:40px;height:40px;background:rgba(0,0,0,.55);z-index:3}
  .gv-prev{top:calc(23% - 44px)}
  .gv-next{top:calc(23% + 4px)}
  .gv-count{top:.7rem;left:.7rem}
  .gv-head{padding:.6rem .9rem}
  .gv-foot{padding-bottom:calc(.9rem + env(safe-area-inset-bottom))}
}
@media (max-height:520px) and (min-width:821px){.gv-card{height:94vh}}
@media (prefers-reduced-motion:reduce){.gv,.gv-stage.up,.gv-stage.down{animation:none}.gal-tile,.gal-tile img{transition:none}}
