/* RSN Broadcast — components.
   The reusable building blocks: hero, cards, tabs, carousel, poll, gallery, badges. */

/* ============================================================
   HERO
   ============================================================ */
.rsn-hero {
	position: relative;
	min-height: 70vh;
	display: flex;
	align-items: end;
	overflow: hidden;
	padding: 6rem 0 3rem;
}
.rsn-hero__bg {
	position: absolute; inset: 0;
	z-index: 0;
}
.rsn-hero__bg img {
	width: 100%; height: 100%; object-fit: cover;
}
.rsn-hero__bg::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,13,18,0) 0%, rgba(10,13,18,.2) 40%, rgba(10,13,18,.85) 80%, var(--rsn-bg) 100%),
	            linear-gradient(90deg, rgba(10,13,18,.7) 0%, rgba(10,13,18,0) 60%);
}

.rsn-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 700px;
}
.rsn-hero__eyebrow {
	display: inline-block;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	padding: .35em .8em;
	border-radius: var(--rsn-radius-pill);
	text-transform: uppercase;
	font-weight: 800;
	font-size: .8rem;
	letter-spacing: .12em;
	margin-bottom: 1.5rem;
}
.rsn-hero__headline {
	font-size: clamp(2.6rem, 7vw, 5.5rem);
	margin-bottom: 1rem;
}
.rsn-hero__sub {
	font-size: 1.15rem;
	color: var(--rsn-text-dim);
	max-width: 50ch;
	margin-bottom: 2rem;
}
.rsn-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	padding: 1rem 2rem;
	border-radius: var(--rsn-radius-pill);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .9rem;
	transition: transform .2s var(--rsn-ease), box-shadow .2s var(--rsn-ease);
}
.rsn-hero__cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 30px var(--rsn-mint-glow);
	color: var(--rsn-bg);
}
.rsn-hero__cta--secondary {
	background: transparent;
	color: var(--rsn-text);
	border: 1px solid var(--rsn-line-strong);
}
.rsn-hero__cta--secondary:hover {
	border-color: var(--rsn-mint);
	color: var(--rsn-mint);
	box-shadow: none;
}

/* ============================================================
   SHOW CARDS  (TV-style large cards)
   ============================================================ */
.rsn-grid-shows {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}
.rsn-show-card {
	position: relative;
	overflow: hidden;
	border-radius: var(--rsn-radius);
	aspect-ratio: 4 / 5;
	background: var(--rsn-surface);
	transition: transform .3s var(--rsn-ease);
}
.rsn-show-card:hover { transform: translateY(-4px); }
.rsn-show-card__img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .6s var(--rsn-ease);
}
.rsn-show-card:hover .rsn-show-card__img { transform: scale(1.06); }
.rsn-show-card__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(10,13,18,.95) 100%);
	display: flex;
	align-items: end;
	padding: 1.5rem;
}
.rsn-show-card__content { width: 100%; }
.rsn-show-card__title {
	font-size: 1.8rem;
	margin-bottom: .35rem;
}
.rsn-show-card__tagline {
	color: var(--rsn-text-dim);
	font-size: .9rem;
	margin: 0;
}
.rsn-show-card__live {
	position: absolute;
	top: 1rem; left: 1rem;
	background: #e63946;
	color: #fff;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
	padding: .25em .6em;
	border-radius: 4px;
	animation: rsnLive 1.6s ease-in-out infinite;
}
@keyframes rsnLive {
	0%, 100% { opacity: 1; }
	50% { opacity: .6; }
}

/* ============================================================
   EPISODE CARDS  (horizontal carousel)
   ============================================================ */
.rsn-row {
	position: relative;
}
.rsn-row__track {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: 1.5rem;
	padding-bottom: 1rem;
	scrollbar-width: thin;
	scrollbar-color: var(--rsn-line-strong) transparent;
}
.rsn-row__track::-webkit-scrollbar { height: 6px; }
.rsn-row__track::-webkit-scrollbar-thumb { background: var(--rsn-line-strong); border-radius: 3px; }

.rsn-episode-card {
	flex: 0 0 320px;
	scroll-snap-align: start;
	background: var(--rsn-surface);
	border-radius: var(--rsn-radius);
	overflow: hidden;
	transition: transform .3s var(--rsn-ease);
	display: block;
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	position: relative;
}
.rsn-episode-card:hover { transform: translateY(-4px); }
.rsn-episode-card:focus-visible {
	outline: 2px solid var(--rsn-mint);
	outline-offset: 2px;
}

.rsn-episode-card__thumb {
	position: relative;
	aspect-ratio: 16/9;
	background: var(--rsn-surface-2);
}
.rsn-episode-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rsn-episode-card__num {
	position: absolute;
	bottom: 8px; left: 8px;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	font-size: .75rem;
	padding: .25em .6em;
	border-radius: 4px;
	letter-spacing: .08em;
}
.rsn-episode-card__body { padding: 1rem 1.1rem 1.1rem; }
.rsn-episode-card__season {
	color: var(--rsn-mint);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.rsn-episode-card__title {
	font-family: var(--rsn-body);
	font-weight: 700;
	font-size: 1.05rem;
	text-transform: none;
	margin: .35rem 0 .25rem;
	line-height: 1.3;
	color: var(--rsn-text);
}
.rsn-episode-card__desc { color: var(--rsn-text-dim); font-size: .85rem; margin: 0; }

.rsn-row__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--rsn-surface-2);
	border: 1px solid var(--rsn-line);
	color: var(--rsn-text);
	font-size: 1.5rem;
	display: grid; place-items: center;
	cursor: pointer;
	z-index: 2;
	transition: background .15s var(--rsn-ease);
}
.rsn-row__nav:hover { background: var(--rsn-mint); color: var(--rsn-bg); border-color: var(--rsn-mint); }
.rsn-row__nav--prev { left: -22px; }
.rsn-row__nav--next { right: -22px; }
@media (max-width: 700px) {
	.rsn-row__nav { display: none; }
}

/* ============================================================
   PROMO BLOCK
   ============================================================ */
.rsn-promo {
	position: relative;
	border-radius: var(--rsn-radius-lg);
	overflow: hidden;
	min-height: 320px;
	display: flex;
	align-items: center;
	padding: 3rem;
	background: var(--rsn-surface-2);
}
.rsn-promo__bg {
	position: absolute; inset: 0; z-index: 0;
}
.rsn-promo__bg img { width: 100%; height: 100%; object-fit: cover; }
.rsn-promo__bg::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(10,13,18,.95) 0%, rgba(10,13,18,.6) 60%, rgba(10,13,18,.2) 100%);
}
.rsn-promo__content { position: relative; z-index: 1; max-width: 480px; }

/* ============================================================
   TABS  (Season page navigation)
   ============================================================ */
.rsn-tabs {
	border-bottom: 1px solid var(--rsn-line);
	margin-bottom: 2rem;
	display: flex;
	gap: .25rem;
	overflow-x: auto;
}
.rsn-tabs__tab {
	background: none;
	border: 0;
	color: var(--rsn-text-dim);
	font-family: var(--rsn-body);
	font-weight: 700;
	font-size: .95rem;
	letter-spacing: .05em;
	padding: 1rem 1.5rem;
	cursor: pointer;
	position: relative;
	white-space: nowrap;
	transition: color .15s var(--rsn-ease);
}
.rsn-tabs__tab[aria-selected="true"] {
	color: var(--rsn-text);
}
.rsn-tabs__tab[aria-selected="true"]::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: 3px;
	background: var(--rsn-mint);
	border-radius: 3px 3px 0 0;
}
.rsn-tabs__tab:hover { color: var(--rsn-text); }

.rsn-tabpanel { padding: 1rem 0; }
.rsn-tabpanel[hidden] { display: none; }

/* ============================================================
   HOUSEMATE CAROUSEL — status-driven styling
   ============================================================ */
.rsn-carousel { position: relative; }
.rsn-carousel__track {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 1rem;
}
.rsn-carousel__track::-webkit-scrollbar { display: none; }
.rsn-carousel__track { scrollbar-width: none; }

.rsn-hm-card {
	flex: 0 0 220px;
	scroll-snap-align: start;
	background: var(--rsn-surface);
	border-radius: var(--rsn-radius);
	overflow: hidden;
	transition: transform .3s var(--rsn-ease);
	display: block;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}
.rsn-hm-card:hover { transform: translateY(-4px); }
.rsn-hm-card:focus-visible {
	outline: 2px solid var(--rsn-mint);
	outline-offset: 2px;
}

.rsn-hm-card__photo {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
}
.rsn-hm-card__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: filter .3s var(--rsn-ease);
}

/* ===== Status states — three rules, no template branching ===== */
.rsn-hm-card[data-status="in_house"]   .rsn-hm-card__photo img { filter: none; }
.rsn-hm-card[data-status="nominated"]  .rsn-hm-card__photo img { filter: saturate(1.1); }
.rsn-hm-card[data-status="nominated"]  .rsn-hm-card__photo {
	box-shadow: inset 0 0 0 4px var(--rsn-yellow), 0 0 32px var(--rsn-yellow-glow);
}
.rsn-hm-card[data-status="evicted"]    .rsn-hm-card__photo img { filter: grayscale(1) brightness(.62); }

.rsn-hm-card__badge {
	position: absolute;
	top: .65rem; left: .65rem;
	background: rgba(0,0,0,0.78);
	color: var(--rsn-text);
	padding: .25em .6em;
	border-radius: 4px;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.rsn-hm-card__badge--nominated { background: var(--rsn-yellow); color: #000; }

.rsn-hm-card__body { padding: .85rem 1rem 1.1rem; }
.rsn-hm-card__name {
	font-family: var(--rsn-body);
	font-weight: 700;
	text-transform: none;
	font-size: 1.05rem;
	margin: 0;
	color: var(--rsn-text);
}
.rsn-hm-card__meta {
	color: var(--rsn-text-dim);
	font-size: .82rem;
	margin: .2rem 0 0;
}

/* ============================================================
   HOST CARDS — used in the season's "Hosts" tab
   ============================================================ */
.rsn-host-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.5rem;
	padding: 1rem 0 2rem;
}
.rsn-host-card {
	display: block;
	background: var(--rsn-surface);
	border-radius: var(--rsn-radius);
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: transform .3s var(--rsn-ease);
}
.rsn-host-card:hover { transform: translateY(-4px); }
.rsn-host-card:focus-visible { outline: 2px solid var(--rsn-mint); outline-offset: 2px; }

.rsn-host-card__photo {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
}
.rsn-host-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.rsn-host-card__badge {
	position: absolute;
	bottom: .65rem; left: .65rem;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	padding: .28em .7em;
	border-radius: 999px;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .12em;
}
.rsn-host-card__body { padding: .9rem 1rem 1.1rem; }
.rsn-host-card__name {
	font-family: var(--rsn-body);
	font-weight: 700;
	text-transform: none;
	font-size: 1.1rem;
	margin: 0;
	color: var(--rsn-text);
}
.rsn-host-card__tagline {
	color: var(--rsn-text-dim);
	font-size: .85rem;
	margin: .25rem 0 0;
	line-height: 1.4;
}

/* ============================================================
   HOUSEMATE / HOST single profile page
   ============================================================ */
.rsn-housemate {
	position: relative;
	min-height: 60vh;
	padding: 5rem 0 4rem;
	overflow: hidden;
}
.rsn-housemate__bg {
	position: absolute; inset: 0; z-index: 0;
}
.rsn-housemate__bg img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: blur(40px) saturate(1.3) brightness(.45);
	transform: scale(1.15);
}
.rsn-housemate__bg::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,13,18,.65) 0%, rgba(10,13,18,.92) 60%, var(--rsn-bg) 100%);
}
.rsn-housemate__inner {
	position: relative;
	z-index: 1;
}
.rsn-housemate__grid {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 3rem;
	align-items: start;
	margin-top: 2rem;
}
@media (max-width: 700px) {
	.rsn-housemate__grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

.rsn-housemate__photo {
	position: relative;
	aspect-ratio: 1;
	border-radius: var(--rsn-radius);
	overflow: hidden;
	background: var(--rsn-surface);
}
.rsn-housemate__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
}
.rsn-housemate__photo[data-status="evicted"]   img { filter: grayscale(1) brightness(.7); }
.rsn-housemate__photo[data-status="nominated"] {
	box-shadow: inset 0 0 0 5px var(--rsn-yellow), 0 0 60px var(--rsn-yellow-glow);
}
.rsn-housemate__photo-fill {
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--rsn-mint), #2d8d5b);
	color: var(--rsn-bg);
	font-family: var(--rsn-display);
	font-size: 8rem;
}

