/*
Theme Name: TechDogma Refinement
Description: An editorial redesign for TechDogma, from the illustrated front page to the reading experience.
Template: techdogma-1.8.30
Version: 2.0.1
Text Domain: techdogma-refinement
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root,
:root[data-theme] {
  --td-bg: #f6f3ed;
  --td-bg-soft: #fcfaf5;
  --td-ink: #20252e;
  --td-ink-dark: #171d28;
  --td-muted: #555e68;
  --td-line: #b9b7b1;
  --td-red: #b83d37;
  --td-hover: #fff9f3;
  --td-panel: #fcfaf5;
  --td-refine-blue: #145b82;
  --td-refine-coral: #ae3731;
  --td-refine-lime: #506313;
  --td-refine-blue-wash: rgb(116 173 215 / .14);
  --td-refine-lime-wash: rgb(164 186 61 / .20);
  --td-refine-coral-wash: rgb(238 111 90 / .13);
  --td-refine-line: rgb(32 37 46 / .20);
  --td-refine-glitch-lime: #a8c34b;
  --td-refine-scan: #ee978b;
  --td-refine-pad: clamp(1rem, 3vw, 2.35rem);
  --td-refine-space: clamp(2rem, 5vw, 4.25rem);
}

:root[data-theme="dark"] {
  --td-bg: #171d28;
  --td-bg-soft: #222b37;
  --td-ink: #f1eee7;
  --td-ink-dark: #f8f5ee;
  --td-muted: #b6c1cd;
  --td-line: #536170;
  --td-red: #ffa194;
  --td-hover: #263546;
  --td-panel: #222b37;
  --td-refine-blue: #a4dbff;
  --td-refine-coral: #ffa194;
  --td-refine-lime: #d3e793;
  --td-refine-blue-wash: rgb(114 176 226 / .13);
  --td-refine-lime-wash: rgb(177 205 84 / .15);
  --td-refine-coral-wash: rgb(250 141 125 / .14);
  --td-refine-line: rgb(233 239 245 / .23);
  --td-refine-scan: #de8378;
}

body,
html[data-theme="dark"] body { background: var(--td-bg); color: var(--td-ink); }
:where(main, .site-header, .site-footer) :focus-visible {
  outline: 2px solid var(--td-refine-blue);
  outline-offset: 4px;
}

/* Masthead and navigation */
.site-header .td-wordmark__mark { display: none; }
.site-header .site-navigation .primary-menu a:is(:hover, :focus-visible, [aria-current="page"]),
.site-header .site-navigation .primary-menu :is(.current-menu-item, .current_page_item) > a,
html[data-theme="dark"] .site-header .site-navigation .primary-menu a:is(:hover, :focus-visible, [aria-current="page"]),
html[data-theme="dark"] .site-header .site-navigation .primary-menu :is(.current-menu-item, .current_page_item) > a {
  color: var(--td-refine-blue);
}

.site-header .primary-menu a::after {
  height: 2px;
  background: var(--td-refine-coral);
}

.site-header .primary-menu a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left center;
}

@media (min-width: 721px) {
  .site-header .site-header__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    justify-content: center;
    gap: .3rem .55rem;
    padding-block: .7rem .4rem;
  }
  .site-header .site-branding { grid-column: 2; justify-self: center; }
  .site-header .td-wordmark { font-size: clamp(2.6rem, 4.25vw, 3.35rem); }
  .site-header .site-navigation {
    grid-column: 1 / -1;
    justify-self: center;
    gap: .5rem;
  }
  .site-header .site-navigation > :is(.td-search-toggle, .td-theme-toggle) {
    position: absolute;
    inset-block-start: .75rem;
    inset-inline-end: 0;
  }
  .site-header .site-navigation > .td-search-toggle { inset-inline-end: 2.6rem; }
  .site-header .primary-menu { gap: clamp(.6rem, 1.25vw, .85rem); }
  .site-header .primary-menu a {
    padding: .65rem 0 .7rem;
    font-size: clamp(1.12rem, 1.83vw, 1.42rem);
    letter-spacing: .035em;
    white-space: nowrap;
  }
  .site-header .primary-menu a::after { bottom: .35rem; }
}

