/**
 * mustafa.net — "Soft" design (2026-09). Loaded only when inc/soft.php is
 * active (preview ?soft=1, or MCA_SOFT_LIVE). Everything is scoped to
 * body.soft so the legacy theme is untouched when Soft is off.
 *
 * Light by day, dark at night: the head script sets html[data-theme] from
 * the visitor's clock (or their Auto/Light/Dark choice).
 */

/* 1. Tokens — mustafa.net brand (locked 2026-09-27) ----------------------- */
/* Dark = brand tokens verbatim. Light = derived: same ink/lines inverted,
   mint kept for fills; text accents use a deeper mint for AA on white. */
body.soft {
  --s-bg: #F5F7FA;
  --s-bg-2: #EDF1F6;
  --s-card: #FFFFFF;
  --s-elev: #F0F3F7;
  --s-ink: #07090d;
  --s-ink-2: #243041;
  --s-muted: #5a6a7e;
  --s-line: #E1E6ED;
  --s-accent: #0a7a55;          /* text accent on light (derived, AA) */
  --s-mint: #6ee7b7;            /* brand mint — fills */
  --s-on-mint: #042f1e;
  --s-accent-soft: #E7F9F1;
  --s-accent-line: #B8EBD4;
  --s-lead: #07090d;            /* dark feature panels in light mode */
  --s-lead-ink: #eef3fa;
  --s-lead-muted: #8fa0b5;
  --s-lead-elev: #151c27;
  --s-lead-line: #243041;
  --s-shadow: 0 1px 2px rgba(7, 9, 13, 0.06);
  --s-shadow-lg: 0 30px 60px -30px rgba(7, 9, 13, 0.25);
  --s-blue: #EAF2FE;  --s-blue-ink: #1d63c4;
  --s-teal: #E7F9F1;  --s-teal-ink: #0a7a55;
  --s-amber: #FEF6E0; --s-amber-ink: #8a5a00;
  --s-rose: #EEF1F5;  --s-rose-ink: #5a6a7e;
  --s-font: 'Inter', system-ui, -apple-system, sans-serif;
  --s-mono: 'DM Mono', ui-monospace, Menlo, monospace;
  --mca-bg-primary: var(--s-bg);
  --mca-bg-secondary: var(--s-bg-2);
  --mca-bg-panel: var(--s-card);
  --mca-bg-panel-alt: var(--s-bg);
  --mca-bg-glass: var(--s-card);
  --mca-bg-glass-lite: var(--s-card);
  --mca-border: var(--s-line);
  --mca-border-mid: var(--s-line);
  --mca-border-hover: var(--s-ink-2);
  --mca-cyan: var(--s-accent);
  --mca-cyan-dim: var(--s-accent-soft);
  --mca-cyan-glow: transparent;
  --mca-indigo: var(--s-blue-ink);
  --mca-indigo-dim: var(--s-blue);
  --mca-indigo-glow: transparent;
  --mca-purple: var(--s-accent);
  --mca-purple-dim: var(--s-accent-soft);
  --mca-purple-glow: transparent;
  --mca-text-primary: var(--s-ink);
  --mca-text-secondary: var(--s-ink-2);
  --mca-text-muted: var(--s-muted);
  --mca-font: var(--s-font);
  --mca-font-mono: var(--s-mono);
  --mca-radius-sm: 10px;
  --mca-radius: 16px;
  --mca-radius-lg: 22px;
  --mca-radius-xl: 28px;
  --mca-shadow-sm: var(--s-shadow);
  --mca-shadow: var(--s-shadow);
  --mca-shadow-lg: var(--s-shadow-lg);
  --mca-shadow-glow-cyan: none;
  --mca-shadow-glow-indigo: none;
  --mca-shadow-glow-purple: none;

  background: var(--s-bg);
  color: var(--s-ink);
  font-family: var(--s-font);
  -webkit-font-smoothing: antialiased;
}
[data-theme="dark"] body.soft {
  --s-bg: #07090d;
  --s-bg-2: #0b0f15;
  --s-card: #10151d;
  --s-elev: #151c27;
  --s-ink: #eef3fa;
  --s-ink-2: #eef3fa;
  --s-muted: #8fa0b5;
  --s-line: #243041;
  --s-accent: #6ee7b7;
  --s-accent-soft: #12201a;
  --s-accent-line: #2a4a3a;
  --s-lead: #10151d;
  --s-lead-elev: #151c27;
  --s-shadow: none;
  --s-shadow-lg: none;
  --s-blue: #0f1a2b;  --s-blue-ink: #60a5fa;
  --s-teal: #12201a;  --s-teal-ink: #6ee7b7;
  --s-amber: #231c0a; --s-amber-ink: #fbbf24;
  --s-rose: #151c27;  --s-rose-ink: #8fa0b5;
}
body.soft a:hover { color: var(--s-accent); }
body.soft ::selection { background: var(--s-mint); color: var(--s-on-mint); }
body.soft .mca-hero__glow,
body.soft .mca-hero__grid-bg { display: none; }

