/*
Theme Name: Metaverse User
Theme URI: https://metaverse-user.com
Author: Theo / Digital Leader
Description: Schlankes, futuristisches Custom Block Theme fuer metaverse-user.com. Dark-Mode/Cyber, performant, ohne Pagebuilder-Ballast. Bilder mit Text werden nie beschnitten.
Version: 0.2.0
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: metaverse-user
Tags: full-site-editing, block-patterns, dark-mode, blog, news
*/

/* === Globale futuristische Grundstimmung === */
body {
	position: relative;
	background-color: var(--wp--preset--color--base);
	background-image:
		radial-gradient(70% 55% at 12% -5%, color-mix(in srgb, var(--wp--preset--color--accent-2) 16%, transparent), transparent 60%),
		radial-gradient(60% 50% at 100% 0%, color-mix(in srgb, var(--wp--preset--color--accent) 14%, transparent), transparent 55%);
	background-attachment: fixed;
}
/* dezentes, globales Tech-Grid */
body::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		linear-gradient(to right, color-mix(in srgb, var(--wp--preset--color--text) 3.5%, transparent) 1px, transparent 1px),
		linear-gradient(to bottom, color-mix(in srgb, var(--wp--preset--color--text) 3.5%, transparent) 1px, transparent 1px);
	background-size: 54px 54px;
	mask-image: radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 90%);
}
.wp-site-blocks { position: relative; z-index: 1; }

/* === Bildregel (HART): Inhaltsbilder nie beschneiden === */
.is-content-image img,
.wp-block-image.is-content-image img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

/* Karten-Bilder einheitlich hoch OHNE Crop: feste Bildflaeche, Bild per contain voll
   sichtbar (Letterbox auf dezenter Flaeche). Nur fuer Bilder DIREKT in einer Glas-Card;
   Hero und Einzelbilder bleiben unveraendert. */
.is-style-glass > .wp-block-image.is-content-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: contain;
	background: color-mix(in srgb, var(--wp--preset--color--base) 72%, #000 28%);
	border-radius: 10px;
}

/* === Typografie: futuristische Akzente === */
/* Hero/Seiten-H1 als Verlaufstext mit Glow */
main h1, .wp-block-post-title {
	background: linear-gradient(102deg, #ffffff 0%, var(--wp--preset--color--accent) 55%, var(--wp--preset--color--accent-2) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 0 18px color-mix(in srgb, var(--wp--preset--color--accent) 28%, transparent));
}
/* H2 mit kurzem Neon-Strich darunter */
main h2 {
	position: relative;
	padding-bottom: .4em;
}
main h2::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 64px; height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--wp--preset--color--accent), var(--wp--preset--color--accent-2));
	box-shadow: 0 0 14px color-mix(in srgb, var(--wp--preset--color--accent) 55%, transparent);
}

/* === Badge: HUD-/Monospace-Look === */
.mv-badge {
	display: inline-block;
	font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	padding: .35em .9em;
	border-radius: 4px;
	color: var(--wp--preset--color--accent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 45%, transparent);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 8%, transparent);
	box-shadow: 0 0 16px color-mix(in srgb, var(--wp--preset--color--accent) 22%, transparent), inset 0 0 12px color-mix(in srgb, var(--wp--preset--color--accent) 8%, transparent);
}
.mv-badge::before { content: "// "; opacity: .7; }
.mv-badge.is-warn { color:#ffb454; border-color:#ffb454; box-shadow:0 0 16px rgba(255,180,84,.22); }
.mv-badge.is-dead { color:#ff6b6b; border-color:#ff6b6b; box-shadow:0 0 16px rgba(255,107,107,.22); }

/* === Glas-/Hologramm-Card mit Eck-Akzenten === */
.is-style-glass {
	position: relative;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--surface) 92%, transparent), color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent));
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 20%, transparent);
	border-radius: 14px;
	backdrop-filter: blur(9px);
	overflow: hidden;
	transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
/* feine Lichtkante oben */
.is-style-glass::before {
	content: "";
	position: absolute; left: 0; right: 0; top: 0; height: 1px;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--wp--preset--color--accent) 70%, transparent), transparent);
	opacity: .7;
}
/* Eck-Bracket (HUD) oben links */
.is-style-glass::after {
	content: "";
	position: absolute; top: 10px; left: 10px;
	width: 14px; height: 14px;
	border-top: 2px solid color-mix(in srgb, var(--wp--preset--color--accent) 60%, transparent);
	border-left: 2px solid color-mix(in srgb, var(--wp--preset--color--accent) 60%, transparent);
	border-top-left-radius: 4px;
	opacity: .8;
}
.is-style-glass:hover {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--wp--preset--color--accent) 60%, transparent);
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--wp--preset--color--accent) 30%, transparent),
		0 14px 50px color-mix(in srgb, var(--wp--preset--color--accent-2) 16%, transparent),
		0 0 40px color-mix(in srgb, var(--wp--preset--color--accent) 14%, transparent);
}

