/* BBVote theme — main styles (mobile-first). Breakpoint adjustments live in responsive.css. */

/* ---------- tokens ---------- */
:root {
	--c-stage: #2A0B57;      /* house-lights-down purple: header, hero, footer */
	--c-stage-2: #3E1680;
	--c-magenta: #C8116F;    /* vote actions, live state */
	--c-marigold: #FFC233;   /* the tick, first place, highlights */
	--c-paper: #FBF9FE;      /* page background, a cool lilac white */
	--c-tint: #F3EEFB;       /* alternate section band */
	--c-ink: #1C1526;
	--c-slate: #5D5670;
	--c-line: #E4DCF0;
	--c-white: #FFFFFF;

	--f-display: "Anek Latin", "Arial Narrow", "Roboto Condensed", system-ui, sans-serif;
	--f-body: "Mukta", "Segoe UI", system-ui, -apple-system, sans-serif;

	--wrap: 1200px;
	--gutter: clamp(16px, 4vw, 32px);
	--r-lg: 20px;
	--r-md: 12px;
	--r-sm: 8px;

	/* Plugin tokens (BBVote Core reads these). */
	--bbv-primary: var(--c-stage-2);
	--bbv-primary-strong: var(--c-stage);
	--bbv-accent: var(--c-magenta);
	--bbv-highlight: var(--c-marigold);
	--bbv-text: var(--c-ink);
	--bbv-muted: var(--c-slate);
	--bbv-surface: var(--c-white);
	--bbv-surface-2: var(--c-tint);
	--bbv-border: var(--c-line);
	--bbv-radius: var(--r-lg);
	--bbv-radius-sm: var(--r-md);
	--bbv-focus: 0 0 0 3px var(--c-white), 0 0 0 6px var(--c-magenta);
	--bbv-map-0: #EDE6F9;
	--bbv-map-1: #C9B5EC;
	--bbv-map-2: #9C78D8;
	--bbv-map-3: #6A38B9;
	--bbv-map-4: #2A0B57;
	--bbv-map-empty: #EEEBF2;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body {
	margin: 0;
	background: var(--c-paper);
	color: var(--c-ink);
	font: 400 1.0625rem/1.65 var(--f-body);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--c-stage-2); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--c-magenta); }
:focus-visible { outline: 3px solid var(--c-magenta); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--f-display); font-stretch: 88%; line-height: 1.08; margin: 0 0 .5em; color: var(--c-ink); }
h1 { font-weight: 760; }
h2 { font-weight: 700; font-size: clamp(1.55rem, 3.2vw, 2.1rem); }
h3 { font-weight: 650; font-size: 1.25rem; }
p { margin: 0 0 1em; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.narrow { max-width: 720px; padding-top: 3rem; padding-bottom: 4rem; }

.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; margin: 0; left: 12px; top: 12px; z-index: 1000; padding: .75rem 1rem; background: var(--c-marigold); color: var(--c-ink); border-radius: var(--r-sm); font-weight: 700; }
.site-content:focus { outline: none; }

