/* Science of Building Your Nest: editorial design system. */
:root {
	--paper: #f3eee4;
	--paper-2: #e9e2d4;
	--ink: #15130f;
	--ink-2: #4a453c;
	--muted: #7b7466;
	--gold: #c9a33a;
	--line: rgba(21, 19, 15, 0.14);
	--accent: var(--gold);
	--on-accent: #15130f;
	--player-accent: var(--gold);
	--serif: 'Fraunces', Georgia, 'Times New Roman', serif;
	--sans: 'Inter Tight', 'Helvetica Neue', Arial, sans-serif;
	--mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
	--wrap: min(1240px, calc(100vw - 40px));
	--radius: 18px;
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Base ------------------------------------------------------------------ */
html { scroll-behavior: smooth; }
body {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.sbn-has-player { padding-bottom: 96px; }
::selection { background: var(--accent); color: var(--on-accent); }
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0 !important; }
.wp-site-blocks main { margin: 0 !important; padding: 0 !important; }
main :where(p, li) a { color: inherit; text-decoration-color: var(--accent); text-underline-offset: 3px; text-decoration-thickness: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.sbn-icon { flex: none; vertical-align: middle; }
button { font: inherit; }

/* Hide the theme's own page chrome where the plugin draws its own. */
.sbn-single .wp-block-post-title,
.sbn-single .wp-block-post-featured-image,
.sbn-single .wp-block-post-author-name,
.sbn-single main .wp-block-group.has-small-font-size,
.sbn-single .wp-block-post-terms,
.sbn-single main > .wp-block-group > .wp-block-group:not(:first-child) { display: none !important; }
main .entry-content, main .wp-block-post-content { max-width: none !important; }
main .wp-block-post-content > *, main .entry-content > * { max-width: none !important; }

/* Type ------------------------------------------------------------------ */
.sbn-kicker, .sbn-eyebrow {
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
	margin: 0 0 14px;
	display: flex; align-items: center; gap: 8px;
}
.sbn-display {
	font-family: var(--serif);
	font-weight: 400;
	font-variation-settings: 'opsz' 144, 'SOFT' 50;
	font-size: clamp(34px, 4.6vw, 64px);
	line-height: 1.02;
	letter-spacing: -0.02em;
	margin: 0 0 18px;
}
.sbn-display--xl { font-size: clamp(44px, 7.4vw, 112px); line-height: 0.96; }
.sbn-display em, .sbn-hero__title em { font-style: italic; color: var(--accent); }
.sbn-h2 {
	font-family: var(--serif);
	font-weight: 500;
	font-size: 28px;
	letter-spacing: -0.01em;
	margin: 0 0 16px;
	display: inline-flex; align-items: center; gap: 10px;
}
.sbn-lede { font-size: clamp(19px, 1.7vw, 23px); line-height: 1.5; color: var(--ink-2); }
.sbn-link {
	display: inline-flex; align-items: center; gap: 8px;
	font-weight: 600; color: var(--ink); text-decoration: none;
	border-bottom: 2px solid var(--accent); padding-bottom: 2px;
	transition: gap 0.3s var(--ease);
}
.sbn-link:hover { gap: 14px; }
.sbn-note { font-size: 13px; color: var(--muted); }

/* Buttons --------------------------------------------------------------- */
.sbn-btn {
	display: inline-flex; align-items: center; gap: 10px;
	border: 0; border-radius: 999px; cursor: pointer;
	padding: 13px 22px; font-weight: 600; font-size: 15px; text-decoration: none;
	background: var(--ink); color: var(--paper);
	transition: transform 0.35s var(--ease), background 0.3s, box-shadow 0.35s var(--ease);
}
.sbn-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -12px rgba(0,0,0,.5); }
.sbn-btn:active { transform: translateY(0) scale(0.98); }
.sbn-btn--play { background: var(--accent); color: var(--on-accent); }
.sbn-btn--ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line); }
.sbn-btn--big { padding: 16px 28px; font-size: 16px; }
.sbn-btn--small { padding: 8px 14px; font-size: 13px; gap: 6px; }
.sbn-when-playing { display: none; }
.is-playing .sbn-when-playing, [data-state="playing"] .sbn-when-playing { display: inline; }
.is-playing .sbn-when-paused, [data-state="playing"] .sbn-when-paused { display: none; }
.sbn-btn--play.is-playing { box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent); }

.sbn-ts {
	font-family: var(--mono); font-size: 12.5px; font-weight: 500;
	border: 0; cursor: pointer; border-radius: 6px;
	padding: 3px 7px; margin-right: 6px;
	background: color-mix(in srgb, var(--accent) 22%, transparent);
	color: var(--ink);
	transition: background 0.2s, transform 0.2s var(--ease);
}
.sbn-ts:hover { background: var(--accent); color: var(--on-accent); transform: translateY(-1px); }