@media (min-width: 1040px) {
  @supports (grid-template-columns: subgrid) and selector(:has(*)) {
    .site-header:has(.primary-menu > li:nth-child(6):last-child) .site-header__inner {
      grid-template-columns:
        minmax(5rem, 1fr) repeat(3, max-content)
        max-content repeat(3, max-content) minmax(5rem, 1fr);
      column-gap: clamp(.65rem, 1vw, .85rem);
      padding-block: .7rem;
    }
    .site-header:has(.primary-menu > li:nth-child(6):last-child) .site-branding {
      grid-area: 1 / 5;
      z-index: 1;
      padding-inline: clamp(1.35rem, 2.15vw, 2rem);
    }
    .site-header:has(.primary-menu > li:nth-child(6):last-child) .site-navigation {
      grid-area: 1 / 1 / 2 / -1;
      display: grid;
      grid-template-columns: subgrid;
      justify-self: stretch;
      gap: normal;
    }
    .site-header:has(.primary-menu > li:nth-child(6):last-child) .primary-menu {
      grid-area: 1 / 2 / 2 / -2;
      display: grid;
      grid-template-columns: subgrid;
      align-items: center;
      gap: normal;
    }
    .site-header:has(.primary-menu > li:nth-child(6):last-child) .primary-menu::before {
      grid-area: 1 / 4;
      content: "";
    }
    .site-header:has(.primary-menu > li:nth-child(6):last-child) .site-navigation > :is(.td-search-toggle, .td-theme-toggle) {
      position: static;
      grid-area: 1 / -2 / 2 / -1;
      justify-self: end;
      align-self: center;
    }
    .site-header:has(.primary-menu > li:nth-child(6):last-child) .site-navigation > .td-search-toggle {
      margin-inline-end: 2.6rem;
    }
  }
}

@media (max-width: 720px) {
  .site-header .site-header__inner {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) 3rem;
    align-items: center;
    gap: 0;
  }
  .site-header .site-branding { grid-area: 1 / 2; justify-self: center; min-width: 0; }
  .site-header .td-wordmark { font-size: clamp(1.7rem, 9.4vw, 2.75rem); }
  .site-header .menu-toggle { grid-area: 1 / 3; }
}

.site-header {
  background: var(--td-bg);
  border-bottom: 0;
  box-shadow: none;
}

.site-header .td-wordmark__tech,
html[data-theme="dark"] .site-header .td-wordmark__tech { color: var(--td-refine-blue); }
.site-header .td-wordmark__dogma,
html[data-theme="dark"] .site-header .td-wordmark__dogma { color: var(--td-ink); }

.site-header .td-wordmark::after {
  position: absolute;
  inset: .12em auto .12em 0;
  width: 24%;
  background: linear-gradient(90deg, transparent, var(--td-refine-scan) 72%, transparent);
  opacity: 0;
  pointer-events: none;
  content: "";
  animation: td-refine-scan 7s linear infinite;
}

.site-header .td-wordmark {
  position: relative;
  isolation: isolate;
}

.site-header .td-wordmark:is(:hover, :focus-visible) > :is(.td-wordmark__tech, .td-wordmark__dogma) {
  animation: td-refine-glitch .42s steps(1, end) both;
}

.site-header .td-wordmark:is(:hover, :focus-visible)::after { animation-play-state: paused; opacity: 0; }

@keyframes td-refine-scan {
  0%, 88% { translate: -25%; opacity: 0; }
  90% { translate: 0; opacity: .6; }
  96% { translate: 340%; opacity: .55; }
  98%, 100% { translate: 425%; opacity: 0; }
}

@keyframes td-refine-glitch {
  0%, 100% { translate: 0; text-shadow: none; }
  15% { translate: -2px 0; text-shadow: 3px -2px var(--td-refine-glitch-lime), -2px 1px var(--td-refine-scan); }
  34% { translate: 2px 1px; text-shadow: -3px -1px var(--td-refine-glitch-lime), 2px 1px var(--td-refine-blue); }
  53% { translate: -1px 0; text-shadow: 2px 1px var(--td-refine-glitch-lime); }
  72% { translate: 1px 0; text-shadow: -1px 1px var(--td-refine-scan); }
}

