/* Allmende — Portalseite.
   Startfarben: fast schwarz, Lila, Grün. Alles hängt an den Variablen unten;
   wer die Farben ändert, ändert sie hier und in make-icons.py. */

:root {
	--grund: #0B0B0F;
	--flaeche: #15151D;
	--flaeche-hell: #1D1D28;
	--rand: #2A2A38;
	--schrift: #F5F5F7;
	--schrift-leise: #A1A1AA;
	--violett: #8B5CF6;
	--violett-dunkel: #6D40D9;
	--gruen: #34D399;

	--radius: 16px;
	--rahmen: min(72rem, 100% - 2.5rem);
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	padding: 0 0 4rem;
	background: var(--grund);
	color: var(--schrift);
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	line-height: 1.5;
	/* Ein sehr zurückhaltender Schimmer, damit Schwarz nicht tot wirkt. */
	background-image:
		radial-gradient(60rem 30rem at 15% -10%, rgba(139, 92, 246, .16), transparent 60%),
		radial-gradient(45rem 25rem at 95% 5%, rgba(52, 211, 153, .10), transparent 60%);
	background-repeat: no-repeat;
}

main, .kopf, footer { width: var(--rahmen); margin-inline: auto; }

/* --- Kopf --- */
.kopf {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 3rem 0 2.5rem;
}
.zeichen { width: 3.5rem; height: 3.5rem; flex: none; }
h1 {
	margin: 0;
	font-size: clamp(1.75rem, 5vw, 2.5rem);
	letter-spacing: -.02em;
}
.unterzeile { margin: .15rem 0 0; color: var(--schrift-leise); }

/* --- Überschriften --- */
.bereich {
	margin: 0 0 1rem;
	font-size: .8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--schrift-leise);
}

/* --- Kacheln --- */
.kacheln {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: 1rem;
}
.kachel {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: .9rem;
	align-items: center;
	padding: 1.15rem 1.25rem;
	background: var(--flaeche);
	border: 1px solid var(--rand);
	border-radius: var(--radius);
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	transition: transform .15s ease, background-color .15s ease, border-color .15s ease;
}
.kachel svg {
	grid-row: 1 / span 2;
	width: 1.6rem;
	height: 1.6rem;
	fill: none;
	stroke: var(--violett);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.kachel[data-akzent="gruen"] svg { stroke: var(--gruen); }

/* Farbiger Streifen an der Kante — die einzige Stelle, an der die Marke laut wird. */
.kachel::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 3px;
	background: var(--violett);
	opacity: .8;
}
.kachel[data-akzent="gruen"]::before { background: var(--gruen); }

.titel { font-weight: 600; }
.text { color: var(--schrift-leise); font-size: .9rem; }
.kachel .text { grid-column: 2; }

.kachel:hover,
.kachel:focus-visible {
	background: var(--flaeche-hell);
	border-color: var(--violett-dunkel);
	transform: translateY(-2px);
}
.kachel[data-akzent="gruen"]:hover,
.kachel[data-akzent="gruen"]:focus-visible { border-color: var(--gruen); }

/* Sichtbarer Fokus für Tastatur und Screenreader — nie wegoptimieren. */
:focus-visible {
	outline: 2px solid var(--gruen);
	outline-offset: 3px;
}

/* --- Startbildschirm-Block --- */
.fuss-block { margin-top: 3rem; }
.knopf {
	margin-top: .75rem;
	padding: .7rem 1.25rem;
	background: var(--violett);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.knopf:hover { background: var(--violett-dunkel); }

.hinweis {
	margin-top: .75rem;
	padding: .75rem 1rem;
	background: var(--flaeche);
	border: 1px solid var(--rand);
	border-radius: var(--radius);
	color: var(--schrift-leise);
	font-size: .9rem;
}
.hinweis code {
	color: var(--gruen);
	font-size: .85em;
}

/* --- Fuß --- */
footer {
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--rand);
	color: var(--schrift-leise);
	font-size: .9rem;
}
footer p { margin: .25rem 0; }
/* Zurückhaltend, aber noch lesbar — nicht auf Randfarbe setzen. */
.leise { color: #6E6E80; font-size: .85rem; }

@media (prefers-reduced-motion: reduce) {
	.kachel { transition: none; }
	.kachel:hover, .kachel:focus-visible { transform: none; }
}