.rsn-housemate__role {
	color: var(--rsn-mint);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.rsn-housemate__name {
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	margin: .5rem 0 0;
	line-height: 1.05;
}
.rsn-housemate__tagline {
	color: var(--rsn-text-dim);
	font-size: 1.1rem;
	margin: .85rem 0 0;
	font-style: italic;
}
.rsn-housemate__status {
	margin: 1rem 0;
}
.rsn-housemate__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 1.25rem;
	margin: 1.5rem 0 2rem;
	padding: 1.25rem;
	background: rgba(255,255,255,0.03);
	border: 1px solid var(--rsn-line);
	border-radius: var(--rsn-radius);
}
.rsn-housemate__facts > div {
	display: flex;
	flex-direction: column;
	gap: .25rem;
}
.rsn-housemate__facts dt {
	color: var(--rsn-text-mute);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.rsn-housemate__facts dd {
	color: var(--rsn-text);
	font-size: 1rem;
	margin: 0;
}
.rsn-housemate__facts a { color: var(--rsn-mint); text-decoration: none; }
.rsn-housemate__facts a:hover { text-decoration: underline; }

.rsn-housemate__bio h2 {
	font-family: var(--rsn-body);
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--rsn-text-dim);
	margin: 0 0 .85rem;
}
.rsn-housemate__bio {
	color: var(--rsn-text);
	font-size: 1.02rem;
	line-height: 1.7;
}
.rsn-housemate__bio p { margin: 0 0 1rem; }

.rsn-housemate__back {
	display: inline-block;
	margin-top: 2rem;
	color: var(--rsn-mint);
	font-weight: 600;
	text-decoration: none;
}
.rsn-housemate__back:hover { text-decoration: underline; }

/* ============================================================
   POLL
   ============================================================ */
.rsn-poll {
	background: var(--rsn-surface);
	border-radius: var(--rsn-radius-lg);
	padding: 2rem;
	max-width: 900px;
}
.rsn-poll__question {
	font-size: clamp(1.4rem, 3vw, 2rem);
	margin-bottom: .35rem;
}
.rsn-poll__sub {
	color: var(--rsn-text-dim);
	margin-bottom: 1.5rem;
}
.rsn-poll__options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 1rem;
	list-style: none;
	padding: 0;
	margin: 0;
}
.rsn-poll-option {
	background: var(--rsn-surface-2);
	border: 2px solid var(--rsn-line);
	border-radius: var(--rsn-radius);
	padding: 1rem;
	text-align: center;
	cursor: pointer;
	transition: border-color .15s var(--rsn-ease), transform .15s var(--rsn-ease);
	font-family: inherit;
	color: var(--rsn-text);
	display: flex;
	flex-direction: column;
	gap: .5rem;
	position: relative;
	overflow: hidden;
}
.rsn-poll-option:hover { border-color: var(--rsn-mint); transform: translateY(-2px); }
.rsn-poll-option[data-voted="1"] { border-color: var(--rsn-mint); background: var(--rsn-mint-soft); }
.rsn-poll-option__photo {
	width: 100%;
	aspect-ratio: 1;
	border-radius: 8px;
	object-fit: cover;
}
.rsn-poll-option__label { font-weight: 700; font-size: 1rem; }

.rsn-poll-option__bar {
	position: absolute;
	bottom: 0; left: 0;
	height: 4px;
	background: var(--rsn-mint);
	width: 0;
	transition: width .8s var(--rsn-ease);
}
.rsn-poll-option__pct {
	color: var(--rsn-mint);
	font-weight: 800;
	font-size: 1.1rem;
}

.rsn-poll__status {
	margin-top: 1.5rem;
	color: var(--rsn-text-dim);
	font-size: .9rem;
}
.rsn-poll__status[data-tone="success"] { color: var(--rsn-mint); font-weight: 700; }
.rsn-poll__status[data-tone="error"]   { color: #ff8585; }

.rsn-poll__honeypot {
	position: absolute;
	left: -9999px;
	opacity: 0;
	pointer-events: none;
}

/* ============================================================
   HOUSE GALLERY
   ============================================================ */
.rsn-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	grid-auto-rows: 220px;
	gap: .75rem;
}
.rsn-gallery__item {
	overflow: hidden;
	border-radius: var(--rsn-radius);
	cursor: zoom-in;
	background: var(--rsn-surface);
	position: relative;
}
.rsn-gallery__item img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .5s var(--rsn-ease);
}
.rsn-gallery__item:hover img { transform: scale(1.06); }
.rsn-gallery__item:nth-child(7n+1) { grid-row: span 2; }

.rsn-gallery__caption {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: .8rem 1rem;
	background: linear-gradient(transparent, rgba(0,0,0,0.85));
	color: #fff;
	font-size: .85rem;
}

/* Lightbox */
.rsn-lightbox {
	position: fixed; inset: 0; z-index: 100;
	background: rgba(5, 7, 11, 0.96);
	display: none;
	align-items: center; justify-content: center;
	padding: 2rem;
}
.rsn-lightbox.is-open { display: flex; }
.rsn-lightbox img { max-height: 90vh; max-width: 90vw; border-radius: 6px; }
.rsn-lightbox__close {
	position: absolute; top: 1.5rem; right: 1.5rem;
	background: var(--rsn-surface-2);
	border: 1px solid var(--rsn-line);
	color: #fff;
	font-size: 1.5rem;
	width: 44px; height: 44px;
	border-radius: 50%;
	cursor: pointer;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.rsn-breadcrumb {
	display: flex; align-items: center;
	gap: .5rem;
	color: var(--rsn-text-dim);
	font-size: .85rem;
	margin-bottom: 1rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 700;
}
.rsn-breadcrumb a:hover { color: var(--rsn-mint); }
.rsn-breadcrumb .rsn-crumb-sep { color: var(--rsn-text-mute); }

/* ============================================================
   SECTION-LEVEL UTILITY  — small components
   ============================================================ */
.rsn-pill {
	display: inline-block;
	padding: .25em .8em;
	border-radius: var(--rsn-radius-pill);
	font-size: .72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .12em;
	background: var(--rsn-surface-2);
	color: var(--rsn-text-dim);
}
.rsn-pill--mint  { background: var(--rsn-mint); color: var(--rsn-bg); }
.rsn-pill--live  { background: #e63946; color: #fff; animation: rsnLive 1.6s ease-in-out infinite; }

.rsn-divider {
	height: 1px;
	background: var(--rsn-line);
	margin: 3rem 0;
	border: 0;
}

/* ============================================================
   MOVIE POSTERS — used on archive grid and the homepage row
   ============================================================ */
.rsn-grid-movies {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.5rem;
}
.rsn-movie-card {
	display: block;
	background: var(--rsn-surface);
	border-radius: var(--rsn-radius);
	overflow: hidden;
	transition: transform .3s var(--rsn-ease);
	position: relative;
}
.rsn-movie-card:hover { transform: translateY(-4px); }
.rsn-movie-card__poster {
	position: relative;
	aspect-ratio: 2/3;     /* portrait — film-poster proportions */
	overflow: hidden;
}
.rsn-movie-card__poster img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .6s var(--rsn-ease);
}
.rsn-movie-card:hover .rsn-movie-card__poster img { transform: scale(1.06); }
.rsn-movie-card__poster-fill {
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--rsn-display);
	font-size: 3rem;
	color: rgba(255,255,255,0.32);
	text-align: center;
	padding: 1rem;
	letter-spacing: .04em;
}
.rsn-movie-card__year {
	position: absolute;
	top: .65rem; right: .65rem;
	background: rgba(0,0,0,0.78);
	color: var(--rsn-text);
	padding: .2em .6em;
	border-radius: 4px;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .12em;
}
.rsn-movie-card__body {
	padding: .9rem 1rem 1.1rem;
}
.rsn-movie-card__title {
	font-family: var(--rsn-body);
	font-weight: 700;
	font-size: 1.05rem;
	text-transform: none;
	margin: 0 0 .25rem;
	line-height: 1.3;
	color: var(--rsn-text);
}
.rsn-movie-card__meta {
	color: var(--rsn-text-dim);
	font-size: .78rem;
	margin: 0;
	letter-spacing: .03em;
}

/* Compact horizontal poster (used inside scroll rows). */
.rsn-movie-card--compact {
	flex: 0 0 220px;
	scroll-snap-align: start;
}

/* ============================================================
   MOVIE HERO + LAYOUT  (single-rsn_movie.php)
   ============================================================ */
.rsn-movie-hero {
	position: relative;
	min-height: 70vh;
	display: flex;
	align-items: end;
	overflow: hidden;
	padding: 6rem 0 3rem;
}
.rsn-movie-hero__bg { position: absolute; inset: 0; z-index: 0; }
.rsn-movie-hero__bg img,
.rsn-movie-hero__bg .rsn-movie-hero__bg-fill {
	width: 100%; height: 100%; object-fit: cover;
}
.rsn-movie-hero__bg-fill {
	background:
		radial-gradient(circle at 70% 30%, rgba(61, 214, 140, 0.18) 0%, transparent 60%),
		linear-gradient(135deg, #1a1f29 0%, #0a0d12 80%);
}
.rsn-movie-hero__bg::after {
	content: "";
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(10,13,18,.2) 0%, rgba(10,13,18,.8) 75%, var(--rsn-bg) 100%),
		linear-gradient(90deg, rgba(10,13,18,.85) 0%, rgba(10,13,18,0) 60%);
}
.rsn-movie-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 3rem;
	align-items: end;
}
@media (max-width: 800px) {
	.rsn-movie-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
}
.rsn-movie-hero__poster {
	width: 280px;
	aspect-ratio: 2/3;
	border-radius: var(--rsn-radius);
	overflow: hidden;
	box-shadow: var(--rsn-shadow);
	background: var(--rsn-surface);
}
.rsn-movie-hero__poster img,
.rsn-movie-hero__poster .rsn-movie-card__poster-fill {
	width: 100%; height: 100%; object-fit: cover;
}
.rsn-movie-hero__title {
	font-size: clamp(2.4rem, 6vw, 5rem);
	margin-bottom: 1rem;
}
.rsn-movie-hero__info {
	color: var(--rsn-text-dim);
	font-size: .95rem;
	margin-bottom: 1.5rem;
	letter-spacing: .04em;
}
.rsn-movie-hero__info strong {
	color: var(--rsn-mint);
	font-weight: 700;
}
.rsn-movie-hero__excerpt {
	color: var(--rsn-text-dim);
	font-size: 1.1rem;
	max-width: 60ch;
	margin: 0 0 2rem;
}
.rsn-movie-hero__cta {
	display: inline-flex; align-items: center; gap: .65rem;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	padding: .9rem 1.75rem;
	border-radius: var(--rsn-radius-pill);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .85rem;
	transition: transform .2s var(--rsn-ease), box-shadow .2s var(--rsn-ease);
}
.rsn-movie-hero__cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 30px var(--rsn-mint-glow);
	color: var(--rsn-bg);
}
.rsn-movie-hero__cta--secondary {
	background: transparent;
	color: var(--rsn-text);
	border: 1px solid var(--rsn-line-strong);
	margin-left: .5rem;
}
.rsn-movie-hero__cta--secondary:hover {
	border-color: var(--rsn-mint);
	color: var(--rsn-mint);
	box-shadow: none;
}

