/* Design: Amateure 7 – Rotlicht-Portal: Nachtschwarz, Neonrot, Leuchtschrift, Serifen-Überschriften, Boxen wie beleuchtete Schaukästen */
:root {
	--ct-bg: #0a0507;
	--ct-surface: #160a0e;
	--ct-surface-2: #22101a;
	--ct-text: #f5e9ec;
	--ct-muted: #ab939a;
	--ct-line: rgba(255, 60, 90, .16);
	--ct-accent: #ff2a4f;
	--ct-accent-text: #ffffff;
	--ct-live: #ff2a4f;
	--ct-live-text: #ffffff;
	--ct-header-bg: transparent;
	--ct-star: #ffb347;

	--ct-neon: #ff2a4f;
	--ct-pink: #ff8fb0;
	--ct-glow: 0 0 6px rgba(255, 42, 79, .9), 0 0 20px rgba(255, 42, 79, .6), 0 0 44px rgba(255, 42, 79, .35);
	--ct-velvet: repeating-linear-gradient(90deg, #3d0613 0 10px, #6e0d24 10px 17px, #4a0818 17px 25px, #2b030c 25px 31px);

	--ct-font-body: "Inter", system-ui, sans-serif;
	--ct-font-head: "Playfair Display", Georgia, "Times New Roman", serif;
	--ct-head-weight: 800;
	--ct-head-tracking: -0.01em;
	--ct-head-transform: none;

	--ct-radius: 4px;
	--ct-radius-img: 3px;
	--ct-radius-btn: 3px;
	--ct-card-ratio: 3 / 4;
	--ct-gap: 22px 16px;
}

/* Hintergrund: rotes Laternenlicht von beiden Seiten, Straßenpflaster-Muster ganz fein. */
body {
	background:
		radial-gradient(500px 600px at 0% 20%, rgba(255, 42, 79, .16), transparent 70%),
		radial-gradient(500px 600px at 100% 60%, rgba(255, 42, 79, .12), transparent 70%),
		radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .025) 1px, transparent 1.5px) 0 0 / 18px 18px,
		var(--ct-bg);
}

/* Kopf als Zeitungskopf: Name in roter Leuchtschrift, doppelte Linie. */
.ct-header { border-bottom: 3px double var(--ct-line); }
.ct-brand__name {
	font-family: "Caveat", cursive; font-weight: 700; font-size: 3.4rem; line-height: 1; letter-spacing: .01em; color: #ffe3ea;
	text-shadow: var(--ct-glow); animation: ct-rl-flicker 9s linear infinite;
}
@keyframes ct-rl-flicker { 0%, 88%, 90%, 94%, 100% { opacity: 1; } 89%, 93% { opacity: .5; } }
.ct-brand__tagline { font-family: var(--ct-font-body); font-size: .72rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--ct-pink); }
.ct-brand__tagline::before, .ct-brand__tagline::after { content: "◆"; margin: 0 .9em; color: var(--ct-neon); letter-spacing: 0; }

/* Schlagzeilen. */
.ct-page-title, .ct-front h1 { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.2rem); line-height: 1.05; text-align: center; }
.ct-front h1 { max-width: 26ch; margin-inline: auto; }
.ct-section-title { display: flex; align-items: baseline; gap: 14px; font-size: 1.7rem; border-bottom: 1px solid var(--ct-line); padding-bottom: 8px; }
.ct-section-title::after { content: ""; flex: 1; height: 2px; background: linear-gradient(90deg, var(--ct-neon), transparent); box-shadow: 0 0 8px rgba(255, 42, 79, .6); align-self: center; }
.ct-prose h3, .ct-front h3 { font-family: var(--ct-font-body); font-weight: 800; font-size: 1rem; text-transform: uppercase; letter-spacing: .14em; color: var(--ct-pink); }
.ct-prose a, .ct-front p:not(.ct-card__name) a:not(.ct-btn), .ct-front li a:not(.ct-video__link) { color: var(--ct-pink); }

/* Ausgabe-Zeile und Ressorts. */
.ct-mag__issue { justify-content: center; border-top: 3px double var(--ct-line); border-bottom: 3px double var(--ct-line); }
.ct-mag__issue-no { color: var(--ct-neon); text-shadow: 0 0 10px rgba(255, 42, 79, .6); }
.ct-ressorts { border-top-color: var(--ct-neon); }
.ct-ressorts a { font-family: var(--ct-font-head); font-size: 1.05rem; }

