/* Basis-Styles & Reset */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { background-color: #000; color: #00ff41; /* Klassisches Matrix-Grün */ font-family: "Courier New", Courier, monospace; overflow-x: hidden; min-height: 100vh; display: flex; flex-direction: column; } /* Skip-to-content Link für Tastaturnavigation */ .skip-link { position: absolute; top: -100%; left: 0; background: #00ff41; color: #000; padding: 10px 20px; font-weight: bold; text-decoration: none; z-index: 9999; border-radius: 0 0 4px 0; } .skip-link:focus { top: 0; } /* Matrix-Regen Canvas Hintergrund */ #matrix-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; opacity: 0.12; /* Gedimmter Hintergrund für optimale Lesbarkeit */ } /* Hauptcontainer */ .container { max-width: 950px; margin: 0 auto; padding: 40px 20px; position: relative; z-index: 1; flex: 1; } /* Header / Titel */ header { text-align: center; margin-bottom: 50px; } h1 { font-size: 3rem; text-transform: uppercase; letter-spacing: 4px; color: #fff; text-shadow: 0 0 10px #00ff41, 0 0 20px #00ff41, 0 0 30px #00ff41; margin-bottom: 10px; animation: glitch 1s linear infinite alternate; } .subtitle { font-size: 1.1rem; color: #00ff41; text-transform: uppercase; letter-spacing: 2px; color: #00e63a; margin-bottom: 15px; } .admin-tag { display: inline-block; background: rgba(0, 255, 65, 0.1); border: 1px dashed #00ff41; padding: 6px 12px; font-size: 0.9rem; color: #fff; border-radius: 4px; } /* Sektionen-Styling */ section { margin-bottom: 60px; background: rgba(0, 5, 0, 0.85); border: 1px solid #00ff41; border-radius: 6px; padding: 20px 30px 30px; box-shadow: 0 0 15px rgba(0, 255, 65, 0.1); } h2 { font-size: 1.6rem; border-bottom: 2px solid #00ff41; padding-bottom: 8px; margin-bottom: 25px; text-transform: uppercase; letter-spacing: 2px; color: #fff; text-shadow: 0 0 5px #00ff41; } h3 { font-size: 1.2rem; color: #fff; margin-top: 25px; margin-bottom: 10px; text-transform: uppercase; } p { font-size: 0.95rem; line-height: 1.6; color: #a3ffa3; margin-bottom: 15px; } ol, ul { margin-left: 20px; margin-bottom: 15px; color: #a3ffa3; } li { margin-bottom: 8px; line-height: 1.5; } strong { color: #fff; text-shadow: 0 0 2px #00ff41; } a { color: #fff; text-decoration: underline; } a:hover { color: #00ff41; } /* --- Linktree-Clients & App-Links --- */ .linktree-container { max-width: 600px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 15px; margin-bottom: 30px; } .linktree-btn { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; padding: 16px 20px; background: transparent; border: 2px solid #00ff41; color: #00ff41; text-decoration: none; font-size: 1.1rem; font-weight: bold; text-transform: uppercase; letter-spacing: 2px; border-radius: 4px; transition: all 0.3s ease; box-shadow: inset 0 0 0 0 rgba(0, 255, 65, 0.2); } .linktree-btn img { height: 24px; width: auto; object-fit: contain; filter: invert(53%) sepia(93%) saturate(1353%) hue-rotate(87deg) brightness(119%) contrast(119%); transition: all 0.3s ease; } .linktree-btn:hover { background: #00ff41; color: #000; box-shadow: 0 0 15px #00ff41; cursor: pointer; } .linktree-btn:hover img { filter: invert(0%) brightness(0%); } /* Mobile Download Bereich */ .app-download-box { background: rgba(0, 20, 0, 0.4); border: 1px dashed #00ff41; border-radius: 4px; padding: 20px; margin-top: 20px; } .app-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 0; } .app-row:not(:last-child) { border-bottom: 1px solid rgba(0, 255, 65, 0.2); } .app-info { flex: 1; min-width: 200px; } .app-name { font-weight: bold; color: #fff; font-size: 1.1rem; } .app-buttons { display: flex; gap: 10px; flex-wrap: wrap; } .app-btn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1px solid #00ff41; color: #00ff41; text-decoration: none; font-size: 0.85rem; border-radius: 4px; text-transform: uppercase; transition: all 0.2s ease; } .app-btn:hover { background: rgba(0, 255, 65, 0.2); color: #fff; box-shadow: 0 0 8px rgba(0, 255, 65, 0.5); } /* --- Karten-Raster (Cards Grid) --- */ .cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-top: 15px; } .card { background: rgba(0, 0, 0, 0.9); border: 1px solid #00ff41; border-radius: 4px; padding: 20px; transition: all 0.3s ease; } .card:hover { transform: translateY(-3px); box-shadow: 0 0 15px rgba(0, 255, 65, 0.4); border-color: #fff; } .card.full-width-card { grid-column: 1 / -1; } /* Card title icons */ .card-title { font-size: 1.15rem; color: #fff; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px dashed #00ff41; padding-bottom: 5px; display: flex; align-items: center; gap: 8px; } .card-icon { height: 20px; width: auto; object-fit: contain; filter: invert(53%) sepia(93%) saturate(1353%) hue-rotate(87deg) brightness(119%) contrast(119%); flex-shrink: 0; } .card-title--highlight .card-icon { filter: invert(40%) sepia(80%) saturate(500%) hue-rotate(95deg) brightness(110%); } .card-text { font-size: 0.9rem; line-height: 1.5; color: #a3ffa3; margin-bottom: 0; } /* --- Registrierungs-Widget --- */ .reg-form { padding: 10px 0; margin-top: 15px; } .reg-form label { display: block; font-size: 0.85rem; color: #00ff41; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; } .reg-form input { width: 100%; background: rgba(0, 0, 0, 0.8); border: 1px solid #00ff41; color: #fff; font-family: "Courier New", Courier, monospace; font-size: 1rem; padding: 10px 14px; border-radius: 3px; margin-bottom: 20px; outline: none; transition: border-color 0.2s, box-shadow 0.2s; } .reg-form input:focus { border-color: #fff; box-shadow: 0 0 8px rgba(0, 255, 65, 0.4); } .reg-submit { width: 100%; padding: 14px; background: transparent; border: 2px solid #00ff41; color: #00ff41; font-family: "Courier New", Courier, monospace; font-size: 1rem; font-weight: bold; text-transform: uppercase; letter-spacing: 2px; border-radius: 3px; cursor: pointer; transition: all 0.3s ease; } .reg-submit:hover:not(:disabled) { background: #00ff41; color: #000; box-shadow: 0 0 15px #00ff41; } .reg-submit:disabled { opacity: 0.5; cursor: not-allowed; } .reg-status { margin-top: 20px; padding: 15px; border-radius: 3px; font-size: 0.9rem; display: none; } .reg-status.success { display: block; background: rgba(0, 255, 65, 0.1); border: 1px solid #00ff41; color: #a3ffa3; } .reg-status.error { display: block; background: rgba(255, 0, 0, 0.1); border: 1px solid #ff0000; color: #ff9999; } /* --- Warnungen / Alerts --- */ .matrix-alert { background: rgba(255, 0, 0, 0.1); border: 1px solid #ff0000; color: #ff9999; padding: 20px; border-radius: 4px; margin-bottom: 25px; } .matrix-alert h3 { color: #ff3333; margin-bottom: 8px; margin-top: 0; } /* --- Codex Tabellen-Styling --- */ .codex-table { width: 100%; border-collapse: collapse; margin-top: 15px; font-size: 0.95rem; } .codex-table th, .codex-table td { border: 1px solid #00ff41; padding: 12px; text-align: left; } .codex-table th { background: rgba(0, 255, 65, 0.15); color: #fff; text-transform: uppercase; } .codex-table tr:nth-child(even) { background: rgba(0, 255, 65, 0.03); } /* --- Footer --- */ /* (styles moved to end of file) */ /* Fokus-Styles für Tastaturnavigation */ a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 4px rgba(0, 255, 65, 0.4); } /* Opacity-fix: sicherstellen dass gedimmter Text ausreichend Kontrast hat */ .app-info p { opacity: 1; color: #a3ffa3; } /* Glitch Animations-Effekt */ @keyframes glitch { 0% { text-shadow: 2px 2px 0px #ff0000, -2px -2px 0px #0000ff; } 50% { text-shadow: -2px 2px 0px #00ff41, 2px -2px 0px #ff0000; } 100% { text-shadow: 2px -2px 0px #0000ff, -2px 2px 0px #00ff41; } } /* Animationen deaktivieren für Nutzer die das bevorzugen */ @media (prefers-reduced-motion: reduce) { h1 { animation: none; text-shadow: 0 0 10px #00ff41; } #matrix-bg { display: none; } *, *::before, *::after { transition: none !important; } } @media (max-width: 768px) { .container { padding: 20px 14px; } h1 { font-size: 2rem; letter-spacing: 2px; } h2 { font-size: 1.2rem; letter-spacing: 1px; } h3 { font-size: 1rem; } section { padding: 14px 16px 20px; margin-bottom: 30px; } .cards-grid { grid-template-columns: 1fr; } .linktree-btn { font-size: 0.95rem; padding: 14px 16px; letter-spacing: 1px; } .codex-table { font-size: 0.82rem; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; } .codex-table th, .codex-table td { padding: 8px 10px; white-space: nowrap; } .app-row { flex-direction: column; align-items: flex-start; } .app-buttons { width: 100%; } .app-btn { flex: 1; justify-content: center; } .advanced-separator { margin: 30px 0 20px 0; padding: 14px 16px; } .abstract { padding: 12px 14px; margin-bottom: 24px; } } /* --- Abstract Block --- */ .abstract { border-left: 3px solid #00aa41; padding: 16px 20px; margin: 0 0 40px 0; background: rgba(0, 170, 65, 0.05); border-radius: 0 4px 4px 0; } .abstract p { margin: 0; color: #a3ffa3; line-height: 1.7; } /* --- Fortgeschrittenen-Trennbereich --- */ .advanced-separator { border-left: 3px solid #5a7a5a; border-radius: 0 4px 4px 0; background: rgba(0, 170, 65, 0.03); padding: 16px 20px; margin: 48px 0 32px 0; } .advanced-separator h2 { margin: 0 0 8px 0; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.12em; color: #5a7a5a; border-bottom: none; text-shadow: none; padding-bottom: 0; } .advanced-separator p { margin: 0; color: #5a7a5a; font-size: 0.9rem; line-height: 1.6; } /* --- Hilfsklassen für inline-style Ersatz --- */ .card--highlight { border-color: #00aa41; } .card-title--highlight { color: #00aa41; } .card--warning { border-color: #ff9900; background: rgba(20, 10, 0, 0.6); } .card-title--warning { color: #ff9900; } .text--danger { color: #ff3333; text-shadow: none; } .honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; visibility: hidden; pointer-events: none; } .code--white { color: #fff; } .mt-20 { margin-top: 20px; } .mt-28 { margin-top: 28px; } /* App store button icons */ .app-btn img { height: 18px; width: auto; object-fit: contain; filter: invert(53%) sepia(93%) saturate(1353%) hue-rotate(87deg) brightness(119%) contrast(119%); transition: filter 0.2s ease; flex-shrink: 0; } .app-btn:hover img { filter: invert(100%) brightness(200%); } /* Footer matrix style */ footer { text-align: center; padding: 20px; background: rgba(0, 5, 0, 0.9); border-top: 1px dashed #00ff41; font-size: 0.8rem; color: rgba(0, 255, 65, 0.7); position: relative; z-index: 1; letter-spacing: 1px; } .footer-line { color: rgba(0, 255, 65, 0.35); margin-bottom: 4px; } .footer-credit { color: rgba(0, 255, 65, 0.7); letter-spacing: 0.15em; } .footer-credit span { color: #00ff41; text-shadow: 0 0 6px #00ff41; }