/* Hier ist die wichtige Änderung für das Nebeneinanderstehen */ .projects, .tech-features { display: grid; /* Erzeugt so viele Spalten wie nebeneinander passen (mind. 300px breit) */ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .project-card, .tech-card { background-color: var(--card-bg); border-radius: 15px; padding: 2.5rem; box-shadow: 0 10px 30px var(--card-shadow); border: 1px solid var(--border-color); text-align: center; transition: transform 0.3s ease, background-color 0.3s; /* Flexbox Korrektur */ display: flex; flex-direction: column; justify-content: flex-start; /* Schiebt alles nach oben */ height: 100%; /* Sorgt dafür, dass alle Karten in einer Reihe gleich hoch sind */ } .project-card h3, .tech-card h3 { color: var(--accent); margin-bottom: 1.2rem; /* Abstand zwischen Überschrift und Text */ font-size: 1.5rem; } .project-card p, .tech-card p { color: var(--text-muted); line-height: 1.6; margin-bottom: 0; /* Verhindert unnötigen Platz nach unten */ } .project-card:hover, .tech-card:hover { transform: translateY(-5px); } /* Container-Grundlayout */ .article-content { max-width: 900px; /* Optimale Lesebreite */ margin: 2rem auto; padding: 2rem; line-height: 1.6; color: var(--text-main); background-color: var(--bg-card); /* Oder var(--bg-body) */ border-radius: 12px; text-align: justify; /* Blocksatz wie gewünscht */ hyphens: auto; } /* Header-Hierarchie */ .article-content h1, .article-content h2, .article-content h3, .article-content h4 { color: var(--accent); margin-top: 2.5rem; margin-bottom: 1.2rem; line-height: 1.2; text-align: left; /* Header bleiben linksbündig */ } .article-content h1 { font-size: 2.5rem; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem; } .article-content h2 { font-size: 1.8rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.3rem; } .article-content h3 { font-size: 1.4rem; } /* Absätze und Abstände */ .article-content p { margin-bottom: 1.5rem; } /* Listen-Styling */ .article-content ul, .article-content ol { margin-bottom: 1.5rem; padding-left: 1.5rem; } .article-content li { margin-bottom: 0.6rem; } /* Links */ .article-content a { color: var(--accent); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.2s ease; } .article-content a:hover { border-bottom-color: var(--accent); } /* Tabellen-Styling (Responsiv & Modern) */ .article-content table { width: 100%; border-collapse: collapse; margin: 2rem 0; font-size: 0.95rem; background-color: var(--bg-section-alt); border-radius: 8px; overflow: hidden; /* Für abgerundete Ecken */ } .article-content th, .article-contenttd { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(--border-color); } .article-content th { background-color: var(--accent); color: #ffffff; font-weight: bold; } .article-content tr:last-child td { border-bottom: none; } .article-content tr:hover { background-color: rgba(var(--accent-rgb), 0.05); /* Dezenter Hover-Effekt */ } /* Medien: Bilder & Videos */ .article-content img { max-width: 100%; height: auto; border-radius: 8px; margin: 2rem 0; display: block; box-shadow: 0 4px 15px rgba(0,0,0,0.1); } /* Zitate (Blockquotes) */ .article-content blockquote { margin: 2rem 0; padding: 1rem 1.5rem; border-left: 4px solid var(--accent); background-color: var(--bg-section-alt); font-style: italic; color: var(--text-muted); } @media (max-width: 950px) { .hamburger { display: flex !important; /* Hamburger nur auf Chat-Mobile zeigen */ } .nav-links { position: absolute; top: 100%; left: 0; width: 100%; background-color: var(--header-bg); flex-direction: column; max-height: 0; overflow: hidden; transition: max-height 0.4s ease; } .nav-links li { border-bottom: 1px solid var(--border-color); } .nav-links.mobile-open { display: flex !important; position: absolute; max-height: 300px; top: 100%; right: 0; background: var(--header-bg); width: 200px; flex-direction: column; box-shadow: 0 5px 15px var(--card-shadow); } }