.site-header .primary-menu :is(.current-menu-item, .current_page_item) > a::after {
  transform: scaleX(1);
}
.site-header .site-navigation > :is(.td-search-toggle, .td-theme-toggle):is(:hover, :focus-visible),
.site-header .menu-toggle:is(:hover, :focus-visible) {
  color: var(--td-refine-blue);
  background: var(--td-refine-blue-wash);
}

@media (max-width: 720px) {
  .site-header .site-navigation .primary-menu a {
    font-size: clamp(1.28rem, 5.6vw, 1.72rem);
    min-height: 2.75rem;
    padding-block: .48rem;
  }
  .site-header .menu-toggle { width: 3rem; min-height: 3rem; }
}

.td-search-panel .td-search-panel__inner {
  border-color: var(--td-refine-line);
  background: var(--td-bg-soft);
  box-shadow: 0 .5rem 1.5rem rgb(17 28 42 / .12);
}
.td-search-panel .td-search-panel__field { min-width: 0; }
.td-search-panel .td-search-panel__submit {
  background: var(--td-refine-coral);
  color: var(--td-bg);
}

/* Front page */
.techdogma-front-page .td-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.03fr);
  grid-template-areas: "intro featured";
  min-height: 0;
  gap: clamp(1rem, 2.4vw, 2.15rem);
  align-items: stretch;
  margin-top: clamp(.5rem, 2vw, 1.75rem);
  padding: 0;
}

.techdogma-front-page .td-hero__inner {
  grid-area: intro;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  overflow: hidden;
  padding: var(--td-refine-pad);
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
  text-align: start;
}

.techdogma-front-page .td-hero__inner::before {
  width: 3.2rem;
  height: .5rem;
  margin-bottom: clamp(.8rem, 2.5vw, 1.5rem);
  background: var(--td-refine-coral);
  box-shadow: .85rem 0 0 var(--td-refine-lime-wash);
  content: "";
}

.techdogma-front-page .td-hero__inner::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    radial-gradient(circle at 105% 0%, var(--td-refine-lime-wash) 0 18%, transparent 18.2%),
    repeating-radial-gradient(circle at 105% 0%, transparent 0 16px, var(--td-refine-blue-wash) 17px 18px, transparent 19px 26px);
  mask-image: linear-gradient(230deg, black 0%, transparent 55%);
  pointer-events: none;
  content: "";
}

.techdogma-front-page .td-hero__title {
  margin: 0;
  color: var(--td-ink);
  font-size: clamp(2.6rem, 6.2vw, 5.65rem);
  line-height: .89;
  letter-spacing: -.035em;
  text-align: start;
}
.techdogma-front-page .td-hero__title span:last-child { color: var(--td-refine-blue); }
.techdogma-front-page .td-hero__title > span {
  justify-self: start;
  text-align: start;
}
.techdogma-front-page .td-hero__intro {
  max-width: 39ch;
  margin: clamp(1.05rem, 2.6vw, 1.85rem) 0 0;
  color: var(--td-muted);
  font-size: clamp(1.08rem, 1.7vw, 1.32rem);
  line-height: 1.45;
  font-weight: 500;
}

.techdogma-front-page .td-hero-featured {
  grid-area: featured;
  min-width: 0;
  width: auto;
  max-width: none;
  align-self: stretch;
  padding: clamp(.85rem, 2.1vw, 1.5rem);
  border: 1px solid var(--td-refine-line);
  background: var(--td-refine-blue-wash);
}

.techdogma-front-page .td-hero-featured__label {
  margin: 0 0 .75rem;
  padding: 0 0 .62rem;
  border: 0;
  border-bottom: 1px solid var(--td-refine-line);
  color: var(--td-refine-blue);
  font-size: 1.04rem;
  letter-spacing: .12em;
}

.techdogma-front-page .td-hero-featured__list {
  display: grid;
  gap: .48rem;
  margin: 0;
  padding: 0;
}

