:root {
	color-scheme: dark;
	font-family: Inter, system-ui, sans-serif;
	--bg: #090909;
	--panel: rgba(16, 16, 16, 0.78);
	--line: rgba(255, 255, 255, 0.14);
	--text: #f3eadb;
	--muted: rgba(243, 234, 219, 0.7);
	--accent: #d86f3d;
	--shadow: rgba(0, 0, 0, 0.35);
}

* {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	width: 100%;
	max-width: 100%;
	min-height: 100%;
	background: var(--bg);
	color: var(--text);
}

body {
	overflow: hidden;
}

button,
input {
	font: inherit;
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.player {
	position: relative;
	width: 100vw;
	height: 100vh;
	height: 100dvh;
	min-height: 100svh;
	background: #000;
	overflow: hidden;
}

.player__source {
	display: none;
}

.player__canvas,
.player__overlay {
	position: absolute;
	inset: 0;
}

.player__canvas {
	display: block;
	width: 100%;
	height: 100%;
	background: #050505;
	filter: saturate(0.82) contrast(1.08) brightness(0.94);
	touch-action: manipulation;
}

.player__overlay {
	pointer-events: none;
	background:
		linear-gradient(to bottom, rgba(255, 255, 255, 0.07), transparent 16%, transparent 76%, rgba(0, 0, 0, 0.34)),
		repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.045) 0 1px, transparent 1px 4px),
		radial-gradient(circle at center, transparent 54%, rgba(0, 0, 0, 0.4) 100%);
	mix-blend-mode: screen;
	opacity: 0.52;
}

.badge {
	position: absolute;
	top: calc(1rem + env(safe-area-inset-top));
	left: calc(1rem + env(safe-area-inset-left));
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 0.72rem;
	border: 1px solid rgba(216, 111, 61, 0.35);
	background: rgba(20, 12, 9, 0.72);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: 0.72rem;
	pointer-events: none;
	max-width: calc(100vw - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right));
}

.badge__dot {
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 0 14px rgba(216, 111, 61, 0.45);
	flex: 0 0 auto;
}

.player__panel {
	position: absolute;
	left: calc(1rem + env(safe-area-inset-left));
	right: calc(1rem + env(safe-area-inset-right));
	bottom: calc(1rem + env(safe-area-inset-bottom));
	z-index: 3;
	display: grid;
	gap: 0.85rem;
	padding: 1rem;
	background: var(--panel);
	border: 1px solid var(--line);
	backdrop-filter: blur(14px);
	box-shadow: 0 12px 32px var(--shadow);
	max-width: calc(100vw - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right));
}

.title-card {
	min-width: 0;
}

.title-card__eyebrow {
	margin: 0 0 0.35rem;
	color: var(--muted);
	font-size: 0.74rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.title-card__title {
	margin: 0;
	font-size: clamp(1.5rem, 5vw, 4.6rem);
	line-height: 0.95;
	letter-spacing: -0.05em;
	font-weight: 700;
	text-wrap: balance;
	word-break: break-word;
}

.controls {
	display: grid;
	gap: 0.75rem;
	min-width: 0;
}

.controls__top {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
}

.controls__button {
	display: inline-grid;
	place-items: center;
	width: 2.9rem;
	height: 2.9rem;
	border: 1px solid var(--line);
	background: rgba(255, 255, 255, 0.04);
	color: var(--text);
	cursor: pointer;
	transition: background 150ms ease, border-color 150ms ease, transform 150ms ease;
	-webkit-tap-highlight-color: transparent;
	flex: 0 0 auto;
}

.controls__button:hover,
.controls__button:focus-visible {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.22);
}

.controls__button:active {
	transform: translateY(1px);
}

.controls__button i {
	width: 1rem;
	height: 1rem;
}

.controls__timeline-block {
	min-width: 0;
}

.controls__timeline {
	width: 100%;
	margin: 0;
	appearance: none;
	height: 0.36rem;
	background: linear-gradient(to right, var(--accent) 0%, var(--accent) var(--progress, 0%), rgba(255, 255, 255, 0.15) var(--progress, 0%), rgba(255, 255, 255, 0.15) 100%);
	border-radius: 999px;
	outline: none;
	cursor: pointer;
}

.controls__timeline::-webkit-slider-thumb {
	appearance: none;
	width: 0.95rem;
	height: 0.95rem;
	border-radius: 50%;
	border: 0;
	background: var(--text);
}

.controls__timeline::-moz-range-thumb {
	width: 0.95rem;
	height: 0.95rem;
	border-radius: 50%;
	border: 0;
	background: var(--text);
}

.controls__meta {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.35rem;
	min-width: 0;
	color: var(--muted);
	font-size: 0.9rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.controls__divider {
	opacity: 0.5;
}

@media (max-width: 720px) {
	.player__panel {
		left: max(0.75rem, env(safe-area-inset-left));
		right: max(0.75rem, env(safe-area-inset-right));
		bottom: max(0.75rem, env(safe-area-inset-bottom));
		gap: 0.75rem;
		padding: 0.85rem;
	}

	.badge {
		top: max(0.75rem, env(safe-area-inset-top));
		left: max(0.75rem, env(safe-area-inset-left));
		max-width: calc(100vw - 1.5rem - 1.5rem - env(safe-area-inset-left) - env(safe-area-inset-right));
	}

	.title-card__eyebrow {
		font-size: 0.68rem;
		margin-bottom: 0.2rem;
	}

	.title-card__title {
		font-size: clamp(1.15rem, 7.2vw, 2rem);
	}

	.controls__top {
		grid-template-columns: auto 1fr auto;
		gap: 0.6rem;
	}

	.controls__meta {
		font-size: 0.82rem;
	}

	.controls__button {
		width: 2.75rem;
		height: 2.75rem;
	}
}

@media (max-width: 420px) {
	.player__panel {
		left: max(0.6rem, env(safe-area-inset-left));
		right: max(0.6rem, env(safe-area-inset-right));
		bottom: max(0.6rem, env(safe-area-inset-bottom));
		padding: 0.75rem;
		gap: 0.65rem;
	}

	.badge {
		top: max(0.6rem, env(safe-area-inset-top));
		left: max(0.6rem, env(safe-area-inset-left));
		padding: 0.42rem 0.58rem;
		font-size: 0.62rem;
		letter-spacing: 0.14em;
		gap: 0.4rem;
	}

	.badge__text {
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.title-card__eyebrow {
		font-size: 0.62rem;
		letter-spacing: 0.14em;
	}

	.title-card__title {
		font-size: clamp(1rem, 8vw, 1.55rem);
		line-height: 1;
	}

	.controls__top {
		grid-template-columns: auto 1fr;
		grid-template-areas:
			"play mute"
			"meta meta";
		gap: 0.55rem 0.5rem;
	}

	#playToggle {
		grid-area: play;
	}

	#muteToggle {
		grid-area: mute;
		justify-self: end;
	}

	.controls__meta {
		grid-area: meta;
		justify-content: flex-start;
		font-size: 0.78rem;
	}

	.controls__button {
		width: 2.6rem;
		height: 2.6rem;
	}

	.controls__timeline {
		height: 0.32rem;
	}
}

@media (max-width: 340px) {
	.player__panel {
		padding: 0.65rem;
	}

	.title-card__title {
		font-size: 0.95rem;
	}

	.controls__meta {
		font-size: 0.72rem;
	}
}