/* Titelgeschichte. */
.ct-lead__media { box-shadow: 0 0 0 1px rgba(255, 42, 79, .35), 0 30px 60px -30px #000; }
.ct-lead__title { font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); }
.ct-lead__kicker, .ct-article__kicker, .ct-portrait__kicker { color: var(--ct-neon); }
.ct-lead__dek { font-family: var(--ct-font-head); font-style: normal; font-weight: 400; font-size: 1.15rem; }
.ct-facts { background: linear-gradient(180deg, rgba(255, 42, 79, .1), rgba(22, 10, 14, .9)); border: 1px solid var(--ct-line); }
.ct-facts strong { color: #ffe3ea; text-shadow: var(--ct-glow); }

/* Schaufenster: beleuchtete Fenster; offline mit zugezogenem Samtvorhang. */
.ct-window__pane { border: 6px solid #1a0b0f; outline: 1px solid rgba(255, 42, 79, .25); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .6); }
.ct-window.is-on .ct-window__pane { box-shadow: 0 0 0 1px rgba(255, 42, 79, .6), 0 0 26px rgba(255, 42, 79, .55), inset 0 0 40px rgba(255, 42, 79, .35); }
.ct-window.is-on .ct-window__pane img { filter: saturate(1.05) contrast(1.05); }
.ct-window.is-on .ct-window__curtain { background: linear-gradient(90deg, rgba(110, 13, 36, .9) 0 9%, transparent 9% 91%, rgba(110, 13, 36, .9) 91%), linear-gradient(to bottom, rgba(255, 42, 79, .18), transparent 40%); }
.ct-window.is-off .ct-window__curtain { background: var(--ct-velvet); box-shadow: inset 0 -30px 40px rgba(0, 0, 0, .6); }
.ct-window.is-off:hover .ct-window__curtain { transform: translateX(62%); }
.ct-window__sign { background: rgba(10, 5, 7, .7); color: #ffe3ea; border: 1px solid var(--ct-neon); text-shadow: var(--ct-glow); box-shadow: 0 0 12px rgba(255, 42, 79, .5); z-index: 2; }
.ct-window.is-off .ct-window__sign { color: var(--ct-muted); border-color: rgba(255, 255, 255, .15); text-shadow: none; box-shadow: none; }
.ct-window__name { font-family: "Caveat", cursive; font-size: 1.45rem; font-weight: 700; color: #ffe3ea; }
.ct-window.is-on .ct-window__name { text-shadow: 0 0 10px rgba(255, 42, 79, .7); }

/* Artikel. */
.ct-article .ct-video__media { box-shadow: 0 0 0 1px rgba(255, 42, 79, .2); transition: box-shadow .25s; }
.ct-article:hover .ct-video__media { box-shadow: 0 0 0 1px var(--ct-neon), 0 0 22px -4px rgba(255, 42, 79, .7); }
.ct-front .ct-article__title, .ct-front .ct-lead__title { font-family: var(--ct-font-head); text-transform: none; letter-spacing: -.01em; color: var(--ct-text); font-weight: 800; }
.ct-front .ct-article__title { font-size: 1.3rem; line-height: 1.2; }
.ct-front .ct-article--wide .ct-article__title { font-size: clamp(1.7rem, 1.2rem + 1.4vw, 2.4rem); line-height: 1.1; }
.ct-article__title a { color: inherit; }
.ct-article:hover .ct-article__title { color: #ffe3ea; text-shadow: 0 0 12px rgba(255, 42, 79, .5); }
.ct-article--wide { padding-bottom: 26px; border-bottom: 1px solid var(--ct-line); }
.ct-video__play { background: rgba(255, 42, 79, .9); box-shadow: 0 0 20px rgba(255, 42, 79, .7); }
.ct-video__time { background: rgba(10, 5, 7, .8); }

/* Portal: Boxen wie beleuchtete Schaukästen. */
.ct-portal__bar { background: linear-gradient(180deg, rgba(255, 42, 79, .12), rgba(22, 10, 14, .92)); border-color: rgba(255, 42, 79, .3); box-shadow: 0 0 40px -20px rgba(255, 42, 79, .6); }
.ct-portal__search input { background: rgba(10, 5, 7, .8); border-color: rgba(255, 42, 79, .3); }
.ct-portal__stats strong { color: #ffe3ea; text-shadow: 0 0 10px rgba(255, 42, 79, .6); }
.ct-portal__chips a { font-family: var(--ct-font-head); font-size: .98rem; border-color: rgba(255, 42, 79, .3); background: rgba(10, 5, 7, .5); }
.ct-portal__chips a:hover { border-color: var(--ct-neon); color: #fff; box-shadow: 0 0 14px rgba(255, 42, 79, .45); }
.ct-box { background: rgba(22, 10, 14, .92); border-color: rgba(255, 42, 79, .18); border-top: 2px solid var(--ct-neon); box-shadow: 0 -8px 24px -18px rgba(255, 42, 79, .9); }
.ct-box__title { font-size: 1.3rem; }
.ct-box__more { color: var(--ct-pink); }
.ct-box--live .ct-box__title { font-family: "Caveat", cursive; font-size: 1.9rem; line-height: 1; color: #ffe3ea; text-shadow: var(--ct-glow); }
.ct-livelist__img { box-shadow: 0 0 0 2px #160a0e, 0 0 0 4px var(--ct-neon), 0 0 18px rgba(255, 42, 79, .7); }
.ct-livelist__name { font-family: "Caveat", cursive; font-size: 1.15rem; font-weight: 700; }
.ct-pclip .ct-video__media { box-shadow: 0 0 0 1px rgba(255, 42, 79, .2); transition: box-shadow .25s; }
.ct-pclip:hover .ct-video__media { box-shadow: 0 0 0 1px var(--ct-neon), 0 0 22px -4px rgba(255, 42, 79, .7); }
.ct-front .ct-portal li a:not(.ct-video__link) { color: var(--ct-text); }
.ct-front .ct-portal .ct-pclip__meta a:not(.ct-video__link) { color: var(--ct-muted); }
.ct-pclip__title { font-family: var(--ct-font-head); font-size: 1rem; }
.ct-front .ct-toplist a:hover .ct-toplist__t, .ct-front .ct-catlist a:hover .ct-catlist__name { color: var(--ct-pink); }
.ct-pclip:hover .ct-pclip__title { color: #ffe3ea; }
.ct-toplist a::before { text-shadow: 0 0 10px rgba(255, 42, 79, .6); }
.ct-catlist__bar { background: linear-gradient(90deg, rgba(255, 42, 79, .28), rgba(255, 42, 79, .06)); }
.ct-az__img { box-shadow: 0 0 0 1px rgba(255, 42, 79, .3); }

/* Porträt und Liste. */
.ct-portrait { background: radial-gradient(400px 260px at 0% 0%, rgba(255, 42, 79, .14), transparent 70%), var(--ct-surface); border: 1px solid var(--ct-line); }
.ct-portrait__title { font-family: "Caveat", cursive; font-size: 3rem; color: #ffe3ea; text-shadow: var(--ct-glow); }
.ct-portrait__quote p { font-family: var(--ct-font-head); }
.ct-portrait__quote p::first-letter { color: var(--ct-neon); text-shadow: var(--ct-glow); }
.ct-list5 a::before { font-family: var(--ct-font-head); color: var(--ct-neon); text-shadow: 0 0 10px rgba(255, 42, 79, .6); }

/* Cams unter dem Magazin. */
.ct-card__media { box-shadow: 0 0 0 1px rgba(255, 42, 79, .18); }
.ct-card:hover .ct-card__media { box-shadow: 0 0 0 1px var(--ct-neon), 0 0 20px -4px rgba(255, 42, 79, .6); }
.ct-card__name { font-family: var(--ct-font-head); font-size: 1.05rem; }
.ct-live--on { background: rgba(10, 5, 7, .75); color: #fff; box-shadow: 0 0 0 1px var(--ct-neon), 0 0 12px rgba(255, 42, 79, .6); }

/* Laufband als Leuchtreklame. */
.ct-ticker { background: rgba(22, 10, 14, .9); border-color: rgba(255, 42, 79, .35); }
.ct-ticker__label { background: var(--ct-neon); box-shadow: 0 0 18px rgba(255, 42, 79, .7); }

/* Buttons. */
.ct-btn { font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-size: .85rem; }
.ct-btn--primary { background: var(--ct-neon); color: #fff; box-shadow: 0 0 0 1px rgba(255, 255, 255, .1) inset, 0 0 24px rgba(255, 42, 79, .55); }
.ct-btn--primary:hover { background: #ff4d6c; }
.ct-btn--ghost { border-color: rgba(255, 42, 79, .4); color: #ffe3ea; }
.ct-btn--ghost:hover { border-color: var(--ct-neon); color: #fff; box-shadow: 0 0 14px rgba(255, 42, 79, .4); }
.ct-pagination .current { background: var(--ct-neon); color: #fff; }
.ct-vpage__quote { border-left-color: var(--ct-neon); }
.ct-figure img { box-shadow: 0 0 0 1px rgba(255, 42, 79, .25); }

@media (max-width: 600px) {
	.ct-brand__name { font-size: 2.5rem; }
	.ct-brand__tagline { letter-spacing: .16em; font-size: .62rem; }
	.ct-portrait__title { font-size: 2.4rem; }
}
@media (prefers-reduced-motion: reduce) { .ct-brand__name { animation: none; } }
@media (hover: none) { .ct-window.is-off .ct-window__curtain { transform: translateX(70%); } }
