/*
Theme Name: isageek
Theme URI: https://isageek.co.uk/
Author: isageek.co.uk
Description: A fast, editorial personal technology blog theme built around long-form technical content, code, diagrams and article discovery.
Version: 1.6.8
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.0
Text Domain: isageek
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --ig-bg: #f7f8fa;
  --ig-surface: #ffffff;
  --ig-surface-2: #eef1f5;
  --ig-text: #12161d;
  --ig-muted: #667085;
  --ig-border: #d9dee7;
  --ig-accent: #007d99;
  --ig-accent-strong: #007c95;
  --ig-code-bg: #0d1117;
  --ig-code-text: #e6edf3;
  --ig-success: #1f9d68;
  --ig-warning: #b7791f;
  --ig-danger: #c2413a;
  --ig-radius: 12px;
  --ig-shadow: 0 12px 36px rgba(16, 24, 40, .08);
  --ig-content: 760px;
  --ig-wide: 1120px;
  --ig-header: 72px;
}

html[data-theme="dark"] {
  --ig-bg: #0b0f14;
  --ig-surface: #111821;
  --ig-surface-2: #151e29;
  --ig-text: #edf2f7;
  --ig-muted: #9aa8b7;
  --ig-border: #273241;
  --ig-accent: #38c7df;
  --ig-accent-strong: #7adcf0;
  --ig-code-bg: #090d12;
  --ig-code-text: #eef7fb;
  --ig-shadow: 0 14px 40px rgba(0, 0, 0, .28);
}

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) {
    --ig-bg: #0b0f14;
    --ig-surface: #111821;
    --ig-surface-2: #151e29;
    --ig-text: #edf2f7;
    --ig-muted: #9aa8b7;
    --ig-border: #273241;
    --ig-accent: #38c7df;
    --ig-accent-strong: #7adcf0;
    --ig-code-bg: #090d12;
    --ig-code-text: #eef7fb;
    --ig-shadow: 0 14px 40px rgba(0, 0, 0, .28);
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ig-bg);
  color: var(--ig-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 18px;
  line-height: 1.72;
  text-rendering: optimizeLegibility;
}
body::before {
  content: "";
  position: fixed;
  inset: 0 0 auto;
  height: 2px;
  background: var(--ig-accent);
  z-index: 9999;
  transform-origin: left;
  transform: scaleX(var(--reading-progress, 0));
  pointer-events: none;
}
img { max-width: 100%; height: auto; }
a { color: var(--ig-accent-strong); text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: var(--ig-accent); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--ig-accent); outline-offset: 3px; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link:focus {
  position: fixed !important; top: 12px; left: 12px; width: auto; height: auto;
  padding: .65rem .9rem; margin: 0; clip: auto; overflow: visible; z-index: 10000;
  background: var(--ig-surface); color: var(--ig-text); border: 1px solid var(--ig-border); border-radius: 8px;
}

.ig-shell { width: min(calc(100% - 2rem), var(--ig-wide)); margin-inline: auto; }
.ig-content { width: min(calc(100% - 2rem), var(--ig-content)); margin-inline: auto; }
.ig-muted { color: var(--ig-muted); }
.ig-mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; }

.site-header {
  position: sticky; top: 0; z-index: 1000; min-height: var(--ig-header);
  backdrop-filter: blur(14px);
  background: color-mix(in srgb, var(--ig-bg) 88%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--ig-border) 78%, transparent);
}
.site-header__inner { min-height: var(--ig-header); display: flex; align-items: center; gap: 1.2rem; }
.site-brand { display: flex; align-items: center; gap: .72rem; min-width: max-content; text-decoration: none; color: var(--ig-text); }
.site-brand__mark { width: 34px; height: 34px; }
.site-brand__text { display: grid; line-height: 1.05; }
.site-brand__name { font-weight: 800; letter-spacing: -.035em; font-size: 1.12rem; }
.site-brand__tagline { margin-top: .28rem; font-size: .72rem; color: var(--ig-muted); font-family: "SFMono-Regular", Consolas, monospace; }
.site-nav { margin-left: auto; }
.site-nav ul { list-style: none; display: flex; gap: 1.2rem; align-items: center; padding: 0; margin: 0; }
.site-nav a { color: var(--ig-text); text-decoration: none; font-size: .94rem; font-weight: 650; }
.site-nav a:hover { color: var(--ig-accent); }
.header-actions { display: flex; align-items: center; gap: .45rem; }
.icon-button {
  width: 42px; height: 42px; display: inline-grid; place-items: center; border: 1px solid var(--ig-border);
  border-radius: 10px; background: var(--ig-surface); color: var(--ig-text);
}
.menu-toggle { display: none; }

.ig-hero {
  padding: clamp(2.4rem, 6vw, 5rem) 0 1.8rem;
  background-image: url('assets/images/hero-grid.svg');
  background-position: center top;
  background-repeat: no-repeat;
  background-size: min(1300px, 100%) auto;
}
.ig-kicker { display: inline-flex; align-items: center; gap: .55rem; font: 700 .78rem/1.2 "SFMono-Regular", Consolas, monospace; color: var(--ig-accent-strong); text-transform: uppercase; letter-spacing: .08em; }
.ig-kicker::before { content: "$"; color: var(--ig-accent); }
.ig-hero h1 { margin: .55rem 0 .7rem; font-size: clamp(2.45rem, 7vw, 5.2rem); line-height: .98; letter-spacing: -.06em; max-width: 900px; }
.ig-hero__lede { max-width: 710px; margin: 0; color: var(--ig-muted); font-size: clamp(1.08rem, 2vw, 1.28rem); }
.ig-terminal-line {
  margin-top: 1.5rem; display: inline-flex; align-items: center; gap: .55rem; padding: .72rem .9rem;
  border: 1px solid var(--ig-border); background: var(--ig-surface); border-radius: 10px; box-shadow: var(--ig-shadow);
  font-family: "SFMono-Regular", Consolas, monospace; font-size: .88rem;
}
.ig-terminal-line__prompt { color: var(--ig-accent); font-weight: 800; }

.section { padding: clamp(2.2rem, 5vw, 4.8rem) 0; }
.section--tight { padding-top: 1.2rem; }
.section__head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.section__head h2 { margin: 0; font-size: clamp(1.55rem, 3vw, 2.2rem); letter-spacing: -.035em; line-height: 1.08; }
.section__head a { font-size: .92rem; font-weight: 700; }

.featured-post {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); overflow: hidden;
  border: 1px solid var(--ig-border); background: var(--ig-surface); border-radius: calc(var(--ig-radius) + 4px); box-shadow: var(--ig-shadow);
}
.featured-post__media { min-height: 380px; background: var(--ig-surface-2); }
.featured-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.featured-post__content { padding: clamp(1.5rem, 4vw, 3.3rem); display: flex; flex-direction: column; justify-content: center; }
.featured-post h2 { margin: .55rem 0 .85rem; font-size: clamp(1.72rem, 3vw, 2.7rem); line-height: 1.06; letter-spacing: -.045em; }
.featured-post h2 a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden; }
.featured-post h2 a { color: var(--ig-text); text-decoration: none; }
.post-meta { display: flex; flex-wrap: wrap; gap: .5rem .9rem; align-items: center; color: var(--ig-muted); font-size: .82rem; }
.category-pill { display: inline-flex; width: fit-content; padding: .34rem .56rem; border: 1px solid var(--ig-border); border-radius: 999px; text-decoration: none; color: var(--ig-accent-strong); background: var(--ig-surface-2); font: 700 .72rem/1.2 "SFMono-Regular", Consolas, monospace; }

.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.post-card { min-width: 0; position: relative; isolation: isolate; }
.post-card::after {
  content: ""; position: absolute; inset: -.48rem; z-index: -1; pointer-events: none; border-radius: calc(var(--ig-radius) + 7px);
  border: 1px solid transparent; opacity: 0;
  background: linear-gradient(var(--ig-bg), var(--ig-bg)) padding-box,
              linear-gradient(105deg, transparent 0 22%, hsl(var(--ig-topic-hue,188) 92% 62% / .9) 44%, transparent 67%) border-box;
  background-size: 100% 100%, 260% 100%; background-position: 0 0, 120% 0;
}
.post-card:hover::after, .post-card:focus-within::after { animation: ig-card-trace .82s ease-out 1 both; }
@keyframes ig-card-trace {
  0% { opacity: 0; background-position: 0 0, 120% 0; box-shadow: 0 0 0 transparent; }
  22% { opacity: .82; }
  74% { opacity: .58; background-position: 0 0, -60% 0; box-shadow: 0 0 16px hsl(var(--ig-topic-hue,188) 90% 58% / .12); }
  100% { opacity: 0; background-position: 0 0, -120% 0; box-shadow: 0 0 0 transparent; }
}
.post-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--ig-radius); border: 1px solid var(--ig-border); background: var(--ig-surface-2); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease, filter .3s ease; }
.post-card:hover .post-card__media img, .post-card:focus-within .post-card__media img { transform: scale(1.018); filter: saturate(1.04) contrast(1.015); }
.post-card:hover .category-pill, .post-card:focus-within .category-pill {
  border-color: hsl(var(--ig-topic-hue,188) 82% 58% / .7);
  box-shadow: 0 0 13px hsl(var(--ig-topic-hue,188) 90% 58% / .14);
}
.post-card__content { padding: .9rem .1rem 0; }
.post-card h3 { margin: .48rem 0 .45rem; font-size: 1.28rem; line-height: 1.18; letter-spacing: -.025em; }
.post-card h3 a { color: var(--ig-text); text-decoration: none; }
.post-card p { margin: .5rem 0 0; color: var(--ig-muted); font-size: .94rem; line-height: 1.58; }

.category-cloud { display: flex; flex-wrap: wrap; gap: .65rem; }
.category-cloud a { text-decoration: none; padding: .7rem .88rem; border: 1px solid var(--ig-border); background: var(--ig-surface); color: var(--ig-text); border-radius: 10px; font-weight: 700; font-size: .9rem; }
.category-cloud a::before { content: "#"; color: var(--ig-accent); margin-right: .2rem; }
.category-cloud a:hover { border-color: var(--ig-accent); }

.archive-header { padding: 3.4rem 0 1.2rem; }
.archive-header h1 { margin: .35rem 0; font-size: clamp(2.2rem, 5vw, 4rem); letter-spacing: -.052em; line-height: 1; }
.archive-description { color: var(--ig-muted); max-width: 720px; }

.article-header { padding: clamp(2.7rem, 7vw, 5.8rem) 0 1.8rem; }
.article-header__inner { width: min(calc(100% - 2rem), 920px); margin-inline: auto; }
.article-title { margin: .6rem 0 1rem; font-size: clamp(2.6rem, 7vw, 5.7rem); line-height: .98; letter-spacing: -.06em; text-wrap: balance; }
.article-excerpt { margin: 0 0 1.2rem; color: var(--ig-muted); font-size: clamp(1.08rem, 2.4vw, 1.3rem); line-height: 1.55; max-width: 780px; }
.article-hero-image { width: min(calc(100% - 2rem), 1180px); margin: 1.6rem auto 0; }
.article-hero-image img { width: 100%; max-height: 700px; object-fit: cover; border-radius: calc(var(--ig-radius) + 4px); border: 1px solid var(--ig-border); box-shadow: var(--ig-shadow); }

.article-layout { width: min(calc(100% - 2rem), 1100px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, var(--ig-content)) 260px; justify-content: center; gap: 3.5rem; align-items: start; }
.article-body { min-width: 0; }
.article-body > * { max-width: var(--ig-content); margin-left: auto; margin-right: auto; }
.article-body > .alignwide { max-width: 980px; width: min(980px, calc(100vw - 2rem)); margin-left: 50%; transform: translateX(-50%); }
.article-body > .alignfull { max-width: none; width: 100vw; margin-left: 50%; transform: translateX(-50%); }
.article-body h2, .article-body h3, .article-body h4 { scroll-margin-top: calc(var(--ig-header) + 24px); line-height: 1.18; letter-spacing: -.035em; }
.article-body h2 { margin-top: 2.5em; margin-bottom: .65em; font-size: clamp(1.75rem, 4vw, 2.45rem); }
.article-body h3 { margin-top: 2em; font-size: clamp(1.4rem, 3vw, 1.82rem); }
.article-body h4 { margin-top: 1.7em; font-size: 1.2rem; }
.article-body p, .article-body li { overflow-wrap: anywhere; }
.article-body blockquote { margin: 1.8rem auto; padding: .1rem 1.2rem; border-left: 4px solid var(--ig-accent); color: var(--ig-muted); font-size: 1.05em; }
.article-body hr { border: 0; border-top: 1px solid var(--ig-border); margin: 2.7rem auto; }
.article-body figure { margin-top: 2rem; margin-bottom: 2rem; }
.article-body figcaption { color: var(--ig-muted); font-size: .82rem; line-height: 1.45; margin-top: .55rem; text-align: center; }
.article-body img { border-radius: var(--ig-radius); }
.article-body a { font-weight: 650; }

.article-body pre, .wp-block-code {
  position: relative; max-width: 920px; width: min(920px, calc(100vw - 2rem)); margin: 1.7rem 50%; transform: translateX(-50%);
  overflow: auto; background: var(--ig-code-bg); color: var(--ig-code-text); border: 1px solid color-mix(in srgb, var(--ig-border) 80%, #0000); border-radius: 12px; padding: 1.2rem;
  font: 500 .86rem/1.62 "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; tab-size: 2;
}
.article-body :not(pre) > code { padding: .12rem .34rem; border-radius: 6px; background: var(--ig-surface-2); border: 1px solid var(--ig-border); font: .9em "SFMono-Regular", Consolas, monospace; }
.copy-code { position: absolute; top: .55rem; right: .55rem; border: 1px solid #334155; background: #111827; color: #dbeafe; border-radius: 7px; padding: .38rem .58rem; font: 700 .72rem/1 "SFMono-Regular", Consolas, monospace; }

.table-wrap, .article-body .wp-block-table { overflow-x: auto; max-width: 920px; width: min(920px, calc(100vw - 2rem)); margin: 1.7rem 50%; transform: translateX(-50%); }
.article-body table { width: 100%; border-collapse: collapse; background: var(--ig-surface); font-size: .9rem; }
.article-body th, .article-body td { padding: .75rem .85rem; text-align: left; border: 1px solid var(--ig-border); vertical-align: top; }
.article-body th { background: var(--ig-surface-2); font-weight: 800; }

.toc { position: sticky; top: calc(var(--ig-header) + 1.2rem); border-left: 1px solid var(--ig-border); padding-left: 1rem; font-size: .82rem; line-height: 1.45; }
.toc__title { display: block; margin-bottom: .65rem; color: var(--ig-text); font: 800 .75rem/1.2 "SFMono-Regular", Consolas, monospace; text-transform: uppercase; letter-spacing: .08em; }
.toc ol { list-style: none; padding: 0; margin: 0; }
.toc li { margin: .48rem 0; }
.toc li.toc-h3 { padding-left: .8rem; }
.toc a { color: var(--ig-muted); text-decoration: none; }
.toc a:hover { color: var(--ig-accent); }

.article-footer { width: min(calc(100% - 2rem), var(--ig-content)); margin: 3.2rem auto; padding-top: 1.6rem; border-top: 1px solid var(--ig-border); }
.tag-list { display: flex; flex-wrap: wrap; gap: .5rem; }
.tag-list a { text-decoration: none; font: 700 .76rem/1.2 "SFMono-Regular", Consolas, monospace; padding: .45rem .6rem; border: 1px solid var(--ig-border); border-radius: 8px; color: var(--ig-muted); }
.share-row { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: 1.2rem; }
.share-row a { text-decoration: none; border: 1px solid var(--ig-border); padding: .55rem .72rem; border-radius: 9px; background: var(--ig-surface); color: var(--ig-text); font-weight: 750; font-size: .82rem; }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.6rem; }
.post-nav a { display: block; padding: 1rem; border: 1px solid var(--ig-border); border-radius: 10px; background: var(--ig-surface); color: var(--ig-text); text-decoration: none; font-weight: 750; }

.site-footer { margin-top: 4rem; border-top: 1px solid var(--ig-border); background: var(--ig-surface); }
.site-footer__inner { padding: 2.3rem 0; display: grid; grid-template-columns: 1.3fr .7fr .7fr; gap: 2rem; align-items: start; }
.site-footer h2 { margin: 0 0 .5rem; font-size: 1.1rem; }
.site-footer p { margin: .25rem 0; color: var(--ig-muted); font-size: .86rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin: .35rem 0; }
.site-footer a { color: var(--ig-muted); text-decoration: none; font-size: .86rem; }
.site-footer a:hover { color: var(--ig-accent); }
.site-footer__bottom { border-top: 1px solid var(--ig-border); padding: 1rem 0; color: var(--ig-muted); font-size: .78rem; }

.search-form { display: flex; gap: .55rem; }
.search-form label { flex: 1; }
.search-field { width: 100%; border: 1px solid var(--ig-border); background: var(--ig-surface); color: var(--ig-text); border-radius: 9px; padding: .72rem .85rem; }
.search-submit { border: 0; background: var(--ig-text); color: var(--ig-bg); border-radius: 9px; padding: .72rem .9rem; font-weight: 800; }
.search-panel { border-top: 1px solid var(--ig-border); padding: .85rem 0 1rem; }
.search-panel[hidden] { display: none; }

.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: center; margin-top: 2rem; }
.pagination a, .pagination span { min-width: 40px; height: 40px; display: inline-grid; place-items: center; padding: 0 .7rem; border: 1px solid var(--ig-border); border-radius: 8px; text-decoration: none; background: var(--ig-surface); color: var(--ig-text); }
.pagination .current { background: var(--ig-text); color: var(--ig-bg); }

.notice { padding: 1rem 1.1rem; border-radius: 10px; border: 1px solid var(--ig-border); background: var(--ig-surface); }
.notice--warning { border-left: 4px solid var(--ig-warning); }
.notice--info { border-left: 4px solid var(--ig-accent); }

.error-404 { text-align: center; padding: clamp(4rem, 10vw, 8rem) 1rem; }
.error-404__code { font: 800 clamp(3rem, 12vw, 8rem)/1 "SFMono-Regular", Consolas, monospace; color: var(--ig-accent); letter-spacing: -.08em; }
.error-404 h1 { margin: .2rem 0 .65rem; font-size: clamp(2rem, 4vw, 3.2rem); }
.error-404 p { color: var(--ig-muted); max-width: 620px; margin: 0 auto 1.5rem; }

.comments-area { width: min(calc(100% - 2rem), var(--ig-content)); margin: 3rem auto; }
.comments-area textarea, .comments-area input[type="text"], .comments-area input[type="email"], .comments-area input[type="url"] { width: 100%; border: 1px solid var(--ig-border); background: var(--ig-surface); color: var(--ig-text); border-radius: 8px; padding: .72rem; }

@media (max-width: 960px) {
  .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured-post { grid-template-columns: 1fr; }
  .featured-post__media { min-height: 260px; aspect-ratio: 16/9; }
  .article-layout { display: block; }
  .toc { position: relative; top: auto; width: min(calc(100% - 2rem), var(--ig-content)); margin: 0 auto 1.5rem; border-left: 0; border: 1px solid var(--ig-border); border-radius: 10px; padding: .9rem 1rem; background: var(--ig-surface); }
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  body { font-size: 17px; }
  .site-header__inner { flex-wrap: wrap; }
  .site-nav { display: none; order: 5; width: 100%; margin-left: 0; padding: 0 0 .8rem; }
  .site-nav.is-open { display: block; }
  .site-nav ul { display: grid; gap: .25rem; }
  .site-nav a { display: block; padding: .65rem 0; }
  .menu-toggle { display: inline-grid; }
  .header-actions { margin-left: auto; }
  .site-brand__tagline { display: none; }
  .ig-hero { padding-top: 2.7rem; }
  .post-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .article-title { font-size: clamp(2.5rem, 13vw, 4.15rem); }
  .article-body pre, .wp-block-code, .table-wrap, .article-body .wp-block-table { width: calc(100vw - 1rem); }
  .post-nav { grid-template-columns: 1fr; }
  .site-footer__inner { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.isageek-motion-always) *,
  body:not(.isageek-motion-always) *::before,
  body:not(.isageek-motion-always) *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* --------------------------------------------------------------------------
   Publisher-aware article presentation (v1.1)
   These selectors are deliberately additive: Publisher controls content order;
   the theme only identifies and presents the HTML it receives.
   -------------------------------------------------------------------------- */