.techdogma-front-page .td-hero-featured__item {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.techdogma-front-page .td-hero-featured__item a {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: clamp(.65rem, 1.45vw, 1rem);
  min-height: 3.7rem;
  padding: .4rem;
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
  transition: border-color .18s ease, background-color .18s ease;
}
.techdogma-front-page .td-hero-featured__item--with-image a {
  grid-template-columns: minmax(0, min(31%, 8.6rem)) minmax(0, 1fr);
}
.techdogma-front-page .td-hero-featured__item a:is(:hover, :focus-visible) {
  border-color: var(--td-refine-coral);
  background: var(--td-hover);
}

.techdogma-front-page .td-hero-featured__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.techdogma-front-page .td-hero-featured__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
  opacity: 1;
  transition: scale .25s ease;
}
.techdogma-front-page .td-hero-featured__item a:is(:hover, :focus-visible) img { scale: 1.04; }
.techdogma-front-page .td-hero-featured__copy { min-width: 0; padding-block: .1rem; }
.techdogma-front-page .td-hero-featured__category {
  color: var(--td-refine-coral);
  font-size: .76rem;
  letter-spacing: .055em;
}
.techdogma-front-page .td-hero-featured__title {
  color: var(--td-ink);
  font-size: clamp(1rem, 1.65vw, 1.32rem);
  line-height: 1.12;
}
.techdogma-front-page .td-hero-featured__item a:is(:hover, :focus-visible) .td-hero-featured__title { color: var(--td-refine-blue); }

.techdogma-front-page #latest-articles { margin-top: var(--td-refine-space); }
.techdogma-front-page #latest-articles-title {
  margin: 0 0 1rem;
  padding: .45em .6em;
  border: 0;
  background: var(--td-refine-lime-wash);
  color: var(--td-ink);
  font-size: clamp(2rem, 4.5vw, 3.35rem);
  line-height: 1;
}

.techdogma-front-page .td-lower {
  gap: 1rem;
  margin-top: var(--td-refine-space);
  padding-bottom: var(--td-refine-space);
}

.techdogma-front-page .td-lower__panel {
  padding: var(--td-refine-pad);
  border: 1px solid var(--td-refine-line);
  background: var(--td-refine-blue-wash);
}
.techdogma-front-page .td-lower__panel + .td-lower__panel { background: var(--td-refine-coral-wash); }
.techdogma-front-page .td-lower__title { margin-top: 0; font-size: clamp(2rem, 4vw, 3rem); }
.techdogma-front-page .td-lower__copy { max-width: 48ch; color: var(--td-muted); }
.techdogma-front-page .td-lower__rule { display: none; }

@media (max-width: 780px) {
  .techdogma-front-page .td-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "intro" "featured"; }
  .techdogma-front-page .td-hero__title { font-size: clamp(2.55rem, 12vw, 5.4rem); }
  .techdogma-front-page .td-hero-featured__item--with-image a { grid-template-columns: clamp(4.2rem, 26vw, 9rem) minmax(0, 1fr); }
  .techdogma-front-page .td-hero-featured__title { font-size: clamp(1.05rem, 4.1vw, 1.38rem); }
}

/* Chronological feed, archive and search */
:is(.techdogma-front-page .td-latest, .archive, .search) .essay-list,
.td-blog-more-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  border: 0;
}

:is(.techdogma-front-page .td-latest, .archive, .search) .essay-row,
.td-blog-more-row {
  min-width: 0;
  margin: 0;
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
}
:is(.techdogma-front-page .td-latest, .archive, .search) .essay-row__link {
  display: block;
  height: 100%;
  padding: clamp(.85rem, 2vw, 1.3rem);
}
.essay-row__link:is(:hover, :focus-visible) { background: var(--td-refine-blue-wash); }
.essay-row__meta { color: var(--td-muted); }
.essay-row__topic { color: var(--td-refine-coral); }
.essay-row__title {
  margin: .35em 0 0;
  color: var(--td-ink);
  font-size: clamp(1.3rem, 2.65vw, 2.05rem);
  line-height: 1.1;
}
.essay-row__link:is(:hover, :focus-visible) .essay-row__title { color: var(--td-refine-blue); }

:is(.td-blog-hero, .td-directory-hero, .td-about-hero, .td-contact-hero, .td-page-hero) {
  min-height: 0;
  gap: clamp(.6rem, 2vw, 1.35rem);
  align-items: end;
  margin-block: clamp(1rem, 3vw, 2.35rem) clamp(1.5rem, 3.5vw, 2.9rem);
  padding: var(--td-refine-pad);
  border: 0;
  border-inline-start: .38rem solid var(--td-refine-coral);
  background: var(--td-refine-blue-wash);
  text-align: start;
}

