/* site-dark.css — GENERATED by tools/build-dark.mjs. Do not hand-edit above
 * the HAND-WRITTEN mark at the bottom; re-run the script instead.
 *
 * The dark colourway for iainfeeney.com's marketing pages, derived rule by
 * rule from the published Webflow stylesheet so the two cannot fall out of
 * step. The theme switch in the navbar sets .dark and data-stacklumen-theme
 * on <html>; every rule below is scoped to that, so nothing here can affect
 * the default light rendering.
 *
 * 146 derived rules follow.
 */

:is(html.dark, html[data-stacklumen-theme="dark"]) { color-scheme: dark; }
:is(html.dark, html[data-stacklumen-theme="dark"]) body { background-color: #0b0b0b; color: #ededed; }

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-nav {
  background-color: #0b0b0bd1;
  border-bottom: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-nav-logo {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-nav-link {
  color: #cfcfcf;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-nav-cta {
  color: #0b0b0b;
  background-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft {
  background-color: #0b0b0b;
  border-top: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft-display {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft-grid {
  border-bottom: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft-colh {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft-link {
  color: #cfcfcf;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft-bottom {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ab {
  background-color: #0b0b0b;
  border-bottom: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ab-lead {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ab-p {
  color: #cfcfcf;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ab-aside {
  border-top: 2px solid #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ab-dt {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ab-dd {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero {
  background-color: #0b0b0b;
  background-image: radial-gradient(circle at 1px 1px, #4e9bf21a 1px, #4e9bf200 1.5px), radial-gradient(1200px 720px at 88% 16%, #4e9bf226, #4e9bf200 62%), radial-gradient(960px 620px at 10% 96%, #3b9eff1f, #3b9eff00 60%), linear-gradient(#4e9bf20d 0%, #4e9bf200 100%);
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero:before {
  background-color: #0b0b0b;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero:after {
  background-color: #0b0b0b;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-eyebrow {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-eyebrow:before {
  background-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-name {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-lede {
  color: #cfcfcf;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-photo {
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-capt {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-capt:before {
  background-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-btn {
  color: #0b0b0b;
  background-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-btn:hover {
  background-color: #3d8ce8;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-btn-ghost {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-btn-ghost:hover {
  color: #ededed;
  border-color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-meta {
  border-top: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-fact-n {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-fact-l {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-sec {
  background-color: #0b0b0b;
  border-bottom: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-sec.is-atmos {
  background-color: #0b0b0b;
  background-image: radial-gradient(circle at 1px 1px, #4e9bf212 1px, #4e9bf200 1.5px), radial-gradient(1100px 640px at 82% 12%, #4e9bf21c, #4e9bf200 62%), radial-gradient(900px 560px at 8% 92%, #3b9eff17, #3b9eff00 60%);
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-sec.is-atmos:before {
  background-color: #0b0b0b;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-sec.is-atmos:after {
  background-color: #0b0b0b;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-kicker {
  color: #858585;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-h2 {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-tab {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-tab:hover {
  border-color: #4e9bf273;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-panegrid {
  background-color: #262626;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cell {
  background-color: #0b0b0b;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cell-n {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cell-t {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cell-d {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pane-media {
  background-color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-flabel {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-finput {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-finput:focus {
  border-color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-finput._w-select {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-finput._w-select:focus {
  border-color: #4e9bf2;
  box-shadow: 0 0 0 3px #4e9bf21f;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ftextarea {
  color: #ededed;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ftextarea:focus {
  border-color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-fsubmit {
  color: #0b0b0b;
  background-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-fsubmit:hover {
  background-color: #3d8ce8;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-fhelp {
  color: #8e8e8e;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-app {
  color: #0b0b0b;
  background-color: #4e9bf2;
  border: 1px solid #0b0b0b2e;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-app:hover {
  background-color: #3d8ce8;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-app-tag {
  color: #0b0b0b;
  background-color: #0b0b0b2e;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-app-name {
  color: #0b0b0b;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-app-desc {
  color: #0b0b0bf0;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-app-cta {
  color: #0b0b0b;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-tile {
  background-color: #0b0b0b;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-tile:hover {
  border-color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-tile-name {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-tile-desc {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-qr-tile-src {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #ededed1a;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard:hover {
  border-color: #4e9bf273;
  box-shadow: 0 20px 44px -24px #4e9bf280;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard-meta {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard-name {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard-scope {
  color: #c2c2c2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard-foot {
  color: #4e9bf2;
  border-top: 1px solid #ededed12;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard-ind {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard-yr {
  color: #8e8e8e;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #ededed1a;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard:hover {
  border-color: #4e9bf273;
  box-shadow: 0 20px 44px -24px #4e9bf280;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard-topic {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard-rt {
  color: #8e8e8e;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard-title {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard-sum {
  color: #c2c2c2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard-foot {
  color: #4e9bf2;
  border-top: 1px solid #ededed12;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-wcard-img {
  background-image: linear-gradient(135deg, #101216, #181b22);
  border-bottom: 1px solid #ededed12;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-acard-img {
  background-image: linear-gradient(135deg, #101216, #181b22);
  border-bottom: 1px solid #ededed12;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-art-meta {
  color: #a2a2a2;
  border-top: 1px solid #ededed1a;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-art-cover {
  background-image: linear-gradient(135deg, #101216, #181b22);
  border: 1px solid #ededed14;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-rt {
  color: #dcdcdc;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-back {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-stat {
  background-color: #ededed08;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-stat-v {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-stat-l {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-case-cta {
  color: #0b0b0b;
  background-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-case-cta:hover {
  background-color: #3d8ce8;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-case-h2 {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-case-blk {
  border-top: 1px solid #ededed1a;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cat {
  color: #c2c2c2;
  background-color: #0d0e10;
  border: 1px solid #ededed1f;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-quote {
  background-color: #ededed08;
  border: 1px solid #262626;
  border-left: 2px solid #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-quote-t {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-av {
  background-color: #181b22;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-quote-n {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-quote-r {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cs-card {
  background-color: #ededed08;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cs-badge {
  color: #4e9bf2;
  background-color: #4e9bf217;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-cs-name {
  color: #c2c2c2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-soc-card {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-soc-card:hover {
  border-color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-soc-card:before {
  background-image: radial-gradient(circle, #4e9bf229, #4e9bf200 70%);
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-soc-plat {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-soc-handle {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-soc-arrow {
  color: #4a5260;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-soc-eyebrow {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft-social-link {
  color: #cfcfcf;
  background-color: #111;
  border: 1px solid #ededed14;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-ft-social-link:hover {
  color: #0b0b0b;
  background-color: #4e9bf2;
  border-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-card {
  color: #ededed;
  background-color: #0b0b0b;
  border: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-card:hover {
  border-color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-cover {
  background-image: linear-gradient(135deg, #12141a, #1d212a);
  border-bottom: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-kind {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-status {
  color: #8e8e8e;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-title {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-sum {
  color: #c2c2c2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-pub-foot {
  color: #4e9bf2;
  border-top: 1px solid #ededed12;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .if-bmc {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-title {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-title-sub {
  color: #858585;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-cta {
  color: #0b0b0b;
  background-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-cta:hover {
  background-color: #3d8ce8;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-link {
  color: #ededed;
  border-bottom: 2px solid #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-link:hover {
  color: #4e9bf2;
  border-bottom-color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-id-photo {
  background-color: #191919;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-id-name {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-id-role {
  color: #e6e6e6;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-id-org {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-strip {
  border-top: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card {
  border-left: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card:hover {
  background-color: #0b0b0b99;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-soft {
  background-color: #ededed0a;
  border-left: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-ico-grey {
  background-color: #333;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-name {
  color: #ededed;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-name-soft {
  color: #858585;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-desc {
  color: #a2a2a2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-desc-soft {
  color: #7c7c7c;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-tag {
  color: #4e9bf2;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-tag-soft {
  color: #858585;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card {
  border-top: 1px solid #262626;
}

:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-card-soft {
  border-top: 1px solid #262626;
}


/* ══ HAND-WRITTEN ══════════════════════════════════════════════════════════
   Below this line is authored, not derived. Re-running the generator keeps it.
   ═══════════════════════════════════════════════════════════════════════ */

/* THE HERO HEADLINE. Bigger, and one flat value per theme rather than the
   near-black the rest of the type uses: this is the one place on the site
   where the contrast is the point.

   BOTH LINES TAKE THE SAME COLOUR. The sub-line used to sit a step lighter,
   which read as a caption under the name. It is not a caption — it is the
   half of the statement that says what the work is, so it carries the same
   weight as the half that says who does it. */
.ifh-title,
.ifh-title-sub {
  font-size: clamp(40px, 6.4vw, 84px);
  color: #000;
}
:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-title,
:is(html.dark, html[data-stacklumen-theme="dark"]) .ifh-title-sub { color: #fff; }

/* The page hero headings on the inner pages take the same treatment, at the
   scale they already had — they are titles, not the home page's statement. */
:is(html.dark, html[data-stacklumen-theme="dark"]) .if-hero-name { color: #fff; }
