/* GameCast: accenti del marchio, dark mode grafite e footer chiaro neutro. */

/* --------------------------------------------------------------------------
   Tema chiaro (predefinito su GameCast).
   -------------------------------------------------------------------------- */
:root,
:root[data-theme="light"] {
	--gc-blue: #0866E8;
	--gc-orange: #FF8700;
	--gc-ice: #F7FAFF;
	--gc-night: #0B1528;
	--gc-deep: #123B76;
	--gc-frost: #E8EFF7;
	--gc-gradient: linear-gradient(90deg, #0866E8 0%, #123B76 45%, #FF8700 100%);

	--bg: #F7FAFF;
	--bg-deep: #EEF3FA;
	--surface-1: #F1F5FB;
	--surface-2: #E8EFF7;
	--surface-3: #DCE6F2;
	--border: #E8EFF7;

	/* Testo normale 12,3:1 su bianco; secondario 5,4:1. */
	--text: #24364B;
	--text-muted: #5B6B80;
	/* Titoli in Blu Deep: 10,5:1 sullo sfondo. */
	--heading: #123B76;

	/* L'arancione per linee, icone e dettagli. */
	--accent: #FF8700;
	--accent-rgb: 255, 135, 0;
	--accent-hover: #123B76;
	--accent-deep: #123B76;
	/* Testo colorato e link: Blu GameCast, 5,2:1 su bianco. */
	--accent-text: #0866E8;
	/* Pulsanti pieni: arancione con testo Blu Notte. */
	--accent-fill: #FF8700;
	--accent-fill-hover: #F07D00;
	--on-accent: #0B1528;

	/* Le vecchie variabili "rosa" del padre diventano sfumature d'arancio. */
	--pink: #FF8700;
	--pink-light: #FFA640;
	--pink-pale: #FFD9AD;
	--pink-tint: #FFF4E6;

	/* Badge di categoria sulle card: arancio tenue, testo arancio scuro (6,9:1). */
	--pill-bg: #FFEBD4;
	--pill-text: #7A3E00;
	--chip-bg: #FFFFFF;
	--chip-text: var(--text);
	--focus: #0866E8;

	--card-bg: #FFFFFF;
	--card-border: #E3EAF4;
	--shadow-sm: 0 1px 2px rgba(18, 59, 118, 0.06), 0 1px 1px rgba(18, 59, 118, 0.04);
	--shadow-md: 0 14px 34px -14px rgba(18, 59, 118, 0.2), 0 2px 6px rgba(18, 59, 118, 0.05);

	--header-bg: rgba(255, 255, 255, 0.94);
	--overlay: rgba(11, 21, 40, 0.5);
	--quick-bg: #FFFFFF;
	--quick-border: #E3EAF4;
	--score-top: #166534;

	--skeleton: #E8EFF7;
	--skeleton-shine: #F3F7FC;
}

/* --------------------------------------------------------------------------
   Tema scuro: alternativa completa, non un'inversione.
   -------------------------------------------------------------------------- */
:root[data-theme="dark"] {
 --bg: #151517;
 --bg-deep: #101012;
 --surface-1: #1D1D20;
 --surface-2: #27272B;
 --surface-3: #323237;
 --border: #39393F;
 --text: #ECECEE;
 --text-muted: #B0B0B8;
 --heading: #FFFFFF;
 --accent: #FF8700;
 --accent-rgb: 255, 135, 0;
 --accent-hover: #FFAE64;
 --accent-deep: #FFAE64;
 --accent-text: #FFAE64;
 --accent-fill: #FF8700;
 --accent-fill-hover: #FFA640;
 --on-accent: #18181B;
 --pink: #FF8700;
 --pink-light: #FFAE64;
 --pink-pale: #FFD9AD;
 --pink-tint: #35271D;
 --pill-bg: #35271D;
 --pill-text: #FFAE64;
 --chip-bg: var(--surface-2);
 --chip-text: var(--text);
 --focus: #FFAE64;
 --card-bg: #1D1D20;
 --card-border: #39393F;
 --glow: none;
 --header-bg: rgba(21, 21, 23, 0.95);
 --overlay: rgba(0, 0, 0, 0.72);
 --media-scrim: linear-gradient(180deg, rgba(16, 16, 18, 0) 25%, rgba(16, 16, 18, 0.92) 100%);
 --quick-bg: var(--surface-1);
 --quick-border: var(--border);
 --score-top: #8DE6AF;
 --skeleton: #27272B;
 --skeleton-shine: #323237;
 --gc-blue: #FFAE64;
 --gc-gradient: linear-gradient(90deg, #444448, #FF8700);
 --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.25);
 --shadow-md: 0 12px 28px rgba(0, 0, 0, 0.3);
}

/* --------------------------------------------------------------------------
   Titoli in Blu Deep (chiaro) o bianco (scuro). Solo i titoli su fondo
   pieno: quelli sopra le foto (hero, copertine) restano bianchi.
   -------------------------------------------------------------------------- */
:is(
	.page-header__title,
	.article-header__title,
	.section-head__title,
	.card__title,
	.row-card__title,
	.info-card__title,
	.game-panel__title,
	.game-box__title,
	.cluster-card__title,
	.release-month__title,
	.release__title,
	.comments__title,
	.toc__title,
	.entry-content h2,
	.entry-content h3,
	.entry-content h4
) {
	color: var(--heading);
}

:is(.hero-card, .card__media, .game-card__media) :is(.card__title, .hero-card__title) {
	color: #FFFFFF;
}

/* Sulle foto il badge resta pieno: arancione con testo Blu Notte. */
:root:not([data-theme="dark"]) :is(.hero-card, .card__media, .game-card__media) .pill {
	--pill-bg: #FF8700;
	--pill-text: #0B1528;
}

/* --------------------------------------------------------------------------
   Header: separatore sottile nativo, come PopDay.
   Header bianco nel chiaro, grafite nello scuro (da --header-bg).
   -------------------------------------------------------------------------- */
.site-header {
	border-bottom-color: var(--border);
}

.site-header::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3px;
	background: var(--gc-gradient, linear-gradient(90deg, #0866E8, #FF8700));
	pointer-events: none;
}

/* Footer neutro, come superficie separata dalla pagina. */
:root:not([data-theme="dark"]) .site-footer {
 --surface-1: #F2F2F4;
 --surface-2: #E7E7EB;
 --border: #DADAE0;
 --text: #29292F;
 --text-muted: #62626D;
 --heading: #202025;
 --chip-bg: #E7E7EB;
 --chip-text: #29292F;
 background: #F2F2F4;
 color: var(--text);
}
:root[data-theme="dark"] .site-footer { background: #101012; }

/* Il plugin Lobby eredita la palette del tema anche se il suo CSS arriva dopo. */
:root:is([data-theme="light"], [data-theme="dark"]) :is(.gc-teaser, .gc-lobby) {
 --gc-bg: var(--bg);
 --gc-surface: var(--card-bg);
 --gc-surface2: var(--surface-2);
 --gc-border: var(--card-border);
 --gc-text: var(--text);
 --gc-text2: var(--text);
 --gc-muted: var(--text-muted);
 --gc-accent: var(--accent-text);
 --gc-accent-text: var(--accent-text);
 --gc-accent-dim: color-mix(in srgb, var(--accent-text) 12%, var(--card-bg));
 --gc-warning: var(--accent-text);
 --gc-pos-1: #167343;
 --gc-pos-2: #B92C3F;
 --gc-pos-3: #0866E8;
 --gc-pos-4: #62626D;
}
:root[data-theme="dark"] :is(.gc-teaser, .gc-lobby) {
 --gc-pos-1: #7ED9A3;
 --gc-pos-2: #FF9AA7;
 --gc-pos-3: #FFAE64;
 --gc-pos-4: #C2C2CA;
}
:root :is(.gc-teaser__badge, .gc-lobby__badge) {
 background: var(--surface-2);
 color: var(--accent-text);
 box-shadow: none;
}
:root .gc-teaser .gc-teaser__count--lobby:hover {
 color: var(--accent-text);
 border-color: currentColor;
}
:root .gc-teaser .gc-teaser__btn:hover .gc-teaser__label { color: var(--accent-text); }
:root :is(.gc-teaser, .gc-lobby) :is(button, a, textarea, input):focus-visible {
 outline: 2px solid var(--focus);
 outline-offset: 3px;
}

/* ==========================================================================
   Homepage GameCast: "Prima pagina" (storia principale + Ultim'ora).
   ========================================================================== */

.gc-front {
	display: grid;
	gap: var(--space-4);
}

/* Storia principale più larga che alta: è una testata, non una copertina. */
.gc-front .hero-card--main {
	aspect-ratio: 4 / 3.6;
}

.gc-front .hero-card--main .hero-card__title {
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
}

.gc-wire {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: var(--space-4);
	border: 1px solid var(--card-border);
	border-radius: var(--radius-lg);
	background: var(--card-bg);
	box-shadow: var(--shadow-sm);
}

.gc-wire__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	padding-bottom: var(--space-3);
	border-bottom: 2px solid var(--gc-blue, #0866E8);
}

.gc-wire__title {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--heading);
	font-size: var(--text-lg);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Punto "in diretta": arancio, pulsa piano (fermo se si riduce il movimento). */
.gc-wire__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--gc-orange, #FF8700);
	box-shadow: 0 0 0 0 rgba(255, 135, 0, 0.55);
	animation: gc-pulse 2s infinite;
}

@keyframes gc-pulse {
	0% { box-shadow: 0 0 0 0 rgba(255, 135, 0, 0.55); }
	70% { box-shadow: 0 0 0 8px rgba(255, 135, 0, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 135, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.gc-wire__dot {
		animation: none;
	}
}

.gc-wire__all {
	color: var(--accent-text);
	font-size: var(--text-sm);
	font-weight: 600;
}

.gc-wire__list {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gc-wire__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 5px;
	align-items: start;
	padding: 10px 0;
	border-bottom: 1px solid var(--border);
}

.gc-wire__item:last-child {
	border-bottom: 0;
}

.gc-wire__time {
	color: var(--accent-text);
	font-size: var(--text-xs);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.gc-wire__link {
	color: var(--text);
	font-family: var(--font-heading);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.gc-wire__link:hover,
.gc-wire__link:focus-visible {
	color: var(--accent-text);
}

.gc-showcase {
	margin-top: var(--space-4);
}

/* Bibbia dei Codici: la ricerca dentro la sezione delle guide. */
.gc-codes__search {
	margin-bottom: var(--space-4);
}

/* Fasce di voto: colori semantici con contrasto AA, separati dagli accenti arancio. */
.gc-score--top { --gc-score-ink: #166534; --gc-score-bg: #ECFDF3; }
.gc-score--high { --gc-score-ink: #0F6460; --gc-score-bg: #EAF8F6; }
.gc-score--good { --gc-score-ink: #1F4E95; --gc-score-bg: #EDF4FF; }
.gc-score--mid { --gc-score-ink: #785500; --gc-score-bg: #FFF7DF; }
.gc-score--low { --gc-score-ink: #9F2638; --gc-score-bg: #FFF0F2; }
:root[data-theme="dark"] .gc-score--top { --gc-score-ink: #A7EDC1; --gc-score-bg: #143B2A; }
:root[data-theme="dark"] .gc-score--high { --gc-score-ink: #9AE5DC; --gc-score-bg: #143A39; }
:root[data-theme="dark"] .gc-score--good { --gc-score-ink: #B2D0FF; --gc-score-bg: #1C3458; }
:root[data-theme="dark"] .gc-score--mid { --gc-score-ink: #F2D68A; --gc-score-bg: #443818; }
:root[data-theme="dark"] .gc-score--low { --gc-score-ink: #FFC1C9; --gc-score-bg: #4A2630; }

/* Le card recensione usano markup, spaziature e badge nativi di PopDay. */
.gc-verdict__score {
	flex: 0 0 auto;
	display: flex;
	align-items: baseline;
	gap: 3px;
	margin: 0;
	padding: 9px 12px;
	border-radius: 6px;
	background: var(--gc-score-bg, var(--surface-2));
	color: var(--gc-score-ink, var(--text));
	font-variant-numeric: tabular-nums;
}
.gc-verdict {
	margin: 32px 0;
	padding: clamp(20px, 4vw, 32px);
	border: 1px solid var(--border);
	border-top: 3px solid var(--gc-score-ink, var(--border));
	border-radius: 12px;
	background: var(--card-bg);
	color: var(--text);
}
.gc-verdict__head { display: flex; gap: 20px; align-items: center; margin-bottom: 20px; }
.gc-verdict__score { padding: 14px; }
.gc-verdict__score strong { font-size: 40px; line-height: 1; }
.gc-verdict__score > span:not(.screen-reader-text) { font-size: 14px; }
.entry-content .gc-verdict h2 { margin: 0; padding: 0; border: 0; font-size: 26px; color: var(--heading); }
.gc-verdict__eyebrow { margin: 0 0 5px; font-size: 13px; color: var(--accent-text); font-weight: 700; }
.gc-verdict__text > :first-child { margin-top: 0; }
.gc-verdict__balance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.entry-content .gc-verdict h3 { margin: 12px 0 8px; font-size: 17px; color: var(--heading); }
.gc-verdict__balance ul { margin: 0; padding-left: 20px; }
.gc-verdict__balance li { margin: 6px 0; }
.gc-verdict__details { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--border); }
.gc-verdict__details summary { cursor: pointer; font-weight: 700; color: var(--accent-text); }
.gc-verdict__details summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; border-radius: 3px; }
.gc-verdict__details dl { margin: 16px 0 0; }
.gc-verdict__details dl > div { display: grid; grid-template-columns: 1fr auto; gap: 6px 20px; padding: 12px 0; }
.gc-verdict__details dt { font-weight: 700; }
.gc-verdict__details dd { margin: 0; }
.gc-verdict__description { grid-column: 1 / -1; font-size: 14px; }
.gc-wire .post-date { font-size: 12px; line-height: 1.4; white-space: nowrap; }
@media (max-width: 520px) {
	.gc-verdict__balance { grid-template-columns: 1fr; gap: 8px; }
	.gc-verdict__head { gap: 14px; }
	.gc-verdict__score strong { font-size: 32px; }
}

@media (min-width: 1024px) {
	.gc-front {
		grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
		align-items: start;
	}

	.gc-front .hero-card--main {
		aspect-ratio: 16 / 10;
		min-height: 420px;
		height: auto;
	}
}

/* Gioco in primo piano, tipo di contenuto secondario: niente pill arancio. */
.gc-context { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; min-width: 0; }
.gc-context .pill { display: inline; padding: 0; border: 0; border-radius: 0; background: transparent; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }
.gc-context__game .pill { color: var(--accent-text); font-weight: 700; }
.gc-context__type .pill { color: var(--text-muted); font-weight: 500; font-size: 11px; }
.hero-card .gc-context__game .pill, .hero-card .gc-context__type .pill { color: #fff; }
.gc-wire__item { gap: 5px; }

.gc-wire { padding: 16px; }
.gc-wire__title { font-size: 18px; }
.gc-wire__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.gc-wire__meta .post-date { flex: 0 0 auto; font-size: 11px; }
.gc-wire__meta .gc-context { gap: 4px 8px; }
.gc-wire__meta .pill { font-size: 10px; }
.gc-wire__meta > .pill { background: transparent; padding: 0; color: var(--text-muted); }

:root .gc-lobby .gc-submit { background: var(--accent-fill); color: var(--on-accent); }
:root .gc-lobby .gc-submit:hover { background: var(--accent-fill-hover); color: var(--on-accent); }

:root[data-theme="light"] :is(.gc-teaser, .gc-lobby) { --accent-text: #075ACB; }
:root .gc-lobby .gc-sort-btn { background: transparent; }
:root .gc-lobby .gc-sort-btn.is-active { background: var(--gc-accent-dim); }

/* Audit layout: gerarchia compatta senza nascondere le sezioni. */
.gc-wire__meta { align-items: center; }
.gc-wire__meta .gc-context { align-items: center; }
.gc-wire__meta .pill { margin: 0; vertical-align: baseline; line-height: 1.4; }
.gc-wire__meta .gc-context__type .pill { font-size: 10px; }
.gc-home .gc-front { align-items: stretch; }
.gc-home .gc-front .hero-card--main { height: 100%; min-height: 420px; }
.gc-home .hero-card__media::after { background: linear-gradient(180deg, transparent 15%, rgba(0,0,0,.65) 65%, rgba(0,0,0,.9)); }
.hero-card__body { text-shadow: 0 1px 3px rgba(0,0,0,.5); }
.hero-card__cta { text-shadow: none; }
.card--review .card__kicker { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card--review .meta { gap: 6px; }
.card--review .meta > :is(span,time) { margin: 0; }
.card--review .meta > :is(span,time)::before { content: none; }
.card--review .meta .post-date { flex-basis: 100%; }
.reviews-top { margin-top: 24px; }
@media(max-width:767px) {
 .gc-compact-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 86%); grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; gap: 12px; }
 .gc-compact-rail > * { scroll-snap-align: start; }
 .gc-compact-rail .card__media { aspect-ratio: 16 / 9; }
 .gc-compact-rail .card__body { padding: 14px; }
 .gc-compact-rail .card__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
 .gc-secondary-stories .grid { grid-template-columns: 1fr; }
 .gc-secondary-stories .card { display: grid; grid-template-columns: 96px minmax(0,1fr); }
 .gc-secondary-stories .card__media { aspect-ratio: auto; border-radius: var(--radius-md) 0 0 var(--radius-md); }
 .gc-secondary-stories .card__body { padding: 12px; }
 .gc-secondary-stories .card__title { font-size: 15px; }
 .gc-home .gc-front .hero-card--main { min-height: 320px; }
}

.review-filters input::placeholder { color: var(--text-muted); opacity: 1; }

/* La hero deve occupare la sua colonna: altezza e aspect-ratio non possono
   determinare una larghezza maggiore della traccia della griglia. */
.gc-front > * { min-width: 0; }
.gc-front__lead { display: flex; }
.gc-home .gc-front .hero-card--main {
 width: 100%;
 min-width: 0;
 max-width: 100%;
 flex: 1 1 0%;
 aspect-ratio: auto;
}

/* Logo fornito dalla redazione, identico in chiaro/scuro e su tutti i dispositivi.
   Il PNG originale conserva trasparenza e margini; nessuna deformazione. */
.brand { --pd-logo-h: 48px; }
@media(min-width:1024px) { .brand { --pd-logo-h: 56px; } }
@media(max-width:359px) {
 .brand .brand__symbol { display: none; }
 :root:not([data-theme="dark"]) .brand .brand__logo--light { display: block !important; }
 :root[data-theme="dark"] .brand .brand__logo--dark { display: block !important; }
}

/* Verdetto nativo: colore del voto semantico, superficie neutra GameCast. */
.review-box { background: var(--surface-1); --gc-review-link: #075ACB; }
:root[data-theme="dark"] .review-box { --gc-review-link: #8EBCFF; }
.review-box .review-box__kicker,
.review-box .gc-verdict__details summary { color: var(--gc-review-link); }
.review-box .gc-verdict__details { margin-top: 0; }
.gc-verdict-criteria:empty { display: none; }

/* Lettura: dal colore arancio al blu del logo, in entrambe le modalita. */
.reading-progress__fill {
 background: linear-gradient(90deg, #FC6E00 0%, #0093E9 100%);
 box-shadow: none;
}

/* Vetro durante lo scroll, con fondo leggibile anche senza backdrop-filter. */
.site-header { transition: background-color .2s ease, box-shadow .2s ease; }
.site-header.gc-header--scrolled { background: #F7FAFF; box-shadow: 0 5px 20px rgb(0 0 0 / 8%); }
:root[data-theme="dark"] .site-header.gc-header--scrolled { background: #151517; }
@supports (backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px)) {
 .site-header.gc-header--scrolled { background: rgb(247 250 255 / 78%); -webkit-backdrop-filter: saturate(160%) blur(22px); backdrop-filter: saturate(160%) blur(22px); }
 :root[data-theme="dark"] .site-header.gc-header--scrolled { background: rgb(21 21 23 / 74%); }
}
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }
@media (prefers-reduced-transparency: reduce) {
 .site-header.gc-header--scrolled { background: #F7FAFF; backdrop-filter: none; -webkit-backdrop-filter: none; }
 :root[data-theme="dark"] .site-header.gc-header--scrolled { background: #151517; }
}

/* Calendario mobile: data sopra, copertina e contenuti, azioni a tutta larghezza. */
@media (max-width: 767px) {
 .release-list { gap: 20px; }
 .release { grid-template-columns: 68px minmax(0, 1fr); column-gap: 16px; row-gap: 12px; padding: 18px; border-radius: 20px; }
 .release--soon { border-color: var(--border); }
 .release__date { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 6px; justify-self: start; padding: 5px 10px; border-radius: 7px; }
 .release--soon .release__date { background: color-mix(in srgb, #FC6E00 14%, var(--surface-1)); color: var(--text); }
 .release__weekday, .release__month { font-size: 11px; }
 .release__day { font-size: 17px; }
 .release__cover { grid-column: 1; grid-row: 2 / span 3; width: 68px; border-radius: 9px; }
 .release__body { display: contents; }
 .release__title, .release__when, .release__platforms { grid-column: 2; margin: 0; }
 .release__title { font-size: 18px; line-height: 1.3; overflow-wrap: anywhere; }
 .release__when { font-size: 13px; }
 .release__platforms { gap: 5px; align-content: start; }
 .release__platforms li { padding: 2px 6px; font-size: 10px; border-radius: 5px; }
 .release__facts, .release__modes { grid-column: 1 / -1; font-size: 12px; margin: 0; line-height: 1.5; }
 .release__actions { grid-column: 1 / -1; gap: 10px; margin: 3px 0 0; padding-top: 12px; border-top: 1px solid var(--border); }
 .release__actions > button, .release__actions > a, .release__actions > .buy { flex: 1 1 auto; }
 .release__actions :is(button, .release__btn, .buy__btn) { min-height: 44px; justify-content: center; font-size: 12px; }
 .release-month { margin-bottom: 36px; }
 .release-month__title { font-size: 24px; gap: 10px; padding-bottom: 14px; }
}

/* La traccia auto ereditava la larghezza intrinseca delle rail: il main la
   ritagliava, nascondendo il difetto al controllo del solo scrollWidth pagina. */
.gc-home { grid-template-columns: minmax(0, 1fr); }
.gc-home > *, .gc-home .home-section { min-width: 0; max-width: 100%; }
.gc-home .gc-front { width: 100%; max-width: 100%; min-width: 0; }
@media (max-width: 767px) {
 .gc-home .gc-compact-rail {
  width: 100%; min-width: 0; max-width: 100%;
  display: flex; flex-wrap: nowrap;
  overflow-x: auto; overflow-y: hidden;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y pinch-zoom;
  scroll-snap-type: x proximity;
 }
 .gc-home .gc-compact-rail > * { flex: 0 0 86%; width: 86%; min-width: 0; max-width: 86%; }
}

@media (max-width: 767px) {
 .release__date { justify-self: end; }
}

/* Menu chiaro piu discreto; rimossa la linea decorativa fissa. */
.site-header::after { display: none; }
:root:not([data-theme="dark"]) .site-header.gc-header--scrolled {
 background: rgb(247 250 255 / 94%);
 -webkit-backdrop-filter: saturate(110%) blur(8px);
 backdrop-filter: saturate(110%) blur(8px);
 box-shadow: 0 2px 10px rgb(18 59 118 / 5%);
}
@media (prefers-reduced-transparency: reduce) {
 :root:not([data-theme="dark"]) .site-header.gc-header--scrolled { background: #F7FAFF; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* Archivio notizie: timeline cronologica, isolata dalle griglie della home. */
.gc-news-page { min-width: 0; }
.gc-news-group { min-width: 0; margin-block: 32px; }
.gc-news-group + .gc-news-group { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--border); }
.gc-news-group__heading { display: flex; align-items: start; gap: 14px; margin-bottom: 22px; font-size: clamp(22px, 2.5vw, 30px); line-height: 1.2; }
.gc-news-group__mark { color: var(--accent-text); font-size: 25px; }
.gc-news-group__day { display: block; margin-top: 6px; color: var(--text-muted); font-family: var(--font-body); font-size: 14px; font-weight: 400; }
.gc-news-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; list-style: none; margin: 0; padding: 0; }
.gc-news-item { position: relative; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 28px; min-width: 0; }
.gc-news-item::before { content: ""; position: absolute; left: 67px; top: 0; bottom: -16px; width: 1px; background: var(--border); }
.gc-news-item:last-child::before { bottom: 0; }
.gc-news-item__time { padding-top: 26px; text-align: right; color: var(--text-muted); font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.gc-news-card { position: relative; display: grid; grid-template-columns: 184px minmax(0, 1fr) 30px; gap: 20px; align-items: center; min-width: 0; padding: 14px; background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 16px; }
.gc-news-card::before { content: ""; position: absolute; left: -20px; top: 29px; width: 10px; height: 10px; border: 2px solid var(--text-muted); border-radius: 50%; background: var(--bg); }
.gc-news-group:first-of-type .gc-news-item:first-child .gc-news-card::before { border-color: #FC6E00; box-shadow: 0 0 0 3px rgb(252 110 0 / 12%); }
.gc-news-card__media { overflow: hidden; aspect-ratio: 16 / 9; border-radius: 10px; background: var(--surface-2); }
.gc-news-card__media :is(picture,img,.media-placeholder) { display: block; width: 100%; height: 100%; object-fit: cover; }
.gc-news-card__body { min-width: 0; }
.gc-news-card__labels { display: flex; flex-wrap: wrap; gap: 5px 8px; align-items: center; margin-bottom: 7px; font-size: 11px; font-weight: 700; line-height: 1.4; }
.gc-news-card__type { color: var(--accent-text); text-transform: uppercase; }
.gc-news-card__game { padding: 3px 7px; color: var(--text-muted); background: var(--surface-2); border-radius: 5px; overflow-wrap: anywhere; }
.gc-news-card__title { margin: 0; font-size: 19px; line-height: 1.35; overflow-wrap: anywhere; }
.gc-news-card__title a { color: var(--heading); text-decoration: none; }
.gc-news-card__title a:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.gc-news-card__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 6px; color: var(--text-muted); font-size: 14px; line-height: 1.5; }
.gc-news-card__arrow { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: var(--text-muted); background: var(--surface-2); }
.gc-news-card__arrow .icon { width: 17px; height: 17px; }
.gc-news-card:hover { border-color: var(--accent-text); }
.gc-news-ad { margin-left: 82px; min-width: 0; }
@media (max-width: 900px) {
 .gc-news-card { grid-template-columns: 136px minmax(0, 1fr); gap: 14px; }
 .gc-news-card__arrow { display: none; }
 .gc-news-card__title { font-size: 17px; }
}
@media (max-width: 600px) {
 .gc-news-group { margin-top: 24px; }
 .gc-news-item { grid-template-columns: 34px minmax(0, 1fr); gap: 18px; }
 .gc-news-item::before { left: 41px; }
 .gc-news-item__time { padding-top: 19px; font-size: 11px; }
 .gc-news-card { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding: 12px; align-items: start; border-radius: 13px; }
 .gc-news-card::before { left: -15px; top: 21px; width: 8px; height: 8px; }
 .gc-news-card__media { aspect-ratio: 1; border-radius: 7px; }
 .gc-news-card__labels { font-size: 10px; gap: 4px; margin-bottom: 6px; }
 .gc-news-card__game { padding: 2px 5px; }
 .gc-news-card__title { font-size: 15px; line-height: 1.4; }
 .gc-news-card__excerpt { font-size: 12px; }
 .gc-news-group__day { font-size: 12px; }
 .gc-news-ad { margin-left: 52px; }
}
@media (max-width: 359px) {
 .gc-news-card { grid-template-columns: 56px minmax(0, 1fr); gap: 9px; padding: 10px; }
 .gc-news-card__excerpt { display: none; }
}