/* === Faktenbox: Daten-Panel === */
.is-style-faktenbox {
	position: relative;
	background: color-mix(in srgb, var(--wp--preset--color--surface) 90%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--line) 90%, transparent);
	border-left: 3px solid var(--wp--preset--color--accent);
	border-radius: 12px;
	box-shadow: inset 0 0 40px color-mix(in srgb, var(--wp--preset--color--accent) 6%, transparent);
}

/* === Buttons: Neon-Glow === */
.wp-block-button .wp-block-button__link {
	text-transform: uppercase;
	letter-spacing: .04em;
	font-size: .95rem;
	box-shadow: 0 0 22px color-mix(in srgb, var(--wp--preset--color--accent) 28%, transparent);
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}
.wp-block-button .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 0 30px color-mix(in srgb, var(--wp--preset--color--accent) 50%, transparent);
}
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 55%, transparent);
	color: var(--wp--preset--color--text);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 6%, transparent);
	box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	box-shadow: 0 0 24px color-mix(in srgb, var(--wp--preset--color--accent) 30%, transparent);
}

/* === Tabellen: Daten-Look === */
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table td, .wp-block-table th {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--line) 80%, transparent);
	padding: .6em .9em;
}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: color-mix(in srgb, var(--wp--preset--color--accent) 5%, transparent);
}

/* === Header: Glas-Leiste mit Neon-Unterkante === */
header.wp-block-group {
	position: relative;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent);
	backdrop-filter: blur(8px);
}
header .wp-block-navigation a:hover { color: var(--wp--preset--color--accent); }

/* === Hero-Grid-Hintergrund (Pattern .mv-grid-bg) verstaerkt === */
.mv-grid-bg {
	position: relative;
	background-image:
		radial-gradient(60% 70% at 50% -10%, color-mix(in srgb, var(--wp--preset--color--accent-2) 18%, transparent), transparent 70%),
		linear-gradient(to right, color-mix(in srgb, var(--wp--preset--color--text) 5%, transparent) 1px, transparent 1px),
		linear-gradient(to bottom, color-mix(in srgb, var(--wp--preset--color--text) 5%, transparent) 1px, transparent 1px);
	background-size: 100% 100%, 46px 46px, 46px 46px;
}

/* FAQ / Details futuristisch */
.wp-block-details summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--wp--preset--color--text);
}
.wp-block-details[open] summary { color: var(--wp--preset--color--accent); }

/* === Neon-Icons vor Ueberschriften (mask-basiert, Akzentfarbe + Glow) === */
.mv-ico { display: flex; align-items: center; gap: .5em; }
.mv-ico.has-text-align-center { justify-content: center; }
.mv-ico::before {
	content: "";
	flex: 0 0 auto;
	width: .92em; height: .92em;
	background-color: var(--wp--preset--color--accent);
	-webkit-mask: var(--mvico) center / contain no-repeat;
	mask: var(--mvico) center / contain no-repeat;
	filter: drop-shadow(0 0 7px color-mix(in srgb, var(--wp--preset--color--accent) 65%, transparent));
}
/* zentrierte Section-Headlines: Neon-Strich mittig */
main h2.has-text-align-center::after { left: 50%; transform: translateX(-50%); }

.mv-ico-chart     { --mvico: url(assets/icons/chart.svg); }
.mv-ico-gamepad   { --mvico: url(assets/icons/gamepad.svg); }
.mv-ico-gear      { --mvico: url(assets/icons/gear.svg); }
.mv-ico-link      { --mvico: url(assets/icons/link.svg); }
.mv-ico-chat      { --mvico: url(assets/icons/chat.svg); }
.mv-ico-compass   { --mvico: url(assets/icons/compass.svg); }
.mv-ico-id        { --mvico: url(assets/icons/id.svg); }
.mv-ico-bulb      { --mvico: url(assets/icons/bulb.svg); }
.mv-ico-wallet    { --mvico: url(assets/icons/wallet.svg); }
.mv-ico-rocket    { --mvico: url(assets/icons/rocket.svg); }
.mv-ico-globe     { --mvico: url(assets/icons/globe.svg); }
.mv-ico-spark     { --mvico: url(assets/icons/spark.svg); }
.mv-ico-briefcase { --mvico: url(assets/icons/briefcase.svg); }
.mv-ico-vr        { --mvico: url(assets/icons/vr.svg); }

/* Affiliate-Hinweis */
.mv-affiliate-note { font-size: .85rem; color: var(--wp--preset--color--muted); }

/* Fokus-State Accessibility */
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.is-style-glass, .wp-block-button .wp-block-button__link { transition: none; }
}
