/* ---------- Ad slot placeholders ---------- */
.ft-ad-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	background: repeating-linear-gradient(45deg, var(--surface-2), var(--surface-2) 10px, var(--surface) 10px, var(--surface) 20px);
	border: 1px dashed var(--border);
	border-radius: 10px;
	color: var(--text-faint);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .05em;
	margin: 20px 0;
}
.ft-ad-slot--header { min-height: 60px; max-width: 1120px; margin: 8px auto 0; }
.ft-ad-slot--sidebar { min-height: 250px; max-width: 300px; margin: 20px auto; }
.ft-ad-slot--sidebar-sticky { min-height: 400px; max-width: 300px; margin: 0; }
.ft-ad-slot--in-content { min-height: 90px; }
.ft-ad-slot--in-article { min-height: 90px; margin: 28px 0; }
.ft-ad-slot--mobile-sticky { min-height: 50px; flex: 1; margin: 0; }
.ft-ad-slot--modal { min-height: 200px; }

/* Article sidebar column: TOC + a sticky ad move together. */
.ft-article__side { position: sticky; top: 88px; align-self: start; display: flex; flex-direction: column; gap: 20px; }
.ft-article__side .ft-toc--desktop { position: static; }
@media (max-width: 960px) { .ft-article__side { position: static; } }
.ft-article__side-ad { }
@media (max-width: 960px) { .ft-article__side-ad { display: none; } }

/* In-feed blog ad spans the whole grid row. */
.ft-post-list__ad { grid-column: 1 / -1; }

/* ---------- Mobile sticky anchor ---------- */
.ft-sticky-anchor {
	position: fixed;
	bottom: 0; left: 0; right: 0;
	display: none;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	background: var(--surface);
	border-top: 1px solid var(--border);
	z-index: 150;
}
.ft-sticky-anchor.is-visible { display: flex; }
@media (min-width: 900px) { .ft-sticky-anchor { display: none !important; } }
.ft-sticky-anchor__close {
	border: none;
	background: var(--surface-2);
	color: var(--text);
	border-radius: 50%;
	width: 32px; height: 32px;
	display: inline-flex; align-items: center; justify-content: center;
	cursor: pointer;
}

/* ---------- Rewarded / value-moment modal ---------- */
.ft-modal { position: fixed; inset: 0; z-index: 400; display: none; }
.ft-modal.is-open { display: block; }
.ft-modal__backdrop {
	position: absolute; inset: 0;
	background: rgba(5,10,8,.6);
	opacity: 0; transition: opacity .2s ease;
}
.ft-modal.is-open .ft-modal__backdrop { opacity: 1; }
.ft-modal__panel {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%, -46%);
	width: min(420px, 90vw);
	background: var(--surface);
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 16px;
	padding: 24px;
	text-align: center;
	opacity: 0;
	transition: opacity .2s ease, transform .2s ease;
}
.ft-modal.is-open .ft-modal__panel { opacity: 1; transform: translate(-50%, -50%); }
.ft-modal__close {
	position: absolute; top: 12px; right: 12px;
	border: none;
	background: var(--surface-2);
	color: var(--text);
	border-radius: 50%;
	width: 32px; height: 32px;
	cursor: pointer;
}
.ft-modal__close:disabled { opacity: .4; cursor: not-allowed; }
.ft-modal__countdown { margin-top: 16px; font-weight: 500; color: var(--text-muted); }
.ft-modal__timer {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--accent-soft); color: var(--accent);
	font-weight: 700; margin-left: 6px;
}
.ft-modal__reveal-btn { margin-top: 16px; width: 100%; }