.sbn-tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 20px 0 0; }
.sbn-tag, .sbn-chip {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; font-weight: 500; text-decoration: none; color: var(--ink);
	padding: 6px 12px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line); background: transparent;
	cursor: pointer; transition: background 0.2s, color 0.2s;
}
.sbn-tag:hover, .sbn-chip:hover { background: var(--paper-2); }
.sbn-chip span { font-family: var(--mono); font-size: 11px; color: var(--muted); }
.sbn-chip.is-active { background: var(--ink); color: var(--paper); box-shadow: none; }
.sbn-chip.is-active span { color: var(--gold); }

/* Reveal animation -------------------------------------------------------- */
[data-sbn-reveal] { opacity: 0; transform: translateY(26px); transition: opacity 0.9s var(--ease) var(--d, 0ms), transform 0.9s var(--ease) var(--d, 0ms); }
[data-sbn-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { [data-sbn-reveal] { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }
::view-transition-old(root) { animation: sbn-fade-out 0.22s ease both; }
::view-transition-new(root) { animation: sbn-fade-in 0.38s var(--ease) both; }
@keyframes sbn-fade-out { to { opacity: 0; transform: translateY(-6px); } }
@keyframes sbn-fade-in { from { opacity: 0; transform: translateY(10px); } }
.sbn-loading body { cursor: progress; }

/* Header ----------------------------------------------------------------- */
.sbn-header {
	width: var(--wrap); margin: 0 auto; padding: 22px 0;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.sbn-brand { display: flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; }
.sbn-brand img { border-radius: 12px; }
.sbn-brand__word { display: flex; flex-direction: column; line-height: 1.05; }
.sbn-brand__word span { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.sbn-brand__word strong { font-family: var(--serif); font-weight: 500; font-size: 21px; letter-spacing: -0.01em; }
.sbn-nav ul { display: flex; align-items: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.sbn-nav a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; color: var(--ink); text-decoration: none; font-weight: 500; font-size: 15px; transition: background 0.2s; }
.sbn-nav a:hover, .sbn-nav a.is-current { background: var(--paper-2); }
.sbn-nav__cta a { background: var(--ink); color: var(--paper); }
.sbn-nav__cta a:hover { background: var(--ink-2); }
.sbn-nav__toggle { display: none; background: none; border: 0; padding: 8px; cursor: pointer; color: var(--ink); }

/* Footer ----------------------------------------------------------------- */
.sbn-footer { background: var(--ink); color: var(--paper); padding: 90px 0 40px; margin-top: 110px; }
.sbn-footer > * { width: var(--wrap); margin-inline: auto; }
.sbn-footer__big { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(64px, 12vw, 190px); line-height: 0.88; letter-spacing: -0.04em; color: var(--gold); }
.sbn-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-bottom: 60px; }
.sbn-footer__mark { width: clamp(110px, 18vw, 260px); height: auto; flex: none; }
.sbn-footer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; border-top: 1px solid rgba(255,255,255,.15); padding-top: 32px; }
.sbn-footer .sbn-eyebrow { color: rgba(255,255,255,.55); }
.sbn-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sbn-footer a { color: var(--paper); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.sbn-footer a:hover { color: var(--gold); }
.sbn-footer__small { font-size: 15px; color: rgba(255,255,255,.75); }
.sbn-footer__small a { text-decoration: underline; text-decoration-color: var(--gold); }
.sbn-footer__legal { font-size: 12.5px; color: rgba(255,255,255,.45); margin-top: 48px; }

/* Home: hero ------------------------------------------------------------- */
.sbn-hero {
	width: var(--wrap); margin: 30px auto 0;
	display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: end;
}
.sbn-hero__title { font-family: var(--serif); font-weight: 350; font-variation-settings: 'opsz' 144, 'SOFT' 100; font-size: clamp(56px, 9.2vw, 150px); line-height: 0.9; letter-spacing: -0.035em; margin: 0 0 28px; }
.sbn-hero__lede { font-size: clamp(18px, 1.6vw, 22px); color: var(--ink-2); max-width: 30ch; margin: 0; }
.sbn-hero__latest {
	background: var(--ink); color: var(--paper); border-radius: 28px; padding: 18px;
	display: grid; grid-template-columns: 170px 1fr; gap: 20px; align-items: center;
	transform: rotate(-1.2deg); box-shadow: 0 40px 70px -40px rgba(0,0,0,.6);
	position: relative; overflow: hidden;
}
.sbn-hero__latest.is-in { transform: rotate(-1.2deg); }
.sbn-hero__latest::after { content: ''; position: absolute; inset: auto -30% -60% auto; width: 70%; aspect-ratio: 1; border-radius: 50%; background: var(--accent); filter: blur(80px); opacity: .35; pointer-events: none; }
.sbn-hero__art img { width: 170px; height: 170px; object-fit: cover; border-radius: 18px; display: block; }
.sbn-hero__player { position: relative; z-index: 1; min-width: 0; }
.sbn-hero__player .sbn-eyebrow { color: rgba(255,255,255,.6); margin-bottom: 8px; }
.sbn-hero__ep { font-family: var(--serif); font-weight: 400; font-size: 25px; line-height: 1.12; margin: 0 0 4px; }
.sbn-hero__ep a { color: inherit; text-decoration: none; }
.sbn-hero__guest { margin: 0 0 14px; color: rgba(255,255,255,.7); font-size: 15px; }
.sbn-hero__controls { display: flex; align-items: center; gap: 14px; }
.sbn-mini-viz { flex: 1; min-width: 0; height: 44px; }
.sbn-hero__progress { height: 3px; background: rgba(255,255,255,.14); border-radius: 3px; margin-top: 14px; overflow: hidden; }
.sbn-hero__progress span { display: block; height: 100%; width: var(--pct, 0%); background: var(--accent); transition: width .25s linear; }
[data-sbn-progress] span { width: var(--pct, 0%); }

/* Home: sections --------------------------------------------------------- */
.sbn-section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 30px; }
.sbn-section-head .sbn-display { margin: 0; }
.sbn-section-head .sbn-kicker { width: 100%; margin: 0; }
.sbn-picks { width: var(--wrap); margin: 130px auto 0; }
.sbn-picks__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 22px; }

.sbn-quotes { margin: 120px 0 0; overflow: hidden; border-block: 1px solid var(--line); padding: 38px 0; }
.sbn-quotes__track, .sbn-quotes__dup { display: flex; gap: 24px; width: max-content; }
.sbn-quotes__track { animation: sbn-marquee 80s linear infinite; }
.sbn-quotes__dup .sbn-ts { pointer-events: none; }
.sbn-quotes:hover .sbn-quotes__track { animation-play-state: paused; }
@keyframes sbn-marquee { to { transform: translateX(calc(-50% - 12px)); } }
@media (prefers-reduced-motion: reduce) { .sbn-quotes__track { animation: none; overflow-x: auto; width: auto; } .sbn-quotes__dup { display: none; } }

.sbn-pull { margin: 0; padding: 26px; border-radius: var(--radius); background: #fff; box-shadow: inset 0 0 0 1px var(--line); position: relative; }
.sbn-pull::before { content: '\201C'; position: absolute; top: -8px; left: 16px; font-family: var(--serif); font-size: 90px; line-height: 1; color: var(--accent); }
.sbn-pull blockquote { margin: 18px 0 16px; padding: 0; border: 0; font-family: var(--serif); font-size: 21px; line-height: 1.32; font-style: italic; font-weight: 350; }
.sbn-pull figcaption { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; font-weight: 600; }
.sbn-pull--strip { width: 380px; flex: none; }

.sbn-host { width: var(--wrap); margin: 130px auto 0; display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(28px, 6vw, 100px); align-items: center; }
.sbn-host__mark img { width: 100%; max-width: 440px; aspect-ratio: 1; object-fit: cover; border-radius: 34px; transform: rotate(2deg); box-shadow: 0 40px 60px -40px rgba(0,0,0,.55); }
.sbn-host__text p { font-size: 18px; color: var(--ink-2); max-width: 56ch; }
.sbn-host__links { display: flex; gap: 22px; flex-wrap: wrap; }

.sbn-platforms { width: var(--wrap); margin: 110px auto 0; }
.sbn-platforms__row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.sbn-platforms__row a { display: flex; justify-content: space-between; align-items: center; padding: 22px 4px; font-family: var(--serif); font-size: clamp(22px, 2.3vw, 32px); color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); transition: color .2s, padding .35s var(--ease); }
.sbn-platforms__row a + a { border-left: 1px solid var(--line); padding-left: 20px; }
.sbn-platforms__row a:hover { color: var(--gold); padding-right: 0; }

.sbn-newsletter { box-sizing: border-box; width: var(--wrap); margin: 130px auto 0; background: var(--ink); color: var(--paper); border-radius: 32px; padding: clamp(28px, 5vw, 64px); display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; }
.sbn-newsletter .sbn-kicker { color: var(--gold); }
.sbn-newsletter p { color: rgba(255,255,255,.75); }
.sbn-newsletter__form { background: var(--paper); color: var(--ink); border-radius: 22px; padding: 26px; }

/* Cards ------------------------------------------------------------------ */
.sbn-card { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: 22px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.sbn-card:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--line), 0 30px 50px -35px rgba(0,0,0,.45); }
.sbn-card__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--accent); }
.sbn-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.sbn-card:hover .sbn-card__media img { transform: scale(1.04); }
.sbn-card__num { position: absolute; left: 14px; bottom: 8px; font-family: var(--serif); font-size: 58px; line-height: 1; color: #fff; text-shadow: 0 4px 20px rgba(0,0,0,.5); }
.sbn-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.sbn-card__body .sbn-kicker { margin-bottom: 8px; color: var(--ink-2); }
.sbn-card__title { font-family: var(--serif); font-weight: 450; font-size: 22px; line-height: 1.15; letter-spacing: -0.01em; margin: 0 0 12px; }
.sbn-card__title a { color: inherit; text-decoration: none; }
.sbn-card__title a::after { content: ''; position: absolute; inset: 0; z-index: 0; }
.sbn-card__excerpt { color: var(--ink-2); font-size: 15px; margin: 0 0 14px; }
.sbn-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; position: relative; z-index: 1; }
.sbn-card__meta { font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.sbn-card::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--accent); z-index: 2; }
.sbn-picks__grid .sbn-card--wide { grid-row: span 1; }
.sbn-picks__grid .sbn-card--wide .sbn-card__title { font-size: 30px; }

