
:root{ --bg:#0b1220; --card:#0f172a; --muted:#94a3b8; --text:#e2e8f0; --brand:#3b82f6; --brand-2:#22d3ee; }
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.65}
a{color:var(--brand);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:24px}
.header{position:sticky;top:0;background:rgba(11,18,32,.8);backdrop-filter:blur(10px);border-bottom:1px solid rgba(148,163,184,.2);z-index:1000}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.3px}
.logo img{width:36px;height:36px;border-radius:12px}
.navmenu{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.navmenu .lang-desktop{display:flex;gap:10px; margin-left:10px}
.navmenu .lang-desktop a{padding:6px 10px;border:1px solid rgba(148,163,184,.25);border-radius:10px;display:inline-flex;gap:8px;align-items:center}
.lang-desktop img{width:18px;height:12px;object-fit:cover;border-radius:2px}

/* Burger */
#nav-toggle{display:none}
.burger{display:none;width:42px;height:42px;border:1px solid rgba(148,163,184,.25);border-radius:10px;align-items:center;justify-content:center;cursor:pointer;background:#0b1b2c;margin-right:4px}
.burger span{display:block;width:18px;height:2px;background:var(--text);border-radius:2px;box-shadow:0 6px 0 var(--text),0 -6px 0 var(--text)}
@media(max-width:900px){
  .navmenu{display:none}
  .burger{display:flex}
}
/* Panel toggled via header child checkbox */
.navmenu-panel{display:none;position:fixed;top:60px;left:0;right:0;background:#0b1220ee;backdrop-filter:blur(10px);border-bottom:1px solid rgba(148,163,184,.2);padding:14px 24px;z-index:1100}
.header > #nav-toggle:checked ~ .navmenu-panel{display:block}
.navmenu-panel a{display:block;padding:10px 8px;border-radius:10px}
.navmenu-panel .lang{display:flex;gap:12px;padding-top:8px;border-top:1px solid rgba(148,163,184,.15);margin-top:8px}
.lang a{padding:8px 10px;border:1px solid rgba(148,163,184,.25);border-radius:10px;display:inline-flex;gap:8px;align-items:center}
.lang img{width:18px;height:12px;object-fit:cover;border-radius:2px}

/* Hero */
.hero{padding:72px 0;background:radial-gradient(1200px 500px at 20% -10%,rgba(59,130,246,.25),transparent),radial-gradient(1200px 500px at 80% 10%,rgba(34,211,238,.22),transparent)}
.hero h1{font-size:clamp(28px,4vw,46px);line-height:1.1;margin:0 0 12px}
.hero p{color:var(--muted);max-width:780px;margin:0 0 20px}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-block;padding:12px 18px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#062a22;font-weight:800;box-shadow:0 6px 20px rgba(34,197,94,.2)}
.button.secondary{background:#0b1b2c;border:1px solid rgba(148,163,184,.2);color:var(--text)}

/* Features */
.hg-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;justify-items:center;max-width:980px;margin:0 auto}
.hg-card{background:var(--card);border:1px solid rgba(148,163,184,.12);border-radius:16px;padding:20px 24px;width:100%;max-width:280px;box-shadow:0 10px 30px rgba(2,6,23,.25)}
.section{padding:48px 0}

/* Download */
#download{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:60px 0}
#download .dl-card{background:var(--card);border:1px solid rgba(148,163,184,.12);border-radius:16px;padding:24px 24px;max-width:640px;text-align:left;margin:0 auto;box-shadow:0 10px 30px rgba(2,6,23,.25)}
#download .dl-shot{margin-top:28px;display:flex;justify-content:center;width:100%}
#download .dl-shot img{width:100%;max-width:860px;height:auto;border-radius:16px;border:1px solid rgba(148,163,184,.12)}

/* Content */
.content{background:var(--card);border:1px solid rgba(148,163,184,.12);border-radius:18px;padding:24px;max-width:980px;margin:0 auto}
.content a{color:var(--brand-2)}
.content *{writing-mode:horizontal-tb;white-space:normal;word-break:break-word}

.footer{border-top:1px solid rgba(148,163,184,.2);margin-top:60px;text-align:center;padding:20px 0;color:var(--muted)}
img{max-width:100%;display:block}
body{overflow-x:hidden}


/* full-bleed hero band using original TAP colors */
.hero-band{
  background:radial-gradient(1200px 500px at 20% -10%,rgba(59,130,246,.25),transparent),radial-gradient(1200px 500px at 80% 10%,rgba(34,211,238,.22),transparent);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50% + 24px);
  padding-right: calc(50vw - 50% + 24px);
  border-bottom:1px solid rgba(148,163,184,.15);
}
.hero-band .container{ max-width:1100px; margin:0 auto; padding:48px 24px; }
/* avoid double gradient inside */
.hero-band .hero{ background:transparent !important; padding:0; }



/* v6 hero spacing tweak */
.hero-band{
  padding-top: clamp(56px, 6vw, 96px) !important;
  padding-bottom: clamp(48px, 5vw, 88px) !important;
}
/* ensure inner hero has no extra padding that fights us */
.hero-band .hero{ padding: 0 !important; margin: 0; }



/* Lightbox thumbnails - mittig ausgerichtet */
.shot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
  justify-content: center;   /* Thumbnails mittig */
  align-items: center;       /* Vertikal zentriert, falls Zeilenhöhe unterschiedlich */
  margin-top: 24px;
  max-width: 640px;          /* optional: begrenzt Gesamtbreite */
  margin-left: auto;         /* Zentrierung horizontal */
  margin-right: auto;
  text-align: center;        /* falls Beschriftungen o.ä. dazukommen */
}

/* Lightbox overlay */
.lb-backdrop[hidden]{display:none}
.lb-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.75);backdrop-filter:blur(6px);z-index:1200;display:grid;place-items:center;padding:16px}
.lb-figure{position:relative;max-width:min(92vw,900px);max-height:min(92vh,1100px);margin:0}
.lb-image{display:block;max-width:100%;max-height:100%;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.45);border:1px solid rgba(148,163,184,.2)}
.lb-caption{margin-top:10px;text-align:center;color:#94a3b8;font-size:.95rem}
.lb-close{position:absolute;top:-14px;right:-14px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(148,163,184,.25);background:#0b1220;color:#e2e8f0;font-size:22px;font-weight:700;cursor:pointer;box-shadow:0 10px 30px rgba(2,6,23,.4)}
.lb-close:hover{opacity:.9}

/* kompaktere Abstände zwischen Bereichen */
.section {
  padding: 24px 0 !important;   /* vorher 48px */
}

#download {
  margin: 20px 0 !important;    /* vorher 60px */
}

/* Lightbox-Bildgröße auf sichtbaren Bereich begrenzen */
.lb-image {
  display: block;
  width: auto;
  height: auto;
  max-width: 90vw;   /* maximal 90% der Fensterbreite */
  max-height: 85vh;  /* maximal 85% der Fensterhöhe */
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
  border: 1px solid rgba(148,163,184,.2);
  object-fit: contain; /* stellt sicher, dass Seitenverhältnis bleibt */
}

#screens-title,
.section[aria-labelledby="screens-title"] .container {
  text-align: center;
}

/* Screenshots: kompakte, saubere Thumbnails zentriert */
.shot-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 200px)); /* fixe, angenehme Breite */
  gap: 16px;
  justify-content: center;   /* Grid mittig */
  align-items: start;
  margin: 24px auto 0;
  max-width: 680px;          /* verhindert riesige Thumbs auf Desktop */
}

/* Thumbnail-Karte "rahmenlos" machen */
.shot{
  padding: 0;                /* vorher 8px */
  background: transparent;   /* vorher #0f172a */
  border: none;              /* vorher 1px solid … */
  border-radius: 0;
  width: 100%;
  max-width: 200px;          /* Sicherheit: nie größer als eine Spalte */
}

/* Bild sauber einpassen, Verhältnis halten, keine Quetschung */
.shot img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;       /* nur Bild hat runde Ecken */
  object-fit: contain;       /* falls mal Größen abweichen */
}