/* Movie body — synopsis + trailer + cast */
.rsn-movie-body {
	max-width: 900px;
	margin: 4rem auto 0;
}
.rsn-movie-body__synopsis {
	font-size: 1.1rem;
	line-height: 1.75;
	color: var(--rsn-text);
	max-width: 760px;
	margin: 0 auto 4rem;
}
.rsn-movie-body__synopsis p { margin: 0 0 1.5em; }

.rsn-movie-trailer {
	margin: 4rem 0;
}
.rsn-movie-trailer h3 {
	font-family: var(--rsn-body);
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 1rem;
	margin-bottom: 1.25rem;
	color: var(--rsn-mint);
}
/* Player box — clear container, like the music single page. */
.rsn-movie-trailer__box {
	position: relative;
	aspect-ratio: 16/9;
	background: #000;
	border-radius: var(--rsn-radius-lg);
	overflow: hidden;
	border: 1px solid var(--rsn-line);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}
.rsn-movie-trailer__box iframe {
	width: 100%; height: 100%; border: 0; display: block;
}
.rsn-movie-trailer__fallback {
	position: absolute; inset: 0;
	display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	gap: 1rem;
	color: var(--rsn-text-dim);
	background: linear-gradient(135deg, #1a1f2a 0%, #0a0d12 100%);
}
.rsn-movie-trailer__fallback p { margin: 0; font-size: 1rem; }
.rsn-movie-trailer__fallback a {
	color: var(--rsn-mint);
	text-decoration: none;
	font-weight: 600;
	border: 1px solid var(--rsn-mint);
	border-radius: 4px;
	padding: .5rem 1rem;
	transition: background .15s;
}
.rsn-movie-trailer__fallback a:hover { background: rgba(61, 214, 140, 0.1); }

.rsn-movie-cast {
	margin: 4rem 0;
}
.rsn-movie-cast h3 {
	font-family: var(--rsn-body);
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 1rem;
	color: var(--rsn-mint);
	margin-bottom: 1.5rem;
}

/* Genre filter chips on the movies archive */
.rsn-genre-filter {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}
.rsn-genre-filter a {
	display: inline-block;
	padding: .35em .9em;
	border-radius: var(--rsn-radius-pill);
	background: var(--rsn-surface-2);
	border: 1px solid var(--rsn-line);
	color: var(--rsn-text-dim);
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	transition: border-color .15s var(--rsn-ease), color .15s var(--rsn-ease);
}
.rsn-genre-filter a:hover,
.rsn-genre-filter a.is-active {
	border-color: var(--rsn-mint);
	color: var(--rsn-mint);
}

/* ============================================================
   MOVIES ARCHIVE HERO — Netflix-style
   Big cinematic backdrop, heavy left-to-right gradient so overlaid text
   stays readable, mint-accented eyebrow, and Play / More info CTAs
   when a featured movie is set.
   ============================================================ */
.rsn-movies-hero {
	position: relative;
	min-height: 70vh;
	display: flex;
	align-items: center;
	padding: 6rem 0 5rem;
	overflow: hidden;
}
.rsn-movies-hero__bg {
	position: absolute; inset: 0; z-index: 0;
}
/* No image — fall back to a generated mint/yellow gradient backdrop. */
.rsn-movies-hero:not(.has-image) .rsn-movies-hero__bg {
	background:
		radial-gradient(circle at 30% 30%, rgba(61, 214, 140, 0.22) 0%, transparent 60%),
		radial-gradient(circle at 80% 70%, rgba(255, 210, 63, 0.10) 0%, transparent 60%),
		linear-gradient(135deg, #1d2236 0%, #0a0d12 80%);
}
.rsn-movies-hero__bg img {
	width: 100%; height: 100%;
	object-fit: cover;
}
/* Netflix-style heavy left-side gradient + bottom fade. */
.rsn-movies-hero__bg::after {
	content: "";
	position: absolute; inset: 0;
	background:
		linear-gradient(90deg,
			rgba(10,13,18,.95) 0%,
			rgba(10,13,18,.78) 32%,
			rgba(10,13,18,.32) 60%,
			rgba(10,13,18,.05) 100%),
		linear-gradient(180deg,
			rgba(10,13,18,.15) 0%,
			rgba(10,13,18,0)  35%,
			rgba(10,13,18,.55) 80%,
			var(--rsn-bg) 100%);
}

.rsn-movies-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 720px;
}

.rsn-movies-hero__eyebrow {
	display: inline-block;
	margin-bottom: 1.25rem;
}

/* Mode A — text headline */
.rsn-movies-hero__headline {
	font-size: clamp(2.4rem, 5.5vw, 4.2rem);
	margin: 0;
	line-height: 1;
}
.rsn-movies-hero__headline em {
	font-style: normal;
	color: var(--rsn-mint);
}

/* Mode B — featured movie title (bigger, heavier, higher contrast) */
.rsn-movies-hero__headline--featured {
	font-size: clamp(2.8rem, 7vw, 5.5rem);
	letter-spacing: -.005em;
	text-shadow: 0 4px 30px rgba(0,0,0,0.65);
}

/* Meta chips under the title */
.rsn-movies-hero__chips {
	display: flex;
	gap: 1.4rem;
	flex-wrap: wrap;
	margin: 1.25rem 0 1rem;
	color: var(--rsn-text-dim);
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .02em;
}
.rsn-movies-hero__chips span {
	position: relative;
	padding-right: 1.4rem;
}
.rsn-movies-hero__chips span:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 4px; height: 4px;
	background: var(--rsn-mint);
	border-radius: 50%;
	transform: translateY(-50%);
}
.rsn-movies-hero__chips span:last-child { padding-right: 0; }

/* Subline — description / synopsis */
.rsn-movies-hero__sub {
	color: var(--rsn-text-dim);
	font-size: 1.05rem;
	max-width: 60ch;
	margin: 1rem 0 0;
	line-height: 1.55;
}
.rsn-movies-hero__sub--featured {
	font-size: 1.15rem;
	color: var(--rsn-text);
	max-width: 56ch;
	text-shadow: 0 2px 10px rgba(0,0,0,0.5);
	margin: 0 0 2rem;
}

/* Play / More info CTAs */
.rsn-movies-hero__ctas {
	display: flex;
	gap: .85rem;
	flex-wrap: wrap;
	margin-top: 1.5rem;
}
.rsn-movies-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	padding: .9rem 1.85rem;
	border-radius: 6px;
	font-weight: 800;
	font-size: .95rem;
	letter-spacing: .02em;
	transition: transform .2s var(--rsn-ease), background .2s var(--rsn-ease), color .2s var(--rsn-ease);
}
.rsn-movies-hero__cta--primary {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
}
.rsn-movies-hero__cta--primary:hover {
	background: #5fe5a3;
	color: var(--rsn-bg);
	transform: translateY(-1px);
}
.rsn-movies-hero__cta--secondary {
	background: rgba(110, 110, 110, 0.55);
	color: var(--rsn-text);
	backdrop-filter: blur(4px);
}
.rsn-movies-hero__cta--secondary:hover {
	background: rgba(140, 140, 140, 0.75);
	color: var(--rsn-text);
	transform: translateY(-1px);
}
.rsn-movies-hero__cta svg {
	flex-shrink: 0;
}

@media (max-width: 700px) {
	.rsn-movies-hero { min-height: 55vh; padding: 4rem 0 3rem; }
	.rsn-movies-hero__chips { gap: 1rem; font-size: .85rem; }
	.rsn-movies-hero__chips span { padding-right: 1rem; }
}

/* ============================================================
   EPISODE TYPE CHIPS
   ============================================================ */
.rsn-ep-chip {
	display: inline-block;
	padding: .22em .65em;
	border-radius: 999px;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	white-space: nowrap;
	vertical-align: middle;
}
.rsn-ep-chip--eviction   { background: #ff5757; color: #fff; }
.rsn-ep-chip--highlights { background: var(--rsn-mint); color: var(--rsn-bg); }
.rsn-ep-chip--special    { background: #ffd23f; color: #1a1a1a; }
.rsn-ep-chip--house_tour { background: #6a9bff; color: #fff; }

/* On dark cards, chips sit at top-right of the thumb */
.rsn-episode-card__thumb .rsn-ep-chip,
.rsn-episode-row__thumb .rsn-ep-chip {
	position: absolute;
	top: 8px; right: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.35);
}

.rsn-episode-hero__pills {
	display: flex;
	gap: .5rem;
	align-items: center;
	margin-bottom: .5rem;
}

/* ============================================================
   MUSIC PAGE — chart, hero, podium, grid, submission form
   ============================================================ */

/* ----- Music hero — full-bleed cinematic backdrop -------------- */
.rsn-music-hero {
	position: relative;
	min-height: 64vh;
	padding: 6rem 0 4rem;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.rsn-music-hero__bg { position: absolute; inset: 0; z-index: 0; }
.rsn-music-hero__bg img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: blur(50px) saturate(1.5) brightness(.6);
	transform: scale(1.2);
}
.rsn-music-hero__bg::before,
.rsn-music-hero__bg::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
}
/* Soft mint glow + magenta highlight when no backdrop image is set */
.rsn-music-hero__bg:empty,
.rsn-music-hero__bg:not(:has(img)) {
	background:
		radial-gradient(circle at 18% 28%, rgba(61, 214, 140, 0.45) 0%, transparent 55%),
		radial-gradient(circle at 82% 72%, rgba(255, 84, 175, 0.35) 0%, transparent 55%),
		linear-gradient(135deg, #1a0d2e 0%, #0a0d12 80%);
}
.rsn-music-hero__bg::after {
	background:
		linear-gradient(180deg, rgba(10,13,18,.45) 0%, rgba(10,13,18,.85) 70%, var(--rsn-bg) 100%);
}
/* Subtle mint accent glow over the top of the hero */
.rsn-music-hero__bg::before {
	background: radial-gradient(ellipse at 70% 0%, rgba(61, 214, 140, 0.18) 0%, transparent 55%);
	mix-blend-mode: screen;
}

.rsn-music-hero__inner {
	position: relative; z-index: 1;
	max-width: 760px;
}
.rsn-music-hero__eyebrow { display: inline-block; margin-bottom: 1.5rem; }
.rsn-music-hero__headline {
	font-size: clamp(3rem, 7vw, 6rem);
	margin: 0 0 1.25rem;
	line-height: 1;
	letter-spacing: -.01em;
}
.rsn-music-hero__sub {
	color: var(--rsn-text-dim);
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	max-width: 60ch;
	margin: 0 0 2rem;
	line-height: 1.55;
}
.rsn-music-hero__meta {
	display: flex; gap: 1rem; flex-wrap: wrap; align-items: center;
}
.rsn-music-hero__week-pill {
	display: inline-flex; align-items: center; gap: .5rem;
	color: var(--rsn-bg);
	background: var(--rsn-mint);
	font-weight: 800; font-size: .82rem;
	letter-spacing: .14em; text-transform: uppercase;
	padding: .55rem 1rem;
	border-radius: 4px;
}
.rsn-music-hero__week-pill::before {
	content: ""; display: inline-block;
	width: 8px; height: 8px;
	background: var(--rsn-bg); border-radius: 50%;
	animation: rsn-pulse 1.6s ease-in-out infinite;
}
@keyframes rsn-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50%      { transform: scale(1.4); opacity: .55; }
}
.rsn-music-hero__count {
	color: var(--rsn-text-dim);
	font-size: .85rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}

/* ----- Section heads (used inside both podium and grid sections) ----- */
.rsn-music-section-head {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin-bottom: 2.5rem;
}
.rsn-music-section-head__eyebrow {
	color: var(--rsn-mint);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}

/* ----- Empty state ----- */
.rsn-music-empty {
	text-align: center;
	padding: 5rem 2rem;
	border: 1px dashed var(--rsn-line);
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(61, 214, 140, 0.04) 0%, transparent 100%);
}
.rsn-music-empty h2 { margin: 0 0 1rem; font-size: 2rem; }
.rsn-music-empty p { color: var(--rsn-text-dim); max-width: 50ch; margin: 0 auto 2rem; }
.rsn-music-empty__cta {
	display: inline-block;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	padding: .85rem 1.85rem;
	border-radius: 8px;
	text-decoration: none;
}