/* Archive ---------------------------------------------------------------- */
.sbn-archive, .sbn-about, .sbn-pitch { width: var(--wrap); margin: 40px auto 0; }
.sbn-archive__tools { position: sticky; top: 0; z-index: 5; background: color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter: blur(12px); padding: 16px 0; margin: 30px 0 10px; border-bottom: 1px solid var(--line); }
.sbn-search { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 999px; padding: 4px 8px 4px 20px; box-shadow: inset 0 0 0 1px var(--line); max-width: 560px; }
.sbn-search input { border: 0; background: transparent; font: inherit; font-size: 17px; padding: 12px 0; width: 100%; outline: none; }
.sbn-search:focus-within { box-shadow: inset 0 0 0 2px var(--ink); }
.sbn-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.sbn-archive__count { font-family: var(--mono); font-size: 12px; color: var(--muted); min-height: 1em; }
.sbn-archive__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.sbn-archive__list .sbn-card:nth-child(7n + 1) { grid-column: span 2; flex-direction: row; }
.sbn-archive__list .sbn-card:nth-child(7n + 1) .sbn-card__media { aspect-ratio: auto; width: 54%; flex: none; }
.sbn-archive__list .sbn-card:nth-child(7n + 1) .sbn-card__title { font-size: 32px; }
.sbn-archive__empty { font-family: var(--serif); font-size: 24px; color: var(--ink-2); }
[data-sbn-card][hidden] { display: none !important; }

