/* RSN Broadcast — base reset + typography. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--rsn-bg);
	color: var(--rsn-text);
	font-family: var(--rsn-body);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	min-height: 100vh;
}

img, video, svg { max-width: 100%; height: auto; display: block; }

a {
	color: var(--rsn-text);
	text-decoration: none;
	transition: color .15s var(--rsn-ease);
}
a:hover { color: var(--rsn-mint); }

h1, h2, h3, h4 {
	font-family: var(--rsn-display);
	font-weight: 400;
	letter-spacing: .005em;
	line-height: 1.05;
	color: var(--rsn-text);
	margin: 0;
	text-transform: uppercase;
}
h1 { font-size: clamp(2.4rem, 6vw, 4.5rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
h3 { font-size: 1.4rem; }

p { margin: 0 0 1em; }

button {
	font-family: inherit;
	cursor: pointer;
}

::selection { background: var(--rsn-mint); color: var(--rsn-bg); }

/* Skip link */
.rsn-skip {
	position: absolute; left: -9999px; top: 0;
	background: var(--rsn-mint); color: var(--rsn-bg);
	padding: .75rem 1rem; z-index: 999; font-weight: 700;
}
.rsn-skip:focus { left: 1rem; top: 1rem; }

/* Focus rings — visible, accessible, brand-coloured */
:focus-visible {
	outline: 2px solid var(--rsn-mint);
	outline-offset: 3px;
	border-radius: 4px;
}