.article-body .ig-article-visual {
  position: relative;
  margin-top: clamp(2rem, 5vw, 3.2rem);
  margin-bottom: clamp(2rem, 5vw, 3.2rem);
}
.article-body .ig-article-visual > img,
.article-body .ig-article-visual > a > img {
  display: block;
  width: 100%;
  height: auto;
}

/* Publisher-generated body visuals get a little more canvas than body copy. */
.article-body > .publisher-visual,
.article-body > .publisher-screenshot,
.article-body > .publisher-diagram,
.article-body > .publisher-infographic,
.article-body > [class*="body-visual"],
.article-body > [class*="body_visual"] {
  max-width: 920px;
  width: min(920px, calc(100vw - 2rem));
  margin-left: 50%;
  margin-right: 0;
  transform: translateX(-50%);
}
.article-body > .publisher-visual--wide,
.article-body > [class*="body-visual-wide"],
.article-body > [class*="body_visual_wide"] {
  max-width: 1080px;
  width: min(1080px, calc(100vw - 2rem));
}

/* Generated illustrations/infographics should sit cleanly on the page. */
.article-body .publisher-visual--body img,
.article-body .publisher-visual--diagram img,
.article-body .publisher-visual--infographic img,
.article-body .publisher-diagram img,
.article-body .publisher-infographic img {
  border: 1px solid var(--ig-border);
  background: var(--ig-surface);
  box-shadow: 0 10px 30px rgba(16, 24, 40, .06);
}
html[data-theme="dark"] .article-body .publisher-visual--body img,
html[data-theme="dark"] .article-body .publisher-visual--diagram img,
html[data-theme="dark"] .article-body .publisher-visual--infographic img,
html[data-theme="dark"] .article-body .publisher-diagram img,
html[data-theme="dark"] .article-body .publisher-infographic img {
  box-shadow: 0 12px 34px rgba(0, 0, 0, .24);
}

/* Screenshots need a visible edge against either page theme. */
.article-body .publisher-visual--screenshot,
.article-body .publisher-screenshot,
.article-body figure[class*="screenshot"] {
  padding: .45rem;
  border: 1px solid var(--ig-border);
  border-radius: calc(var(--ig-radius) + 3px);
  background: var(--ig-surface-2);
  box-shadow: var(--ig-shadow);
}
.article-body .publisher-visual--screenshot img,
.article-body .publisher-screenshot img,
.article-body figure[class*="screenshot"] img {
  border-radius: calc(var(--ig-radius) - 4px);
  border: 1px solid color-mix(in srgb, var(--ig-border) 75%, transparent);
}
.article-body .publisher-visual--screenshot figcaption,
.article-body .publisher-screenshot figcaption,
.article-body figure[class*="screenshot"] figcaption {
  margin: .65rem .4rem .2rem;
}

/* Captions stay useful but visually secondary. */
.article-body .ig-article-visual figcaption {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.article-body .ig-article-visual figcaption::before {
  content: "// ";
  color: var(--ig-accent);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-weight: 800;
}

/* Images Publisher inserts without <figure> still receive sane presentation. */
.article-body > p > img:only-child,
.article-body > p > a:only-child > img:only-child {
  display: block;
  margin: 2.2rem auto;
  border: 1px solid var(--ig-border);
  box-shadow: 0 8px 26px rgba(16, 24, 40, .05);
}

/* Publisher callouts. Existing classes continue to work; these aliases make
   generated notes/warnings/tips visually consistent without custom blocks. */
.article-body .ig-callout,
.article-body .publisher-callout,
.article-body .publisher-note,
.article-body .publisher-warning,
.article-body .publisher-tip,
.article-body .publisher-key-point {
  position: relative;
  margin-top: 1.8rem;
  margin-bottom: 1.8rem;
  padding: 1rem 1.1rem 1rem 1.2rem;
  border: 1px solid var(--ig-border);
  border-left: 4px solid var(--ig-accent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--ig-accent) 5%, var(--ig-surface));
  color: var(--ig-text);
}
.article-body .ig-callout > :first-child,
.article-body .publisher-callout > :first-child,
.article-body .publisher-note > :first-child,
.article-body .publisher-warning > :first-child,
.article-body .publisher-tip > :first-child,
.article-body .publisher-key-point > :first-child { margin-top: 0; }
.article-body .ig-callout > :last-child,
.article-body .publisher-callout > :last-child,
.article-body .publisher-note > :last-child,
.article-body .publisher-warning > :last-child,
.article-body .publisher-tip > :last-child,
.article-body .publisher-key-point > :last-child { margin-bottom: 0; }
.article-body .ig-callout::before {
  display: block;
  margin-bottom: .55rem;
  color: var(--ig-accent-strong);
  font: 800 .72rem/1.2 "SFMono-Regular", Consolas, monospace;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.article-body .ig-callout--info::before { content: "> note"; }
.article-body .ig-callout--warning {
  border-left-color: var(--ig-warning);
  background: color-mix(in srgb, var(--ig-warning) 7%, var(--ig-surface));
}
.article-body .ig-callout--warning::before { content: "! warning"; color: var(--ig-warning); }
.article-body .ig-callout--tip {
  border-left-color: var(--ig-success);
  background: color-mix(in srgb, var(--ig-success) 7%, var(--ig-surface));
}
.article-body .ig-callout--tip::before { content: "+ tip"; color: var(--ig-success); }
.article-body .ig-callout--important {
  border-left-color: var(--ig-accent);
  background: color-mix(in srgb, var(--ig-accent) 8%, var(--ig-surface));
}
.article-body .ig-callout--important::before { content: "$ key point"; }

/* Code/log blocks emitted by Publisher or Gutenberg. */
.article-body pre.ig-code-block,
.article-body pre[class*="language-"],
.article-body pre[class*="lang-"],
.article-body pre[class*="terminal"],
.article-body pre[class*="console"],
.article-body pre[class*="log-output"] {
  padding-top: 2.45rem;
}
.code-language {
  position: absolute;
  top: .68rem;
  left: .85rem;
  z-index: 1;
  color: #9fb0c4;
  font: 800 .68rem/1 "SFMono-Regular", Consolas, monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
  user-select: none;
}
.article-body pre[data-language="error"] { border-color: color-mix(in srgb, var(--ig-danger) 55%, #334155); }
.article-body pre[data-language="log"],
.article-body pre[data-language="output"],
.article-body pre[data-language="terminal"],
.article-body pre[data-language="console"] { border-left: 3px solid var(--ig-accent); }
.copy-code:hover { border-color: #64748b; background: #172033; }
.copy-code:focus-visible { outline-color: #7dd3fc; }

/* Raw and Gutenberg tables share the same overflow behaviour. */
.article-body .ig-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.article-body .ig-table-scroll table { min-width: 100%; }
.article-body .ig-table-scroll::-webkit-scrollbar { height: 9px; }
.article-body .ig-table-scroll::-webkit-scrollbar-thumb { background: var(--ig-border); border-radius: 999px; }
.article-body table code { white-space: nowrap; }

@media (max-width: 760px) {
  .article-body > .publisher-visual,
  .article-body > .publisher-screenshot,
  .article-body > .publisher-diagram,
  .article-body > .publisher-infographic,
  .article-body > [class*="body-visual"],
  .article-body > [class*="body_visual"],
  .article-body > .publisher-visual--wide {
    width: calc(100vw - 1rem);
  }
  .article-body .publisher-visual--screenshot,
  .article-body .publisher-screenshot,
  .article-body figure[class*="screenshot"] { padding: .28rem; }
  .article-body .ig-callout { padding: .9rem 1rem; }
}

/* WP_HTML_Tag_Processor fallback hooks for hosts without PHP DOM. */
.article-body img.publisher-visual {
  display: block;
  width: min(920px, calc(100vw - 2rem));
  max-width: none;
  height: auto;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin-top: clamp(2rem, 5vw, 3.2rem);
  margin-bottom: clamp(2rem, 5vw, 3.2rem);
}
.article-body img.publisher-visual--wide {
  width: min(1080px, calc(100vw - 2rem));
}
.article-body img.publisher-visual--body,
.article-body img.publisher-visual--diagram,
.article-body img.publisher-visual--infographic {
  border: 1px solid var(--ig-border);
  background: var(--ig-surface);
  box-shadow: 0 10px 30px rgba(16, 24, 40, .06);
}
.article-body img.publisher-visual--screenshot {
  padding: .35rem;
  border: 1px solid var(--ig-border);
  background: var(--ig-surface-2);
  box-shadow: var(--ig-shadow);
}
.article-body table.ig-table-scroll-table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 920px;
  width: min(920px, calc(100vw - 2rem));
  margin: 1.7rem 50%;
  transform: translateX(-50%);
  scrollbar-width: thin;
}
.article-body table.ig-table-scroll-table::-webkit-scrollbar { height: 9px; }
.article-body table.ig-table-scroll-table::-webkit-scrollbar-thumb { background: var(--ig-border); border-radius: 999px; }

@media (max-width: 760px) {
  .article-body img.publisher-visual,
  .article-body img.publisher-visual--wide,
  .article-body table.ig-table-scroll-table {
    width: calc(100vw - 1rem);
  }
}

/* ========================================================================== 
   Neon / terminal identity (v1.2)
   Default body preset: .isageek-neon-geek
   ========================================================================== */

:root {
  --ig-neon-cyan: #21e6ff;
  --ig-neon-violet: #9b6cff;
  --ig-neon-lime: #9dff68;
  --ig-neon-pink: #ff4fd8;
  --ig-neon-amber: #ffc857;
  --ig-neon-rgb: 33, 230, 255;
  --ig-glow-soft: 0 0 18px rgba(var(--ig-neon-rgb), .14);
  --ig-glow-medium: 0 0 28px rgba(var(--ig-neon-rgb), .22);
  --ig-glow-strong: 0 0 42px rgba(var(--ig-neon-rgb), .34);
}

html[data-theme="dark"] {
  --ig-bg: #070b12;
  --ig-surface: #0d141e;
  --ig-surface-2: #101a27;
  --ig-border: #203044;
  --ig-accent: var(--ig-neon-cyan);
  --ig-accent-strong: #7af3ff;
}
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) {
    --ig-bg: #070b12;
    --ig-surface: #0d141e;
    --ig-surface-2: #101a27;
    --ig-border: #203044;
    --ig-accent: var(--ig-neon-cyan);
    --ig-accent-strong: #7af3ff;
  }
}

::selection { background: rgba(var(--ig-neon-rgb), .28); color: var(--ig-text); }
html { scrollbar-color: color-mix(in srgb, var(--ig-neon-cyan) 62%, var(--ig-border)) var(--ig-bg); }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--ig-bg); }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--ig-neon-cyan), var(--ig-neon-violet)); border: 3px solid var(--ig-bg); border-radius: 999px; }

/* The reading indicator is a genuine article-progress bar rather than page scroll. */
body::before {
  height: 3px;
  background: linear-gradient(90deg, var(--ig-neon-cyan), var(--ig-neon-violet), var(--ig-neon-pink));
  box-shadow: 0 0 13px rgba(var(--ig-neon-rgb), .62);
}
body:not(.isageek-article)::before { display: none; }

/* Preset strength. */
.isageek-neon-subtle { --ig-neon-opacity: .45; --ig-panel-glow: 0 0 0 transparent; --ig-grid-opacity: .025; --ig-wave-opacity: .18; }
.isageek-neon-geek { --ig-neon-opacity: .82; --ig-panel-glow: var(--ig-glow-soft); --ig-grid-opacity: .055; --ig-wave-opacity: .52; }
.isageek-neon-full { --ig-neon-opacity: 1; --ig-panel-glow: var(--ig-glow-medium); --ig-grid-opacity: .095; --ig-wave-opacity: .82; }

/* Header / wordmark ------------------------------------------------------- */
.site-header { overflow: visible; }
.site-header::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(var(--ig-neon-rgb), .55), color-mix(in srgb, var(--ig-neon-violet) 60%, transparent), transparent);
  opacity: calc(var(--ig-neon-opacity, .8) * .55);
  pointer-events: none;
}
.site-brand { position: relative; }
.site-brand__status { width: 10px; height: 10px; display: grid; place-items: center; flex: 0 0 10px; position: relative; }
.site-brand__status i, .theme-led, .footer-status {
  display: block; width: 7px; height: 7px; border-radius: 50%;
  background: var(--ig-neon-lime);
  box-shadow: 0 0 8px color-mix(in srgb, var(--ig-neon-lime) 80%, transparent), 0 0 18px color-mix(in srgb, var(--ig-neon-lime) 38%, transparent);
}
.site-brand__status span {
  position: absolute; top: calc(100% + 11px); left: -10px; width: max-content; padding: .38rem .48rem;
  border: 1px solid var(--ig-border); border-radius: 6px; background: var(--ig-code-bg); color: var(--ig-neon-lime);
  font: 700 .6rem/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .07em; opacity: 0; transform: translateY(-4px);
  pointer-events: none; transition: opacity .16s ease, transform .16s ease; box-shadow: var(--ig-glow-soft);
}
.site-brand__status:hover span { opacity: 1; transform: none; }
.site-brand__mark { filter: drop-shadow(0 0 9px rgba(var(--ig-neon-rgb), .2)); }
.site-brand__name { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; letter-spacing: -.045em; }
.site-brand__prompt { color: var(--ig-neon-cyan); text-shadow: 0 0 13px rgba(var(--ig-neon-rgb), .5); }
html[data-theme="dark"] .site-brand__name,
html:not([data-theme="light"]) .isageek-neon-full .site-brand__name { text-shadow: 0 0 18px rgba(var(--ig-neon-rgb), .16); }
.site-brand__cursor, .hero-cursor, .terminal-cursor {
  color: var(--ig-neon-cyan);
  text-shadow: 0 0 10px rgba(var(--ig-neon-rgb), .6);
  animation: ig-cursor 1.05s steps(1, end) infinite;
}
.section__head--terminal h2 > span {
  color: var(--ig-neon-cyan);
  text-shadow: 0 0 10px rgba(var(--ig-neon-rgb), .6);
  animation: ig-cursor 1.1s steps(1, end) 6;
}
@keyframes ig-cursor { 0%, 48% { opacity: 1; } 49%, 100% { opacity: 0; } }
.ig-random-cursor { animation: none !important; transition: none !important; opacity: 1; }
.ig-random-cursor.ig-cursor-off { opacity: 0; }

.search-trigger { position: relative; }
.shortcut-hint {
  position: absolute; right: calc(100% + 7px); white-space: nowrap; padding: .22rem .34rem; border: 1px solid var(--ig-border);
  border-radius: 5px; background: var(--ig-surface); color: var(--ig-muted); font: 700 .54rem/1 "SFMono-Regular", Consolas, monospace;
  opacity: 0; transform: translateX(4px); pointer-events: none; transition: .16s ease;
}
.search-trigger:hover .shortcut-hint { opacity: 1; transform: none; }
.theme-trigger { border-color: color-mix(in srgb, var(--ig-neon-cyan) 22%, var(--ig-border)); }
.theme-trigger .theme-led { background: var(--ig-neon-cyan); box-shadow: 0 0 10px rgba(var(--ig-neon-rgb), .8); }
html[data-theme="light"] .theme-trigger .theme-led { background: var(--ig-neon-amber); box-shadow: 0 0 9px color-mix(in srgb, var(--ig-neon-amber) 65%, transparent); }

