:root{
  --bg0:#060812;
  --bg1:#0b1024;
  --card: rgba(255,255,255,.08);
  --card2: rgba(255,255,255,.06);
  --border: rgba(255,255,255,.14);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.68);
  --glow: 0 30px 100px rgba(0,0,0,.55);
  --radius: 22px;
}

*{box-sizing:border-box}
html, body { height: 100%; }

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background: #060812;          /* nur Fallback */
  overflow-x:hidden;
  position: relative;
}

/* ✅ Der eigentliche Background: fixed und ohne “Kanten” beim Scroll */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;

  background:
    radial-gradient(1200px 900px at 15% 10%, rgba(27,42,106,.85) 0%, rgba(27,42,106,0) 55%),
    radial-gradient(900px 700px at 80% 15%, rgba(92,43,123,.75) 0%, rgba(92,43,123,0) 52%),
    radial-gradient(800px 600px at 55% 85%, rgba(64,143,255,.18) 0%, rgba(64,143,255,0) 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));

  transform: translateZ(0);  /* stabilisiert Rendering */
}

a{color:inherit}
.muted{color:var(--muted)}
.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:999px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  text-decoration:none;
}

.cv-hero{
  position:relative;
  min-height: 85vh;
  display:flex;
  align-items:flex-end;
  padding: 48px 0 28px;
}

.cv-hero__bg{
  position:absolute; inset:0;
  background:
    radial-gradient(900px 600px at 30% 20%, rgba(64,143,255,.25), transparent 60%),
    radial-gradient(700px 520px at 70% 30%, rgba(182,70,255,.20), transparent 60%);
  filter: blur(0px);
  pointer-events:none;
}

.cv-hero__inner{
  width:min(1200px, calc(100% - 32px));
  margin: 0 auto;
  position:relative;
  z-index:2;
}

.cv-hero__card{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 26px;
  backdrop-filter: blur(18px);
  box-shadow: var(--glow);
  padding: clamp(18px, 3vw, 28px);
}

.cv-hero__top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom: 16px;
}

h1{margin:0; font-size: clamp(2rem, 4vw, 3.1rem); letter-spacing:-.02em; line-height:1.05}
h2{margin:0 0 10px; font-size: 1.35rem; letter-spacing:-.01em}
h3{margin:0 0 10px; font-size: 1.1rem}

.cv-grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 16px;
}

.cv-block{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  padding: 16px;
}

.cv-dl{margin:0; display:grid; gap:10px}
.cv-dl > div{display:grid; grid-template-columns: 140px 1fr; gap:12px}
dt{color:var(--muted)}
dd{margin:0}

.tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.tags span{
  font-size:.88rem;
  padding:8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
}

.cv-main{
  width:min(1200px, calc(100% - 32px));
  margin: 0 auto;
  padding: 24px 0 80px;
}

.cv-section{padding: 38px 0}
.cv-section__head{margin-bottom: 16px}

.timeline{
  position:relative;
  margin-top: 18px;

  /* Platz für Line + Dot */
  padding-left: 44px;
}

.timeline::before{
  content:"";
  position:absolute;
  left: 22px;                 /* Line sitzt exakt in der Mitte vom Dot */
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,.26),
    rgba(255,255,255,.10),
    rgba(255,255,255,.04)
  );
  box-shadow: 0 0 0 1px rgba(255,255,255,.06);
}

.t-item{
  position:relative;
  padding: 0 0 18px;
}

/* ✅ Dot perfekt auf der Line zentriert */
.t-dot{
  position:absolute;
  left: 22px;                 /* gleiche x-position wie die Line */
  top: 22px;                  /* sitzt sauber zur Card */
  transform: translate(-50%, 0);

  width: 16px;
  height: 16px;
  border-radius: 999px;

  /* Inner core */
  background: radial-gradient(circle at 35% 35%,
    rgba(255,255,255,.95) 0%,
    rgba(120,170,255,.55) 35%,
    rgba(80,110,255,.22) 60%,
    rgba(0,0,0,0) 70%
  );

  /* Ring */
  border: 1px solid rgba(255,255,255,.35);

  /* Glow */
  box-shadow:
    0 0 0 6px rgba(86,120,255,.14),
    0 0 22px rgba(120,170,255,.22);
}

/* Optional: etwas “Tech” durch kleines Highlight */
.t-dot::after{
  content:"";
  position:absolute;
  inset: 3px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  filter: blur(.2px);
  opacity: .55;
}

/* Hover-Pulse (fühlt sich futuristisch an) */
.t-item:hover .t-dot{
  box-shadow:
    0 0 0 8px rgba(86,120,255,.18),
    0 0 34px rgba(120,170,255,.30);
}

/* Optional: kleine “Pulse”-Animation beim Sichtbarwerden */
.reveal.is-in .t-dot{
  animation: dotPop .55s ease both;
}

@keyframes dotPop{
  0%{ transform: translate(-50%,0) scale(.75); opacity:0; }
  100%{ transform: translate(-50%,0) scale(1); opacity:1; }
}
.t-card{
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: 16px;
  box-shadow: 0 18px 70px rgba(0,0,0,.35);
}
.t-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:baseline;
  margin-bottom: 10px;
  padding-left: 28px;
}
.t-meta span{color:var(--muted)}
.subhead{margin-top:12px; font-weight:600; color: rgba(255,255,255,.82)}
ul{margin:10px 0 0 18px}
.bullets{margin: 0 0 0 18px}

.cards-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.card{
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: 16px;
  box-shadow: 0 18px 70px rgba(0,0,0,.35);
}

.row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin: 8px 0;
}
.signature{
  margin-top: 18px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.12);
}

.reveal{
  opacity:1;
  transform: none;
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-in{
  opacity:1;
  transform: translateY(0) scale(1);
}

@media (max-width: 920px){
  .cv-grid{grid-template-columns:1fr}
  .cv-dl > div{grid-template-columns: 120px 1fr}
  .cards-2{grid-template-columns:1fr}
}