:is(.td-blog-hero__title, .td-directory-hero__title, .td-about-hero__title, .td-contact-hero__title, .td-page-title) {
  margin: 0;
  color: var(--td-ink);
  font-size: clamp(2.55rem, 6.65vw, 5.55rem);
  line-height: .93;
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
}

:is(.td-blog-hero__intro, .td-directory-hero__intro, .td-about-hero__intro, .td-contact-hero__intro, .td-page-description) {
  max-width: 56ch;
  margin: .65rem 0 0;
  color: var(--td-muted);
  font-size: clamp(1.06rem, 1.65vw, 1.3rem);
  line-height: 1.46;
}

.td-blog-latest__heading,
.td-blog-listing__header,
.td-directory__header {
  margin: 0 0 .95rem;
  padding: .7rem .9rem;
  border: 0;
  background: var(--td-refine-lime-wash);
  color: var(--td-ink);
}

.td-blog-latest__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.75rem, 1.5vw, 1.15rem);
  border: 0;
}

.td-blog-latest__list .td-blog-latest-row {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
  transition: border-color .18s ease;
}

.td-blog-latest__list .td-blog-latest-row:is(:hover, :focus-within),
.td-blog-more-row:is(:hover, :focus-within) { border-color: var(--td-refine-coral); }

.td-blog-latest-row .td-blog-latest-row__image {
  width: 100%;
  max-width: none;
  aspect-ratio: 16 / 9;
  border: 0;
  background: var(--td-refine-blue-wash);
  overflow: hidden;
}
.td-blog-latest-row .td-blog-latest-row__image[tabindex="-1"] { order: -1; }
.td-blog-latest-row__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
  transition: scale .25s ease;
}
.td-blog-latest-row__image:is(:hover, :focus-visible) img { scale: 1.045; }

.td-blog-latest-row .td-blog-latest-row__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: clamp(.8rem, 1.6vw, 1.3rem);
}
.td-blog-latest-row .td-blog-latest-row__title {
  margin: .45em 0 .3em;
  color: var(--td-ink);
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  line-height: 1;
}
.td-blog-latest-row .td-blog-latest-row__excerpt {
  margin: .4em 0 .9em;
  color: var(--td-muted);
  font-size: clamp(1rem, 1.45vw, 1.14rem);
  line-height: 1.44;
}
.td-blog-meta { color: var(--td-muted); }
.td-blog-meta a, .td-blog-read-link, .td-text-link { color: var(--td-refine-coral); }
.td-blog-latest-row .td-blog-read-link { margin-top: auto; }
:is(.td-blog-read-link, .td-text-link):is(:hover, :focus-visible) { color: var(--td-refine-blue); }
.td-blog-listing { margin-top: var(--td-refine-space); }
.td-blog-more-row { padding: clamp(.85rem, 2vw, 1.3rem); }
.td-blog-more-row__title { font-size: clamp(1.35rem, 2.5vw, 2rem); line-height: 1.1; }

.navigation.pagination .nav-links { gap: .4rem; flex-wrap: wrap; }
.navigation.pagination .page-numbers {
  display: inline-grid;
  place-items: center;
  min-width: 2.65rem;
  min-height: 2.65rem;
  padding: .25rem .55rem;
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
}
.navigation.pagination .page-numbers:is(.current, :hover, :focus-visible) {
  border-color: var(--td-refine-coral);
  background: var(--td-refine-coral-wash);
  color: var(--td-refine-coral);
}

/* Topic directory */
.td-directory .td-directory-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.8rem, 1.8vw, 1.2rem);
}

.td-directory-grid .td-directory-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1rem, 2.4vw, 1.8rem);
  border: 1px solid var(--td-refine-line);
  border-top: .28rem solid var(--td-refine-blue);
  background: var(--td-bg-soft);
}
.td-directory-grid .td-directory-card:nth-child(3n + 2) { border-top-color: var(--td-refine-coral); }
.td-directory-grid .td-directory-card:nth-child(3n) { border-top-color: var(--td-refine-lime); }
.td-directory-card .td-directory-card__title { font-size: clamp(1.75rem, 3.4vw, 2.85rem); line-height: 1; }
.td-directory-card .td-directory-card__description { color: var(--td-muted); font-size: 1.1rem; line-height: 1.45; }
.td-directory-card .td-directory-card__recent {
  padding: .75rem .9rem;
  margin-block: .65rem 1.05rem;
  border: 0;
  background: var(--td-refine-blue-wash);
}
.td-directory-card .td-directory-card__link { align-self: flex-start; margin-top: auto; color: var(--td-refine-coral); }
.td-directory-card a:is(:hover, :focus-visible) { color: var(--td-refine-blue); }