/* Homepage hero ---------------------------------------------------------- */
.home main { position: relative; }
.home main > section { position: relative; z-index: 1; }
.ig-page-wave {
  position: fixed; inset: -2%; z-index: 0; overflow: hidden; pointer-events: none;
  opacity: calc(var(--ig-wave-opacity, .52) * .34);
  transform: translate3d(var(--ig-pointer-x, 0px), var(--ig-pointer-y, 0px), 0) scale(1.035);
  transition: transform .22s ease-out;
}
.ig-page-wave::before,
.ig-page-wave::after,
.ig-wave::before,
.ig-wave::after {
  content: ""; position: absolute; left: -60%; top: -8%; width: 70%; height: 92%; border-radius: 50%;
  background: radial-gradient(ellipse at center,
    rgba(var(--ig-neon-rgb), .31) 0%,
    rgba(var(--ig-neon-rgb), .17) 23%,
    color-mix(in srgb, var(--ig-neon-violet) 16%, transparent) 45%,
    color-mix(in srgb, var(--ig-neon-pink) 6%, transparent) 58%,
    transparent 73%);
  filter: blur(5px);
  mix-blend-mode: screen;
  will-change: transform;
  animation: ig-neon-wave 12s linear infinite;
}
.ig-page-wave::after,
.ig-wave::after {
  top: 14%;
  opacity: .64;
  background: radial-gradient(ellipse at center,
    color-mix(in srgb, var(--ig-neon-violet) 27%, transparent) 0%,
    rgba(var(--ig-neon-rgb), .13) 27%,
    color-mix(in srgb, var(--ig-neon-pink) 10%, transparent) 48%,
    transparent 72%);
  animation-delay: -6s;
}
html[data-theme="light"] .ig-page-wave { opacity: calc(var(--ig-wave-opacity, .52) * .2); }
html[data-theme="light"] .ig-page-wave::before,
html[data-theme="light"] .ig-page-wave::after { mix-blend-mode: multiply; }

.ig-hero { position: relative; overflow: hidden; isolation: isolate; }
.ig-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(var(--ig-neon-rgb), var(--ig-grid-opacity, .05)) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--ig-neon-rgb), var(--ig-grid-opacity, .05)) 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.75) 55%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.75) 55%, transparent 100%);
}
.ig-hero::after {
  content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -240px; z-index: 0; pointer-events: none;
  background: radial-gradient(circle, rgba(var(--ig-neon-rgb), .13), color-mix(in srgb, var(--ig-neon-violet) 8%, transparent) 42%, transparent 70%);
  filter: blur(8px); opacity: var(--ig-neon-opacity, .8);
  transform: translate3d(var(--ig-pointer-hero-x, 0px), var(--ig-pointer-hero-y, 0px), 0);
  transition: transform .28s ease-out;
}
.ig-hero > .ig-shell { position: relative; z-index: 3; }

/* Continuous neon wave field. Two overlapping crests run half a cycle apart,
   so there is always visible motion rather than a blank pause while a single
   crest is off-screen. The animation is transform-only and remains behind the
   hero content. */
.ig-wave {
  position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none;
  opacity: var(--ig-wave-opacity, .52);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.94) 68%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.94) 68%, transparent 100%);
}
@keyframes ig-neon-wave {
  0%   { transform: translate3d(0, 11%, 0) rotate(-10deg) scaleY(.86); }
  25%  { transform: translate3d(60%, -5%, 0) rotate(-6deg) scaleY(1.04); }
  50%  { transform: translate3d(120%, 7%, 0) rotate(-9deg) scaleY(.93); }
  75%  { transform: translate3d(180%, -4%, 0) rotate(-12deg) scaleY(1.05); }
  100% { transform: translate3d(240%, 11%, 0) rotate(-10deg) scaleY(.86); }
}
html[data-theme="light"] .ig-wave { opacity: calc(var(--ig-wave-opacity, .52) * .58); }
html[data-theme="light"] .ig-wave::before,
html[data-theme="light"] .ig-wave::after { mix-blend-mode: multiply; }

.ig-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .78fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.hero-prompt { color: var(--ig-neon-cyan); text-shadow: 0 0 22px rgba(var(--ig-neon-rgb), .5); }
.ig-hero h1 { max-width: none; font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; }
.hero-wordmark {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
  max-width: 100%;
  font-size: clamp(2.45rem, 5vw, 3.85rem);
  line-height: .98;
  letter-spacing: -.06em;
}
.hero-prompt { flex: 0 0 auto; margin-right: .14em; }
.hero-domain, .hero-cursor { flex: 0 0 auto; }
.ig-hero__tagline { margin: -.1rem 0 .75rem; color: var(--ig-neon-cyan); font: 700 clamp(.92rem, 1.5vw, 1.08rem)/1.3 "SFMono-Regular", Consolas, monospace; letter-spacing: .01em; text-shadow: 0 0 18px rgba(var(--ig-neon-rgb), .22); }

