:root{--bg:#0b0b12;--fl:#151522;--tx:#ece9f5;--gr:#9c98b0;--ak:#ff2e88;--ak2:#22d3ee}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--ak2)}
.kopf{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.2rem;background:rgba(11,11,18,.88);backdrop-filter:blur(8px);border-bottom:1px solid #22223a}
.marke{font-weight:800;letter-spacing:.18em;color:var(--tx);text-decoration:none;font-size:1.15rem}.marke span,h1 span{color:var(--ak);text-shadow:0 0 12px var(--ak)}
.kopf nav a{color:var(--gr);text-decoration:none;margin-left:1.1rem;font-size:.95rem}.kopf nav a:hover{color:var(--tx)}
.held{text-align:center;padding:4.5rem 1.2rem 2.5rem;background:radial-gradient(ellipse at top,#3a0f3a 0,transparent 60%),radial-gradient(ellipse at bottom,#0c3340 0,transparent 55%)}
.ober{color:var(--ak2);letter-spacing:.3em;text-transform:uppercase;font-size:.8rem;margin:0}
.held h1{font-size:clamp(3.2rem,12vw,7rem);margin:.2rem 0;letter-spacing:.12em;line-height:1}
.unter{font-size:clamp(1.05rem,3vw,1.4rem);color:var(--gr);margin:.4rem 0 2rem}
.abschied{max-width:38rem;margin:0 auto;padding:1.2rem 1.5rem;background:rgba(255,255,255,.04);border:1px solid #2a2a44;border-radius:14px;text-align:left}
.gez{color:var(--gr);font-style:italic;margin-bottom:0}.zahlen{color:var(--ak2);margin-top:1.6rem;font-weight:600}
.jahre{position:sticky;top:3.1rem;z-index:4;display:flex;justify-content:center;gap:.6rem;padding:.6rem;background:rgba(11,11,18,.88)}
.jahre a{padding:.35rem 1.1rem;border:1px solid #33335a;border-radius:99px;color:var(--tx);text-decoration:none;font-weight:600}.jahre a:hover{border-color:var(--ak)}
main{max-width:1200px;margin:0 auto;padding:0 1rem}
.jahr h2{font-size:2.2rem;margin:2.5rem 0 1rem;color:var(--ak2);scroll-margin-top:6.5rem}
.karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.karte{position:relative;display:block;border-radius:14px;overflow:hidden;background:var(--fl);text-decoration:none;color:var(--tx);aspect-ratio:4/3;box-shadow:0 4px 18px rgba(0,0,0,.4);transition:transform .2s}
.karte:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(255,46,136,.25)}
.karte img{width:100%;height:100%;object-fit:cover;filter:saturate(1.1)}
.info{position:absolute;inset:auto 0 0 0;padding:3rem .9rem .7rem;background:linear-gradient(transparent,rgba(0,0,0,.6) 35%,rgba(0,0,0,.92))}
.info span{display:block}.dat{font-size:.78rem;color:var(--ak2)}.tit{font-weight:700;font-size:1.05rem}.anz{font-size:.8rem;color:var(--gr)}
.partykopf{max-width:1200px;margin:0 auto;padding:1.5rem 1rem .5rem}.partykopf h1{margin:.1rem 0;font-size:clamp(1.8rem,6vw,3rem)}
.zurueck{text-decoration:none;font-size:.95rem}
.raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.45rem;padding-top:1rem}
.raster a{display:block;aspect-ratio:1;overflow:hidden;border-radius:8px;background:var(--fl)}
.raster img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.raster a:hover img{transform:scale(1.06)}
.blaettern{max-width:1200px;margin:2rem auto;padding:0 1rem;display:flex;justify-content:space-between;gap:1rem}
.blaettern a{text-decoration:none;padding:.8rem 1rem;border:1px solid #2a2a44;border-radius:12px;max-width:48%}.blaettern small{display:block;color:var(--gr)}
.text{max-width:46rem;padding:2rem 1rem}
.fuss{text-align:center;color:var(--gr);font-size:.85rem;padding:2.5rem 1rem;border-top:1px solid #22223a;margin-top:3rem}
.lb{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.lb[hidden]{display:none}.lb img{width:96vw;height:86vh;object-fit:contain;user-select:none}
.lb button{position:absolute;background:rgba(255,255,255,.08);color:#fff;border:0;font-size:2.4rem;width:3.2rem;height:3.2rem;border-radius:50%;cursor:pointer}
.lb-zu{top:.8rem;right:.8rem}.lb-vor{left:.6rem}.lb-nach{right:.6rem}.lb-nr{position:absolute;bottom:1rem;color:var(--gr);font-size:.9rem}
@media (max-width:600px){.raster{grid-template-columns:repeat(3,1fr);gap:.25rem}.raster a{border-radius:4px}.lb button.lb-vor,.lb button.lb-nach{display:none}.karten{grid-template-columns:1fr 1fr;gap:.6rem}.tit{font-size:.92rem}}
