*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	background: var(--nova-bg);
	color: var(--nova-text);
	font-family: var(--nova-font-body);
	font-size: var(--nova-fs-base);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4 { font-family: var(--nova-font-display); line-height: 1.15; margin: 0 0 var(--nova-space-3); font-weight: 600; }
p { margin: 0 0 var(--nova-space-3); color: var(--nova-text-dim); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

.nova-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 9999;
	background: var(--nova-accent); color: #05070C; padding: var(--nova-space-2) var(--nova-space-4);
	border-radius: 0 0 var(--nova-radius-sm) 0;
}
.nova-skip-link:focus { left: 0; }

:focus-visible {
	outline: 2px solid var(--nova-accent);
	outline-offset: 2px;
}

.nova-container {
	max-width: var(--nova-container-width);
	margin-inline: auto;
	padding-inline: var(--nova-space-4);
}
@media (min-width: 768px) { .nova-container { padding-inline: var(--nova-space-6); } }

.nova-main { display: block; min-height: 60vh; }

/* Card grid used on archive/search/favorites/watch-history pages */
.nova-card-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--nova-space-4);
	padding-block: var(--nova-space-5);
}
@media (min-width: 640px) { .nova-card-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 960px) { .nova-card-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1280px) { .nova-card-grid { grid-template-columns: repeat(6, 1fr); } }

.nova-listing-header {
	display: flex; align-items: center; justify-content: space-between; gap: var(--nova-space-4);
	flex-wrap: wrap; padding-top: calc(var(--nova-header-height) + var(--nova-space-6));
}
.nova-listing-title { font-size: var(--nova-fs-2xl); }

.nova-listing-controls select,
.nova-search-filters select {
	background: var(--nova-surface);
	color: var(--nova-text);
	border: 1px solid var(--nova-border);
	border-radius: var(--nova-radius-sm);
	padding: var(--nova-space-2) var(--nova-space-3);
	font-size: var(--nova-fs-sm);
}

.nova-empty-state { color: var(--nova-text-dim); padding: var(--nova-space-8) 0; text-align: center; }

.nova-pagination { display: flex; gap: var(--nova-space-2); justify-content: center; padding: var(--nova-space-6) 0; }
.nova-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; border-radius: var(--nova-radius-sm);
	background: var(--nova-surface); color: var(--nova-text-dim);
	transition: background var(--nova-dur-fast) var(--nova-ease), color var(--nova-dur-fast) var(--nova-ease);
}
.nova-pagination .page-numbers.current,
.nova-pagination .page-numbers:hover { background: var(--nova-accent); color: #05070C; }