.ig-terminal-window, .error-terminal {
  overflow: hidden; border: 1px solid color-mix(in srgb, var(--ig-neon-cyan) 28%, var(--ig-border)); border-radius: 12px;
  background: color-mix(in srgb, var(--ig-code-bg) 94%, transparent); color: #e6edf3;
  box-shadow: 0 22px 65px rgba(0,0,0,.25), var(--ig-panel-glow);
  transform: perspective(1000px) rotateY(-1.5deg) rotateX(.35deg);
}
.terminal-chrome { min-height: 37px; display: flex; align-items: center; gap: 7px; padding: 0 .72rem; border-bottom: 1px solid #202c3b; background: #0b111a; }
.terminal-chrome i, .terminal-dots i { width: 7px; height: 7px; border-radius: 50%; display: inline-block; box-shadow: 0 0 7px currentColor; }
.terminal-chrome i:nth-child(1), .terminal-dots i:nth-child(1) { background: var(--ig-neon-pink); color: var(--ig-neon-pink); }
.terminal-chrome i:nth-child(2), .terminal-dots i:nth-child(2) { background: var(--ig-neon-violet); color: var(--ig-neon-violet); }
.terminal-chrome i:nth-child(3), .terminal-dots i:nth-child(3) { background: var(--ig-neon-lime); color: var(--ig-neon-lime); }
.terminal-chrome span { margin-left: auto; color: #718096; font: 700 .6rem/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .08em; }
.ig-terminal-window__body { padding: 1.1rem 1.2rem 1.25rem; font-size: .82rem; line-height: 1.55; }
.ig-terminal-window__body p { margin: .2rem 0 .5rem; }
.ig-terminal-window__body b { color: var(--ig-neon-lime); text-shadow: 0 0 8px color-mix(in srgb, var(--ig-neon-lime) 45%, transparent); }
.terminal-output { color: #9fb0c4; padding-left: 1rem; }
.terminal-output--accent { color: var(--ig-neon-violet); text-shadow: 0 0 9px color-mix(in srgb, var(--ig-neon-violet) 30%, transparent); }
.terminal-is-typing .terminal-output { opacity: .28; }

.ig-ambient { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .2s ease; }
.isageek-neon-full .ig-ambient { opacity: .65; }
.ig-ambient i { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: var(--ig-neon-cyan); box-shadow: 0 0 12px rgba(var(--ig-neon-rgb), .85), 130px 54px 0 -1px var(--ig-neon-violet), 250px -32px 0 -1px var(--ig-neon-lime); animation: ig-float 12s ease-in-out infinite alternate; }
.ig-ambient i:nth-child(1) { left: 7%; top: 28%; }
.ig-ambient i:nth-child(2) { left: 30%; top: 16%; animation-delay: -3s; }
.ig-ambient i:nth-child(3) { right: 18%; top: 24%; animation-delay: -6s; }
.ig-ambient i:nth-child(4) { right: 7%; top: 58%; animation-delay: -8s; }
.ig-ambient i:nth-child(5) { left: 46%; top: 62%; animation-delay: -10s; }
@keyframes ig-float { to { transform: translate3d(16px, -12px, 0); opacity: .45; } }

/* Panels / cards / topic colour ----------------------------------------- */
.neon-panel { position: relative; }
.neon-panel::after {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; opacity: 0;
  box-shadow: var(--ig-panel-glow); transition: opacity .2s ease;
}
.isageek-neon-geek .neon-panel:hover::after, .isageek-neon-full .neon-panel:hover::after { opacity: 1; }

.post-card__media { transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.post-card:hover .post-card__media {
  border-color: hsl(var(--ig-topic-hue, 188) 85% 58% / .7);
  box-shadow: 0 0 24px hsl(var(--ig-topic-hue, 188) 85% 55% / .14);
}
.isageek-neon-full .post-card:hover .post-card__media { box-shadow: 0 0 32px hsl(var(--ig-topic-hue, 188) 85% 55% / .23); }
.category-pill {
  --topic: hsl(var(--ig-topic-hue, 188) 90% 53%);
  color: color-mix(in srgb, var(--topic) 86%, var(--ig-text));
  border-color: hsl(var(--ig-topic-hue, 188) 80% 50% / .34);
  background: hsl(var(--ig-topic-hue, 188) 75% 48% / .065);
  box-shadow: inset 0 0 16px hsl(var(--ig-topic-hue, 188) 90% 50% / .035);
}
.category-pill::before { content: "#"; margin-right: .08rem; color: var(--topic); }
.post-card .category-pill { transition: border-color .25s ease, box-shadow .25s ease, color .25s ease; }
.category-cloud a { position: relative; overflow: hidden; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.category-cloud a::before { color: hsl(var(--ig-topic-hue, 188) 90% 54%); }
.category-cloud a:hover { border-color: hsl(var(--ig-topic-hue, 188) 86% 55% / .78); box-shadow: 0 0 22px hsl(var(--ig-topic-hue, 188) 86% 52% / .13); transform: translateY(-1px); }

.section__head--terminal { position: relative; padding-bottom: .72rem; border-bottom: 1px solid var(--ig-border); }
.section__head--terminal::after { content: ""; position: absolute; left: 0; bottom: -1px; width: min(190px, 42%); height: 1px; background: linear-gradient(90deg, var(--ig-neon-cyan), transparent); box-shadow: 0 0 8px rgba(var(--ig-neon-rgb), .34); }
.section__head--terminal h2 { font-family: "SFMono-Regular", Consolas, monospace; font-size: clamp(1.35rem, 2.6vw, 2rem); letter-spacing: -.045em; }
.related-geekery .section__head h2 { color: var(--ig-neon-cyan); text-shadow: 0 0 13px rgba(var(--ig-neon-rgb), .18); }

/* System-style post metadata -------------------------------------------- */
.post-meta--system { font-family: "SFMono-Regular", Consolas, monospace; text-transform: uppercase; letter-spacing: .035em; font-size: .68rem; }
.post-meta--system span { display: inline-flex; gap: .35rem; align-items: baseline; }
.post-meta--system span + span::before { content: "//"; margin-right: .42rem; color: color-mix(in srgb, var(--ig-neon-violet) 72%, var(--ig-muted)); }
.post-meta--system b { color: var(--ig-neon-cyan); font-size: .61rem; }

/* Article neon is kept around the content, not behind it ---------------- */
.article-title { position: relative; }
html[data-theme="dark"] .isageek-article .article-title { text-shadow: 0 0 34px rgba(var(--ig-neon-rgb), .055); }
.article-hero-image { overflow: hidden; }
.article-hero-image::before { content: ""; position: absolute; z-index: 2; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(var(--ig-neon-rgb), .08); }
.toc a[aria-current="location"] { color: var(--ig-neon-cyan); text-shadow: 0 0 10px rgba(var(--ig-neon-rgb), .24); }
.toc a[aria-current="location"]::before { content: "> "; color: var(--ig-neon-lime); }

/* Terminal-style code blocks. */
.article-body pre.ig-code-block,
.article-body pre[class*="language-"],
.article-body pre[class*="lang-"] {
  padding-top: 3rem;
  border-color: color-mix(in srgb, var(--ig-neon-cyan) 22%, #334155);
  box-shadow: 0 14px 36px rgba(0,0,0,.18), 0 0 22px rgba(var(--ig-neon-rgb), .045);
}
.article-body pre.ig-code-block::before {
  content: ""; position: absolute; top: 2.1rem; left: 0; right: 0; height: 1px; background: #202c3b;
}
.terminal-dots { position: absolute; top: .68rem; left: .82rem; display: flex; gap: 6px; height: 8px; align-items: center; }
.terminal-dots i { width: 6px; height: 6px; }
.code-language { left: 3.9rem; top: .69rem; color: #9fb0c4; }
.copy-code { top: .46rem; right: .6rem; color: var(--ig-neon-cyan); border-color: rgba(var(--ig-neon-rgb), .22); background: rgba(8, 15, 24, .88); letter-spacing: .05em; }
.copy-code:hover { color: #fff; border-color: rgba(var(--ig-neon-rgb), .55); background: rgba(var(--ig-neon-rgb), .11); box-shadow: 0 0 13px rgba(var(--ig-neon-rgb), .12); }
.article-body pre[data-language="powershell"] { border-left: 3px solid #38bdf8; }
.article-body pre[data-language="bash"], .article-body pre[data-language="shell"] { border-left: 3px solid var(--ig-neon-lime); }
.article-body pre[data-language="json"], .article-body pre[data-language="yaml"], .article-body pre[data-language="yml"] { border-left: 3px solid var(--ig-neon-violet); }
.article-body pre[data-language="error"] { border-left: 3px solid var(--ig-neon-pink); }

/* Neon Publisher callouts. */
.article-body .ig-callout { --callout-neon: var(--ig-neon-cyan); border-left-color: var(--callout-neon); box-shadow: inset 12px 0 24px color-mix(in srgb, var(--callout-neon) 4%, transparent), 0 0 18px color-mix(in srgb, var(--callout-neon) 4%, transparent); }
.article-body .ig-callout::before { color: var(--callout-neon); text-shadow: 0 0 9px color-mix(in srgb, var(--callout-neon) 35%, transparent); }
.article-body .ig-callout--warning { --callout-neon: var(--ig-neon-amber); }
.article-body .ig-callout--tip { --callout-neon: var(--ig-neon-lime); }
.article-body .ig-callout--important { --callout-neon: var(--ig-neon-pink); }

/* Command palette search ------------------------------------------------- */
.command-search[hidden] { display: none; }
.command-search { position: fixed; inset: 0; z-index: 9998; display: grid; place-items: start center; padding: max(9vh, 72px) 1rem 1rem; }
.command-search__backdrop { position: absolute; inset: 0; border: 0; background: rgba(2, 6, 12, .76); backdrop-filter: blur(10px); cursor: default; }
.command-search__dialog { position: relative; width: min(680px, 100%); overflow: hidden; border: 1px solid rgba(var(--ig-neon-rgb), .34); border-radius: 13px; background: var(--ig-code-bg); color: #e6edf3; box-shadow: 0 28px 100px rgba(0,0,0,.55), 0 0 44px rgba(var(--ig-neon-rgb), .12); animation: ig-palette-in .16s ease-out both; }
@keyframes ig-palette-in { from { opacity: 0; transform: translateY(-8px) scale(.988); } }
.command-search__body { padding: 1rem 1.05rem 1.1rem; }
.command-search h2 { margin: .1rem 0 .85rem; font: 800 1rem/1.3 "SFMono-Regular", Consolas, monospace; letter-spacing: -.025em; color: #edf6ff; }
.command-search h2 span, .command-search h2 b { color: var(--ig-neon-cyan); text-shadow: 0 0 10px rgba(var(--ig-neon-rgb), .5); }
.command-search .search-form { gap: .5rem; }
.command-search .search-form label { position: relative; display: block; }
.command-search .search-prompt { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); z-index: 2; color: var(--ig-neon-lime); font: 800 1rem/1 "SFMono-Regular", Consolas, monospace; text-shadow: 0 0 9px color-mix(in srgb, var(--ig-neon-lime) 50%, transparent); }
.command-search .search-field { width: 100%; padding: .82rem .85rem .82rem 2rem; border-color: #27384d; background: #09101a; color: #f1f7fb; font-family: "SFMono-Regular", Consolas, monospace; }
.command-search .search-field:focus { border-color: rgba(var(--ig-neon-rgb), .62); box-shadow: 0 0 0 3px rgba(var(--ig-neon-rgb), .08), 0 0 18px rgba(var(--ig-neon-rgb), .08); outline: none; }
.command-search .search-submit { min-width: 78px; border-color: rgba(var(--ig-neon-rgb), .46); background: rgba(var(--ig-neon-rgb), .10); color: var(--ig-neon-cyan); font: 800 .72rem/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .06em; }
.command-search .search-submit:hover { background: rgba(var(--ig-neon-rgb), .18); box-shadow: 0 0 17px rgba(var(--ig-neon-rgb), .12); }
.command-search__shortcuts { margin: .75rem 0 0; color: #718096; font: 600 .62rem/1.6 "SFMono-Regular", Consolas, monospace; }
.command-search__shortcuts span { margin: 0 .4rem; color: #37475c; }
kbd { padding: .15rem .28rem; border: 1px solid #304157; border-bottom-width: 2px; border-radius: 4px; background: #101a27; color: #b6c5d6; font: inherit; }
body.command-search-open { overflow: hidden; }

/* Generic search outside palette keeps the terminal cue. */
.search-form label { position: relative; }
.search-form .search-prompt { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--ig-accent); font: 800 .9rem/1 "SFMono-Regular", Consolas, monospace; }
.search-form .search-field { padding-left: 1.8rem; }

/* 404 -------------------------------------------------------------------- */
.error-404 { max-width: 820px; }
.error-terminal { text-align: left; margin: 0 auto 2rem; transform: none; }
.error-terminal__body { padding: 1.15rem 1.25rem 1.3rem; font-size: clamp(.72rem, 2vw, .88rem); }
.error-terminal__body p { max-width: none; margin: .25rem 0; color: #9fb0c4; }
.error-terminal__body b { color: var(--ig-neon-lime); }
.error-line { color: var(--ig-neon-pink) !important; text-shadow: 0 0 10px color-mix(in srgb, var(--ig-neon-pink) 32%, transparent); }
.status-ok { color: var(--ig-neon-lime) !important; }
.error-search { max-width: 620px; margin: 0 auto 1.3rem; }

/* Footer ----------------------------------------------------------------- */
.site-footer { position: relative; overflow: hidden; }
.footer-grid-glow { position: absolute; inset: 0; pointer-events: none; opacity: var(--ig-grid-opacity, .05); background-image: linear-gradient(rgba(var(--ig-neon-rgb), .35) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--ig-neon-rgb), .35) 1px, transparent 1px); background-size: 36px 36px; -webkit-mask-image: linear-gradient(to top, #000, transparent 86%); mask-image: linear-gradient(to top, #000, transparent 86%); }
.site-footer__inner, .site-footer__bottom { position: relative; }
.site-footer .ig-mono { color: var(--ig-text); }
.footer-status { display: inline-block; margin: 0 .48rem .08rem 0; vertical-align: middle; }
.site-footer__bottom .ig-mono b { color: var(--ig-neon-lime); font-weight: 800; }

/* Full Geek adds ambience, not layout changes. */
.isageek-neon-full .site-header { box-shadow: 0 0 24px rgba(var(--ig-neon-rgb), .04); }
.isageek-neon-full .ig-terminal-window { box-shadow: 0 22px 70px rgba(0,0,0,.28), var(--ig-glow-strong); }
.isageek-neon-full .ig-hero::before { animation: ig-grid-drift 22s linear infinite; }
.isageek-neon-full .section--topics { position: relative; }
.isageek-neon-full .category-cloud a:hover { box-shadow: 0 0 30px hsl(var(--ig-topic-hue, 188) 86% 52% / .22); }
@keyframes ig-grid-drift { to { background-position: 42px 42px, 42px 42px; } }

@media (max-width: 900px) {
  .ig-wave { opacity: calc(var(--ig-wave-opacity, .52) * .78); }
  .ig-wave::before, .ig-wave::after { animation-duration: 12.5s; }
  .ig-hero__grid { grid-template-columns: 1fr; gap: 1.7rem; }
  .hero-wordmark { font-size: clamp(2.35rem, 8vw, 3.65rem); }
  .ig-terminal-window { max-width: 660px; transform: none; }
  .shortcut-hint { display: none; }
}

@media (max-width: 760px) {
  .site-brand__status { display: none; }
  .hero-wordmark { font-size: clamp(2rem, 9vw, 3.15rem); }
  .ig-hero__tagline { margin-top: .2rem; }
  .command-search { padding-top: 5rem; }
  .command-search .search-form { flex-direction: column; }
  .command-search .search-submit { min-height: 44px; }
  .post-meta--system { gap: .35rem .65rem; }
  .post-meta--system span + span::before { display: none; }
  .article-body pre.ig-code-block { padding-top: 2.85rem; }
}


@media (max-width: 380px) {
  .hero-wordmark { font-size: clamp(1.82rem, 8.7vw, 2.15rem); letter-spacing: -.07em; }
  .hero-prompt { margin-right: .1em; }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.isageek-motion-always) .site-brand__cursor,
  body:not(.isageek-motion-always) .hero-cursor,
  body:not(.isageek-motion-always) .terminal-cursor,
  body:not(.isageek-motion-always) .section__head--terminal h2 > span,
  body:not(.isageek-motion-always) .ig-ambient i,
  body:not(.isageek-motion-always).isageek-neon-full .ig-hero::before,
  body:not(.isageek-motion-always) .ig-wave::before,
  body:not(.isageek-motion-always) .ig-wave::after,
  body:not(.isageek-motion-always) .ig-page-wave::before,
  body:not(.isageek-motion-always) .ig-page-wave::after { animation: none !important; }
  body:not(.isageek-motion-always) .ig-wave { opacity: calc(var(--ig-wave-opacity, .52) * .18); }
  body:not(.isageek-motion-always) .ig-page-wave { opacity: calc(var(--ig-wave-opacity, .52) * .12); }
  body:not(.isageek-motion-always) .ig-wave::before,
  body:not(.isageek-motion-always) .ig-page-wave::before { transform: translate3d(108%, 0, 0) rotate(-8deg); }
  body:not(.isageek-motion-always) .ig-wave::after,
  body:not(.isageek-motion-always) .ig-page-wave::after { transform: translate3d(165%, 0, 0) rotate(-8deg); }
  body:not(.isageek-motion-always) .ig-terminal-window,
  body:not(.isageek-motion-always) .command-search__dialog { transform: none !important; }
}

/* Explicit site-owner motion modes. "Always" deliberately overrides the OS
   reduced-motion preference; visitors can still be served the accessible
   system-aware behaviour by selecting Respect device in the Customizer. */
.isageek-motion-off *,
.isageek-motion-off *::before,
.isageek-motion-off *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
.isageek-motion-off .ig-wave { opacity: calc(var(--ig-wave-opacity, .52) * .18); }
.isageek-motion-off .ig-page-wave { opacity: calc(var(--ig-wave-opacity, .52) * .12); }
.isageek-motion-off .ig-wave::before,
.isageek-motion-off .ig-page-wave::before { transform: translate3d(108%, 0, 0) rotate(-8deg); }
.isageek-motion-off .ig-wave::after,
.isageek-motion-off .ig-page-wave::after { transform: translate3d(165%, 0, 0) rotate(-8deg); }

/* -------------------------------------------------------------------------
   v1.3 — usability, Publisher tooling and geek utility layer
   ------------------------------------------------------------------------- */

/* Light-mode functional cyan now meets WCAG AA for normal text on white. */
:root { --ig-accent: #007d99; }
:root:not([data-theme="dark"]) .category-pill { color: var(--ig-accent-strong); }
:root:not([data-theme="dark"]) a:hover { color: var(--ig-accent); }

/* WordPress admin bar offsets for sticky site chrome / progress / TOC. */
body.admin-bar .site-header { top: 32px; }
body.admin-bar::before { top: 32px; }
body.admin-bar .toc { top: calc(var(--ig-header) + 32px + 1.2rem); }
@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
  body.admin-bar::before { top: 46px; }
}

/* DOM order is TOC then article so mobile readers see it before the content. */
.article-body { grid-column: 1; grid-row: 1; }
.toc { grid-column: 2; grid-row: 1; }
.toc summary { list-style: none; cursor: pointer; }
.toc summary::-webkit-details-marker { display: none; }
.toc summary::marker { content: ""; }
.toc summary .toc__title { display: flex; align-items: center; gap: .2rem; }
.toc summary .toc__title b { color: var(--ig-neon-cyan); }
.toc nav { display: block; }
.toc[open] summary { margin-bottom: .65rem; }

/* Heading permalinks are useful on technical docs without dominating headings. */
.article-body h2[id], .article-body h3[id] { position: relative; }
.heading-anchor {
  display: inline-grid; place-items: center; margin-left: .42rem; padding: 0; width: 1.55rem; height: 1.55rem;
  border: 0; border-radius: 5px; background: transparent; color: var(--ig-muted); opacity: .15;
  font: 800 .8rem/1 "SFMono-Regular", Consolas, monospace; vertical-align: .12em;
  transition: opacity .15s ease, color .15s ease, background .15s ease;
}
.article-body h2:hover .heading-anchor, .article-body h3:hover .heading-anchor, .heading-anchor:focus-visible { opacity: 1; color: var(--ig-accent-strong); background: var(--ig-surface-2); }

/* Publisher visual zoom. */
.ig-zoomable { cursor: zoom-in; }
.ig-zoomable:focus-visible { outline: 3px solid var(--ig-accent); outline-offset: 4px; border-radius: 6px; }
.ig-lightbox {
  width: min(96vw, 1500px); max-width: none; height: min(94vh, 1100px); max-height: none; padding: 2.6rem 1rem 1rem;
  border: 1px solid rgba(var(--ig-neon-rgb), .36); border-radius: 14px; background: rgba(5, 10, 17, .97); color: #edf6ff;
  box-shadow: 0 30px 120px rgba(0,0,0,.7), 0 0 48px rgba(var(--ig-neon-rgb), .12);
}
.ig-lightbox::backdrop { background: rgba(0, 3, 8, .84); backdrop-filter: blur(9px); }
.ig-lightbox figure { width: 100%; height: 100%; margin: 0; display: grid; grid-template-rows: minmax(0,1fr) auto; place-items: center; gap: .7rem; }
.ig-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ig-lightbox figcaption { color: #9fb0c4; font: 600 .75rem/1.4 "SFMono-Regular", Consolas, monospace; text-align: center; }
.ig-lightbox__close { position: absolute; top: .45rem; right: .55rem; width: 36px; height: 36px; border: 1px solid #334155; border-radius: 8px; background: #0d1622; color: var(--ig-neon-cyan); font-size: 1.25rem; }

/* Code filename + wrap controls. */
.code-filename, .code-language { position: absolute; z-index: 2; font: 700 .64rem/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .035em; white-space: nowrap; }
.code-filename { top: .69rem; left: 3.9rem; max-width: 42%; overflow: hidden; text-overflow: ellipsis; color: #c9d6e4; }
.code-language { left: auto; right: 9.25rem; }
.wrap-code { position: absolute; z-index: 3; top: .46rem; right: 4.75rem; border: 1px solid #334155; background: rgba(8,15,24,.88); color: #9fb0c4; border-radius: 7px; padding: .38rem .5rem; font: 700 .66rem/1 "SFMono-Regular", Consolas, monospace; }
.wrap-code:hover { color: var(--ig-neon-lime); border-color: color-mix(in srgb, var(--ig-neon-lime) 45%, #334155); }
.article-body pre.code-wrap, .article-body pre.code-wrap code { white-space: pre-wrap; overflow-wrap: anywhere; }
.article-body pre.publisher-command { padding-top: 2.65rem; border-left-color: var(--ig-neon-lime); }
.article-body pre.publisher-command .code-language { right: 4.8rem; }
.article-body pre.publisher-command::after { content: ">"; position: absolute; left: .85rem; top: 2.85rem; color: var(--ig-neon-lime); font-weight: 800; }
.article-body pre.publisher-command code { display: block; padding-left: 1.2rem; }

/* Tested-with panel. */
.tested-with { width: min(calc(100% - 2rem), var(--ig-content)); margin: 2.2rem auto 0; padding: 1rem 1.1rem; border: 1px solid var(--ig-border); border-left: 3px solid var(--ig-neon-violet); border-radius: 10px; background: var(--ig-surface); box-shadow: inset 12px 0 28px color-mix(in srgb, var(--ig-neon-violet) 4%, transparent); }
.tested-with h2 { margin: 0 0 .65rem; color: var(--ig-neon-violet); font-size: .72rem; letter-spacing: .08em; }
.tested-with dl { margin: 0; }
.tested-with dl > div { display: grid; grid-template-columns: minmax(120px,.7fr) 1.3fr; gap: 1rem; padding: .35rem 0; border-top: 1px solid color-mix(in srgb, var(--ig-border) 65%, transparent); }
.tested-with dt { color: var(--ig-muted); }
.tested-with dd { margin: 0; color: var(--ig-text); }

/* Share buttons and personal author block. */
.share-row button { border: 1px solid var(--ig-border); padding: .55rem .72rem; border-radius: 9px; background: var(--ig-surface); color: var(--ig-text); font-weight: 750; font-size: .82rem; }
.share-row a:hover, .share-row button:hover { border-color: var(--ig-accent); color: var(--ig-accent-strong); }
.author-whoami { width: min(100%, 840px); margin: 2rem 0 0; padding: 1.1rem; display: grid; grid-template-columns: 76px 1fr; gap: 1rem; align-items: start; border: 1px solid var(--ig-border); border-radius: 12px; background: var(--ig-surface); }
.author-whoami__avatar img { display: block; width: 76px; height: 76px; border-radius: 10px; border: 1px solid var(--ig-border); }
.author-whoami h2 { margin: .2rem 0 .35rem; font-size: 1.2rem; }
.author-whoami p { margin: .3rem 0 .6rem; color: var(--ig-muted); font-size: .9rem; line-height: 1.55; }
.author-links { display: flex; flex-wrap: wrap; gap: .5rem .9rem; margin-bottom: .72rem; }
.author-links a { font: 700 .75rem/1.3 "SFMono-Regular", Consolas, monospace; text-decoration: none; }
.author-more-posts { display: inline-flex; align-items: center; min-height: 32px; }
.social-profile-list { display: flex; flex-wrap: wrap; align-items: center; gap: .52rem; margin-top: .7rem; }
.social-profile-link { --ig-social-glow: var(--ig-neon-cyan); position: relative; display: inline-flex; align-items: center; gap: .46rem; min-height: 34px; padding: .42rem .62rem; border: 1px solid color-mix(in srgb, var(--ig-border) 88%, transparent); border-radius: 9px; background: color-mix(in srgb, var(--ig-surface) 92%, transparent); color: var(--ig-muted); font: 750 .68rem/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .025em; text-decoration: none; box-shadow: inset 0 0 0 1px transparent; transition: color .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.social-profile-link::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; opacity: 0; box-shadow: 0 0 15px color-mix(in srgb, var(--ig-social-glow) 30%, transparent); transition: opacity .18s ease; }
.social-profile-link:hover, .social-profile-link:focus-visible { color: var(--ig-social-glow); border-color: color-mix(in srgb, var(--ig-social-glow) 58%, var(--ig-border)); background: color-mix(in srgb, var(--ig-social-glow) 6%, var(--ig-surface)); box-shadow: inset 0 0 18px color-mix(in srgb, var(--ig-social-glow) 5%, transparent); transform: translateY(-1px); }
.social-profile-link:hover::before, .social-profile-link:focus-visible::before { opacity: 1; }
.social-profile-link:focus-visible { outline: 2px solid var(--ig-accent); outline-offset: 3px; }
.social-profile-icon { display: block; flex: 0 0 auto; width: 17px; height: 17px; }
.social-profile-link__label { white-space: nowrap; }
.social-profile-link--github { --ig-social-glow: var(--ig-neon-cyan); }
.social-profile-link--linkedin { --ig-social-glow: #2f9bff; }
.social-profile-link--mastodon { --ig-social-glow: var(--ig-neon-violet); }
.social-profile-link--bluesky { --ig-social-glow: #27a7ff; }
.social-profile-link--x { --ig-social-glow: var(--ig-neon-pink); }
.site-footer .social-profile-list { margin-top: .95rem; }
.site-footer .social-profile-link { color: color-mix(in srgb, var(--ig-text) 72%, var(--ig-muted)); background: color-mix(in srgb, var(--ig-bg) 30%, transparent); }
.author-whoami .social-profile-list { margin-top: 0; }

/* Topic hubs. */
.topic-hub-header { position: relative; overflow: hidden; border-bottom: 1px solid var(--ig-border); }
.topic-hub-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: linear-gradient(90deg, transparent, hsl(var(--ig-topic-hue,188) 90% 54%), transparent); opacity: .7; }
.topic-hub-header h1 { color: var(--ig-text); }
.topic-hub-header h1 span { color: hsl(var(--ig-topic-hue,188) 85% 42%); }
.topic-count { color: var(--ig-muted); margin: .65rem 0 .25rem; font-size: .75rem; text-transform: uppercase; }
.topic-feature { padding-bottom: 2.5rem; }

/* Terminal chrome revised to support a grouped dot cluster plus controls. */
.terminal-chrome__dots { display: inline-flex !important; gap: 7px; align-items: center; margin-left: 0 !important; }
.terminal-chrome > span:not(.terminal-chrome__dots) { margin-left: auto; }
.command-search__close { margin-left: .35rem; border: 0; background: transparent; color: #8fa1b5; font: 700 .6rem/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .04em; }
.command-search__close:hover, .command-search__close:focus-visible { color: var(--ig-neon-cyan); }
.command-search__results { display: grid; max-height: min(48vh, 430px); overflow: auto; margin-top: .7rem; border-top: 1px solid #1e2b3b; }
.command-result { display: grid; gap: .17rem; width: 100%; padding: .68rem .55rem; border: 0; border-bottom: 1px solid #172434; background: transparent; color: #dce8f5; text-align: left; text-decoration: none; }
.command-result:hover, .command-result:focus-visible { background: rgba(var(--ig-neon-rgb), .07); color: #fff; outline: none; }
.command-result__title { font: 750 .83rem/1.3 "SFMono-Regular", Consolas, monospace; }
.command-result__meta { color: var(--ig-neon-cyan); font: 700 .58rem/1.3 "SFMono-Regular", Consolas, monospace; letter-spacing: .035em; }
.command-result small { color: #7f91a6; font-size: .72rem; line-height: 1.4; }
.command-result--action { grid-template-columns: 1fr auto; align-items: center; }
.command-result--action small { color: var(--ig-neon-lime); }
.command-search__empty { margin: .7rem .55rem; color: #7f91a6; font: 650 .72rem/1.4 "SFMono-Regular", Consolas, monospace; }
.command-search__hint { margin: .75rem 0 0; color: #718096; font: 600 .61rem/1.7 "SFMono-Regular", Consolas, monospace; }
.command-search__hint code { padding: .1rem .25rem; border: 1px solid #26364a; border-radius: 4px; background: #0b1420; color: #a8bbcf; }

/* Random geekery is intentionally command-like rather than a generic button. */
.random-geekery-link { padding: .25rem 0; border: 0; background: transparent; color: var(--ig-neon-cyan); font: 750 .78rem/1.3 "SFMono-Regular", Consolas, monospace; text-align: left; }
.random-geekery-link:hover { color: var(--ig-neon-lime); text-shadow: 0 0 10px color-mix(in srgb, var(--ig-neon-lime) 35%, transparent); }
.recent-recovery { max-width: 620px; margin: 1.4rem auto; text-align: left; }
.recent-recovery h2 { font-size: .9rem; color: var(--ig-neon-cyan); }
.recent-recovery ul { margin: 0; padding-left: 1.2rem; }
.error-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem 1.6rem; align-items: center; }

/* Client-side intensity commands retain the same CSS contract as Customizer. */
html[data-neon-intensity="full"] body:not(.isageek-neon-full) { --ig-grid-opacity: .09; }

@media (max-width: 960px) {
  .article-layout { display: block; }
  .article-body { width: 100%; }
  .toc { width: min(calc(100% - 2rem), var(--ig-content)); margin: 0 auto 1.6rem; }
  .toc summary { min-height: 44px; display: flex; align-items: center; }
  .toc summary::after { content: "+"; margin-left: auto; color: var(--ig-accent-strong); font: 800 1rem/1 "SFMono-Regular", Consolas, monospace; }
  .toc[open] summary::after { content: "−"; }
}

@media (max-width: 760px) {
  /* Progressive enhancement: navigation is only collapsed when JS is alive. */
  .site-nav { display: block; order: 5; width: 100%; margin-left: 0; padding: 0 0 .8rem; }
  .js .site-nav { display: none; }
  .js .site-nav.is-open { display: block; }
  .tested-with dl > div { grid-template-columns: 1fr; gap: .08rem; }
  .author-whoami { grid-template-columns: 58px 1fr; }
  .author-whoami__avatar img { width: 58px; height: 58px; }
  .social-profile-list { gap: .42rem; }
  .social-profile-link { min-height: 36px; padding: .48rem .58rem; }
  .code-filename { max-width: 38%; }
  .code-language { display: none; }
  .command-search__hint { display: none; }

  /* Mobile article pages stay focused on the content: the desktop/tablet TOC is omitted. */
  .toc { display: none !important; }

  /* Keep the homepage featured story prominent without consuming most of the first screen. */
  .section--featured { padding-top: .65rem; padding-bottom: 1.35rem; }
  .section--featured .featured-post { border-radius: 12px; }
  .section--featured .featured-post__media { min-height: 0; aspect-ratio: 2 / 1; max-height: 175px; }
  .section--featured .featured-post__content { padding: .95rem 1rem 1rem; }
  .section--featured .featured-post h2 { margin: .4rem 0 .55rem; font-size: clamp(1.38rem, 6.8vw, 1.72rem); line-height: 1.08; letter-spacing: -.035em; }
  .section--featured .featured-post__content > .ig-muted { display: none; }
  .section--featured .category-pill { padding: .28rem .48rem; font-size: .66rem; }
  .section--featured .post-meta { gap: .3rem .6rem; font-size: .72rem; }
  .ig-wave::before, .ig-wave::after, .ig-page-wave::before, .ig-page-wave::after { animation-duration: 14s; }
  .ig-page-wave { opacity: calc(var(--ig-wave-opacity, .52) * .24); }
}

/* Desktop-only featured-story scale. Mobile remains intentionally compact. */
@media (min-width: 961px) {
  .section--featured .ig-shell {
    width: min(calc(100% - 2rem), 1320px);
  }
  .section--featured .featured-post {
    grid-template-columns: minmax(0, 1.22fr) minmax(0, .78fr);
  }
  .section--featured .featured-post__media {
    min-height: 430px;
  }
  .section--featured .featured-post__content {
    padding: clamp(2rem, 4vw, 3.7rem);
  }
  .section--featured .featured-post h2 {
    font-size: clamp(1.9rem, 2.45vw, 2.85rem);
    line-height: 1.06;
  }
  .section--featured .featured-post__content > .ig-muted {
    font-size: 1rem;
    line-height: 1.62;
  }
}

/* Clean printed technical guides. */
@media print {
  :root, html[data-theme="dark"] { --ig-bg:#fff; --ig-surface:#fff; --ig-surface-2:#fff; --ig-text:#000; --ig-muted:#444; --ig-border:#bbb; }
  body { font-size: 11pt; line-height: 1.5; background: #fff !important; color: #000 !important; }
  body::before, .site-header, .site-footer, .toc, .share-row, .author-whoami, .post-nav, .related-geekery, .comments-area, .heading-anchor, .copy-code, .wrap-code, .terminal-dots, .code-language, .code-filename, .ig-lightbox { display: none !important; }
  .article-header { padding: 0 0 1rem; }
  .article-title { font-size: 28pt; color: #000; text-shadow: none !important; }
  .article-layout, .article-body, .article-body > * { display: block; width: 100%; max-width: none; margin-left: 0; margin-right: 0; }
  .article-hero-image { width: 100%; margin: 1rem 0; box-shadow: none; }
  .article-body a { color: #000; text-decoration: underline; }
  .article-body a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8pt; overflow-wrap: anywhere; }
  .article-body pre { white-space: pre-wrap !important; color: #000 !important; background: #f3f3f3 !important; border: 1px solid #aaa !important; box-shadow: none !important; }
  .article-body figure, .article-body table, .ig-callout, .tested-with { break-inside: avoid; box-shadow: none !important; }
}

@media (max-width:760px){
  .menu-toggle{display:none;}
  .js .menu-toggle{display:inline-grid;}
}

html:not(.js) .search-trigger, html:not(.js) .theme-trigger, html:not(.js) .menu-toggle { display:none !important; }

/* v1.4 longevity / knowledge-base additions. */
.site-brand__mark--custom { width: auto; max-width: 120px; height: 34px; object-fit: contain; }

.ig-breadcrumbs {
  display: flex; align-items: center; gap: .35rem; max-width: 100%; margin: 0 0 1rem;
  color: var(--ig-muted); font-size: .7rem; line-height: 1.4; overflow: hidden;
}
.ig-breadcrumbs a { color: var(--ig-accent-strong); text-decoration: none; }
.ig-breadcrumbs span[aria-current="page"] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ig-breadcrumbs > span:not([aria-current]) { opacity: .55; }

.article-series {
  width: min(calc(100% - 2rem), var(--ig-content)); margin: 0 auto 1.8rem; padding: 1rem 1.1rem;
  border-left: 3px solid var(--ig-neon-cyan); background: var(--ig-surface);
}
.article-series__head { display: grid; grid-template-columns: 1fr auto; gap: .15rem 1rem; align-items: center; }
.article-series__head .ig-kicker { grid-column: 1 / -1; }
.article-series h2 { margin: 0; font-size: 1.08rem; }
.article-series__part { color: var(--ig-neon-cyan); font-size: .7rem; font-weight: 800; white-space: nowrap; }
.article-series details { margin-top: .75rem; border-top: 1px solid var(--ig-border); padding-top: .6rem; }
.article-series summary { cursor: pointer; color: var(--ig-accent-strong); font-size: .82rem; font-weight: 750; }
.article-series ol { margin: .7rem 0 0; padding-left: 1.4rem; font-size: .82rem; }
.article-series li { margin: .25rem 0; }
.article-series li[aria-current="page"] { color: var(--ig-neon-lime); font-weight: 800; }
.article-series__nav { display: flex; justify-content: space-between; gap: 1rem; margin-top: .7rem; font-size: .8rem; }
.article-series__nav a { text-decoration: none; font-weight: 750; }

.article-freshness {
  width: min(calc(100% - 2rem), var(--ig-content)); margin: 1rem auto 0; padding: .85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--ig-warning) 45%, var(--ig-border)); border-left: 3px solid var(--ig-warning);
  border-radius: 9px; background: color-mix(in srgb, var(--ig-warning) 6%, var(--ig-surface));
  color: var(--ig-muted); font-size: .72rem; line-height: 1.55;
}
.article-freshness strong { color: var(--ig-warning); }

.article-body .publisher-source {
  margin: .6rem 0 0; text-align: right; color: var(--ig-muted); font-size: .66rem; letter-spacing: .035em;
}
.article-body .publisher-source a { color: var(--ig-muted); text-decoration: none; }
.article-body .publisher-source a:hover { color: var(--ig-accent-strong); }

.article-body a.external-link:not(.button)::after,
.page-content a.external-link:not(.button)::after {
  content: "↗"; display: inline-block; margin-left: .18em; color: var(--ig-neon-cyan); font: 700 .72em/1 "SFMono-Regular", Consolas, monospace;
  text-decoration: none; transform: translateY(-.12em); opacity: .78; transition: transform .18s ease, opacity .18s ease, text-shadow .18s ease;
}
.article-body a.external-link:hover::after, .article-body a.external-link:focus-visible::after,
.page-content a.external-link:hover::after, .page-content a.external-link:focus-visible::after {
  transform: translate(.08em, -.2em); opacity: 1; text-shadow: 0 0 8px rgba(var(--ig-neon-rgb), .5);
}
.command-easter-egg { padding: .9rem .55rem 1rem; border-top: 1px solid #1e2b3b; color: #dce8f5; }
.command-easter-egg > small { display: block; margin-bottom: .55rem; color: var(--ig-neon-cyan); font: 800 .64rem/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .08em; }
.command-easter-egg code { display: grid; gap: .32rem; white-space: pre-wrap; color: #dce8f5; font: 600 .82rem/1.55 "SFMono-Regular", Consolas, monospace; }
.command-easter-egg code span::before { content: "$ "; color: var(--ig-neon-lime); }

.article-body a.ig-external-link:not(:has(img))::after { content: " ↗"; font-size: .72em; color: var(--ig-muted); text-decoration: none; }

.article-body table.publisher-table--sortable th { padding: 0; }
.table-sort {
  display: flex; justify-content: space-between; gap: .6rem; width: 100%; padding: .72rem .8rem;
  border: 0; background: transparent; color: inherit; text-align: left; font-weight: inherit;
}
.table-sort:hover, .table-sort:focus-visible { color: var(--ig-accent-strong); background: color-mix(in srgb, var(--ig-accent) 5%, transparent); }
th[aria-sort="ascending"] .table-sort span, th[aria-sort="descending"] .table-sort span { color: var(--ig-neon-lime); }

@media (max-width: 620px) {
  .article-series__head { grid-template-columns: 1fr; }
  .article-series__part { margin-top: .3rem; }
  .article-series__nav { flex-direction: column; }
}

@media print {
  .ig-breadcrumbs, .article-series__nav, .article-series details { display: none !important; }
  .article-series, .article-freshness { box-shadow: none !important; background: #fff !important; border-color: #999 !important; }
  .article-body a.ig-external-link::after { content: ""; }
}


/* v1.5.5 interaction motion safeguards */
.isageek-motion-off .post-card::after { animation: none !important; opacity: 0 !important; }
.isageek-motion-off .ig-page-wave { transform: scale(1.035) !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  body:not(.isageek-motion-always) .post-card::after { animation: none !important; opacity: 0 !important; }
  body:not(.isageek-motion-always) .ig-page-wave { transform: scale(1.035) !important; transition: none !important; }
}


/* v1.5.7 live published-pages navigation ------------------------------- */
.site-nav .isageek-pages-dropdown { position: relative; }
.site-nav .isageek-pages-dropdown__details { position: relative; }
.site-nav .isageek-pages-dropdown__summary {
  display: inline-flex; align-items: center; gap: .38rem; color: var(--ig-text); cursor: pointer;
  font-size: .94rem; font-weight: 650; list-style: none; user-select: none;
}
.site-nav .isageek-pages-dropdown__summary::-webkit-details-marker { display: none; }
.site-nav .isageek-pages-dropdown__summary::marker { content: ""; }
.site-nav .isageek-pages-dropdown__summary:hover,
.site-nav .isageek-pages-dropdown__summary:focus-visible { color: var(--ig-accent); }
.site-nav .isageek-pages-dropdown__summary:focus-visible { outline: 2px solid var(--ig-accent); outline-offset: 5px; border-radius: 3px; }
.isageek-pages-dropdown__chevron {
  width: .42rem; height: .42rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: translateY(-.12rem) rotate(45deg); transition: transform .18s ease;
}
.isageek-pages-dropdown__details[open] .isageek-pages-dropdown__chevron { transform: translateY(.08rem) rotate(225deg); }
.site-nav .isageek-pages-dropdown__menu {
  display: none; position: absolute; top: 100%; right: -.55rem; z-index: 1100;
  width: max-content; min-width: 220px; max-width: min(360px, calc(100vw - 2rem)); max-height: min(64vh, 520px); overflow: auto;
  margin: 0; padding: .48rem; gap: .12rem; border: 1px solid var(--ig-border); border-radius: 10px;
  background: color-mix(in srgb, var(--ig-surface) 96%, transparent); box-shadow: var(--ig-shadow); backdrop-filter: blur(16px);
}
.site-nav .isageek-pages-dropdown__details[open] > .isageek-pages-dropdown__menu { display: grid; }
.site-nav .isageek-pages-dropdown__menu > li { display: block; min-width: 0; }
.site-nav .isageek-pages-dropdown__menu a {
  display: block; padding: .58rem .68rem; border-radius: 7px; color: var(--ig-text); font-size: .84rem; font-weight: 650;
  line-height: 1.25; white-space: normal; overflow-wrap: anywhere;
}
.site-nav .isageek-pages-dropdown__menu a:hover,
.site-nav .isageek-pages-dropdown__menu a:focus-visible,
.site-nav .isageek-pages-dropdown__menu a[aria-current="page"] {
  color: var(--ig-accent-strong); background: color-mix(in srgb, var(--ig-accent) 8%, transparent);
}
@media (hover: hover) and (pointer: fine) {
  .site-nav .isageek-pages-dropdown__details:hover > .isageek-pages-dropdown__menu { display: grid; }
}
@media (max-width: 760px) {
  .site-nav .isageek-pages-dropdown__summary { display: flex; justify-content: space-between; width: 100%; padding: .65rem 0; }
  .site-nav .isageek-pages-dropdown__menu {
    position: static; width: 100%; min-width: 0; max-width: none; max-height: 46vh; margin: 0 0 .35rem; padding: .22rem 0 .22rem .72rem;
    border: 0; border-left: 1px solid var(--ig-border); border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none;
  }
  .site-nav .isageek-pages-dropdown__menu a { padding: .55rem .65rem; }
}


/* ========================================================================== 
   v1.5.8 — built-in Publisher / classic editorial presentation
   --------------------------------------------------------------------------
   Publisher historically shipped this visual layer as WordPress Additional CSS.
   It is now bundled by the theme so switching/updating themes cannot silently
   flatten existing Publisher articles or designed Pages.
   ========================================================================== */

/* Publisher content gets the wider editorial canvas it was designed for. */
.article-layout--publisher {
  width: min(calc(100% - 2rem), 1280px);
  grid-template-columns: minmax(0, 920px) 260px;
  gap: 3rem;
}
.article-layout--pillar {
  width: min(calc(100% - 2rem), 1540px);
  padding-top: clamp(1rem, 2vw, 1.8rem);
}
.article-body--publisher > .isageek-article {
  max-width: 100%;
  width: 100%;
  margin-inline: auto;
  padding: clamp(1.1rem, 2.4vw, 2rem);
  border: 1px solid #e2e7ec;
  border-radius: 16px;
  background: #fff;
  color: #2f3438;
  box-shadow: 0 16px 42px rgba(0, 0, 0, .10);
  color-scheme: light;
}
.article-layout--pillar .article-body--publisher > .isageek-article {
  max-width: 1480px;
  padding: clamp(1rem, 2vw, 1.6rem);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .08);
}
.article-body--publisher > .isageek-article > :first-child { margin-top: 0; }
.article-body--publisher > .isageek-article > :last-child { margin-bottom: 0; }

/* Undo narrow/centred technical-block transforms inherited from the generic theme
   when the Publisher layout intentionally owns those blocks. */
.article-body--publisher > .isageek-article pre,
.article-body--publisher > .isageek-article .wp-block-code,
.article-body--publisher > .isageek-article .table-wrap,
.article-body--publisher > .isageek-article .wp-block-table {
  max-width: 100%;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  transform: none;
}
.article-body--publisher > .isageek-article .table-wrap { overflow-x: auto; }

/* Designed pillar Pages already contain their own editorial hero, so the page
   canvas starts immediately below the site navigation instead of repeating H1. */
.isageek-designed-page { padding-top: .15rem; }

@media (max-width: 1120px) {
  .article-layout--publisher { display: block; width: min(calc(100% - 2rem), 980px); }
  .article-layout--publisher .toc { width: 100%; max-width: 920px; margin-inline: auto; }
}
@media (max-width: 760px) {
  .article-layout--publisher,
  .article-layout--pillar { width: min(calc(100% - 1rem), 980px); }
  .article-body--publisher > .isageek-article,
  .article-layout--pillar .article-body--publisher > .isageek-article {
    padding: 1rem;
    border-radius: 10px;
  }
}

/* Publisher v1.24 classic editorial CSS (safely scoped inside article-body). */
.article-body > .isageek-article {
    --isg-blue: #1e73be;
    --isg-blue-dark: #155a95;
    --isg-text: #2f3438;
    --isg-muted: #6b737b;
    --isg-border: #dfe4e8;
    --isg-soft: #f6f8fa;
    --isg-blue-soft: #eef6fc;
    line-height: 1.72;
    color: var(--isg-text);
}

.article-body > .isageek-article p { margin: 0 0 1.25em; }
.article-body > .isageek-article h2 { margin: 2em 0 .72em; line-height: 1.25; }
.article-body > .isageek-article h3 { margin: 1.5em 0 .6em; line-height: 1.3; }

.article-body > .isageek-article a {
    color: var(--isg-blue);
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.article-body > .isageek-article a:hover,
.article-body > .isageek-article a:focus { color: var(--isg-blue-dark); }

/* In brief */
.article-body > .isageek-article .isageek-brief {
    margin: 1.8em 0 2.2em;
    padding: 1.25em 1.4em 1.1em;
    background: var(--isg-blue-soft);
    border: 1px solid #cee2f2;
    border-left: 5px solid var(--isg-blue);
    border-radius: 8px;
}
.article-body > .isageek-article .isageek-brief h3 {
    margin: 0 0 .7em;
    color: var(--isg-blue-dark);
}
.article-body > .isageek-article .isageek-brief ul { margin: 0; padding-left: 1.2em; }
.article-body > .isageek-article .isageek-brief li { margin: .42em 0; }

/* Key point */
.article-body > .isageek-article .isageek-callout {
    margin: 1.9em 0;
    padding: 1.05em 1.25em;
    background: var(--isg-soft);
    border: 1px solid var(--isg-border);
    border-radius: 8px;
}
.article-body > .isageek-article .isageek-callout strong:first-child { color: var(--isg-blue-dark); }

/* Practical checklist */
.article-body > .isageek-article .isageek-checklist {
    margin: 1.9em 0;
    padding: 1.2em 1.35em;
    border: 1px solid var(--isg-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.035);
}
.article-body > .isageek-article .isageek-checklist h3 { margin: 0 0 .7em; }
.article-body > .isageek-article .isageek-checklist ul { margin: 0; padding: 0; list-style: none; }
.article-body > .isageek-article .isageek-checklist li {
    position: relative;
    padding: .48em 0 .48em 1.7em;
    border-bottom: 1px solid #edf0f2;
}
.article-body > .isageek-article .isageek-checklist li:last-child { border-bottom: 0; }
.article-body > .isageek-article .isageek-checklist li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--isg-blue);
    font-weight: 700;
}

/* Tables */
.article-body > .isageek-article table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.8em 0 2.1em;
    font-size: .94em;
    background: #fff;
    border: 1px solid var(--isg-border);
}
.article-body > .isageek-article th,
.article-body > .isageek-article td {
    padding: .78em .88em;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--isg-border);
}
.article-body > .isageek-article th {
    background: var(--isg-blue);
    color: #fff;
    font-weight: 650;
}
.article-body > .isageek-article tbody tr:nth-child(even) { background: #fafbfc; }

/* My view / practical judgement */
.article-body > .isageek-article .isageek-my-view {
    margin: 2.35em 0;
    padding: 1.3em 1.45em;
    background: var(--isg-blue-soft);
    border-top: 3px solid var(--isg-blue);
    border-radius: 8px;
}
.article-body > .isageek-article .isageek-my-view h2,
.article-body > .isageek-article .isageek-my-view h3 {
    margin-top: 0;
    color: var(--isg-blue-dark);
}

/* Related reading */
.article-body > .isageek-article .isageek-related {
    margin: 2.35em 0 1.8em;
    padding: 1.15em 1.3em;
    background: var(--isg-soft);
    border: 1px solid var(--isg-border);
    border-radius: 8px;
}
.article-body > .isageek-article .isageek-related h3 { margin-top: 0; }
.article-body > .isageek-article .isageek-related ul { margin-bottom: 0; }

/* Sources */
.article-body > .isageek-article .isageek-sources {
    margin-top: 2.8em;
    padding-top: 1.45em;
    border-top: 2px solid var(--isg-border);
    color: var(--isg-muted);
    font-size: .92em;
}
.article-body > .isageek-article .isageek-sources h2 {
    margin-top: 0;
    color: var(--isg-text);
}
.article-body > .isageek-article .isageek-sources li { margin: .42em 0; }

/* Optional large fact/stat */
.article-body > .isageek-article .isageek-stat {
    margin: 1.9em 0;
    padding: 1.25em;
    text-align: center;
    background: var(--isg-blue);
    color: #fff;
    border-radius: 8px;
}
.article-body > .isageek-article .isageek-stat-number {
    display: block;
    font-size: 2em;
    line-height: 1.05;
    font-weight: 750;
}
.article-body > .isageek-article .isageek-stat-label {
    display: block;
    margin-top: .35em;
}

/* Technical snippets */
.article-body > .isageek-article pre {
    overflow-x: auto;
    padding: 1em 1.1em;
    background: #20252a;
    color: #f4f6f8;
    border-radius: 7px;
    line-height: 1.55;
    font-size: .9em;
}
.article-body > .isageek-article code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* Keep wide technical tables usable on phones */
@media (max-width: 700px) {
    .article-body > .isageek-article { line-height: 1.64; }
    .article-body > .isageek-article .isageek-brief,
    .article-body > .isageek-article .isageek-callout,
    .article-body > .isageek-article .isageek-checklist,
    .article-body > .isageek-article .isageek-my-view,
    .article-body > .isageek-article .isageek-related {
        padding: 1em;
        border-radius: 6px;
    }
    .article-body > .isageek-article table {
        display: block;
        overflow-x: auto;
        white-space: normal;
        font-size: .87em;
    }
    .article-body > .isageek-article th,
    .article-body > .isageek-article td { min-width: 130px; padding: .65em .7em; }
}


/* v1.16 editorial imagery and responsive columns */
.article-body > .isageek-article .isageek-editorial-image {
  margin: 2rem 0;
}
.article-body > .isageek-article .isageek-editorial-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}
.article-body > .isageek-article .isageek-editorial-image figcaption {
  margin-top: .55rem;
  font-size: .82rem;
  line-height: 1.45;
  opacity: .72;
}
.article-body > .isageek-article .isageek-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 1.75rem 0;
}
.article-body > .isageek-article .isageek-column-card {
  padding: 1.25rem;
  border: 1px solid rgba(127,127,127,.22);
  border-radius: 12px;
}
@media (max-width: 760px) {
  .article-body > .isageek-article .isageek-columns { grid-template-columns: 1fr; }
}


/* v1.18.3 — layout-aware presentation hardening */

/* News/briefing layouts get a slightly stronger opening paragraph. */
.article-body > .isageek-article.layout-executive-briefing > p:first-of-type,
.article-body > .isageek-article.layout-news-briefing > p:first-of-type,
.article-body > .isageek-article.layout-five-things > p:first-of-type {
    font-size: 1.06em;
    line-height: 1.68;
}

/* Side-by-side layouts use restrained related cards. */
.article-body > .isageek-article.layout-comparison-strengths .isageek-column-card,
.article-body > .isageek-article.layout-decision-guide .isageek-column-card,
.article-body > .isageek-article.layout-good-better-best .isageek-column-card,
.article-body > .isageek-article.layout-buyer-guide .isageek-column-card,
.article-body > .isageek-article.layout-thought-debate .isageek-column-card,
.article-body > .isageek-article.layout-then-vs-now .isageek-column-card,
.article-body > .isageek-article.layout-myth-vs-reality .isageek-column-card,
.article-body > .isageek-article.layout-myth-vs-reality-security .isageek-column-card,
.article-body > .isageek-article.layout-architecture-options .isageek-column-card,
.article-body > .isageek-article.layout-control-assessment .isageek-column-card {
    background: var(--isg-soft);
}

.article-body > .isageek-article .isageek-column-card > :first-child { margin-top: 0; }
.article-body > .isageek-article .isageek-column-card > :last-child { margin-bottom: 0; }

/* Checklist-led layouts get a subtle stronger top edge. */
.article-body > .isageek-article.layout-guide-checklist-first .isageek-checklist,
.article-body > .isageek-article.layout-before-you-migrate .isageek-checklist,
.article-body > .isageek-article.layout-audit-checklist .isageek-checklist,
.article-body > .isageek-article.layout-security-priority .isageek-checklist {
    border-top: 3px solid var(--isg-blue);
}

/* Security/post-mortem callouts get a restrained left accent. */
.article-body > .isageek-article.layout-incident-postmortem .isageek-callout,
.article-body > .isageek-article.layout-security-risk .isageek-callout,
.article-body > .isageek-article.layout-security-attack-path .isageek-callout {
    border-left: 4px solid var(--isg-blue);
}

/* Keep editorial images balanced on wide desktop layouts. */
.article-body > .isageek-article .isageek-editorial-image img {
    max-height: 680px;
    object-fit: cover;
}

@media (max-width: 760px) {
    .article-body > .isageek-article.layout-executive-briefing > p:first-of-type,
    .article-body > .isageek-article.layout-news-briefing > p:first-of-type,
    .article-body > .isageek-article.layout-five-things > p:first-of-type {
        font-size: 1em;
    }
}


/* v1.19 — original technical diagrams */
.article-body > .isageek-article .isageek-technical-diagram { margin:2rem 0;padding:1rem;border:1px solid var(--isg-border);border-radius:12px;background:var(--isg-soft); }
.article-body > .isageek-article .isageek-technical-diagram img { display:block;width:100%;height:auto;background:#fff;border-radius:8px; }
.article-body > .isageek-article .isageek-technical-diagram figcaption { margin-top:.7rem;font-size:.84rem;line-height:1.5;color:var(--isg-muted); }
.article-body > .isageek-article .isageek-diagram-credit { white-space:nowrap; }

/* v1.20 — intelligent editorial pull quotes */
.article-body > .isageek-article .isageek-pullquote {
    margin: 2rem 0;
    padding: 1rem 1.25rem;
    border-left: 4px solid var(--isg-blue);
    background: var(--isg-soft);
    font-size: 1.16em;
    line-height: 1.55;
    font-weight: 600;
}

.article-body > .isageek-article .isageek-series {
    margin: 0 0 1.5rem;
    padding: .7rem 1rem;
    border-left: 3px solid var(--isg-blue);
    background: var(--isg-soft);
    font-size: .92rem;
}


/* v1.20.3 visual variants */
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-vendor,
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-context,
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-illustration,
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-comparison,
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-infographic {
  border-radius: 16px;
  overflow: hidden;
}
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-vendor { border-top: 4px solid #1e73be; }
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-context { border-top: 4px solid #4b5563; }
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-illustration { border-top: 4px solid #8b5cf6; }
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-comparison { border-top: 4px solid #059669; }
.article-body > .isageek-article .isageek-editorial-image.isageek-visual-infographic { border-top: 4px solid #d97706; }


/* v1.23.3 — Jersey pillar hero and editorial callouts */
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-hero {
    margin: 0 0 2.2rem;
    padding: 1.7rem 1.8rem;
    border: 1px solid var(--isg-border);
    border-top: 5px solid var(--isg-blue);
    border-radius: 14px;
    background: linear-gradient(135deg, var(--isg-blue-soft), #fff 68%);
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-eyebrow {
    font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--isg-blue-dark); margin-bottom: .55rem;
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-hero-title {
    margin: 0 0 .55rem; font-size: clamp(1.5rem, 2.7vw, 2.25rem); line-height: 1.16; font-weight: 800; color: var(--isg-text);
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-standfirst { margin: 0; font-size: 1.06rem; color: var(--isg-muted); }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-topics { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1rem; }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-topics span { padding:.28rem .58rem; border:1px solid #cbdce9; border-radius:999px; background:#fff; font-size:.78rem; font-weight:650; }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout { margin:2rem 0 1.2rem; padding:1rem 1.15rem; border:1px solid var(--isg-border); border-left:5px solid var(--isg-blue); border-radius:10px; background:var(--isg-soft); }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout p { margin:.35rem 0 0; }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout-label { display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.07em; font-weight:800; color:var(--isg-blue-dark); }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout-opportunity { background:var(--isg-blue-soft); }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout-people { border-left-color:#59636e; }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-visual-slot { margin:2rem 0; }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-visual-slot > .isageek-editorial-image { margin:0; }
@media (max-width:760px) { .article-body > .isageek-article.isageek-pillar-page .isageek-pillar-hero { padding:1.25rem; } }


/* v1.5.8 — classic editorial surface for legacy/non-Publisher posts too. */
.single-post .article-layout:not(.article-layout--publisher) {
  --ig-content: 860px;
  width: min(calc(100% - 2rem), 1220px);
  grid-template-columns: minmax(0, 860px) 260px;
  gap: 3rem;
}
.single-post .article-body:not(.article-body--publisher) {
  --ig-text: #2f3438;
  --ig-muted: #6b737b;
  --ig-border: #dfe4e8;
  --ig-surface: #ffffff;
  --ig-surface-2: #f6f8fa;
  --ig-accent: #1e73be;
  --ig-accent-strong: #155a95;
  max-width: 900px;
  padding: clamp(1.2rem, 2.6vw, 2.15rem);
  border: 1px solid #e2e7ec;
  border-radius: 16px;
  background: #fff;
  color: #2f3438;
  box-shadow: 0 16px 42px rgba(0, 0, 0, .10);
  color-scheme: light;
}
.single-post .article-body:not(.article-body--publisher) > * { max-width: 100%; }
.single-post .article-body:not(.article-body--publisher) a { color: #1e73be; }
.single-post .article-body:not(.article-body--publisher) a:hover,
.single-post .article-body:not(.article-body--publisher) a:focus { color: #155a95; }
.single-post .article-body:not(.article-body--publisher) .alignwide,
.single-post .article-body:not(.article-body--publisher) .alignfull {
  width: 100%; max-width: 100%; margin-left: 0; transform: none;
}
@media (max-width: 1120px) {
  .single-post .article-layout:not(.article-layout--publisher) { display: block; width: min(calc(100% - 2rem), 900px); }
}
@media (max-width: 760px) {
  .single-post .article-layout:not(.article-layout--publisher) { width: min(calc(100% - 1rem), 900px); }
  .single-post .article-body:not(.article-body--publisher) { padding: 1rem; border-radius: 10px; }
}


/* ========================================================================== 
   v1.5.9 — site-background editorial palette
   --------------------------------------------------------------------------
   Keep the restored Publisher/classic layouts from v1.5.8, but let articles
   and designed Pages sit directly on the theme background. Component panels
   remain deliberately subtle and inherit the active light/dark theme palette.
   ========================================================================== */

/* The article itself is no longer a separate white sheet. */
.article-body--publisher > .isageek-article,
.article-layout--pillar .article-body--publisher > .isageek-article {
  border-color: transparent;
  background: transparent;
  color: var(--ig-text);
  box-shadow: none;
  color-scheme: normal;
}

/* Publisher variables now follow the actual site theme instead of forcing
   the historic light Publisher palette. */
.article-body > .isageek-article {
  --isg-blue: var(--ig-accent);
  --isg-blue-dark: var(--ig-accent-strong);
  --isg-text: var(--ig-text);
  --isg-muted: var(--ig-muted);
  --isg-border: color-mix(in srgb, var(--ig-border) 88%, transparent);
  --isg-soft: color-mix(in srgb, var(--ig-surface) 72%, transparent);
  --isg-blue-soft: color-mix(in srgb, var(--ig-accent) 9%, transparent);
  color: var(--ig-text);
}
.article-body > .isageek-article h1,
.article-body > .isageek-article h2,
.article-body > .isageek-article h3,
.article-body > .isageek-article h4,
.article-body > .isageek-article h5,
.article-body > .isageek-article h6,
.article-body > .isageek-article strong,
.article-body > .isageek-article b { color: inherit; }
.article-body > .isageek-article a { color: var(--ig-accent-strong); }
.article-body > .isageek-article a:hover,
.article-body > .isageek-article a:focus { color: var(--ig-accent); }

/* Editorial cards keep their hierarchy without creating a light page within
   the dark page. */
.article-body > .isageek-article .isageek-brief,
.article-body > .isageek-article .isageek-my-view {
  background: color-mix(in srgb, var(--ig-accent) 8%, transparent);
  border-color: color-mix(in srgb, var(--ig-accent) 28%, var(--ig-border));
}
.article-body > .isageek-article .isageek-brief h3,
.article-body > .isageek-article .isageek-my-view h2,
.article-body > .isageek-article .isageek-my-view h3,
.article-body > .isageek-article .isageek-callout strong:first-child {
  color: var(--ig-accent-strong);
}
.article-body > .isageek-article .isageek-callout,
.article-body > .isageek-article .isageek-checklist,
.article-body > .isageek-article .isageek-related,
.article-body > .isageek-article .isageek-column-card,
.article-body > .isageek-article .isageek-pullquote,
.article-body > .isageek-article .isageek-series,
.article-body > .isageek-article .isageek-technical-diagram {
  background: color-mix(in srgb, var(--ig-surface) 68%, transparent);
  border-color: var(--isg-border);
  color: var(--ig-text);
  box-shadow: none;
}
.article-body > .isageek-article .isageek-checklist li {
  border-bottom-color: color-mix(in srgb, var(--ig-border) 62%, transparent);
}
.article-body > .isageek-article .isageek-checklist li::before { color: var(--ig-accent); }
.article-body > .isageek-article .isageek-sources { color: var(--ig-muted); border-top-color: var(--ig-border); }
.article-body > .isageek-article .isageek-sources h2 { color: var(--ig-text); }
.article-body > .isageek-article .isageek-editorial-image figcaption,
.article-body > .isageek-article .isageek-technical-diagram figcaption { color: var(--ig-muted); }

/* Dark/theme-aware tables. */
.article-body > .isageek-article table {
  background: color-mix(in srgb, var(--ig-surface) 54%, transparent);
  border-color: var(--ig-border);
  color: var(--ig-text);
}
.article-body > .isageek-article th,
.article-body > .isageek-article td { border-bottom-color: var(--ig-border); }
.article-body > .isageek-article th {
  background: color-mix(in srgb, var(--ig-accent) 16%, var(--ig-surface));
  color: var(--ig-text);
}
.article-body > .isageek-article tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--ig-surface-2) 64%, transparent);
}
.article-body > .isageek-article .isageek-stat {
  background: color-mix(in srgb, var(--ig-accent) 17%, var(--ig-surface));
  color: var(--ig-text);
  border: 1px solid color-mix(in srgb, var(--ig-accent) 36%, var(--ig-border));
}

/* Preserve white only inside diagrams that were actually authored on white;
   the surrounding diagram card still matches the page. */
.article-body > .isageek-article .isageek-technical-diagram img { background: #fff; }

/* Pillar hero / topic chips / callouts use translucent theme surfaces. */
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-hero {
  border-color: var(--ig-border);
  border-top-color: var(--ig-accent);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--ig-accent) 10%, transparent),
    color-mix(in srgb, var(--ig-surface) 62%, transparent) 68%);
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-eyebrow,
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout-label {
  color: var(--ig-accent-strong);
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-hero-title { color: var(--ig-text); }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-standfirst { color: var(--ig-muted); }
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-topics span {
  border-color: color-mix(in srgb, var(--ig-accent) 24%, var(--ig-border));
  background: color-mix(in srgb, var(--ig-surface) 72%, transparent);
  color: var(--ig-text);
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout {
  border-color: var(--ig-border);
  border-left-color: var(--ig-accent);
  background: color-mix(in srgb, var(--ig-surface) 68%, transparent);
  color: var(--ig-text);
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout-opportunity {
  background: color-mix(in srgb, var(--ig-accent) 8%, transparent);
}
.article-body > .isageek-article.isageek-pillar-page .isageek-pillar-callout-people {
  border-left-color: var(--ig-muted);
}

/* Non-Publisher/older posts receive the same seamless surface treatment. */
.single-post .article-body:not(.article-body--publisher) {
  --ig-text: inherit;
  --ig-muted: inherit;
  --ig-border: inherit;
  --ig-surface: inherit;
  --ig-surface-2: inherit;
  --ig-accent: inherit;
  --ig-accent-strong: inherit;
  border-color: transparent;
  background: transparent;
  color: var(--ig-text);
  box-shadow: none;
  color-scheme: normal;
}
.single-post .article-body:not(.article-body--publisher) a { color: var(--ig-accent-strong); }
.single-post .article-body:not(.article-body--publisher) a:hover,
.single-post .article-body:not(.article-body--publisher) a:focus { color: var(--ig-accent); }

/* Keep code intentionally high-contrast in both colour modes. */
.article-body > .isageek-article pre {
  background: var(--ig-code-bg);
  color: var(--ig-code-text);
  border: 1px solid color-mix(in srgb, var(--ig-border) 88%, transparent);
}

@media (max-width: 760px) {
  .article-body--publisher > .isageek-article,
  .article-layout--pillar .article-body--publisher > .isageek-article,
  .single-post .article-body:not(.article-body--publisher) {
    border-color: transparent;
    box-shadow: none;
  }
}

/* ========================================================================== 
   v1.5.10 — About page parity with the v1.5.9 editorial palette
   --------------------------------------------------------------------------
   /about-me/ is a normal WordPress Page rather than a Publisher article. Give
   it the same seamless, theme-aware reading surface and neutralise legacy
   Gutenberg text/background colours that can disappear in dark mode.
   ========================================================================== */
.isageek-about-page .article-header {
  padding: clamp(2.4rem, 6vw, 4.8rem) 0 1.35rem;
}
.isageek-about-page .article-header__inner {
  width: min(calc(100% - 2rem), 960px);
}
.isageek-about-page .article-title {
  max-width: 900px;
  font-size: clamp(2.55rem, 6vw, 5.1rem);
}
.isageek-about-page .article-excerpt {
  max-width: 820px;
}
.article-layout--about {
  width: min(calc(100% - 2rem), 1040px);
  margin-inline: auto;
}
.article-body--about {
  width: min(100%, 920px);
  max-width: 920px;
  margin-inline: auto;
  padding: clamp(.65rem, 1.8vw, 1.35rem) 0 1rem;
  border: 0;
  background: transparent;
  color: var(--ig-text);
  box-shadow: none;
  color-scheme: normal;
}
.article-body--about > * {
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.article-body--about > p:first-of-type {
  font-size: clamp(1.08rem, 1.7vw, 1.22rem);
  line-height: 1.7;
  color: var(--ig-text);
}
.article-body--about :where(h2, h3, h4, h5, h6) {
  color: var(--ig-text) !important;
}
.article-body--about h2 {
  padding-bottom: .42rem;
  border-bottom: 1px solid color-mix(in srgb, var(--ig-border) 78%, transparent);
}
.article-body--about :where(p, li, dt, dd, figcaption, blockquote) {
  color: var(--ig-text) !important;
}
.article-body--about :where(.has-text-color) {
  color: var(--ig-text) !important;
}
.article-body--about :where(a:not(.wp-element-button)) {
  color: var(--ig-accent-strong) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.article-body--about :where(a:not(.wp-element-button)):hover,
.article-body--about :where(a:not(.wp-element-button)):focus-visible {
  color: var(--ig-accent) !important;
}
.article-body--about :where(strong, b) {
  color: var(--ig-text);
}
.article-body--about blockquote {
  margin: 1.8rem 0;
  padding: .9rem 1.15rem;
  border: 1px solid var(--ig-border);
  border-left: 4px solid var(--ig-accent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--ig-surface) 66%, transparent);
}
.article-body--about :where(.wp-block-group.has-background, .wp-block-columns.has-background, .wp-block-column.has-background) {
  background: color-mix(in srgb, var(--ig-surface) 68%, transparent) !important;
  color: var(--ig-text) !important;
  border: 1px solid color-mix(in srgb, var(--ig-border) 82%, transparent);
  border-radius: 12px;
}
.article-body--about :where(.wp-block-group.has-background, .wp-block-columns.has-background) {
  padding: clamp(1rem, 2vw, 1.4rem) !important;
}
.article-body--about .wp-block-separator {
  border-color: var(--ig-border);
  opacity: 1;
}
.article-body--about .wp-block-image img,
.article-body--about > img {
  border: 1px solid color-mix(in srgb, var(--ig-border) 84%, transparent);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .14);
}
.article-body--about .wp-element-button,
.article-body--about .wp-block-button__link {
  border: 1px solid color-mix(in srgb, var(--ig-accent) 42%, var(--ig-border));
  background: color-mix(in srgb, var(--ig-accent) 14%, var(--ig-surface));
  color: var(--ig-text) !important;
}
.article-body--about .wp-element-button:hover,
.article-body--about .wp-element-button:focus-visible,
.article-body--about .wp-block-button__link:hover,
.article-body--about .wp-block-button__link:focus-visible {
  border-color: var(--ig-accent);
  background: color-mix(in srgb, var(--ig-accent) 22%, var(--ig-surface));
}

@media (max-width: 760px) {
  .isageek-about-page .article-header { padding: 2.1rem 0 1rem; }
  .article-layout--about { width: min(calc(100% - 1rem), 1040px); }
  .article-body--about { padding: .35rem .5rem 1rem; }
  .article-body--about > p:first-of-type { font-size: 1.04rem; }
}



/* ========================================================================== 
   v1.5.11 — About custom-card dark-mode hardening
   --------------------------------------------------------------------------
   The About page contains older/custom card markup in addition to Gutenberg
   blocks. Those containers can carry hard-coded white backgrounds from page
   content or legacy CSS. In dark mode, neutralise those backgrounds and force
   all nested typography/borders back onto the live isageek palette.
   ========================================================================== */
html[data-theme="dark"] .article-body--about :where(
  .has-background,
  .has-white-background-color,
  .has-base-background-color,
  .wp-block-group,
  .wp-block-columns,
  .wp-block-column,
  .wp-block-media-text,
  .wp-block-cover,
  section,
  aside,
  div[style*="background"],
  div[style*="background-color"],
  section[style*="background"],
  section[style*="background-color"],
  aside[style*="background"],
  aside[style*="background-color"]
) {
  background: color-mix(in srgb, var(--ig-surface) 68%, transparent) !important;
  background-color: color-mix(in srgb, var(--ig-surface) 68%, transparent) !important;
  color: var(--ig-text) !important;
  border-color: color-mix(in srgb, var(--ig-border) 88%, transparent) !important;
  box-shadow: none !important;
}
html[data-theme="dark"] .article-body--about :where(
  .wp-block-column,
  .wp-block-group,
  .wp-block-media-text,
  section,
  aside,
  div
) :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,strong,b,em,span,small,figcaption) {
  color: var(--ig-text) !important;
}
html[data-theme="dark"] .article-body--about :where(
  .wp-block-column,
  .wp-block-group,
  .wp-block-media-text,
  section,
  aside,
  div
) a:not(.wp-element-button) {
  color: var(--ig-accent-strong) !important;
}
html[data-theme="dark"] .article-body--about :where(
  .wp-block-column,
  .wp-block-group,
  .wp-block-media-text,
  section,
  aside,
  div
) :where(hr,.wp-block-separator) {
  border-color: var(--ig-border) !important;
}

/* A top-level legacy card should read as part of the page rather than as a
   bright page-within-a-page. Nested cards can retain a subtle panel surface. */
html[data-theme="dark"] .article-body--about > :where(.wp-block-group, section, div[style*="background"]) {
  background: transparent !important;
  background-color: transparent !important;
  border-color: color-mix(in srgb, var(--ig-border) 72%, transparent) !important;
}

/* System-dark users who have not explicitly chosen light mode need the same
   protection. */
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) .article-body--about :where(
    .has-background,
    .has-white-background-color,
    .has-base-background-color,
    .wp-block-group,
    .wp-block-columns,
    .wp-block-column,
    .wp-block-media-text,
    .wp-block-cover,
    section,
    aside,
    div[style*="background"],
    div[style*="background-color"],
    section[style*="background"],
    section[style*="background-color"],
    aside[style*="background"],
    aside[style*="background-color"]
  ) {
    background: color-mix(in srgb, var(--ig-surface) 68%, transparent) !important;
    background-color: color-mix(in srgb, var(--ig-surface) 68%, transparent) !important;
    color: var(--ig-text) !important;
    border-color: color-mix(in srgb, var(--ig-border) 88%, transparent) !important;
    box-shadow: none !important;
  }
  html:not([data-theme="light"]) .article-body--about :where(
    .wp-block-column,
    .wp-block-group,
    .wp-block-media-text,
    section,
    aside,
    div
  ) :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,strong,b,em,span,small,figcaption) {
    color: var(--ig-text) !important;
  }
  html:not([data-theme="light"]) .article-body--about :where(
    .wp-block-column,
    .wp-block-group,
    .wp-block-media-text,
    section,
    aside,
    div
  ) a:not(.wp-element-button) {
    color: var(--ig-accent-strong) !important;
  }
  html:not([data-theme="light"]) .article-body--about > :where(.wp-block-group, section, div[style*="background"]) {
    background: transparent !important;
    background-color: transparent !important;
    border-color: color-mix(in srgb, var(--ig-border) 72%, transparent) !important;
  }
}

/* ========================================================================== */
/* v1.6 — discovery, briefing, freshness, archive filters and live hubs       */
/* ========================================================================== */

/* Content below the fold may be skipped by the browser until needed. */
.section--editors-picks,
.section--popular,
.section--topics,
.related-geekery,
.jersey-live-hub { content-visibility: auto; contain-intrinsic-size: auto 540px; }
/* Keep individual post cards out of paint containment: the neon hover trace deliberately
   travels just outside each card via ::after. content-visibility on the card clipped it. */
.post-card { overflow: visible; }

/* Editor's picks / popular */
.section--editors-picks .section__head,
.section--popular .section__head { align-items: end; }
.section--editors-picks .section__head > p,
.section--popular .section__head > p { max-width: 560px; margin: 0; text-align: right; }
.post-card__badges { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; }
.verified-pill {
  display:inline-flex; align-items:center; min-height:25px; padding:.18rem .52rem;
  border:1px solid color-mix(in srgb,var(--ig-neon-lime) 42%,var(--ig-border)); border-radius:999px;
  background:color-mix(in srgb,var(--ig-neon-lime) 7%,transparent); color:var(--ig-neon-lime);
  font:800 .61rem/1 "SFMono-Regular",Consolas,monospace; letter-spacing:.055em;
}
.post-meta__popular { color:var(--ig-neon-cyan); }

/* Archive filtering */
.article-filters { padding:1.2rem 0 .1rem; }
.article-filter-bar {
  display:grid; grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(125px,.7fr)) auto;
  gap:.75rem; align-items:end; padding:1rem;
}
.article-filter-bar label { display:grid; gap:.3rem; min-width:0; }
.article-filter-bar label > span { color:var(--ig-muted); font:750 .63rem/1.2 "SFMono-Regular",Consolas,monospace; letter-spacing:.055em; text-transform:uppercase; }
.article-filter-bar input,
.article-filter-bar select {
  width:100%; min-height:43px; padding:.55rem .7rem; border:1px solid var(--ig-border); border-radius:8px;
  background:color-mix(in srgb,var(--ig-surface) 88%,transparent); color:var(--ig-text);
}
.article-filter-bar__actions { display:flex; gap:.45rem; align-items:center; min-height:43px; }
.article-filter-bar__actions button,
.article-filter-bar__actions a { min-height:43px; display:inline-flex; align-items:center; justify-content:center; padding:.5rem .78rem; border:1px solid var(--ig-border); border-radius:8px; text-decoration:none; white-space:nowrap; }
.article-filter-bar__actions button { border-color:color-mix(in srgb,var(--ig-accent) 55%,var(--ig-border)); background:color-mix(in srgb,var(--ig-accent) 12%,transparent); color:var(--ig-text); }
.article-filter-summary { margin:.65rem .2rem 0; color:var(--ig-muted); font-size:.68rem; }

/* Geek Briefing */
.section--briefing-home { padding-top:0; }
.geek-briefing {
  width:min(100%,980px); margin:2.2rem auto; padding:clamp(1.1rem,2.6vw,1.7rem);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.9fr); gap:1.4rem; align-items:center;
  background:linear-gradient(135deg,color-mix(in srgb,var(--ig-neon-cyan) 8%,var(--ig-surface)),color-mix(in srgb,var(--ig-neon-violet) 7%,var(--ig-surface)));
}
.geek-briefing h2 { margin:.24rem 0 .4rem; font-size:clamp(1.45rem,3vw,2.15rem); }
.geek-briefing p { margin:.4rem 0; color:var(--ig-muted); }
.geek-briefing__form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; align-items:start; }
.geek-briefing__form input[type="email"] { width:100%; min-height:44px; padding:.62rem .72rem; border:1px solid var(--ig-border); border-radius:8px; background:var(--ig-bg); color:var(--ig-text); }
.geek-briefing__form button { min-height:44px; padding:.6rem .85rem; border:1px solid var(--ig-accent); border-radius:8px; background:color-mix(in srgb,var(--ig-accent) 14%,transparent); color:var(--ig-text); font-weight:800; }
.geek-briefing__consent { grid-column:1/-1; display:flex; gap:.5rem; align-items:flex-start; color:var(--ig-muted); font-size:.76rem; line-height:1.45; }
.geek-briefing__consent input { margin-top:.18rem; }
.geek-briefing__status { grid-column:1/-1; min-height:1.2em; margin:0 !important; font-size:.76rem; }
.geek-briefing__privacy { grid-column:1/-1; margin:.2rem 0 0 !important; font-size:.7rem; }
.geek-briefing__honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.geek-briefing.is-complete input[type="email"] { border-color:var(--ig-neon-lime); }
.article-footer .geek-briefing { margin:2rem 0; }

/* Jersey live hub */
.jersey-live-hub { width:min(calc(100% - 2rem),1180px); margin:3rem auto 1rem; padding:clamp(1rem,2vw,1.5rem); border-top:1px solid var(--ig-border); }
.jersey-live-hub__head { max-width:820px; }
.jersey-live-hub__head h2 { margin:.3rem 0 .5rem; }
.jersey-live-hub__topics { display:flex; flex-wrap:wrap; gap:.45rem; margin:1rem 0 1.25rem; }
.jersey-live-hub__topics span { padding:.34rem .62rem; border:1px solid var(--ig-border); border-radius:999px; color:var(--ig-muted); font:750 .68rem/1.2 "SFMono-Regular",Consolas,monospace; }
.jersey-live-hub__topics b { color:var(--ig-neon-cyan); }
.jersey-live-hub__changed { margin-top:1.4rem; padding:1rem; border:1px solid var(--ig-border); border-radius:12px; background:color-mix(in srgb,var(--ig-surface) 72%,transparent); }
.jersey-live-hub__changed h3 { margin:0 0 .6rem; }
.jersey-live-hub__changed ul { list-style:none; margin:0; padding:0; }
.jersey-live-hub__changed li { display:flex; justify-content:space-between; gap:1rem; padding:.48rem 0; border-top:1px solid color-mix(in srgb,var(--ig-border) 65%,transparent); }
.jersey-live-hub__changed li:first-child { border-top:0; }
.jersey-live-hub__changed span { color:var(--ig-muted); font-size:.72rem; white-space:nowrap; }

/* Search and 404 recovery */
.search-recovery { max-width:920px; margin:0 auto 2rem; padding:1.2rem; }
.search-recovery h2 { margin:.25rem 0 .45rem; }
.error-recovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.2rem 0; }
.command-search__empty--help > div { display:grid; grid-template-columns:1fr 1fr; gap:.35rem; margin-top:.45rem; }
.command-result--mini { min-height:40px; width:100%; display:flex; align-items:center; justify-content:center; text-decoration:none; }

/* Reading progress has always existed in the theme body pseudo-element; v1.6
   gives the single-article marker an explicit semantic hook without visual bulk. */
.reading-progress { position:absolute; width:0; height:0; overflow:hidden; }

/* Pause animations when the page is backgrounded. */
.isageek-tab-hidden .ig-wave::before,
.isageek-tab-hidden .ig-wave::after,
.isageek-tab-hidden .ig-page-wave::before,
.isageek-tab-hidden .ig-page-wave::after,
.isageek-tab-hidden .hero-cursor,
.isageek-tab-hidden .terminal-cursor,
.isageek-tab-hidden .site-brand__cursor,
.isageek-tab-hidden .post-card::after { animation-play-state:paused !important; }

@media (max-width:1100px) {
  .article-filter-bar { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .article-filter-bar__search { grid-column:span 2; }
}
@media (max-width:760px) {
  .section--editors-picks .section__head,
  .section--popular .section__head { align-items:start; }
  .section--editors-picks .section__head > p,
  .section--popular .section__head > p { text-align:left; }
  .article-filter-bar { grid-template-columns:1fr 1fr; }
  .article-filter-bar__search,.article-filter-bar__actions { grid-column:1/-1; }
  .article-filter-bar__actions { justify-content:stretch; }
  .article-filter-bar__actions > * { flex:1; }
  .geek-briefing { grid-template-columns:1fr; }
  .geek-briefing__form { grid-template-columns:1fr; }
  .geek-briefing__consent,.geek-briefing__status,.geek-briefing__privacy { grid-column:1; }
  .error-recovery-grid { grid-template-columns:1fr; }
  .jersey-live-hub { width:min(calc(100% - 1rem),1180px); padding:.8rem .35rem; }
  .jersey-live-hub__changed li { display:grid; gap:.1rem; }
}

@media print {
  .geek-briefing,.reading-progress,.article-filters,.section--popular,.section--editors-picks { display:none !important; }
}

/* v1.6 hierarchical dynamic Pages menu */
.site-nav .isageek-pages-dropdown__submenu {
  display: grid;
  gap: .1rem;
  margin: .15rem 0 .3rem .7rem;
  padding: .1rem 0 .1rem .65rem;
  border-left: 1px solid var(--ig-border);
  list-style: none;
}
.site-nav .isageek-pages-dropdown__submenu a { font-size: .91em; }
.site-nav .isageek-pages-dropdown__item--parent > a::after {
  content: "↳";
  margin-left: .45rem;
  color: var(--ig-muted);
  font-size: .78em;
}

/* v1.6 Jersey live-hub topic channels */
.jersey-live-hub__head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-end; }
.jersey-live-hub__updated { flex:0 0 auto; color:var(--ig-muted); font-size:.72rem; }
.jersey-live-hub__topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:1.1rem; }
.jersey-live-hub__topic-card { border:1px solid var(--ig-border); border-radius:var(--ig-radius); background:color-mix(in srgb,var(--ig-surface) 76%,transparent); padding:1rem; }
.jersey-live-hub__topic-card h3 { margin:0 0 .65rem; font-size:1rem; }
.jersey-live-hub__topic-card ul { list-style:none; padding:0; margin:0; display:grid; gap:.62rem; }
.jersey-live-hub__topic-card li { display:grid; gap:.12rem; }
.jersey-live-hub__topic-card li span { color:var(--ig-muted); font-size:.72rem; }
@media(max-width:760px){.jersey-live-hub__head{display:block}.jersey-live-hub__updated{display:inline-block;margin-top:.35rem}.jersey-live-hub__topic-grid{grid-template-columns:1fr}}


/* ========================================================================== 
   v1.6.4 — About-page interactive flourishes
   --------------------------------------------------------------------------
   The S2000 image borrows the article-card neon trace. EPCOT fireworks are
   drawn on a fixed canvas by theme.js so they can escape the article column.
   These effects are opt-in via the dedicated About-page classes and obey the
   theme motion mode / reduced-motion controls.
   ========================================================================== */
.article-body--about .isageek-about-s2000,
.article-body--about .isageek-about-epcot {
  position: relative;
  isolation: isolate;
}

.article-body--about .isageek-about-s2000 {
  overflow: visible !important;
}
.article-body--about .isageek-about-s2000::after {
  content: "";
  position: absolute;
  inset: -.5rem;
  z-index: -1;
  pointer-events: none;
  border-radius: 20px;
  border: 1px solid transparent;
  opacity: 0;
  background:
    linear-gradient(var(--ig-bg), var(--ig-bg)) padding-box,
    linear-gradient(105deg, transparent 0 22%, hsl(var(--ig-topic-hue,188) 92% 62% / .94) 44%, transparent 67%) border-box;
  background-size: 100% 100%, 260% 100%;
  background-position: 0 0, 120% 0;
}
.article-body--about .isageek-about-s2000:hover::after,
.article-body--about .isageek-about-s2000:focus-within::after {
  animation: ig-card-trace .9s ease-out 1 both;
}
.article-body--about .isageek-about-s2000 img {
  transition: transform .38s cubic-bezier(.2,.7,.2,1), filter .38s ease, box-shadow .38s ease;
  transform-origin: 50% 58%;
}
.article-body--about .isageek-about-s2000:hover img,
.article-body--about .isageek-about-s2000:focus-within img {
  transform: translateY(-2px) scale(1.018);
  filter: saturate(1.08) contrast(1.025);
  box-shadow: 0 18px 44px rgba(0,0,0,.22), 0 0 22px hsl(var(--ig-topic-hue,188) 90% 58% / .13);
}
.article-body--about .isageek-about-s2000 figcaption,
.article-body--about .isageek-about-epcot figcaption {
  position: relative;
  z-index: 2;
}

.article-body--about .isageek-about-epcot {
  cursor: crosshair;
}
.article-body--about .isageek-about-epcot img {
  transition: filter .3s ease, transform .3s ease, box-shadow .3s ease;
}
.article-body--about .isageek-about-epcot:hover img,
.article-body--about .isageek-about-epcot:focus-within img {
  transform: scale(1.006);
  filter: saturate(1.13) brightness(1.035) contrast(1.025);
  box-shadow: 0 18px 48px rgba(0,0,0,.26), 0 0 30px rgba(var(--ig-neon-rgb), .12);
}

.ig-about-fireworks {
  position: fixed;
  inset: 0;
  z-index: 9998;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  opacity: 1;
}

.isageek-motion-off .article-body--about .isageek-about-s2000::after,
.isageek-motion-off .article-body--about .isageek-about-s2000:hover::after,
.isageek-motion-off .article-body--about .isageek-about-s2000:focus-within::after {
  animation: none !important;
  opacity: 0 !important;
}
.isageek-motion-off .article-body--about .isageek-about-s2000 img,
.isageek-motion-off .article-body--about .isageek-about-epcot img {
  transition: none !important;
  transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
  body:not(.isageek-motion-always) .article-body--about .isageek-about-s2000::after,
  body:not(.isageek-motion-always) .article-body--about .isageek-about-s2000:hover::after,
  body:not(.isageek-motion-always) .article-body--about .isageek-about-s2000:focus-within::after {
    animation: none !important;
    opacity: 0 !important;
  }
  body:not(.isageek-motion-always) .article-body--about .isageek-about-s2000 img,
  body:not(.isageek-motion-always) .article-body--about .isageek-about-epcot img {
    transition: none !important;
    transform: none !important;
  }
  body:not(.isageek-motion-always) .ig-about-fireworks { display: none !important; }
}


/* ========================================================================== 
   v1.6.5 — About-page Easter eggs
   --------------------------------------------------------------------------
   A deliberately playful shell/terminal, LEGO rebuild, achievements and the
   short-lived Konami "maximum geek" state. All animation respects the site's
   established motion controls.
   ========================================================================== */
.ig-about-geek-grid {
  display: grid;
  grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}
.ig-about-jakefile,
.ig-about-terminal {
  min-width: 0;
  border: 1px solid rgba(var(--ig-neon-rgb), .22);
  border-radius: 16px;
  background: color-mix(in srgb, var(--ig-bg) 88%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 18px 40px rgba(0,0,0,.12);
  overflow: hidden;
}
.ig-about-shellbar,
.ig-about-terminal__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .68rem .85rem;
  border-bottom: 1px solid rgba(var(--ig-neon-rgb), .13);
  background: rgba(var(--ig-neon-rgb), .045);
  color: var(--ig-muted);
  font-family: var(--ig-mono);
  font-size: .74rem;
}
.ig-about-shellbar strong,
.ig-about-terminal__bar strong { color: var(--ig-text); font-weight: 650; }
.ig-about-jakefile pre {
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  transform: none !important;
  padding: 1rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--ig-text) !important;
  box-shadow: none !important;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: .84rem;
  line-height: 1.75;
}
.ig-about-jakefile pre .ig-about-status { color: hsl(var(--ig-topic-hue,188) 90% 66%); }
.ig-about-terminal { cursor: text; }
.ig-about-terminal__output {
  height: 245px;
  overflow: auto;
  padding: .9rem 1rem .35rem;
  scrollbar-width: thin;
  font: .79rem/1.6 var(--ig-mono);
}
.ig-about-terminal__entry { margin-bottom: .72rem; }
.ig-about-terminal__command { color: hsl(var(--ig-topic-hue,188) 88% 66%); }
.ig-about-terminal__line { color: var(--ig-muted); overflow-wrap: anywhere; }
.ig-about-terminal__entry.is-error .ig-about-terminal__line:first-of-type { color: #ff8f9b; }
.ig-about-terminal__form {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: .45rem;
  padding: .7rem .8rem;
  border-top: 1px solid rgba(var(--ig-neon-rgb), .13);
  font-family: var(--ig-mono);
}
.ig-about-terminal__prompt { color: hsl(var(--ig-topic-hue,188) 88% 66%); white-space: nowrap; font-size: .78rem; }
.ig-about-terminal__input {
  min-width: 0;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  color: var(--ig-text) !important;
  padding: .35rem .2rem !important;
  font: .82rem/1.3 var(--ig-mono) !important;
}
.ig-about-terminal__run {
  min-height: 32px;
  padding: .35rem .62rem;
  border: 1px solid rgba(var(--ig-neon-rgb), .28);
  border-radius: 8px;
  background: rgba(var(--ig-neon-rgb), .08);
  color: var(--ig-text);
  font: 700 .7rem/1 var(--ig-mono);
  cursor: pointer;
}
.ig-about-terminal__run:hover,
.ig-about-terminal__run:focus-visible { border-color: rgba(var(--ig-neon-rgb), .62); box-shadow: 0 0 18px rgba(var(--ig-neon-rgb), .10); }
.ig-about-terminal__hint { margin: 0; padding: 0 .9rem .8rem; color: var(--ig-muted); font-size: .75rem; }

.article-body--about .isageek-about-lego {
  position: relative;
  isolation: isolate;
  cursor: pointer;
  outline: none;
}
.article-body--about .isageek-about-lego:focus-visible {
  box-shadow: 0 0 0 2px var(--ig-bg), 0 0 0 4px rgba(var(--ig-neon-rgb), .72);
}
.article-body--about .isageek-about-lego img { transition: transform .32s ease, filter .32s ease, opacity .22s ease; }
.article-body--about .isageek-about-lego:hover img { transform: translateY(-1px) scale(1.006); filter: saturate(1.08); }
.article-body--about .isageek-about-lego.is-rebuilding img { transform: scale(.992); filter: saturate(1.28) brightness(.93); }
.ig-lego-scatter { position: absolute; inset: 0; z-index: 4; pointer-events: none; overflow: visible; }
.ig-lego-scatter i {
  --brick-x: 50%; --brick-y: 50%; --brick-dx: 0px; --brick-dy: 0px; --brick-r: 0deg; --brick-delay: 0ms; --brick-color: #ffd638;
  position: absolute;
  left: var(--brick-x);
  top: var(--brick-y);
  width: clamp(10px, 2.1vw, 19px);
  aspect-ratio: 1.45;
  border-radius: 2px;
  background: var(--brick-color);
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.18), 0 3px 8px rgba(0,0,0,.22);
  opacity: 0;
  transform: translate(-50%,-50%) scale(.45);
  animation: ig-lego-out .58s cubic-bezier(.2,.75,.22,1) var(--brick-delay) forwards;
}
.isageek-about-lego.is-snapping-back .ig-lego-scatter i { animation: ig-lego-back .5s cubic-bezier(.35,1.45,.5,1) var(--brick-delay) forwards; }
@keyframes ig-lego-out {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(.45) rotate(0); }
  14% { opacity: .98; }
  100% { opacity: .96; transform: translate(calc(-50% + var(--brick-dx)), calc(-50% + var(--brick-dy))) scale(1) rotate(var(--brick-r)); }
}
@keyframes ig-lego-back {
  0% { opacity: .96; transform: translate(calc(-50% + var(--brick-dx)), calc(-50% + var(--brick-dy))) scale(1) rotate(var(--brick-r)); }
  82% { opacity: .92; transform: translate(-50%,-50%) scale(.72) rotate(0); }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(.35) rotate(0); }
}

.ig-about-achievement {
  position: fixed;
  right: clamp(12px,3vw,34px);
  bottom: clamp(12px,3vw,30px);
  z-index: 10000;
  width: min(360px, calc(100vw - 24px));
  padding: .8rem .95rem;
  border: 1px solid rgba(var(--ig-neon-rgb), .4);
  border-radius: 12px;
  background: rgba(9,14,21,.94);
  color: #eefcff;
  box-shadow: 0 18px 52px rgba(0,0,0,.38), 0 0 30px rgba(var(--ig-neon-rgb), .12);
  font-family: var(--ig-mono);
  pointer-events: none;
  opacity: 0;
  transform: translateY(14px) scale(.98);
  transition: opacity .22s ease, transform .32s cubic-bezier(.2,.8,.2,1);
}
.ig-about-achievement.is-visible { opacity: 1; transform: translateY(0) scale(1); }
.ig-about-achievement small { display: block; color: hsl(var(--ig-topic-hue,188) 88% 66%); font-size: .65rem; letter-spacing: .12em; }
.ig-about-achievement strong { display: block; margin-top: .18rem; font-size: .93rem; }
.ig-about-achievement span { display: block; margin-top: .2rem; color: #aebbc7; font-size: .73rem; }

/* Konami state: intentionally excessive, but only for 12 seconds. */
.isageek-max-geek { --ig-wave-opacity: 1; --ig-grid-opacity: .14; }
.isageek-max-geek .ig-wave::before,
.isageek-max-geek .ig-wave::after,
.isageek-max-geek .ig-page-wave::before,
.isageek-max-geek .ig-page-wave::after { animation-duration: 3.2s !important; }
.isageek-max-geek .site-brand__name,
.isageek-max-geek .article-title,
.isageek-max-geek .article-body--about h2 { text-shadow: 0 0 10px rgba(var(--ig-neon-rgb),.32), 0 0 28px rgba(var(--ig-neon-rgb),.13); }
.isageek-max-geek .article-body--about .isageek-column-card { box-shadow: 0 0 24px rgba(var(--ig-neon-rgb),.08); }

@media(max-width:820px) {
  .ig-about-geek-grid { grid-template-columns: 1fr; }
  .ig-about-terminal__output { height: 215px; }
  .ig-about-terminal__prompt { font-size: .7rem; }
}
.isageek-motion-off .ig-lego-scatter { display: none !important; }
.isageek-motion-off .ig-about-achievement { transition: none !important; }
.isageek-motion-off.isageek-max-geek .ig-wave::before,
.isageek-motion-off.isageek-max-geek .ig-wave::after,
.isageek-motion-off.isageek-max-geek .ig-page-wave::before,
.isageek-motion-off.isageek-max-geek .ig-page-wave::after { animation: none !important; }
@media(prefers-reduced-motion:reduce) {
  body:not(.isageek-motion-always) .ig-lego-scatter { display: none !important; }
  body:not(.isageek-motion-always) .ig-about-achievement { transition: none !important; }
  body:not(.isageek-motion-always).isageek-max-geek .ig-wave::before,
  body:not(.isageek-motion-always).isageek-max-geek .ig-wave::after,
  body:not(.isageek-motion-always).isageek-max-geek .ig-page-wave::before,
  body:not(.isageek-motion-always).isageek-max-geek .ig-page-wave::after { animation: none !important; }
}


/* ========================================================================== 
   v1.6.6 — About-page geek stats + S2000 rev
   ========================================================================== */
.ig-about-stats-panel {
  margin: 1.25rem 0 2rem;
  padding: 1rem 1rem 1.05rem;
  border: 1px solid rgba(var(--ig-neon-rgb), .20);
  border-radius: 16px;
  background: color-mix(in srgb, var(--ig-bg) 88%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 18px 40px rgba(0,0,0,.12);
}
.ig-about-stats-panel h3 { margin-top: 0; }
.ig-about-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .8rem;
}
.ig-about-stat {
  padding: .85rem .8rem;
  border-radius: 14px;
  border: 1px solid rgba(var(--ig-neon-rgb), .14);
  background: rgba(var(--ig-neon-rgb), .045);
}
.ig-about-stat__value {
  display: block;
  color: var(--ig-text);
  font: 800 1.2rem/1.1 var(--ig-display, var(--ig-body-font, inherit));
  text-shadow: 0 0 16px rgba(var(--ig-neon-rgb), .12);
}
.ig-about-stat__label { display:block; margin-top: .28rem; color: var(--ig-muted); font-size: .78rem; line-height: 1.45; }
.ig-about-stats-panel__note { margin: .8rem 0 0; color: var(--ig-muted); font-size: .78rem; }
.article-body--about .isageek-about-s2000 { cursor: pointer; }
.article-body--about .isageek-about-s2000.is-revving { animation: ig-s2000-rev .68s cubic-bezier(.25,.75,.25,1); }
.article-body--about .isageek-about-s2000.is-revving img { transform: translateZ(0) scale(1.018) rotate(.12deg) !important; filter: saturate(1.15) contrast(1.06) brightness(1.02) !important; }
.article-body--about .isageek-about-s2000.is-revving::after { opacity: 1 !important; animation-duration: .6s !important; box-shadow: 0 0 0 1px rgba(var(--ig-neon-rgb), .55), 0 0 26px rgba(var(--ig-neon-rgb), .18); }
.article-body--about .isageek-about-s2000.is-revving figcaption::after { content: ' // rev'; color: hsl(var(--ig-topic-hue,188) 88% 66%); font-family: var(--ig-mono); font-size: .78em; }
@keyframes ig-s2000-rev {
  0%,100% { transform: translateX(0); }
  18% { transform: translateX(-1.5px) rotate(-.08deg); }
  34% { transform: translateX(1.8px) rotate(.06deg); }
  52% { transform: translateX(-1.3px); }
  68% { transform: translateX(1px); }
}
@media(max-width:960px){ .ig-about-stats-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media(max-width:560px){ .ig-about-stats-grid { grid-template-columns: 1fr; } }
.isageek-motion-off .article-body--about .isageek-about-s2000.is-revving,
.isageek-motion-off .article-body--about .isageek-about-s2000.is-revving img { animation: none !important; transform: none !important; }
@media(prefers-reduced-motion:reduce){
  body:not(.isageek-motion-always) .article-body--about .isageek-about-s2000.is-revving,
  body:not(.isageek-motion-always) .article-body--about .isageek-about-s2000.is-revving img { animation: none !important; transform: none !important; }
}
