@layer reset {
	*,
	*::before,
	*::after {
		-moz-box-sizing: border-box;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		margin: 0;
		padding: 0;
	}

	html {
		-webkit-font-smoothing: antialiased;
		-webkit-text-size-adjust: none;
		font-family: "Montserrat", sans-serif;
		font-size: 16px;
		font-weight: 400;
		hanging-punctuation: first allow-end last;
		text-size-adjust: none;
		word-break: break-word;
	}

	html.translated-rtl {
		direction: rtl;
	}

	/* Area-agnostic page backdrop (visible on overscroll); colors are container-scoped per area. */
	body {
		background-color: #f5f7fa;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		text-wrap: balance;
	}

	p,
	li,
	dd {
		text-wrap: wrap;
	}

	ul,
	ol,
	dl {
		list-style-position: inside;

		ul,
		ol,
		dl {
			padding-inline-start: 1lh;
		}
	}

	img,
	video,
	iframe {
		display: block;
		max-inline-size: 100%;
		block-size: auto;
		border-style: none;
	}

	img {
		object-fit: contain;
	}

	figure {
		inline-size: fit-content;
		margin-inline: auto;
	}

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

	label {
		display: block;
	}

	svg {
		fill: currentColor;
	}

	[aria-disabled="true" i],
	[disabled] {
		cursor: not-allowed;
	}

	[hidden] {
		display: none !important;
	}

	[disabled],
	label:has(input[disabled]) {
		opacity: 0.5;

		[disabled] {
			opacity: 1;
		}
	}

	:target {
		scroll-margin: 3rlh;
	}

	@media (prefers-reduced-motion: no-preference) {
		@view-transition {
			navigation: auto;
		}

		html {
			interpolate-size: allow-keywords;

			&:focus-within {
				scroll-behavior: smooth;
			}
		}
	}
}

@layer strip {
	input[type="number"]::-webkit-outer-spin-button,
	input[type="number"]::-webkit-inner-spin-button {
		appearance: none;
	}

	input[type="number"] {
		appearance: textfield;
	}
}
