/* Open Sans Variable Font */
@font-face {
	font-family: "Open Sans";
	src: url("../fonts/open-sans-var.woff2") format("woff2");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

/* Cairo Variable Font */
@font-face {
	font-family: "Cairo";
	src: url("../fonts/Cairo.woff2") format("woff2-variations");
	font-weight: 200 1000;
	font-style: oblique -10deg 0deg;
	font-display: swap;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

* {
	margin: 0;
}

body {
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	color: var(--color-text);
	font: var(--font-body);
	background: var(--color-surface-alt);
}

:root {
	interpolate-size: allow-keywords;
}

img,
picture,
video,
canvas,
svg {
	display: block;
}

input,
button,
textarea,
select {
	font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
}

[data-page] {
	grid-area: page;
	overflow: auto;
	align-content: start;
	height: 100%;
}

a {
	color: currentColor;
}

p {
	letter-spacing: 0.2px;
}

h1 {
	font: var(--font-h1);
}

.card {
	padding: var(--spacing-md) 20px;
	border-radius: var(--radius-card);
	box-shadow: var(--shadow-card);
	background-color: var(--color-surface);
}

section {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-lg);

	.section-head {
		display: grid;
		grid-template: "title link" auto / 1fr auto;
		justify-content: space-between;
		gap: var(--spacing-xs);
	}

	.section-title {
		grid-area: title;
		font: var(--font-h5);
		font-weight: bold;
		display: flex;
		gap: 5px;
		align-items: center;
	}

	.section-link {
		grid-area: link;
		font: var(--font-body-large-bold);
		text-decoration: none;
		color: var(--color-primary);
	}
}

.page-content {
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: 30px;
}

@keyframes fade-in {
	from {
		opacity: 0;
	}
}

@keyframes fade-out {
	to {
		opacity: 0;
	}
}

@keyframes slide-from-right {
	from {
		transform: translateX(30px);
	}
}

@keyframes slide-to-left {
	to {
		transform: translateX(-30px);
	}
}

::view-transition-old(root) {
	animation: 90ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
		300ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
}

::view-transition-new(root) {
	animation: 210ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
		300ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
}

button {
	transition: all .3s;

	&:focus-visible {
		outline: none;
	}
}

.empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 60px var(--spacing-lg);
	text-align: center;
	gap: 12px;

	.empty-title {
		font: var(--font-h5);
		color: var(--grayscale-900);
		margin: 0 0 4px 0;
	}

	.empty-message {
		font: var(--font-body-medium-regular);
		color: var(--grayscale-500);
		margin: 0;
		max-width: 280px;
	}
}