/* Episode page ----------------------------------------------------------- */
.sbn-episode { width: var(--wrap); margin: 30px auto 0; }
.sbn-ep-hero { display: grid; grid-template-columns: minmax(260px, 0.8fr) 1.2fr; gap: clamp(28px, 5vw, 80px); align-items: center; padding: clamp(20px, 3vw, 40px); border-radius: 36px; background: color-mix(in srgb, var(--accent) 18%, var(--paper)); position: relative; overflow: hidden; }
.sbn-ep-hero::after { content: ''; position: absolute; right: -10%; top: -40%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: var(--accent); opacity: .22; filter: blur(90px); pointer-events: none; }
.sbn-ep-hero__art { position: relative; }
.sbn-ep-hero__art img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 26px; display: block; transform: rotate(-2deg); box-shadow: 0 40px 60px -35px rgba(0,0,0,.55); }
.sbn-ep-hero__num { position: absolute; z-index: 2; right: -14px; bottom: -40px; font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(90px, 12vw, 170px); line-height: 1; color: var(--accent); -webkit-text-stroke: 2px var(--paper); paint-order: stroke fill; }
.sbn-ep-hero__text { position: relative; z-index: 1; }
.sbn-ep-title { font-family: var(--serif); font-weight: 400; font-variation-settings: 'opsz' 144; font-size: clamp(36px, 4.8vw, 72px); line-height: 1; letter-spacing: -0.025em; margin: 0 0 14px; }
.sbn-ep-guest { font-size: 20px; margin: 0 0 24px; color: var(--ink-2); }
.sbn-ep-guest strong { color: var(--ink); }
.sbn-ep-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.sbn-ep-platforms { font-size: 14px; color: var(--ink-2); margin: 12px 0 0; align-items: center; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.sbn-ep-platforms a { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 3px; display: inline-block; padding: 6px 0; }
.sbn-ep-body { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 1fr); gap: clamp(28px, 5vw, 80px); margin-top: 70px; align-items: start; }
.sbn-ep-main > section { margin-bottom: 56px; }
.sbn-notes p { font-size: 18px; color: var(--ink-2); }
.sbn-notes p:first-of-type { font-family: var(--serif); font-size: 24px; line-height: 1.4; color: var(--ink); }
.sbn-notes h2:not(.sbn-h2), .sbn-notes h3 { font-family: var(--serif); font-weight: 500; }
.sbn-moments ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.sbn-moments li { display: flex; align-items: baseline; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 17px; }
.sbn-moments .sbn-ts { min-width: 64px; text-align: center; }
.sbn-video .sbn-yt { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 22px; background-size: cover; background-position: center; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; cursor: pointer; position: relative; overflow: hidden; font-weight: 600; }
.sbn-video .sbn-yt::before { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.55), rgba(0,0,0,.1)); }
.sbn-video .sbn-yt > * { position: relative; }
.sbn-video .sbn-yt svg { width: 72px; height: 72px; padding: 22px; border-radius: 50%; background: var(--accent); color: var(--on-accent); transition: transform .4s var(--ease); }
.sbn-video .sbn-yt:hover svg { transform: scale(1.08); }
.sbn-video iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 22px; }
.sbn-transcript details { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sbn-transcript summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 18px 0; }
.sbn-transcript summary::-webkit-details-marker { display: none; }
.sbn-transcript summary .sbn-h2 { margin: 0; }
.sbn-transcript details[open] .sbn-chevron { transform: rotate(180deg); }
.sbn-chevron { transition: transform .3s var(--ease); }
.sbn-transcript__body { max-height: 560px; overflow-y: auto; padding-right: 12px; }
.sbn-transcript__body p { font-size: 16px; color: var(--ink-2); }

