:root{
  --bg:#070A12;
  --txt:#ECF2FF;
  --mut:rgba(236,242,255,.72);
  --line:rgba(255,255,255,.10);
  --card:rgba(255,255,255,.06);
  --shadow: 0 24px 90px rgba(0,0,0,.58);
  --blur: blur(16px);
  --r:18px;
  --r2:26px;
  --max:1180px;
  --g1: rgba(120,144,255,.24);
  --g2: rgba(255,98,210,.18);
  --g3: rgba(42,227,255,.16);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Display","SF Pro Text",
               "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--txt);
  background:
    radial-gradient(1200px 720px at 12% 8%, var(--g1), transparent 58%),
    radial-gradient(980px 680px at 88% 18%, var(--g2), transparent 60%),
    radial-gradient(980px 720px at 60% 92%, var(--g3), transparent 60%),
    var(--bg);
  line-height:1.45;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
.container{max-width:var(--max); margin:0 auto; padding:0 18px}

.topbar{
  position:sticky; top:0; z-index:50;
  border-bottom:1px solid var(--line);
  background: linear-gradient(to bottom, rgba(7,10,18,.88), rgba(7,10,18,.55));
  backdrop-filter: var(--blur);
}
.nav{
  height:66px;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
}
.brand{display:flex; align-items:center; gap:10px; font-weight:680; letter-spacing:.2px}
.dot{
  width:10px; height:10px; border-radius:99px;
  background: linear-gradient(135deg, rgba(120,144,255,1), rgba(255,98,210,1));
  box-shadow: 0 0 26px rgba(120,144,255,.45);
}
.navlinks{
  display:flex; gap:10px; align-items:center;
  color: rgba(236,242,255,.70);
  font-size:14px;
}
.navlinks a{padding:8px 10px; border-radius:12px}
.navlinks a:hover{background: rgba(255,255,255,.06); color: var(--txt)}
.navcta{display:flex; gap:10px; align-items:center}
@media (max-width: 940px){ .navlinks{display:none} }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  backdrop-filter: var(--blur);
  box-shadow: 0 10px 28px rgba(0,0,0,.24);
  font-weight:650; font-size:14px;
}
.btn:hover{background: rgba(255,255,255,.10)}
.btn.primary{
  border-color: rgba(120,144,255,.35);
  background: linear-gradient(135deg, rgba(120,144,255,.22), rgba(255,98,210,.14));
}

.hero{padding: 58px 0 28px}
.heroGrid{
  display:grid; gap:16px;
  grid-template-columns: 1.25fr .75fr;
  align-items:stretch;
}
@media (max-width: 940px){ .heroGrid{grid-template-columns: 1fr} }

.panel{
  border:1px solid var(--line);
  border-radius: var(--r2);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.04));
  box-shadow: var(--shadow);
  backdrop-filter: var(--blur);
  padding: 22px;
  position:relative;
  overflow:hidden;
}
.panel::after{
  content:"";
  position:absolute; inset:-2px;
  background:
    radial-gradient(700px 300px at 20% 0%, rgba(120,144,255,.18), transparent 55%),
    radial-gradient(700px 300px at 88% 60%, rgba(255,98,210,.12), transparent 58%);
  opacity:.85;
  pointer-events:none;
}
.panel > *{position:relative}

.kicker{
  display:inline-flex; align-items:center; gap:10px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: var(--mut);
  font-size:13px;
}
h1{
  margin:12px 0 0;
  font-size: clamp(34px, 4.8vw, 58px);
  letter-spacing: -0.02em;
  line-height: 1.02;
}
.sub{
  margin: 12px 0 18px;
  color: var(--mut);
  font-size: 16px;
  max-width: 64ch;
}
.actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px}

.side{display:flex; flex-direction:column; gap:12px}
.card{
  border:1px solid var(--line);
  border-radius: var(--r);
  background: rgba(255,255,255,.05);
  backdrop-filter: var(--blur);
  padding:16px;
}
.card h3{margin:0 0 8px; font-size:14px; letter-spacing:.2px; font-weight:720}
.card p{margin:0; color:var(--mut); font-size:14px}
.list{margin:8px 0 0; padding-left:18px; color:var(--mut); font-size:14px}
.list li{margin:6px 0}

.section{padding: 18px 0 26px}
.section h2{margin:0 0 12px; font-size: 22px; letter-spacing: -0.01em}
.grid2{display:grid; grid-template-columns: 1fr 1fr; gap:14px}
@media (max-width: 900px){ .grid2{grid-template-columns: 1fr} }

.project{
  position:relative;
  overflow:hidden;
}
.project::before{
  content:"";
  position:absolute; inset:-2px;
  background:
    radial-gradient(820px 340px at 18% 10%, rgba(120,144,255,.20), transparent 55%),
    radial-gradient(820px 340px at 88% 75%, rgba(255,98,210,.14), transparent 58%);
  opacity:.9;
  pointer-events:none;
}
.project .inner{position:relative}
.pills{display:flex; gap:8px; flex-wrap:wrap}
.pill{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
  color: rgba(236,242,255,.70);
}

.footer{
  padding: 22px 0 34px;
  border-top:1px solid rgba(255,255,255,.08);
  color: rgba(236,242,255,.62);
  font-size: 13px;
  margin-top: 10px;
}
.footer a{color: rgba(236,242,255,.82)}
.small{font-size:12px; color: rgba(236,242,255,.58)}