/* ---------- buttons ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 48px; padding: .7rem 1.5rem; border-radius: 999px; border: 2px solid transparent;
	font: 700 1rem/1 var(--f-body); text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn--primary { background: var(--c-magenta); color: var(--c-white); }
.btn--primary:hover { background: #A50D5B; color: var(--c-white); }
.btn--ghost-light { border-color: rgba(255,255,255,.55); color: var(--c-white); }
.btn--ghost-light:hover { background: var(--c-white); color: var(--c-stage); }
.btn--outline { border-color: var(--c-stage-2); color: var(--c-stage-2); background: transparent; }
.btn--outline:hover { background: var(--c-stage-2); color: var(--c-white); }
.text-link { font-weight: 600; }

/* ---------- header ---------- */
.site-header { background: var(--c-stage); color: var(--c-white); position: relative; z-index: 50; }
.site-header__inner { display: flex; align-items: center; gap: 1rem; min-height: 64px; flex-wrap: wrap; }
.brand { display: inline-flex; align-items: center; gap: .55rem; color: var(--c-white); text-decoration: none; }
.brand:hover { color: var(--c-white); }
.brand__mark { width: 34px; height: 34px; color: var(--c-white); flex: none; }
.brand__name { font: 780 1.55rem/1 var(--f-display); font-stretch: 78%; letter-spacing: .005em; }
.brand__tld { color: var(--c-marigold); }
.custom-logo { max-height: 44px; width: auto; }
.nav-toggle {
	margin-left: auto; display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; padding: .4rem .9rem;
	background: transparent; color: var(--c-white); border: 1px solid rgba(255,255,255,.35); border-radius: 999px; font: 600 .95rem var(--f-body); cursor: pointer;
}
.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; transition: transform .2s ease; }
.nav-toggle__bars::before, .nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bars::before { top: -6px; }
.nav-toggle__bars::after { top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }
.site-nav { flex-basis: 100%; display: none; padding: .25rem 0 1rem; }
.site-nav.is-open { display: block; }
.no-js .site-nav { display: block; }
.site-nav .menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.site-nav .menu a { display: block; padding: .7rem .25rem; color: var(--c-white); text-decoration: none; font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.12); }
.site-nav .menu a:hover, .site-nav .menu a[aria-current="page"] { color: var(--c-marigold); }
.header-search { display: flex; margin-top: .75rem; background: rgba(255,255,255,.1); border-radius: 999px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); }
.header-search input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--c-white); padding: .65rem 1rem; font: inherit; font-size: .95rem; }
.header-search input::placeholder { color: rgba(255,255,255,.7); }
.header-search button { background: transparent; border: 0; color: var(--c-white); padding: 0 1rem; cursor: pointer; min-width: 44px; }
.header-search:focus-within { outline: 3px solid var(--c-marigold); outline-offset: 2px; }
.header-search input:focus-visible { outline: none; }

/* ---------- hero: the stage ---------- */
.hero {
	position: relative; overflow: hidden; color: var(--c-white);
	background:
		radial-gradient(60% 75% at 78% -8%, rgba(190, 150, 255, .42), transparent 62%),
		radial-gradient(45% 40% at 78% 102%, rgba(200, 17, 111, .30), transparent 70%),
		var(--c-stage);
	padding: clamp(2.25rem, 6vw, 4.5rem) 0 clamp(2.5rem, 6vw, 4.5rem);
}
.hero__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: center; }
.hero__season { display: inline-block; margin: 0 0 1rem; padding: .25rem .8rem; border-radius: 999px; background: rgba(255,255,255,.12); font-weight: 600; font-size: .95rem; }
.hero__title {
	color: var(--c-white); font-size: clamp(2.5rem, 7.2vw, 4.9rem); font-stretch: 76%; font-weight: 790;
	line-height: .96; letter-spacing: -.005em; margin: 0 0 1.1rem; max-width: 13ch; text-wrap: balance;
}
.hero__lede { font-size: clamp(1.08rem, 1.8vw, 1.25rem); max-width: 44ch; color: rgba(255,255,255,.88); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0; }
.hero__notice { display: flex; gap: .6rem; align-items: flex-start; max-width: 52ch; font-size: .92rem; color: rgba(255,255,255,.82); padding: .75rem 1rem; border-left: 3px solid var(--c-marigold); background: rgba(0,0,0,.18); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.hero__notice svg { flex: none; margin-top: .2rem; color: var(--c-marigold); }
.hero__stage { position: relative; }
.hero__stage-label { font-family: var(--f-display); font-stretch: 85%; font-weight: 600; font-size: 1.05rem; color: rgba(255,255,255,.75); margin-bottom: .9rem; }
.lineup { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem .6rem; }
.lineup__item a { display: grid; justify-items: center; gap: .4rem; text-decoration: none; color: var(--c-white); text-align: center; }
.lineup__img { width: 100%; max-width: 104px; aspect-ratio: 1; border-radius: 50%; object-fit: cover; border: 3px solid rgba(255,255,255,.85); box-shadow: 0 10px 30px rgba(10, 0, 30, .45); background: var(--c-stage-2); }
.lineup__img--initial { display: grid; place-items: center; font: 780 2rem var(--f-display); color: var(--c-marigold); }
.lineup__name { font-weight: 600; font-size: .82rem; line-height: 1.2; overflow-wrap: anywhere; }
.lineup__status { font-size: .75rem; color: var(--c-marigold); }
.lineup__item a:hover .lineup__img { border-color: var(--c-marigold); }
.lineup__item a:focus-visible { outline-color: var(--c-marigold); border-radius: var(--r-md); }
.lineup__item.is-out .lineup__img { filter: grayscale(1); opacity: .65; }
.hero__stage-empty { display: grid; justify-items: center; text-align: center; gap: .75rem; padding: 2rem; color: rgba(255,255,255,.85); border: 1px dashed rgba(255,255,255,.3); border-radius: var(--r-lg); }
.hero__stage-empty svg { color: var(--c-white); }

/* The one orchestrated moment: the line-up walks onto the stage. */
@media (prefers-reduced-motion: no-preference) {
	.lineup__item { animation: bbv-enter .55s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--i) * 55ms + 120ms); }
	@keyframes bbv-enter { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
}