/* 2. Header: floating rounded bar ----------------------------------------- */
body.soft .mca-header { position: sticky; top: 0; height: auto; padding: 14px 0 0; border: 0; background: transparent; }
body.soft .mca-header::before { background: linear-gradient(var(--s-bg) 55%, transparent); backdrop-filter: none; -webkit-backdrop-filter: none; }
body.soft .mca-header__inner { height: 64px; background: var(--s-card); border-radius: 20px; box-shadow: var(--s-shadow), 0 8px 24px -12px rgba(20, 24, 30, 0.10); padding: 0 12px 0 16px; border: 1px solid transparent; }
[data-theme="dark"] body.soft .mca-header__inner { border-color: var(--s-line); }
body.soft .mca-logo__tagline { color: var(--s-ink); letter-spacing: 0.08em; }
body.soft .mca-logo__sub { color: var(--s-muted); }
body.soft .mca-logo__icon svg { width: 40px; height: 40px; }
[data-theme="dark"] body.soft .mca-logo__icon svg path { stroke: #FFFFFF; }
body.soft .mca-nav__link { font-size: 14.5px; font-weight: 500; color: var(--s-ink-2); padding: 9px 13px; border-radius: 12px; background: transparent; }
body.soft .mca-nav__link:hover { color: var(--s-ink); background: var(--s-bg); }
body.soft .mca-nav__item.is-active .mca-nav__link { color: var(--s-accent); background: var(--s-accent-soft); box-shadow: inset 0 0 0 1px var(--s-accent-line); }
body.soft .mca-nav__submenu { background: var(--s-card); border: 1px solid var(--s-line); border-radius: 16px; box-shadow: var(--s-shadow-lg); }

.soft-mode { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border: 0; border-radius: 12px; background: var(--s-bg); color: var(--s-ink); font: 500 13.5px/1 var(--s-font); cursor: pointer; }
.soft-mode:hover { background: var(--s-bg-2); }
.soft-mode__moon { display: none; }
[data-theme="dark"] .soft-mode__sun { display: none; }
[data-theme="dark"] .soft-mode__moon { display: block; }

/* 3. Footer: one card ------------------------------------------------------ */
body.soft .mca-footer { background: transparent; border: 0; padding: 40px 0 24px; }
body.soft .mca-footer > .mca-container { background: var(--s-card); border-radius: 28px; box-shadow: var(--s-shadow); padding: 40px; border: 1px solid transparent; }
[data-theme="dark"] body.soft .mca-footer > .mca-container { border-color: var(--s-line); }

/* 4. Buttons / pills ------------------------------------------------------- */
body.soft .mca-btn { border-radius: 14px; box-shadow: none; font-weight: 600; }
body.soft .mca-btn--primary { background: var(--s-mint); border-color: var(--s-mint); color: var(--s-on-mint); }
body.soft .mca-btn--primary:hover { filter: brightness(1.06); color: var(--s-on-mint); }
body.soft .mca-btn--ghost { background: var(--s-card); border-color: var(--s-line); color: var(--s-ink); }
body.soft .mca-pill { border-radius: 999px; }

/* 5. Single article --------------------------------------------------------- */
body.soft .mca-single-hero { background: transparent; border: 0; padding: 48px 0 28px; text-align: center; }
body.soft .mca-single-hero .mca-container { max-width: 920px; }
body.soft .mca-single-hero__cat { display: inline-block; color: var(--s-accent); background: var(--s-accent-soft); padding: 6px 14px; border-radius: 999px; font-weight: 600; font-size: 13.5px; }
body.soft .mca-single-hero__title { font-size: clamp(34px, 4.6vw, 56px); line-height: 1.05; letter-spacing: -0.04em; font-weight: 700; color: var(--s-ink); margin: 18px auto 16px; }
body.soft .mca-single-hero__meta { justify-content: center; color: var(--s-muted); }
body.soft .mca-single-layout { gap: 56px; }
body.soft .mca-single-article { background: transparent; border: 0; box-shadow: none; padding: 0; }
body.soft .mca-single-article__hero-img img { border-radius: 28px; }
body.soft .mca-prose { font-size: 18.5px; line-height: 1.75; color: var(--s-ink-2); max-width: 720px; }
body.soft .mca-prose h2 { font-size: 30px; line-height: 1.2; letter-spacing: -0.025em; font-weight: 700; color: var(--s-ink); margin: 2.2em 0 0.6em; }
body.soft .mca-prose h3 { font-size: 22px; letter-spacing: -0.015em; font-weight: 700; color: var(--s-ink); margin: 1.8em 0 0.5em; }
body.soft .mca-prose a { color: var(--s-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.soft .mca-prose strong { color: var(--s-ink); }
body.soft .mca-prose pre { background: #07090d; color: #eef3fa; border-radius: 20px; padding: 20px 22px; border: 0; font-family: var(--s-mono); font-size: 14.5px; line-height: 1.75; }
[data-theme="dark"] body.soft .mca-prose pre { background: #07090d; border: 1px solid var(--s-line); }
body.soft .mca-prose :not(pre) > code { background: var(--s-bg-2); color: var(--s-ink); border-radius: 6px; padding: 2px 6px; font-family: var(--s-mono); font-size: 0.88em; }
body.soft .mca-prose blockquote { background: var(--s-accent-soft); border: 0; border-radius: 20px; padding: 20px 24px; color: var(--s-ink); font-style: normal; }
body.soft .mca-prose table { border-collapse: separate; border-spacing: 0; width: 100%; background: var(--s-card); border-radius: 18px; overflow: hidden; box-shadow: var(--s-shadow); font-size: 15.5px; }
body.soft .mca-prose th { background: var(--s-bg-2); color: var(--s-ink-2); text-align: left; font-weight: 600; }
body.soft .mca-prose th, body.soft .mca-prose td { padding: 12px 16px; border: 0; border-top: 1px solid var(--s-line); }
body.soft .mca-prose img { border-radius: 18px; }

body.soft .mca-single-sidebar__inner { gap: 16px; }
body.soft .mca-sidebar-card { background: var(--s-card); border: 1px solid transparent; border-radius: 22px; box-shadow: var(--s-shadow); }
[data-theme="dark"] body.soft .mca-sidebar-card { border-color: var(--s-line); }
body.soft .mca-share__btn { border-radius: 12px; }

/* 6. Ads — few, labelled, outside the reading flow ------------------------- */
.soft-ad { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.soft-ad__label { font: 500 10.5px/1 var(--s-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--s-muted); }
.soft-ad ins { width: 100%; }
.soft-ad__box { width: 100%; min-height: 120px; display: flex; align-items: center; justify-content: center; border-radius: 16px; border: 1px dashed var(--s-line); background: var(--s-bg-2); font: 12px/1.4 var(--s-mono); color: var(--s-muted); }
.soft-ad--soft-in-article { margin: 2.2em 0; padding: 18px 0; border-top: 1px solid var(--s-line); border-bottom: 1px solid var(--s-line); }
.soft-ad--soft-rail { position: sticky; top: 104px; margin-top: 8px; }
.soft-ad--soft-rail .soft-ad__box { min-height: 600px; }
@media (max-width: 1024px) { .soft-ad--soft-rail { display: none; } }

/* 7. Archives (Builders, Journal, categories) ------------------------------ */
body.soft .mnr { background: var(--s-bg); }
body.soft .mnr-lead, body.soft .mnr-card, body.soft .mnr-w { background: var(--s-card); border: 1px solid transparent; border-radius: 24px; box-shadow: var(--s-shadow); overflow: hidden; }
[data-theme="dark"] body.soft .mnr-lead, [data-theme="dark"] body.soft .mnr-card, [data-theme="dark"] body.soft .mnr-w { border-color: var(--s-line); }
body.soft .mnr-archive-title { font-weight: 700; letter-spacing: -0.04em; }
body.soft .mnr-cat { color: var(--s-accent); }

/* 8. Tool widgets keep a solid dark panel on any background ----------------- */
body.soft .mcar-llm-checker { background: #10151d; border-color: #243041; }

/* 9. Homepage (.sfh-*) ----------------------------------------------------- */
.sfh { max-width: 1328px; margin: 0 auto; padding: 0 24px 24px; display: flex; flex-direction: column; gap: 28px; }
.sfh a { color: var(--s-ink); text-decoration: none; }
.sfh-mono { font-family: var(--s-mono); font-size: 12.5px; }
.sfh-muted { color: var(--s-muted); font-size: 13px; }

.sfh-hero { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; padding: 56px 0 8px; }
.sfh-chip { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--s-accent) !important; background: var(--s-accent-soft); border: 1px solid var(--s-accent-line); padding: 7px 14px; border-radius: 999px; }
.sfh-chip__dot { width: 7px; height: 7px; border-radius: 99px; background: currentColor; }
.sfh-hero__title { margin: 0; font-size: clamp(34px, 4.2vw, 56px); font-weight: 700; letter-spacing: -0.04em; line-height: 1.05; color: var(--s-ink); }
.sfh-hero__lede { margin: 0; max-width: 640px; font-size: 20px; line-height: 1.55; color: var(--s-muted); }
.sfh-hero__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.sfh-btn { display: inline-flex; align-items: center; height: 52px; padding: 0 26px; border-radius: 16px; font-weight: 600; font-size: 16px; }
.sfh-btn--sm { height: 44px; padding: 0 18px; font-size: 15px; border-radius: 14px; }
.sfh-btn--dark { background: var(--s-mint); color: var(--s-on-mint) !important; }
.sfh-btn--dark:hover { background: var(--s-accent); color: var(--s-lead-ink) !important; }
.sfh-btn--light { background: var(--s-card); color: var(--s-ink) !important; box-shadow: var(--s-shadow); border: 1px solid transparent; }
[data-theme="dark"] .sfh-btn--light { border-color: var(--s-line); }

.sfh-window { display: block; margin: 0 56px; background: var(--s-card); border-radius: 28px; box-shadow: var(--s-shadow-lg); overflow: hidden; border: 1px solid transparent; }
[data-theme="dark"] .sfh-window { border-color: var(--s-line); }
.sfh-window__bar { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; background: var(--s-bg); border-bottom: 1px solid var(--s-line); }
.sfh-dot { width: 11px; height: 11px; border-radius: 99px; }
.sfh-dot--r, .sfh-dot--y { background: var(--s-line); } .sfh-dot--g { background: var(--s-mint); }
.sfh-window__url { margin-left: 14px; font: 12.5px var(--s-mono); color: var(--s-muted); background: var(--s-card); padding: 5px 14px; border-radius: 8px; }
.sfh-window__body { display: grid; grid-template-columns: 320px 1fr; }
.sfh-window__side { display: flex; flex-direction: column; gap: 14px; padding: 28px; border-right: 1px solid var(--s-line); }
.sfh-window__h { font-weight: 700; font-size: 19px; letter-spacing: -0.02em; }
.sfh-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--s-muted); }
.sfh-field b { display: flex; align-items: center; height: 44px; padding: 0 12px; border: 1px solid var(--s-line); border-radius: 12px; font-weight: 500; font-size: 15px; color: var(--s-ink); }
.sfh-window__go { margin-top: auto; font-weight: 600; color: var(--s-accent); }
.sfh-window__results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 28px; background: var(--s-bg); }
.sfh-res { display: flex; flex-direction: column; gap: 10px; background: var(--s-card); border-radius: 18px; padding: 20px; box-shadow: var(--s-shadow); }
.sfh-res b { font-size: 19px; font-weight: 700; }
.sfh-res .sfh-mono { color: var(--s-muted); }
.sfh-tag { align-self: flex-start; font-size: 12.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; }
.sfh-tag--ok { color: var(--s-teal-ink); background: var(--s-teal); }
.sfh-tag--warn { color: var(--s-amber-ink); background: var(--s-amber); }
.sfh-tag--no { color: var(--s-rose-ink); background: var(--s-rose); }
.sfh-bar { display: block; height: 8px; border-radius: 99px; background: var(--s-line); overflow: hidden; }
.sfh-bar span { display: block; height: 8px; border-radius: 99px; background: var(--s-mint); }
.sfh-bar--warn span { background: #fbbf24; }
.sfh-bar--no { background: var(--s-rose); }

.sfh-sec { display: flex; flex-direction: column; gap: 22px; padding-top: 28px; }
.sfh-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 0 8px; }
.sfh-kicker { display: block; font-size: 14px; font-weight: 600; color: var(--s-accent); margin-bottom: 8px; }
.sfh-h2 { margin: 0; font-size: clamp(28px, 3vw, 42px); font-weight: 700; letter-spacing: -0.04em; color: var(--s-ink); }
.sfh-link { font-weight: 600; font-size: 15px; color: var(--s-accent) !important; }

.sfh-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: 250px 230px; gap: 20px; }
.sfh-bento__lead { grid-column: span 7; grid-row: span 2; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 40px; border-radius: 28px; background: var(--s-lead); color: var(--s-lead-ink) !important; }
[data-theme="dark"] .sfh-bento__lead { border: 1px solid var(--s-line); }
.sfh-layers { position: absolute; right: 40px; top: 40px; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.sfh-layers span { height: 52px; border-radius: 16px; }
.sfh-layers span:nth-child(1) { width: 220px; background: var(--s-mint); }
.sfh-layers span:nth-child(2) { width: 290px; background: var(--s-accent-line); }
.sfh-layers span:nth-child(3) { width: 360px; background: var(--s-lead-elev); }
.sfh-pill { position: relative; align-self: flex-start; font-size: 13.5px; font-weight: 500; color: var(--s-lead-muted); background: var(--s-lead-elev); padding: 6px 12px; border-radius: 999px; }
.sfh-bento__lead-body { position: relative; display: flex; flex-direction: column; gap: 14px; max-width: 620px; }
.sfh-bento__lead-title { font-size: clamp(26px, 2.6vw, 38px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.08; color: var(--s-lead-ink); }
.sfh-bento__lead-ex { font-size: 17px; line-height: 1.55; color: var(--s-lead-muted); }
.sfh-bento__card { display: flex; flex-direction: column; justify-content: space-between; gap: 14px; padding: 28px; border-radius: 28px; background: var(--s-card); box-shadow: var(--s-shadow); border: 1px solid transparent; }
[data-theme="dark"] .sfh-bento__card { border-color: var(--s-line); }
.sfh-bento__card--1 { grid-column: span 5; }
.sfh-bento__card--2 { grid-column: span 3; background: var(--s-teal); }
.sfh-bento__card--3 { grid-column: span 2; background: var(--s-amber); }
.sfh-bento__title { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.25; }
.sfh-bento__card--3 .sfh-bento__title { font-size: 16.5px; }

.sfh-paths { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; padding-top: 24px; }
.sfh-path { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: 22px; background: var(--s-card); box-shadow: var(--s-shadow); border: 1px solid transparent; }
[data-theme="dark"] .sfh-path { border-color: var(--s-line); }
.sfh-path b { font-size: 17px; }
.sfh-path > span:last-child { font-size: 14px; color: var(--s-muted); line-height: 1.5; }
.sfh-path--dark { background: var(--s-accent-soft); border-color: var(--s-accent-line) !important; }
.sfh-path--dark b { color: var(--s-ink); }
.sfh-ic { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.sfh-ic--blue { background: var(--s-blue); color: var(--s-blue-ink); }
.sfh-ic--teal { background: var(--s-teal); color: var(--s-teal-ink); }
.sfh-ic--amber { background: var(--s-amber); color: var(--s-amber-ink); }
.sfh-ic--rose { background: var(--s-rose); color: var(--s-rose-ink); }
.sfh-ic--ink { background: var(--s-mint); color: var(--s-on-mint); }

.sfh-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sfh-card { display: flex; flex-direction: column; gap: 14px; padding: 14px; border-radius: 24px; background: var(--s-card); box-shadow: var(--s-shadow); border: 1px solid transparent; }
[data-theme="dark"] .sfh-card { border-color: var(--s-line); }
.sfh-card__thumb { height: 150px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font: 15px var(--s-mono); padding: 0 16px; text-align: center; }
.sfh-card__thumb--blue { background: var(--s-blue); color: var(--s-blue-ink); }
.sfh-card__thumb--teal { background: var(--s-teal); color: var(--s-teal-ink); }
.sfh-card__thumb--amber { background: var(--s-amber); color: var(--s-amber-ink); }
.sfh-card__thumb--rose { background: var(--s-rose); color: var(--s-rose-ink); }
.sfh-card__body { display: flex; flex-direction: column; gap: 8px; padding: 0 8px 10px; }
.sfh-card__title { font-size: 19px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; }
.sfh-card--ad { justify-content: center; }
.sfh-card--ad:has(.mca-ad[style*="none"]), .sfh-card--ad:empty { display: none; }
.sfh-card--ad .soft-ad__box { min-height: 230px; }

@media (max-width: 1100px) {
  .sfh-window { margin: 0; }
  .sfh-window__body { grid-template-columns: 1fr; }
  .sfh-window__side { border-right: 0; border-bottom: 1px solid var(--s-line); }
  .sfh-bento { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .sfh-bento__lead { grid-column: 1 / -1; grid-row: auto; min-height: 380px; }
  .sfh-bento__card--1, .sfh-bento__card--2, .sfh-bento__card--3 { grid-column: span 1; }
  .sfh-bento__card--1 { grid-column: 1 / -1; }
  .sfh-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sfh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .sfh { padding: 0 16px 16px; gap: 20px; }
  .sfh-hero { padding-top: 28px; }
  .sfh-hero__lede { font-size: 17px; }
  .sfh-hero__cta, .sfh-hero__cta .sfh-btn { width: 100%; justify-content: center; }
  .sfh-window__results { grid-template-columns: 1fr; padding: 16px; }
  .sfh-window__side { padding: 18px; }
  .sfh-layers { display: none; }
  .sfh-bento { grid-template-columns: 1fr; }
  .sfh-bento__card--1, .sfh-bento__card--2, .sfh-bento__card--3 { grid-column: auto; }
  .sfh-bento__lead { min-height: 0; padding: 26px; }
  .sfh-head { flex-direction: column; align-items: flex-start; }
  .sfh-paths, .sfh-grid { grid-template-columns: 1fr; }
  body.soft .mca-header { padding: 10px 12px 0; }
  body.soft .mca-prose { font-size: 17.5px; }
  .soft-mode__label { display: none; }
}

/* 10. Brand logo — the mint "m" mark, icon only, transparent (2026-09-27) */
.soft-logo { display: none; }
body.soft .mca-header .mca-logo__icon, body.soft .mca-header .mca-logo__text,
body.soft .mca-footer .mca-logo__icon, body.soft .mca-footer .mca-logo__text { display: none; }
body.soft .soft-logo { display: inline-flex; align-items: center; gap: 12px; }
.soft-logo__word { font: 700 22px/1 'Outfit', var(--s-font); letter-spacing: -0.02em; color: #07090d; white-space: nowrap; }
[data-theme="dark"] .soft-logo__word { color: #eef3fa; }
body.soft .mca-footer .soft-logo__word { font-size: 24px; }
.soft-logo__icon { width: 44px; height: 44px; display: block; }
.soft-logo__m { stroke: #07090d; }
[data-theme="dark"] .soft-logo__m { stroke: #eef3fa; }
body.soft .mca-footer .soft-logo__icon { width: 56px; height: 56px; }
.soft-logo .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 11. Main pages — re-skin legacy widgets to the brand ---------------------- */
body.soft .mca-page-hero { background: transparent; border-bottom: 0; }
body.soft .mca-page-hero__title { letter-spacing: -0.035em; font-weight: 700; }
body.soft .mca-page-hero .mca-pill { background: var(--s-accent-soft); color: var(--s-accent); border: 1px solid var(--s-accent-line); }

/* Hardware checker: dark instrument panel in brand tokens */
body.soft .mcar-llm-checker { background: #10151d; border: 1px solid #243041; border-radius: 24px; font-family: var(--s-font); color: #eef3fa; }
body.soft .mcar-llm-header h2, body.soft .mcar-llm-model-name, body.soft .mcar-llm-upgrade h3, body.soft .mcar-llm-upgrade-card strong { color: #eef3fa; }
body.soft .mcar-llm-header p, body.soft .mcar-llm-inputs label span, body.soft .mcar-llm-group-title, body.soft .mcar-llm-model-notes, body.soft .mcar-llm-upgrade-card span { color: #8fa0b5; }
body.soft .mcar-llm-inputs select, body.soft .mcar-llm-inputs option { background-color: #151c27; border-color: #243041; border-radius: 12px; }
body.soft .mcar-llm-inputs select:focus { outline-color: #6ee7b7; }
body.soft .mcar-llm-model { background: #151c27; border-color: #243041; border-radius: 14px; }
body.soft .mcar-llm-model:hover { background: #151c27; border-color: #2a4a3a; }
body.soft .mcar-llm-model--runs { border-left-color: #6ee7b7; }
body.soft .mcar-llm-model--offload { border-left-color: #fbbf24; }
body.soft .mcar-llm-model--cant { border-left-color: #5a6a7e; }
body.soft .mcar-llm-model-vram { color: #60a5fa; font-family: var(--s-mono); }
body.soft .mcar-llm-model-tps { background: #12201a; color: #6ee7b7; border-radius: 999px; }
body.soft .mcar-llm-model--offload .mcar-llm-model-tps { background: rgba(251,191,36,.12); color: #fbbf24; }
body.soft .mcar-llm-model--cant .mcar-llm-model-tps { background: #151c27; color: #8fa0b5; }
body.soft .mcar-llm-upgrade { background: #151c27; border-color: #243041; border-radius: 18px; }
body.soft .mcar-llm-upgrade-card { background: #10151d; border-color: #243041; border-radius: 14px; }
body.soft .mcar-llm-upgrade-card:hover { border-color: #6ee7b7; }
body.soft .mcar-llm-upgrade-card em { color: #6ee7b7; }
body.soft .mcar-llm-disclosure { border-top-color: #243041; }
body.soft .mcar-llm-disclosure p { color: #8fa0b5; }

/* "What should I actually run?" recommender */
body.soft .mcar-rec { background: #10151d; border: 1px solid #243041; border-radius: 24px; font-family: var(--s-font); box-shadow: none; }
body.soft .mcar-rec .rec-head h2, body.soft .mcar-rec .rec-pick h3 { color: #eef3fa; }
body.soft .mcar-rec .rec-head p, body.soft .mcar-rec .rec-field label, body.soft .mcar-rec .rec-pick p, body.soft .mcar-rec .rec-mem-row, body.soft .mcar-rec .rec-box h4, body.soft .mcar-rec .rec-note { color: #8fa0b5; }
body.soft .mcar-rec #rec-hw { background-color: #151c27; border-color: #243041; border-radius: 12px; }
body.soft .mcar-rec .rec-chip { background: #151c27; border-color: #243041; color: #c9d4e2; }
body.soft .mcar-rec .rec-chip:hover { border-color: #2a4a3a; color: #eef3fa; }
body.soft .mcar-rec .rec-chip--on { background: #12201a; border-color: #2a4a3a; color: #6ee7b7; }
body.soft .mcar-rec .rec-pick { background: #12201a; border-color: #2a4a3a; border-radius: 16px; }
body.soft .mcar-rec .rec-badge { color: #042f1e; background: #6ee7b7; border-color: #6ee7b7; }
body.soft .mcar-rec .rec-pick--tight { background: rgba(251,191,36,.08); border-color: rgba(251,191,36,.35); }
body.soft .mcar-rec .rec-pick--tight .rec-badge { color: #231c0a; background: #fbbf24; border-color: #fbbf24; }
body.soft .mcar-rec .rec-mem, body.soft .mcar-rec .rec-box { background: #151c27; border-color: #243041; border-radius: 14px; }
body.soft .mcar-rec .rec-bar { background: #243041; }
body.soft .mcar-rec .rec-bar-fill { background: #6ee7b7; }
body.soft .mcar-rec .rec-bar-fill--tight { background: #fbbf24; }
body.soft .mcar-rec .rec-yes { color: #6ee7b7; }
body.soft .mcar-rec .rec-no { color: #8fa0b5; }
body.soft .mcar-rec .rec-tightm { color: #fbbf24; }
body.soft .mcar-rec .rec-cmd { background: #07090d; border-color: #243041; }
body.soft .mcar-rec a { color: #6ee7b7; }

/* Self-Hosted Apps directory (shapps.css) and Homelab Gear (homelab.css): map their tokens */
:root body.soft .sh {
  --bg: var(--s-bg); --sf: var(--s-card); --sf2: var(--s-bg-2); --sf3: var(--s-elev);
  --line: var(--s-line); --line2: var(--s-line);
  --ink: var(--s-ink); --ink2: var(--s-ink-2); --ink3: var(--s-muted);
  --ac: var(--s-accent); --ac2: var(--s-accent); --acl: var(--s-accent-line); --acw: var(--s-accent-soft);
  --ok: var(--s-accent); --wr: #b7791f; --hi: var(--s-muted);
  --sans: var(--s-font); --r: 14px; --r-lg: 22px;
}
:root[data-theme="dark"] body.soft .sh { --wr: #fbbf24; }
:root body.soft .hl, :root[data-theme="dark"] body.soft .hl {
  --bg: var(--s-bg); --surface: var(--s-card); --surface-2: var(--s-bg-2); --surface-3: var(--s-elev);
  --line: var(--s-line); --line-strong: var(--s-line);
  --ink: var(--s-ink); --ink-2: var(--s-ink-2); --ink-3: var(--s-muted);
  --accent: var(--s-accent); --accent-ink: var(--s-accent); --accent-line: var(--s-accent-line); --accent-wash: var(--s-accent-soft);
  --ok: var(--s-accent); --warn: #b7791f;
  --sans: var(--s-font); --r: 14px; --r-lg: 22px;
}
:root[data-theme="dark"] body.soft .hl { --warn: #fbbf24; }

/* Legacy inline colours in page content (cyan / blue / purple / pale grey) */
body.soft .mca-main [style*="color:#00c8ff" i], body.soft .mca-main [style*="color: #00c8ff" i],
body.soft .mca-main [style*="color:#06b6d4" i], body.soft .mca-main [style*="color: #06b6d4" i],
body.soft .mca-main [style*="color:#6ea8fe" i], body.soft .mca-main [style*="color: #6ea8fe" i],
body.soft .mca-main [style*="color:#a855f7" i], body.soft .mca-main [style*="color: #a855f7" i] { color: var(--s-accent) !important; }
body.soft .mca-main [style*="color:#9aa4b2" i], body.soft .mca-main [style*="color: #9aa4b2" i],
body.soft .mca-main [style*="color:#94a3b8" i], body.soft .mca-main [style*="color: #94a3b8" i],
body.soft .mca-main [style*="color:#f85149" i] { color: var(--s-muted) !important; }
body.soft .mca-main [style*="solid #00c8ff" i], body.soft .mca-main [style*="solid #06b6d4" i],
body.soft .mca-main [style*="solid #6ea8fe" i], body.soft .mca-main [style*="solid #a855f7" i],
body.soft .mca-main [style*="solid #10b981" i], body.soft .mca-main [style*="solid #3fb950" i] { border-color: var(--s-mint) !important; }
body.soft .mca-main [style*="rgba(0,200,255" i], body.soft .mca-main [style*="rgba(6,182,212" i],
body.soft .mca-main [style*="rgba(110,168,254" i], body.soft .mca-main [style*="rgba(168,85,247" i],
body.soft .mca-main [style*="rgba(16,185,129" i], body.soft .mca-main [style*="rgba(63,185,80" i] { background: var(--s-accent-soft) !important; }


/* 12. Homelab Gear store — card catalogue in brand tokens -------------------- */
body.soft .store { --acc: var(--s-mint); }
body.soft .store__intro { font-size: 18px; color: var(--s-ink-2); max-width: 760px; }
body.soft .store__note { background: var(--s-card); border: 1px solid var(--s-line); border-left: 0; border-radius: 18px; padding: 16px 20px; color: var(--s-muted); box-shadow: var(--s-shadow); }
body.soft .store__note strong { color: var(--s-ink); }
body.soft .store-search input { background: var(--s-card); border: 1px solid var(--s-line); border-radius: 14px; color: var(--s-ink); padding: 14px 18px; font-size: 15.5px; box-shadow: var(--s-shadow); }
body.soft .store-search input::placeholder { color: var(--s-muted); }
body.soft .store-search input:focus { border-color: var(--s-accent); }
body.soft .store-nav { gap: 8px; position: sticky; top: 96px; z-index: 5; background: var(--s-bg); padding: 10px 0; margin-bottom: 28px; }
body.soft .store-nav a { font: 500 14px/1 var(--s-font); color: var(--s-ink-2); background: var(--s-card); border: 1px solid var(--s-line); padding: 10px 16px; border-radius: 12px; }
body.soft .store-nav a:hover { color: var(--s-accent); border-color: var(--s-accent-line); background: var(--s-accent-soft); }
body.soft .store-sec { margin: 0 0 56px; scroll-margin-top: 170px; }
body.soft .store-sec__head { margin: 0 0 18px; }
body.soft .store-sec__title { font-size: 28px; font-weight: 700; letter-spacing: -0.03em; color: var(--s-ink); }
body.soft .store-sec__sub { font-size: 15.5px; color: var(--s-muted); margin-top: 6px; }
body.soft .store-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
body.soft .store-card { background: var(--s-card); border: 1px solid transparent; border-radius: 20px; padding: 22px; gap: 10px; box-shadow: var(--s-shadow); transform: none !important; }
[data-theme="dark"] body.soft .store-card { border-color: var(--s-line); }
body.soft .store-card__badge { background: var(--s-accent-soft) !important; color: var(--s-accent) !important; border: 1px solid var(--s-accent-line) !important; border-radius: 999px; padding: 4px 10px; font: 600 11px/1 var(--s-font); letter-spacing: 0.04em; }
body.soft .store-card__name { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; color: var(--s-ink); }
body.soft .store-card__why { font-size: 14.5px; line-height: 1.55; color: var(--s-muted); }
body.soft .store-card__foot { border-top: 1px solid var(--s-line); padding-top: 12px; margin-top: 4px; }
body.soft .store-card__price { font: 500 13.5px/1 var(--s-mono); color: var(--s-ink-2); }
body.soft .store-myrig { background: var(--s-lead); border: 0; border-radius: 28px; padding: 32px; }
body.soft .store-myrig .store-sec__title { color: var(--s-lead-ink); }
body.soft .store-myrig .store-sec__sub { color: var(--s-lead-muted); }
body.soft .store-myrig .store-card { background: var(--s-lead-elev); border: 1px solid var(--s-lead-line); box-shadow: none; }
body.soft .store-myrig .store-card__name { color: var(--s-lead-ink); }
body.soft .store-myrig .store-card__why, body.soft .store-myrig .store-card__price { color: var(--s-lead-muted); }
body.soft .store-myrig .store-card__foot { border-top-color: var(--s-lead-line); }
body.soft .store-myrig .store-card__badge { background: #12201a !important; color: #6ee7b7 !important; border-color: #2a4a3a !important; }
body.soft .bundle-sec .store-sec__title { font-size: 28px; }
body.soft .bundle-grid { gap: 16px; }
body.soft .bundle-card { background: var(--s-card); border: 1px solid transparent; border-radius: 22px; padding: 22px; box-shadow: var(--s-shadow); }
[data-theme="dark"] body.soft .bundle-card { border-color: var(--s-line); }
body.soft .bundle-card__head strong { font-size: 18px; color: var(--s-ink); }
body.soft .bundle-card__head span { color: var(--s-muted); }
body.soft .bundle-card__items li { color: var(--s-ink-2); border-color: var(--s-line); }
body.soft .bundle-card__items li span { font-family: var(--s-mono); color: var(--s-muted); }
body.soft .bundle-card__total { font: 600 14px/1 var(--s-mono); color: var(--s-accent); }
body.soft .bundle-card__foot { border-color: var(--s-line); }
body.soft .bundle-sec__title { font-size: 28px; font-weight: 700; letter-spacing: -0.03em; color: var(--s-ink); }
body.soft .bundle-sec__sub { font-size: 15.5px; color: var(--s-muted); }
body.soft .bundle-grid { align-items: start; }
body.soft .bundle-card__items li { padding: 9px 0; }

/* 13. Single post — Soft article layout (template-parts/soft-single.php) ---- */
.ss { max-width: 1328px; margin: 0 auto; padding: 0 24px 24px; }
.ss a { text-decoration: none; }
.ss-hero { max-width: 900px; margin: 0 auto; padding: 56px 0 44px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; }
.ss-crumbs { display: flex; gap: 8px; font-size: 14px; color: var(--s-muted); }
.ss-crumbs a { color: var(--s-muted); }
.ss-crumbs .ss-crumbs__cat { color: var(--s-accent); font-weight: 600; }
.ss-title { margin: 0; font-size: clamp(34px, 4.4vw, 56px); line-height: 1.05; letter-spacing: -0.04em; font-weight: 700; color: var(--s-ink); }
.ss-dek { margin: 0; max-width: 760px; font-size: 20px; line-height: 1.55; color: var(--s-muted); }
.ss-byline { display: flex; align-items: center; gap: 12px; text-align: left; font-size: 14.5px; color: var(--s-muted); }
.ss-byline > span { display: flex; flex-direction: column; gap: 2px; }
.ss-byline b { color: var(--s-ink); font-weight: 600; }
.ss-mark { width: 40px; height: 40px; flex: none; }

.ss-layout { display: grid; grid-template-columns: 220px minmax(0, 720px) 300px; gap: 56px; justify-content: center; align-items: start; }
.ss-left { position: sticky; top: 104px; display: flex; flex-direction: column; gap: 24px; }
.ss-label { display: block; font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--s-muted); margin-bottom: 10px; }
.ss-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ss-toc a { display: block; padding: 8px 12px; border-radius: 10px; font-size: 14px; line-height: 1.35; color: var(--s-ink-2); }
.ss-toc a:hover { background: var(--s-card); color: var(--s-ink); }
.ss-toc a.is-on { background: var(--s-card); color: var(--s-accent); font-weight: 600; box-shadow: var(--s-shadow); }
.ss-share { border-top: 1px solid var(--s-line); padding-top: 18px; }
.ss-share__row { display: flex; gap: 8px; }
.ss-share__btn { width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--s-line); background: var(--s-card); color: var(--s-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.ss-share__btn:hover { border-color: var(--s-accent-line); color: var(--s-accent); }
.ss-share__btn.is-done { background: var(--s-accent-soft); color: var(--s-accent); }

body.soft .ss-body { max-width: 720px; font-size: 18.5px; line-height: 1.75; }
body.soft .ss-body > p:first-child { font-size: 20px; color: var(--s-ink); }
.ss-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.ss-tags a { font-size: 13.5px; padding: 6px 12px; border-radius: 999px; background: var(--s-card); border: 1px solid var(--s-line); color: var(--s-ink-2) !important; text-decoration: none !important; }

.ss-rail { position: sticky; top: 104px; display: flex; flex-direction: column; gap: 20px; }
.ss-tool { display: flex; flex-direction: column; gap: 10px; padding: 24px; border-radius: 24px; background: var(--s-lead); border: 1px solid var(--s-lead-line); }
.ss-tool__k { font-size: 12.5px; font-weight: 600; color: #6ee7b7; letter-spacing: 0.04em; text-transform: uppercase; }
.ss-tool__t { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; color: #eef3fa; }
.ss-tool__d { font-size: 14.5px; line-height: 1.5; color: #8fa0b5; }
.ss-tool__b { margin-top: 4px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: #6ee7b7; color: #042f1e; font-weight: 600; font-size: 14.5px; }
.ss-tool:hover .ss-tool__b { filter: brightness(1.06); }
body.soft .ss-rail .soft-ad--soft-rail { position: static; }

.ss-end { max-width: 1032px; margin: 72px auto 0; display: flex; flex-direction: column; gap: 22px; }
.ss-author { display: flex; align-items: center; gap: 20px; padding: 28px 32px; border-radius: 28px; background: var(--s-card); box-shadow: var(--s-shadow); border: 1px solid transparent; }
[data-theme="dark"] .ss-author { border-color: var(--s-line); }
.ss-author .ss-mark { width: 60px; height: 60px; }
.ss-author > span { display: flex; flex-direction: column; gap: 6px; font-size: 15.5px; line-height: 1.55; color: var(--s-muted); }
.ss-author b { font-size: 18px; color: var(--s-ink); }
.ss-h2 { margin: 20px 0 0; font-size: 28px; font-weight: 700; letter-spacing: -0.035em; color: var(--s-ink); }
.ss-more { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ss-more__card { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: 22px; background: var(--s-card); box-shadow: var(--s-shadow); border: 1px solid transparent; }
[data-theme="dark"] .ss-more__card { border-color: var(--s-line); }
.ss-more__k { font-size: 13px; color: var(--s-muted); }
.ss-more__t { font-size: 17.5px; font-weight: 700; line-height: 1.3; color: var(--s-ink); }
.ss-more__card:hover .ss-more__t { color: var(--s-accent); }
.ss-comments { margin-top: 24px; }

@media (max-width: 1200px) {
  .ss-layout { grid-template-columns: minmax(0, 720px) 280px; }
  .ss-left { display: none; }
}
@media (max-width: 900px) {
  .ss { padding: 0 16px 16px; }
  .ss-layout { grid-template-columns: minmax(0, 1fr); }
  .ss-rail { position: static; }
  .ss-hero { padding: 28px 0 28px; }
  .ss-dek { font-size: 17.5px; }
  .ss-more { grid-template-columns: 1fr; }
  .ss-author { flex-direction: column; align-items: flex-start; padding: 22px; }
  body.soft .ss-body { font-size: 17.5px; }
}

/* 14. Category archives — Soft layout (template-parts/soft-category.php) ---- */
.sc { max-width: 1328px; margin: 0 auto; padding: 24px 24px 24px; display: flex; flex-direction: column; gap: 28px; }
.sc a { text-decoration: none; color: var(--s-ink); }
.sc-band { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: 48px; align-items: end; padding: 56px 60px; border-radius: 32px; background: var(--s-lead); border: 1px solid var(--s-lead-line); }
.sc-band__main { display: flex; flex-direction: column; gap: 18px; }
.sc-band__chip { align-self: flex-start; font-size: 13.5px; font-weight: 600; color: #6ee7b7; background: #12201a; border: 1px solid #2a4a3a; padding: 6px 12px; border-radius: 999px; }
.sc-band__title { margin: 0; font-size: clamp(36px, 4.6vw, 64px); line-height: 1; letter-spacing: -0.045em; font-weight: 700; color: #eef3fa; }
.sc-band__desc { margin: 0; max-width: 600px; font-size: 18.5px; line-height: 1.55; color: #8fa0b5; }
.sc-band__side { display: flex; flex-direction: column; gap: 12px; }
.sc-band__k { font: 500 12px/1 var(--s-mono); letter-spacing: 0.06em; text-transform: uppercase; color: #8fa0b5; }
.sc-band__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.sc-band__chips span { font-size: 14px; padding: 8px 14px; border-radius: 12px; background: #151c27; border: 1px solid #243041; color: #eef3fa; }
.sc-band__note { font-size: 15.5px; color: #eef3fa; }
.sc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sc-feature { grid-column: span 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; padding: 16px; border-radius: 28px; background: var(--s-card); box-shadow: var(--s-shadow); border: 1px solid transparent; }
.sc-feature__art { min-height: 300px; border-radius: 20px; background: var(--s-lead); display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 0 28px; }
.sc-feature__art span { height: 40px; border-radius: 12px; }
.sc-feature__art span:nth-child(1) { width: 45%; background: #6ee7b7; }
.sc-feature__art span:nth-child(2) { width: 70%; background: #2a4a3a; }
.sc-feature__art span:nth-child(3) { width: 100%; background: #151c27; }
.sc-feature__body { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding-right: 20px; }
.sc-feature__title { font-size: 30px; font-weight: 700; letter-spacing: -0.035em; line-height: 1.12; }
.sc-feature__ex { font-size: 16px; line-height: 1.55; color: var(--s-muted); }
.sc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.sc-chips span { font: 500 12px/1 var(--s-mono); padding: 6px 9px; border-radius: 8px; background: var(--s-bg); color: var(--s-ink-2); }
.sc-meta { font-size: 13px; color: var(--s-muted); }
.sc-card { display: flex; flex-direction: column; gap: 16px; padding: 16px; border-radius: 28px; background: var(--s-card); box-shadow: var(--s-shadow); border: 1px solid transparent; }
[data-theme="dark"] .sc-card, [data-theme="dark"] .sc-feature { border-color: var(--s-line); }
.sc-card__art { height: 170px; border-radius: 20px; display: flex; align-items: center; justify-content: center; padding: 0 18px; text-align: center; font: 500 15px/1.4 var(--s-mono); }
.sc-card__art--teal { background: var(--s-teal); color: var(--s-teal-ink); }
.sc-card__art--blue { background: var(--s-blue); color: var(--s-blue-ink); }
.sc-card__art--amber { background: var(--s-amber); color: var(--s-amber-ink); }
.sc-card__art--rose { background: var(--s-lead); color: #6ee7b7; }
.sc-card__body { display: flex; flex-direction: column; gap: 8px; padding: 0 10px 12px; }
.sc-card__title { font-size: 19px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; }
.sc-card:hover .sc-card__title, .sc-feature:hover .sc-feature__title { color: var(--s-accent); }
.sc-card--ad { justify-content: center; }
.sc-card--ad:has(.mca-ad[style*="none"]) { display: none; }
.sc-pages .nav-links { display: flex; justify-content: center; gap: 8px; }
.sc-pages .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--s-card); color: var(--s-ink); box-shadow: var(--s-shadow); }
.sc-pages .page-numbers.current { background: #6ee7b7; color: #042f1e; }
@media (max-width: 1100px) { .sc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sc-band { grid-template-columns: 1fr; padding: 40px; } }
@media (max-width: 700px) { .sc { padding: 16px; } .sc-grid { grid-template-columns: 1fr; } .sc-feature { grid-column: auto; grid-template-columns: 1fr; } .sc-feature__art { min-height: 180px; } .sc-band { padding: 28px 22px; border-radius: 24px; } }

/* 15. Pages: centred hero like the mockups; lists keep their markers ------- */
body.soft .mca-page-hero { text-align: center; padding: 56px 0 24px; }
body.soft .mca-page-hero .mca-container { max-width: 960px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
body.soft .mca-page-hero__title { font-size: clamp(34px, 4.4vw, 56px); line-height: 1.05; margin: 0; }
body.soft .mca-page-hero__subtitle, body.soft .mca-page-hero__subtitle p { font-size: 19px; line-height: 1.55; color: var(--s-muted); max-width: 760px; margin: 0 auto; }
body.soft .mca-prose ul, body.soft .ss-body ul { list-style: disc; padding-left: 1.4em; }
body.soft .mca-prose ol, body.soft .ss-body ol { list-style: decimal; padding-left: 1.4em; }
body.soft .mca-prose li::marker { color: var(--s-accent); }
body.soft .mca-prose li { margin: 0.35em 0; }

/* 16. Code blocks: always light text on the dark panel */
body.soft .mca-prose pre, body.soft .mca-prose pre code, body.soft .ss-body pre, body.soft .ss-body pre code { color: #eef3fa !important; background-color: transparent; }
body.soft .mca-prose pre, body.soft .ss-body pre { background: #07090d !important; }
body.soft .mca-prose pre code *, body.soft .ss-body pre code * { color: inherit; }
body.soft .mca-prose pre, body.soft .ss-body pre { padding-top: 44px !important; }

/* 17. Logo text: tagline over the domain (2026-09-27) */
.soft-logo__text { display: flex; flex-direction: column; gap: 4px; line-height: 1; }
.soft-logo__tag { font: 800 15px/1 'Outfit', var(--s-font); letter-spacing: 0.08em; color: #07090d; white-space: nowrap; }
.soft-logo__site { font: 500 12.5px/1 var(--s-font); letter-spacing: 0.01em; color: var(--s-muted); }
[data-theme="dark"] .soft-logo__tag { color: #eef3fa; }
body.soft .mca-footer .soft-logo__tag { font-size: 17px; }

/* 18. Category archive refinements (2026-09-27): theme-aware band, calmer cards,
   full-width feature so the rest fill rows of three. */
.sc-band { background: var(--s-card); border: 1px solid var(--s-line); box-shadow: var(--s-shadow); padding: 48px 56px; }
.sc-band__title { color: var(--s-ink); font-size: clamp(32px, 3.8vw, 52px); }
.sc-band__desc { color: var(--s-muted); }
.sc-band__chip { color: var(--s-accent); background: var(--s-accent-soft); border-color: var(--s-accent-line); }
.sc-band__k { color: var(--s-muted); }
.sc-band__chips span { background: var(--s-bg); border-color: var(--s-line); color: var(--s-ink-2); }
.sc-band__note { color: var(--s-ink-2); }

.sc-feature { grid-column: 1 / -1; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.sc-feature__art { background: var(--s-accent-soft); border: 1px solid var(--s-accent-line); min-height: 260px; }
.sc-feature__art span:nth-child(1) { background: #6ee7b7; }
.sc-feature__art span:nth-child(2) { background: var(--s-accent-line); }
.sc-feature__art span:nth-child(3) { background: var(--s-card); border: 1px solid var(--s-line); }
.sc-feature__body { padding: 12px 24px 12px 8px; }

.sc-card__art, .sc-card__art--teal, .sc-card__art--blue, .sc-card__art--amber, .sc-card__art--rose {
  height: 140px; background: var(--s-bg-2); color: var(--s-accent); border: 1px solid var(--s-line);
  justify-content: flex-start; align-items: flex-end; padding: 18px 20px; font: 500 13px/1 var(--s-mono); text-transform: lowercase;
  background-image: radial-gradient(var(--s-line) 1.2px, transparent 1.2px); background-size: 16px 16px;
}
.sc-card__art span { background: var(--s-card); border: 1px solid var(--s-accent-line); padding: 7px 11px; border-radius: 999px; }
.sc-card__art span:empty { display: none; }
@media (max-width: 700px) { .sc-feature { grid-template-columns: 1fr; } .sc-band { padding: 28px 22px; } }

/* 19. "Can It Run?" GPU × model matrix (.llmx-*) — card table in brand tokens */
body.soft .llmx-wrap { margin: 28px 0; background: var(--s-card); border: 1px solid var(--s-line); border-radius: 24px; box-shadow: var(--s-shadow); padding: 20px 20px 16px; }
body.soft .llmx-controls { gap: 18px; margin: 0 4px 16px; font-size: 14.5px; color: var(--s-ink-2); }
body.soft .llmx-controls select { height: 40px; padding: 0 34px 0 12px; border-radius: 12px; border: 1px solid var(--s-line); background-color: var(--s-bg); color: var(--s-ink); font: 500 14.5px var(--s-font); }
body.soft .llmx-legend { font-size: 0; display: inline-flex; gap: 18px; align-items: center; }
body.soft .llmx-yes, body.soft .llmx-no { font-size: 0; display: inline-flex; align-items: center; gap: 8px; }
body.soft .llmx-yes::before { content: ""; width: 18px; height: 18px; border-radius: 6px; background: #6ee7b7; }
body.soft .llmx-yes::after { content: "Fits in VRAM (Q4)"; font: 500 14px var(--s-font); color: var(--s-ink-2); }
body.soft .llmx-no::before { content: ""; width: 12px; height: 2px; border-radius: 2px; background: var(--s-muted); margin: 0 3px; }
body.soft .llmx-no::after { content: "Needs more VRAM"; font: 500 14px var(--s-font); color: var(--s-ink-2); }
body.soft .llmx-scroll { border: 1px solid var(--s-line); border-radius: 16px; }
body.soft .llmx-table { font-family: var(--s-font); }
body.soft .llmx-table th, body.soft .llmx-table td { border-bottom: 1px solid var(--s-line); padding: 10px 6px; }
body.soft .llmx-table tbody tr:last-child th, body.soft .llmx-table tbody tr:last-child td { border-bottom: 0; }
body.soft .llmx-table thead th { background: var(--s-bg-2); color: var(--s-ink); padding: 14px 6px 12px; }
body.soft .llmx-mname, body.soft .llmx-gname { color: var(--s-ink); font-size: 13px; font-weight: 700; }
body.soft .llmx-msub, body.soft .llmx-gsub { color: var(--s-muted); font: 500 11.5px var(--s-mono); margin-top: 3px; }
body.soft .llmx-corner { color: var(--s-muted) !important; font-size: 12px; letter-spacing: 0.03em; text-transform: uppercase; }
body.soft .llmx-gpu { background: var(--s-card); padding-left: 16px !important; border-right: 1px solid var(--s-line); }
body.soft .llmx-table thead .llmx-corner { background: var(--s-bg-2); padding-left: 16px; }
body.soft .llmx-c-yes, body.soft .llmx-c-no { background: transparent; }
body.soft .llmx-c-yes { background: var(--s-accent-soft); }
body.soft .llmx-table td a { font-size: 0; height: 26px; display: flex; align-items: center; justify-content: center; border-radius: 8px; }
body.soft .llmx-c-yes a::before { content: ""; width: 20px; height: 20px; border-radius: 7px; background: #6ee7b7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23042f1e' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat; }
body.soft .llmx-c-no a::before { content: ""; width: 12px; height: 2px; border-radius: 2px; background: var(--s-line); }
[data-theme="dark"] body.soft .llmx-c-no a::before { background: #3a4658; }
body.soft .llmx-table td a:hover { background: var(--s-bg); }
body.soft .llmx-c-yes a:hover { background: rgba(110, 231, 183, 0.25); }
body.soft .llmx-table tbody tr:hover th, body.soft .llmx-table tbody tr:hover td { box-shadow: inset 0 9999px rgba(110, 231, 183, 0.06); }
body.soft .llmx-table tr.llmx-dim { opacity: 0.3; }
body.soft .llmx-note { color: var(--s-muted); font-size: 13.5px; margin: 14px 4px 0; }

/* 20. Homelab Gear refinements: "My Current Rig" follows the theme; no duplicate intro */
body.soft .store__intro { display: none; }
body.soft .store-myrig { background: var(--s-accent-soft); border: 1px solid var(--s-accent-line); }
body.soft .store-myrig .store-sec__title { color: var(--s-ink); }
body.soft .store-myrig .store-sec__sub { color: var(--s-muted); }
body.soft .store-myrig .store-card { background: var(--s-card); border: 1px solid var(--s-line); box-shadow: var(--s-shadow); }
body.soft .store-myrig .store-card__name { color: var(--s-ink); }
body.soft .store-myrig .store-card__why, body.soft .store-myrig .store-card__price { color: var(--s-muted); }
body.soft .store-myrig .store-card__foot { border-top-color: var(--s-line); }
body.soft .store-myrig .store-card__badge { background: #6ee7b7 !important; color: #042f1e !important; border-color: #6ee7b7 !important; }

/* 21. Hub pages (.hubx — Homelab Security etc.): Soft cards, callout, planned state */
body.soft .hubx { max-width: 1040px; margin: 0 auto; }
body.soft .hubx__intro { font-size: 20px; line-height: 1.6; color: var(--s-ink-2); max-width: 760px; margin: 0 0 22px; }
body.soft .hubx__note { display: block; position: relative; padding-left: 72px !important; min-height: 36px; background: var(--s-accent-soft); border: 1px solid var(--s-accent-line); border-left: 1px solid var(--s-accent-line); border-radius: 20px; padding: 18px 22px; color: var(--s-ink-2); font-size: 16px; line-height: 1.6; margin: 0 0 44px; }
body.soft .hubx__note::before { content: ""; position: absolute; left: 20px; top: 16px; width: 36px; height: 36px; border-radius: 11px; background: #6ee7b7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23042f1e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2 4 5v6c0 5 3.5 9 8 11 4.5-2 8-6 8-11V5l-8-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center/20px no-repeat; }
body.soft .hubx__note strong { color: var(--s-ink); }
body.soft .hubx__sec { font: 700 26px/1.2 var(--s-font); letter-spacing: -0.03em; color: var(--s-ink); text-transform: none; margin: 8px 0 16px; padding: 0; border: 0; }
body.soft .hubx__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
body.soft .hubx__grid + .hubx__sec { margin-top: 40px; }
body.soft .hubx__card { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 22px 84px; min-height: 130px; background: var(--s-card); border: 1px solid transparent; border-radius: 22px; box-shadow: var(--s-shadow); text-decoration: none; transition: border-color .15s, transform .15s; }
[data-theme="dark"] body.soft .hubx__card { border-color: var(--s-line); }
body.soft .hubx__card::before { content: ""; position: absolute; left: 24px; top: 24px; width: 42px; height: 42px; border-radius: 12px; background: var(--s-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7a55' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2 4 5v6c0 5 3.5 9 8 11 4.5-2 8-6 8-11V5l-8-3Z'/%3E%3C/svg%3E") center/22px no-repeat; border: 1px solid var(--s-accent-line); }
body.soft .hubx__card:hover { border-color: var(--s-accent-line); transform: translateY(-2px); }
body.soft .hubx__card h3 { margin: 0; font-size: 19px; font-weight: 700; letter-spacing: -0.015em; color: var(--s-ink); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.soft .hubx__card p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--s-muted); }
body.soft .hubx__card .go { margin-top: 2px; font-weight: 600; font-size: 14.5px; color: var(--s-accent); }
body.soft .hubx__soon { background: transparent; border: 1.5px dashed var(--s-line) !important; box-shadow: none; cursor: default; }
body.soft .hubx__soon:hover { transform: none; }
body.soft .hubx__soon::before { background-color: var(--s-bg-2); border-color: var(--s-line); filter: grayscale(1); opacity: .7; }
body.soft .hubx__soon h3 { color: var(--s-ink-2); }
body.soft .hubx__pill { font: 600 11px/1 var(--s-font); letter-spacing: 0.04em; text-transform: uppercase; color: var(--s-amber-ink); background: var(--s-amber); padding: 5px 9px; border-radius: 999px; }
@media (max-width: 700px) { body.soft .hubx__grid { grid-template-columns: 1fr; } body.soft .hubx__card { padding-left: 78px; } }

/* 22. Local LLMs hub (template-parts/soft-hub-llms.php) -------------------- */
.sl { max-width: 1240px; margin: 0 auto; padding: 32px 24px 24px; display: flex; flex-direction: column; gap: 40px; }
.sl a { text-decoration: none; }
.sl-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr); gap: 40px; align-items: stretch; }
.sl-hero__main { display: flex; flex-direction: column; gap: 18px; padding: 24px 0; }
.sl-pill { align-self: flex-start; font-size: 13px; font-weight: 600; color: var(--s-accent); background: var(--s-accent-soft); border: 1px solid var(--s-accent-line); padding: 6px 12px; border-radius: 999px; }
.sl-title { margin: 0; font-size: clamp(38px, 4.4vw, 60px); line-height: 1; letter-spacing: -0.045em; font-weight: 700; color: var(--s-ink); }
.sl-title span { display: block; margin-top: 10px; font-size: 0.5em; line-height: 1.15; letter-spacing: -0.03em; color: var(--s-muted); font-weight: 600; }
.sl-lede { margin: 0; font-size: 18.5px; line-height: 1.6; color: var(--s-ink-2); max-width: 640px; }
.sl-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.sl-jump a { font-size: 14px; font-weight: 500; padding: 9px 14px; border-radius: 12px; background: var(--s-card); border: 1px solid var(--s-line); color: var(--s-ink-2); }
.sl-jump a:hover { border-color: var(--s-accent-line); color: var(--s-accent); }
.sl-jump .sl-jump__main { background: #6ee7b7; border-color: #6ee7b7; color: #042f1e; font-weight: 600; }
.sl-hero__tools { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: 28px; background: var(--s-card); border: 1px solid var(--s-line); box-shadow: var(--s-shadow); }
.sl-k { display: block; font: 500 12px/1 var(--s-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--s-muted); margin: 2px 4px 6px; }
.sl-tool { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 18px; border: 1px solid transparent; }
.sl-tool:hover { background: var(--s-bg); border-color: var(--s-line); }
.sl-tool > span:last-child { display: flex; flex-direction: column; gap: 3px; }
.sl-tool b { font-size: 16px; color: var(--s-ink); }
.sl-tool > span:last-child > span { font-size: 13.5px; color: var(--s-muted); }
.sl-tool__ic { width: 44px; height: 44px; flex: none; border-radius: 13px; background: var(--s-accent-soft) center/22px no-repeat; border: 1px solid var(--s-accent-line); }
.sl-tool__ic--a { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7a55' stroke-width='1.9' stroke-linecap='round'%3E%3Crect x='5' y='5' width='14' height='14' rx='2'/%3E%3Cpath d='M9 9h6v6H9zM9 2v3M15 2v3M9 19v3M15 19v3M2 9h3M2 15h3M19 9h3M19 15h3'/%3E%3C/svg%3E"); }
.sl-tool__ic--b { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7a55' stroke-width='1.9' stroke-linecap='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 12h2M12 12h4M8 16h2M12 16h4'/%3E%3C/svg%3E"); }
.sl-tool__ic--c { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7a55' stroke-width='1.9' stroke-linecap='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M3 15h18M9 3v18M15 3v18'/%3E%3C/svg%3E"); }

.sl-pre { max-width: none !important; }
.sl-pre > p:first-child { font-size: 18px; line-height: 1.7; color: var(--s-ink-2); max-width: 820px; }
.sl-pre > p:empty { display: none; }

/* Recommender: theme-aware (white card in light, brand dark in dark) */
body.soft .mcar-rec { background: var(--s-card) !important; border: 1px solid var(--s-line); border-radius: 28px; padding: 32px; color: var(--s-ink); box-shadow: var(--s-shadow-lg); }
body.soft .mcar-rec .rec-head h2 { color: var(--s-ink); font-size: 28px; letter-spacing: -0.03em; }
body.soft .mcar-rec .rec-head p, body.soft .mcar-rec .rec-field label, body.soft .mcar-rec .rec-pick p, body.soft .mcar-rec .rec-mem-row, body.soft .mcar-rec .rec-note, body.soft .mcar-rec .rec-box h4, body.soft .mcar-rec .rec-tool-sub, body.soft .mcar-rec .rec-alt span, body.soft .mcar-rec .rec-alt em, body.soft .mcar-rec table.rec-q td:nth-child(2) { color: var(--s-muted); }
body.soft .mcar-rec .rec-controls, body.soft .mcar-rec .rec-links { border-color: var(--s-line); }
body.soft .mcar-rec #rec-hw { background-color: var(--s-bg); border-color: var(--s-line); color: var(--s-ink); color-scheme: light dark; }
body.soft .mcar-rec .rec-chip { background: var(--s-bg); border-color: var(--s-line); color: var(--s-ink-2); }
body.soft .mcar-rec .rec-chip:hover { border-color: var(--s-accent-line); color: var(--s-accent); }
body.soft .mcar-rec .rec-chip--on { background: var(--s-accent-soft); border-color: var(--s-accent-line); color: var(--s-accent); }
body.soft .mcar-rec .rec-pick { background: var(--s-accent-soft); border-color: var(--s-accent-line); }
body.soft .mcar-rec .rec-pick h3, body.soft .mcar-rec .rec-alt strong, body.soft .mcar-rec tr.rec-q-on td:first-child { color: var(--s-ink); }
body.soft .mcar-rec .rec-pick--tight { background: var(--s-amber); border-color: rgba(251,191,36,.45); }
body.soft .mcar-rec .rec-mem, body.soft .mcar-rec .rec-box, body.soft .mcar-rec .rec-alt { background: var(--s-bg); border-color: var(--s-line); }
body.soft .mcar-rec .rec-mem-row b, body.soft .mcar-rec table.rec-q td { color: var(--s-ink-2); }
body.soft .mcar-rec .rec-bar { background: var(--s-line); }
body.soft .mcar-rec .rec-bar-rsv { background: repeating-linear-gradient(45deg, var(--s-line), var(--s-line) 4px, transparent 4px, transparent 8px); }
body.soft .mcar-rec .rec-yes { color: var(--s-accent); }
body.soft .mcar-rec .rec-no { color: var(--s-muted); }
body.soft .mcar-rec .rec-cmd { background: #07090d; border-color: #243041; }
body.soft .mcar-rec .rec-cmd code { color: #6ee7b7; }
body.soft .mcar-rec .rec-copy { color: #eef3fa; background: #151c27; border-color: #243041; }
body.soft .mcar-rec .rec-tool-sub a, body.soft .mcar-rec .rec-links a { color: var(--s-accent); }

/* Reference guide: sticky nav + card accordions */
.sl-guide { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 40px; align-items: start; }
.sl-toc { position: sticky; top: 104px; }
.sl-toc nav { display: flex; flex-direction: column; gap: 2px; }
.sl-toc a { padding: 9px 12px; border-radius: 10px; font-size: 14.5px; line-height: 1.35; color: var(--s-ink-2); }
.sl-toc a:hover { background: var(--s-card); color: var(--s-ink); }
.sl-toc a.is-on { background: var(--s-card); color: var(--s-accent); font-weight: 600; box-shadow: var(--s-shadow); }
.sl-acc { display: flex; flex-direction: column; gap: 12px; max-width: none !important; }
body.soft .sl-acc .mcar-accordion { background: var(--s-card); border: 1px solid var(--s-line); border-radius: 20px; box-shadow: var(--s-shadow); overflow: hidden; scroll-margin-top: 110px; margin: 0; }
body.soft .sl-acc .mcar-accordion__summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; font: 700 19px/1.3 var(--s-font); letter-spacing: -0.015em; color: var(--s-ink); background: transparent; border: 0; }
body.soft .sl-acc .mcar-accordion__summary::-webkit-details-marker { display: none; }
body.soft .sl-acc .mcar-accordion__summary::after { content: ""; flex: none; width: 30px; height: 30px; border-radius: 9px; background: var(--s-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7a55' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/16px no-repeat; border: 1px solid var(--s-line); transition: transform .2s; }
body.soft .sl-acc .mcar-accordion[open] > .mcar-accordion__summary::after { transform: rotate(45deg); background-color: var(--s-accent-soft); border-color: var(--s-accent-line); }
body.soft .sl-acc .mcar-accordion[open] { border-color: var(--s-accent-line); }
body.soft .sl-acc .mcar-accordion__body { padding: 0 24px 22px; border: 0; background: transparent; font-size: 17px; line-height: 1.7; color: var(--s-ink-2); }

/* Keep going */
.sl-h2 { margin: 0 0 16px; font-size: 28px; font-weight: 700; letter-spacing: -0.035em; color: var(--s-ink); }
.sl-more__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sl-card { display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 22px; background: var(--s-card); border: 1px solid var(--s-line); box-shadow: var(--s-shadow); transition: border-color .15s, transform .15s; }
.sl-card:hover { border-color: var(--s-accent-line); transform: translateY(-2px); }
.sl-card__q { font-size: 17.5px; font-weight: 700; color: var(--s-ink); }
.sl-card__b { font-size: 14.5px; line-height: 1.55; color: var(--s-muted); flex-grow: 1; }
.sl-card__go { font-size: 14px; font-weight: 600; color: var(--s-accent); }
.sl-related { margin: 16px 0 0; font-size: 15px; color: var(--s-muted); }
.sl-related span { font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #042f1e; background: #6ee7b7; padding: 4px 8px; border-radius: 999px; margin-right: 8px; }
.sl-related a { color: var(--s-accent); font-weight: 600; }

@media (max-width: 1000px) {
  .sl-hero { grid-template-columns: 1fr; }
  .sl-guide { grid-template-columns: 1fr; }
  .sl-toc { position: static; }
  .sl-toc nav { flex-direction: row; flex-wrap: wrap; }
  .sl-more__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) { .sl { padding: 16px; gap: 28px; } body.soft .mcar-rec { padding: 20px; border-radius: 22px; } }
body.soft .sl-acc .mcar-accordion > .mcar-accordion__summary::after { transform: none !important; }
body.soft .sl-acc .mcar-accordion[open] > .mcar-accordion__summary::after { transform: rotate(45deg) !important; }
body.soft .sl-acc .mcar-accordion__summary::before { display: none !important; }
body.soft .mcar-rec .rec-cmd code { background: transparent !important; color: #6ee7b7 !important; padding: 0; }
body.soft .sl-pre > p > .mcar-rec, body.soft .sl-pre .mcar-rec { margin-top: 8px; }
body.soft .mcar-rec .rec-head { margin-top: -4px; }
body.soft .mcar-rec > br, body.soft .mcar-rec > p:empty, body.soft .mcar-rec .rec-head > br { display: none; }
body.soft .mcar-rec > *:first-child { margin-top: 0; }
body.soft .mcar-rec .rec-head h2 { margin-top: 0 !important; }
body.soft .mcar-rec h3, body.soft .mcar-rec h4 { margin-top: 0 !important; }

/* 23. Footer — Soft (template-parts/soft-footer.php) */
.sf { max-width: 1328px; margin: 64px auto 0; padding: 0 24px 28px; display: flex; flex-direction: column; gap: 20px; }
.sf a { text-decoration: none; }
.sf-cta { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 32px 36px; border-radius: 28px; background: var(--s-accent-soft); border: 1px solid var(--s-accent-line); }
.sf-cta__k { font: 500 12px/1 var(--s-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--s-accent); }
.sf-cta__t { margin: 8px 0 6px; font-size: 26px; font-weight: 700; letter-spacing: -.03em; color: var(--s-ink); }
.sf-cta__d { margin: 0; font-size: 15.5px; color: var(--s-ink-2); }
.sf-cta__btns { display: flex; gap: 10px; flex-wrap: wrap; flex: none; }
.sf-btn { height: 48px; padding: 0 20px; display: inline-flex; align-items: center; border-radius: 14px; font-weight: 600; font-size: 15px; background: var(--s-card); border: 1px solid var(--s-line); color: var(--s-ink) !important; }
.sf-btn--mint { background: #6ee7b7; border-color: #6ee7b7; color: #042f1e !important; }
.sf-btn:hover { filter: brightness(1.04); }
.sf-main { display: grid; grid-template-columns: 1.35fr repeat(3, minmax(0, .8fr)) repeat(2, minmax(0, 1.1fr)); gap: 32px; padding: 40px 40px 36px; border-radius: 28px; background: var(--s-card); border: 1px solid var(--s-line); box-shadow: var(--s-shadow); }
.sf-logo { display: inline-flex; align-items: center; gap: 12px; }
.sf-logo svg { width: 48px; height: 48px; }
.sf-logo b { display: block; font: 800 17px/1 'Outfit', var(--s-font); letter-spacing: .07em; color: var(--s-ink); }
.sf-logo span span { display: block; margin-top: 5px; font-size: 12.5px; color: var(--s-muted); }
.sf-about { margin: 16px 0 16px; font-size: 14.5px; line-height: 1.6; color: var(--s-muted); max-width: 300px; }
.sf-social { display: flex; gap: 8px; }
.sf-social a { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; border: 1px solid var(--s-line); background: var(--s-bg); color: var(--s-ink); }
.sf-social a:hover { border-color: var(--s-accent-line); color: var(--s-accent); }
.sf-col h3 { margin: 4px 0 14px; font: 700 12.5px/1 var(--s-font); letter-spacing: .08em; text-transform: uppercase; color: var(--s-ink); }
.sf-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sf-col a { font-size: 14.5px; line-height: 1.4; color: var(--s-ink-2); }
.sf-col a:hover { color: var(--s-accent); }
.sf-col--posts a { font-size: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sf-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 6px 12px; font-size: 13.5px; color: var(--s-muted); }
.sf-bar__links { display: flex; gap: 18px; flex-wrap: wrap; }
.sf-inline { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; flex-wrap: wrap; }
.sf-bar a { color: var(--s-muted); }
.sf-bar a:hover { color: var(--s-accent); }
.sf-top { font-weight: 600; color: var(--s-ink-2) !important; }
body.soft .mca-footer { display: none; }
@media (max-width: 1150px) { .sf-main { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sf-brand { grid-column: 1 / -1; } }
@media (max-width: 700px) { .sf-cta { flex-direction: column; align-items: flex-start; padding: 24px; } .sf-main { grid-template-columns: 1fr 1fr; padding: 26px 22px; } .sf-col--posts { grid-column: 1 / -1; } }

/* 24. Tool pages (template-parts/soft-page-tool.php) + aligned page bodies */
.st { max-width: 1240px; margin: 0 auto; padding: 32px 24px 24px; display: flex; flex-direction: column; gap: 36px; }
.st-facts { display: flex; flex-wrap: wrap; gap: 8px; }
.st-facts span { font-size: 13.5px; font-weight: 500; padding: 7px 12px; border-radius: 999px; background: var(--s-card); border: 1px solid var(--s-line); color: var(--s-ink-2); }
.st-facts span::before { content: "✓"; color: var(--s-accent); font-weight: 700; margin-right: 6px; }
body.soft .st-body { max-width: none !important; padding: 0 !important; margin: 0; }
body.soft .st-body > p, body.soft .st-body > h2, body.soft .st-body > h3, body.soft .st-body > ul, body.soft .st-body > ol { max-width: 820px; }
body.soft .st-body > h2 { margin-top: 1.6em; }
.sl-tool__ic--d { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7a55' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2Zm0 0a2 2 0 0 0 2 2h13'/%3E%3C/svg%3E"); }
/* Every other page: content lines up with the header, with side padding */
body.soft .mca-page-content { max-width: 1240px; margin-left: auto; margin-right: auto; padding-left: 24px !important; padding-right: 24px !important; box-sizing: border-box; }
body.soft .mca-page-hero .mca-container { padding-left: 24px; padding-right: 24px; }
body.soft .st .st-body.mca-page-content { padding: 0 !important; max-width: none; }
body.soft .mcar-llm-checker h2, body.soft .mcar-llm-checker h3 { margin-top: 0 !important; }
body.soft .mcar-llm-header h2 { font-size: 26px !important; letter-spacing: -0.02em; }
body.soft .mcar-llm-checker .mcar-llm-group-title { font: 700 12.5px/1.2 var(--s-font) !important; letter-spacing: .08em !important; text-transform: uppercase; color: var(--s-muted) !important; margin: 18px 0 10px !important; }
body.soft .mcar-llm-checker > br, body.soft .mcar-llm-checker p:empty { display: none; }

/* 25. Hardware checker widget — theme-aware (overrides the brand-dark version) */
body.soft .mcar-llm-checker { background: var(--s-card) !important; border: 1px solid var(--s-line) !important; color: var(--s-ink) !important; box-shadow: var(--s-shadow-lg); padding: 32px !important; border-radius: 28px !important; }
body.soft .mcar-llm-header h2, body.soft .mcar-llm-model-name, body.soft .mcar-llm-upgrade h3, body.soft .mcar-llm-upgrade-card strong { color: var(--s-ink) !important; }
body.soft .mcar-llm-header p, body.soft .mcar-llm-inputs label span, body.soft .mcar-llm-model-notes, body.soft .mcar-llm-upgrade-card span, body.soft .mcar-llm-disclosure p { color: var(--s-muted) !important; }
body.soft .mcar-llm-inputs select, body.soft .mcar-llm-inputs option { background-color: var(--s-bg) !important; border-color: var(--s-line) !important; color: var(--s-ink) !important; color-scheme: light dark; }
body.soft .mcar-llm-model { background: var(--s-bg) !important; border-color: var(--s-line) !important; }
body.soft .mcar-llm-model:hover { border-color: var(--s-accent-line) !important; }
body.soft .mcar-llm-model--runs { border-left: 3px solid #6ee7b7 !important; }
body.soft .mcar-llm-model--offload { border-left: 3px solid #fbbf24 !important; }
body.soft .mcar-llm-model--cant { border-left: 3px solid var(--s-muted) !important; }
body.soft .mcar-llm-model-vram { color: var(--s-blue-ink) !important; }
body.soft .mcar-llm-model-tps { background: var(--s-accent-soft) !important; color: var(--s-accent) !important; }
body.soft .mcar-llm-model--offload .mcar-llm-model-tps { background: var(--s-amber) !important; color: var(--s-amber-ink) !important; }
body.soft .mcar-llm-model--cant .mcar-llm-model-tps { background: var(--s-bg-2) !important; color: var(--s-muted) !important; }
body.soft .mcar-llm-upgrade { background: var(--s-accent-soft) !important; border-color: var(--s-accent-line) !important; }
body.soft .mcar-llm-upgrade-card { background: var(--s-card) !important; border-color: var(--s-line) !important; }
body.soft .mcar-llm-upgrade-card em { color: var(--s-accent) !important; }
body.soft .mcar-llm-disclosure { border-top-color: var(--s-line) !important; }

/* 26. Homepage hero — Bento (option 3, 2026-09-27) */
.sfb { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: minmax(300px, auto) minmax(280px, auto); gap: 16px; padding-top: 24px; }
.sfb a { text-decoration: none; }
.sfb-main { grid-column: span 7; grid-row: span 2; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: 48px 48px 44px; border-radius: 28px; background-color: var(--s-card); border: 1px solid var(--s-line); background-image: radial-gradient(var(--s-line) 1.2px, transparent 1.2px); background-size: 22px 22px; }
.sfb-new { align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 8px; border-radius: 999px; background: var(--s-accent-soft); border: 1px solid var(--s-accent-line); font-size: 13.5px; font-weight: 500; color: var(--s-accent) !important; }
.sfb-new span { background: #6ee7b7; color: #042f1e; font-size: 11.5px; font-weight: 700; padding: 3px 8px; border-radius: 999px; }
.sfb-main__body { display: flex; flex-direction: column; gap: 22px; }
.sfb-title { margin: 0; font-size: clamp(44px, 5.4vw, 78px); line-height: .96; letter-spacing: -.045em; font-weight: 800; color: var(--s-ink); }
.sfb-lede { margin: 0; max-width: 500px; font-size: 18.5px; line-height: 1.6; color: var(--s-muted); }
.sfb-cta { display: flex; flex-wrap: wrap; gap: 10px; }
.sfb-btn { height: 52px; padding: 0 22px; display: inline-flex; align-items: center; border-radius: 14px; border: 1px solid var(--s-line); background: var(--s-elev); color: var(--s-ink) !important; font-weight: 600; font-size: 15.5px; }
.sfb-btn--mint { background: #6ee7b7; border-color: #6ee7b7; color: #042f1e !important; font-weight: 700; }
.sfb-btn:hover { filter: brightness(1.04); }
.sfb-tile { display: flex; flex-direction: column; gap: 14px; padding: 26px; border-radius: 28px; background: var(--s-card); border: 1px solid var(--s-line); transition: border-color .15s, transform .15s; }
.sfb-tile:hover { border-color: var(--s-accent-line); transform: translateY(-2px); }
.sfb-k { font: 500 12px/1 var(--s-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--s-accent); }
.sfb-head { display: flex; justify-content: space-between; align-items: center; }
.sfb-open { font-size: 13.5px; font-weight: 600; color: var(--s-ink-2); }
.sfb-tool { grid-column: span 5; }
.sfb-tool__t { font-size: 24px; font-weight: 700; letter-spacing: -.025em; color: var(--s-ink); }
.sfb-select { height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 0 14px; border-radius: 12px; background: var(--s-elev); border: 1px solid var(--s-line); font-size: 14.5px; color: var(--s-ink); }
.sfb-select span { color: var(--s-muted); }
.sfb-rows { display: flex; flex-direction: column; gap: 9px; }
.sfb-row { display: grid; grid-template-columns: 120px 1fr 72px; align-items: center; gap: 12px; font-size: 14px; color: var(--s-ink-2); }
.sfb-bar { height: 8px; border-radius: 99px; background: var(--s-elev); overflow: hidden; }
.sfb-bar span { display: block; height: 8px; border-radius: 99px; background: #6ee7b7; }
.sfb-bar--warn span { background: #fbbf24; }
.sfb-v { font: 500 12.5px var(--s-mono); color: var(--s-accent); }
.sfb-v--warn { color: var(--s-amber-ink); }
.sfb-build { grid-column: span 3; justify-content: space-between; background: var(--s-accent-soft); border-color: var(--s-accent-line); }
.sfb-build__t { font-size: 21px; font-weight: 700; letter-spacing: -.02em; line-height: 1.22; color: var(--s-ink); }
.sfb-link { font-size: 13.5px; font-weight: 600; color: var(--s-accent); }
.sfb-link--ink { color: var(--s-ink); }
.sfb-lab { grid-column: span 2; justify-content: space-between; padding: 24px; }
.sfb-lab__list { display: flex; flex-direction: column; gap: 9px; font-size: 13.5px; color: var(--s-ink-2); }
.sfb-lab__list span { display: flex; align-items: center; gap: 8px; }
.sfb-lab__list span::before { content: ""; width: 7px; height: 7px; border-radius: 99px; background: #6ee7b7; flex: none; }
@media (max-width: 1100px) {
  .sfb { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: auto; }
  .sfb-main { grid-column: 1 / -1; grid-row: auto; }
  .sfb-tool { grid-column: 1 / -1; }
  .sfb-build, .sfb-lab { grid-column: span 3; }
}
@media (max-width: 640px) {
  .sfb-main { padding: 28px 22px; }
  .sfb-build, .sfb-lab { grid-column: 1 / -1; }
  .sfb-row { grid-template-columns: 100px 1fr 62px; }
}

/* Builders lead card on the homepage: theme-aware (no solid black in light mode) */
.sfh-bento__lead { background: var(--s-card) !important; border: 1px solid var(--s-line); color: var(--s-ink) !important; }
.sfh-bento__lead-title { color: var(--s-ink) !important; }
.sfh-bento__lead-ex { color: var(--s-muted) !important; }
.sfh-pill { background: var(--s-elev) !important; color: var(--s-ink-2) !important; }
.sfh-layers span:nth-child(1) { background: #6ee7b7 !important; }
.sfh-layers span:nth-child(2) { background: var(--s-accent-line) !important; }
.sfh-layers span:nth-child(3) { background: var(--s-elev) !important; border: 1px solid var(--s-line); }
.sfh-bento__card--2:last-child { grid-column: span 5; }
.sfh-bento__card--1:last-child { grid-column: span 5; grid-row: span 2; }

/* 27. My homelab hub (template-parts/soft-hub-gear.php, /homelab-gear/) */
.hg { max-width: 1240px; margin: 0 auto; padding: 32px 24px 24px; display: flex; flex-direction: column; gap: 48px; }
.hg a { text-decoration: none; }
.hg-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.hg-stat { display: flex; flex-direction: column; gap: 6px; padding: 16px; border-radius: 16px; background: var(--s-bg); border: 1px solid var(--s-line); }
.hg-stat:hover { border-color: var(--s-accent-line); }
.hg-stat__n { font-size: 34px; font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--s-ink); }
.hg-stat__l { font-size: 13px; color: var(--s-muted); }
.hg-glance__note { margin: 6px 4px 4px; font-size: 14px; color: var(--s-muted); }
.hg-ic-shield { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a7a55' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2 4 5v6c0 5 3.5 9 8 11 4.5-2 8-6 8-11V5l-8-3Z'/%3E%3C/svg%3E"); }
.hg-sec { scroll-margin-top: 110px; display: flex; flex-direction: column; gap: 20px; }
.hg-sec__head { display: flex; align-items: center; gap: 16px; }
.hg-sec__ic { width: 48px; height: 48px; flex: none; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: #6ee7b7; color: #042f1e; }
.hg-sec__t { margin: 0; font-size: 30px; font-weight: 700; letter-spacing: -.035em; color: var(--s-ink); }
.hg-sec__d { margin: 4px 0 0; font-size: 16px; color: var(--s-muted); }
.hg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.hg-card { display: flex; flex-direction: column; gap: 10px; padding: 24px; border-radius: 22px; background: var(--s-card); border: 1px solid var(--s-line); box-shadow: var(--s-shadow); }
.hg-card--link { transition: border-color .15s, transform .15s; }
.hg-card--link:hover { border-color: var(--s-accent-line); transform: translateY(-2px); }
.hg-badge { display: inline-block; font: 600 11px/1 var(--s-font); letter-spacing: .05em; text-transform: uppercase; color: #042f1e; background: #6ee7b7; padding: 5px 9px; border-radius: 999px; }
.hg-card__name { font-size: 19px; font-weight: 700; letter-spacing: -.02em; color: var(--s-ink); }
.hg-card__role { font-size: 15px; line-height: 1.55; color: var(--s-muted); flex-grow: 1; }
.hg-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.hg-card__tags span { font: 500 12px/1 var(--s-mono); padding: 6px 9px; border-radius: 8px; background: var(--s-bg); border: 1px solid var(--s-line); color: var(--s-ink-2); }
.hg-card__foot { margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--s-line); font-size: 14px; }
.hg-read { font-weight: 600; color: var(--s-accent); }
.hg-soon { color: var(--s-muted); }
.hg-soon::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 99px; background: var(--s-amber-ink); opacity: .7; margin-right: 8px; vertical-align: middle; }
@media (max-width: 1000px) { .hg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .hg { padding: 16px; gap: 36px; } .hg-grid { grid-template-columns: 1fr; } .hg-stats { grid-template-columns: repeat(3, 1fr); } }
