/* Shared editorial contrast. Loaded last on every page. */
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)),
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) :is(h1,h2,h3,h4,h5,h6,p,a,span,em,strong,b,small,label,button,summary,figcaption,li,dt,dd,legend,div) { color:#fff!important; }
/* Give labels and interactive states the same white ink on dark surfaces. */
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) :is(.label,.eyebrow,.service-number,.art-index,.art-conversation,.ce-domain,.header-contact,.outline-link,.text-link),
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) :is(a,button):is(:hover,:focus-visible,[aria-current="page"]),
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) :is(a,button):is(:hover,:focus-visible) span { color:#fff!important; }
/* Light control surfaces retain dark text, including nested icons. */
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) :is(input,textarea,select),
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) :is(input,textarea)::placeholder { color:#000!important; }
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) :is(input,textarea,select) { background:#fff!important; }
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) .cta:not(.secondary),
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) .cta:not(.secondary) *,
html body #home .pill:not(.pill-ghost),
html body #home .pill:not(.pill-ghost) * { color:#000!important; }
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) .cta:not(.secondary):hover,
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) .cta:not(.secondary):hover * { background:#101111!important;color:#fff!important; }
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) .cta.secondary:hover,
html body :is(.dark,.page-intro.art-hero,.opening-dark,.application-dark,.editorial-gallery,.home-image-break,.case-strip,.project-next,.hds-film,.film-toolbar,.art-project-preview span,.header,.masthead,.site-header,.mobile-menu,.site-footer,footer,.ce-local-home main,.projects,.motion-break,.ce-section,body > main > .method,.hero:where(#home)) .cta.secondary:hover * { color:#000!important; }
html body .case-strip .case-strip-controls button:hover,
html body .case-strip .case-strip-card:is(:hover,:focus-visible) .case-strip-caption>span { color:#000!important; }
html body .film-toolbar button:hover,
html body .film-toolbar button:hover * { color:#000!important; }
html body .project-next .button:hover,
html body .project-next .button:hover * { color:#000!important; }
/* Filled black calls to action on light sections. */
html body :is(.closing,.contact-layout,.chapter:not(.dark)) .cta,
html body :is(.closing,.contact-layout,.chapter:not(.dark)) .cta *,
html body :is(.manifesto,.contact-cta) .pill,
html body :is(.manifesto,.contact-cta) .pill * { color:#fff!important; }
/* Preserve the discreet, transparent Portfolio links on phones. */
@media(max-width:800px) {
 html body .project-next .project-next-inner>.button:hover,
 html body .project-next .project-next-inner>.button:hover * { color:#fff!important; }
}