@media (max-width: 930px) {
  .td-blog-latest__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 580px) {
  :is(.techdogma-front-page .td-latest, .archive, .search) .essay-list,
  .td-blog-more-list,
  .td-blog-latest__list,
  .td-directory .td-directory-grid,
  .techdogma-front-page .td-lower { grid-template-columns: minmax(0, 1fr); }
  :is(.td-blog-hero, .td-directory-hero, .td-about-hero, .td-contact-hero, .td-page-hero) { align-items: start; }
}

/* Articles and long-form blocks */
.single-post .td-article {
  --td-refine-reading: 44rem;
}

.single-post .td-article__header {
  margin-block: clamp(1.2rem, 3vw, 2.5rem) clamp(1.3rem, 3vw, 2.2rem);
}

.single-post .td-article__header-inner {
  width: min(100%, var(--td-refine-reading));
  margin-inline: auto;
  text-align: start;
}

.single-post .td-article__header-inner :is(.td-breadcrumb, .td-article__meta) {
  justify-content: flex-start;
  text-align: start;
}

.single-post .td-article__meta { gap: .4rem .75rem; color: var(--td-muted); }
.single-post .td-article__category {
  padding: .27rem .5rem;
  background: var(--td-refine-coral-wash);
  color: var(--td-refine-coral);
}

.single-post .td-article__title {
  margin-top: .3em;
  color: var(--td-ink);
  font-size: clamp(2.7rem, 5.9vw, 5rem);
  line-height: .95;
  text-align: start;
  text-wrap: balance;
}

.single-post .td-article__excerpt {
  max-width: 48ch;
  margin: .85rem 0 0;
  color: var(--td-muted);
  font-size: clamp(1.15rem, 1.8vw, 1.42rem);
  line-height: 1.45;
}

.single-post .td-article .td-featured-image {
  width: min(100%, var(--td-refine-reading));
  margin: 0 auto clamp(1.55rem, 4vw, 3rem);
  padding: .4rem;
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
}

.single-post .td-featured-image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 22rem;
  object-fit: cover;
  filter: none;
}