/* ---------- sections ---------- */
.home-section { padding: clamp(2.5rem, 6vw, 4rem) 0; }
.home-section--tint { background: var(--c-tint); }
.home-section--flush { padding: 1.5rem 0; }
.section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .5rem 1.5rem; margin-bottom: 1.5rem; }
.section-head__title { margin: 0; }
.section-head__intro { margin: .35rem 0 0; color: var(--c-slate); max-width: 60ch; }
.section-head__link { font-weight: 700; white-space: nowrap; }
.minor-title, .bbv-section-title { font-size: 1.2rem; font-weight: 650; margin: 0 0 .75rem; }
.bbv-section-title { font-size: 1.35rem; margin-top: 2rem; }

.page-header { padding: 1rem 0 1.5rem; }
.page-title { font-size: clamp(2rem, 5vw, 3.2rem); font-stretch: 80%; font-weight: 780; margin: 0 0 .4rem; }
.page-header__desc { color: var(--c-slate); max-width: 65ch; }

/* breadcrumbs */
.bbv-breadcrumbs { font-size: .88rem; color: var(--c-slate); padding: 1rem 0 .25rem; }
.bbv-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem; }
.bbv-breadcrumbs li:not(:last-child)::after { content: "›"; margin-left: .35rem; color: var(--c-line); color: #9E95B0; }
.bbv-breadcrumbs a { color: var(--c-slate); }

/* ---------- poll tweaks on top of plugin structure ---------- */
.bbv-poll { box-shadow: 0 1px 0 var(--c-line), 0 18px 40px -28px rgba(42, 11, 87, .35); }
.bbv-poll__title { font-family: var(--f-display); font-stretch: 84%; font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 720; }
.bbv-option__label { border-radius: var(--r-md); }
.bbv-option__name { font-family: var(--f-display); font-stretch: 90%; font-size: 1.02rem; }
.bbv-button { font-family: var(--f-body); }
.bbv-rank-table tbody tr:first-child .bbv-rank-num { background: var(--c-marigold); }
.bbv-rankings { background: var(--c-white); border-radius: var(--r-lg); padding: clamp(.75rem, 2vw, 1.25rem); border: 1px solid var(--c-line); }
.bbv-regional__layout { background: var(--c-white); border-radius: var(--r-lg); padding: clamp(.75rem, 2vw, 1.25rem); border: 1px solid var(--c-line); }
.site-footer .bbv-disclaimer { color: rgba(255,255,255,.8); }
.site-footer .bbv-disclaimer__label { color: var(--c-white); }
.poll-empty { text-align: left; }
.poll-empty__title { font: 700 1.2rem/1.3 var(--f-display); font-stretch: 90%; }
.poll-empty__links { display: flex; flex-wrap: wrap; gap: .6rem; }

/* ---------- contestant cards ---------- */
.contestant-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.c-card { height: 100%; }
.c-card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--c-ink); background: var(--c-white); border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-line); transition: border-color .15s ease; }
.c-card__link:hover { border-color: var(--c-stage-2); color: var(--c-ink); }
.c-card__link:hover .c-card__name { text-decoration: underline; }
.c-card__media { aspect-ratio: 1; background: linear-gradient(160deg, var(--c-stage-2), var(--c-stage)); display: grid; place-items: center; overflow: hidden; }
.c-card__img { width: 100%; height: 100%; object-fit: cover; }
.c-card__initial { font: 790 3.4rem/1 var(--f-display); color: var(--c-marigold); }
.c-card__body { display: grid; gap: .2rem; padding: .8rem .9rem 1rem; }
.c-card__name { font: 700 1.12rem/1.15 var(--f-display); font-stretch: 86%; }
.c-card__season { font-size: .82rem; color: var(--c-slate); }
.c-card__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .4rem; margin-top: .3rem; }
.c-card__share { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--c-stage-2); }
.c-card--out .c-card__img { filter: grayscale(.9); }
.c-status { display: inline-block; font-size: .75rem; font-weight: 700; padding: .1rem .55rem; border-radius: 999px; border: 1px solid currentColor; }
.c-status--active { color: #13704A; }
.c-status--evicted, .c-status--withdrawn { color: var(--c-slate); }
.c-status--finalist { color: var(--c-stage-2); }
.c-status--winner { color: #7A5300; background: #FFF3D1; border-color: #E2A700; }
.c-status--evicted::before, .c-status--withdrawn::before { content: "✕ "; }
.c-status--winner::before { content: "★ "; }

.filter-bar { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: flex-end; margin: 0 0 1.5rem; padding: 1rem; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.filter-bar select { min-height: 44px; padding: .4rem .6rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); font: inherit; background: var(--c-white); color: var(--c-ink); }

/* ---------- news ---------- */
.news-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
.news-card { display: grid; gap: .35rem; }
.news-card__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-md); display: block; margin-bottom: .4rem; }
.news-card__cat { margin: 0; font-size: .85rem; font-weight: 700; }
.news-card__cat a { color: var(--c-magenta); text-decoration: none; }
.news-card__title { margin: 0; font-size: 1.3rem; }
.news-card__title a { color: var(--c-ink); text-decoration: none; }
.news-card__title a:hover { text-decoration: underline; }
.news-card__date { margin: 0; font-size: .85rem; color: var(--c-slate); }

