.experiencia {
	position: relative;
	padding-block: var(--space-xl);
	background: var(--color-bg);
	overflow: hidden;
}

.experiencia .bg-decor span {
	width: 380px;
	height: 380px;
	bottom: -140px;
	left: -100px;
	background: var(--glow-accent);
	opacity: 0.28;
}

.experiencia .container {
	position: relative;
	z-index: 1;
}

.timeline {
	position: relative;
	padding-left: calc(var(--space-lg) + 4px);
	border-left: 2px dashed var(--color-border);
}

@media (max-width: 600px) {
	/* o marcador (.timeline-marker) usa um offset negativo grande para
	   se posicionar sobre a linha da timeline; em mobile isso deixava-o
	   praticamente colado (ou cortado) na margem esquerda do ecrã.
	   Esta margem extra é só na timeline (não no .container todo, que
	   desalinhava o título/subtítulo face às outras secções). */
	.timeline {
		margin-left: 28px;
	}
}

.timeline-item {
	position: relative;
	padding-bottom: var(--space-md);
}

.timeline-item:last-child {
	padding-bottom: 0;
}

.timeline-marker {
	position: absolute;
	left: calc(-1 * var(--space-lg) - 22px);
	top: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-bg-elevated);
	border: 2px solid var(--color-border);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-faint);
	transition: transform var(--dur-sm) var(--ease-snap), border-color var(--dur-sm) ease, color var(--dur-sm) ease;
}

.timeline-marker svg {
	width: 18px;
	height: 18px;
}

.timeline-item:hover .timeline-marker {
	transform: scale(1.15) rotate(-8deg);
	border-color: var(--color-accent);
	color: var(--color-accent-dark);
}

.timeline-item-atual .timeline-marker {
	background: var(--color-accent);
	border-color: var(--color-accent);
	color: var(--color-text);
}

/* Caixa sempre visível — mesma linguagem visual das Competências */
.timeline-conteudo {
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
	background: var(--color-bg-elevated);
	transition: border-color var(--dur-sm) ease, box-shadow var(--dur-sm) ease, transform var(--dur-sm) var(--ease-premium);
}

.timeline-item:hover .timeline-conteudo {
	border-color: var(--color-accent);
	box-shadow: var(--shadow-md);
	transform: translateX(6px);
}

.timeline-item-atual .timeline-conteudo {
	border-color: rgba(226, 72, 12, 0.5);
}

.timeline-topo {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	margin-bottom: 0.35rem;
}

.timeline-periodo {
	font-size: var(--fs-xs);
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	color: var(--color-text-faint);
	font-weight: 700;
}

.timeline-pill {
	font-size: var(--fs-xs);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: var(--ls-wide);
	/* branco sobre laranja: 4.07:1 (vs. 2.20:1 do marinho anterior) —
	   ver PROJECT_REVIEW.md A3 para a nota sobre o limite dos 4.5:1 */
	color: var(--color-white);
	background: var(--color-accent);
	padding: 0.15rem 0.55rem;
	border-radius: var(--radius-pill);
}

.timeline-cargo {
	font-size: var(--fs-xl);
	font-weight: 700;
	margin-bottom: 0.1rem;
}

.timeline-empresa {
	font-family: var(--font-base);
	color: var(--color-accent-dark);
	font-weight: 700;
	font-size: var(--fs-sm);
	margin-bottom: var(--space-xs);
}

.timeline-descricao {
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
	max-width: 60ch;
}
