/* ==========================================================================
   Typography — self-hosted variable Inter, exact scale per spec
   ========================================================================== */

@font-face {
	font-family: "Inter";
	src: url("../fonts/InterVariable.woff2") format("woff2-variations"),
		url("../fonts/InterVariable.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

body {
	font-family: var(--font-primary);
	font-size: var(--fs-body);
	font-weight: 400;
	line-height: var(--lh-body);
	color: var(--color-text);
	font-variation-settings: "wght" 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

p {
	line-height: var(--lh-paragraph);
	margin: 0 0 1em;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-primary);
	color: var(--color-text);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	margin: 0 0 0.5em;
}

h1 { font-size: var(--fs-h1); font-weight: 800; letter-spacing: -0.02em; }
h2 { font-size: var(--fs-h2); font-weight: 800; letter-spacing: -0.01em; }
h3 { font-size: var(--fs-h3); font-weight: 700; }
h4 { font-size: var(--fs-h4); font-weight: 600; }
h5 { font-size: var(--fs-h5); font-weight: 600; }
h6 { font-size: var(--fs-h6); font-weight: 600; }

/* Condensed-look section headings (Track Information, About This Track,
   Tags, More By X, Featured On, You Might Also Like, Comments) — built
   entirely from Inter at its heaviest weight with tightened tracking and
   uppercase, rather than a second condensed display typeface, per spec. */
.mv-display-heading {
	font-family: var(--font-primary);
	font-weight: 900;
	font-variation-settings: "wght" 900;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: 24px;
	line-height: 1.1;
	color: var(--color-text);
	margin: 0;
}

a {
	color: inherit;
	text-decoration: none;
}

/* Navigation text: 13px / 700 / uppercase, per spec */
.mv-nav-text,
nav a,
.mv-tabs button span {
	font-size: var(--fs-nav);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

small, .mv-text-sm {
	font-size: 0.8125rem;
}

.mv-text-faint {
	color: var(--color-text-faint);
}

.mv-text-muted {
	color: var(--color-text-muted);
}

/* Fluid scaling for very small viewports (<360px) keeps H1 from overflowing
   while never exceeding the spec sizes on normal viewports. */
@media (max-width: 359px) {
	h1 { font-size: clamp(26px, 8vw, 32px); }
	h2 { font-size: clamp(22px, 7vw, 28px); }
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: var(--color-surface);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-md);
	clip: auto !important;
	clip-path: none;
	color: var(--color-text);
	display: block;
	font-size: 14px;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 12px 18px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}