.sbn-ep-aside { position: sticky; top: 24px; display: grid; gap: 20px; }
.sbn-guest-card { background: var(--ink); color: var(--paper); border-radius: 26px; padding: 28px; position: relative; overflow: hidden; }
.sbn-guest-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--accent); }
.sbn-guest-card .sbn-eyebrow { color: var(--accent); }
.sbn-guest-card__name { font-family: var(--serif); font-weight: 400; font-size: 34px; line-height: 1.05; margin: 0 0 6px; }
.sbn-guest-card__role { font-weight: 600; margin: 0 0 14px; color: rgba(255,255,255,.85); }
.sbn-guest-card__bio { color: rgba(255,255,255,.72); font-size: 15.5px; }
.sbn-guest-card__links { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sbn-guest-card__links a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.1); color: #fff; text-decoration: none; font-size: 14px; font-weight: 500; }
.sbn-guest-card__links a:hover { background: var(--accent); color: var(--on-accent); }
.sbn-aside-cta { padding: 24px; border-radius: 22px; box-shadow: inset 0 0 0 1px var(--line); }
.sbn-aside-cta p { color: var(--ink-2); font-size: 15.5px; }
.sbn-ep-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 30px; }
.sbn-ep-nav a { display: flex; flex-direction: column; gap: 6px; padding: 24px; border-radius: 22px; background: color-mix(in srgb, var(--accent) 16%, var(--paper)); color: var(--ink); text-decoration: none; transition: transform .4s var(--ease); }
.sbn-ep-nav a:last-child:not(:first-child) { text-align: right; }
.sbn-ep-nav a:hover { transform: translateY(-3px); }
.sbn-ep-nav__title { font-family: var(--serif); font-size: 22px; line-height: 1.2; }
.sbn-disclaimer { font-size: 12.5px; color: var(--muted); margin-top: 40px; max-width: 80ch; }