/* ============================================================
   PODIUM — Top 3
   Display order: #2 (left), #1 (centre, larger), #3 (right)
   ============================================================ */
.rsn-music-podium-section {
	position: relative;
	overflow: hidden;
}
.rsn-music-podium {
	display: grid;
	grid-template-columns: 1fr 1.15fr 1fr;
	gap: 1.5rem;
	align-items: end;
}
.rsn-music-podium__card {
	position: relative;
	display: flex;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
	border-radius: 16px;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	overflow: hidden;
	transition: transform .35s var(--rsn-ease), box-shadow .35s var(--rsn-ease);
}
.rsn-music-podium__card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 48px rgba(0, 0, 0, 0.4);
}
.rsn-music-podium__card--1 {
	background: linear-gradient(180deg, rgba(61, 214, 140, 0.12) 0%, var(--rsn-surface) 100%);
	border-color: rgba(61, 214, 140, 0.45);
	box-shadow: 0 0 60px rgba(61, 214, 140, 0.18);
}

/* Massive rank number bleeding behind the poster */
.rsn-music-podium__rank {
	position: absolute;
	top: 0; left: 0;
	z-index: 3;
	padding: 1.25rem 1.4rem .85rem;
	display: flex;
	align-items: baseline;
	gap: .35rem;
	pointer-events: none;
}
.rsn-music-podium__rank-num {
	font-family: var(--rsn-display);
	font-size: clamp(3.5rem, 7vw, 5rem);
	line-height: .85;
	color: var(--rsn-text);
	letter-spacing: -.02em;
	text-shadow: 0 4px 16px rgba(0, 0, 0, 0.7);
}
.rsn-music-podium__card--1 .rsn-music-podium__rank-num {
	color: var(--rsn-mint);
	font-size: clamp(4.5rem, 9vw, 7rem);
}
.rsn-music-podium__rank-crown {
	font-size: 1.5rem;
	color: var(--rsn-yellow);
	text-shadow: 0 2px 12px rgba(255, 210, 63, 0.6);
}

.rsn-music-podium__poster {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: #000;
}
.rsn-music-podium__poster img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .5s var(--rsn-ease);
}
.rsn-music-podium__card:hover .rsn-music-podium__poster img { transform: scale(1.06); }

.rsn-music-podium__poster::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.6) 100%);
}
.rsn-music-podium__play {
	position: absolute;
	bottom: 1rem; right: 1rem;
	z-index: 1;
	width: 56px; height: 56px;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .25s var(--rsn-ease);
	box-shadow: 0 8px 24px rgba(61, 214, 140, 0.4);
}
.rsn-music-podium__card:hover .rsn-music-podium__play {
	transform: scale(1.12);
}
.rsn-music-podium__play svg { display: block; transform: translateX(2px); }

.rsn-music-podium__body {
	padding: 1.5rem 1.5rem 1.75rem;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}
.rsn-music-podium__title {
	font-family: var(--rsn-body);
	font-weight: 800;
	font-size: clamp(1.1rem, 1.6vw, 1.35rem);
	margin: 0;
	color: var(--rsn-text);
	text-transform: none;
	letter-spacing: -.005em;
	line-height: 1.2;
}
.rsn-music-podium__card--1 .rsn-music-podium__title {
	font-size: clamp(1.4rem, 2vw, 1.7rem);
}
.rsn-music-podium__artist {
	color: var(--rsn-text-dim);
	font-size: .95rem;
	margin: 0;
}
.rsn-music-podium__stats {
	margin-top: .65rem;
	padding-top: .85rem;
	border-top: 1px solid var(--rsn-line);
	display: flex;
	align-items: baseline;
	gap: .5rem;
}
.rsn-music-podium__stats strong {
	color: var(--rsn-mint);
	font-size: 1.45rem;
	font-weight: 800;
}
.rsn-music-podium__stats span {
	color: var(--rsn-text-mute);
	font-size: .8rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}

@media (max-width: 800px) {
	.rsn-music-podium { grid-template-columns: 1fr; gap: 1.25rem; }
	.rsn-music-podium__card--1 { order: -1; } /* #1 always first on mobile */
}

/* ============================================================
   POSTER GRID — #4 onwards
   ============================================================ */
.rsn-music-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.75rem 1.5rem;
}
.rsn-music-card {
	display: flex;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
	transition: transform .25s var(--rsn-ease);
}
.rsn-music-card:hover { transform: translateY(-4px); }

.rsn-music-card__poster {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	border-radius: 10px;
	background: #000;
	box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.rsn-music-card__poster img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .5s var(--rsn-ease), filter .25s var(--rsn-ease);
}
.rsn-music-card:hover .rsn-music-card__poster img {
	transform: scale(1.06);
	filter: brightness(1.05);
}
.rsn-music-card__poster::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.7) 100%);
	pointer-events: none;
}
.rsn-music-card__rank {
	position: absolute;
	top: .65rem; left: .65rem;
	z-index: 1;
	font-family: var(--rsn-display);
	font-size: 1.4rem;
	color: var(--rsn-text);
	background: rgba(0,0,0,0.78);
	padding: .15rem .55rem;
	border-radius: 4px;
	letter-spacing: .04em;
	backdrop-filter: blur(6px);
}
.rsn-music-card__play {
	position: absolute;
	bottom: .85rem; right: .85rem;
	z-index: 1;
	color: var(--rsn-mint);
	font-size: 1.05rem;
	background: rgba(0,0,0,0.78);
	width: 36px; height: 36px;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .25s var(--rsn-ease), transform .25s var(--rsn-ease);
}
.rsn-music-card:hover .rsn-music-card__play {
	opacity: 1;
	transform: translateY(0);
}

.rsn-music-card__body {
	padding: .85rem .15rem 0;
}
.rsn-music-card__title {
	font-family: var(--rsn-body);
	font-weight: 700;
	font-size: 1rem;
	margin: 0;
	color: var(--rsn-text);
	text-transform: none;
	line-height: 1.3;
	/* Single line truncation */
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.rsn-music-card__artist {
	color: var(--rsn-text-dim);
	font-size: .85rem;
	margin: .15rem 0 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.rsn-music-card__stats {
	margin: .5rem 0 0;
	display: flex;
	align-items: baseline;
	gap: .35rem;
}
.rsn-music-card__stats strong {
	color: var(--rsn-mint);
	font-weight: 800;
	font-size: 1.05rem;
}
.rsn-music-card__stats span {
	color: var(--rsn-text-mute);
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}

@media (max-width: 500px) {
	.rsn-music-grid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem .85rem; }
	.rsn-music-card__rank { font-size: 1.1rem; padding: .1rem .45rem; }
}

/* ============================================================
   SUBMISSION FORM v2 — split layout with mint accent strip
   ============================================================ */
.rsn-music-submit-v2 {
	position: relative;
	padding: 6rem 0 4rem;
	margin-top: 3rem;
}
.rsn-music-submit-v2::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0; height: 1px;
	background: linear-gradient(90deg, transparent 0%, var(--rsn-mint) 50%, transparent 100%);
	opacity: .35;
}
.rsn-music-submit-v2__inner {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 3rem;
	max-width: 1100px;
	margin: 0 auto;
	align-items: stretch;
}
.rsn-music-submit-v2__hero {
	border-radius: 16px;
	background:
		radial-gradient(circle at 30% 20%, rgba(61, 214, 140, 0.35) 0%, transparent 55%),
		radial-gradient(circle at 70% 80%, rgba(255, 84, 175, 0.25) 0%, transparent 55%),
		linear-gradient(135deg, #1a0d2e 0%, #0a0d12 80%);
	position: relative;
	overflow: hidden;
	min-height: 320px;
}
.rsn-music-submit-v2__hero::after {
	content: "♪";
	position: absolute;
	inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-size: 8rem;
	color: var(--rsn-mint);
	opacity: .3;
	font-family: var(--rsn-display);
}

.rsn-music-submit-v2__content {
	display: flex;
	flex-direction: column;
}
.rsn-music-submit-v2__eyebrow {
	color: var(--rsn-mint);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}
.rsn-music-submit-v2__content h2 {
	font-size: clamp(2rem, 3.5vw, 2.6rem);
	margin: 0 0 1rem;
}
.rsn-music-submit-v2__intro {
	color: var(--rsn-text-dim);
	line-height: 1.6;
	margin: 0 0 2rem;
}

@media (max-width: 800px) {
	.rsn-music-submit-v2__inner { grid-template-columns: 1fr; gap: 2rem; }
	.rsn-music-submit-v2__hero { min-height: 180px; }
}

/* ============================================================
   FORM FIELDS (used both in submit-v2 and any future forms)
   ============================================================ */
.rsn-music-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.rsn-music-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
}
@media (max-width: 600px) { .rsn-music-form__row { grid-template-columns: 1fr; } }

.rsn-music-form label {
	display: flex;
	flex-direction: column;
	gap: .45rem;
}
.rsn-music-form label span {
	color: var(--rsn-text-dim);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .04em;
}
.rsn-music-form label span em {
	font-style: normal;
	color: var(--rsn-mint);
	margin-left: .25rem;
}
.rsn-music-form input,
.rsn-music-form select,
.rsn-music-form textarea {
	background: var(--rsn-bg);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	padding: .85rem 1rem;
	color: var(--rsn-text);
	font-family: inherit;
	font-size: 1rem;
	transition: border-color .15s, background .15s, box-shadow .15s;
}
.rsn-music-form input:focus,
.rsn-music-form select:focus,
.rsn-music-form textarea:focus {
	outline: none;
	border-color: var(--rsn-mint);
	background: rgba(255,255,255,0.02);
	box-shadow: 0 0 0 3px rgba(61, 214, 140, 0.15);
}
.rsn-music-form textarea { resize: vertical; min-height: 100px; line-height: 1.5; }

.rsn-music-form__honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px; overflow: hidden;
}

.rsn-music-form__submit {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	letter-spacing: .04em;
	padding: 1.05rem 1.75rem;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	font-size: 1rem;
	margin-top: .5rem;
	transition: transform .15s, background .15s, box-shadow .15s;
	align-self: flex-start;
}
.rsn-music-form__submit:hover {
	background: #5fe5a3;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(61, 214, 140, 0.3);
}
.rsn-music-form__submit:disabled { opacity: .55; cursor: not-allowed; transform: none; }

.rsn-music-form__status {
	margin: 0;
	color: var(--rsn-text-dim);
	font-size: .92rem;
	min-height: 1.4em;
}
.rsn-music-form__status[data-tone="success"] { color: var(--rsn-mint); font-weight: 600; }
.rsn-music-form__status[data-tone="error"]   { color: #ff6b6b; font-weight: 600; }

/* ============================================================
   SINGLE MUSIC VIDEO PAGE
   ============================================================ */
.rsn-music-single {
	padding: 3rem 0 5rem;
}
.rsn-music-single__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 2.5rem;
	align-items: start;
	margin-top: 2rem;
}
@media (max-width: 900px) {
	.rsn-music-single__grid { grid-template-columns: 1fr; }
}
.rsn-music-single__player {
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: var(--rsn-radius);
	overflow: hidden;
}
.rsn-music-single__player iframe {
	width: 100%; height: 100%; border: 0; display: block;
}