/* Cookie Banner */
.cookie{
  position: fixed;
  left: 16px; right: 16px; bottom: 16px;
  max-width: 980px;
  margin: 0 auto;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(10,14,28,.78);
  backdrop-filter: var(--blur);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 20px 80px rgba(0,0,0,.55);
  display:none;
  z-index: 1000;
}
.cookie .row{display:flex; gap:12px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap}
.cookie p{margin:0; color: rgba(236,242,255,.72); font-size:13px; max-width: 78ch}
.cookie .cta{display:flex; gap:10px; flex-wrap:wrap}
.cookie .btn{box-shadow:none}

/* Tour overlay */
.tourOverlay{
  position:fixed; inset:0;
  background: rgba(0,0,0,.55);
  display:none;
  z-index:1100;
}
.tourBox{
  position:fixed;
  left: 16px; right:16px; bottom: 16px;
  max-width: 720px;
  margin:0 auto;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(10,14,28,.84);
  backdrop-filter: var(--blur);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 20px 80px rgba(0,0,0,.55);
  display:none;
  z-index:1101;
}
.tourBox h4{margin:0 0 6px; font-size:14px}
.tourBox p{margin:0; color: rgba(236,242,255,.72); font-size:13px}
.tourBox .cta{margin-top:10px; display:flex; gap:10px; flex-wrap:wrap}



/* --- Risk colors (badges/pills) --- */
.risk, .badge, .pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  padding:.32rem .7rem;
  border-radius:999px;
  font-weight:600;
  font-size:.9rem;
  line-height:1;
  border:1px solid rgba(255,255,255,.10);
}

/* accept both: .risk.low OR .risk-low (same for medium/high) */
.risk.low, .risk-low, .badge.low, .badge-low, .pill.low, .pill-low{
  background: rgba(34,197,94,.18);
  color: rgba(34,197,94,1);
  border-color: rgba(34,197,94,.22);
}

.risk.medium, .risk-medium, .badge.medium, .badge-medium, .pill.medium, .pill-medium{
  background: rgba(234,179,8,.18);
  color: rgba(234,179,8,1);
  border-color: rgba(234,179,8,.22);
}

.risk.high, .risk-high, .badge.high, .badge-high, .pill.high, .pill-high{
  background: rgba(239,68,68,.18);
  color: rgba(239,68,68,1);
  border-color: rgba(239,68,68,.22);
}

.risk.unknown, .risk-unknown, .badge.unknown, .badge-unknown, .pill.unknown, .pill-unknown{
  background: rgba(148,163,184,.18);
  color: rgba(148,163,184,1);
  border-color: rgba(148,163,184,.22);
}



/* overlap-fix:v1 */
/* Mobile/Small: Karten dürfen nicht “kleben” oder überlappen */
.grid2 {
  display: grid;
  gap: 16px;                /* sorgt für saubere Trennung */
}

.projectCard {
  margin: 0 !important;
  position: relative;
  z-index: 1;
}

.projectActions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;          /* verhindert Button-Überlagerung */
  margin-top: 14px;
}

.projectTop {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;          /* Pills brechen sauber um */
  margin-bottom: 10px;
}

/* Extra: wenn irgendwo negative margins drin sind, neutralisieren */
.card {
  transform: none;
}


/* overlap-fix:v2 */
/* FIX: Projekt-Karten dürfen NICHT überlappen (gezielt nur #projects) */
#projects {
  position: relative;
  z-index: 1;
}

#projects .projectCard,
#projects .card {
  position: relative !important;
  z-index: 1;
  margin: 0 !important;
  overflow: hidden;              /* verhindert, dass absolute Elemente rauslaufen */
}

#projects .projectCard + .projectCard,
#projects .card + .card {
  margin-top: 16px !important;   /* klarer Abstand zwischen Projekten */
}

#projects .projectActions,
#projects .actions,
#projects .buttons {
  position: relative !important; /* falls Buttons/Actions absolut gesetzt waren */
  z-index: 2;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;               /* mobile: kein Überdecken */
  margin-top: 14px;
}

#projects .pills,
#projects .tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

@media (max-width: 520px) {
  #projects .projectCard + .projectCard,
  #projects .card + .card {
    margin-top: 18px !important; /* auf iPhone etwas mehr Luft */
  }
}

/* overlap-fix:v3 */
/* Problem: zweite Projekt-Card überlappt (meist: Card-in-Card + negative offsets/transform/absolute) */

#projects .card .card,
#projects .projectCard .projectCard,
#projects .card [class*="card"] [class*="card"] {
  position: static !important;     /* kill absolute/relative tricks */
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;      /* kill translateY / scale */
  margin-top: 16px !important;     /* sauberer Abstand */
  width: 100% !important;
  display: block !important;
}

/* falls irgendwo negative margins reingrätschen */
#projects .card .card {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Buttons/Actions sollen umbrechen statt überdecken */
#projects .card .projectActions,
#projects .card .actions,
#projects .card .buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  position: static !important;
  transform: none !important;
}

/* Mobile: ein Tick mehr Luft */
@media (max-width: 520px) {
  #projects .card .card { margin-top: 18px !important; }
}
