@charset "UTF-8";
/* TIMELINE (CV) + kompakte Timeline (Startseite) */
.timeline-wrap{position:relative;padding:2rem 0}
.timeline-wrap::before{content:"";position:absolute;left:50%;top:0;bottom:0;
  width:1px;background:var(--border);transform:translateX(-50%)}
.tl-entry{display:grid;grid-template-columns:1fr 40px 1fr;
  gap:0 1.5rem;align-items:start;margin-bottom:3rem;position:relative;
  opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s}
.tl-entry.visible{opacity:1;transform:translateY(0)}
.tl-dot{width:10px;height:10px;border-radius:50%;
  background:var(--bg);border:2px solid var(--accent);
  margin:0 auto;margin-top:1.4rem;position:relative;z-index:1;
  transition:background .3s,box-shadow .3s;flex-shrink:0}
.tl-entry.active .tl-dot,.tl-entry:hover .tl-dot{
  background:var(--accent);box-shadow:0 0 10px rgba(0,255,65,.4)}
.tl-card{background:var(--card-bg);border:1px solid var(--border);
  border-radius:var(--r);padding:1.2rem 1.4rem;
  backdrop-filter:blur(4px);transition:border-color .25s;cursor:pointer}
.tl-card:hover{border-color:var(--muted)}
.tl-entry.active .tl-card{border-color:var(--accent)}
.tl-entry.left .tl-card{grid-column:1}
.tl-entry.left .tl-dot{grid-column:2}
.tl-entry.left .tl-spacer{grid-column:3}
.tl-entry.right .tl-spacer{grid-column:1}
.tl-entry.right .tl-dot{grid-column:2}
.tl-entry.right .tl-card{grid-column:3}
.tl-date{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent2);margin-bottom:.3rem}
.tl-title{font-family:var(--mono);font-size:.9rem;font-weight:500;color:var(--heading)}
.tl-org{font-family:var(--mono);font-size:.72rem;color:var(--dim);margin-top:.15rem}
.tl-type{display:inline-block;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.1em;text-transform:uppercase;padding:.15rem .5rem;
  border-radius:var(--r);margin-top:.4rem}
.tl-type.work{color:#7eb8f7;background:rgba(126,184,247,.1);border:1px solid rgba(126,184,247,.2)}
.tl-type.project{color:#f0a050;background:rgba(240,160,80,.1);border:1px solid rgba(240,160,80,.2)}
.tl-type.infra{color:#a0d8a0;background:rgba(160,216,160,.1);border:1px solid rgba(160,216,160,.2)}
.tl-type.education{color:#c8a0f8;background:rgba(200,160,248,.1);border:1px solid rgba(200,160,248,.2)}
.tl-body{max-height:0;overflow:hidden;
  transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s;opacity:0}
.tl-entry.active .tl-body{max-height:100%;opacity:1}
.tl-body p{font-size:.88rem;color:var(--dim);margin-top:.8rem;line-height:1.65}
.tl-body .tags{margin-top:.7rem}
.tl-year{text-align:center;font-family:var(--mono);font-size:.72rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  margin:2rem 0 2.5rem;position:relative}
.tl-year span{background:var(--bg);padding:0 1rem;position:relative;z-index:1}
.tl-compact{display:flex;flex-direction:column;gap:.9rem;margin-top:1.5rem}
.tl-compact-item{display:flex;gap:1.2rem;align-items:flex-start;padding:.9rem 1.1rem;
  background:var(--card-bg);border:1px solid var(--border);
  border-radius:var(--r);backdrop-filter:blur(4px);transition:border-color .2s}
.tl-compact-item:hover{border-color:var(--muted)}
.tl-compact-dot{width:8px;height:8px;border-radius:50%;
  border:2px solid var(--accent);flex-shrink:0;margin-top:.45rem}
.tl-compact-date{font-family:var(--mono);font-size:.65rem;color:var(--accent2);
  letter-spacing:.06em;white-space:nowrap;min-width:80px;padding-top:.1rem}
.tl-compact-title{font-family:var(--mono);font-size:.82rem;color:var(--heading);font-weight:500}
.tl-compact-org{font-family:var(--mono);font-size:.68rem;color:var(--dim);margin-top:.15rem}
@media(max-width:640px){
  .timeline-wrap::before{left:12px}
  .tl-entry{grid-template-columns:24px 1fr;grid-template-rows:auto auto}
  .tl-entry.left .tl-card,.tl-entry.right .tl-card{grid-column:2;grid-row:1}
  .tl-entry.left .tl-dot,.tl-entry.right .tl-dot{grid-column:1;grid-row:1;margin-top:1.4rem}
  .tl-entry.left .tl-spacer,.tl-entry.right .tl-spacer{display:none}
}
