:root{--bg-dark: #0f172a;--bg-card: #1e293b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--accent-primary: #3b82f6;--accent-secondary: #2dd4bf;--accent-gradient: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));--glass-bg: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .05);--glass-blur: 12px;--font-sans: "Nunito", "Inter", system-ui, -apple-system, sans-serif;--font-mono: "Fira Code", monospace;--container-width: 1200px;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--border-radius: 20px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg-dark);color:var(--text-primary);line-height:1.6;overflow-x:hidden}a{text-decoration:none;color:inherit;transition:opacity .2s}a:hover{opacity:1}img{max-width:100%;display:block}.container{max-width:var(--container-width);margin:0 auto;padding:0 var(--spacing-sm)}.gradient-text{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--border-radius)}.btn{display:inline-block;padding:.75rem 1.5rem;border-radius:50px;font-weight:600;cursor:pointer;border:none;transition:transform .2s,box-shadow .2s}.btn-primary{background:var(--accent-gradient);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf64d}.section-title{font-size:2.5rem;font-weight:700;margin-bottom:var(--spacing-lg);text-align:center}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:#333;border-radius:5px}.navbar{position:fixed;top:1rem;left:50%;transform:translate(-50%);width:90%;max-width:var(--container-width);z-index:1000;padding:1rem 2.5rem}.nav-content{display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700}.nav-links{display:flex;gap:2rem}.nav-links a{font-weight:500;font-size:.95rem}.nav-links a:hover{color:var(--accent-primary)}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding-top:80px}.hero-title{font-size:4rem;line-height:1.1;font-weight:800;margin-bottom:1.5rem}.hero-subtitle{font-size:1.25rem;color:var(--text-secondary);max-width:600px;margin:0 auto 2.5rem}.hero-cta{display:flex;gap:1rem;justify-content:center}.btn-outline{border:2px solid var(--glass-border);background:transparent;color:var(--text-primary)}.btn-outline:hover{border-color:var(--text-primary)}.section{padding:6rem 0}.skills-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.skill-tag{padding:.5rem 1.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:50px;font-size:.9rem;color:var(--text-secondary);transition:all .3s ease}.skill-tag:hover{border-color:var(--accent-primary);color:var(--text-primary);transform:translateY(-2px)}.contact-card{text-align:center;padding:4rem 2rem;max-width:800px;margin:0 auto}.contact-card p{color:var(--text-secondary);margin-bottom:2rem;font-size:1.1rem}.footer{padding:2rem 0;text-align:center;border-top:1px solid var(--glass-border);color:var(--text-secondary);font-size:.9rem}@media(max-width:768px){.hero-title{font-size:2.5rem}.navbar{width:95%;top:.5rem}.nav-links{display:none}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;padding:1rem 0}.project-card{padding:2rem;transition:transform .3s ease,border-color .3s ease;display:flex;flex-direction:column;height:100%}.project-card:hover{transform:translateY(-5px);border-color:var(--accent-primary)}.project-title{font-size:1.5rem;font-weight:700;margin-bottom:1rem}.project-desc{color:var(--text-secondary);margin-bottom:1.5rem;flex-grow:1}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.tag{font-size:.8rem;color:var(--accent-primary);background:#3b82f61a;padding:.25rem .75rem;border-radius:4px;display:inline-block}.tag:hover{background:#3b82f633;transform:translateY(-2px)}.project-link{font-weight:600;color:var(--text-primary);margin-top:auto}.project-link:hover{text-decoration:underline;color:var(--accent-primary)}.modal{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease;display:flex;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;background-color:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);align-items:center;justify-content:center}.modal.show{opacity:1;visibility:visible;pointer-events:auto}.modal-content{position:relative;width:90%;max-width:600px;padding:3rem;text-align:center}.close-btn{position:absolute;top:1rem;right:1.5rem;font-size:2rem;cursor:pointer;color:var(--text-secondary);transition:color .2s}.close-btn:hover{color:var(--text-primary)}.tag,.skill-tag,.btn,.project-link{position:relative}.tag:after,.skill-tag:after,.btn:after,.project-link:after{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(5px);background:var(--text-primary);color:var(--bg-dark);font-family:var(--font-sans);font-weight:700;font-size:.75rem;padding:.4rem .8rem;border-radius:6px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s cubic-bezier(.68,-.55,.265,1.55);pointer-events:none;box-shadow:0 4px 15px #0000004d;z-index:100}.tag:after,.skill-tag:after{content:attr(data-tooltip)}.btn:after,.project-link:after{content:"Klick mich!"}.tag:hover:after,.skill-tag:hover:after,.btn:hover:after,.project-link:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.btn:hover:after,.project-link:hover:after{transition-delay:2s}