.history-grid { display: grid; gap: 2rem; }
.link-list { list-style: none; margin: 0; padding: 0; }
.link-list li { padding: .7rem 0; border-bottom: 1px solid var(--c-line); display: grid; gap: .1rem; }
.link-list a { font-weight: 600; }
.link-list__meta { font-size: .88rem; color: var(--c-slate); }
.pill-list { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pill-list a { display: inline-flex; min-height: 40px; align-items: center; padding: .3rem .9rem; border: 1px solid var(--c-line); background: var(--c-white); border-radius: 999px; text-decoration: none; font-weight: 600; }

/* ---------- posts & entries ---------- */
.post-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.post-row { display: grid; gap: 1rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--c-line); }
.post-row__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-md); display: block; }
.post-row__title { font-size: 1.4rem; margin: 0 0 .25rem; }
.post-row__title a { color: var(--c-ink); text-decoration: none; }
.post-row__title a:hover { text-decoration: underline; }
.post-row__type { margin: 0 0 .3rem; font-size: .85rem; color: var(--c-slate); }
.entry-meta { font-size: .9rem; color: var(--c-slate); display: flex; flex-wrap: wrap; gap: .25rem .9rem; }
.entry { padding-bottom: 2rem; }
.entry-header { padding: .75rem 0 1rem; }
.entry-title { font-size: clamp(2rem, 5vw, 3rem); font-stretch: 80%; font-weight: 780; margin: 0 0 .5rem; max-width: 22ch; text-wrap: balance; }
.entry--hub .entry-title, .entry--poll .entry-title { max-width: 26ch; }
.entry-lede { font-size: 1.15rem; color: var(--c-slate); max-width: 60ch; }
.entry-cat { margin: 0 0 .4rem; font-weight: 700; }
.entry-cat a { color: var(--c-magenta); text-decoration: none; }
.entry-media { margin: 0 0 1.5rem; }
.entry-media img { border-radius: var(--r-lg); display: block; width: 100%; }
.entry-media figcaption { font-size: .85rem; color: var(--c-slate); margin-top: .4rem; }
.entry-content { max-width: 70ch; }
.entry--hub .entry-content { max-width: none; }
.entry-content > * + * { margin-top: 1em; }
.entry-content h2 { margin-top: 1.8em; }
.entry-content img { border-radius: var(--r-md); }
.entry-content blockquote { margin-left: 0; padding-left: 1rem; border-left: 3px solid var(--c-marigold); font-size: 1.1rem; }
.entry-footer { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--c-line); font-size: .92rem; color: var(--c-slate); }
.entry-updated { font-size: .88rem; color: var(--c-slate); }
.bbv-legal-review { background: #FFF6DC; border-left: 4px solid var(--c-marigold); padding: .75rem 1rem; }
.related-block { margin-top: 2rem; padding: 1.25rem; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.related-block__title { font-size: 1.25rem; }

.layout-sidebar { display: grid; gap: 2rem; padding-bottom: 3rem; }
.layout-sidebar__main { min-width: 0; }
.widget { background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: 1rem 1.2rem; margin-bottom: 1.25rem; }
.widget-title { font-size: 1.15rem; }
.mini-people { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.mini-people a { display: flex; align-items: center; gap: .6rem; text-decoration: none; font-weight: 600; color: var(--c-ink); }
.mini-people img, .mini-people .bbv-option__initials { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; font-size: .95rem; }

/* contestant profile */
.profile__head { background: linear-gradient(180deg, var(--c-tint), var(--c-paper)); padding: 1rem 0 2rem; margin-bottom: 1rem; }
.profile__head-inner { display: grid; gap: 1.5rem; align-items: end; }
.profile__photo { width: min(240px, 60vw); aspect-ratio: 1; border-radius: var(--r-lg); overflow: hidden; background: linear-gradient(160deg, var(--c-stage-2), var(--c-stage)); display: grid; place-items: center; border: 4px solid var(--c-white); box-shadow: 0 18px 40px -24px rgba(42, 11, 87, .6); }
.profile__photo img { width: 100%; height: 100%; object-fit: cover; }
.profile__name { font-size: clamp(2.3rem, 7vw, 4rem); font-stretch: 76%; font-weight: 790; margin: .25rem 0 .2rem; }
.profile__season { font-weight: 600; margin: 0 0 .5rem; }
.profile__lede { max-width: 60ch; color: var(--c-slate); font-size: 1.1rem; }

.poll-regional { margin-top: 2rem; }

/* search form */
.search-form { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1rem 0; }
.search-form label { flex: 1 1 240px; }
.search-form .search-field { width: 100%; min-height: 48px; padding: .5rem .9rem; border-radius: 999px; border: 1px solid var(--c-line); font: inherit; }
.search-form .search-submit { min-height: 48px; padding: 0 1.3rem; border-radius: 999px; border: 0; background: var(--c-stage-2); color: var(--c-white); font: 700 1rem var(--f-body); cursor: pointer; }

/* pagination */
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .35rem; margin: 2rem 0; }
.pagination .page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 .75rem; border-radius: var(--r-sm); border: 1px solid var(--c-line); background: var(--c-white); text-decoration: none; font-weight: 600; }
.pagination .page-numbers.current { background: var(--c-stage-2); border-color: var(--c-stage-2); color: var(--c-white); }

/* comments */
.comments { margin-top: 2.5rem; }
.comment-list { padding-left: 0; list-style: none; }
.comment-body { padding: 1rem 0; border-bottom: 1px solid var(--c-line); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea { width: 100%; padding: .6rem .8rem; border: 1px solid var(--c-line); border-radius: var(--r-sm); font: inherit; }
.comment-form .submit { min-height: 48px; padding: 0 1.4rem; border-radius: 999px; border: 0; background: var(--c-stage-2); color: var(--c-white); font: 700 1rem var(--f-body); cursor: pointer; }

/* ---------- footer ---------- */
.site-footer { background: var(--c-stage); color: rgba(255,255,255,.85); padding: 3rem 0 1rem; margin-top: 0; }
.site-footer a { color: var(--c-white); }
.site-footer a:hover { color: var(--c-marigold); }
.site-footer__inner { display: grid; gap: 2rem; }
.site-footer__tagline { font: 650 1.2rem/1.3 var(--f-display); font-stretch: 88%; color: var(--c-white); margin: .9rem 0 .5rem; }
.site-footer__heading { color: var(--c-white); font-size: 1.1rem; }
.site-footer__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.site-footer__nav a { display: inline-block; padding: .3rem 0; text-decoration: none; }
.site-footer__legal { border-top: 1px solid rgba(255,255,255,.15); margin-top: 2rem; padding-top: 1rem; font-size: .85rem; color: rgba(255,255,255,.7); }

.bbv-empty { border-radius: var(--r-lg); }

/* demo marker */
.bbv-is-demo .site-header { box-shadow: inset 0 -4px 0 var(--c-marigold); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; }
	.btn, .c-card__link { transition: none; }
}

@media (forced-colors: active) {
	.bbv-bar__fill, .bbv-minibar span { background: Highlight; }
	.btn { border-color: ButtonText; }
}

/* ---------- live tracker additions ---------- */
.header-cta { display: none; align-items: center; gap: .4rem; min-height: 40px; padding: .4rem 1rem; border-radius: 999px; background: var(--c-marigold); color: var(--c-ink); font-weight: 800; text-decoration: none; }
.header-cta:hover { background: #FFD666; color: var(--c-ink); }
.theme-toggle { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: transparent; color: var(--c-white); cursor: pointer; margin-left: auto; flex: 0 0 40px; padding: 0; }
.theme-toggle:focus-visible, .header-cta:focus-visible { outline: 3px solid var(--c-marigold); outline-offset: 2px; }
.nav-toggle { margin-left: 0; }
.notice-bar { background: var(--c-magenta); color: var(--c-white); font-size: .88rem; }
.notice-bar__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .25rem 1rem; padding-top: .45rem; padding-bottom: .45rem; }
.notice-bar p { margin: 0; }
.notice-bar a { color: var(--c-white); font-weight: 700; }
.hero__pill { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 0 0 1rem; padding: .3rem .85rem; border-radius: 999px; background: rgba(255,255,255,.12); font-size: .92rem; }
.hero__pill b { color: var(--c-marigold); font-variant-numeric: tabular-nums; }
.hero__pill-dot { width: .55rem; height: .55rem; border-radius: 50%; background: #FF4D8D; box-shadow: 0 0 0 0 rgba(255,77,141,.7); animation: bbv-ring 1.8s ease-out infinite; }
@keyframes bbv-ring { 0% { box-shadow: 0 0 0 0 rgba(255,77,141,.6); } 100% { box-shadow: 0 0 0 10px rgba(255,77,141,0); } }
.hero__pill-season { padding-left: .5rem; border-left: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.85); }
.hero__search { margin: .25rem 0 .9rem; color: var(--c-ink); }
.hero__search .bbv-csearch__row svg { color: var(--c-slate); flex: none; }
.btn--sm { min-height: 40px; padding: .45rem 1.1rem; font-size: .95rem; }
.hero__chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .5rem; }
.hero__chips a { padding: .3rem .8rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); color: var(--c-white); text-decoration: none; font-size: .9rem; font-weight: 600; }
.hero__chips a:hover { background: rgba(255,255,255,.12); color: var(--c-white); }
.home-section--live { padding-top: 2rem; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; counter-reset: step; }
.step { background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: 1.1rem 1.2rem; counter-increment: step; }
.step::before { content: counter(step); display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 8px; background: var(--c-marigold); color: var(--c-ink); font-weight: 800; margin-bottom: .6rem; }
.step h3 { margin: 0 0 .35rem; font-size: 1.15rem; }
.step p { margin: 0; color: var(--c-slate); }
.profile__aka { margin: -.1rem 0 .4rem; color: var(--c-slate); font-weight: 600; }
.mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; gap: .5rem; padding: .5rem .75rem calc(.5rem + env(safe-area-inset-bottom)); background: var(--c-stage); box-shadow: 0 -8px 24px rgba(20, 0, 40, .3); }
.mobile-bar a { flex: 1; display: grid; place-items: center; min-height: 46px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); color: var(--c-white); text-decoration: none; font-weight: 750; }
.mobile-bar .mobile-bar__primary { background: var(--c-magenta); border-color: var(--c-magenta); }
body { padding-bottom: 70px; }