.rsn-music-single__rank {
	color: var(--rsn-mint);
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.rsn-music-single__title {
	font-size: clamp(1.8rem, 3.5vw, 2.6rem);
	margin: .5rem 0;
	line-height: 1.1;
}
.rsn-music-single__artist {
	color: var(--rsn-text-dim);
	font-size: 1.15rem;
	margin: 0 0 1.5rem;
}
.rsn-music-single__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 1rem;
	padding: 1.25rem;
	background: rgba(255,255,255,0.03);
	border: 1px solid var(--rsn-line);
	border-radius: var(--rsn-radius);
	margin: 0 0 1.5rem;
}
.rsn-music-single__stats > div { display: flex; flex-direction: column; gap: .15rem; }
.rsn-music-single__stats dt {
	color: var(--rsn-text-mute);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.rsn-music-single__stats dd {
	color: var(--rsn-text);
	font-size: 1rem;
	margin: 0;
	font-weight: 600;
}
.rsn-music-single__desc {
	color: var(--rsn-text-dim);
	line-height: 1.7;
	margin-bottom: 2rem;
}
.rsn-music-single__back {
	color: var(--rsn-mint);
	font-weight: 600;
	text-decoration: none;
}
.rsn-music-single__back:hover { text-decoration: underline; }

/* ============================================================
   FAQ PAGE
   ============================================================ */
.rsn-faq-hero {
	padding: 4rem 0 3rem;
	background:
		radial-gradient(circle at 20% 30%, rgba(61, 214, 140, 0.18) 0%, transparent 55%),
		radial-gradient(circle at 80% 70%, rgba(61, 214, 140, 0.10) 0%, transparent 55%),
		linear-gradient(135deg, #0e1a2a 0%, #0a0d12 100%);
}
.rsn-faq-hero__headline {
	font-size: clamp(2.5rem, 5vw, 4rem);
	margin: 1rem 0;
	line-height: 1.1;
}
.rsn-faq-hero__sub {
	color: var(--rsn-text-dim);
	font-size: 1.1rem;
	max-width: 60ch;
	margin: 0;
}
.rsn-faq-hero__sub a { color: var(--rsn-mint); }

.rsn-faq {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}
.rsn-faq__group-title {
	font-family: var(--rsn-display);
	font-size: 1.85rem;
	margin: 0 0 1.25rem;
	padding-bottom: .65rem;
	border-bottom: 1px solid var(--rsn-line);
	color: var(--rsn-text);
}
.rsn-faq__item {
	border-bottom: 1px solid var(--rsn-line);
	padding: 0;
}
.rsn-faq__item[open] { background: rgba(61, 214, 140, 0.03); }
.rsn-faq__question {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.15rem 1.15rem 1.15rem 0;
	cursor: pointer;
	list-style: none;
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--rsn-text);
	transition: color .15s;
}
.rsn-faq__question::-webkit-details-marker { display: none; }
.rsn-faq__question:hover { color: var(--rsn-mint); }
.rsn-faq__chevron {
	color: var(--rsn-text-dim);
	transition: transform .25s var(--rsn-ease);
	flex-shrink: 0;
}
.rsn-faq__item[open] .rsn-faq__chevron { transform: rotate(180deg); color: var(--rsn-mint); }
.rsn-faq__answer {
	padding: 0 1.15rem 1.5rem 0;
	color: var(--rsn-text-dim);
	line-height: 1.7;
	max-width: 70ch;
}
.rsn-faq__answer p { margin: 0 0 1em; }
.rsn-faq__answer p:last-child { margin-bottom: 0; }
.rsn-faq__answer a { color: var(--rsn-mint); }


/* ============================================================
   FORUM
   ============================================================ */
.rsn-forum-hero {
	padding: 4rem 0 3rem;
	background:
		radial-gradient(circle at 20% 30%, rgba(255, 84, 175, 0.22) 0%, transparent 55%),
		radial-gradient(circle at 80% 70%, rgba(61, 214, 140, 0.18) 0%, transparent 55%),
		linear-gradient(135deg, #1a0d2e 0%, #0a0d12 80%);
}
.rsn-forum-hero__headline {
	font-size: clamp(2.5rem, 5vw, 4rem);
	margin: 1rem 0;
	line-height: 1.1;
}
.rsn-forum-hero__sub {
	color: var(--rsn-text-dim);
	font-size: 1.05rem;
	max-width: 60ch;
	margin: 0 0 1.85rem;
}
.rsn-forum-hero__cta {
	display: inline-block;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	letter-spacing: .04em;
	padding: .85rem 1.85rem;
	border-radius: 8px;
	text-decoration: none;
	transition: transform .15s, background .15s;
}
.rsn-forum-hero__cta:hover { background: #5fe5a3; transform: translateY(-1px); }

/* Forum category cards */
.rsn-forum-cats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.25rem;
}
.rsn-forum-cat {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 10px;
	padding: 1.5rem;
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	transition: transform .2s var(--rsn-ease), border-color .2s;
}
.rsn-forum-cat:hover {
	transform: translateY(-3px);
	border-color: var(--rsn-mint);
}
.rsn-forum-cat__name {
	margin: 0;
	font-family: var(--rsn-body);
	font-weight: 700;
	font-size: 1.2rem;
	color: var(--rsn-text);
	text-transform: none;
}
.rsn-forum-cat__desc {
	color: var(--rsn-text-dim);
	font-size: .9rem;
	line-height: 1.5;
	margin: 0;
}
.rsn-forum-cat__count {
	margin: auto 0 0;
	color: var(--rsn-text-dim);
	font-size: .85rem;
}
.rsn-forum-cat__count strong {
	color: var(--rsn-mint);
	font-size: 1.05rem;
	margin-right: .25rem;
}

/* Forum topic list */
.rsn-forum-topics {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.rsn-forum-topic {
	display: grid;
	grid-template-columns: 56px 1fr auto;
	gap: 1rem;
	align-items: center;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	padding: 1rem;
	transition: border-color .15s;
}
.rsn-forum-topic:hover { border-color: var(--rsn-mint); }
.rsn-forum-topic__avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: block;
}
.rsn-forum-topic__main {
	min-width: 0;
}
.rsn-forum-topic__title {
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--rsn-text);
	text-decoration: none;
	display: block;
	margin: 0 0 .25rem;
	line-height: 1.3;
}
.rsn-forum-topic__title:hover { color: var(--rsn-mint); }
.rsn-forum-topic__meta {
	margin: 0;
	color: var(--rsn-text-dim);
	font-size: .85rem;
}
.rsn-forum-topic__cat {
	color: var(--rsn-mint);
	font-weight: 600;
}
.rsn-forum-topic__stats {
	text-align: right;
	min-width: 70px;
}
.rsn-forum-topic__stats strong {
	display: block;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--rsn-mint);
	line-height: 1;
}
.rsn-forum-topic__stats span {
	display: block;
	font-size: .72rem;
	color: var(--rsn-text-mute);
	letter-spacing: .12em;
	text-transform: uppercase;
	margin-top: .25rem;
}

@media (max-width: 600px) {
	.rsn-forum-topic { grid-template-columns: 44px 1fr auto; gap: .75rem; padding: .85rem; }
	.rsn-forum-topic__avatar { width: 36px; height: 36px; }
}

/* New topic form */
.rsn-forum-newtopic {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 12px;
	padding: 2rem;
	max-width: 720px;
	margin: 0 auto;
}
.rsn-forum-newtopic h2 {
	margin: 0 0 1.5rem;
	font-size: 1.6rem;
}
.rsn-forum-newtopic__field {
	display: flex;
	flex-direction: column;
	gap: .45rem;
	margin-bottom: 1.25rem;
}
.rsn-forum-newtopic__field span {
	color: var(--rsn-text-dim);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .04em;
}
.rsn-forum-newtopic__field span em {
	font-style: normal;
	color: var(--rsn-mint);
	margin-left: .25rem;
}
.rsn-forum-newtopic input,
.rsn-forum-newtopic select,
.rsn-forum-newtopic textarea {
	background: var(--rsn-bg);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	padding: .75rem .9rem;
	color: var(--rsn-text);
	font-family: inherit;
	font-size: 1rem;
}
.rsn-forum-newtopic textarea { resize: vertical; min-height: 140px; line-height: 1.5; }
.rsn-forum-newtopic__actions {
	display: flex;
	gap: 1rem;
	align-items: center;
	margin-top: .5rem;
}
.rsn-forum-newtopic__submit {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	letter-spacing: .04em;
	padding: .85rem 1.5rem;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	font-size: 1rem;
}
.rsn-forum-newtopic__submit:hover { background: #5fe5a3; }
.rsn-forum-newtopic__cancel {
	color: var(--rsn-text-dim);
	text-decoration: none;
	font-weight: 600;
}
.rsn-forum-newtopic__error {
	background: rgba(255, 87, 87, 0.1);
	border-left: 3px solid #ff5757;
	padding: .75rem 1rem;
	border-radius: 0 4px 4px 0;
	margin: 0 0 1.5rem;
	color: #ff8585;
	font-size: .92rem;
}

/* Single forum topic */
.rsn-forum-single {
	padding: 2.5rem 0 4rem;
}
.rsn-forum-single__title {
	font-size: clamp(1.85rem, 3.5vw, 2.6rem);
	margin: 1rem 0 2rem;
	line-height: 1.15;
}
.rsn-forum-single__topic {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 1.25rem;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-mint);
	border-radius: 12px;
	padding: 1.5rem;
	margin-bottom: 2rem;
}
.rsn-forum-single__avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: block;
}
.rsn-forum-single__byline {
	margin: 0 0 .85rem;
	color: var(--rsn-text-dim);
	font-size: .9rem;
}
.rsn-forum-single__content {
	color: var(--rsn-text);
	line-height: 1.7;
}
.rsn-forum-single__content p { margin: 0 0 1em; }
.rsn-forum-single__content p:last-child { margin-bottom: 0; }
.rsn-forum-single__replies-title {
	font-family: var(--rsn-body);
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .9rem;
	color: var(--rsn-mint);
	margin: 0 0 1.25rem;
}
.rsn-forum-single__noreplies {
	color: var(--rsn-text-dim);
	padding: 1rem 0;
}

