/* ========================================================================== 
   Overdrive V60 — canonical accent + hover contract
   Light = Overdrive Blue (#421AFF); Dark = Electric Lime (#D8FF38).
   Text rendered ON photography is always lime for visibility.
   ========================================================================== */

/* One source of truth for every late component that consumes an accent token. */
html[data-theme="light-mode"] body.go-verge {
	--accent: #421aff;
	--uv: #421aff;
	--acc-uv: #421aff;
	--focus: #421aff;
	--link-hover: #421aff;
	--go-link-blue: #421aff;
	--go-interaction-hover: #421aff;
	--go-card-hover: #421aff;
	--go-editorial-card-hover: #421aff;
	--go-cluster-hover: #421aff;
}
html[data-theme="dark-mode"] body.go-verge {
	--accent: #d8ff38;
	--focus: #d8ff38;
	--link-hover: #d8ff38;
	--go-link-blue: #d8ff38;
	--go-interaction-hover: #d8ff38;
	--go-card-hover: #d8ff38;
	--go-editorial-card-hover: #d8ff38;
	--go-cluster-hover: #d8ff38;
}

/* Ordinary editorial surfaces: all title/link/control hover states follow theme. */
html[data-theme="light-mode"] body.go-verge .go-site :where(
	a,
	button,
	.go-tile__title a,
	.go-stream__title a,
	.go-archive-row__title a,
	.go-aside-item__title a,
	.go-topic-card a,
	.go-home-platform a,
	.go-after-card a,
	.go-after-related-feature a,
	.go-after-related-row a,
	.go-after-latest-entry a,
	.go-after-latest-row a,
	.go-after-review-feature a,
	.go-after-review-mini a,
	.go-context-links__link,
	.go-inline-related__link,
	.go-tag,
	.go-chip,
	.go-chips a,
	.go-pagination a,
	.go-text-link
):is(:hover,:focus-visible) {
	color: #421aff !important;
	-webkit-text-fill-color: #421aff !important;
	text-decoration-color: #421aff !important;
}
html[data-theme="dark-mode"] body.go-verge .go-site :where(
	a,
	button,
	.go-tile__title a,
	.go-stream__title a,
	.go-archive-row__title a,
	.go-aside-item__title a,
	.go-topic-card a,
	.go-home-platform a,
	.go-after-card a,
	.go-after-related-feature a,
	.go-after-related-row a,
	.go-after-latest-entry a,
	.go-after-latest-row a,
	.go-after-review-feature a,
	.go-after-review-mini a,
	.go-context-links__link,
	.go-inline-related__link,
	.go-tag,
	.go-chip,
	.go-chips a,
	.go-pagination a,
	.go-text-link
):is(:hover,:focus-visible) {
	color: #d8ff38 !important;
	-webkit-text-fill-color: #d8ff38 !important;
	text-decoration-color: #d8ff38 !important;
}

/* Card-level hover must recolour the title even when pointer enters via thumbnail. */
html[data-theme="light-mode"] body.go-verge .go-site :where(
	.go-tile:not(.go-tile--overlay):not(.go-tile--feature),
	.go-stream__card,
	.go-archive-row,
	.go-aside-item,
	.go-after-card,
	.go-after-related-row,
	.go-after-latest-row,
	.go-after-review-mini,
	.go-topic-card,
	.go-home-platform,
	.go-platform-story
):hover :where(h2,h3,strong,.go-tile__title,.go-stream__title,.go-archive-row__title,.go-aside-item__title) a {
	color: #421aff !important;
	-webkit-text-fill-color: #421aff !important;
}
html[data-theme="dark-mode"] body.go-verge .go-site :where(
	.go-tile:not(.go-tile--overlay):not(.go-tile--feature),
	.go-stream__card,
	.go-archive-row,
	.go-aside-item,
	.go-after-card,
	.go-after-related-row,
	.go-after-latest-row,
	.go-after-review-mini,
	.go-topic-card,
	.go-home-platform,
	.go-platform-story
):hover :where(h2,h3,strong,.go-tile__title,.go-stream__title,.go-archive-row__title,.go-aside-item__title) a {
	color: #d8ff38 !important;
	-webkit-text-fill-color: #d8ff38 !important;
}

