/* sumaoptix/imagewheel — rotierendes Kartenrad (reiner CSS-Dreh) */
.wheel-wrap {
	--d: 2200px;
	--card-w: 286px;
	--card-h: 196px;
	--step: 18deg;
	--spin: 96s;
	--delay-step: 4.8s;
	position: relative;
	height: clamp(280px, 42vh, 466px);
	margin-top: clamp(24px, 3vw, 44px);
	overflow: hidden;
	z-index: 2;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 11%, #000 89%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 11%, #000 89%, transparent 100%);
}

.wheel {
	position: absolute;
	left: 50%;
	top: calc(var(--d) / 2 + 178px);
	width: var(--d);
	height: var(--d);
	margin-left: calc(var(--d) / -2);
	margin-top: calc(var(--d) / -2);
	animation: wheelspin var(--spin) linear infinite;
}

.wheel-wrap:hover .wheel,
.wheel-wrap:hover .wcard {
	animation-play-state: paused;
}

@keyframes wheelspin {
	from { transform: rotate(0); }
	to { transform: rotate(-360deg); }
}

.wcard {
	position: absolute;
	left: 50%;
	top: 50%;
	width: var(--card-w);
	height: var(--card-h);
	margin-left: calc(var(--card-w) / -2);
	margin-top: calc(var(--card-h) / -2);
	transform: rotate(calc(var(--i) * var(--step))) translateY(calc(var(--d) / -2));
	border-radius: 13px;
	overflow: hidden;
	background: #fff;
	color: #15171b;
	box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .1), inset 0 1px 0 rgba(255, 255, 255, .75);
	font-size: 11px;
	line-height: 1.35;
	letter-spacing: -.005em;
	animation: depth var(--spin) linear infinite;
	animation-delay: calc(var(--i) * var(--delay-step) - var(--spin));
	will-change: opacity, scale;
}

/* Tiefenstaffelung: oben in der Mitte am größten und hellsten */
@keyframes depth {
	0%   { scale: 1.05; opacity: 1; }
	20%  { scale: .955; opacity: .74; }
	50%  { scale: .9; opacity: .5; }
	80%  { scale: .955; opacity: .74; }
	100% { scale: 1.05; opacity: 1; }
}

/* Displayreflexion */
.wcard::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	z-index: 5;
	background:
		linear-gradient(116deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, .09) 21%, rgba(255, 255, 255, 0) 43%),
		linear-gradient(202deg, transparent 52%, rgba(17, 19, 23, .09) 100%);
}

.wcard.dark::after {
	background:
		linear-gradient(116deg, rgba(255, 255, 255, .17) 0%, rgba(255, 255, 255, .045) 23%, rgba(255, 255, 255, 0) 46%),
		linear-gradient(202deg, transparent 55%, rgba(0, 0, 0, .22) 100%);
}

.wcard.dark {
	background: #212429;
	color: #eceef0;
	box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .16), inset 0 1px 0 rgba(255, 255, 255, .1);
}

.wc-hd {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 10px 13px;
	border-bottom: 1px solid rgba(20, 22, 26, .09);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .02em;
	color: #5c6169;
}

.wcard.dark .wc-hd {
	border-bottom-color: rgba(255, 255, 255, .09);
	color: #9aa0a8;
}

.wc-hd .dot {
	width: 13px;
	height: 13px;
	border-radius: 4px;
	background: #eceef1;
	display: grid;
	place-items: center;
	font-size: 8px;
	color: #6b7078;
}

.wcard.dark .wc-hd .dot {
	background: #26282d;
	color: #c3c7cc;
}

.wc-bd {
	padding: 12px 13px;
}

.ln-g {
	height: 6px;
	border-radius: 3px;
	background: #e6e8eb;
	margin-bottom: 7px;
}

.wcard.dark .ln-g {
	background: #34373d;
}

.w-90 { width: 90%; }
.w-100 { width: 100%; }
.w-72 { width: 72%; }
.w-58 { width: 58%; }
.w-45 { width: 45%; }

.pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 8px;
	border-radius: 20px;
	border: 1px solid #e2e4e8;
	font-size: 9.5px;
	color: #6b7078;
	margin: 6px 5px 0 0;
}

.wcard.dark .pill {
	border-color: #2f3238;
	color: #9aa0a8;
}

.pill.you {
	border-color: var(--red);
	color: var(--red);
	font-weight: 600;
}

.wc-q {
	display: inline-block;
	background: #f3f4f6;
	border-radius: 14px;
	padding: 6px 11px;
	font-size: 10.5px;
	color: #3d4148;
	margin-bottom: 10px;
	max-width: 100%;
}

.wcard.dark .wc-q {
	background: #33363c;
	color: #dde0e3;
}

.serp-t {
	color: #1a56c4;
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 2px;
	letter-spacing: -.01em;
}

.serp-u {
	color: #127a3f;
	font-size: 9.5px;
	margin-bottom: 6px;
}

.wc-search {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid #dfe1e5;
	border-radius: 20px;
	padding: 6px 11px;
	font-size: 10.5px;
	color: #3d4148;
	margin-bottom: 12px;
}

.wc-badge {
	position: absolute;
	top: 11px;
	right: 12px;
	font-size: 9px;
	font-weight: 700;
	color: var(--red);
	letter-spacing: .04em;
}

.stars {
	color: var(--red);
	font-size: 13px;
	letter-spacing: 2px;
}

.big {
	font-size: 27px;
	font-weight: 700;
	letter-spacing: -.04em;
	line-height: 1;
	margin-bottom: 4px;
}

.sub {
	font-size: 10px;
	color: #6b7078;
}

.wcard.dark .sub {
	color: #9aa0a8;
}

.bars {
	display: flex;
	align-items: flex-end;
	gap: 7px;
	height: 52px;
	margin-top: 10px;
}

.bars i {
	flex: 1;
	background: #e6e8eb;
	border-radius: 3px 3px 0 0;
	display: block;
}

.bars i.hot {
	background: var(--red);
}

.code-l {
	font-family: var(--mono);
	font-size: 9px;
	line-height: 1.7;
	white-space: pre;
	color: #9aa0a8;
}

.code-l b {
	color: #ff5a52;
	font-weight: 400;
}

.code-l em {
	color: #e9eaec;
	font-style: normal;
}

@media (max-width: 900px) {
	.wheel-wrap {
		--d: 1500px;
		--card-w: 212px;
		--card-h: 148px;
		--step: 18deg;
		height: 250px;
		margin-top: 28px;
	}

	.wheel {
		top: calc(var(--d) / 2 + 134px);
	}
}

/* Reduced Motion: Rad steht still (Standbild) */
@media (prefers-reduced-motion: reduce) {
	.wheel,
	.wcard {
		animation: none !important;
	}
}