/* Forum replies */
.rsn-forum-replies {
	list-style: none;
	padding: 0;
	margin: 0 0 2.5rem;
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.rsn-forum-replies .children {
	list-style: none;
	margin-top: .75rem;
	margin-left: 1.5rem;
	padding-left: 1.25rem;
	border-left: 2px solid var(--rsn-line);
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.rsn-forum-reply {
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: 1rem;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	padding: 1.15rem;
}
.rsn-forum-reply__avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: block;
}
.rsn-forum-reply__byline {
	margin: 0 0 .5rem;
	color: var(--rsn-text);
}
.rsn-forum-reply__time { color: var(--rsn-text-dim); font-weight: normal; font-size: .85rem; }
.rsn-forum-reply__content {
	color: var(--rsn-text);
	line-height: 1.6;
}
.rsn-forum-reply__content p { margin: 0 0 .85em; }
.rsn-forum-reply__content p:last-child { margin-bottom: 0; }
.rsn-forum-reply__pending {
	color: #ffd23f;
	font-size: .85rem;
	display: block;
	margin-bottom: .5rem;
}
.rsn-forum-reply__actions {
	margin-top: .65rem;
}
.rsn-forum-reply__actions a {
	color: var(--rsn-mint);
	font-size: .85rem;
	text-decoration: none;
	font-weight: 600;
}
.rsn-forum-reply__actions a:hover { text-decoration: underline; }

/* Reply form */
.rsn-forum-single__reply-form {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 12px;
	padding: 1.5rem;
}
.rsn-forum-single__reply-form #reply-title,
.rsn-forum-single__reply-form .comment-reply-title {
	font-size: 1.2rem;
	margin: 0 0 1rem;
}
.rsn-forum-single__reply-form .comment-reply-title small a { color: var(--rsn-text-dim); font-size: .85rem; margin-left: .5rem; }
.rsn-forum-reply__field {
	display: flex;
	flex-direction: column;
	gap: .45rem;
	margin-bottom: 1rem;
}
.rsn-forum-reply__field span {
	color: var(--rsn-text-dim);
	font-size: .82rem;
	font-weight: 600;
}
.rsn-forum-reply__field textarea {
	background: var(--rsn-bg);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	padding: .75rem .9rem;
	color: var(--rsn-text);
	font-family: inherit;
	font-size: 1rem;
	resize: vertical;
}
.rsn-forum-single__reply-form .form-submit {
	margin: 0;
}
.rsn-forum-single__reply-form .submit,
.rsn-forum-reply__submit {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	letter-spacing: .04em;
	padding: .75rem 1.5rem;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	font-size: 1rem;
}
.rsn-forum-single__reply-form .submit:hover { background: #5fe5a3; }
.rsn-forum-mustlogin a { color: var(--rsn-mint); font-weight: 600; }
.rsn-forum-single__closed {
	color: var(--rsn-text-dim);
	padding: 1rem 0;
	margin: 0;
}

@media (max-width: 600px) {
	.rsn-forum-single__topic { grid-template-columns: 1fr; }
	.rsn-forum-single__avatar-wrap img { width: 44px; height: 44px; }
	.rsn-forum-reply { grid-template-columns: 44px 1fr; gap: .75rem; padding: .85rem; }
	.rsn-forum-reply__avatar { width: 36px; height: 36px; }
}

/* ============================================================
   AGE RATING BADGES — BBFC-style colour codes
   ============================================================ */
.rsn-age-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--rsn-body);
	font-weight: 800;
	font-size: .72rem;
	letter-spacing: .04em;
	min-width: 1.85em;
	height: 1.85em;
	padding: 0 .35em;
	border-radius: 4px;
	color: #fff;
	margin-left: .5em;
	vertical-align: middle;
	line-height: 1;
}
.rsn-age-badge--u  { background: #1fa86a; }
.rsn-age-badge--pg { background: #ffd23f; color: #1a1a1a; }
.rsn-age-badge--12 { background: #f7a526; }
.rsn-age-badge--15 { background: #ec5b2c; }
.rsn-age-badge--18 { background: #d12d2d; }

.rsn-movie-card__age {
	position: absolute;
	bottom: .65rem; left: .65rem;
	z-index: 2;
}
.rsn-movie-card__age .rsn-age-badge {
	margin-left: 0;
	font-size: .68rem;
	box-shadow: 0 2px 6px rgba(0,0,0,0.35);
}

.rsn-movie-hero__title .rsn-age-badge {
	font-size: .58em;
	margin-left: .65em;
	transform: translateY(-.18em);
}


/* ============================================================
   VERIFIED TICK
   ============================================================ */
.rsn-verified-tick {
	display: inline-flex;
	align-items: center;
	color: var(--rsn-mint);
	margin-left: .35em;
	vertical-align: -.18em;
	flex-shrink: 0;
}
.rsn-verified-tick svg { display: block; }


/* ============================================================
   FORUM — refreshed visual cards
   ============================================================ */

/* Topic rows — boxier with category tag */
.rsn-forum-topic {
	background: linear-gradient(180deg, rgba(255,255,255,0.02) 0%, transparent 100%), var(--rsn-surface);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	transition: transform .18s var(--rsn-ease), border-color .18s, box-shadow .18s;
}
.rsn-forum-topic:hover {
	transform: translateY(-2px);
	border-color: rgba(61, 214, 140, 0.5);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}
.rsn-forum-topic__title { font-size: 1.08rem; }
.rsn-forum-topic__cat {
	display: inline-block;
	background: rgba(61, 214, 140, 0.12);
	color: var(--rsn-mint);
	padding: .15em .55em;
	border-radius: 4px;
	font-size: .72rem;
	letter-spacing: .04em;
	font-weight: 700;
	margin: 0 .15em;
	vertical-align: middle;
	text-transform: uppercase;
}

/* Forum hero gets a "stats strip" feel */
.rsn-forum-hero {
	padding: 5rem 0 3.5rem;
}
.rsn-forum-hero__cta {
	box-shadow: 0 4px 16px rgba(61, 214, 140, 0.3);
}

/* Category cards — bigger feel */
.rsn-forum-cat {
	padding: 1.85rem;
	min-height: 160px;
}
.rsn-forum-cat__name { font-size: 1.3rem; }

/* Single topic — original post stands out */
.rsn-forum-single__topic {
	background: linear-gradient(135deg, rgba(61, 214, 140, 0.08) 0%, rgba(255,255,255,0.02) 100%);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}

/* Reply cards */
.rsn-forum-reply {
	transition: border-color .15s;
}
.rsn-forum-reply:hover {
	border-color: rgba(61, 214, 140, 0.35);
}


/* ============================================================
   PROFILE PAGE
   ============================================================ */
.rsn-profile {
	padding: 3rem 0 5rem;
	background:
		radial-gradient(circle at 50% 0%, rgba(61, 214, 140, 0.08) 0%, transparent 50%);
}
.rsn-profile__header {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2rem;
	align-items: center;
	margin: 1.5rem 0 2.5rem;
	padding: 2rem;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 16px;
}
.rsn-profile__avatar img {
	width: 128px;
	height: 128px;
	border-radius: 50%;
	display: block;
	border: 3px solid var(--rsn-mint);
	box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.rsn-profile__name {
	font-size: clamp(1.85rem, 4vw, 2.6rem);
	margin: 0;
	line-height: 1.1;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .25rem;
}
.rsn-profile__name .rsn-verified-tick {
	width: 28px;
	height: 28px;
}
.rsn-profile__name .rsn-verified-tick svg {
	width: 28px;
	height: 28px;
}
.rsn-profile__joined {
	color: var(--rsn-text-dim);
	font-size: .9rem;
	margin: .35rem 0 1rem;
}
.rsn-profile__stats {
	display: flex;
	gap: 1.5rem;
	margin-bottom: 1.25rem;
}
.rsn-profile__stats > div {
	background: rgba(255,255,255,0.03);
	padding: .65rem 1rem;
	border-radius: 8px;
	border: 1px solid var(--rsn-line);
}
.rsn-profile__stats strong {
	display: block;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--rsn-text);
	line-height: 1;
}
.rsn-profile__stats span {
	display: block;
	color: var(--rsn-text-mute);
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin-top: .25rem;
}
.rsn-profile__stat-verified strong { color: var(--rsn-mint); font-size: 1.1rem; }
.rsn-profile__actions {
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
}
.rsn-profile__edit,
.rsn-profile__submit-show {
	display: inline-block;
	background: rgba(255,255,255,0.05);
	border: 1px solid var(--rsn-line);
	color: var(--rsn-text);
	font-weight: 600;
	padding: .55rem 1.1rem;
	border-radius: 6px;
	text-decoration: none;
	transition: border-color .15s, background .15s;
}
.rsn-profile__edit:hover { border-color: var(--rsn-mint); }
.rsn-profile__submit-show {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	border-color: var(--rsn-mint);
	font-weight: 800;
}
.rsn-profile__submit-show:hover { background: #5fe5a3; }

.rsn-profile__bio-block {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 12px;
	padding: 1.85rem;
	margin: 0 0 2rem;
}
.rsn-profile__bio-block h2 {
	margin: 0 0 1rem;
	font-size: 1.15rem;
	font-family: var(--rsn-body);
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--rsn-mint);
}
.rsn-profile__bio {
	color: var(--rsn-text);
	line-height: 1.7;
}
.rsn-profile__bio p { margin: 0 0 1em; }
.rsn-profile__bio p:last-child { margin-bottom: 0; }

.rsn-profile__topics h2 {
	font-size: 1.4rem;
	margin: 0 0 1.25rem;
}
.rsn-profile__empty {
	color: var(--rsn-text-dim);
	padding: 1rem 0;
}

@media (max-width: 700px) {
	.rsn-profile__header { grid-template-columns: 1fr; padding: 1.5rem; text-align: center; }
	.rsn-profile__avatar img { margin: 0 auto; width: 96px; height: 96px; }
	.rsn-profile__stats { justify-content: center; }
	.rsn-profile__name { justify-content: center; }
}


/* ============================================================
   SUBMIT-A-SHOW PAGE
   ============================================================ */
.rsn-submit-show {
	padding: 3rem 0 5rem;
	background:
		radial-gradient(circle at 30% 20%, rgba(61, 214, 140, 0.12) 0%, transparent 55%),
		radial-gradient(circle at 70% 80%, rgba(255, 84, 175, 0.08) 0%, transparent 55%);
}
.rsn-submit-show__headline {
	font-size: clamp(2.2rem, 4.5vw, 3.5rem);
	margin: 1rem 0;
	line-height: 1.1;
}
.rsn-submit-show__sub {
	color: var(--rsn-text-dim);
	font-size: 1.1rem;
	max-width: 60ch;
	margin: 0 0 2.5rem;
	line-height: 1.55;
}
.rsn-submit-show__gate {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 16px;
	padding: 3rem 2rem;
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}
.rsn-submit-show__gate h2 { margin: 0 0 .85rem; }
.rsn-submit-show__gate p { color: var(--rsn-text-dim); margin: 0 0 1.5rem; }
.rsn-submit-show__cta {
	display: inline-block;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	padding: .85rem 1.75rem;
	border-radius: 8px;
	text-decoration: none;
}

.rsn-submit-show__notice {
	padding: 1rem 1.25rem;
	border-radius: 8px;
	margin: 0 0 1.5rem;
	font-weight: 500;
}
.rsn-submit-show__notice--success {
	background: rgba(61, 214, 140, 0.12);
	color: var(--rsn-mint);
	border: 1px solid rgba(61, 214, 140, 0.3);
}
.rsn-submit-show__notice--error {
	background: rgba(255, 87, 87, 0.1);
	color: #ff8585;
	border: 1px solid rgba(255, 87, 87, 0.3);
}

.rsn-submit-show__form {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 16px;
	padding: 2rem;
	max-width: 720px;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.rsn-submit-show__field {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.rsn-submit-show__field span {
	color: var(--rsn-text-dim);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .04em;
}
.rsn-submit-show__field span em {
	color: var(--rsn-mint);
	margin-left: .25rem;
	font-style: normal;
}
.rsn-submit-show__field input,
.rsn-submit-show__field textarea {
	background: var(--rsn-bg);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	padding: .85rem 1rem;
	color: var(--rsn-text);
	font-family: inherit;
	font-size: 1rem;
}
.rsn-submit-show__field input:focus,
.rsn-submit-show__field textarea:focus {
	outline: none;
	border-color: var(--rsn-mint);
	box-shadow: 0 0 0 3px rgba(61, 214, 140, 0.15);
}
.rsn-submit-show__field textarea { resize: vertical; min-height: 180px; line-height: 1.5; }
.rsn-submit-show__submit {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	padding: 1rem 1.75rem;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	font-size: 1rem;
	align-self: flex-start;
}
.rsn-submit-show__submit:hover { background: #5fe5a3; }
.rsn-submit-show__hint {
	color: var(--rsn-text-mute);
	font-size: .85rem;
	margin: 0;
}


/* ============================================================
   MUSIC PAGE — search + genre filters
   ============================================================ */
.rsn-music-filters {
	padding: 2rem 0 0;
}
.rsn-music-filters__form {
	margin-bottom: 1.25rem;
}
.rsn-music-filters__search {
	display: flex;
	align-items: center;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 999px;
	padding: .35rem .35rem .35rem 1.15rem;
	gap: .5rem;
	max-width: 540px;
	transition: border-color .15s, box-shadow .15s;
}
.rsn-music-filters__search:focus-within {
	border-color: var(--rsn-mint);
	box-shadow: 0 0 0 3px rgba(61, 214, 140, 0.15);
}
.rsn-music-filters__search svg {
	color: var(--rsn-text-mute);
	flex-shrink: 0;
}
.rsn-music-filters__search input {
	flex: 1;
	background: transparent;
	border: 0;
	color: var(--rsn-text);
	font-size: 1rem;
	padding: .65rem 0;
	font-family: inherit;
}
.rsn-music-filters__search input:focus { outline: none; }
.rsn-music-filters__search button {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	border: 0;
	padding: .55rem 1.25rem;
	border-radius: 999px;
	font-weight: 700;
	cursor: pointer;
	font-size: .9rem;
}
.rsn-music-filters__search button:hover { background: #5fe5a3; }

.rsn-music-filters__genres {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
}
.rsn-music-genre-chip {
	display: inline-block;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	color: var(--rsn-text-dim);
	padding: .5rem 1rem;
	border-radius: 999px;
	font-size: .85rem;
	font-weight: 600;
	text-decoration: none;
	transition: all .15s;
}
.rsn-music-genre-chip:hover {
	border-color: var(--rsn-mint);
	color: var(--rsn-text);
}
.rsn-music-genre-chip.is-active {
	background: var(--rsn-mint);
	border-color: var(--rsn-mint);
	color: var(--rsn-bg);
}

.rsn-music-filters__summary {
	color: var(--rsn-text-dim);
	font-size: .9rem;
	margin: 0;
	padding: .75rem 1rem;
	background: rgba(61, 214, 140, 0.04);
	border-left: 3px solid var(--rsn-mint);
	border-radius: 0 6px 6px 0;
}
.rsn-music-filters__summary strong { color: var(--rsn-mint); }
.rsn-music-filters__clear {
	color: var(--rsn-mint);
	margin-left: .75rem;
	text-decoration: none;
	font-weight: 600;
}
.rsn-music-filters__clear:hover { text-decoration: underline; }

.rsn-pill--account {
	display: inline-flex !important;
	align-items: center;
	gap: .45rem;
	padding-left: .35rem !important;
}
.rsn-header__avatar {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: block;
}
.rsn-pill--mint {
	background: var(--rsn-mint) !important;
	color: var(--rsn-bg) !important;
	font-weight: 800;
}
.rsn-pill--mint:hover { background: #5fe5a3 !important; }

/* ============================================================
   ROTATING HERO (multi-show banner)
   ============================================================ */
.rsn-hero--multi {
	position: relative;
	overflow: hidden;
}
.rsn-hero--multi .rsn-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .65s var(--rsn-ease);
	pointer-events: none;
}
.rsn-hero--multi .rsn-hero__slide.is-active {
	opacity: 1;
	pointer-events: auto;
	position: relative;
}
.rsn-hero__dots {
	position: absolute;
	bottom: 1.85rem;
	left: 0;
	right: 0;
	display: flex;
	gap: .65rem;
	justify-content: center;
	z-index: 5;
}
.rsn-hero__dot {
	width: 36px;
	height: 4px;
	background: rgba(255, 255, 255, 0.32);
	border: 0;
	border-radius: 2px;
	cursor: pointer;
	padding: 0;
	transition: background .2s, width .2s;
}
.rsn-hero__dot:hover { background: rgba(255, 255, 255, 0.55); }
.rsn-hero__dot.is-active {
	background: var(--rsn-mint);
	width: 56px;
}


/* ============================================================
   AD ZONES
   ============================================================ */
.rsn-ad-zone {
	padding: 1.5rem 0;
}
.rsn-ad-zone--top { margin-top: 0; }
.rsn-ad-zone--mid { margin: 1.5rem 0; }
.rsn-ad-zone__label {
	display: inline-block;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--rsn-text-mute);
	margin-bottom: .65rem;
}
.rsn-ad-zone__slot {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	padding: 1.25rem;
	min-height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.rsn-ad-zone__slot img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}
.rsn-ad-zone__slot a { display: block; }


/* ============================================================
   SEASON — General show: Description tab + trailer in box
   ============================================================ */
.rsn-season-desc {
	display: grid;
	gap: 2.5rem;
	max-width: 900px;
}
.rsn-season-desc__copy {
	color: var(--rsn-text);
	line-height: 1.7;
	font-size: 1.05rem;
}
.rsn-season-desc__copy p { margin: 0 0 1.2em; }

.rsn-season-trailer {
	margin: 0;
}
.rsn-season-trailer__title {
	font-family: var(--rsn-body);
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: .9rem;
	color: var(--rsn-mint);
	margin: 0 0 1rem;
}
.rsn-season-trailer__box {
	position: relative;
	aspect-ratio: 16/9;
	background: #000;
	border-radius: var(--rsn-radius-lg);
	overflow: hidden;
	border: 1px solid var(--rsn-line);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}
.rsn-season-trailer__box iframe { width: 100%; height: 100%; border: 0; display: block; }
.rsn-season-trailer__fallback {
	position: absolute; inset: 0;
	display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	gap: 1rem;
	color: var(--rsn-text-dim);
	background: linear-gradient(135deg, #1a1f2a 0%, #0a0d12 100%);
}
.rsn-season-trailer__fallback a {
	color: var(--rsn-mint);
	text-decoration: none;
	font-weight: 600;
	border: 1px solid var(--rsn-mint);
	border-radius: 4px;
	padding: .5rem 1rem;
}


/* ============================================================
   SEASON — General show: Cast grid
   ============================================================ */
.rsn-cast-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1.5rem;
}
.rsn-cast-card {
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: .65rem;
	transition: transform .18s var(--rsn-ease);
}
.rsn-cast-card:hover { transform: translateY(-3px); }
.rsn-cast-card__photo {
	aspect-ratio: 3/4;
	border-radius: 12px;
	overflow: hidden;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
}
.rsn-cast-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rsn-cast-card__name {
	font-size: 1rem;
	font-weight: 700;
	margin: 0;
	line-height: 1.2;
}
.rsn-cast-card__role {
	color: var(--rsn-text-dim);
	font-size: .85rem;
	margin: 0;
}


/* ============================================================
   SEASON — Reality show: Meet Contestants grid
   ============================================================ */
.rsn-contestants {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.5rem;
}
.rsn-contestant-card {
	color: inherit;
	text-decoration: none;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .2s var(--rsn-ease), border-color .2s;
}
.rsn-contestant-card:hover {
	transform: translateY(-4px);
	border-color: var(--rsn-mint);
}
.rsn-contestant-card__photo {
	aspect-ratio: 1;
	overflow: hidden;
	background: #000;
	position: relative;
}
.rsn-contestant-card__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: filter .25s, transform .35s var(--rsn-ease);
}
.rsn-contestant-card:hover .rsn-contestant-card__photo img { transform: scale(1.04); }

/* B&W treatment — applies to all contestants in this season */
.rsn-contestants.is-treatment-mono .rsn-contestant-card__photo img { filter: grayscale(100%); }
.rsn-contestants.is-treatment-mono .rsn-contestant-card:hover .rsn-contestant-card__photo img { filter: grayscale(0); }

.rsn-contestant-card[data-status="evicted"] .rsn-contestant-card__photo img { filter: grayscale(100%) brightness(.65); }

.rsn-contestant-card__badge {
	position: absolute;
	top: .65rem;
	right: .65rem;
	background: var(--rsn-eviction);
	color: #fff;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: .25rem .65rem;
	border-radius: 999px;
}
.rsn-contestant-card__badge--nominated { background: var(--rsn-yellow); color: #1a1a1a; }

.rsn-contestant-card__body {
	padding: 1rem 1.15rem 1.15rem;
}
.rsn-contestant-card__name {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 .25rem;
}
.rsn-contestant-card__meta {
	color: var(--rsn-text-dim);
	font-size: .82rem;
	margin: 0 0 .5rem;
}
.rsn-contestant-card__tagline {
	color: var(--rsn-text-mute);
	font-size: .85rem;
	font-style: italic;
	margin: 0;
	line-height: 1.4;
}


/* ============================================================
   CREATOR DASHBOARD
   ============================================================ */
.rsn-dashboard {
	padding: 3rem 0 5rem;
	background: radial-gradient(circle at 50% 0%, rgba(61, 214, 140, 0.08) 0%, transparent 50%);
}
.rsn-dashboard__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin: 1.5rem 0 2.5rem;
}
.rsn-dashboard__headline {
	font-size: clamp(2rem, 4vw, 2.85rem);
	margin: .65rem 0 .35rem;
	line-height: 1.1;
	display: flex;
	align-items: center;
	gap: .25rem;
	flex-wrap: wrap;
}
.rsn-dashboard__sub {
	color: var(--rsn-text-dim);
	margin: 0;
	max-width: 60ch;
}
.rsn-dashboard__cta {
	display: inline-block;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	padding: .85rem 1.65rem;
	border-radius: 8px;
	text-decoration: none;
	box-shadow: 0 4px 16px rgba(61, 214, 140, 0.3);
}
.rsn-dashboard__cta:hover { background: #5fe5a3; }

.rsn-dashboard__notice {
	padding: 1rem 1.25rem;
	border-radius: 8px;
	margin: 0 0 1.5rem;
	font-weight: 500;
}
.rsn-dashboard__notice--success {
	background: rgba(61, 214, 140, 0.12);
	color: var(--rsn-mint);
	border: 1px solid rgba(61, 214, 140, 0.3);
}
.rsn-dashboard__notice--error {
	background: rgba(255, 87, 87, 0.1);
	color: #ff8585;
	border: 1px solid rgba(255, 87, 87, 0.3);
}

.rsn-dashboard__section {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 16px;
	padding: 1.85rem;
	margin: 0 0 1.5rem;
}
.rsn-dashboard__section h2 {
	font-size: 1.4rem;
	margin: 0 0 1.25rem;
}
.rsn-dashboard__count {
	color: var(--rsn-text-mute);
	font-weight: 400;
	font-size: 1rem;
}
.rsn-dashboard__empty {
	color: var(--rsn-text-dim);
	padding: 1.5rem;
	background: rgba(255,255,255,0.02);
	border-radius: 8px;
	margin: 0;
}

.rsn-dashboard__shows {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.rsn-dashboard-show {
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid var(--rsn-line);
	border-radius: 12px;
	padding: 1.5rem;
}
.rsn-dashboard-show__head { margin-bottom: 1rem; }
.rsn-dashboard-show__title { font-size: 1.3rem; margin: 0 0 .5rem; }
.rsn-dashboard-show__title a { color: inherit; text-decoration: none; }
.rsn-dashboard-show__title a:hover { color: var(--rsn-mint); }
.rsn-dashboard-show__tags { display: flex; gap: .5rem; flex-wrap: wrap; }

.rsn-dashboard-tag {
	display: inline-block;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: .3rem .65rem;
	border-radius: 4px;
}
.rsn-dashboard-tag--type    { background: rgba(255,255,255,0.06); color: var(--rsn-text-dim); }
.rsn-dashboard-tag--live    { background: rgba(61, 214, 140, 0.15); color: var(--rsn-mint); }
.rsn-dashboard-tag--pending { background: rgba(255, 210, 63, 0.15); color: var(--rsn-yellow); }

.rsn-dashboard-show__seasons h4 {
	font-family: var(--rsn-body);
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .82rem;
	color: var(--rsn-text-dim);
	margin: 1.25rem 0 .85rem;
}
.rsn-dashboard-show__empty {
	color: var(--rsn-text-mute);
	font-size: .9rem;
}

.rsn-dashboard-seasons {
	list-style: none;
	padding: 0;
	margin: 0 0 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .65rem;
}
.rsn-dashboard-season {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: .85rem 1rem;
	background: rgba(0, 0, 0, 0.18);
	border-radius: 8px;
	flex-wrap: wrap;
}
.rsn-dashboard-season__main { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
.rsn-dashboard-season__count {
	color: var(--rsn-text-mute);
	font-size: .82rem;
}
.rsn-dashboard-season__actions { display: flex; gap: .5rem; }

.rsn-dashboard-btn {
	display: inline-block;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--rsn-line);
	color: var(--rsn-text);
	padding: .45rem .9rem;
	border-radius: 6px;
	font-size: .85rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
.rsn-dashboard-btn:hover { border-color: var(--rsn-mint); }
.rsn-dashboard-btn--ghost {
	background: transparent;
}
.rsn-dashboard-btn--mint {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	border-color: var(--rsn-mint);
	font-weight: 700;
}
.rsn-dashboard-btn--mint:hover { background: #5fe5a3; }


/* ============================================================
   FRONT-END SEASON EDITOR
   ============================================================ */
.rsn-editor-banner {
	display: flex;
	gap: .75rem;
	align-items: center;
	flex-wrap: wrap;
}
.rsn-editor-banner__preview {
	width: 220px;
	aspect-ratio: 16/9;
	background: rgba(0, 0, 0, 0.25);
	border: 1px solid var(--rsn-line);
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.rsn-editor-banner__preview img { width: 100%; height: 100%; object-fit: cover; }
.rsn-editor-banner__placeholder {
	color: var(--rsn-text-mute);
	font-size: .82rem;
	font-style: italic;
}

.rsn-editor-episodes {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.rsn-editor-episode {
	display: flex;
	align-items: center;
	gap: .85rem;
	padding: .85rem 1rem;
	background: rgba(0, 0, 0, 0.2);
	border-radius: 6px;
	flex-wrap: wrap;
}
.rsn-editor-episode strong {
	color: var(--rsn-mint);
	font-size: .85rem;
	letter-spacing: .04em;
}
.rsn-editor-episode a { color: var(--rsn-text); text-decoration: none; flex: 1; }
.rsn-editor-episode a:hover { color: var(--rsn-mint); }

.rsn-editor-add-ep {
	background: rgba(61, 214, 140, 0.04);
	border: 1px solid rgba(61, 214, 140, 0.2);
	border-radius: 8px;
	padding: 1rem 1.25rem;
}
.rsn-editor-add-ep[open] { padding-bottom: 0; }
.rsn-editor-add-ep summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--rsn-mint);
	padding: .25rem 0;
}


/* ============================================================
   PROFILE PRODUCTIONS GRID
   ============================================================ */
.rsn-profile__productions {
	margin: 0 0 2rem;
}
.rsn-profile__productions h2 {
	font-size: 1.4rem;
	margin: 0 0 1.25rem;
}
.rsn-profile__production-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1.25rem;
}
.rsn-profile-production {
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	transition: transform .18s var(--rsn-ease);
}
.rsn-profile-production:hover { transform: translateY(-3px); }
.rsn-profile-production__poster {
	aspect-ratio: 16/9;
	border-radius: 10px;
	overflow: hidden;
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	position: relative;
}
.rsn-profile-production__poster img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rsn-profile-production__chip {
	position: absolute;
	top: .55rem;
	left: .55rem;
	background: rgba(0, 0, 0, 0.7);
	color: var(--rsn-mint);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: .25rem .65rem;
	border-radius: 4px;
	backdrop-filter: blur(4px);
}
.rsn-profile-production__title {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--rsn-text);
}
.rsn-profile-production__sub {
	margin: 0;
	color: var(--rsn-text-dim);
	font-size: .82rem;
}


/* ============================================================
   PROFILE — Custom signup field display
   ============================================================ */
.rsn-profile__details {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: .85rem 1.5rem;
	margin: 0;
}
.rsn-profile__details dt {
	color: var(--rsn-text-dim);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .04em;
	margin: 0;
}
.rsn-profile__details dd {
	margin: 0;
	color: var(--rsn-text);
}
.rsn-profile__details dd a { color: var(--rsn-mint); }

@media (max-width: 600px) {
	.rsn-profile__details { grid-template-columns: 1fr; gap: .25rem 0; }
	.rsn-profile__details dd { margin-bottom: .85rem; }
}

/* ============================================================
   SEASON — Custom tab richtext content
   ============================================================ */
.rsn-tab-richtext {
	color: var(--rsn-text);
	line-height: 1.7;
	max-width: 900px;
}
.rsn-tab-richtext p { margin: 0 0 1.2em; }
.rsn-tab-richtext h2,
.rsn-tab-richtext h3 { margin: 1.5em 0 .65em; line-height: 1.2; }
.rsn-tab-richtext a { color: var(--rsn-mint); }
.rsn-tab-richtext blockquote {
	border-left: 3px solid var(--rsn-mint);
	padding-left: 1rem;
	margin: 1.5em 0;
	color: var(--rsn-text-dim);
	font-style: italic;
}
.rsn-tab-richtext img { max-width: 100%; height: auto; border-radius: 8px; }
.rsn-tab-richtext ul,
.rsn-tab-richtext ol { padding-left: 1.5em; margin: 0 0 1.2em; }


/* ============================================================
   SEASON TAB EDITOR (drag-and-drop)
   ============================================================ */
.rsn-tabs-editor {
	display: flex;
	flex-direction: column;
	gap: .65rem;
	margin: 1rem 0 1.25rem;
}
.rsn-tabs-editor__row {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 1rem;
	align-items: start;
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid var(--rsn-line);
	border-radius: 10px;
	padding: 1rem 1.25rem;
	cursor: grab;
	transition: border-color .15s, background .15s;
}
.rsn-tabs-editor__row:hover {
	border-color: rgba(61, 214, 140, 0.4);
}
.rsn-tabs-editor__row.is-dragging {
	opacity: .5;
	cursor: grabbing;
}
.rsn-tabs-editor__row.drop-target {
	border-color: var(--rsn-mint);
	background: rgba(61, 214, 140, 0.06);
}
.rsn-tabs-editor__handle {
	color: var(--rsn-text-mute);
	font-size: 1.4rem;
	line-height: 1;
	padding-top: .35rem;
	user-select: none;
	letter-spacing: -.15em;
}
.rsn-tabs-editor__main {
	display: flex;
	flex-direction: column;
	gap: .55rem;
	min-width: 0;
}
.rsn-tabs-editor__label {
	background: var(--rsn-bg);
	border: 1px solid var(--rsn-line);
	border-radius: 6px;
	color: var(--rsn-text);
	font-family: inherit;
	font-size: 1rem;
	padding: .55rem .75rem;
	font-weight: 600;
}
.rsn-tabs-editor__label:focus {
	outline: none;
	border-color: var(--rsn-mint);
}
.rsn-tabs-editor__kind {
	display: inline-block;
	background: rgba(61, 214, 140, 0.12);
	color: var(--rsn-mint);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: .25rem .65rem;
	border-radius: 4px;
	width: fit-content;
}
.rsn-tabs-editor__desc {
	margin: 0;
	color: var(--rsn-text-mute);
	font-size: .82rem;
	line-height: 1.4;
}
.rsn-tabs-editor__content {
	background: var(--rsn-bg);
	border: 1px solid var(--rsn-line);
	border-radius: 6px;
	color: var(--rsn-text);
	font-family: SFMono-Regular, Menlo, monospace;
	font-size: .88rem;
	padding: .65rem .85rem;
	resize: vertical;
	min-height: 120px;
}
.rsn-tabs-editor__content:focus {
	outline: none;
	border-color: var(--rsn-mint);
}
.rsn-tabs-editor__remove {
	background: rgba(255, 87, 87, 0.12);
	color: #ff8585;
	border: 0;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: 1.1rem;
	line-height: 30px;
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
}
.rsn-tabs-editor__remove:hover {
	background: rgba(255, 87, 87, 0.2);
}
.rsn-tabs-editor__add {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	padding: 1rem;
	background: rgba(61, 214, 140, 0.04);
	border: 1px dashed rgba(61, 214, 140, 0.3);
	border-radius: 10px;
}


/* ============================================================
   SIGNUP PAGE
   ============================================================ */
.rsn-signup-page {
	padding: 3rem 0 5rem;
	background:
		radial-gradient(circle at 20% 30%, rgba(61, 214, 140, 0.18) 0%, transparent 55%),
		radial-gradient(circle at 80% 70%, rgba(61, 214, 140, 0.10) 0%, transparent 55%);
}
.rsn-signup-page__inner {
	max-width: 720px;
	margin: 0 auto;
}
.rsn-signup-page__header {
	text-align: center;
	margin: 1.5rem 0 2.5rem;
}
.rsn-signup-page__headline {
	font-size: clamp(2.2rem, 4.5vw, 3.5rem);
	margin: 1rem 0;
	line-height: 1.1;
}
.rsn-signup-page__intro {
	color: var(--rsn-text-dim);
	font-size: 1.05rem;
	max-width: 60ch;
	margin: 0 auto;
	line-height: 1.55;
}
.rsn-signup-page__intro p { margin: 0 0 1em; }
.rsn-signup-page__intro p:last-child { margin-bottom: 0; }
.rsn-signup-page__intro a { color: var(--rsn-mint); }

.rsn-signup-page__form {
	background: var(--rsn-surface);
	border: 1px solid var(--rsn-line);
	border-radius: 16px;
	padding: 2rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}

.rsn-signup-page__form .rsn-submit-show__field { margin: 0; }

.rsn-signup-page__hint {
	color: var(--rsn-text-mute);
	font-size: .82rem;
	margin: 0;
	background: rgba(61, 214, 140, 0.06);
	border-left: 3px solid var(--rsn-mint);
	padding: .65rem .85rem;
	border-radius: 0 4px 4px 0;
}
.rsn-signup-page__login {
	color: var(--rsn-text-dim);
	margin: 0;
	font-size: .9rem;
	text-align: center;
}
.rsn-signup-page__login a {
	color: var(--rsn-mint);
	font-weight: 600;
	text-decoration: none;
}
.rsn-signup-page__outro {
	margin-top: 2rem;
	color: var(--rsn-text-mute);
	font-size: .9rem;
	line-height: 1.6;
	text-align: center;
}
.rsn-signup-page__outro p { margin: 0 0 .65em; }
.rsn-signup-page__outro a { color: var(--rsn-mint); }


/* ============================================================
   FORUM REPLY EDITOR — WP TinyMCE in dark theme context
   ============================================================ */
.rsn-forum-reply__field { margin-bottom: 1rem; }
.rsn-forum-reply__field span {
	display: block;
	color: var(--rsn-text-dim);
	font-size: .82rem;
	font-weight: 600;
	margin-bottom: .5rem;
}
.rsn-forum-newtopic__field .wp-editor-container,
.rsn-forum-reply__field .wp-editor-container {
	background: var(--rsn-bg);
	border: 1px solid var(--rsn-line);
	border-radius: 8px;
	overflow: hidden;
}
.rsn-forum-newtopic__field .wp-editor-tabs,
.rsn-forum-reply__field .wp-editor-tabs {
	background: rgba(0, 0, 0, 0.2);
}
