
:root{
  --bg:#03050a;--surface:#0a1020;--surface2:#0e1730;--text:#fff;--muted:#aeb9d6;
  --line:rgba(255,255,255,.1);--blue:#2f80ff;--blue2:#78bdff;--max:1160px
}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);line-height:1.6;
background:radial-gradient(circle at 80% 5%,rgba(22,77,255,.27),transparent 30rem),
radial-gradient(circle at 10% 30%,rgba(47,128,255,.15),transparent 30rem),
linear-gradient(180deg,#07101f 0%,var(--bg) 45%,#020308 100%);min-height:100vh}
a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 40px),var(--max));margin:auto}
nav{position:sticky;top:0;z-index:20;backdrop-filter:blur(18px);background:rgba(3,5,10,.78);border-bottom:1px solid var(--line)}
.nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{font-weight:900;letter-spacing:-.04em}.navlinks{display:flex;gap:20px;color:var(--muted);font-size:.93rem}.navlinks a:hover{color:#fff}
.hero{min-height:68vh;display:flex;align-items:center;padding:90px 0 70px}.hero.small{min-height:48vh}
.kicker{color:#80c2ff;text-transform:uppercase;letter-spacing:.15em;font-weight:800;font-size:.76rem;margin-bottom:16px}
h1{font-size:clamp(3rem,8vw,6.8rem);line-height:.94;letter-spacing:-.065em;max-width:1000px;
background:linear-gradient(90deg,#fff,#dceeff 42%,#70b7ff 78%,#2f80ff);-webkit-background-clip:text;background-clip:text;color:transparent}
h2{font-size:clamp(2.2rem,5vw,4.2rem);line-height:1;letter-spacing:-.05em}
h3{font-size:1.55rem;letter-spacing:-.035em}.lead{max-width:720px;color:var(--muted);font-size:1.15rem;margin-top:24px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:999px;border:1px solid var(--line);font-weight:800;transition:.2s}
.btn.primary{background:linear-gradient(135deg,#fff,#dcecff 35%,#5da6ff);color:#06101f;box-shadow:0 12px 34px rgba(47,128,255,.2)}
.btn:hover{transform:translateY(-2px);border-color:rgba(120,189,255,.4)}
section{padding:90px 0;border-top:1px solid var(--line)}.sectionhead{display:grid;grid-template-columns:.75fr 1.25fr;gap:40px;margin-bottom:42px}.sectionhead p{color:var(--muted);max-width:650px}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.card{grid-column:span 4;padding:28px;min-height:280px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(47,128,255,.035));display:flex;flex-direction:column;justify-content:space-between;transition:.22s}
.card:hover{transform:translateY(-5px);border-color:rgba(120,189,255,.38);box-shadow:0 24px 70px rgba(22,77,255,.13)}.card p,.muted{color:var(--muted)}.card .go{color:#78bdff;font-weight:800;margin-top:25px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{border:1px solid var(--line);border-radius:26px;padding:clamp(26px,4vw,48px);background:linear-gradient(180deg,rgba(47,128,255,.055),rgba(255,255,255,.015)),var(--surface)}
.panel p{color:var(--muted);margin-top:16px}.logo{width:88px;height:88px;border-radius:22px;display:grid;place-items:center;font-weight:900;font-size:1.35rem;margin-bottom:28px;border:1px solid rgba(120,189,255,.3);background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(47,128,255,.2)),var(--surface2)}
.visual{min-height:420px;display:grid;place-items:center;background:radial-gradient(circle at 35% 20%,rgba(111,183,255,.23),transparent 17rem),linear-gradient(135deg,rgba(22,77,255,.2),rgba(255,255,255,.02)),var(--surface)}
.mockup{width:min(78%,360px);aspect-ratio:9/16;border-radius:36px;border:8px solid #0d1830;background:linear-gradient(#fff,#eaf4ff);color:#10131a;padding:25px;transform:rotate(4deg);box-shadow:0 30px 70px rgba(0,0,0,.4)}
.mockup h3{font-size:1.8rem;line-height:1.05;margin:38px 0 10px}.mockbox{height:150px;border-radius:18px;background:linear-gradient(135deg,#0d5eff,#73b8ff 58%,#dff1ff);margin-top:25px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;overflow:hidden}.step{background:var(--surface);padding:28px 23px;min-height:220px}.step b{color:#7fc0ff;display:block;margin-bottom:28px}.step p{color:var(--muted);font-size:.95rem}
.timeline{display:grid;gap:14px}.milestone{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:25px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.025)}.milestone strong{color:#7fc0ff}.milestone p{color:var(--muted)}
.photo{min-height:480px;border-radius:28px;border:1px solid var(--line);display:flex;align-items:flex-end;padding:40px;background:linear-gradient(to top,rgba(2,5,12,.98),rgba(5,18,46,.38)),radial-gradient(circle at 75% 20%,rgba(47,128,255,.25),transparent 20rem),#0b1224}
.socials{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.socials a{padding:9px 14px;border:1px solid var(--line);border-radius:999px;font-weight:800}
footer{padding:40px 0;color:var(--muted);border-top:1px solid var(--line)}.footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
@media(max-width:800px){.navlinks{display:none}.sectionhead,.split{grid-template-columns:1fr}.card{grid-column:1/-1}.steps{grid-template-columns:1fr}.milestone{grid-template-columns:1fr}.hero{min-height:60vh}section{padding:70px 0}}

.project-logo{
  width:140px;
  min-height:90px;
  display:flex;
  align-items:center;
  margin-bottom:28px;
}

.project-logo img{
  max-width:140px;
  max-height:90px;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
}


/* ==================================================
   FUTURE – BILDER KARUSSELL
   ================================================== */

.future-carousel {
  position: relative;
  overflow: hidden;

  width: 100%;
  margin-top: 30px;

  border-radius: 28px;
  border: 1px solid var(--line);

  background: var(--surface);

  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.25);
}


/* Gesamte bewegliche Bilder-Reihe */

.carousel-track {
  display: flex;

  width: 100%;

  transition:
    transform 0.6s cubic-bezier(.22, .61, .36, 1);

  will-change: transform;
}


/* Einzelnes Bild */

.carousel-slide {
  position: relative;

  min-width: 100%;
  width: 100%;
  height: 600px;

  overflow: hidden;
}


/* Bild */

.carousel-slide img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}


/* Dunkler Verlauf über dem Bild */

.carousel-overlay {
  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      to top,
      rgba(3, 5, 10, 0.90) 0%,
      rgba(3, 5, 10, 0.45) 30%,
      rgba(3, 5, 10, 0.08) 65%,
      transparent 100%
    );

  pointer-events: none;
}


/* Text auf dem Bild */

.carousel-caption {
  position: absolute;

  left: 40px;
  right: 40px;
  bottom: 38px;

  z-index: 2;

  max-width: 700px;
}


.carousel-caption h3 {
  margin: 0 0 8px;

  font-size: clamp(1.7rem, 3vw, 2.4rem);

  color: white;

  letter-spacing: -0.04em;
}


.carousel-caption p {
  margin: 0;

  max-width: 650px;

  color: #d8e4f5;

  font-size: 1rem;
}


/* ==================================================
   PFEILE
   ================================================== */

.carousel-button {
  position: absolute;

  top: 50%;

  z-index: 10;

  width: 56px;
  height: 56px;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 0;

  transform: translateY(-50%);

  border-radius: 50%;

  border:
    1px solid rgba(255, 255, 255, 0.16);

  background:
    rgba(5, 7, 13, 0.72);

  color: white;

  font-size: 2rem;
  line-height: 1;

  cursor: pointer;

  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  transition:
    background 0.2s ease,
    transform 0.2s ease,
    border-color 0.2s ease;
}


.carousel-button:hover {
  background:
    rgba(47, 128, 255, 0.92);

  border-color:
    rgba(111, 183, 255, 0.6);

  transform:
    translateY(-50%)
    scale(1.07);
}


.carousel-button:active {
  transform:
    translateY(-50%)
    scale(0.95);
}


.carousel-button.prev {
  left: 20px;
}


.carousel-button.next {
  right: 20px;
}


/* ==================================================
   PUNKTE UNTER DEM KARUSSELL
   ================================================== */

.carousel-dots {
  display: flex;

  justify-content: center;
  align-items: center;

  gap: 10px;

  margin-top: 22px;
}


.carousel-dot {
  width: 10px;
  height: 10px;

  padding: 0;

  border: none;
  border-radius: 50%;

  background:
    rgba(255, 255, 255, 0.22);

  cursor: pointer;

  transition:
    width 0.25s ease,
    background 0.25s ease,
    transform 0.2s ease;
}


.carousel-dot:hover {
  background:
    rgba(111, 183, 255, 0.65);

  transform: scale(1.15);
}


.carousel-dot.active {
  width: 30px;

  border-radius: 999px;

  background: #6fb7ff;
}


/* ==================================================
   TABLET
   ================================================== */

@media (max-width: 900px) {

  .carousel-slide {
    height: 500px;
  }

}


/* ==================================================
   SMARTPHONE
   ================================================== */

@media (max-width: 600px) {

  .future-carousel {
    border-radius: 20px;
  }


  .carousel-slide {
    height: 430px;
  }


  .carousel-button {
    width: 44px;
    height: 44px;

    font-size: 1.6rem;
  }


  .carousel-button.prev {
    left: 10px;
  }


  .carousel-button.next {
    right: 10px;
  }


  .carousel-caption {
    left: 22px;
    right: 22px;
    bottom: 24px;
  }


  .carousel-caption h3 {
    font-size: 1.55rem;
  }


  .carousel-caption p {
    font-size: 0.92rem;
  }

}


/* PROJECT LOGOS */

.project-logo{
  display:flex;
  align-items:center;
  margin-bottom:32px;
}

.project-logo img{
  display:block;
  width:auto;
  height:auto;
  max-width:260px;
  max-height:140px;
  object-fit:contain;
  border-radius:16px;
}

@media(max-width:600px){
  .project-logo img{
    max-width:200px;
    max-height:110px;
  }
}