.single-post .td-article .td-content {
  width: min(100%, var(--td-refine-reading));
  margin-inline: auto;
  color: var(--td-ink);
  font-size: clamp(1.2rem, 1.9vw, 1.42rem);
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.single-post .td-content .td-article-toc {
  width: auto;
  margin: 0 0 1.5rem;
  padding: .9rem 1.1rem;
  border: 0;
  border-inline-start: .25rem solid var(--td-refine-blue);
  background: var(--td-refine-blue-wash);
  color: var(--td-ink);
  font-size: 1.03rem;
  line-height: 1.42;
}

.single-post .td-article-toc .td-article-toc__title {
  color: var(--td-refine-blue);
  font-size: .9rem;
  letter-spacing: .12em;
}

.single-post .td-content > p:first-of-type:not(.has-drop-cap)::first-letter {
  float: left;
  float: inline-start;
  margin-block-start: .07em;
  margin-inline-end: .1em;
  color: var(--td-refine-coral);
  font-family: var(--td-display);
  font-size: 4.15em;
  font-weight: 900;
  line-height: .73;
}

.td-content :is(h2, h3, h4) { scroll-margin-top: 2rem; text-wrap: balance; }
.single-post .td-content h2 {
  margin-top: 1.45em;
  font-size: clamp(1.95rem, 4.1vw, 3.25rem);
  line-height: 1.05;
}
.single-post .td-content h3 {
  font-size: clamp(1.45rem, 2.6vw, 2.15rem);
  line-height: 1.12;
}

.td-content a:not([class]) {
  color: var(--td-refine-blue);
  text-decoration-color: var(--td-refine-coral);
  text-underline-offset: .18em;
}
.td-content a:not([class]):is(:hover, :focus-visible) { color: var(--td-refine-coral); }
.td-content :is(ul, ol) li::marker { color: var(--td-refine-coral); }
.td-content :is(blockquote, .wp-block-pullquote) {
  margin-inline: 0;
  padding: 1rem 1.3rem;
  border: 0;
  border-inline-start: .28rem solid var(--td-refine-coral);
  background: var(--td-refine-coral-wash);
}
.td-content :is(pre, .wp-block-table) {
  max-width: 100%;
  overflow-x: auto;
}
.td-content pre { padding: .9rem 1rem; background: var(--td-refine-blue-wash); }
.td-content figcaption { color: var(--td-muted); font-size: .9rem; }
.td-content .wp-block-image img { height: auto; }

@media (min-width: 1220px) {
  .single-post .td-content > .td-article-toc:first-child {
    float: left;
    float: inline-start;
    width: 12rem;
    margin-inline: -13.25rem 1.25rem;
    padding-inline: .75rem;
    font-size: .98rem;
  }
}

.td-content details:is(.td-faq-card, .wp-block-details) {
  margin: .7rem 0;
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
}

.td-content details:is(.td-faq-card, .wp-block-details) > summary {
  padding: .85rem 1rem;
  color: var(--td-ink);
  font-size: clamp(1.08rem, 2vw, 1.26rem);
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
}
.td-content details:is(.td-faq-card, .wp-block-details) > summary::marker { color: var(--td-refine-coral); }
.td-content details:is(.td-faq-card, .wp-block-details)[open] > summary {
  border-bottom: 1px solid var(--td-refine-line);
  background: var(--td-refine-blue-wash);
}
.td-content details:is(.td-faq-card, .wp-block-details) > summary:is(:hover, :focus-visible) { color: var(--td-refine-blue); }
.td-content .td-faq-card__answer { padding: .85rem 1rem; }
.td-content .td-faq-card__answer > :first-child { margin-top: 0; }
.td-content .td-faq-card__answer > :last-child { margin-bottom: 0; }
.td-content .wp-block-details > :not(summary) { margin-inline: 1rem; }

.post-navigation .nav-links { gap: .75rem; }
.post-navigation .nav-links > div {
  padding: .85rem 1rem;
  border: 1px solid var(--td-refine-line);
  background: var(--td-refine-lime-wash);
}
.post-navigation .nav-links a:is(:hover, :focus-visible) { color: var(--td-refine-blue); }

.td-related { margin-block: var(--td-refine-space); }
.td-related .td-related__heading {
  padding: .75rem 1rem;
  border: 0;
  background: var(--td-refine-blue-wash);
}
.td-related .td-related__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: .75rem;
  border: 0;
}
.td-related__list .essay-row { margin: 0; border: 1px solid var(--td-refine-line); background: var(--td-bg-soft); }
.td-related__list .essay-row__link { height: 100%; padding: .85rem 1rem; }

/* About, support, contact and standard pages */
.td-eyebrow { color: var(--td-refine-coral); }

:is(.td-about-story, .td-contact-layout) {
  gap: clamp(.9rem, 2.8vw, 2rem);
  align-items: stretch;
  margin-block: 0 var(--td-refine-space);
}

:is(.td-about-story__lead, .td-about-story__body, .td-contact-aside, .td-contact-form-wrap) {
  min-width: 0;
  padding: var(--td-refine-pad);
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
}

:is(.td-about-story__lead, .td-contact-aside) { background: var(--td-refine-lime-wash); }
:is(.td-about-story, .td-contact-aside, .td-support-direct, .td-support-outcomes, .td-support-other, .td-support-partner) h2 {
  margin-top: 0;
  color: var(--td-ink);
  font-size: clamp(1.9rem, 4vw, 3.15rem);
  line-height: 1.04;
  text-wrap: balance;
}
:is(.td-about-story, .td-contact-aside, .td-support-direct, .td-support-outcomes, .td-support-other, .td-support-partner) p {
  color: var(--td-muted);
  line-height: 1.52;
}

.td-contact-hero .td-contact-topics {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-block: .85rem 0;
  padding: 0;
  list-style: none;
}
.td-contact-topics li {
  padding: .32em .65em;
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
  color: var(--td-refine-blue);
}
.td-contact-aside__rule { display: none; }
.td-contact-form .td-contact-field { min-width: 0; }
.td-contact-form :is(input:not([type="hidden"]), textarea, select) {
  max-width: 100%;
  border-color: var(--td-refine-line);
  background: var(--td-bg);
  color: var(--td-ink);
  font-size: max(1rem, 16px);
}
.td-contact-form :is(input, textarea, select):focus { border-color: var(--td-refine-blue); }