/* About + pitch ---------------------------------------------------------- */
.sbn-about__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 60px; margin-top: 40px; align-items: start; }
.sbn-about__lead p { font-size: 18px; color: var(--ink-2); }
.sbn-about__lead .sbn-lede { color: var(--ink); }
.sbn-stats { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
.sbn-stats div { display: flex; justify-content: space-between; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--line); }
.sbn-stats dt { font-family: var(--mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.sbn-stats dd { margin: 0; font-family: var(--serif); font-size: 34px; }
.sbn-host--full { margin-top: 110px; width: auto; }
.sbn-pitch__head .sbn-lede { max-width: 50ch; }
.sbn-pitch__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(28px, 5vw, 80px); margin-top: 50px; align-items: start; }
.sbn-steps { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.sbn-steps li { counter-increment: s; position: relative; padding: 0 0 30px 74px; color: var(--ink-2); font-size: 17px; }
.sbn-steps li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: -6px; font-family: var(--serif); font-style: italic; font-size: 46px; line-height: 1; color: var(--gold); }
.sbn-steps strong { display: block; color: var(--ink); font-family: var(--serif); font-weight: 500; font-size: 22px; margin-bottom: 4px; }
.sbn-pitch__form { background: #fff; border-radius: 28px; padding: clamp(22px, 3vw, 40px); box-shadow: inset 0 0 0 1px var(--line), 0 40px 60px -45px rgba(0,0,0,.4); }

/* Fluent Forms, restyled to match. */
.sbn-newsletter .fluentform, .sbn-pitch .fluentform { font-family: var(--sans); }
.fluentform .ff-el-input--label label { font-weight: 600; font-size: 14px; color: var(--ink); }
.fluentform .ff-el-form-control { border-radius: 12px !important; border: 1px solid var(--line) !important; padding: 12px 14px !important; font-size: 16px !important; background: var(--paper) !important; }
.fluentform .ff-el-form-control:focus { border-color: var(--ink) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold) 35%, transparent) !important; }
.fluentform .ff-btn-submit { background: var(--ink) !important; color: var(--paper) !important; border-radius: 999px !important; padding: 13px 26px !important; font-weight: 600 !important; border: 0 !important; }
.fluentform .ff-btn-submit:hover { background: var(--gold) !important; color: var(--ink) !important; }
.ff-message-success { border: 0 !important; background: #f3e9cf !important; border-radius: 14px; font-weight: 600; color: #15130f !important; }
.ff-message-success, .ff-message-success * { color: #15130f !important; }

/* Player ------------------------------------------------------------------ */
.sbn-player {
	position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 999;
	background: rgba(18, 16, 13, 0.92); color: #fff;
	backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4);
	border-radius: 22px; box-shadow: 0 24px 60px -20px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.08);
	transform: translateY(140%); transition: transform .6s var(--ease);
}
.sbn-player[data-state="empty"] { visibility: hidden; }
.sbn-player[data-state="playing"], .sbn-player[data-state="paused"] { transform: none; }
.sbn-player::before { content: ''; position: absolute; left: 22px; right: 22px; top: 0; height: 2px; background: var(--player-accent); border-radius: 2px; opacity: .9; }
.sbn-player__inner { display: grid; grid-template-columns: 56px minmax(120px, 240px) auto 1fr auto auto; align-items: center; gap: 16px; padding: 12px 16px; }
.sbn-player__art img { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; display: block; background: var(--player-accent); }
.sbn-player__meta { min-width: 0; }
.sbn-player__guest { margin: 0; font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.55); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sbn-player__title { display: block; color: #fff; text-decoration: none; font-weight: 600; font-size: 14.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sbn-player__controls { display: flex; align-items: center; gap: 6px; }
.sbn-icon-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer; }
.sbn-icon-btn:hover { background: rgba(255,255,255,.1); }
.sbn-icon-btn span { position: absolute; font-size: 8.5px; font-weight: 700; top: 50%; left: 50%; transform: translate(-50%, -38%); }
.sbn-player__toggle { width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer; background: var(--player-accent); color: #111; display: inline-flex; align-items: center; justify-content: center; transition: transform .3s var(--ease); }
.sbn-player__toggle:hover { transform: scale(1.06); }
.sbn-player__timeline { position: relative; min-width: 0; }
.sbn-player__viz { display: block; width: 100%; height: 30px; }
.sbn-player__seek { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--player-accent) var(--pct, 0%), rgba(255,255,255,.18) var(--pct, 0%)); cursor: pointer; margin: 4px 0 0; }
.sbn-player__seek::-webkit-slider-thumb { -webkit-appearance: none; width: 14px; height: 14px; border-radius: 50%; background: #fff; }
.sbn-player__seek::-moz-range-thumb { width: 14px; height: 14px; border: 0; border-radius: 50%; background: #fff; }
.sbn-player__times { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 11px; color: rgba(255,255,255,.6); margin-top: 4px; }
.sbn-player__rate { font-family: var(--mono); font-size: 12px; border: 0; border-radius: 999px; padding: 7px 10px; background: rgba(255,255,255,.1); color: #fff; cursor: pointer; }

/* Responsive -------------------------------------------------------------- */
@media (max-width: 1000px) {
	.sbn-hero, .sbn-host, .sbn-newsletter, .sbn-ep-hero, .sbn-ep-body, .sbn-about__grid, .sbn-pitch__grid { grid-template-columns: 1fr; }
	.sbn-hero__latest { transform: none !important; }
	.sbn-picks__grid, .sbn-archive__list { grid-template-columns: 1fr 1fr; }
	.sbn-picks__grid .sbn-card--wide { grid-column: span 2; }
	.sbn-ep-aside { position: static; }
	.sbn-ep-hero__art { max-width: 420px; }
	.sbn-footer__cols { grid-template-columns: 1fr 1fr; }
	.sbn-platforms__row { grid-template-columns: 1fr 1fr; }
	.sbn-platforms__row a:nth-child(3) { border-left: 0; padding-left: 4px; }
}
@media (max-width: 700px) {
	body { font-size: 16px; }
	:root { --wrap: calc(100vw - 32px); }
	.sbn-nav ul { display: none; position: absolute; left: 16px; right: 16px; top: 76px; z-index: 50; flex-direction: column; align-items: stretch; background: var(--paper); border-radius: 20px; padding: 10px; box-shadow: 0 30px 50px -20px rgba(0,0,0,.4), inset 0 0 0 1px var(--line); }
	.sbn-menu-open .sbn-nav ul { display: flex; }
	.sbn-nav a { font-size: 18px; padding: 14px 16px; }
	.sbn-nav__toggle { display: inline-flex; }
	.sbn-header { position: relative; }
	.sbn-brand__word strong { font-size: 18px; }
	.sbn-hero__latest { grid-template-columns: 1fr; }
	.sbn-hero__art img { width: 100%; height: auto; aspect-ratio: 1; }
	.sbn-picks__grid, .sbn-archive__list { grid-template-columns: 1fr; }
	.sbn-picks__grid .sbn-card--wide, .sbn-archive__list .sbn-card:nth-child(7n + 1) { grid-column: auto; flex-direction: column; }
	.sbn-archive__list .sbn-card:nth-child(7n + 1) .sbn-card__media { width: auto; aspect-ratio: 16 / 10; }
	.sbn-platforms__row { grid-template-columns: 1fr; }
	.sbn-platforms__row a + a { border-left: 0; padding-left: 4px; }
	.sbn-ep-nav { grid-template-columns: 1fr; }
	.sbn-footer__cols { grid-template-columns: 1fr; }
	.sbn-pull--strip { width: 300px; }
	body.sbn-has-player { padding-bottom: 130px; }
	.sbn-player { left: 8px; right: 8px; bottom: 8px; }
	.sbn-player__inner { grid-template-columns: 48px minmax(0, 1fr) auto auto; grid-template-areas: 'art meta toggle close' 'time time time time'; gap: 8px 10px; padding: 10px 12px; }
	.sbn-player__art { grid-area: art; }
	.sbn-player__art img { width: 48px; height: 48px; }
	.sbn-player__meta { grid-area: meta; }
	.sbn-player__controls { grid-area: toggle; }
	.sbn-player__rate { display: none; }
	.sbn-player__close { grid-area: close; }
	.sbn-player__controls { gap: 2px; }
	.sbn-player__controls [data-sbn-skip] { width: 36px; height: 36px; }
	.sbn-player__timeline { grid-area: time; }
	.sbn-player__viz { height: 18px; }
}

/* Not found page */
.sbn-404 { padding: clamp(80px, 14vw, 180px) var(--gutter, 24px); max-width: 900px; margin: 0 auto; }
.sbn-404 .sbn-display { font-size: clamp(48px, 8vw, 110px); line-height: 0.95; margin: 12px 0 24px; }
.sbn-404__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

/* Guests directory -------------------------------------------------------- */
.sbn-guests { width: var(--wrap); margin: 40px auto 0; }
.sbn-guests__head .sbn-lede { max-width: 52ch; }
.sbn-guests__list { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 50px; }
.sbn-guest { position: relative; display: grid; grid-template-columns: 0.8fr 1.2fr; background: #fff; border-radius: 24px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); scroll-margin-top: 110px; }
.sbn-guest::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--accent); z-index: 2; }
.sbn-guest:target { box-shadow: inset 0 0 0 2px var(--accent), 0 30px 50px -35px rgba(0,0,0,.45); }
.sbn-guest__media { position: relative; display: block; background: var(--paper-2); overflow: hidden; }
.sbn-guest__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.sbn-guest:hover .sbn-guest__media img { transform: scale(1.04); }
.sbn-guest__body { padding: 26px 26px 24px; display: flex; flex-direction: column; min-width: 0; }
.sbn-guest__name { font-family: var(--serif); font-weight: 400; font-size: clamp(26px, 2.4vw, 34px); line-height: 1.05; margin: 0 0 6px; }
.sbn-guest__role { font-weight: 600; margin: 0 0 10px; font-size: 15.5px; }
.sbn-guest__bio { color: var(--ink-2); font-size: 15.5px; margin: 0 0 14px; }
.sbn-guest__links { margin: 0 0 18px; }
.sbn-guest__links a { background: var(--paper); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
.sbn-guest__ep { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); }
.sbn-guest__ep .sbn-eyebrow { margin: 0 0 6px; }
.sbn-guest__title { display: block; font-weight: 600; color: var(--ink); text-decoration: none; line-height: 1.3; margin-bottom: 12px; }
.sbn-guest__title:hover { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; }
.sbn-guest__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.sbn-guest__ep > .sbn-link { margin-top: 10px; }
.sbn-guests__cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; margin: 60px 0 20px; padding: clamp(26px, 4vw, 48px); border-radius: 28px; background: var(--ink); color: var(--paper); }
.sbn-guests__cta .sbn-display { margin: 6px 0 10px; }
.sbn-guests__cta p { color: rgba(255,255,255,.75); max-width: 56ch; margin: 0; }
.sbn-guests__cta .sbn-kicker { color: var(--gold); }
@media (max-width: 1000px) { .sbn-guests__list { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
	.sbn-guest { grid-template-columns: 1fr; }
	.sbn-guest__media { aspect-ratio: 16 / 10; }
}

/* Breadcrumbs, "new" badge ------------------------------------------------- */
.sbn-crumbs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 0 0 22px; }
.sbn-crumbs a { color: var(--ink-2); text-decoration: none; }
.sbn-crumbs a:hover { color: var(--ink); text-decoration: underline; text-decoration-color: var(--accent); }
.sbn-new { display: inline-block; margin-right: 10px; padding: 3px 9px; border-radius: 999px; background: var(--gold); color: #15130f; font-family: var(--mono); font-size: 10.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; vertical-align: 1px; }

/* Share row --------------------------------------------------------------- */
.sbn-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 22px; }
.sbn-share__label { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
.sbn-share__btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 13px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); font-size: 13.5px; font-weight: 500; text-decoration: none; cursor: pointer; transition: background .2s; }
.sbn-share__btn:hover { background: var(--paper-2); }
.sbn-share__btn.is-copied { background: var(--accent); color: var(--on-accent); box-shadow: none; }
.sbn-share__btn[hidden] { display: none; }
.sbn-share__moment { box-shadow: inset 0 0 0 1.5px var(--accent); }

