.timeline {
	--line-width: 0.125rem;
	--pointer-size: 0.5rem;
	--pointer-offsetY: 1rem;
	--content-margin: 0.75rem;
	--dot-offsetY: calc(var(--content-margin) + var(--pointer-size) + var(--pointer-offsetY));
	
	position: relative;
	display: grid;
	grid-template-columns: max-content var(--line-width) auto;
	grid-template-areas: "date dot content";
	column-gap: 1.5rem;
	isolation: isolate;
	
	.entry {
		display: grid;
		grid-template-columns: subgrid;
		grid-column: date / content;
		
		.date {
			grid-area: date;
			justify-self: end;
			padding-top: 1.5rem;
		}
		
		.dot {
			grid-area: dot;
			position: relative;
			width: 100%;
			background: var(--color-timeline-line);
			height: 100%;
			
			&:after {
				content: "";
				position: absolute;
				top: var(--dot-offsetY);
				left: 50%;
				transform: translate(-50%, -50%);
				width: 1.25rem;
				aspect-ratio: 1;
				border: var(--line-width) solid var(--color-timeline-dot-border);
				box-sizing: border-box;
				border-radius: 1rem;
				background: var(--color-timeline-dot-background);
			}
		}
		
		.content {
			grid-area: content;
			position: relative;
			background: var(--color-timeline-entry-background);
			color: var(--color-timeline-entry-text);
			border-radius: 0.5rem;
			padding: 1rem;
			margin: var(--content-margin) 0 var(--content-margin) var(--pointer-size);
			
			&:before {
				content: "";
				position: absolute;
				top: var(--pointer-offsetY);
				left: calc(2 * var(--pointer-size) * -1);
				border: var(--pointer-size) solid;
				border-color: transparent var(--color-timeline-entry-background) transparent transparent;				
			}
		}
		
		.event-date {
			font-size: 1.25rem;
			line-height: 1.25;
		}
		
		.event-content {
			display: flex;
			flex-direction: column;
			gap: 0.25rem;
			
			.event-title {
				font-size: 0.875rem;
				line-height: 1.25;
				font-weight: 500;
				letter-spacing: 0.15em;
			}
			
			.event-text {
				text-align: justify;
			}
			
			.event-options {
				display: flex;
				align-items: center;
				gap: 0.5rem;
				align-self: flex-end;
			}
		}
	}
}

.timeline-add {
	display: grid;
	grid-template-columns: 20rem auto;
	grid-template-areas: "title description"
						 "date description";
	
	gap: 1rem;
	
	.cell {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
	}
	
	.event-title {
		grid-area: title;
	}
	
	.event-date {
		grid-area: date;
		align-self: end;
	}
	
	.event-description {
		grid-area: description;
	}
	
	
}

.submit-button {
	align-self: flex-end;
}

@media (width < 992px) {
	
	.timeline {
		grid-template-columns: 0.125rem auto;
		grid-template-areas: "dot content";
		
		.entry {
			grid-column: dot / content;
			
			.date {
				display: none;
			}
		}
	}
	
	.timeline-add {
		grid-template-columns: auto;
		grid-template-areas: "title"
						 	 "date"
							 "description";
	}
	
	.submit-button {
		align-self: center;
	}
}

		