/* ==========================================================================
   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: 500;
	line-height: 1.3;
	letter-spacing: normal;
	margin: 0 0 0.5em;
}

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

/* Section headings (Track Information, About This Track, Tags, More By X,
   Featured On, You Might Also Like, Comments) — mixed case, medium
   weight, regular tracking. Previously an all-caps heavy-weight
   "condensed display" look; now matches the lighter, mixed-case
   treatment used for headings site-wide. */
.mv-display-heading {
	font-family: var(--font-primary);
	font-weight: 500;
	font-variation-settings: "wght" 500;
	text-transform: none;
	letter-spacing: normal;
	font-size: 22px;
	line-height: 1.25;
	color: var(--color-text);
	margin: 0;
}

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

/* Navigation text: 13px / 700 / uppercase, per spec — applied explicitly
   to the header's pill nav (see .mv-nav-desktop a in components.css)
   rather than a blanket `nav a` rule, since several other elements on
   the page (breadcrumb, sidebar widgets) are also <nav>/<aside> but need
   their own distinct typography, not this one forced onto them. */

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;
}
