/* =========================================================
   Galerie: Thumbnails wandern als 3D-Flaechen ueber den Schirm,
   beim Zeigen erscheint das Bild. Farben und Schriften kommen
   aus style.css, hier steht nur das Seiteneigene.
   ========================================================= */

body.galerie{height:100dvh;overflow:hidden}

/* Zurueck-Link in der Kopfzeile, gleiche Anmutung wie "Private Seite" */
.topbar__back{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);text-decoration:none;
  display:inline-flex;align-items:center;gap:.6rem;
  transition:color .25s ease;
}
.topbar__back::before{content:"";width:18px;height:1px;background:currentColor;transition:width .25s cubic-bezier(.16,1,.3,1)}
.topbar__back:hover{color:var(--accent)}
.topbar__back:hover::before{width:28px}

/* Flaeche, auf der die Kacheln wandern */
#galerie{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:5;touch-action:manipulation}

/* Text liegt darueber, faengt aber keine Mausereignisse ab */
.gal{position:relative;z-index:1}
.gal__intro{
  position:fixed;left:0;top:0;z-index:12;pointer-events:none;
  padding:clamp(6rem,14vh,9rem) clamp(1.25rem,4vw,3.5rem) 0;
  max-width:min(34rem,86vw);
}
.gal__intro::before{
  content:"";position:absolute;left:0;top:0;width:150%;height:150%;z-index:-1;
  background:radial-gradient(70% 60% at 22% 30%,rgba(10,11,13,.92),rgba(10,11,13,.6) 45%,transparent 72%);
}
.gal__title{
  font-size:clamp(2rem,1.2rem + 2.4vw,3.2rem);
  line-height:1.06;letter-spacing:-.035em;font-weight:700;margin:0 0 1.1rem;
}
.gal__hint{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.74rem;letter-spacing:.1em;color:var(--muted);margin:0;max-width:30ch;line-height:1.7;
}

/* Vorschau */
.gal__preview{position:fixed;inset:0;z-index:30;pointer-events:none;opacity:0;visibility:hidden}
.gal__previewScrim{position:absolute;inset:0;background:rgba(10,11,13,.78)}
.gal__frame{
  position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,-50%);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  background:var(--bg);
  box-shadow:0 40px 120px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.07);
  line-height:0;
}
.gal__frame img{display:block;max-width:min(72vw,1100px);max-height:72vh;width:auto;height:auto}

/* Ohne JavaScript: einfache Liste der Bilder */
.gal__fallback{
  list-style:none;margin:0;padding:clamp(6rem,12vh,9rem) clamp(1.25rem,4vw,3.5rem) 4rem;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--gap);
}
.gal__fallback img{width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line)}
body.galerie:has(noscript) .gal__fallback{position:relative;z-index:20}

@media (max-width:640px){
  .gal__intro{padding-top:clamp(5rem,12vh,7rem);max-width:none;padding-bottom:1.5rem}
  /* Kacheln ziehen hinter dem Text durch, deshalb hier ein deckenderer Verlauf */
  .gal__intro::before{
    left:-10%;width:120%;height:100%;
    background:linear-gradient(180deg,rgba(10,11,13,.95) 0%,rgba(10,11,13,.92) 62%,rgba(10,11,13,0) 100%);
  }
  .gal__frame img{max-width:88vw;max-height:62vh}
}