/* ---------- dark mode ---------- */
:root[data-theme="dark"] {
	--c-paper: #120A1F; --c-tint: #1A1029; --c-ink: #F2EEF8; --c-slate: #B4AAC6; --c-line: #33264A; --c-white: #1E1430;
	--bbv-surface: #1E1430; --bbv-surface-2: #2A1D40; --bbv-text: #F2EEF8; --bbv-muted: #B4AAC6; --bbv-border: #33264A;
	--bbv-primary: #A88BEB; --bbv-primary-strong: #C2AEF3; --bbv-up: #4ADE80; --bbv-down: #F87171; --bbv-live: #FF5C9A;
	--bbv-map-0: #3A2858; --bbv-map-1: #5B3F8E; --bbv-map-2: #7C5BC2; --bbv-map-3: #A88BEB; --bbv-map-4: #E2D6FF; --bbv-map-empty: #241834; --bbv-map-stroke: #120A1F;
	color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--c-paper: #120A1F; --c-tint: #1A1029; --c-ink: #F2EEF8; --c-slate: #B4AAC6; --c-line: #33264A; --c-white: #1E1430;
		--bbv-surface: #1E1430; --bbv-surface-2: #2A1D40; --bbv-text: #F2EEF8; --bbv-muted: #B4AAC6; --bbv-border: #33264A;
		--bbv-primary: #A88BEB; --bbv-primary-strong: #C2AEF3; --bbv-up: #4ADE80; --bbv-down: #F87171; --bbv-live: #FF5C9A;
		--bbv-map-0: #3A2858; --bbv-map-1: #5B3F8E; --bbv-map-2: #7C5BC2; --bbv-map-3: #A88BEB; --bbv-map-4: #E2D6FF; --bbv-map-empty: #241834; --bbv-map-stroke: #120A1F;
		color-scheme: dark;
	}
}
/* Elements that used "white" as a surface keep readable text in dark mode. */
:root[data-theme="dark"] a { color: #C9B6FF; }
:root[data-theme="dark"] .btn--primary, :root[data-theme="dark"] .bbv-button { color: #fff; }
:root[data-theme="dark"] .site-header, :root[data-theme="dark"] .site-footer, :root[data-theme="dark"] .hero { --c-white: #FFFFFF; }
:root[data-theme="dark"] .site-header a, :root[data-theme="dark"] .site-footer a, :root[data-theme="dark"] .hero a.btn--ghost-light, :root[data-theme="dark"] .hero__chips a, :root[data-theme="dark"] .notice-bar a, :root[data-theme="dark"] .mobile-bar a { color: #fff; }
:root[data-theme="dark"] .header-cta { color: #1C1526 !important; }
:root[data-theme="dark"] .hero__search, :root[data-theme="dark"] .bbv-csearch__results a { color: var(--bbv-text); }

@media (prefers-reduced-motion: reduce) { .hero__pill-dot { animation: none; } }
.profile__credit { margin: .5rem 0 0; font-size: .8rem; color: var(--c-slate); }
.profile__facts { margin: 0 0 .35rem; font-weight: 600; color: var(--c-ink); }
.profile-about { margin: 0 0 1.5rem; }
.profile-about .bbv-facts { margin-top: .5rem; }
.profile-about__bio { margin-top: 1rem; }
.c-week { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .75rem; font-weight: 750; }
.c-week--nominated { background: #fde7ec; color: #a4133c; }
.c-week--safe { background: #e3f4ea; color: #13704a; }
:root[data-theme="dark"] .c-week--nominated { background: rgba(255, 99, 132, .16); color: #ff9db2; }
:root[data-theme="dark"] .c-week--safe { background: rgba(52, 199, 120, .16); color: #7fe0a8; }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .c-week--nominated { background: rgba(255, 99, 132, .16); color: #ff9db2; }
	:root:not([data-theme="light"]) .c-week--safe { background: rgba(52, 199, 120, .16); color: #7fe0a8; }
}
.profile-about__bio h3 { font-size: 1.15rem; margin: 1.25rem 0 .4rem; }
.profile-about__bio ul { padding-left: 1.2rem; margin: 0 0 .75rem; }
.profile-about__bio li { margin: .2rem 0; }
.bbv-profile-sources { font-size: .82rem; color: var(--c-slate); margin-top: 1rem; }

.profile__vote { margin: .75rem 0 .25rem; }
#vote { scroll-margin-top: 5rem; }