:is(.td-contact-submit, .td-kofi-button, .td-text-button) {
  border-color: var(--td-refine-coral);
  background: var(--td-refine-coral);
  color: var(--td-bg);
}
:is(.td-contact-submit, .td-kofi-button, .td-text-button):is(:hover, :focus-visible) {
  border-color: var(--td-refine-blue);
  background: var(--td-refine-blue);
  color: var(--td-bg);
}

:is(.td-support-panel, .td-support-direct, .td-support-other, .td-support-partner) {
  margin-block: var(--td-refine-space);
  padding: var(--td-refine-pad);
  border: 1px solid var(--td-refine-line);
  background: var(--td-refine-blue-wash);
}
:is(.td-support-panel, .td-support-partner) { background: var(--td-refine-coral-wash); }
.td-support-other { background: var(--td-refine-lime-wash); }
.td-support-outcomes .td-support-outcomes__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  gap: .8rem;
}
.td-support-outcomes__grid > article {
  padding: clamp(.85rem, 2vw, 1.25rem);
  border: 1px solid var(--td-refine-line);
  border-top: .22rem solid var(--td-refine-blue);
  background: var(--td-bg-soft);
}
.td-support-outcomes__grid > article:nth-child(2) { border-top-color: var(--td-refine-coral); }
.td-support-outcomes__grid > article:nth-child(3) { border-top-color: var(--td-refine-lime); }
.td-support-links a { color: var(--td-refine-blue); text-underline-offset: .16em; }
.td-support-disclosure { color: var(--td-muted); }

.td-empty {
  padding: var(--td-refine-pad);
  border: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
}
.td-empty .search-field { max-width: 100%; }
.td-empty .search-submit { border-color: var(--td-refine-blue); }

@media (max-width: 720px) {
  :is(.td-about-story, .td-contact-layout) { grid-template-columns: minmax(0, 1fr); }
}

/* Footer and utility controls */
.site-footer,
html[data-theme="dark"] .site-footer {
  margin-top: var(--td-refine-space);
  border-top: 1px solid var(--td-refine-line);
  background: var(--td-bg-soft);
  color: var(--td-ink);
}

.site-footer .site-footer__inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: .8rem 1.6rem;
  padding-block: clamp(1.2rem, 4vw, 2.65rem);
}
.site-footer .site-footer__inner::before {
  width: 2.2rem;
  height: .45rem;
  background: linear-gradient(90deg, var(--td-refine-coral) 0 60%, var(--td-refine-glitch-lime) 60%);
  content: "";
}
.site-footer .site-footer__copy {
  margin: 0 auto 0 0;
  color: var(--td-ink);
  font-family: var(--td-display);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  letter-spacing: .055em;
}
.site-footer .footer-menu { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1.1rem; }
.site-footer .footer-menu a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--td-ink);
  font-size: 1.03rem;
  text-underline-offset: .3em;
}
.site-footer .footer-menu a:is(:hover, :focus-visible) {
  color: var(--td-refine-blue);
  text-decoration: underline var(--td-refine-coral) 2px;
}
.td-back-to-top {
  min-width: 2.75rem;
  min-height: 2.75rem;
  border-color: var(--td-refine-coral);
  background: var(--td-bg-soft);
  color: var(--td-refine-coral);
}
.td-back-to-top:is(:hover, :focus-visible) {
  border-color: var(--td-refine-blue);
  background: var(--td-refine-blue);
  color: var(--td-bg);
}

@media (prefers-reduced-motion: reduce) {
  .site-header .td-wordmark::after,
  .site-header .td-wordmark:is(:hover, :focus-visible) > :is(.td-wordmark__tech, .td-wordmark__dogma) { animation: none; }

  .techdogma-front-page .td-hero-featured__item a,
  .techdogma-front-page .td-hero-featured__image img,
  .td-blog-latest-row,
  .td-blog-latest-row__image img { transition: none; }

  .techdogma-front-page .td-hero-featured__item a:is(:hover, :focus-visible) img,
  .td-blog-latest-row__image:is(:hover, :focus-visible) img { scale: none; }
}
