/* Reset */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

/* Farbvariablen */
:root { --bg: #08080c; --text: #e8e4de; --dim: #9e9a94; --accent: #d4ff2b; --accent2: #ff6b35; }

/* Basis */
html, body { height: 100%; font-family: 'DM Sans', -apple-system, sans-serif; background: var(--bg); color: var(--text); }
.page { min-height: 100vh; min-height: 100dvh; position: relative; display: flex; flex-direction: column; align-items: center; }

/* Rauschtextur */
.page::before { content: ''; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E"); opacity: 0.4; pointer-events: none; z-index: 1; }

/* Nebula-Lichter */
.orb { position: fixed; border-radius: 50%; filter: blur(100px); pointer-events: none; }
.orb-1 { width: 800px; height: 800px; background: radial-gradient(circle, rgba(30,180,180,0.22) 0%, transparent 65%); top: -20%; right: 0%; animation: orbDrift1 20s ease-in-out infinite alternate; }
.orb-2 { width: 700px; height: 700px; background: radial-gradient(circle, rgba(50,100,100,0.20) 0%, transparent 65%); bottom: -15%; left: -5%; animation: orbDrift2 25s ease-in-out infinite alternate; }
.orb-3 { width: 500px; height: 500px; background: radial-gradient(circle, rgba(20,150,160,0.14) 0%, transparent 60%); top: 30%; left: 50%; animation: orbDrift3 18s ease-in-out infinite alternate; }

/* Nebula-Animationen */
@keyframes orbDrift1 { 0% { transform: translate(0, 0); } 100% { transform: translate(-80px, 50px); } }
@keyframes orbDrift2 { 0% { transform: translate(0, 0); } 100% { transform: translate(60px, -40px); } }
@keyframes orbDrift3 { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(50px, -60px) scale(1.15); } }

/* Sternenhimmel Canvas */
#particleCanvas { position: fixed; inset: 0; z-index: 2; pointer-events: none; }

/* Maus-Lichteffekt */
.cursor-glow { position: fixed; width: 250px; height: 250px; border-radius: 50%; background: radial-gradient(circle, rgba(30,170,170,0.08) 0%, rgba(40,130,140,0.03) 50%, transparent 70%); pointer-events: none; z-index: 3; transform: translate(-50%, -50%); will-change: left, top; }

/* Ecken-Deko */
.corner { position: fixed; width: 60px; height: 60px; z-index: 5; opacity: 0; animation: fadeIn 1.2s ease 1.5s forwards; }
.corner--tl { top: clamp(1.2rem, 3vw, 2.2rem); left: clamp(1.5rem, 5vw, 3.5rem); border-top: 1px solid rgba(255,255,255,0.06); border-left: 1px solid rgba(255,255,255,0.06); }
.corner--br { bottom: clamp(1.2rem, 3vw, 2.2rem); right: clamp(1.5rem, 5vw, 3.5rem); border-bottom: 1px solid rgba(255,255,255,0.06); border-right: 1px solid rgba(255,255,255,0.06); }

/* Navigation */
.topbar { position: fixed; top: 0; left: 0; right: 0; z-index: 20; padding: clamp(1.5rem, 3vw, 2.5rem) clamp(2rem, 5vw, 4rem); display: flex; justify-content: space-between; align-items: center; }
.topbar-logo { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 0.95rem; letter-spacing: -0.02em; opacity: 0; animation: fadeIn 1s ease 0.2s forwards; text-decoration: none; color: var(--text); }
.topbar-logo span { color: var(--accent); }
.topbar-links { display: flex; gap: 2rem; align-items: center; opacity: 0; animation: fadeIn 1s ease 0.4s forwards; }
.topbar-links a { color: var(--dim); text-decoration: none; font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 400; transition: color 0.3s ease; position: relative; }
.topbar-links a::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background: var(--accent); transition: width 0.3s ease; }
.topbar-links a:hover { color: var(--text); }
.topbar-links a:hover::after { width: 100%; }
.topbar-links a.active { color: var(--text); }
.topbar-links a.active::after { width: 100%; }

/* Inhalt */
.content { position: relative; z-index: 10; width: 100%; max-width: 1200px; padding: clamp(7rem, 12vw, 10rem) clamp(2rem, 5vw, 4rem) 2rem; display: flex; flex-direction: column; gap: 3rem; flex: 1; }