/* "Where to find [guest]" ------------------------------------------------- */
.sbn-find { padding: 24px 26px; border-radius: 22px; background: color-mix(in srgb, var(--accent) 14%, var(--paper)); }
.sbn-find .sbn-eyebrow { color: var(--ink-2); margin-bottom: 6px; }
.sbn-find__role { margin: 0 0 14px; font-weight: 600; }
.sbn-find__links { display: flex; flex-wrap: wrap; gap: 10px; }
.sbn-guest-card__all { margin-top: 18px; color: var(--paper) !important; }

/* Mailing list inside episode pages --------------------------------------- */
.sbn-ep-subscribe { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: center; padding: clamp(22px, 3vw, 34px); border-radius: 26px; background: var(--panel, #15130f); color: #f3eee4; }
.sbn-ep-subscribe .sbn-kicker { color: var(--gold); margin-bottom: 8px; }
.sbn-ep-subscribe .sbn-h2 { color: #f3eee4; margin: 0 0 8px; }
.sbn-ep-subscribe p { color: rgba(255,255,255,.75) !important; font-size: 15.5px !important; font-family: var(--sans) !important; line-height: 1.55 !important; margin: 0; }
.sbn-ep-subscribe__form { background: var(--paper); color: var(--ink); border-radius: 18px; padding: 20px; }
.sbn-ep-subscribe__form p { color: var(--ink-2) !important; }

/* Related episodes -------------------------------------------------------- */
.sbn-related { margin-top: 80px; }
.sbn-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

/* Be a Guest: what you get ------------------------------------------------ */
.sbn-perks { margin-top: 10px; padding: 26px; border-radius: 22px; box-shadow: inset 0 0 0 1px var(--line); }
.sbn-perks .sbn-kicker { color: var(--ink-2); }
.sbn-perks ul { margin: 0; padding: 0 0 0 20px; color: var(--ink-2); font-size: 16px; }
.sbn-perks li { margin-bottom: 8px; }
.sbn-perks li::marker { color: var(--gold); }

/* Guest share kit --------------------------------------------------------- */
.sbn-kit { margin: 0 0 60px; padding: clamp(24px, 4vw, 44px); border-radius: 28px; background: var(--surface, #fff); box-shadow: inset 0 0 0 2px var(--accent); }
.sbn-kit .sbn-display { margin: 6px 0 10px; }
.sbn-kit__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 28px; }
.sbn-kit__item h3 { font-family: var(--serif); font-weight: 500; font-size: 20px; margin: 0 0 10px; }
.sbn-kit__badge { grid-column: 1 / -1; }
.sbn-kit__badge-row { display: flex; gap: 22px; align-items: flex-start; flex-wrap: wrap; }
.sbn-kit__badge-row img { width: 150px; height: 150px; flex: none; }
.sbn-kit__badge-row > div { flex: 1; min-width: 240px; }
.sbn-kit__badge-row p { color: var(--ink-2); font-size: 15px; margin: 0 0 10px; }
.sbn-copy { display: flex; gap: 8px; align-items: flex-start; }
.sbn-copy input, .sbn-copy textarea { flex: 1; min-width: 0; font: 14px/1.5 var(--mono); padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); resize: vertical; }

/* "Up next" prompt in the player ------------------------------------------ */
.sbn-upnext { position: absolute; right: 12px; bottom: calc(100% + 10px); width: min(360px, calc(100vw - 48px)); padding: 16px 18px; border-radius: 18px; background: rgba(18, 16, 13, 0.96); color: #fff; box-shadow: 0 20px 50px -20px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.1); }
.sbn-upnext__label { margin: 0 0 4px; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--player-accent); }
.sbn-upnext__title { margin: 0 0 12px; font-weight: 600; font-size: 15px; line-height: 1.35; }
.sbn-upnext__actions { display: flex; gap: 8px; }
.sbn-upnext .sbn-btn--ghost { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); }

@media (max-width: 1000px) {
	.sbn-related__grid { grid-template-columns: 1fr 1fr; }
	.sbn-ep-subscribe, .sbn-kit__grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
	.sbn-related__grid { grid-template-columns: 1fr; }
	.sbn-related__grid .sbn-card:nth-child(n + 3) { display: none; }
}

/* Dark mode: follows the phone or computer setting ------------------------- */
@media (prefers-color-scheme: dark) {
	:root {
		color-scheme: dark;
		--paper: #14120e;
		--paper-2: #221f19;
		--ink: #f1ebdf;
		--ink-2: #cfc6b6;
		--muted: #9a9283;
		--line: rgba(241, 235, 223, 0.16);
		--surface: #1d1a15;
		--panel: #0b0a08;
	}
	.sbn-card, .sbn-pull, .sbn-search, .sbn-pitch__form, .sbn-guest { background: var(--surface); }
	/* Panels that are dark by design stay dark, with light text. */
	.sbn-footer, .sbn-newsletter, .sbn-guest-card, .sbn-guests__cta, .sbn-hero__latest { background: var(--panel) !important; color: #f1ebdf !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
	.sbn-footer a, .sbn-guest-card__all { color: #f1ebdf !important; }
	.sbn-newsletter__form { background: var(--surface); }
	.fluentform .ff-el-form-control { background: var(--paper) !important; color: var(--ink) !important; }
	.sbn-host__mark img, .sbn-header .sbn-brand img { box-shadow: 0 0 0 1px rgba(255,255,255,.1); }
}