/* Native controls and selected states follow the same theme accent contract. */
html[data-theme="light-mode"] body.go-verge { accent-color: #421aff; }
html[data-theme="dark-mode"] body.go-verge { accent-color: #d8ff38; }

html[data-theme="light-mode"] body.go-verge .go-site :where(
	.go-chip.is-active,
	.go-chips a.is-active,
	.go-chips a[aria-current="page"],
	.go-latest-filter.is-active,
	.go-latest-filter[aria-pressed="true"],
	.go-pagination .page-numbers.current,
	.go-pagination [aria-current="page"]
) {
	background: #421aff !important;
	border-color: #421aff !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

html[data-theme="dark-mode"] body.go-verge .go-site :where(
	.go-chip.is-active,
	.go-chips a.is-active,
	.go-chips a[aria-current="page"],
	.go-latest-filter.is-active,
	.go-latest-filter[aria-pressed="true"],
	.go-pagination .page-numbers.current,
	.go-pagination [aria-current="page"]
) {
	background: #d8ff38 !important;
	border-color: #d8ff38 !important;
	color: #101217 !important;
	-webkit-text-fill-color: #101217 !important;
}

/*
 * PHOTO SURFACES ARE THE EXCEPTION TO THE THEME ACCENT.
 * If the copy is literally drawn over an image/card photograph, resting and
 * interactive text stays Electric Lime in BOTH themes for predictable contrast.
 */
html[data-theme] body.go-verge :where(
	.go-hero-visual__feature .go-tile:not(.go-tile--noimage),
	.go-tile--overlay,
	.go-tile--feature:not(.go-tile--noimage),
	.go-scored-masthead,
	.figure-overlay,
	.go-image-overlay,
	.go-card--overlay,
	[class*="__overlay"]
) :where(
	h1,h2,h3,h4,strong,
	.go-tile__title,
	.go-scored-masthead__title,
	.go-scored-masthead__kicker,
	.go-scored-masthead__deck,
	a
) {
	color: #d8ff38 !important;
	-webkit-text-fill-color: #d8ff38 !important;
	text-decoration-color: #d8ff38 !important;
}

/* Icons inherit the canonical interaction foreground, without touching ad iframes. */
body.go-verge .go-site :where(
	.go-iconbtn,
	.go-theme-toggle,
	.go-scored-masthead__action,
	.go-share-more__toggle,
	.go-share-more__native,
	.go-product-action--save,
	.go-load-more,
	.go-ui-arrow
):is(:hover,:focus-visible) svg {
	color: currentColor !important;
}
body.go-verge .go-site :where(
	.go-iconbtn,
	.go-theme-toggle,
	.go-scored-masthead__action,
	.go-share-more__toggle,
	.go-share-more__native,
	.go-product-action--save,
	.go-load-more,
	.go-ui-arrow
):is(:hover,:focus-visible) svg [stroke]:not([stroke="none"]) { stroke: currentColor !important; }
body.go-verge .go-site :where(
	.go-iconbtn,
	.go-theme-toggle,
	.go-scored-masthead__action,
	.go-share-more__toggle,
	.go-share-more__native,
	.go-product-action--save,
	.go-load-more,
	.go-ui-arrow
):is(:hover,:focus-visible) svg [fill]:not([fill="none"]) { fill: currentColor !important; }

/* Chrome exceptions: lime header/off-canvas need ink/lime rather than page accent. */
body.go-verge .go-header--471 :where(.go-iconbtn,.go-theme-toggle):is(:hover,:focus-visible),
body.go-verge .go-header--editorial :where(.go-iconbtn,.go-theme-toggle):is(:hover,:focus-visible) {
	color: #101217 !important;
	-webkit-text-fill-color: #101217 !important;
}
body.go-verge .go-offcanvas :where(a,button,.go-iconbtn,.go-theme-toggle):is(:hover,:focus-visible) {
	color: #d8ff38 !important;
	-webkit-text-fill-color: #d8ff38 !important;
}