/* Seiten-Header */
.page-label { font-size: 0.7rem; letter-spacing: 0.25em; text-transform: uppercase; color: var(--dim); font-weight: 500; opacity: 0; animation: slideUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.5s forwards; display: flex; align-items: center; gap: 1rem; }
.page-label::before { content: ''; display: block; width: 40px; height: 1px; background: var(--dim); }
.page-title { font-family: 'Syne', sans-serif; font-size: clamp(3.2rem, 8.5vw, 7.5rem); font-weight: 800; line-height: 1.35; letter-spacing: -0.04em; opacity: 0; animation: slideUp 1s cubic-bezier(0.16, 1, 0.3, 1) 0.6s forwards; }

/* Projekt-Karte */
.project-link { text-decoration: none; color: var(--accent); border-color: rgba(212,255,43,0.25) !important; transition: background 0.3s ease, border-color 0.3s ease; }
.project-link:hover { background: rgba(212,255,43,0.08); border-color: rgba(212,255,43,0.4) !important; }
.project-card { display: flex; align-items: flex-start; gap: clamp(2rem, 4vw, 3.5rem); padding: 2.5rem; border: 1px solid rgba(255,255,255,0.06); border-radius: 16px; background: rgba(255,255,255,0.02); backdrop-filter: blur(10px); opacity: 0; animation: slideUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.85s forwards; transition: border-color 0.4s ease, background 0.4s ease; }
.project-card:hover { border-color: rgba(212,255,43,0.15); background: rgba(255,255,255,0.03); }
.project-number { font-family: 'Syne', sans-serif; font-size: clamp(3rem, 5vw, 4.5rem); font-weight: 800; line-height: 1; color: rgba(212,255,43,0.15); flex-shrink: 0; }

/* Projekt-Infos */
.project-info { display: flex; flex-direction: column; gap: 0.8rem; }
.project-name { font-family: 'Syne', sans-serif; font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1.35; }
.project-desc { font-size: clamp(0.9rem, 1.2vw, 1.05rem); line-height: 1.7; color: var(--dim); font-weight: 300; max-width: 500px; }

/* Projekt-Tags */
.project-tags { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-top: 0.4rem; }
.tag { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); padding: 0.35rem 0.8rem; border: 1px solid rgba(255,255,255,0.08); border-radius: 100px; transition: border-color 0.3s ease, color 0.3s ease; }
.project-card:hover .tag { border-color: rgba(255,255,255,0.12); }

/* Projekt-Status */
.project-status { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin-top: 0.2rem; }
.project-status::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 8px rgba(212,255,43,0.5); animation: pulse 2.5s ease-in-out infinite; }
.project-status--done { color: var(--dim); }
.project-status--done::before { background: var(--dim); box-shadow: none; animation: none; }

/* Fusszeile */
.bottombar { position: relative; z-index: 20; width: 100%; max-width: 1200px; padding: 2rem clamp(2rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.5rem); display: flex; justify-content: space-between; align-items: flex-end; opacity: 0; animation: fadeIn 1s ease 1.3s forwards; }

/* Zurück-Link */
.back-link { font-size: 0.75rem; color: var(--dim); letter-spacing: 0.06em; text-decoration: none; display: flex; align-items: center; gap: 0.6rem; transition: color 0.3s ease; }
.back-link:hover { color: var(--text); }
.back-link .arrow { display: inline-block; width: 20px; height: 1px; background: var(--dim); position: relative; transition: background 0.3s ease; }
.back-link:hover .arrow { background: var(--text); }
.back-link .arrow::before { content: ''; position: absolute; left: 0; top: -3px; width: 7px; height: 7px; border-left: 1px solid var(--dim); border-bottom: 1px solid var(--dim); transform: rotate(45deg); transition: border-color 0.3s ease; }
.back-link:hover .arrow::before { border-color: var(--text); }
.location { font-size: 0.75rem; color: var(--dim); letter-spacing: 0.06em; }

/* Animationen */
@keyframes slideUp { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.8); } }

/* Mobil */
@media (max-width: 768px) { .topbar-links { gap: 1.2rem; } .corner { display: none; } .project-card { flex-direction: column; gap: 1.2rem; padding: 1.8rem; } .project-number { font-size: 2.5rem; } .bottombar { flex-direction: column; gap: 1rem; align-items: flex-start; } }
