/* theme.css — bundled render-blocking stylesheet (newspaper-needle v6.1.0)
   Generated bundle: replaces 16 individual render-blocking <link>s with one
   compressed, cacheable request. Everything required for a fully-styled first
   paint of home/post/tag/author pages. Do not edit here — edit the source files
   and rebuild. Source order is preserved below for debuggability. */

/* ===== tokens.css ===== */
/* ============================================================
   tokens.css — v5.5.0
   SINGLE SOURCE OF TRUTH for design tokens: color, type scale,
   spacing, radius, shadow, motion.

   This file must load FIRST, before every other stylesheet.
   No other file should declare a :root or html{} color/size
   variable block — they should only *consume* the variables
   defined here. That rule is what stops the "font-size /
   color gets silently overridden by the next file" problem.

   Two variable names exist for each color on purpose
   (--bg / --background-color, --fg / --text-color, etc.)
   because both were already used across the theme's ~30 CSS
   files. Rather than rewrite every consumer, both names are
   defined once, here, pointing at the same value.
   ============================================================ */

:root {
  /* ---------- Brand (identity — do not change) ---------- */
  --brand-g1: #F545A2;
  --brand-g2: #CF2E84;
  --brand-g3: #9B4DB8;
  --brand-g4: #5E9DBA;
  --brand-gradient: linear-gradient(45deg, var(--brand-g1) 0%, var(--brand-g2) 45%, var(--brand-g3) 72%, var(--brand-g4) 91%);
  --brand-gradient-45: linear-gradient(45deg, var(--brand-g1) 0%, var(--brand-g2) 38%, var(--brand-g3) 68%, var(--brand-g4) 100%);

  /* ---------- Brand gradient for TEXT (gradient-clipped hover links,
     e.g. features.css's a:hover rule, .brand-gradient-text, and
     .np-section-flag--lead span). Kept separate from --brand-gradient
     (used for solid backgrounds/borders, where these rules don't apply)
     because text needs its own contrast pass against whatever sits
     behind it — the raw --brand-g1..4 hex values measured as low as
     3.7:1 here against the dark navbar/page background, failing WCAG
     AAA's 7:1 (and failing even AA's 4.5:1 for the middle two stops).
     These are the same brand hues lightened (dark mode) or darkened
     (light mode, see html[data-theme=light] below) just enough that
     every stop clears 7:1 against its own background. ---------- */
  --brand-gradient-text: linear-gradient(90deg, #F776BC 0%, #E37FB5 30%, #C290D4 65%, #71A9C3 100%);

  /* ---------- Semantic status ---------- */
  --success-color: #1A7F3C;
  --error-color: #D32F2F;

  /* ---------- Button text (brand-gradient buttons: email / sign up) ---------- */
  --button-text-color: #ffffff;
  --button-text-color-hover: #f2f0e8;

  /* ---------- Dark mode (default) ---------- */
  --bg: #111111;
  --fg: #f0f0f0;
  --background-color: var(--bg);
  --secondary-background-color: #1a1a1a;
  --text-color: var(--fg);
  --card-bg: #1a1a1a;
  --surface: rgba(255,255,255,.05);
  --surface-hover: rgba(255,255,255,.09);
  --border: rgba(255,255,255,.12);
  --border-color: var(--border);
  --shadow: 0 2px 12px rgba(0,0,0,.45);
  --text-color-80: rgba(240,240,240,.85);
  --text-color-55: rgba(240,240,240,.65);
  --text-color-20: rgba(240,240,240,.2);
  --secondary-text-color: var(--text-color-55);

  /* ---------- Motion / scale ---------- */
  --ease-transition: ease;
  --transition-fast: 150ms cubic-bezier(.2,.7,.3,1);
  --transition-base: 220ms cubic-bezier(.2,.7,.3,1);
  --transition-slow: 380ms cubic-bezier(.2,.7,.3,1);
  --scale: 1;

  /* ---------- Radius ---------- */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-pill: 999px;

  /* ---------- Elevation (modern, soft, brand-tinted) ---------- */
  --shadow-sm: 0 1px 3px rgba(0,0,0,.25);
  --shadow-md: 0 8px 24px rgba(0,0,0,.35);
  --shadow-lg: 0 20px 48px rgba(0,0,0,.45);
  --shadow-brand: 0 10px 30px -8px rgba(245,69,162,.35);

  /* ---------- Spacing scale (rem-based, consistent everywhere) ---------- */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;

  /* ---------- Font families (unchanged brand fonts) ---------- */
  --font1: 'Noto Serif', Georgia, serif;          /* body / editorial serif */
  --font2: 'Old Standard TT', Georgia, serif;      /* headlines */
  --font3: Barlow, Helvetica, Arial, sans-serif;   /* labels / kickers / UI */

  /* =========================================================
     FLUID TYPE SCALE — the ONE place font sizes are defined.
     Every other file should reference these var()s instead of
     hard-coding its own font-size number. clamp(min, fluid, max)
     means these are responsive by construction — no separate
     "mobile font-size" media queries needed for headings.
     ========================================================= */
  --fs-caption:  clamp(.75rem, .68rem + .2vw, .8rem);
  --fs-sm:       clamp(.85rem, .8rem + .2vw, .92rem);
  --fs-body:     clamp(1rem, .96rem + .2vw, 1.08rem);
  --fs-lead:     clamp(1.1rem, 1.05rem + .3vw, 1.25rem);
  --fs-h6:       clamp(.95rem, .9rem + .5vw, 1.2rem);
  --fs-h5:       clamp(1.05rem, .98rem + .7vw, 1.42rem);
  --fs-h4:       clamp(1.2rem, 1.05rem + 1vw, 1.75rem);
  --fs-h3:       clamp(1.4rem, 1.2rem + 1.4vw, 2.2rem);
  --fs-h2:       clamp(1.7rem, 1.4rem + 2vw, 2.8rem);
  --fs-h1:       clamp(2.1rem, 1.6rem + 3vw, 3.6rem);
  --fs-display:  clamp(2.6rem, 1.8rem + 4.5vw, 5.8rem);

  /* Card headings — single owner is cards.css; layout.css / newspaper
     typography must NOT redeclare these. */
  --fs-card-xs:  clamp(.82rem, .74rem + .6vw, 1rem);
  --fs-card-sm:  clamp(.95rem, .85rem + .8vw, 1.15rem);
  --fs-card-md:  clamp(1.05rem, .9rem + 1vw, 1.3rem);
  --fs-card-lg:  clamp(1.15rem, .95rem + 1.8vw, 1.85rem);

  /* Base document size — media queries below only ever touch this. */
  font-size: 16px;
}

html[data-theme=light] {
  --bg: #f4f2ee;
  --fg: #1a1a1a;
  --background-color: var(--bg);
  --secondary-background-color: #eceae6;
  --text-color: var(--fg);
  --card-bg: #ffffff;
  --surface: rgba(0,0,0,.04);
  --surface-hover: rgba(0,0,0,.08);
  --border: rgba(0,0,0,.15);
  --border-color: var(--border);
  --shadow: 0 2px 12px rgba(0,0,0,.10);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.08);
  --shadow-md: 0 8px 24px rgba(0,0,0,.12);
  --shadow-lg: 0 20px 48px rgba(0,0,0,.16);
  --text-color-80: rgba(26,26,26,.82);
  /* .78 (was .65): WCAG AAA audit — .65 rendered at ~5.15:1 against the
     #f4f2ee page background, failing AAA's 7:1 threshold for normal text
     (it passed AA's 4.5:1, which is why it went unnoticed). .78 clears
     7.2:1. Dark mode's --text-color-55 was already compliant (7.4:1)
     and is unchanged. */
  --text-color-55: rgba(26,26,26,.78);
  --text-color-20: rgba(26,26,26,.2);
  --success-color: #0D5C2A;
  --error-color: #B71C1C;
  /* Light mode uses a slightly less saturated gradient for AA text contrast */
  --brand-gradient: linear-gradient(45deg, rgba(245,69,162,1) 0%, rgba(207,46,132,1) 45%, rgba(155,77,184,1) 72%, rgba(94,157,186,1) 91%);
  /* --brand-gradient-text override for light mode: darkened (rather than
     lightened) versions of the same brand hues — light mode needs LOWER
     luminance stops to stay readable against the light page background,
     the opposite direction from dark mode's :root definition above. Raw
     brand hex here measured as low as 2.68:1 against #f4f2ee, well under
     WCAG AAA's 7:1. Every stop below clears 7.4:1+. */
  --brand-gradient-text: linear-gradient(90deg, #970853 0%, #8C1D58 30%, #6F3486 65%, #274F62 100%);
}

/* Base size steps up on larger viewports — everything using --fs-* or
   rem scales proportionally from this single line. */
@media (min-width: 768px)  { :root { font-size: 17px; } }
@media (min-width: 992px)  { :root { font-size: 18px; } }
@media (min-width: 1920px) { :root { --scale: .8; font-size: calc(18px * var(--scale)); } }

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
    --transition-slow: 0ms;
  }
}

/* ===== fonts.css ===== */
@font-face{font-family:'Old Standard TT';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/OldStandardTT-Regular.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Old Standard TT';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/OldStandardTT-Italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Old Standard TT';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/OldStandardTT-Bold.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Noto Serif';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/NotoSerif-Regular-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Noto Serif';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/NotoSerif-Regular-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Noto Serif';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/NotoSerif-Italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Noto Serif';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/NotoSerif-Italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Noto Serif';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/NotoSerif-Regular-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Noto Serif';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/NotoSerif-Regular-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Old Standard TT Fallback';src:local('Georgia'),local('Times New Roman');size-adjust:103%;ascent-override:82%;descent-override:22%;line-gap-override:0%}@font-face{font-family:'Noto Serif Fallback';src:local('Georgia'),local('Times New Roman');size-adjust:100%;ascent-override:85%;descent-override:21%;line-gap-override:0%}

/* ===== layout.css ===== */
/* ============================================================
   layout.css — v5.0.0
   Mobile-first design tokens, typography scale, grid system,
   containers, card components, and article layout.
   Progressive enhancement: lean on mobile, full brand
   complexity at tablet (768px+) and desktop (992px+).
   ============================================================ */

/* ── 1. FONT FACES ────────────────────────────────────────── */
/* v6.1.0: dead @font-face rules for Barlow/Cardo/Caudex/Forum/Montagu removed —
   they only ever resolved as fallbacks behind always-defined --fontN vars, and
   several pointed at font files that were never shipped. 'Old Standard TT' is
   declared authoritatively (woff2, subsetted) in fonts.css, so its .ttf dupes
   here are gone too. Only the two genuinely-used display faces remain: Chomsky
   (masthead / drop-cap, --font4) and OpenDyslexic (accessibility font toggle). */
@font-face{font-family:Chomsky;src:url('../fonts/chomsky.otf');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:OpenDyslexic;src:url('../fonts/OpenDyslexic-Regular.otf');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:OpenDyslexic;src:url('../fonts/OpenDyslexic-Bold.otf');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:OpenDyslexic;src:url('../fonts/OpenDyslexic-Italic.otf');font-weight:400;font-style:italic;font-display:swap}

/* ── 2. DESIGN TOKENS ─────────────────────────────────────── */
/* All color/scale/spacing variables now live in tokens.css, which
   loads before this file. Nothing below should redeclare :root —
   that duplication was the root cause of values silently drifting
   apart between files. This file only *consumes* var(--...). */

html[data-theme=light] .site-content,
html[data-theme=light] .viewport,
html[data-theme=light] body {
  background-color: var(--background-color);
  color: var(--text-color);
}

html[data-theme=light] .account-buttons-separator,
html[data-theme=light] .benefits-outer,
html[data-theme=light] .footer-nav,
html[data-theme=light] .menu-line,
html[data-theme=light] .navbar-links-inner,
html[data-theme=light] .secondary-links-inner,
html[data-theme=light] .section-heading,
html[data-theme=light] .tier-card { border-color: var(--border); }

html[data-theme=light] .button,
html[data-theme=light] .kg-btn,
html[data-theme=light] .kg-header-card-button,
html[data-theme=light] button:not(.unstyled-button) {
  background-color: var(--text-color);
  color: var(--background-color);
}

html[data-theme=light] .big-card,
html[data-theme=light] .horizontal-card,
html[data-theme=light] .small-card,
html[data-theme=light] .tier-card { background-color: #f3f1ee; }

html[data-theme=light] input,
html[data-theme=light] select,
html[data-theme=light] textarea {
  background-color: var(--card-bg);
  color: var(--text-color);
  border-color: var(--border);
}

/* Navbar background-color is controlled exclusively by navbar.css (inverted scheme).
   No override here to avoid fighting the inverted colour system. */

html[data-theme=light] custom-footer,
html[data-theme=light] footer {
  background-color: #eceae6;
  border-top: 1px solid var(--border);
}

html[data-theme=dark] .big-card,
html[data-theme=dark] .extra-small-card,
html[data-theme=dark] .extra-small-side-card,
html[data-theme=dark] .horizontal-card,
html[data-theme=dark] .small-card { border-color: var(--border); }

html[data-theme=dark] .section-heading { border-color: var(--border); }

/* ── 4. RESET & BASE ──────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; }

a,abbr,address,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,img,ins,kbd,label,legend,li,mark,menu,nav,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
ol,ul{list-style:none}
blockquote,q{quotes:none}
blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}
table{border-collapse:collapse;border-spacing:0}

/* ── 5. TYPOGRAPHY — MOBILE-FIRST ────────────────────────── */
/* Base document font stack + colors. The root font-size itself (16/17/18px
   per breakpoint) is owned by tokens.css — this just consumes rem/var(). */
body,html {
  font-family: var(--font1);
  font-size: var(--fs-body);
  line-height: 1.65;
  color: var(--text-color);
  background-color: var(--background-color);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

@media (min-width: 768px) { body,html { line-height: 1.66; } }
@media (min-width: 992px) { body,html { line-height: 1.68; } }

/* Heading scale — single definition, fluid via tokens.css's --fs-h* clamp()s.
   No other stylesheet should set a bare h1–h6 font-size; component-scoped
   headings (card titles, etc.) use their own --fs-* token instead. */
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font2);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 0;
}

h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }
h5 { font-size: var(--fs-h5); }
h6 { font-size: var(--fs-h6); }

@media (min-width: 992px) {
  h1 { line-height: 1.02; }
  h2 { line-height: 1.08; }
  h3 { line-height: 1.12; }
  h4 { line-height: 1.16; }
  h5 { line-height: 1.2; }
  h6 { line-height: 1.24; }
}

p { font-family: var(--font1); font-size: var(--fs-body); line-height: 1.65; margin: 0; }
a { text-decoration: none; color: var(--text-color); transition: color var(--transition-fast); }

figcaption,small {
  font-family: var(--font1);
  line-height: 1.4;
  font-size: var(--fs-caption);
  letter-spacing: 0.02em;
}

figcaption {
  margin-top: 10px;
  margin-bottom: 22px;
  padding-top: 6px;
  border-top: 1px solid var(--border,rgba(128,128,128,.2));
}

figcaption a { text-decoration: underline; }

.post-content .kg-gallery-card figcaption,
.post-content .kg-image-card figcaption { margin-bottom: 28px; }

.post-content .kg-image-card.kg-width-full figcaption,
.post-content .post-feature-image figcaption { margin-bottom: 32px; }

blockquote { border-left: none; }

/* ── 6. BUTTONS & INPUTS ──────────────────────────────────── */
.button,.kg-btn,.kg-header-card-button,button {
  margin: 0;
  cursor: pointer;
  padding: 8px 32px;
  line-height: 1.6;
  font-family: var(--font1);
  color: var(--background-color);
  background-color: var(--text-color);
  font-size: 15px;
  opacity: 1;
  transition: opacity .2s ease,transform .2s ease,color .2s ease,background-color .2s ease,border-color .2s ease;
  border: none;
  outline: 0;
  font-weight: 400;
}

.button:hover,.kg-btn:hover,.kg-header-card-button:hover,button:hover:not(.unstyled-button) { opacity: .92; }

.unstyled-button { padding: 0; border: none; outline: 0; background-color: transparent; }

input,textarea {
  border: 1px solid var(--text-color);
  margin: 0;
  outline: 0;
  width: 100%;
  font-family: var(--font1);
  line-height: 1.6;
  padding: 8px 16px;
  font-size: 15px;
  background-color: var(--background-color);
  border-radius: 0;
  color: var(--text-color);
}

textarea { resize: none; min-height: 32vh; padding: 12px 16px; }
input::placeholder,textarea::placeholder { color: var(--text-color); opacity: .6; }
input:focus,textarea:focus { color: var(--text-color); }
select { color: var(--text-color); background-color: var(--background-color); border-color: var(--border); }
input,select,textarea { color: var(--text-color); }

/* ── 7. UTILITY CLASSES ───────────────────────────────────── */
.hover-underline:hover,.small-card-bottom-text a:hover { text-decoration: underline; }

.two-lines { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.three-lines { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.initial-paragraph { position: relative; display: block; overflow: hidden; }
.initial-paragraph.three-lines { max-height: calc(3 * 1.6 * 15px); }
.initial-paragraph.two-lines { max-height: calc(2 * 1.6 * 15px); }
.initial-paragraph::first-letter {
  float: left;
  font-size: 48px;
  line-height: 1;
  margin-right: 8px;
  font-family: var(--font4);
  color: var(--text-color);
}

/* Mobile: simpler drop cap */
@media (max-width: 767px) {
  .initial-paragraph::first-letter { font-size: 3.4em; }
}

.medium-text { line-height: 1.4; font-family: var(--font3); font-weight: 700; text-transform: uppercase; font-size: 22px; }
.big-text { line-height: 1.4; font-family: var(--font3); font-weight: 700; text-transform: uppercase; font-size: 28px; }
.small-text { line-height: 1.4; font-family: var(--font3); font-weight: 700; text-transform: uppercase; font-size: 18px; }

.italic-lower-opac { font-style: italic; opacity: .7; }
.featured-tags-section { display: block; margin: 24px 0 0; }
.hidden { width: 0; height: 0; display: none; }
.bold-link { font-weight: 700; }

/* Responsive show/hide */
.hide-on-desktop { display: none !important; }
@media (max-width: 991px) {
  .hide-on-desktop { display: block !important; }
  .hide-on-mobile { display: none !important; }
}

.success { color: var(--success-color); }
.error { color: var(--error-color); }

/* ── 8. IMAGES ────────────────────────────────────────────── */
.restricted-access-icon { width: 13px; min-width: 13px; height: 13px; min-height: 13px; display: inline-flex; align-items: center; justify-content: center; margin-right: 5px; }
.access-icon-smaller { width: 11px; min-width: 11px; height: 11px; min-height: 11px; }

figure,img { width: 100%; height: 100%; object-fit: cover; overflow: hidden; }

.hover-image-opacity img { transition: filter .3s ease; filter: none; }
.hover-image-opacity:hover img { filter: brightness(.85) grayscale(.15); }

.hover-image-opacity figure img,.hover-image-opacity img { transition: filter .3s ease; filter: none; }
.hover-image-opacity:hover figure img,.hover-image-opacity:hover img { filter: brightness(.85) grayscale(.15); }

.big-card-image-wrapper::after,.extra-small-card-image-wrapper::after,.hover-image-opacity figure::after,.post-main-image-wrapper figure::after,.slide-card-image-wrapper::after,.small-card-image-wrapper::after { content: none !important; display: none !important; }
.hover-image-opacity figure::before,.hover-image-opacity::after,.kg-gallery-image img::after,.kg-header-card-image::after,.kg-image::after,.kg-product-card-image::after,.kg-signup-card-image::after,p img::after { display: none !important; content: none !important; }

.post-content img:not(.no-lightense) { transition: filter .35s ease,transform var(--lightense-duration) var(--lightense-timing-func); }

html[data-theme=dark] .hover-image-opacity:hover figure img,
html[data-theme=dark] .hover-image-opacity:hover img { filter: brightness(.8) grayscale(.15); }

@media (prefers-reduced-motion: reduce) {
  .hover-image-opacity figure img,.hover-image-opacity img { transition: none; }
}

/* ── 9. CONTAINERS ────────────────────────────────────────── */
/* Mobile-first: 18px padding */
.wide-container {
  padding-left: 18px;
  padding-right: 18px;
  box-sizing: border-box;
  max-width: 1580px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.narrow-container {
  padding-left: 18px;
  padding-right: 18px;
  box-sizing: border-box;
  max-width: 1580px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.footer-inner,.navbar-inner,.navbar-top-inner {
  max-width: 1580px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  box-sizing: border-box;
  padding-left: 18px;
  padding-right: 18px;
}

/* Tablet: 30px padding */
@media (min-width: 768px) {
  .wide-container,.narrow-container { padding-left: 30px; padding-right: 30px; }
  .footer-inner,.navbar-inner,.navbar-top-inner { padding-left: 30px; padding-right: 30px; }
}

/* Desktop: 42px padding */
@media (min-width: 992px) {
  .wide-container,.narrow-container { padding-left: 42px; padding-right: 42px; }
  .footer-inner,.navbar-inner,.navbar-top-inner { padding-left: 10%; padding-right: 10%; }
}

/* Large desktop: fluid */
@media (min-width: 1440px) {
  .narrow-container,.wide-container { padding-left: 2.92vw; padding-right: 2.92vw; }
}

/* ── 10. COLUMN LAYOUT (tag/author pages) ─────────────────── */
.column-layout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding-left: 18px;
  padding-right: 18px;
  box-sizing: border-box;
  align-items: start;
  max-width: 1580px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

@media (min-width: 768px) {
  .column-layout-grid { padding-left: 30px; padding-right: 30px; }
}

@media (min-width: 992px) {
  .column-layout-grid {
    grid-template-columns: 1fr 2fr 1fr;
    gap: 42px;
    padding-left: 42px;
    padding-right: 42px;
  }
}

@media (min-width: 1440px) {
  .column-layout-grid {
    gap: calc(2.92vw * var(--scale,1));
    padding-left: 2.92vw;
    padding-right: 2.92vw;
  }
}

/* Satire column layout override */
.satire-body .satire-articles-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
@media (max-width: 991px) {
  .satire-body .satire-articles-grid { grid-template-columns: 1fr; }
}

/* ── 11. HOMEPAGE EDITORIAL LAYOUT ───────────────────────── */
/* Mobile: single column, content-first, no decorative chrome */
.homepage-editorial .column-layout { margin-top: 16px; }

.homepage-editorial .editorial-front-grid {
  grid-template-columns: 1fr;
  gap: 0;
}

.homepage-editorial .editorial-column { min-width: 0; }

.homepage-editorial .editorial-column--secondary,
.homepage-editorial .editorial-column--utility {
  border-top: none;
  padding-top: 0;
}

.homepage-editorial .editorial-column--lead {
  position: relative;
  padding-left: 0;
  padding-right: 0;
}

.homepage-editorial .editorial-column--lead::after,
.homepage-editorial .editorial-column--lead::before { display: none; }

.homepage-editorial .editorial-column-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  font-family: var(--font3);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-color-55);
  padding: 0 18px;
}

.homepage-editorial .editorial-column-header span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.homepage-editorial .editorial-column-header span::before {
  content: "";
  width: 26px;
  height: 2px;
  background: var(--brand-gradient);
  border-radius: 999px;
}

.homepage-editorial .editorial-column-header--lead { margin-bottom: 20px; color: var(--text-color-80); }
.homepage-editorial .editorial-column-header--spaced { margin-top: 24px; }

.homepage-editorial .editorial-hero-card .big-card {
  padding-bottom: 16px;
  border-bottom: none;
}

.homepage-editorial .editorial-hero-card .big-card-image-link { margin-bottom: 16px; }

/* Mobile hero heading: clean and large */
.homepage-editorial .editorial-hero-card .big-card-heading {
  font-size: clamp(1.5rem, 7vw, 2.2rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.homepage-editorial .editorial-hero-card .big-card-excerpt {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-color-80);
  max-width: 100%;
}

/* Mobile support grid: single column */
.homepage-editorial .editorial-support-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: 0;
  padding: 0 18px;
}

.homepage-editorial .editorial-support-grid .horizontal-card {
  display: flex !important;
  min-height: 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--border);
}

.homepage-editorial .editorial-support-grid .horizontal-card:first-child { border-top: none; }

.homepage-editorial .editorial-support-grid .horizontal-card .horizontal-card-image-link { width: 38%; max-width: 38%; }

.homepage-editorial .editorial-support-grid .horizontal-card .horizontal-card-heading {
  font-size: clamp(0.95rem, 4vw, 1.2rem);
  line-height: 1.2;
}

/* Briefing card */
.homepage-editorial .editorial-briefing-card {
  background: linear-gradient(180deg,var(--surface) 0,transparent 100%);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  padding: 18px 16px;
  margin: 0 18px;
}

.homepage-editorial .editorial-kicker {
  display: inline-block;
  margin-bottom: 10px;
  font-family: var(--font3);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--brand-g1);
}

.homepage-editorial .editorial-briefing-copy h3 {
  font-size: clamp(1.1rem, 5vw, 1.5rem);
  line-height: 1.1;
  margin-bottom: 10px;
}

.homepage-editorial .editorial-briefing-copy p { color: var(--text-color-80); margin-bottom: 0; }

.homepage-editorial .editorial-subscribe-form { margin-top: 18px; }
.homepage-editorial .editorial-subscribe-form .subscribe-wrapper { display: flex; flex-direction: column; gap: 10px; }
.homepage-editorial .editorial-subscribe-form .submit-button { width: 100%; background: var(--brand-gradient); color: var(--background-color); }
.homepage-editorial .editorial-subscribe-form .newsletter-small-bottom-text { display: block; margin-top: 10px; color: var(--text-color-55); }

/* Briefs list */
.homepage-editorial .editorial-briefs-list .extra-small-card:first-child { padding-top: 0; }
.homepage-editorial .editorial-briefs-list .extra-small-card { padding: 20px 0; border-top: 1px solid var(--border); }
.homepage-editorial .editorial-briefs-list .extra-small-card-image-link { width: 100%; margin-top: 12px; }
.homepage-editorial .editorial-briefs-list .extra-small-card-image-wrapper { height: 48vw; }

html[data-theme=light] .homepage-editorial .editorial-briefing-card {
  background: linear-gradient(180deg,color-mix(in srgb,var(--brand-g1) 4%,transparent) 0,var(--surface) 100%);
}

/* Tablet: two-column support grid, brand chrome appears */
@media (min-width: 768px) {
  .homepage-editorial .column-layout { margin-top: 20px; }

  .homepage-editorial .editorial-column-header { padding: 0 30px; margin-bottom: 20px; }

  .homepage-editorial .editorial-hero-card .big-card {
    border-bottom: none;
    padding-bottom: 16px;
  }

  .homepage-editorial .editorial-hero-card .big-card-heading {
    font-size: clamp(1.6rem, 4vw, 2.8rem);
  }

  .homepage-editorial .editorial-hero-card .big-card-excerpt {
    font-size: 1.05rem;
    max-width: 92%;
  }

  .homepage-editorial .editorial-support-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0 24px;
    padding: 0 30px;
  }

  .homepage-editorial .editorial-support-grid .horizontal-card:nth-child(2) { border-top: none; }

  .homepage-editorial .editorial-briefing-card {
    margin: 0 30px;
    padding: 20px 22px;
  }

  .homepage-editorial .editorial-briefing-copy h3 { font-size: clamp(1.2rem, 2.5vw, 1.8rem); }

  .homepage-editorial .editorial-briefs-list .extra-small-card-image-wrapper { height: 28vw; }
}

/* Desktop: full three-column editorial layout, brand complexity */
@media (min-width: 992px) {
  .homepage-editorial .column-layout { margin-top: 24px; }

  .homepage-editorial .editorial-front-grid {
    grid-template-columns: minmax(0,1fr) minmax(0,1.45fr) minmax(280px,.95fr);
    gap: 40px;
    align-items: start;
  }

  .homepage-editorial .editorial-column--secondary,
  .homepage-editorial .editorial-column--utility {
    border-top: 1px solid var(--border);
    padding-top: 14px;
  }

  .homepage-editorial .editorial-column--lead {
    padding-left: 18px;
    padding-right: 18px;
  }

  .homepage-editorial .editorial-column--lead::after,
  .homepage-editorial .editorial-column--lead::before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--border);
  }

  .homepage-editorial .editorial-column--lead::before { left: 0; }
  .homepage-editorial .editorial-column--lead::after { right: 0; }

  .homepage-editorial .editorial-column-header { padding: 0; margin-bottom: 22px; }
  .homepage-editorial .editorial-column-header--lead { margin-bottom: 28px; }
  .homepage-editorial .editorial-column-header--spaced { margin-top: 36px; }

  .homepage-editorial .editorial-hero-card .big-card {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--border);
  }

  .homepage-editorial .editorial-hero-card .big-card-image-link { margin-bottom: 22px; }

  .homepage-editorial .editorial-hero-card .big-card-heading {
    font-size: clamp(28px,3vw,48px);
    line-height: 1.04;
    letter-spacing: -0.02em;
  }

  .homepage-editorial .editorial-hero-card .big-card-excerpt {
    font-size: 17px;
    line-height: 1.6;
    max-width: 92%;
  }

  .homepage-editorial .editorial-support-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0 30px;
    margin-top: 12px;
    padding: 0;
  }

  .homepage-editorial .editorial-support-grid .horizontal-card {
    padding: 28px 0 0;
    border-top: none;
  }

  .homepage-editorial .editorial-support-grid .horizontal-card:first-child,
  .homepage-editorial .editorial-support-grid .horizontal-card:nth-child(2) { border-top: none; }

  .homepage-editorial .editorial-support-grid .horizontal-card .horizontal-card-image-link { width: 34%; max-width: 34%; }

  .homepage-editorial .editorial-support-grid .horizontal-card .horizontal-card-heading {
    font-size: clamp(17px,1.35vw,24px);
    line-height: 1.18;
  }

  .homepage-editorial .editorial-briefing-card {
    padding: 22px 20px;
    margin: 0;
  }

  .homepage-editorial .editorial-briefing-copy h3 {
    font-size: clamp(20px,1.65vw,28px);
    line-height: 1.1;
    margin-bottom: 10px;
  }

  .homepage-editorial .editorial-briefs-list .extra-small-card { padding: 24px 0; }
  .homepage-editorial .editorial-briefs-list .extra-small-card-image-wrapper { height: 12vw; }
}

@media (max-width: 1200px) and (min-width: 992px) {
  .homepage-editorial .editorial-front-grid {
    grid-template-columns: minmax(0,1fr) minmax(0,1.28fr) minmax(250px,.9fr);
    gap: 32px;
  }
  .homepage-editorial .editorial-support-grid { grid-template-columns: 1fr; }
  .homepage-editorial .editorial-support-grid .horizontal-card { border-top: 1px solid var(--border); }
  .homepage-editorial .editorial-support-grid .horizontal-card:first-child { border-top: none; }
  .homepage-editorial .editorial-briefs-list .extra-small-card-image-wrapper { height: 16vw; }
}

/* ── 12. CARD COMPONENTS ──────────────────────────────────── */
/* These selectors are more specific than cards.css's bare .small-card-heading
   etc., so they are the ones that actually render. They now point at the
   SAME --fs-card-* tokens cards.css uses, so the two files can never
   visually disagree again, no matter which one wins the cascade. */
.small-card .small-card-heading {
  font-size: var(--fs-card-sm);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.big-card .big-card-heading {
  font-size: var(--fs-card-lg);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.horizontal-card .horizontal-card-heading {
  font-size: var(--fs-card-sm);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.extra-small-card .extra-small-card-heading,
.extra-small-side-card .extra-small-side-card-heading {
  font-size: var(--fs-card-xs);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Card image wrappers: auto height on mobile (aspect-ratio padding) */
@media (max-width: 991px) {
  .extra-small-card .card-image-wrapper,
  .extra-small-side-card .card-image-wrapper { height: auto; }
  .horizontal-card .card-image-wrapper { height: auto !important; }
}

@media (max-width: 600px) {
  .small-card .card-image-wrapper,
  .small-card-image-wrapper { height: auto !important; }
  .big-card .card-image-wrapper,
  .big-card-image-wrapper { height: auto !important; }
}

@media (max-width: 479px) {
  .extra-small-card .card-image-wrapper,
  .extra-small-side-card .card-image-wrapper,
  .small-card .card-image-wrapper,
  .small-card-image-wrapper { height: auto; }
  .big-card .card-image-wrapper,
  .big-card-image-wrapper { height: auto !important; }
  .horizontal-card .card-image-wrapper { height: auto !important; }
}

/* ── 13. SECTION HEADINGS ─────────────────────────────────── */
.section-heading {
  padding: 8px 0;
  width: 100%;
  border-top: 1px solid var(--text-color);
  border-bottom: 1px solid var(--text-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
  line-height: 1;
  font-family: var(--font2);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 24px;
}

.section-heading-button { display: flex; align-items: center; }
.section-heading-arrow { display: flex; align-items: center; justify-content: center; height: auto; width: 22px; margin-left: 8px; }

@media (min-width: 768px) {
  .section-heading { padding: 10px 0; font-size: 11px; margin-bottom: 32px; }
  .section-heading-arrow { width: 26px; margin-left: 11px; }
}

/* ── 14. SECTION SPACING ──────────────────────────────────── */
.section-padding { padding-top: 28px; padding-bottom: 28px; }
.section-padding-top { padding-top: 28px; }
.section-padding-bottom { padding-bottom: 28px; }
.section-padding-small { padding-top: 18px; padding-bottom: 18px; }

@media (min-width: 768px) {
  .section-padding { padding-top: 36px; padding-bottom: 36px; }
  .section-padding-top { padding-top: 36px; }
  .section-padding-bottom { padding-bottom: 36px; }
  .section-padding-small { padding-top: 24px; padding-bottom: 24px; }
}

@media (min-width: 992px) {
  .section-padding { padding-top: 40px; padding-bottom: 40px; }
  .section-padding-top { padding-top: 40px; }
  .section-padding-bottom { padding-bottom: 40px; }
  .section-padding-small { padding-top: 28px; padding-bottom: 28px; }
}

@media (min-width: 1440px) {
  .section-padding { padding-top: calc(2.2vw * var(--scale)); padding-bottom: calc(2.2vw * var(--scale)); }
  .section-padding-top { padding-top: calc(2.2vw * var(--scale)); }
  .section-padding-bottom { padding-bottom: calc(2.2vw * var(--scale)); }
  .section-padding-small { padding-top: calc(1.5vw * var(--scale)); padding-bottom: calc(1.5vw * var(--scale)); }
}

.pagination-button { margin-bottom: 40px; }

/* ── 15. ANNOUNCEMENT BAR ─────────────────────────────────── */
#announcement-bar-root .gh-announcement-bar {
  font-family: var(--font1);
  font-size: 13px;
  line-height: 1.6;
  padding: 10px 18px;
}

#announcement-bar-root .gh-announcement-bar-content { padding: 0 18px; }
#announcement-bar-root button:hover { background-color: transparent; }

@media (min-width: 768px) {
  #announcement-bar-root .gh-announcement-bar { padding: 10px 30px; font-size: 14px; }
  #announcement-bar-root .gh-announcement-bar-content { padding: 0 30px; }
}

@media (min-width: 992px) {
  #announcement-bar-root .gh-announcement-bar { padding: 10px 42px; }
  #announcement-bar-root .gh-announcement-bar-content { padding: 0 42px; }
}

/* ── 16. BREADCRUMB ───────────────────────────────────────── */
.breadcrumb { display: flex; list-style: none; padding: 0; align-items: center; }
.breadcrumb li+li::before { content: '/'; margin: 0 .5em; opacity: .5; }
.breadcrumb-item-current { font-weight: 500; font-size: larger; }

/* ── 17. MISC HELPERS ─────────────────────────────────────── */
.logo-wrapper .navbar-logo-image,
.logo-wrapper .navbar-logo-text {
  transform: scale(var(--logo-scale,1));
  transform-origin: center;
}

.cryptedmail::after { content: attr(data-name) "@" attr(data-domain) "." attr(data-tld); color: var(--text-color); }

.crypted_mail {
  border: 1px solid transparent;
  line-height: 2.685;
  padding: 0 15px;
  font-size: 1.1rem;
  text-align: center;
  color: var(--button-text-color, #fff);
  border-radius: var(--radius-pill);
  background: var(--brand-gradient);
  box-shadow: var(--shadow-brand);
  cursor: pointer;
  transition: transform var(--transition-fast), color var(--transition-fast);
}

.crypted_mail:hover { transform: translateY(-1px); color: var(--button-text-color-hover, #f2f0e8); }
.crypted_mail:active { opacity: .85; }

/* Post tag list spacing */
.post-tag-list { margin-bottom: 8px; }
.post-tag + .post-tag-list,
.post-tag-list + .post-heading { margin-top: 4px; }

/* ===== navbar.css ===== */
/* ============================================================
   navbar.css — v5.0.0
   Mobile-first navigation bar.
   Colour scheme: navbar always inverts the active site mode.
     Light mode site (default) → navbar is WHITE with BLACK text
     Dark mode site            → navbar is BLACK with WHITE text
   ============================================================ */

/* ── BASE: shared header shell ────────────────────────────── */
/* position: fixed (not sticky) — the header is pinned to the top of the
   viewport at all times and is removed from document flow, so
   .site-content carries a matching padding-top (see below) to prevent
   page content from starting underneath it. Auto-hide on scroll: JS
   (mobile-ux.js) toggles [data-header-hidden] to slide the header out
   of view while scrolling down, and back in on scroll up or on reaching
   the top — the transform/transition live here so the effect is purely
   presentational and has no layout cost. */
.header,
custom-header {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  width: 100%;
  font-family: var(--font2);
  font-size: 16px;
  line-height: 1;
  overflow-x: clip;
  transform: translateY(0);
  transition: transform .28s ease;
}
.header[data-header-hidden="true"],
custom-header[data-header-hidden="true"] {
  transform: translateY(-100%);
}
@media (prefers-reduced-motion: reduce) {
  .header,
  custom-header {
    transition: none;
  }
}

/* Reserve the header's height at the top of the page so fixed
   positioning doesn't cause the page content to render underneath it.
   Fallback values are computed from the header's own CSS at each
   breakpoint (logo-row height + border, and — at desktop — the added
   horizontal nav-links bar): 59px mobile, 182px desktop. mobile-ux.js
   corrects --header-height after first paint if a custom --logo-scale
   or long-wrapping nav labels make the real height differ. */
.site-content {
  padding-top: var(--header-height, 182px);
}
@media (max-width: 991px) {
  .site-content { padding-top: var(--header-height, 59px); }
}

/* Light mode (default): page is light → navbar is WHITE (matches page) */
.header,
custom-header {
  background-color: #ffffff;
  color: #111111;
  border-bottom: 1px solid rgba(0,0,0,.12);
}

/* Dark mode: page is dark → navbar is BLACK (matches page) */
html[data-theme=dark] .header,
html[data-theme=dark] custom-header {
  background-color: #111111;
  color: #ffffff;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

/* ── NAVBAR-LEVEL COLOUR TOKENS ───────────────────────────── */
/* Light mode (default): white navbar → black text */
.header,
custom-header {
  --nav-text: #111111;
  --nav-text-muted: rgba(17,17,17,.65);
  --nav-border: rgba(0,0,0,.18);
  --nav-thumb-bg: #ffffff;
}
/* Dark mode: black navbar → white text */
html[data-theme=dark] .header,
html[data-theme=dark] custom-header {
  --nav-text: #ffffff;
  --nav-text-muted: rgba(255,255,255,.65);
  --nav-border: rgba(255,255,255,.18);
  --nav-thumb-bg: #111111;
}

/* ── LOGO ROW ─────────────────────────────────────────────── */
.navbar-logo-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 12px 18px;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
}

/* ── SOCIALS GROUP (hidden on mobile) ─────────────────────── */
.navbar-socials-group { display: none; }
.navbar-socials-icons {
  display: flex;
  align-items: center;
  gap: 18px;
}
.social {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: var(--nav-text);
  transition: opacity .2s ease;
}
.social:hover { opacity: .65; }
.social-inner {
  width: 22px;
  min-width: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease;
  will-change: transform;
}
.social:hover .social-inner { transform: translateY(-2px); }
.social-inner svg,
.social-inner img {
  width: 100%;
  height: auto;
  fill: var(--nav-text);
  color: var(--nav-text);
  display: block;
}
.social-inner-smaller { width: 21px; min-width: 21px; }

/* ── HAMBURGER (mobile only) ──────────────────────────────── */
.menu-button-wrapper {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 1;
}
.menu-button {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  row-gap: 7px;
  width: 30px;
  height: 30px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.menu-line {
  width: 30px;
  height: 2px;
  background-color: var(--nav-text);
  pointer-events: none;
  transition: transform .3s ease;
  display: block;
  border-radius: 1px;
}

/* ── LOGO CENTER ──────────────────────────────────────────── */
.navbar-logo-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-logo-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: var(--nav-text);
}
.logo-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity .28s ease, transform .28s ease, max-height .28s ease;
  will-change: opacity, transform;
  overflow: hidden;
}
.logo-wrapper.logo-hidden {
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.logo-wrapper:not(.logo-hidden) {
  opacity: 1;
  transform: translateY(0);
  max-height: 80px;
}
.logo-image { height: calc(28px * var(--logo-scale,1)); width: auto; display: block; }
.navbar-logo-text {
  font-family: var(--font4);
  line-height: 80%;
  letter-spacing: -.02em;
  font-size: clamp(28px, 8vw, 38px);
  color: var(--nav-text);
}

/* ── ACCOUNT LINKS (right side) ───────────────────────────── */
.navbar-account-links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}

/* Search button: icon only, enlarged for easier tapping/visibility */
.navbar-search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--nav-text);
  padding: 0;
  transition: opacity .2s ease;
}
.navbar-search-btn:hover { opacity: .7; }
.navbar-search-icon {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  stroke: var(--nav-text);
}

/* Dark/light toggle: single combined icon, no track/thumb switch.
   Sized to match the (enlarged) search and account icon buttons. */
.theme-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  color: var(--nav-text);
  transition: opacity .2s ease;
  outline: 0;
}
.theme-toggle-btn:hover { opacity: .7; }
.theme-toggle-btn:focus-visible {
  outline: 2px solid var(--nav-text);
  outline-offset: 3px;
}
.theme-toggle-icon {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.theme-toggle-icon svg {
  width: 100%;
  height: 100%;
  fill: var(--nav-text);
}

/* Auth buttons: account icon only (enlarged), no text label */
.account-button-wrapper {
  display: flex;
  align-items: center;
  gap: 16px;
  white-space: nowrap;
}
.account-icon-wrapper {
  width: 26px;
  min-width: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.account-icon-wrapper svg { fill: var(--nav-text); }
.header-account-button,
.header-signin-button {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--nav-text);
  text-decoration: none;
  transition: opacity .2s ease;
}
.header-account-button:hover,
.header-signin-button:hover { opacity: .7; }

/* Subscribe / sign-up button: icon + label, always the rightmost header
   control. */
.subscribe-button-gradient {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  font-family: var(--font2);
  font-size: var(--fs-sm);
  line-height: 1;
  color: var(--button-text-color, #fff) !important;
  background: var(--brand-gradient);
  border: none;
  border-radius: var(--radius-pill);
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);
  letter-spacing: .04em;
  box-shadow: var(--shadow-brand);
}
.subscribe-button-gradient:hover { transform: translateY(-1px); box-shadow: 0 14px 34px -8px rgba(245,69,162,.5); color: var(--button-text-color-hover, #f2f0e8) !important; }
.signup-icon-wrapper {
  width: 17px;
  min-width: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.signup-icon-wrapper svg { fill: currentColor; }

/* ── NAV LINKS ROW — mobile: full-screen overlay ──────────── */
.navbar-links-outer {
  text-align: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--background-color);
  height: 100dvh;
  width: 100vw;
  display: none;
  opacity: 0;
  flex-direction: column;
  justify-content: flex-start;
  border-top: none;
  border-bottom: none;
  padding-top: 0;
  padding-bottom: 0;
  z-index: 1000;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.navbar-links-outer.is-open {
  display: flex;
  opacity: 1;
}
.navbar-links-inner {
  padding: 24px 24px 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 32px;
  justify-content: flex-start;
  min-height: 100%;
  width: 100%;
  box-sizing: border-box;
}
.mobile-nav-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid color-mix(in srgb, var(--text-color) 15%, transparent);
}
.mobile-nav-logo { max-width: 150px; }
.mobile-nav-logo img { height: 28px; width: auto; display: block; }
.mobile-nav-logo .navbar-logo-text { font-size: 24px; }

/* Nav list — mobile stacked */
.nav {
  display: flex;
  flex-direction: column;
  row-gap: 28px;
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.nav li {
  list-style-type: none;
  display: flex;
  position: relative;
  width: 100%;
  justify-content: center;
}
.nav-link,
.links-label {
  font-size: 26px;
  line-height: 1.2;
  width: 100%;
  text-align: center;
  display: block;
  padding: 4px 0;
  position: relative;
  white-space: nowrap;
  font-family: var(--font2);
  color: var(--text-color);
  text-decoration: none;
}
.links-label {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: none;
  border: none;
}

/* No rainbow underline anywhere */
.navbar-links .nav > li > .nav-link,
.navbar-links .nav > li > .links-label {
  background: none;
  color: var(--text-color);
  -webkit-text-fill-color: currentColor;
  border: 0;
  box-shadow: none;
  appearance: none;
}
.navbar-links .nav > li > .nav-link:hover,
.navbar-links .nav > li > .nav-link:focus-visible,
.navbar-links .nav > li > .links-label:hover,
.navbar-links .nav > li > .links-label:focus-visible {
  background: none;
  color: var(--text-color);
  -webkit-text-fill-color: currentColor;
  opacity: .72;
}
.navbar-links .nav > li > .nav-link:focus-visible,
.navbar-links .nav > li > .links-label:focus-visible {
  outline: 2px solid var(--text-color);
  outline-offset: 3px;
}
/* Trans-flag pride underline on every top-level navbar item (plain links
   and dropdown parents alike) — now a smooth gradient blend through the
   trans-flag palette rather than distinct hard-edged color bands. The
   centre tone still leans toward --nav-text so it reads correctly on
   both the light-mode (white) and dark-mode (black) navbar. */
.navbar-links .nav > li > .nav-link,
.navbar-links .nav > li > .links-label {
  padding-bottom: 8px;
}
.navbar-links .nav > li > .nav-link::after,
.navbar-links .nav > li > .links-label::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    #5bcefa 0%,
    #f5a9b8 30%,
    var(--nav-text, #fff) 50%,
    #f5a9b8 70%,
    #5bcefa 100%
  );
  opacity: .95;
  transform-origin: center;
  transition: transform .2s ease, opacity .2s ease;
}
.navbar-links .nav > li:hover > .nav-link::after,
.navbar-links .nav > li > .nav-link:focus-visible::after,
.navbar-links .nav > li:hover > .links-label::after,
.navbar-links .nav > li > .links-label:focus-visible::after {
  opacity: 1;
  transform: scaleX(1.03);
}

/* Mobile subscribe */
.subscribe-button-mobile-wrapper { margin-top: 28px; width: 100%; }
.subscribe-button-mobile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 14px 24px;
  font-family: var(--font2);
  font-size: var(--fs-body);
  line-height: 1;
  color: #fff !important;
  background: var(--brand-gradient);
  border: none;
  border-radius: var(--radius-pill);
  cursor: pointer;
  text-decoration: none;
  letter-spacing: .04em;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), filter var(--transition-fast);
  box-shadow: var(--shadow-brand);
}
.subscribe-button-mobile:hover { transform: translateY(-1px); filter: brightness(1.06); }

/* Dropdown arrow */
.dropdown-arrow-svg {
  width: 12px;
  min-width: 12px;
  height: 8px;
  display: inline-block;
  vertical-align: middle;
  margin-left: 10px;
  fill: var(--text-color);
  transition: transform .2s ease;
}
.links-label.is-open .dropdown-arrow-svg { transform: rotate(180deg); }
.links-label-arrow {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  width: 12px;
  height: 12px;
  transition: transform .2s ease;
}
.links-label.is-open .links-label-arrow { transform: rotate(180deg); }

/* ── TABLET (768px+) ──────────────────────────────────────── */
@media (min-width: 768px) {
  .navbar-logo-row {
    padding-top: 18px;
    padding-bottom: 16px;
    padding-left: 30px;
    padding-right: 30px;
    gap: 16px;
  }
  .logo-image { height: calc(38px * var(--logo-scale,1)); }
  .logo-wrapper:not(.logo-hidden) { max-height: 100px; }
  .navbar-logo-text { font-size: clamp(34px, 5vw, 42px); }
  .navbar-account-links { gap: 18px; }
  .account-button-wrapper { gap: 14px; }
}

/* ── DESKTOP (992px+) — full brand navbar, v4.6.2 look ───── */
@media (min-width: 992px) {
  /* Hamburger hidden */
  .menu-button-wrapper { display: none !important; }

  .navbar-logo-row {
    padding-top: 22px;
    padding-bottom: 22px;
    padding-left: 42px;
    padding-right: 42px;
    gap: 16px;
  }

  /* Socials visible */
  .navbar-socials-group {
    display: flex;
    align-items: center;
    gap: 18px;
    justify-content: flex-start;
  }

  /* Logo */
  .logo-image { height: calc(60px * var(--logo-scale,1)); }
  .logo-wrapper:not(.logo-hidden) { max-height: 120px; }
  .navbar-logo-text { font-size: 46px; }

  /* Account links: icons stay at their enlarged base size (26px) at every
     breakpoint — nothing here needs to shrink them back down. */
  .navbar-account-links { gap: 20px; }
  .subscribe-button-gradient {
    display: inline-flex;
    padding: 9px 22px 9px 18px;
    font-size: 18px;
  }

  /* Nav links row: horizontal bar — inverted colour strip */
  .navbar-links-outer {
    display: block !important;
    position: static;
    background-color: transparent;
    overflow: visible;
    padding-top: 13px;
    padding-bottom: 13px;
    border-top: 1px solid var(--nav-border);
    border-bottom: 1px solid var(--nav-border);
    min-height: 50px;
    opacity: 1 !important;
    height: auto !important;
    width: auto !important;
    z-index: auto;
  }
  .navbar-links-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    padding: 0 42px;
    min-height: unset;
    row-gap: 0;
  }
  .mobile-nav-header { display: none !important; }

  /* Nav list: horizontal */
  .nav {
    flex-direction: row;
    row-gap: 12px;
    column-gap: 30px;
    width: auto;
    max-width: none;
    margin: 0;
  }
  .nav li { width: auto; justify-content: flex-start; }
  .nav-link,
  .links-label {
    width: auto;
    padding: 0;
    border: none;
    font-size: 20px;
    text-align: left;
    display: flex;
    color: var(--nav-text);
  }
  .navbar-links .nav > li > .nav-link,
  .navbar-links .nav > li > .links-label {
    color: var(--nav-text);
    -webkit-text-fill-color: var(--nav-text);
  }
  .navbar-links .nav > li > .nav-link:hover,
  .navbar-links .nav > li > .nav-link:focus-visible,
  .navbar-links .nav > li > .links-label:hover,
  .navbar-links .nav > li > .links-label:focus-visible {
    color: var(--nav-text);
    -webkit-text-fill-color: var(--nav-text);
    opacity: .72;
  }
  .navbar-links .nav > li > .nav-link:focus-visible,
  .navbar-links .nav > li > .links-label:focus-visible {
    outline: 2px solid var(--nav-text);
    outline-offset: 3px;
  }

  .subscribe-button-mobile-wrapper { display: none; }
}

/* ── DROPDOWN MENUS ───────────────────────────────────────── */
.navbar-links .nav > li { position: relative; }

/* Base: shared by both breakpoints */
.secondary-links-inner {
  display: flex;
  flex-direction: column;
}
.secondary-links-inner .nav-link {
  display: block;
  padding: 10px 20px;
  font-family: var(--font2);
  font-size: 16px;
  line-height: 1;
  width: auto;
  text-align: left;
  color: var(--text-color);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .2s ease;
}
.secondary-links-inner .nav-link:hover,
.secondary-links-inner .nav-link:focus-visible { opacity: .72; }

/* Desktop (≥992px): reveal on hover/focus via opacity + pointer-events,
   NOT display:none/block — that way there is no dead space between the
   trigger and the menu that would drop :hover when the cursor crosses it.
   .secondary-links is anchored flush to the bottom of the <li> (bottom:0
   + translateY(100%)) so its hit-box picks up immediately where the link's
   hit-box ends — the visual gap below is pure margin on the inner panel,
   not a layout gap, so the cursor is always over *something* in the <li>. */
@media (min-width: 992px) {
  .secondary-links {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) translateY(100%);
    z-index: 300;
    min-width: 200px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease;
  }
  .secondary-links-inner {
    margin-top: 14px;
    background-color: var(--background-color);
    border: 1px solid var(--text-color);
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    padding: 8px 0;
  }
  .navbar-links .nav > li:hover > .secondary-links,
  .navbar-links .nav > li:focus-within > .secondary-links,
  .navbar-links .nav > li > .secondary-links.is-open {
    opacity: 1;
    pointer-events: auto;
  }
}

/* Mobile (<992px): inline accordion. accessibility.js/custom-elements.js
   toggle this open/closed by setting .secondary-links.style.height
   directly (scrollHeight to open, 0px to close) — overflow:hidden and the
   height transition here are what make that JS actually visible. */
@media (max-width: 991px) {
  .secondary-links {
    position: static;
    width: 100%;
    height: 0;
    overflow: hidden;
    transition: height .3s ease-in-out;
  }
  .secondary-links-inner {
    align-items: center;
    padding: 16px 0;
    row-gap: 12px;
    border-top: 1px solid color-mix(in srgb, var(--text-color) 20%, transparent);
  }
  .secondary-links-inner .nav-link {
    text-align: center;
    font-size: 18px;
  }
}


/* ── LARGE DESKTOP (1440px+) — vw-scaled sizes ────────────── */
@media (min-width: 1440px) {
  .header { font-size: calc(1.39vw * var(--scale, 1)); }
  .navbar-logo-row {
    padding-top: calc(1.53vw * var(--scale,1));
    padding-bottom: calc(1.53vw * var(--scale,1));
    padding-left: calc(2.92vw * var(--scale,1));
    padding-right: calc(2.92vw * var(--scale,1));
  }
  .navbar-links-inner { padding: 0 calc(2.92vw * var(--scale,1)); }
  .navbar-socials-icons { gap: calc(1.25vw * var(--scale,1)); }
  .social-inner { width: calc(1.53vw * var(--scale,1)); min-width: calc(1.53vw * var(--scale,1)); }
  .social-inner-smaller { width: calc(1.46vw * var(--scale,1)); min-width: calc(1.46vw * var(--scale,1)); }
  .logo-image { height: calc(2.57vw * var(--scale,1) * var(--logo-scale,1)); }
  .navbar-logo-text { font-size: calc(3.19vw * var(--scale, 1)); }
  .navbar-account-links { gap: calc(1.39vw * var(--scale,1)); }
  .subscribe-button-gradient {
    font-size: calc(1.25vw * var(--scale, 1));
    padding: calc(.63vw * var(--scale,1)) calc(1.53vw * var(--scale,1));
  }
  .navbar-links-outer {
    padding-top: calc(.9vw * var(--scale,1));
    padding-bottom: calc(.9vw * var(--scale,1));
    min-height: calc(3.47vw * var(--scale,1));
  }
  .nav {
    column-gap: calc(2.08vw * var(--scale,1));
    row-gap: calc(.83vw * var(--scale,1));
  }
  .nav-link,
  .links-label { font-size: calc(1.39vw * var(--scale, 1)); }
  .dropdown-arrow-svg {
    width: calc(.56vw * var(--scale,1));
    height: calc(.35vw * var(--scale,1));
    margin-left: calc(.49vw * var(--scale,1));
  }
  .secondary-links {
    left: calc(-1.18vw * var(--scale,1));
    min-width: calc(11.8vw * var(--scale,1));
    transform: translateY(100%);
  }
  .secondary-links-inner { margin-top: calc(1.08vw * var(--scale,1)); }
  .secondary-links-inner .nav-link {
    padding: calc(.97vw * var(--scale,1)) calc(1.11vw * var(--scale,1));
  }
}

/* ===== announcement-bar.css ===== */
.custom-announcement-bar{width:100%;display:none;align-items:stretch;margin-top:14px;margin-bottom:26px}.announcement-heading{display:flex;align-items:center;justify-content:center;padding:8px 17px;background-color:var(--text-color);color:var(--background-color);font-family:var(--font1);line-height:160%;font-size:16px}.announcement-content{width:100%;display:flex;align-items:center;border-top:1px solid var(--text-color);border-bottom:1px solid var(--text-color);overflow:hidden;position:relative}.announcement-inner{display:flex;align-items:center}.announcement-text{white-space:nowrap;font-size:16px;font-family:var(--font1);line-height:160%;padding:8px 0;display:flex;align-items:center;-webkit-text-size-adjust:100%}.announcement-text a{text-decoration:underline}.announcement-close-wrapper{display:flex;align-items:center;background-color:var(--background-color);height:100%;position:absolute;right:0}.announcement-close-button{position:relative;display:flex;align-items:center;justify-content:center;width:13px;min-width:13px;height:13px;margin-left:17px}.custom-announcement-bar[data-announcement-bar-type="Moving One News"] .announcement-text{padding-left:17px;padding-right:17px}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-text{padding-left:17px;padding-right:34px;white-space:unset}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-text:nth-child(2){display:none}.slide-animation{animation:slideAnimation 40s linear infinite}.announcement-circle{display:inline-flex;border-radius:100%;min-width:5px;width:5px;height:5px;background-color:var(--text-color);margin-left:20px;margin-right:20px}@keyframes slideAnimation{from{transform:translateX(0)}to{transform:translateX(-100%)}}@media (min-width:1439px){.custom-announcement-bar{margin-top:calc(.97vw * var(--scale));margin-bottom:calc(1.81vw * var(--scale))}.announcement-heading{padding:calc(.56vw * var(--scale)) calc(1.18vw * var(--scale));font-size:calc(1.11vw * var(--scale))}.announcement-text{font-size:calc(1.11vw * var(--scale));padding:calc(.56vw * var(--scale)) 0}.announcement-close-button{width:calc(.9vw * var(--scale));min-width:calc(.9vw * var(--scale));height:calc(.9vw * var(--scale));margin-left:calc(1.18vw * var(--scale))}.custom-announcement-bar[data-announcement-bar-type="Moving One News"] .announcement-text{padding-left:calc(1.18vw * var(--scale));padding-right:calc(1.18vw * var(--scale))}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-text{padding-left:calc(1.18vw * var(--scale));padding-right:calc(2.36vw * var(--scale))}.announcement-circle{min-width:calc(.35vw * var(--scale));width:calc(.35vw * var(--scale));height:calc(.35vw * var(--scale));margin-left:calc(1.39vw * var(--scale));margin-right:calc(1.39vw * var(--scale))}}@media (max-width:991px){.custom-announcement-bar{margin-bottom:38px}.custom-announcement-bar[data-announcement-bar-type=Static]{flex-direction:column;text-align:center}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-text{padding:16px}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-content{overflow:unset}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-close-wrapper{top:-21px;right:16px;height:auto;transform:translateY(-50%);background-color:transparent}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-close-button{margin-left:0}.custom-announcement-bar[data-announcement-bar-type=Static] svg path{fill:var(--background-color)}}@media (max-width:479px){.custom-announcement-bar{margin-top:10px;margin-bottom:32px}.announcement-heading{padding:6px 14px;font-size:14px}.announcement-text{font-size:14px;padding:6px 0}.announcement-close-button{margin-left:14px}.custom-announcement-bar[data-announcement-bar-type="Moving One News"] .announcement-text{padding-left:14px;padding-right:14px}.announcement-circle{min-width:4px;width:4px;height:4px;margin-left:12px;margin-right:12px}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-text{padding:12px}.custom-announcement-bar[data-announcement-bar-type=Static] .announcement-close-wrapper{top:-18px;right:12px;height:auto}}

/* ===== features.css ===== */
/* ============================================================
   features.css — v6.0.0.A
   Dark/light mode, brand gradient effects, colorful tag bubbles,
   blockquote styles, scroll-logo, and satire conditional theming.

   v6.0.0.A: --brand-gradient-text now resolves to theme-specific,
   AAA-safe stops (see tokens.css) instead of the raw brand hex
   values, so the gradient-text-clip hover effect below applies to
   ALL links — including .nav-link / navbar dropdown links — with
   guaranteed 7:1+ contrast in both themes. No selector changes
   needed here; the fix lives entirely in the variable values.
   ============================================================ */

/* ── 1/2. DARK & LIGHT MODE VARIABLES ─────────────────────── */
/* Now owned solely by tokens.css (loads first). Redeclaring the same
   variables here — with values that had to be kept in sync by hand —
   was the exact "colors drift apart between files" problem. */

/* ── 3. BRAND GRADIENT EFFECTS ────────────────────────────── */
/* --brand-g1..4 / --brand-gradient / --brand-gradient-45 / --brand-gradient-text
   are all defined once in tokens.css now. */

/* Brand gradient on hover for standard links, including navbar/dropdown
   links. Uses --brand-gradient-text, which tokens.css sets to a
   theme-specific lightened (dark mode) or darkened (light mode)
   variant of the brand stops so the gradient-clipped text is always
   WCAG AAA (7:1+) against its background — see tokens.css for the
   audited contrast values. */
a:not(.hover-image-opacity):not(.big-card-image-link):not(.small-card-image-link):not(.extra-small-card-image-link):not(.extra-small-side-card-image-link):not(.slide-card-image-link):not(.horizontal-card-image-link):not(.post-author-image):not(.logo):not(.button):not(.subscribe-button):not(.kg-btn):not([data-portal]):not([data-ghost-search]) {
  -webkit-background-clip: initial;
  background-clip: initial;
  color: var(--text-color);
  transition: color .25s ease;
}

a:not(.hover-image-opacity):not(.big-card-image-link):not(.small-card-image-link):not(.extra-small-card-image-link):not(.extra-small-side-card-image-link):not(.slide-card-image-link):not(.horizontal-card-image-link):not(.post-author-image):not(.logo):not(.button):not(.subscribe-button):not(.kg-btn):not([data-portal]):not([data-ghost-search]):hover {
  background: var(--brand-gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-decoration: none;
  transition: background .3s ease, color .3s ease;
}

.button:hover,.logo:hover,.subscribe-button:hover,[data-ghost-search]:hover,[data-portal]:hover,button:hover {
  -webkit-text-fill-color: unset;
}

a.hover-underline:not(.hover-image-opacity):hover {
  text-decoration: underline;
  text-decoration-color: var(--brand-g1);
}

/* ── 4. COLORFUL TAG BUBBLES ──────────────────────────────── */
/* Post tag list */
.post-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0 0 18px 0;
}

.post-tag-list li { display: inline-flex; }

/* Primary tag: brand gradient border pill */
.post-tag-primary {
  display: inline-block;
  padding: 5px 14px;
  font-family: var(--font2);
  font-size: clamp(12px,1.1vw,17px);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text-color);
  background: transparent;
  border: 1.5px solid transparent;
  background-clip: padding-box;
  position: relative;
  transition: opacity .25s ease, transform .25s ease, color .25s ease, background-color .25s ease, border-color .25s ease;
  text-decoration: none;
}

.post-tag-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: var(--brand-gradient);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.post-tag-primary:hover {
  background: var(--brand-gradient) !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: var(--background-color) !important;
  color: var(--background-color) !important;
}

/* Secondary tag: subtle border pill */
.post-tag-secondary {
  display: inline-block;
  padding: 3px 10px;
  font-family: var(--font1);
  font-size: clamp(10px,.8vw,13px);
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--text-color);
  border: 1px solid var(--border,rgba(128,128,128,.3));
  opacity: .65;
  transition: opacity .25s ease, transform .25s ease, color .25s ease, background-color .25s ease, border-color .25s ease;
  text-decoration: none;
}

.post-tag-secondary:hover {
  opacity: 1;
  border-color: var(--brand-g1,#f545a2);
  background: transparent !important;
  -webkit-text-fill-color: unset !important;
  color: var(--text-color) !important;
}

@media (max-width: 479px) {
  .post-tag-primary { font-size: 12px; padding: 4px 10px; }
  .post-tag-secondary { font-size: 10px; padding: 3px 8px; }
}

/* ── 5. BLOCKQUOTE BRAND GRADIENT ─────────────────────────── */
.post-content blockquote:not(.kg-blockquote-alt) {
  position: relative;
  margin-top: .1em;
  margin-bottom: .1em;
  margin-left: 0;
  margin-right: 0;
  padding-top: 1.4em;
  padding-bottom: 1.4em;
  font-family: var(--font2,'EB Garamond'),serif;
  font-style: italic;
  font-size: 1.22rem;
  line-height: 1.55;
  color: var(--text-color);
  background-color: color-mix(in srgb,var(--brand-g1) 6%,transparent);
  border-left: none;
  box-shadow: 4px 0 0 var(--brand-g4,#5e9dba) inset, -4px 0 0 transparent inset;
  overflow: hidden;
}

.post-content blockquote:not(.kg-blockquote-alt)::before {
  content: '\201C';
  position: absolute;
  top: -10px;
  right: 12px;
  font-family: var(--font4,'Chomsky'),serif;
  font-size: 120px;
  line-height: 1;
  color: var(--brand-g1,#f545a2);
  opacity: .18;
  pointer-events: none;
}

.post-content blockquote:not(.kg-blockquote-alt)::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 4px;
  background: var(--brand-gradient,linear-gradient(180deg,#f545a2,#cf2e84,#9b4db8,#5e9dba));
}

/* Alternate pull-quote style */
.post-content blockquote.kg-blockquote-alt {
  text-align: center;
  padding: 1.2em 2em;
  font-family: var(--font2),serif;
  font-style: italic;
  font-size: 2rem;
  line-height: 1.5;
  border: none;
  position: relative;
  background: none;
  box-shadow: none;
}

.post-content blockquote.kg-blockquote-alt::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 2px;
  background: var(--brand-gradient);
}

.post-content blockquote.kg-blockquote-alt::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 2px;
  background: var(--brand-gradient);
  width: auto;
}

html[data-theme=dark] .post-content blockquote:not(.kg-blockquote-alt) {
  background-color: color-mix(in srgb,var(--brand-g1) 4%,transparent);
}

@media (max-width: 991px) {
  .post-content blockquote:not(.kg-blockquote-alt) {
    font-size: clamp(14px,2.2vw,19px);
    padding-top: 1.2em;
    padding-bottom: 1.2em;
  }
}

@media (max-width: 479px) {
  .post-content blockquote:not(.kg-blockquote-alt) {
    font-size: 15px;
    padding-top: 1em;
    padding-bottom: 1em;
  }
}

/* ── 6. SCROLL-LOGO ───────────────────────────────────────── */
.logo-wrapper {
  transition: opacity .3s ease, transform .3s ease;
  will-change: opacity, transform;
}

.logo-hidden .logo-wrapper {
  opacity: 0;
  transform: translateY(-100%);
  pointer-events: none;
}

.navbar-logo-area { min-height: var(--logo-min-height,40px); }

/* ── 7. THEME TOGGLE ──────────────────────────────────────── */
/* Single combined sun/moon icon — see navbar.css for the primary
   definition; kept in sync here since features.css loads after
   navbar.css and previously carried a duplicate (and, in the old
   two-icon-swap version, slightly inconsistent) copy of these rules. */
.theme-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  color: var(--text-color);
  transition: opacity .2s ease;
  outline: 0;
}

.theme-toggle-btn:hover { opacity: .7; }
.theme-toggle-btn:focus-visible { outline: 2px solid var(--text-color); outline-offset: 3px; }

.theme-toggle-icon {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.theme-toggle-icon svg { width: 100%; height: 100%; fill: var(--text-color); }
.theme-toggle-wrapper { display: flex; align-items: center; }

/* ── 8. SATIRE CONDITIONAL THEMING ────────────────────────── */
/* Satire CSS custom properties */
.post--satire,
body.is-satire,
body.theme-satire {
  --satire-accent: #FF1493;
  --satire-accent-text: #FF1493;
  --satire-warning: #FFD60A;
  --satire-accent-bg: #FFD60A;
  --satire-banner-text: #111111;
  --satire-section-color: #FF1493;
  --satire-border: #FFD60A;
}

html[data-theme=light] .post--satire,
html[data-theme=light] body.is-satire {
  --satire-accent: #FF1493;
  --satire-accent-text: #C40073;
  --satire-warning: #FFD60A;
  --satire-accent-bg: #FFF1A6;
  --satire-banner-text: #111111;
  --satire-section-color: #C40073;
  --satire-border: #FF1493;
}

/* Satire hazard-stripe identity banner */
.satire-identity-banner {
  background: repeating-linear-gradient(
    45deg,
    var(--satire-accent) 0,
    var(--satire-accent) 12px,
    var(--satire-warning) 12px,
    var(--satire-warning) 24px
  );
  color: var(--satire-banner-text);
  padding: 12px 42px;
  font-family: var(--font3);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-align: center;
  border-bottom: 3px solid var(--satire-accent);
  text-shadow: none;
}

.satire-identity-banner strong {
  background: linear-gradient(90deg,var(--satire-accent),color-mix(in srgb,var(--satire-warning) 88%,#fff 12%));
  color: #111;
  padding: 3px 14px;
  margin: 0 8px;
}

/* Satire section heading */
.post--satire .section-heading,
body.is-satire .section-heading {
  border-color: var(--satire-border);
  color: var(--satire-section-color);
}

/* Satire tag pills */
.post--satire .post-tag-primary,
.post--satire .post-tag-secondary {
  border-color: var(--satire-border);
  color: var(--satire-accent-text);
}

.post--satire .post-tag-primary:hover,
.post--satire .post-tag-secondary:hover {
  background: linear-gradient(90deg,var(--satire-accent),color-mix(in srgb,var(--satire-warning) 88%,#fff 12%));
  color: #111;
}

/* Satire blockquote */
.post--satire .post-content blockquote:not(.kg-blockquote-alt) {
  background-color: color-mix(in srgb,var(--satire-warning) 18%,transparent);
  box-shadow: 4px 0 0 var(--satire-accent) inset, -4px 0 0 transparent inset;
}

/* Satire post header accent border */
.post--satire .post-header {
  border-top: 3px solid var(--satire-accent);
}

/* Satire column layout: two columns on desktop */
body.is-satire .column-layout-grid {
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 991px) {
  body.is-satire .column-layout-grid {
    grid-template-columns: 1fr;
  }
}

/* Satire disclaimer badge */
.satire-disclaimer {
  display: inline-block;
  background: linear-gradient(90deg,var(--satire-accent),color-mix(in srgb,var(--satire-warning) 88%,#fff 12%));
  color: #111;
  font-family: var(--font3);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: 3px 10px;
  margin-bottom: 8px;
}

/* ── 9. BRAND GRADIENT TEXT UTILITY ───────────────────────── */
.brand-gradient-text {
  background: var(--brand-gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* ── 10. REDUCED MOTION ───────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .hover-image-opacity figure img,
  .hover-image-opacity img,
  .logo-wrapper,
  .post-tag-primary,
  .post-tag-secondary { transition: none !important; }
}

/* ===== newspaper-typography.css ===== */
/* ============================================================
   newspaper-typography.css — v5.5.0
   Post-content / editorial-specific type rules only.
   Base body & h1–h6 sizing is owned entirely by layout.css via
   tokens.css's --fs-* scale — this file no longer redeclares
   body/html font-size or bare h1–h6, which used to silently
   fight with layout.css depending on load order. Card headings
   are owned by cards.css (also via tokens.css) for the same
   reason — see layout.css §12 for the higher-specificity rules
   that actually render.
   ============================================================ */

.post-content > * { margin-bottom: 0.85em; }
.post-content li,
.post-content p { font-size: var(--fs-lead); line-height: 1.62; }

/* .post-heading / .post-excerpt / .post-tag sizing is owned by post.css —
   it used to be re-declared here with !important, which unconditionally
   beat post.css's carefully-tuned fluid clamp() regardless of specificity
   or load order. That was the single biggest "headline size looks wrong"
   bug. Only non-size overrides that post.css doesn't set remain here. */


blockquote { 
  font-size: 1.35em; 
  padding-top: .3em; 
  padding-bottom: .3em; 
  line-height: 1.6 !important; 
}
.kg-blockquote-alt { font-size: 1.2em; }

.post-content figcaption,
figcaption,
small { font-size: 0.85em; line-height: 1.4; opacity: .7; }

.section-heading { font-size: 0.85em; letter-spacing: .1em; padding: 0.4em 0; }

/* Card headings */
.extra-small-card-heading,
.slide-card-heading,
.small-card-heading { font-size: 1em; line-height: 1.2; }

.big-card-heading { font-size: 1.5em; line-height: 1.12; }
.horizontal-card-heading { font-size: 1.15em; line-height: 1.2; }

/* Byline */
.post-author-date, .post-author-name, .post-authors { font-size: 0.7em; line-height: 1.4; }

/* Spacing (Using em so padding/margins scale with the typography) */
.section-padding { padding-top: 1.75em; padding-bottom: 1.75em; }
.section-padding-top { padding-top: 1.75em; }
.section-padding-bottom { padding-bottom: 1.75em; }
.section-padding-small { padding-top: 1.15em; padding-bottom: 1.15em; }

.post-content { margin-top: 1.25em; }
.post-content-no-image { margin-top: 2em; }

.initial-paragraph::first-letter { 
  font-size: 3.4em; 
  line-height: .8; 
  margin-right: .06em; 
  margin-top: .06em; 
}

a.toc-link { font-size: 0.85em; padding-top: 0.3em; padding-bottom: 0.3em; }

.medium-text { font-size: 1.1em; }
.big-text { font-size: 1.4em; }
.small-text { font-size: .88em; }

.navbar-logo-text { font-size: 1.75em; }

.button, .kg-btn, .kg-header-card-button, button { font-size: 0.85em; padding: 0.4em 1.4em; }
.subscribe-button { font-size: 0.75em; padding: 0.4em 1.5em; letter-spacing: .06em; }

.extra-small-side-card-image-link,
.slide-card-image-link,
.small-card-image-link { height: auto; }

.post-main-image { max-height: 56vw; overflow: hidden; }
.post-main-image img { width: 100%; height: 100%; object-fit: cover; }

#announcement-bar-root .gh-announcement-bar { 
  font-size: 0.75em; 
  padding-top: 0.5em; 
  padding-bottom: 0.5em; 
  min-height: 2.2em; 
}
.world-clock-bar { font-size: 0.7em; }
.navbar-top { padding-top: 0.5em; padding-bottom: 0.5em; }
.footer { font-size: 0.85em; }

/* ── TABLET (768px+) ──────────────────────────────────────── */
@media (min-width: 768px) {
  /* Only the base changes; everything else inherits this new size */
  body, html { font-size: 17px; line-height: 1.66; }
  
  .post-main-image { max-height: 38vw; }
}

/* ── DESKTOP (992px+) ─────────────────────────────────────── */
@media (min-width: 992px) {
  /* Only the base changes; everything else inherits this new size */
  body, html { font-size: 19px; line-height: 1.68; }

  .big-card-heading, .extra-small-card-heading, .extra-small-side-card-heading,
  .horizontal-card-heading, .section-heading-title, .small-card-heading, .text-card-heading {
    letter-spacing: -.03em;
  }

  .post-main-image { max-height: 29.2vw; }
}

/* ── LARGE DESKTOP (1440px+) ──────────────────────────────── */
@media (min-width: 1440px) {
  /* Everything scales fluidly based on this viewport-relative root size */
  body, html { font-size: calc(.83vw * var(--scale)); }
}

/* ===== newspaper-edition.css ===== */
.np-hide-mobile{display:block}.np-show-mobile{display:none}.edition-dateline{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 42px;border-bottom:3px double var(--text-color);font-family:var(--font3, 'Old Standard TT'),serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-color);margin-bottom:0;background:var(--bg)}.edition-dateline-rule{flex:1;height:1px;background:var(--border);max-width:80px}.edition-dateline-name{font-size:13px;font-weight:700;letter-spacing:.22em;color:var(--text-color)}.edition-dateline-date,.edition-dateline-edition{font-size:10px;letter-spacing:.14em;color:var(--text-color)}.np-section-flag{display:flex;align-items:center;justify-content:space-between;padding:6px 0;margin-bottom:18px;border-top:3px solid var(--text-color);border-bottom:1px solid var(--border);font-family:var(--font3, 'Old Standard TT'),serif;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text-color-55);background:0 0}.np-section-flag-link{font-size:10px;letter-spacing:.1em;color:var(--text-color-55);transition:color .2s ease}.np-section-flag-link:hover{color:var(--text-color)}.np-tag-label{font-family:var(--font3, 'Old Standard TT'),serif;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--brand-g1)}.np-tag-label:hover{text-decoration:underline}.np-front-section{padding-top:0;padding-bottom:0;border-top:4px double var(--text-color);margin-top:0;background:var(--bg)}.np-front-grid{display:grid;grid-template-columns:200px minmax(0,1fr) 260px;grid-template-areas:"left center right";gap:0;align-items:stretch;border-bottom:1px solid var(--border);background:var(--bg)}.np-left-rail{grid-area:left;border-right:1px solid var(--border);padding:24px 20px 24px 0;min-width:0;background:var(--bg)}.np-newsletter-rail{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--border)}.np-newsletter-inner{display:flex;flex-direction:column;gap:14px}.np-newsletter-tagline{font-family:var(--font1, 'Noto Serif'),serif;font-size:13px;line-height:1.6;font-style:italic;color:var(--text-color-80);margin:0}.np-subscribe-form{margin-top:14px;background:0 0;color:var(--text-color)}.np-subscribe-wrapper{flex-direction:column;gap:8px;margin-bottom:8px}.np-subscribe-input{font-size:12px;padding:7px 10px;border:1px solid var(--border);background:var(--surface);color:var(--text-color)}.np-subscribe-input::placeholder{color:var(--text-color-55)}.np-subscribe-btn{width:100%;font-size:11px;padding:8px 12px;letter-spacing:.1em;text-transform:uppercase;background:var(--text-color);color:var(--background-color);border:none}.np-subscribe-btn:hover{opacity:.88}.np-left-stories{display:flex;flex-direction:column;gap:0}.np-brief-item{padding:14px 0;border-bottom:1px solid var(--border);background:0 0}.np-brief-item:last-child{border-bottom:none}.np-brief-meta{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-family:var(--font3),serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-color-55)}.np-brief-date{color:var(--text-color-55)}.np-brief-heading{font-family:var(--font2, 'Old Standard TT'),serif;font-size:clamp(13px, 1vw, 15px);font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--text-color)}.np-center-column{grid-area:center;padding:24px 28px;min-width:0;border-right:1px solid var(--border);background:var(--bg)}.np-hero-card{padding-bottom:0;height:100%;display:flex;flex-direction:column}.np-hero-image-link{display:block;margin-bottom:18px}.np-hero-image-wrapper{width:100%;height:0;padding-bottom:54%;position:relative;overflow:hidden}.np-hero-image-wrapper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.np-hero-meta{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-family:var(--font3),serif;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-color-55)}.np-hero-date{color:var(--text-color-55)}.np-hero-heading{font-family:var(--font2, 'Old Standard TT'),serif;font-size:clamp(26px, 2.6vw, 42px);font-weight:700;line-height:1.08;letter-spacing:-.025em;margin-bottom:14px;color:var(--text-color);text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1,"onum" 1}.np-hero-excerpt{font-family:var(--font1, 'Noto Serif'),serif;font-size:15px;line-height:1.7;color:var(--text-color-80);margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.np-drop-cap::first-letter{float:left;font-family:var(--font4, 'Chomsky'),serif;font-size:4.2em;line-height:.82;margin-right:6px;margin-top:4px;color:var(--text-color)}.np-read-more{display:inline-block;font-family:var(--font3),serif;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-g1);transition:opacity .2s ease;margin-top:auto}.np-read-more:hover{opacity:.7}.np-support-row{display:none}.np-tablet-extra{display:none}.np-right-rail{grid-area:right;padding:24px 0 24px 20px;min-width:0;background:var(--bg)}.np-right-list{display:flex;flex-direction:column;gap:0}.np-right-item{padding:14px 0;border-bottom:1px solid var(--border);background:0 0}.np-right-item:first-child{padding-top:0}.np-right-item:last-child{border-bottom:none}.np-right-item--has-image{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start}.np-right-item:nth-child(2n){background:var(--surface);margin:0 -8px;padding-left:8px;padding-right:8px}.np-right-image-link{display:block}.np-right-image-wrapper{width:72px;height:54px;overflow:hidden;flex-shrink:0}.np-right-image-wrapper img{width:100%;height:100%;object-fit:cover}.np-right-meta{display:flex;align-items:center;gap:5px;margin-bottom:5px;font-family:var(--font3),serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-color-55)}.np-right-heading{font-family:var(--font2, 'Old Standard TT'),serif;font-size:clamp(13px, 1vw, 16px);font-weight:700;line-height:1.28;letter-spacing:-.01em;color:var(--text-color);text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1}.np-tablet-newsletter{display:none;background:var(--bg)}.np-tablet-newsletter-inner{display:flex;align-items:center;gap:32px;padding:22px 28px;border:1px solid var(--border);border-top:3px solid var(--text-color);margin-bottom:32px;background:var(--surface)}.np-tablet-newsletter-copy{flex:1}.np-tablet-subscribe-form{flex:1;background:0 0;color:var(--text-color);margin-top:0}.np-mobile-tags{display:none;background:var(--bg)}.np-mobile-tag-section{padding-top:24px;padding-bottom:8px;background:var(--bg)}.np-mobile-tag-grid{display:flex;flex-direction:column;gap:0}.np-mobile-tag-card{display:flex;flex-direction:column;gap:0;padding:14px 0;border-bottom:1px solid var(--border);background:0 0}.np-mobile-tag-card:first-child{border-top:1px solid var(--border)}.np-mobile-tag-image-link{display:block;margin-bottom:10px}.np-mobile-tag-image-wrapper{width:100%;height:0;padding-bottom:52%;position:relative;overflow:hidden}.np-mobile-tag-image-wrapper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.np-mobile-tag-meta{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-family:var(--font3),serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-color-55)}.np-mobile-tag-heading{font-family:var(--font2, 'Old Standard TT'),serif;font-size:clamp(15px, 4vw, 18px);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--text-color)}.edition-dateline{border-bottom:3px double var(--text-color);margin-bottom:0}html[data-theme=light] .np-front-grid{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Crect width='4' height='4' fill='%23f4f2ee'/%3E%3Crect x='0' y='0' width='1' height='1' fill='%23e8e6e2' opacity='0.4'/%3E%3C/svg%3E")}html[data-theme=dark] .np-front-grid{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Crect width='4' height='4' fill='%23111111'/%3E%3Crect x='0' y='0' width='1' height='1' fill='%23ffffff' opacity='0.015'/%3E%3C/svg%3E")}@media (max-width:991px){.edition-dateline{padding:8px 5%;gap:10px}.edition-dateline-rule{max-width:40px}.np-front-grid{grid-template-columns:1fr;grid-template-areas:"center" "right";border-bottom:none;align-items:start}.np-left-rail{display:none}.np-center-column{border-right:none;padding:20px 5%}.np-right-rail{padding:0 5% 20px;border-top:1px solid var(--border)}.np-hero-card{height:auto;display:block}.np-hero-image-wrapper{padding-bottom:48%}.np-hero-heading{font-size:clamp(22px, 4vw, 34px)}.np-hero-excerpt{-webkit-line-clamp:3}.np-support-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.np-support-card{padding:0 20px 0 0;border-right:1px solid var(--border);background:0 0}.np-support-card:last-child{padding:0 0 0 20px;border-right:none}.np-support-image-link{display:block;margin-bottom:12px}.np-support-image-wrapper{width:100%;height:0;padding-bottom:60%;position:relative;overflow:hidden}.np-support-image-wrapper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.np-support-meta{display:flex;align-items:center;gap:5px;margin-bottom:7px;font-family:var(--font3),serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-color-55)}.np-support-heading{font-family:var(--font2, 'Old Standard TT'),serif;font-size:clamp(14px, 1.3vw, 20px);font-weight:700;line-height:1.2;letter-spacing:-.015em;margin-bottom:8px;color:var(--text-color)}.np-support-excerpt{font-family:var(--font1, 'Noto Serif'),serif;font-size:13px;line-height:1.6;color:var(--text-color-80);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.np-tablet-extra{display:grid;grid-template-columns:1fr 1fr;gap:0 1px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.np-right-list{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:0 20px;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.np-right-list::-webkit-scrollbar{display:none}.np-right-item{min-width:180px;max-width:200px;flex-shrink:0;border-bottom:none;border-right:1px solid var(--border);padding:0 16px 0 0;background:0 0}.np-right-item:last-child{border-right:none}.np-right-item:nth-child(2n){background:0 0;margin:0;padding-left:0;padding-right:16px}.np-right-item--has-image{grid-template-columns:1fr}.np-right-image-wrapper{width:100%;height:100px}.np-tablet-newsletter{display:block}.np-tablet-newsletter-inner{flex-direction:row;align-items:center;gap:24px}.np-mobile-tags{display:none}.np-hide-mobile{display:block}.np-show-mobile{display:none}}@media (max-width:767px){.edition-dateline{padding:8px 4%;gap:8px;flex-wrap:wrap;justify-content:center}.edition-dateline-rule{display:none}.np-front-grid{grid-template-columns:1fr;grid-template-areas:"center";align-items:start}.np-left-rail{display:none}.np-right-rail{display:none}.np-center-column{padding:16px 4%;border-right:none}.np-hero-card{height:auto;display:block}.np-hero-image-wrapper{padding-bottom:56%}.np-hero-heading{font-size:clamp(22px, 7vw, 32px)}.np-hero-excerpt{-webkit-line-clamp:3;font-size:14px}.np-drop-cap::first-letter{font-size:3.4em}.np-support-row{display:grid;grid-template-columns:1fr;gap:0;margin-top:0;border-top:1px solid var(--border)}.np-support-card{padding:16px 0;border-right:none;border-bottom:1px solid var(--border);background:0 0}.np-support-card:last-child{padding:16px 0 0;border-bottom:none}.np-support-image-link{display:block;margin-bottom:12px}.np-support-image-wrapper{width:100%;height:0;padding-bottom:52%;position:relative;overflow:hidden}.np-support-image-wrapper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.np-support-meta{display:flex;align-items:center;gap:5px;margin-bottom:7px;font-family:var(--font3),serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-color-55)}.np-support-heading{font-family:var(--font2, 'Old Standard TT'),serif;font-size:clamp(16px, 5vw, 20px);font-weight:700;line-height:1.2;letter-spacing:-.015em;margin-bottom:8px;color:var(--text-color)}.np-support-excerpt{font-family:var(--font1, 'Noto Serif'),serif;font-size:13px;line-height:1.6;color:var(--text-color-80);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.np-tablet-extra{display:none}.np-tablet-newsletter{display:none}.np-mobile-tags{display:block}.np-hide-mobile{display:none}.np-show-mobile{display:block}.np-mobile-tag-section{padding-top:20px;padding-bottom:4px}.np-mobile-tag-card{flex-direction:column;gap:0;padding:12px 0}.np-mobile-tag-image-wrapper{padding-bottom:52%}.np-mobile-tag-heading{font-size:clamp(14px, 4.5vw, 17px)}.np-section-flag{margin-bottom:12px}}@media (max-width:479px){.np-hero-heading{font-size:clamp(20px, 6.5vw, 28px)}.np-hero-excerpt{font-size:13px}.np-support-heading{font-size:clamp(15px, 5vw, 18px)}.np-mobile-tag-card{flex-direction:column;gap:0}.np-mobile-tag-image-wrapper{padding-bottom:52%}.np-mobile-tag-heading{font-size:clamp(13px, 4.2vw, 16px)}.edition-dateline-date,.edition-dateline-edition{display:none}}@media (min-width:1440px){.np-front-grid{grid-template-columns:220px minmax(0,1fr) 300px}.np-hero-heading{font-size:clamp(32px, 2.8vw, 52px)}.np-right-heading{font-size:clamp(14px, 1.05vw, 17px)}.np-brief-heading{font-size:clamp(13px, 1.05vw, 16px)}}

/* ===== cards.css ===== */
/* ============================================================
   cards.css — v5.0.0
   Mobile-first card components: big-card, small-card,
   horizontal-card, extra-small-card, slide-card, text-card.
   Progressive enhancement: simple stacked layout on mobile,
   full editorial grid on desktop.
   ============================================================ */
.kg-image-caption {
  display: block;
  font-size: var(--fs-caption);
  color: var(--secondary-text-color);
  text-align: center;
  margin-top: 0.5rem;
  font-style: italic;
}


/* ── SHARED CARD BASE ─────────────────────────────────────── */
.big-card,
.small-card,
.horizontal-card,
.extra-small-card,
.extra-small-side-card,
.slide-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: var(--card-bg, var(--background-color));
  color: var(--text-color);
  overflow: hidden;
  border-radius: var(--radius-md);
  transition: box-shadow var(--transition-base), transform var(--transition-base), border-color var(--transition-base);
}

.small-card-image-wrapper,
.big-card-image-wrapper,
.horizontal-card-image-wrapper,
.extra-small-card-image-wrapper,
.extra-small-side-card-image-wrapper,
.slide-card-image-wrapper {
  border-radius: var(--radius-sm);
  overflow: hidden;
}

/* Card meta: date + tag */
.card-meta,
.small-card-meta,
.big-card-meta,
.horizontal-card-meta,
.extra-small-card-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-family: var(--font1);
  font-size: var(--fs-caption);
  line-height: 1.3;
  opacity: .7;
  margin-bottom: 6px;
}

.card-tag,
.small-card-tag,
.big-card-tag,
.horizontal-card-tag,
.extra-small-card-tag {
  font-family: var(--font2);
  font-size: var(--fs-caption);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: 1;
  transition: color var(--transition-fast);
}

/* Card heading: shared */
.card-heading,
.small-card-heading,
.big-card-heading,
.horizontal-card-heading,
.extra-small-card-heading,
.extra-small-side-card-heading,
.slide-card-heading {
  font-family: var(--font2);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.02em;
  margin: 0;
  color: var(--text-color);
}

/* Card image wrappers: aspect-ratio based, no fixed height on mobile */
.small-card-image-wrapper,
.big-card-image-wrapper,
.horizontal-card-image-wrapper,
.extra-small-card-image-wrapper,
.extra-small-side-card-image-wrapper,
.slide-card-image-wrapper {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: var(--surface, rgba(128,128,128,.06));
}

.small-card-image-wrapper { aspect-ratio: 16/9; }
.big-card-image-wrapper { aspect-ratio: 16/9; }
.horizontal-card-image-wrapper { aspect-ratio: 4/3; }
.extra-small-card-image-wrapper { aspect-ratio: 16/9; }
.extra-small-side-card-image-wrapper { aspect-ratio: 4/3; }
.slide-card-image-wrapper { aspect-ratio: 16/9; }

.small-card-image-wrapper img,
.big-card-image-wrapper img,
.horizontal-card-image-wrapper img,
.extra-small-card-image-wrapper img,
.extra-small-side-card-image-wrapper img,
.slide-card-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

/* Image link hover: subtle zoom */
.small-card-image-link:hover img,
.big-card-image-link:hover img,
.horizontal-card-image-link:hover img,
.extra-small-card-image-link:hover img,
.extra-small-side-card-image-link:hover img,
.slide-card-image-link:hover img {
  transform: scale(1.03);
}

/* ── BIG CARD ─────────────────────────────────────────────── */
.big-card {
  padding: 0;
  border-bottom: 1px solid var(--border, rgba(128,128,128,.15));
}

.big-card-content {
  padding: 14px 0 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.big-card-heading {
  font-size: var(--fs-card-lg);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.big-card-excerpt {
  font-family: var(--font1);
  font-size: .9rem;
  line-height: 1.55;
  opacity: .78;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.big-card-image-link {
  display: block;
  overflow: hidden;
}

/* ── SMALL CARD ───────────────────────────────────────────── */
.small-card {
  padding: 0;
  border-bottom: 1px solid var(--border, rgba(128,128,128,.15));
}

.small-card-content {
  padding: 12px 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.small-card-heading {
  font-size: var(--fs-card-sm);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.small-card-paragraph {
  font-family: var(--font1);
  font-size: .88rem;
  line-height: 1.5;
  opacity: .72;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.small-card-image-link {
  display: block;
  overflow: hidden;
}

/* ── HORIZONTAL CARD ──────────────────────────────────────── */
.horizontal-card {
  flex-direction: row;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border, rgba(128,128,128,.12));
}

.horizontal-card:first-child { padding-top: 0; }

.horizontal-card-image-link {
  flex-shrink: 0;
  width: 38%;
  max-width: 38%;
  display: block;
  overflow: hidden;
}

.horizontal-card-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.horizontal-card-heading {
  font-size: var(--fs-card-sm);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── EXTRA-SMALL CARD ─────────────────────────────────────── */
.extra-small-card {
  padding: 14px 0;
  border-bottom: 1px solid var(--border, rgba(128,128,128,.12));
}

.extra-small-card:first-child { padding-top: 0; }

.extra-small-card-content {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.extra-small-card-heading {
  font-size: var(--fs-card-xs);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.extra-small-card-image-link {
  display: block;
  overflow: hidden;
  margin-top: 10px;
}

/* ── EXTRA-SMALL SIDE CARD ────────────────────────────────── */
.extra-small-side-card {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border, rgba(128,128,128,.12));
}

.extra-small-side-card:first-child { padding-top: 0; }

.extra-small-side-card-image-link {
  flex-shrink: 0;
  width: 80px;
  height: 60px;
  display: block;
  overflow: hidden;
}

.extra-small-side-card-image-wrapper {
  width: 80px;
  height: 60px;
  aspect-ratio: unset;
}

.extra-small-side-card-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.extra-small-side-card-heading {
  font-size: var(--fs-card-xs);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── SLIDE CARD ───────────────────────────────────────────── */
.slide-card {
  padding: 0;
  flex-shrink: 0;
}

.slide-card-content {
  padding: 12px 0 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.slide-card-heading {
  font-size: var(--fs-card-xs);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.slide-card-image-link {
  display: block;
  overflow: hidden;
}

/* ── PAGINATION GRID ──────────────────────────────────────── */
.pagination-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

@media (min-width: 480px) {
  .pagination-grid { grid-template-columns: 1fr 1fr; gap: 0 24px; }
}

@media (min-width: 768px) {
  .pagination-grid { grid-template-columns: 1fr 1fr 1fr; gap: 0 28px; }
}

@media (min-width: 992px) {
  .pagination-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 32px; }
}

/* ── CARD GRID ────────────────────────────────────────────── */
.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

@media (min-width: 480px) {
  .grid { grid-template-columns: 1fr 1fr; gap: 0 20px; }
}

@media (min-width: 768px) {
  .grid { grid-template-columns: 1fr 1fr 1fr; gap: 0 24px; }
}

@media (min-width: 992px) {
  .grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 28px; }
}

/* ── DESKTOP CARD SIZES ───────────────────────────────────── */
@media (min-width: 992px) {
  /* card heading sizes are fluid via var(--fs-card-*) — no separate desktop override needed */

  .big-card-content { padding: 18px 0 22px; gap: 10px; }
  .small-card-content { padding: 14px 16px 18px; gap: 8px; }
  .horizontal-card { gap: 18px; padding: 18px 0; }
  .horizontal-card-image-link { width: 34%; max-width: 34%; }

  .extra-small-side-card-image-link { width: 100px; height: 72px; }
  .extra-small-side-card-image-wrapper { width: 100px; height: 72px; }
}

/* ── DARK MODE CARD BORDERS ───────────────────────────────── */
html[data-theme=dark] .big-card,
html[data-theme=dark] .small-card,
html[data-theme=dark] .horizontal-card,
html[data-theme=dark] .extra-small-card,
html[data-theme=dark] .extra-small-side-card {
  border-color: var(--border, rgba(255,255,255,.08));
}

/* ── LIGHT MODE CARD BACKGROUNDS ─────────────────────────── */
html[data-theme=light] .big-card,
html[data-theme=light] .small-card,
html[data-theme=light] .horizontal-card {
  background-color: #f3f1ee;
}

/* ── CARD HOVER LIFT ──────────────────────────────────────── */
@media (hover: hover) {
  .small-card:hover,
  .big-card:hover,
  .horizontal-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-3px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .small-card:hover,
  .big-card:hover,
  .horizontal-card:hover { transform: none; }
}

/* ── TEXT-MIN-HEIGHT UTILITY ──────────────────────────────── */
.text-min-height { min-height: 115px; }

@media (min-width: 1240px) {
  .text-min-height { min-height: calc(8vw * var(--scale,1)); }
}

/* ── REDUCED MOTION ───────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .small-card-image-link:hover img,
  .big-card-image-link:hover img,
  .horizontal-card-image-link:hover img,
  .extra-small-card-image-link:hover img,
  .slide-card-image-link:hover img { transform: none; }
}

/* ===== article-layout.css ===== */
/* ============================================================
   article-layout.css — v5.1.1
   Post body + sidebar two-column grid.
   Mobile-first: single column, sidebar is full-width at bottom.
   Desktop (992px+): article | sidebar sticky grid.
   ============================================================ */

/* ── MOBILE BASE: single column, article first ────────────── */
.post-content-and-sidebar {
  display: flex;
  flex-direction: column;
  width: 100%;
  box-sizing: border-box;
}

/* Article column */
.post-content-outer {
  width: 100%;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  order: 1;
}

/* Full-width content on mobile */
.post-content {
  padding-left: 5%;
  padding-right: 5%;
}

.post-content > * {
  max-width: 100%;
  box-sizing: border-box;
}

/* Ghost card full/wide width bleed on mobile */
.post-content .kg-width-full,
.post-content .kg-width-wide {
  margin-left: -5.26%;
  margin-right: -5.26%;
  width: calc(100% + 10.52%) !important;
  max-width: none !important;
  transform: none !important;
  left: auto !important;
}

.post-content .kg-signup-card {
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: unset !important;
  transform: none !important;
  left: auto !important;
  right: auto !important;
}

/* Sidebar: hidden on mobile and tablet — desktop/laptop only (992px+) */
.post-sidebar,
.sidebar-left .post-sidebar {
  display: none;
}

/* Without sidebar: span full width */
.post-content-outer-without-sidebar {
  width: 100%;
}

/* Post header mobile padding */
.post-header {
  padding-left: 5%;
  padding-right: 5%;
}

/* ── SMALL MOBILE (max 479px) ─────────────────────────────── */
/* Sidebar is hidden on mobile; no mobile-specific rules needed. */

/* ── DESKTOP (992px+): two-column sticky grid ─────────────── */
@media (min-width: 992px) {
  .post-content-and-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 2.1fr) minmax(260px, 0.72fr);
    grid-template-areas: "article sidebar-featured";
    gap: 0 40px;
    align-items: start;
    max-width: 1580px;
    margin: 0 auto;
    padding: 0 36px;
    flex-direction: unset;
  }

  .post-content-outer {
    grid-area: article;
    min-width: 0 !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    order: unset;
  }

  .post-content {
    padding-left: 0;
    padding-right: 0;
  }

  .post-content .kg-width-full,
  .post-content .kg-width-wide {
    margin-left: 0;
    margin-right: 0;
    width: 100% !important;
  }

  .post-content-outer-without-sidebar {
    grid-column: 1 / -1;
    padding-right: 0 !important;
  }

  /* Sidebar: shown and sticky on desktop (992px+) */
  .post-sidebar,
  .sidebar-left .post-sidebar {
    display: block;
    grid-area: sidebar-featured;
    width: 100% !important;
    min-width: 0;
    margin-top: 0;
    margin: 0;
    position: sticky;
    top: 32px;
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: var(--text-color) transparent;
    box-sizing: border-box;
    padding: 0 0 0 28px;
    border-left: 1px solid color-mix(in srgb, var(--text-color) 22%, transparent);
    border-top: 0;
    border-right: 0;
    order: unset;
  }

  .post-sidebar::-webkit-scrollbar { width: 4px; }
  .post-sidebar::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--text-color) 50%, transparent);
  }

  .post-header {
    padding-left: 0;
    padding-right: 0;
  }
}

/* ── SIDEBAR-LEFT VARIANT ─────────────────────────────────── */
@media (min-width: 992px) {
  .sidebar-left .post-content-and-sidebar {
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 2.1fr);
    grid-template-areas: "sidebar-featured article";
  }

  .sidebar-left .post-content-outer { padding: 0 !important; }

  .sidebar-left .post-sidebar {
    border-left: 0;
    border-right: 1px solid color-mix(in srgb, var(--text-color) 22%, transparent);
    padding-left: 0;
    padding-right: 28px;
  }
}

/* ── SIDEBAR INTERNAL STYLES ──────────────────────────────── */
.post-sidebar .section-heading,
.sidebar-info-section-heading.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0 12px;
  margin-bottom: 20px;
  border-bottom: 1px solid color-mix(in srgb, var(--text-color) 22%, transparent);
}

.post-sidebar .section-heading span,
.sidebar-info-section-heading.section-heading span {
  font-size: 10px;
  letter-spacing: .16em;
  line-height: 1;
  text-transform: uppercase;
  opacity: .78;
}

.post-sidebar .slide-card {
  padding: 0 0 22px;
  margin: 0 0 22px;
  border-bottom: 1px solid color-mix(in srgb, var(--text-color) 16%, transparent);
}

.post-sidebar .slide-card:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.post-sidebar .slide-card .extra-small-side-card-heading,
.post-sidebar .slide-card .slide-card-heading,
.post-sidebar .slide-card .small-card-heading {
  font-size: 1.18rem;
  line-height: 1.28;
}

.post-sidebar .slide-card .post-date,
.post-sidebar .slide-card small,
.post-sidebar .slide-card time {
  font-size: .93rem;
  opacity: .7;
}

/* ── DARK MODE SIDEBAR BORDERS ────────────────────────────── */
html[data-theme=dark] .post-sidebar {
  border-left-color: var(--border);
}

html[data-theme=dark] .sidebar-left .post-sidebar {
  border-right-color: var(--border);
  border-left: 0;
}

/* ── LARGE DESKTOP (1440px+) — vw scaling ─────────────────── */
@media (min-width: 1440px) {
  .post-content-and-sidebar {
    gap: 0 calc(2.5vw * var(--scale));
    padding-left: calc(2.5vw * var(--scale));
    padding-right: calc(2.5vw * var(--scale));
  }

  .post-sidebar { padding-left: calc(1.95vw * var(--scale)); }

  .sidebar-left .post-sidebar { padding-right: calc(1.95vw * var(--scale)); }

  .post-sidebar .slide-card .extra-small-side-card-heading,
  .post-sidebar .slide-card .slide-card-heading,
  .post-sidebar .slide-card .small-card-heading {
    font-size: calc(1.04vw * var(--scale));
  }
}

/* ── MEDIUM DESKTOP (992–1180px) ──────────────────────────── */
@media (min-width: 992px) and (max-width: 1180px) {
  .post-content-and-sidebar {
    grid-template-columns: minmax(0, 1.9fr) minmax(240px, 0.68fr);
    gap: 0 28px;
  }
}

/* ===== post.css ===== */
/* ============================================================
   post.css — v5.0.0
   Article/post page layout: mobile-first single column,
   progressive enhancement to sidebar grid at desktop.
   ============================================================ */

/* ── POST WRAPPER ─────────────────────────────────────────── */
article {
  display: block;
  width: 100%;
}

/* ── POST HEADER ──────────────────────────────────────────── */
.post-header {
  padding-top: 0 !important;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--text-color);
  margin-bottom: 0;
}

/* Mobile: tag above heading */
.post-tag {
  display: inline-block;
  font-size: clamp(14px,3.5vw,22px);
  font-family: var(--font2);
  line-height: 100%;
  margin-bottom: 12px;
}

.narrow-container .post-tag,
.vertical-post-header .post-tag { font-size: 18px; }

/* Post heading */
.post-heading {
  font-family: var(--font2);
  font-weight: 700;
  line-height: 1.04;
  margin-bottom: 20px;
  font-size: clamp(1.7rem,7vw,2.6rem);
  color: var(--text-color);
  max-width: 100%;
}

.narrow-container .post-heading,
.vertical-post-header .post-heading { font-size: clamp(1.5rem,6vw,2.2rem); }

/* Post excerpt */
.post-excerpt {
  font-size: clamp(1rem,3.5vw,1.3rem);
  line-height: 1.5;
  opacity: .85;
  margin: 0;
}

/* Post byline */
.post-byline-wrapper {
  margin-top: 12px;
  margin-bottom: 12px;
}

/* Excerpt + authors wrapper */
.excerpt-and-authors-wrapper {
  display: flex;
  width: 100%;
  align-items: flex-start;
  flex-direction: column;
  gap: 14px;
}

.post-excerpt-wrapper { max-width: 100%; }
.full-width-post-excerpt-wrapper { max-width: 100% !important; }

/* ── POST HERO IMAGE ──────────────────────────────────────── */
.post-main-image-wrapper {
  margin-top: 20px;
  width: 100%;
  position: relative;
}

.post-main-image-figure {
  width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
}

.post-main-image {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  display: block;
}

.post-image-caption {
  font-size: 12px;
  opacity: .55;
  padding: 6px 0 0;
  line-height: 1.4;
  font-style: italic;
}

/* ── POST HEADER HERO WRAPPER (side-by-side at desktop) ───── */
.post-header-hero-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin-bottom: 0;
}

@media (min-width: 992px) {
  .post-header-hero-wrapper {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 42px;
    padding-bottom: 42px;
    border-bottom: 1px solid var(--text-color);
  }

  .post-header-hero-wrapper .post-header {
    flex: 1;
    border-bottom: none !important;
    padding-bottom: 0 !important;
  }

  .post-header-hero-wrapper .post-main-image-wrapper {
    flex: 0 0 45%;
    margin-top: 26px !important;
  }
}

/* ── VERTICAL POST HEADER ─────────────────────────────────── */
.vertical-post-header { margin-bottom: 19px; }

.vertical-post-header .hero-content {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 42px;
  margin-top: 26px;
}

.vertical-post-image-left .hero-content { flex-direction: row-reverse; }

.vertical-post-header .post-hero-text-content {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 57px;
  border-top: 1px solid var(--text-color);
  border-bottom: 1px solid var(--text-color);
  margin-top: 0 !important;
}

.vertical-post-header .post-main-image-wrapper {
  display: flex;
  margin-top: 0;
  min-height: 35vw;
  max-width: 31.2vw;
}

.vertical-post-header .post-main-image-wrapper figure { overflow: unset; }

.vertical-post-header .post-hero-text-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

/* ── NO IMAGE CONTAINER ───────────────────────────────────── */
.no-image-container .post-hero-text-content {
  padding-bottom: 57px;
  border-bottom: 1px solid var(--text-color);
}

/* ── POST CONTENT + SIDEBAR ───────────────────────────────── */
.post-content-and-sidebar {
  position: relative;
  justify-content: unset;
  align-items: start;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 0;
}

.post-content-outer-without-sidebar {
  margin-left: auto;
  margin-right: auto;
}

.post-content { margin-top: 24px; }

.post-sidebar {
  max-width: 100%;
  width: 100%;
  padding-right: 0;
  margin-top: 0;
  position: relative;
  margin-bottom: 25px;
}

.post-sidebar .extra-small-side-card-image-link { height: auto; }

.sidebar-left { flex-direction: row-reverse; justify-content: flex-end; }
.sidebar-left .post-sidebar { padding-left: 0; padding-right: 0; }

.post-content-no-image { margin-top: 40px; }

/* ── DESKTOP: two-column post layout ─────────────────────── */
@media (min-width: 992px) {
  .post-content-and-sidebar {
    display: grid !important;
    grid-template-columns: minmax(0,2.1fr) minmax(260px,0.72fr);
    gap: 0 40px;
    max-width: 1580px;
    margin: 0 auto;
    padding: 0 36px;
    flex-direction: unset;
    align-items: start;
  }

  .post-sidebar {
    max-width: calc(31.2vw + 42px);
    padding-right: 42px;
    position: sticky;
    top: 24px;
  }

  .sidebar-left .post-sidebar {
    padding-left: 42px;
    padding-right: 0;
  }

  .post-content-no-image { margin-top: 57px; }

  .post-heading { font-size: clamp(2.2rem,4.5vw,4.5rem); }

  .excerpt-and-authors-wrapper {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    column-gap: 5vw;
  }

  .post-excerpt-wrapper { max-width: 464px; }

  .post-main-image-wrapper-header {
    max-width: 50vw !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    padding-left: 0 !important;
  }

  article p { font-size: 18px; }
}

/* ── POST CONTENT SIDEBAR LAYOUT OVERRIDES ────────────────── */
@media (max-width: 991px) {
  .post-content-and-sidebar { display: flex; flex-direction: column; align-items: center; padding: 0; }
}

/* Sidebar article: hide sidebar article on mobile */
article[data-post-header-type=Narrow][data-use-sidebar=true] .post-main-image-wrapper-header {
  display: none;
}

/* ── FULL-WIDTH CARD OVERRIDES IN SIDEBAR LAYOUT ──────────── */
.post-content-outer:not(.post-content-outer-without-sidebar) .kg-signup-card,
.post-content-outer:not(.post-content-outer-without-sidebar) .kg-width-full,
.post-content-outer:not(.post-content-outer-without-sidebar) .kg-width-wide {
  max-width: 100% !important;
  min-width: unset !important;
  position: relative !important;
  width: 100% !important;
  left: auto !important;
  right: auto !important;
  margin: 0 !important;
  transform: none !important;
  border-radius: 0 !important;
  border: none !important;
}

.post-content-outer:not(.post-content-outer-without-sidebar) .kg-signup-card .kg-signup-card-text {
  padding: 4vmax;
}

.post-content-outer:not(.post-content-outer-without-sidebar) .kg-width-full .kg-header-card-text {
  padding: min(6.4vmax,120px) min(4vmax,80px);
}

.post-content-outer:not(.post-content-outer-without-sidebar) .kg-layout-split .kg-header-card-content,
.post-content-outer:not(.post-content-outer-without-sidebar) .kg-layout-split .kg-signup-card-content {
  grid-template-columns: 1fr;
}

.post-content-outer:not(.post-content-outer-without-sidebar) .kg-layout-split .kg-header-card-content .kg-header-card-image,
.post-content-outer:not(.post-content-outer-without-sidebar) .kg-layout-split .kg-signup-card-content .kg-signup-card-image {
  height: auto;
}

/* ── POST SHARE ───────────────────────────────────────────── */
.post-share {
  margin-top: 12px;
  width: fit-content;
}

.post-share-heading {
  line-height: 1.6;
  font-weight: 700;
  font-size: 18px;
}

.post-share-icons {
  margin-top: 16px;
  gap: 32px;
  padding: 12px 18px;
  border: 1px solid var(--text-color);
  position: relative;
  display: flex !important;
}

.clipboard-alert {
  display: none;
  position: absolute;
  left: 0;
  bottom: -32px;
}

.kg-image-card figcaption,
.kg-image-caption {
  display: block;
  font-size: 0.8rem;
  color: var(--secondary-text-color, #888);
  text-align: center;
  margin-top: 0.5rem;
  padding: 0 1rem;
  font-style: italic;
  line-height: 1.4;
}



/* ── COMMENTS ─────────────────────────────────────────────── */
.comments-container { margin-top: 32px; }

/* ── OVERFLOW HIDDEN ──────────────────────────────────────── */
.overflow-hidden { overflow: hidden; }

/* ── MOBILE OVERRIDES ─────────────────────────────────────── */
@media (max-width: 767px) {
  .post-heading { font-size: clamp(1.5rem,7vw,2.2rem); margin-bottom: 16px; }
  .post-tag { font-size: 14px; margin-bottom: 10px; }
  .post-excerpt { font-size: 1rem; }
  .post-header { padding-bottom: 16px; }
  .vertical-post-header .hero-content { flex-direction: column; gap: 20px; }
  .vertical-post-header .post-main-image-wrapper { max-width: 100%; min-height: unset; }
  .post-content-no-image { margin-top: 28px; }
}

@media (max-width: 479px) {
  .post-heading { font-size: clamp(1.4rem,7.5vw,2rem); }
  .post-excerpt { font-size: .95rem; }
}

/* ── SATIRE POST HEADER ACCENT ────────────────────────────── */
.post--satire .post-header {
  border-top: 3px solid var(--satire-accent, #FF1493);
}

/* ===== post-content.css ===== */
.kg-blockquote-alt{border-left:none;padding-left:0;text-align:center;font-size:34px;font-style:italic}.kg-image-card{max-width:100%;width:auto}.kg-image-card img{width:auto;max-width:100%}.kg-image-card.kg-width-full img,.kg-image-card.kg-width-wide img{width:100%}.kg-image-card.kg-width-full figcaption{text-align:center}.kg-width-wide{width:100%;max-width:100%}.post-content-outer-without-sidebar .kg-width-full{max-width:none!important;position:relative!important;width:100vw!important;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;border-radius:0!important;border:none!important}.post-content-outer:not(.post-content-outer-without-sidebar) .kg-signup-card,.post-content-outer:not(.post-content-outer-without-sidebar) .kg-width-full,.post-content-outer:not(.post-content-outer-without-sidebar) .kg-width-wide{width:100%!important;min-width:unset!important;max-width:100%!important;position:relative!important;left:auto!important;right:auto!important;margin:0!important;transform:none!important}.fading-content>*,.post-content>*{margin-bottom:calc(1.7vw * var(--scale))}.post-content{display:flex;flex-direction:column}.post-content>*{letter-spacing:0}.post-content figure{overflow:initial}.visible-content{opacity:1!important}.hidden-post-content{opacity:0;transition:opacity;transition-duration:.8s;transition-timing-function:linear;transition-delay:0.4s}strong{font-weight:700}em{font-style:italic}hr{height:1px;width:100%;background-color:var(--text-color);border:0;margin:0;padding:0}blockquote{padding-top:calc(.6vw * var(--scale));padding-bottom:calc(.6vw * var(--scale));line-height:130%!important;font-size:32px;border-left:none;font-weight:500;font-family:var(--font2);color:var(--text-color)!important}blockquote p{font-family:inherit;line-height:inherit!important;font-size:inherit;font-weight:inherit;color:var(--text-color)!important}.post-content a{text-decoration:underline}.post-content ol,.post-content ul{padding-left:36px}.post-content ol li ol,.post-content ul li ul{padding-top:calc(.8vw * var(--scale))}.post-content ol li ol li,.post-content ul li ul li{font-size:16px;margin-bottom:calc(.8vw * var(--scale));line-height:160%;letter-spacing:0;color:var(--text-color);opacity:.82}.post-content ol li,.post-content ul li{margin-bottom:calc(1.2vw * var(--scale));font-size:18px;line-height:160%;letter-spacing:0;color:var(--text-color);opacity:.88}table{border-spacing:0px}thead{background-color:var(--text-color);color:var(--background-color)}th{text-align:left;padding:calc(1vw * var(--scale)) calc(1vw * var(--scale));font-size:20px}td{border-bottom:1px solid var(--text-color);font-size:18px;padding:calc(1vw * var(--scale)) calc(1vw * var(--scale))}.post-content .kg-toggle-card{margin-bottom:0!important;border-top:1px solid var(--text-color)}.kg-toggle-card+.kg-toggle-card{border-top:none}.kg-audio-card button:hover,.kg-video-container button:hover{background-color:inherit!important;color:inherit!important}.post-content small a:hover{background-size:0 0!important}.kg-width-regular{width:fit-content!important}.kg-gallery-card,.kg-gallery-card *{box-sizing:border-box}.kg-gallery-card,.kg-image-card{--gap:calc(1.4vw * var(--scale))}.kg-gallery-card:not(.kg-card-hascaption)+.kg-gallery-card,.kg-gallery-card:not(.kg-card-hascaption)+.kg-image-card,.kg-image-card:not(.kg-card-hascaption)+.kg-gallery-card,.kg-image-card:not(.kg-card-hascaption)+.kg-image-card{margin-top:var(--gap)}.kg-gallery-container{position:relative}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center}.kg-gallery-image img{display:block;margin:0;width:100%;height:100%}.kg-gallery-row:not(:first-of-type){margin:var(--gap) 0 0}.kg-gallery-image:not(:first-of-type){margin:0 0 0 var(--gap)}.kg-bookmark-card,.kg-bookmark-card *{box-sizing:border-box}.kg-bookmark-card,.kg-bookmark-publisher{position:relative;width:100%}.kg-bookmark-card a.kg-bookmark-container,.kg-bookmark-card a.kg-bookmark-container:hover{display:flex;text-decoration:none;border:1px solid var(--text-color);overflow:hidden;color:inherit}.kg-bookmark-content{display:flex;flex-direction:column;flex-grow:1;flex-basis:100%;align-items:flex-start;justify-content:flex-start;padding:calc(1.4vw * var(--scale));overflow:hidden}.kg-bookmark-title{font-size:18px;line-height:130%;font-weight:600}.kg-bookmark-description{display:-webkit-box;font-size:18px;margin-top:calc(1vw * var(--scale));line-height:130%;font-weight:400;overflow-y:hidden;opacity:.7;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:100%}.kg-bookmark-metadata{display:flex;align-items:center;margin-top:calc(1vw * var(--scale));width:100%;font-size:18px;font-weight:500;white-space:nowrap}.kg-bookmark-metadata>:not(img){opacity:.7}.kg-bookmark-icon{width:calc(1.4vw * var(--scale));height:calc(1.4vw * var(--scale));margin-right:calc(.6vw * var(--scale))}.kg-bookmark-author,.kg-bookmark-publisher{display:inline}.kg-bookmark-publisher{text-overflow:ellipsis;overflow:hidden;max-width:240px;white-space:nowrap;display:block;line-height:160%}.kg-bookmark-metadata>span:nth-of-type(2){font-weight:400}.kg-bookmark-metadata>span:nth-of-type(2):before{content:"•";margin:0 6px}.kg-bookmark-metadata>span:last-of-type{overflow:hidden;text-overflow:ellipsis}.kg-bookmark-thumbnail{position:relative;flex-grow:1;min-width:33%}.kg-bookmark-thumbnail img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}.kg-button-card,.kg-button-card *{box-sizing:border-box}.kg-button-card{display:flex;position:static;align-items:center;width:100%;justify-content:center;background-color:var(--card-bg)}.kg-btn{text-decoration:none!important}.kg-button-card.kg-align-left{justify-content:flex-start}.kg-callout-card,.kg-callout-card *{box-sizing:border-box}.kg-callout-card{display:flex;padding:calc(1.2vw * var(--scale)) calc(1.6vw * var(--scale))}.kg-callout-card-grey{background:rgba(124,139,154,.13)}.kg-callout-card-white{background:0 0;box-shadow:inset 0 0 0 1px rgba(124,139,154,.25)}.kg-callout-card-blue{background:rgba(33,172,232,.12)}.kg-callout-card-green{background:rgba(52,183,67,.12)}.kg-callout-card-yellow{background:rgba(240,165,15,.13)}.kg-callout-card-red{background:rgba(209,46,46,.11)}.kg-callout-card-pink{background:rgba(225,71,174,.11)}.kg-callout-card-purple{background:rgba(135,85,236,.12)}.kg-callout-card-accent{background:var(--brand-gradient,linear-gradient(45deg,#f545a2 0,#cf2e84 45%,#9b4db8 72%,#5e9dba 91%));color:var(--background-color)}.kg-callout-card.kg-callout-card-accent a{color:var(--background-color);text-decoration:underline}.kg-callout-card div.kg-callout-emoji{padding-right:calc(1vw * var(--scale));line-height:130%;font-size:18px}.kg-callout-card div.kg-callout-text{font-size:18px;font-family:var(--font1);line-height:160%}.kg-callout-card+.kg-callout-card{margin-top:calc(1vw * var(--scale))}.kg-video-card,.kg-video-card *{box-sizing:border-box}.kg-video-card{position:relative;--seek-before-width:0%;--volume-before-width:100%;--buffered-width:0%}.kg-video-card video{display:block;max-width:100%;height:auto}.kg-video-container{position:relative;display:flex;flex-direction:column;align-items:center}.kg-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;background-image:linear-gradient(180deg,rgba(0,0,0,.3) 0,transparent 70%,transparent 100%);z-index:999;transition:opacity .2s ease-in-out}.kg-video-large-play-icon{display:flex;justify-content:center;align-items:center;width:calc(5vw * var(--scale));height:calc(5vw * var(--scale));padding:0;background:rgba(0,0,0,.5);border-radius:50%;transition:opacity .2s ease-in-out}.kg-video-large-play-icon svg{width:calc(1.4vw * var(--scale));height:auto;margin-left:2px;fill:#fff}.kg-video-player-container{position:absolute;bottom:0;width:100%;height:calc(5.6vw * var(--scale));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.5));z-index:999;transition:opacity .2s ease-in-out}.kg-video-player{position:absolute;bottom:0;display:flex;align-items:center;width:100%;z-index:9999;padding:calc(1.4vw * var(--scale))}.kg-video-current-time{min-width:46px;padding:0 4px;color:var(--background-color);font-family:inherit;font-size:16px;font-weight:500;line-height:1.4em;white-space:nowrap}.kg-video-time{color:color-mix(in srgb,var(--background-color) 60%,transparent);font-family:inherit;font-size:16px;font-weight:500;line-height:1.4em;white-space:nowrap}.kg-video-duration{padding:0 4px}.kg-video-pause-icon,.kg-video-play-icon{position:relative;padding:0 4px 0 0;font-size:0;background:0 0}.kg-video-hide{display:none!important}.kg-video-hide-animated{opacity:0!important;transition:opacity .2s ease-in-out;cursor:initial}.kg-video-pause-icon svg,.kg-video-play-icon svg{width:14px;height:14px;fill:#fff}.kg-video-seek-slider{flex-grow:1;margin:0 4px}@media (max-width:520px){.kg-video-seek-slider{display:none}}.kg-video-playback-rate{min-width:37px;padding:0 4px;color:var(--background-color);font-family:inherit;font-size:16px;font-weight:600;line-height:1.4em;text-align:left;background:0 0;white-space:nowrap}@media (max-width:520px){.kg-video-playback-rate{padding-left:8px}}.kg-video-mute-icon,.kg-video-unmute-icon{position:relative;bottom:-1px;padding:0 4px;font-size:0;background:0 0}@media (max-width:520px){.kg-video-mute-icon,.kg-video-unmute-icon{margin-left:auto}}.kg-video-mute-icon svg,.kg-video-unmute-icon svg{width:16px;height:16px;fill:#fff}.kg-video-volume-slider{width:calc(5.6vw * var(--scale))}@media (max-width:300px){.kg-video-volume-slider{display:none}}.kg-video-seek-slider::before{content:"";position:absolute;left:0;width:var(--seek-before-width)!important;height:4px;cursor:pointer;background-color:var(--text-color-80);border-radius:2px}.kg-video-volume-slider::before{content:"";position:absolute;left:0;width:var(--volume-before-width)!important;height:4px;cursor:pointer;background-color:var(--text-color-80);border-radius:2px}.kg-video-card input[type=range]{position:relative;-webkit-appearance:none;background:0 0}.kg-video-card input[type=range]:focus{outline:0}.kg-video-card input[type=range]::-webkit-slider-thumb{-webkit-appearance:none}.kg-video-card input[type=range]::-ms-track{cursor:pointer;border-color:transparent;color:transparent;background:0 0}.kg-video-card button{display:flex;align-items:center;border:0;cursor:pointer}.kg-video-card input[type=range]{height:auto;padding:0;border:0}.kg-video-card input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:var(--surface);border-radius:2px}.kg-video-card input[type=range]::-webkit-slider-thumb{position:relative;box-sizing:content-box;width:13px;height:13px;margin:-5px 0 0 0;border:0;cursor:pointer;background:var(--text-color);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-color) 8%,transparent),0 1px 4px color-mix(in srgb,var(--text-color) 24%,transparent)}.kg-video-card input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2)}.kg-video-card input[type=range]::-moz-range-track{width:100%;height:4px;cursor:pointer;background:var(--surface);border-radius:2px}.kg-video-card input[type=range]::-moz-range-progress{background:var(--text-color-80);border-radius:2px}.kg-video-card input[type=range]::-moz-range-thumb{box-sizing:content-box;width:13px;height:13px;border:0;cursor:pointer;background:var(--text-color);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-color) 8%,transparent),0 1px 4px color-mix(in srgb,var(--text-color) 24%,transparent)}.kg-video-card input[type=range]:active::-moz-range-thumb{transform:scale(1.2)}.kg-video-card input[type=range]::-ms-track{width:100%;height:3px;border:solid transparent;color:transparent;cursor:pointer;background:0 0}.kg-video-card input[type=range]::-ms-fill-lower{background:var(--text-color)}.kg-video-card input[type=range]::-ms-fill-upper{background:var(--text-color-80)}.kg-video-card input[type=range]::-ms-thumb{box-sizing:content-box;width:13px;height:13px;border:0;cursor:pointer;background:var(--text-color);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-color) 8%,transparent),0 1px 4px color-mix(in srgb,var(--text-color) 24%,transparent)}.kg-video-card input[type=range]:active::-ms-thumb{transform:scale(1.2)}.kg-audio-card button{color:var(--text-color)}.kg-audio-card,.kg-audio-card *{box-sizing:border-box}.kg-audio-card{display:flex;width:100%;min-height:calc(6.7vw * var(--scale));box-shadow:inset 0 0 0 1px var(--text-color);align-items:center}.kg-audio-card+.kg-audio-card{margin-top:1em}.post-content .kg-audio-thumbnail{display:flex;justify-content:center;align-items:center;width:calc(8vw * var(--scale));min-width:calc(8vw * var(--scale));margin:calc(.7vw * var(--scale));background:0 0;object-fit:cover;aspect-ratio:1/1;height:auto}.kg-audio-thumbnail.placeholder svg{width:24px;height:24px;fill:var(--text-color);scale:1.6}.kg-audio-player-container{position:relative;display:flex;flex-direction:column;justify-content:space-between;width:100%;--seek-before-width:0%;--volume-before-width:100%;--buffered-width:0%}.kg-audio-title{width:100%;margin:8px 0 0 0;padding:calc(1.4vw * var(--scale));border:none;font-family:inherit;font-size:18px;font-weight:700;line-height:1.15em;background:0 0}.kg-audio-player{display:flex;flex-grow:1;align-items:center;padding:calc(1.4vw * var(--scale))}.kg-audio-current-time{min-width:44px;padding:0 4px;font-family:inherit;font-size:16px;font-weight:500;line-height:1.4em;white-space:nowrap}.kg-audio-time{width:calc(3.9vw * var(--scale));color:var(--text-color);opacity:.6;font-family:inherit;font-size:16px;font-weight:500;line-height:1.4em;white-space:nowrap}.kg-audio-duration{padding:0 4px}.kg-audio-pause-icon,.kg-audio-play-icon{position:relative;bottom:1px;padding:0 4px 0 0;font-size:0;background:0 0;color:var(--text-color)}.kg-audio-hide{display:none!important}.kg-audio-pause-icon svg,.kg-audio-play-icon svg{width:14px;height:14px;fill:currentColor}.kg-audio-seek-slider{flex-grow:1;margin:0 4px}@media (max-width:640px){.kg-audio-seek-slider{display:none}}.kg-audio-playback-rate{min-width:calc(2.6vw * var(--scale));padding:0 4px;font-family:inherit;font-size:16px;font-weight:600;line-height:1.4em;text-align:left;background:0 0;white-space:nowrap}@media (max-width:640px){.kg-audio-playback-rate{padding-left:8px}}.kg-audio-mute-icon,.kg-audio-unmute-icon{position:relative;bottom:-1px;padding:0 4px;font-size:0;background:0 0}@media (max-width:640px){.kg-audio-mute-icon,.kg-audio-unmute-icon{margin-left:auto}}.kg-audio-mute-icon svg,.kg-audio-unmute-icon svg{width:16px;height:16px;fill:currentColor}.kg-audio-volume-slider{width:calc(5.6vw * var(--scale))}@media (max-width:400px){.kg-audio-volume-slider{display:none}}.kg-audio-seek-slider::before{content:"";position:absolute;left:0;width:var(--seek-before-width)!important;height:4px;cursor:pointer;background-color:currentColor;border-radius:2px}.kg-audio-volume-slider::before{content:"";position:absolute;left:0;width:var(--volume-before-width)!important;height:4px;cursor:pointer;background-color:currentColor;border-radius:2px}.kg-audio-player-container input[type=range]{position:relative;-webkit-appearance:none;background:0 0}.kg-audio-player-container input[type=range]:focus{outline:0}.kg-audio-player-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none}.kg-audio-player-container input[type=range]::-ms-track{cursor:pointer;border-color:transparent;color:transparent;background:0 0}.kg-audio-player-container button{display:flex;align-items:center;border:0;cursor:pointer}.kg-audio-player-container input[type=range]{height:auto;padding:0;border:0}.kg-audio-player-container input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:var(--border);border-radius:2px}.kg-audio-player-container input[type=range]::-webkit-slider-thumb{position:relative;box-sizing:content-box;width:13px;height:13px;margin:-5px 0 0 0;border:0;cursor:pointer;background:var(--text-color);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-color) 8%,transparent),0 1px 4px color-mix(in srgb,var(--text-color) 24%,transparent)}.kg-audio-player-container input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2)}.kg-audio-player-container input[type=range]::-moz-range-track{width:100%;height:4px;cursor:pointer;background:var(--border);border-radius:2px}.kg-audio-player-container input[type=range]::-moz-range-progress{background:currentColor;border-radius:2px}.kg-audio-player-container input[type=range]::-moz-range-thumb{box-sizing:content-box;width:13px;height:13px;border:0;cursor:pointer;background:var(--text-color);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-color) 8%,transparent),0 1px 4px color-mix(in srgb,var(--text-color) 24%,transparent)}.kg-audio-player-container input[type=range]:active::-moz-range-thumb{transform:scale(1.2)}.kg-audio-player-container input[type=range]::-ms-track{width:100%;height:3px;border:solid transparent;color:transparent;cursor:pointer;background:0 0}.kg-audio-player-container input[type=range]::-ms-fill-lower{background:var(--text-color)}.kg-audio-player-container input[type=range]::-ms-fill-upper{background:currentColor}.kg-audio-player-container input[type=range]::-ms-thumb{box-sizing:content-box;width:13px;height:13px;border:0;cursor:pointer;background:var(--text-color);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-color) 8%,transparent),0 1px 4px color-mix(in srgb,var(--text-color) 24%,transparent)}.kg-audio-player-container input[type=range]:active::-ms-thumb{transform:scale(1.2)}.kg-file-card,.kg-file-card *{box-sizing:border-box}.kg-file-card{display:flex}.kg-file-card a.kg-file-card-container{display:flex;align-items:stretch;justify-content:space-between;color:inherit;padding:calc(1.4vw * var(--scale));min-height:calc(6.4vw * var(--scale));border:1px solid var(--text-color);transition:opacity .3s ease,transform .3s ease,color .3s ease,background-color .3s ease;text-decoration:none;width:100%}.kg-file-card a.kg-file-card-container:hover{border:1px solid var(--text-color)}.kg-file-card-contents{display:flex;flex-direction:column;justify-content:space-between;width:100%}.kg-file-card-title{font-size:18px;font-weight:700;line-height:1.3em}.kg-file-card-caption{font-size:18px;line-height:1.3em;opacity:.6}.kg-file-card-title+.kg-file-card-caption{margin-top:-3px}.kg-file-card-metadata{display:inline;font-size:16px;line-height:1.3em;margin-top:2px}.kg-file-card-filename{display:inline;font-weight:500}.kg-file-card-filesize{display:inline-block;font-size:16px;opacity:.6;margin-left:6px}.kg-file-card-filesize:before{display:inline-block;content:"\2022";margin-right:4px}.kg-file-card-icon{position:relative;display:flex;align-items:center;justify-content:center;width:calc(5.6vw * var(--scale));min-width:calc(5.6vw * var(--scale));height:100%;min-height:calc(5.6vw * var(--scale));border:1px solid var(--text-color)}.kg-file-card a.kg-file-card-container:hover .kg-file-card-icon:before{opacity:.08}.kg-file-card-icon svg{width:calc(2.2vw * var(--scale));height:calc(2.2vw * var(--scale));color:var(--text-color)}.kg-file-card-medium a.kg-file-card-container{min-height:calc(5vw * var(--scale))}.kg-file-card-medium .kg-file-card-caption{opacity:1;font-weight:500}.kg-file-card-small a.kg-file-card-container{align-items:center;min-height:calc(3.6vw * var(--scale))}.kg-file-card-small .kg-file-card-metadata{font-size:18px;margin-top:0}.kg-file-card-small .kg-file-card-icon svg{width:calc(1.4vw * var(--scale));height:calc(1.4vw * var(--scale))}.kg-file-card+.kg-file-card{margin-top:calc(1.2vw * var(--scale))}.kg-product-card,.kg-product-card *{box-sizing:border-box}.kg-product-card{display:flex;align-items:center;flex-direction:column;width:100%}.kg-product-card-container{display:grid;grid-template-columns:auto min-content;align-items:center;grid-row-gap:calc(1.1vw * var(--scale));background:0 0;max-width:calc(38vw * var(--scale));padding:calc(1.4vw * var(--scale));width:100%;box-shadow:inset 0 0 0 1px var(--text-color)}.kg-product-card-image{grid-column:1/3;justify-self:center;height:auto}.kg-product-card-title-container{grid-column:1/2}.kg-product-card h4.kg-product-card-title{font-family:var(--font1);text-decoration:none;font-weight:700;font-size:18px;margin-top:0;margin-bottom:0;line-height:1.15em}.kg-product-card-description{grid-column:1/3}.kg-product-card .kg-product-card-description ol,.kg-product-card .kg-product-card-description p,.kg-product-card .kg-product-card-description ul{font-size:16px;line-height:1.5em;opacity:.7;margin-bottom:0}.kg-product-card .kg-product-card-description p:first-of-type{margin-top:-4px}.kg-product-card .kg-product-card-description ol,.kg-product-card .kg-product-card-description p:not(:first-of-type),.kg-product-card .kg-product-card-description ul{margin-top:calc(1vw * var(--scale))}.kg-product-card .kg-product-card-description li+li{margin-top:.5em}.kg-product-card-rating{display:flex;align-items:center;grid-column:2/3;align-self:start;justify-self:end;padding-left:16px}@media (max-width:400px){.kg-product-card-title-container{grid-column:1/3}.kg-product-card-rating{grid-column:1/3;justify-self:start;margin-top:-15px;padding-left:0}}.kg-product-card-rating-star{height:calc(1.9vw * var(--scale));width:calc(1.4vw * var(--scale))}.kg-product-card-rating-star svg{width:calc(1.1vw * var(--scale));height:calc(1.1vw * var(--scale));fill:currentColor;opacity:.15}.kg-product-card-rating-active.kg-product-card-rating-star svg{opacity:1}.kg-product-card a.kg-product-card-button{justify-content:center;grid-column:1/3;display:flex;position:static;align-items:center;font-size:16px;font-weight:600;line-height:1em;text-decoration:none;width:100%;padding:calc(1vw * var(--scale)) calc(1.9vw * var(--scale));transition:opacity .2s ease,transform .2s ease,color .2s ease,background-color .2s ease,border-color .2s ease}.kg-product-card a.kg-product-card-button:hover{opacity:.92}.kg-product-card a.kg-product-card-btn-accent{background-color:var(--text-color);color:var(--background-color)}.kg-header-card,.kg-header-card *{box-sizing:border-box;width:100%;position:static;left:0;right:0;margin-left:0;margin-right:0}.kg-header-card{padding:12vmin calc(4vw * var(--scale));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.kg-header-card.kg-size-small{padding-top:14vmin;padding-bottom:14vmin}.kg-header-card.kg-size-large{padding-top:20vmin;padding-bottom:20vmin}.kg-header-card.kg-size-large,.kg-header-card.kg-size-medium,.kg-header-card.kg-size-small{max-width:100%!important;position:static!important;width:100%!important;left:unset!important;right:unset!important;margin-left:0!important;margin-right:0!important;border-radius:calc(1vw * var(--scale))!important}.kg-header-card.kg-align-left{text-align:left;align-items:flex-start}.kg-header-card.kg-style-dark{background:var(--bg);color:var(--text-color)}.kg-header-card.kg-style-light{background-color:var(--card-bg);color:var(--text-color)}.kg-header-card.kg-style-accent{background-color:var(--ghost-accent-color)}.kg-header-card.kg-style-image{position:relative;background-color:var(--surface,rgba(128,128,128,.15));background-size:cover;background-position:center}.kg-header-card.kg-style-image::before{position:absolute;display:block;content:"";top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,rgba(0,0,0,.1),rgba(0,0,0,.35))}.kg-header-card h2.kg-header-card-header{font-size:calc(3.6vw * var(--scale));line-height:1.1em;margin:0}.kg-header-card.kg-size-small h2.kg-header-card-header{font-size:calc(3vw * var(--scale))}.kg-header-card.kg-size-large h2.kg-header-card-header{font-size:calc(5vw * var(--scale))}.kg-header-card h3.kg-header-card-subheader{font-size:calc(2vw * var(--scale));line-height:1.4em;margin:0;max-width:calc(40vw * var(--scale))}.kg-header-card h2+h3.kg-header-card-subheader{margin:calc(1.5vw * var(--scale)) 0 0}.kg-header-card:not(.kg-style-light) h2.kg-header-card-header,.kg-header-card:not(.kg-style-light) h3.kg-header-card-subheader{color:var(--text-color)}.kg-header-card.kg-style-accent h3.kg-header-card-subheader,.kg-header-card.kg-style-image h3.kg-header-card-subheader{opacity:1}.kg-header-card.kg-style-image a.kg-header-card-button,.kg-header-card.kg-style-image h2.kg-header-card-header,.kg-header-card.kg-style-image h3.kg-header-card-subheader{z-index:999}.kg-header-card h2.kg-header-card-header a,.kg-header-card h3.kg-header-card-subheader a{color:var(--ghost-accent-color)}.kg-header-card.kg-style-accent h2.kg-header-card-header a,.kg-header-card.kg-style-accent h3.kg-header-card-subheader a,.kg-header-card.kg-style-accent h3.kg-header-card-subheading a,.kg-header-card.kg-style-image h3.kg-header-card-subheading a{color:var(--background-color)}.kg-header-card a.kg-header-card-button{width:auto;text-decoration:none}.kg-header-card h2+a.kg-header-card-button,.kg-header-card h3+a.kg-header-card-button{margin:calc(2vw * var(--scale)) 0 0}.kg-header-card.kg-size-large h2+a.kg-header-card-button,.kg-header-card.kg-size-large h3+a.kg-header-card-button{margin-top:calc(2vw * var(--scale))}.kg-header-card.kg-size-small h2+a.kg-header-card-button,.kg-header-card.kg-size-small h3+a.kg-header-card-button{margin-top:calc(2vw * var(--scale))}.kg-header-card.kg-style-dark a.kg-header-card-button,.kg-header-card.kg-style-image a.kg-header-card-button{background:var(--text-color);color:var(--background-color)}.kg-header-card.kg-style-light a.kg-header-card-button{background:var(--text-color);color:var(--background-color)}.kg-header-card.kg-style-accent a.kg-header-card-button{background:var(--text-color);color:var(--background-color)}.kg-header-card.kg-v2{position:relative;padding:0;min-height:initial;text-align:initial;box-sizing:border-box;border:1px solid var(--text-color)}.kg-header-card.kg-v2 *{box-sizing:border-box}.kg-header-card.kg-v2 a,.kg-header-card.kg-v2 a span,.kg-signup-card a,.kg-signup-card a span{color:currentColor}.kg-header-card-content{width:100%}.kg-layout-split .kg-header-card-content{display:grid;grid-template-columns:1fr 1fr}.kg-header-card-text{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:min(6.4vmax,120px) min(4vmax,80px);background-size:cover;background-position:center;text-align:left}.kg-width-wide .kg-header-card-text{padding:min(6.4vmax,120px) min(4vmax,80px)}.kg-width-full .kg-header-card-text{padding:min(12vmax,260px) min(4vmax,80px)}.kg-layout-split .kg-header-card-text{padding:min(12vmax,260px) min(4vmax,80px)}.kg-layout-split.kg-content-wide .kg-header-card-text{padding:min(10vmax,220px) 0 min(10vmax,220px) min(4vmax,80px)}.kg-layout-split.kg-content-wide.kg-swapped .kg-header-card-text{padding:min(10vmax,220px) min(4vmax,80px) min(10vmax,220px) 0}.kg-swapped .kg-header-card-text{grid-row:1}.kg-header-card-text.kg-align-center{align-items:center;text-align:center}.kg-header-card.kg-style-image .kg-header-card-subheading,.kg-header-card.kg-style-image h2.kg-header-card-heading,.kg-header-card.kg-style-image.kg-v2 .kg-header-card-button{z-index:999}.kg-header-card>picture>.kg-header-card-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;background-color:var(--card-bg,#fff);pointer-events:none}.kg-header-card-content .kg-header-card-image{width:100%;height:0;min-height:100%;object-fit:cover;object-position:center}.kg-content-wide .kg-header-card-content .kg-header-card-image{height:100%;padding:8rem 0;object-fit:contain}.kg-header-card h2.kg-header-card-heading,.kg-signup-card h2.kg-signup-card-heading{margin:0;font-size:clamp(2.4rem,4vw,3.6rem);font-weight:400;line-height:120%;letter-spacing:-.01em}.kg-header-card-subheading{margin:0 0 2em}.kg-header-card .kg-header-card-subheading{max-width:40em;margin:0;font-size:clamp(1.05em,2vw,1.6rem);font-weight:400;line-height:140%}.kg-header-card h2+.kg-header-card-subheading{margin:.6em 0 0}.kg-header-card.kg-width-full .kg-header-card-subheading:not(.kg-layout-split .kg-header-card-subheading){max-width:min(65vmax,1200px)}.kg-header-card.kg-v2 .kg-header-card-button.kg-style-accent{background-color:var(--ghost-accent-color)}.kg-header-card.kg-v2 h2+.kg-header-card-button,.kg-header-card.kg-v2 p+.kg-header-card-button{margin:1.5em 0 0}.kg-header-card.kg-v2.kg-width-wide h2+.kg-header-card-button,.kg-header-card.kg-v2.kg-width-wide p+.kg-header-card-button,.kg-signup-card.kg-width-wide h2+.kg-signup-card-button,.kg-signup-card.kg-width-wide p+.kg-signup-card-button{margin-top:1.75em}.kg-header-card.kg-v2.kg-width-full h2+.kg-header-card-button,.kg-header-card.kg-v2.kg-width-full p+.kg-header-card-button,.kg-signup-card.kg-width-full h2+.kg-signup-card-button,.kg-signup-card.kg-width-full p+.kg-signup-card-button{margin-top:2em}.kg-header-card-button{font-size:calc(1.25vw * var(--scale))}.kg-embed-card{position:relative;overflow:hidden;padding-top:56.25%}.kg-embed-card:has(.twitter-tweet){padding-top:0}.kg-embed-card embed,.kg-embed-card iframe,.kg-embed-card object{position:absolute;top:0;left:0;width:100%;height:100%}.kg-signup-card{position:relative;overflow:hidden;border:1px solid var(--text-color)}.kg-signup-card,.kg-signup-card *{box-sizing:border-box}.kg-signup-card a,.kg-signup-card a span{color:currentColor}.kg-signup-card.kg-style-accent{background-color:var(--ghost-accent-color)}.kg-layout-split .kg-signup-card-content{display:grid;grid-template-columns:1fr 1fr}.kg-signup-card-text{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;height:100%;padding:4vmax;background-size:cover;background-position:center;text-align:left}.kg-signup-card.kg-width-full{border-radius:0;border:none}.kg-width-wide .kg-signup-card-text{padding:4vmax}.kg-width-full .kg-signup-card-text{padding:4vmax}.kg-layout-split .kg-signup-card-text{padding:9.6vmax 4vmax}.kg-layout-split.kg-content-wide .kg-signup-card-text{padding:9.6vmax 0 9.6vmax 4vmax}.kg-layout-split.kg-content-wide.kg-swapped .kg-signup-card-text{padding:9.6vmax 4vmax 9.6vmax 0}.kg-swapped .kg-signup-card-text{grid-row:1}.kg-signup-card-text.kg-align-center{align-items:center;text-align:center}.kg-signup-card.kg-style-image .kg-signup-card-button,.kg-signup-card.kg-style-image h2.kg-signup-card-heading,.kg-signup-card.kg-style-image h3.kg-signup-card-subheading{z-index:999}.kg-signup-card.kg-width-regular{width:auto}.kg-signup-card>picture>.kg-signup-card-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;background-color:var(--card-bg,#fff);pointer-events:none}.kg-signup-card-content .kg-signup-card-image{height:0;min-height:100%;object-fit:cover;object-position:center}.kg-content-wide .kg-signup-card-content .kg-signup-card-image{height:100%;padding:calc(8.9vw * var(--scale)) 0;object-fit:contain}.kg-signup-card-subheading{margin:calc(2.2vw * var(--scale)) 0 0}.kg-signup-card h3.kg-signup-card-subheading{max-width:100%;margin:0;font-size:20px;line-height:160%;font-weight:400}.kg-signup-card h2+h3.kg-signup-card-subheading{margin:calc(1.4vw * var(--scale)) 0 0}.kg-signup-card h3.kg-signup-card-subheading strong{font-weight:600}.kg-signup-card.kg-width-wide h3.kg-signup-card-subheading{font-size:20px}.kg-signup-card.kg-width-full h3.kg-signup-card-subheading:not(.kg-layout-split h3.kg-signup-card-subheading){max-width:80%}.kg-signup-card-form{position:relative;display:flex;flex-shrink:0;width:100%}.kg-align-center .kg-signup-card-form{justify-content:center}.kg-signup-card-heading+.kg-signup-card-form,.kg-signup-card-subheading+.kg-signup-card-form{margin:1.8vmax 0 0}.kg-width-wide .kg-signup-card-heading+.kg-signup-card-form,.kg-width-wide .kg-signup-card-subheading+.kg-signup-card-form{margin:2.2vmax 0 0}.kg-width-full .kg-signup-card-heading+.kg-signup-card-form,.kg-width-full .kg-signup-card-subheading+.kg-signup-card-form{margin:2.2vmax 0 0}.kg-signup-card-fields{display:flex;width:100%;padding:0;background:0 0;border:none;overflow:hidden;max-width:90%}.kg-width-wide .kg-signup-card-fields{width:100%;max-width:90%}.kg-width-full .kg-signup-card-fields{width:100%;max-width:90%}.kg-layout-split .kg-signup-card-fields{width:100%;max-width:90%}.kg-signup-card-input{width:100%;height:auto;font-size:18px}.kg-signup-card-input:focus,.kg-signup-card-input:focus-visible{outline:0}.kg-signup-card-button{display:flex;position:relative;align-items:center;border:none;font-size:18px;padding-left:20px;padding-right:20px}.kg-signup-card-button.kg-style-accent{background-color:var(--ghost-accent-color)}.kg-signup-card h2+.kg-signup-card-button,.kg-signup-card h3+.kg-signup-card-button{margin:calc(1.5vw * var(--scale)) 0 0}.kg-signup-card.kg-width-wide h2+.kg-signup-card-button,.kg-signup-card.kg-width-wide h3+.kg-signup-card-button{margin-top:calc(1.7vw * var(--scale))}.kg-signup-card.kg-width-full h2+.kg-signup-card-button,.kg-signup-card.kg-width-full h3+.kg-signup-card-button{margin-top:calc(2vw * var(--scale))}.kg-signup-card-error,.kg-signup-card-success{display:none}.kg-signup-card-form.success .kg-signup-card-fields{display:none}.kg-signup-card-form.success .kg-signup-card-success{display:flex;align-items:center;height:auto;font-size:20px;font-weight:400;color:var(--success-color);line-height:150%}.kg-signup-card-form.error .kg-signup-card-fields{border:1px solid var(--error-color,#b71c1c);box-shadow:inset 0 0 0 1px rgba(183,28,28,.2)}.kg-signup-card-form.error .kg-signup-card-error{position:absolute;bottom:calc(-3vw * var(--scale));display:block;font-size:inherit}.kg-signup-card-button-loading{position:absolute;inset:0;align-items:center;justify-content:center;display:none}.kg-signup-card-form.loading .kg-signup-card-button-default{color:transparent}.kg-signup-card-form.loading .kg-signup-card-button-loading{display:flex}.kg-signup-card-disclaimer{margin:calc(1vw * var(--scale)) 0 0;font-size:16px}.kg-signup-card-form.error+.kg-signup-card-disclaimer,.kg-signup-card-form.success+.kg-signup-card-disclaimer{visibility:hidden}@media (min-width:1439px){blockquote{font-size:calc(2.2vw * var(--scale))}.kg-blockquote-alt{font-size:calc(2.4vw * var(--scale))}.post-content ol,.post-content ul{padding-left:calc(2.5vw * var(--scale))}.post-content ol li ol li,.post-content ul li ul li{font-size:calc(1.11vw * var(--scale))}.post-content ol li,.post-content ul li{font-size:calc(1.25vw * var(--scale))}th{font-size:calc(1.35vw * var(--scale))}td{font-size:calc(1.25vw * var(--scale))}.kg-bookmark-description,.kg-bookmark-metadata,.kg-bookmark-title{font-size:calc(1.25vw * var(--scale))}.kg-bookmark-publisher{max-width:calc(15vw * var(--scale))}.kg-callout-card div.kg-callout-emoji,.kg-callout-card div.kg-callout-text{font-size:calc(1.25vw * var(--scale))}.kg-video-current-time{min-width:calc(2.8vw * var(--scale));font-size:calc(1.1vw * var(--scale))}.kg-video-time{font-size:calc(1.1vw * var(--scale))}.kg-video-pause-icon svg,.kg-video-play-icon svg{width:calc(1vw * var(--scale));height:calc(1vw * var(--scale))}.kg-video-playback-rate{min-width:calc(2.6vw * var(--scale));font-size:calc(1.1vw * var(--scale))}.kg-video-mute-icon svg,.kg-video-unmute-icon svg{width:calc(1.1vw * var(--scale));height:calc(1.1vw * var(--scale))}.kg-video-card input[type=range]::-webkit-slider-thumb{width:calc(1vw * var(--scale));height:calc(1vw * var(--scale));margin:calc(-.4vw * var(--scale)) 0 0 0}.kg-video-card input[type=range]::-moz-range-thumb{width:calc(1vw * var(--scale));height:calc(1vw * var(--scale))}.kg-video-card input[type=range]::-ms-thumb{width:calc(1vw * var(--scale));height:calc(1vw * var(--scale))}.kg-audio-title{font-size:calc(1.25vw * var(--scale))}.kg-audio-current-time{font-size:calc(1.1vw * var(--scale));min-width:calc(2.8vw * var(--scale))}.kg-audio-time{font-size:calc(1.1vw * var(--scale))}.kg-audio-pause-icon svg,.kg-audio-play-icon svg{width:calc(1vw * var(--scale));height:calc(1.38vw * var(--scale))}.kg-audio-playback-rate{font-size:calc(1.1vw * var(--scale))}.kg-audio-mute-icon svg,.kg-audio-unmute-icon svg{width:calc(1.1vw * var(--scale));height:calc(1.1vw * var(--scale))}.kg-audio-player-container input[type=range]::-webkit-slider-thumb{margin:calc(-.4vw * var(--scale)) 0 0 0;width:calc(1vw * var(--scale));height:calc(1vw * var(--scale))}.kg-audio-player-container input[type=range]::-moz-range-thumb{width:calc(1vw * var(--scale));height:calc(1vw * var(--scale))}.kg-audio-player-container input[type=range]::-ms-thumb{width:calc(1vw * var(--scale));height:calc(1vw * var(--scale))}.kg-file-card-caption,.kg-file-card-small .kg-file-card-metadata,.kg-file-card-title{font-size:calc(1.38vw * var(--scale))}.kg-file-card-filesize,.kg-file-card-metadata{font-size:calc(1.1vw * var(--scale))}.kg-product-card h4.kg-product-card-title{font-size:calc(1.25vw * var(--scale))}.kg-product-card .kg-product-card-description ol,.kg-product-card .kg-product-card-description p,.kg-product-card .kg-product-card-description ul,.kg-product-card a.kg-product-card-button{font-size:calc(1.1vw * var(--scale))}.kg-signup-card h3.kg-signup-card-subheading{font-size:calc(1.39vw * var(--scale))}.kg-signup-card.kg-width-full h3.kg-signup-card-subheading:not(.kg-layout-split h3.kg-signup-card-subheading){max-width:calc(50vw * var(--scale))}.kg-signup-card h3.kg-signup-card-subheading{max-width:calc(50vw * var(--scale))}.kg-signup-card.kg-width-wide h3.kg-signup-card-subheading{font-size:calc(1.39vw * var(--scale))}.kg-layout-split .kg-signup-card-fields,.kg-signup-card-fields,.kg-width-full .kg-signup-card-fields,.kg-width-wide .kg-signup-card-fields{max-width:calc(40vw * var(--scale))}.kg-signup-card-input{font-size:calc(1.25vw * var(--scale))}.kg-signup-card-button{font-size:calc(1.25vw * var(--scale));padding-left:calc(1.53vw * var(--scale));padding-right:calc(1.53vw * var(--scale))}.kg-signup-card-form.success .kg-signup-card-success{font-size:calc(1.39vw * var(--scale))}.kg-signup-card-disclaimer{font-size:calc(1.11vw * var(--scale))}}@media (min-width:1920px){.kg-width-full .kg-signup-card-text{padding:9.6vmax 20vw}.kg-layout-split .kg-signup-card-text{padding:9.6vmax 4vw}}@media (max-width:991px){.kg-blockquote-alt{font-size:32px}.fading-content>*,.post-content>*{margin-bottom:17px}blockquote{padding-left:0;padding-top:6px;padding-bottom:6px;font-size:32px}.post-content ol li ol,.post-content ul li ul{padding-top:8px}.post-content ol li ol li,.post-content ul li ul li{margin-bottom:8px}.post-content ol li,.post-content ul li{margin-bottom:12px}th{padding:14px;font-size:19px}td{font-size:18px;padding:14px}.kg-gallery-card,.kg-image-card{--gap:14px}.kg-bookmark-content{padding:14px}.kg-bookmark-title{font-size:18px}.kg-bookmark-description{font-size:18px;margin-top:10px}.kg-bookmark-metadata{margin-top:10px;font-size:18px}.kg-bookmark-icon{width:20px;height:20px;margin-right:6px}.kg-callout-card{padding:12px 16px}.kg-callout-card div.kg-callout-emoji{padding-right:10px;font-size:18px}.kg-callout-card div.kg-callout-text{font-size:18px}.kg-callout-card+.kg-callout-card{margin-top:10px}.kg-video-large-play-icon{width:50px;height:50px;padding:0}.kg-video-large-play-icon svg{width:14px}.kg-video-player-container{height:56px}.kg-video-player{padding:14px}.kg-video-current-time{min-width:40px;font-size:14px}.kg-video-time{font-size:14px}.kg-video-playback-rate{font-size:14px}.kg-video-mute-icon svg,.kg-video-unmute-icon svg{width:16px;height:16px;fill:#fff}.kg-video-volume-slider{width:56px}.kg-audio-card{min-height:67px}.post-content .kg-audio-thumbnail{width:98px;min-width:98px;margin:7px}.kg-audio-title{padding:14px;font-size:18px}.kg-audio-player{padding:14px}.kg-audio-current-time{min-width:38px;font-size:14px}.kg-audio-time{width:39px;font-size:14px}.kg-audio-playback-rate{min-width:26px;font-size:14px}.kg-audio-volume-slider{width:56px}.kg-audio-thumbnail.placeholder svg{scale:1}.kg-file-card a.kg-file-card-container{padding:14px;min-height:64px}.kg-file-card-title{font-size:18px}.kg-file-card-caption{font-size:18px}.kg-file-card-metadata{font-size:14px}.kg-file-card-filesize{font-size:14px}.kg-file-card-icon{width:68px;min-width:68px;min-height:68px}.kg-file-card-icon svg{width:28px;height:28px}.kg-file-card-medium a.kg-file-card-container{min-height:50px}.kg-file-card-small a.kg-file-card-container{min-height:36px}.kg-file-card-small .kg-file-card-metadata{font-size:18px}.kg-file-card-small .kg-file-card-icon svg{width:14px;height:14px}.kg-file-card+.kg-file-card{margin-top:12px}.kg-product-card-container{grid-row-gap:12px;max-width:380px;padding:14px}.kg-product-card h4.kg-product-card-title{font-size:18px}.kg-product-card .kg-product-card-description ol,.kg-product-card .kg-product-card-description p,.kg-product-card .kg-product-card-description ul{font-size:14px}.kg-product-card .kg-product-card-description ol,.kg-product-card .kg-product-card-description p:not(:first-of-type),.kg-product-card .kg-product-card-description ul{margin-top:10px}.kg-product-card-rating-star{height:22px;width:16px}.kg-product-card-rating-star svg{width:13px;height:13px}.kg-product-card a.kg-product-card-button{font-size:14px;padding:13px 19px}.kg-header-card.kg-size-large,.kg-header-card.kg-size-medium,.kg-header-card.kg-size-small{border-radius:10px!important}.kg-header-card{padding:12vmin 40px}.kg-header-card.kg-size-small{padding-top:14vmin;padding-bottom:14vmin}.kg-header-card.kg-size-large{padding-top:18vmin;padding-bottom:18vmin}.kg-header-card h2.kg-header-card-header{font-size:42px}.kg-header-card h2.kg-header-card-header strong{font-weight:800}.kg-header-card.kg-size-small h2.kg-header-card-header{font-size:38px}.kg-header-card.kg-size-large h2.kg-header-card-header{font-size:46px}.kg-header-card h3.kg-header-card-subheader{font-size:20px;max-width:400px}.kg-header-card h2+h3.kg-header-card-subheader{margin:15px 0 0}.kg-header-card h2+a.kg-header-card-button,.kg-header-card h3+a.kg-header-card-button{margin:20px 0 0}.kg-header-card.kg-size-large h2+a.kg-header-card-button,.kg-header-card.kg-size-large h3+a.kg-header-card-button{margin-top:20px}.kg-header-card.kg-size-small h2+a.kg-header-card-button,.kg-header-card.kg-size-small h3+a.kg-header-card-button{margin-top:20px}.kg-layout-split .kg-header-card-content{grid-template-columns:1fr}.kg-width-wide .kg-header-card-text{padding:min(6.4vmax,120px) min(4vmax,80px)}.kg-header-card h2.kg-header-card-heading,.kg-signup-card h2.kg-signup-card-heading,.kg-signup-card.kg-width-full.kg-layout-split h2.kg-signup-card-heading{font-size:clamp(3rem,4vw,3.6rem)}.kg-width-full .kg-header-card-text{padding-left:30px;padding-right:30px}picture{display:flex}.kg-layout-split.kg-content-wide .kg-header-card-text,.kg-layout-split.kg-content-wide.kg-swapped .kg-header-card-text{padding:min(9.6vmax,180px) 30px}.kg-header-card.kg-width-full .kg-header-card-subheading:not(.kg-layout-split .kg-header-card-subheading){max-width:unset}.kg-header-card-content .kg-header-card-image:not(.kg-content-wide .kg-header-card-content .kg-header-card-image){height:100%;min-height:unset;aspect-ratio:unset}.kg-content-wide .kg-header-card-content .kg-header-card-image{padding:2.4rem 0 0}.kg-content-wide.kg-swapped .kg-header-card-content .kg-header-card-image{padding:0 0 2.4rem}.kg-header-card-button{font-size:16px}.kg-header-card .kg-header-card-subheading{font-size:20px!important;line-height:160%!important}.kg-layout-split .kg-signup-card-content{grid-template-columns:1fr}.kg-signup-card-content .kg-signup-card-image:not(.kg-content-wide .kg-signup-card-content .kg-signup-card-image){height:100%;min-height:unset;aspect-ratio:unset}.kg-signup-card-text,.kg-width-full .kg-signup-card-text,.kg-width-wide .kg-signup-card-text{padding:6.4vmax 2.5vmax}.kg-layout-split.kg-content-wide .kg-signup-card-text{padding:6.4vmax 0 6.4vmax 4vmax}.kg-layout-split.kg-content-wide.kg-swapped .kg-signup-card-text{padding:6.4vmax 4vmax 6.4vmax 0}.kg-signup-card.kg-width-regular{width:100%}.kg-content-wide .kg-signup-card-content .kg-signup-card-image{padding:80px 0}.kg-signup-card-subheading{margin:22px 0 0}.kg-signup-card-button{padding:0 18px}.kg-signup-card h2+h3.kg-signup-card-subheading{margin:14px 0 0}.kg-layout-split .kg-signup-card-fields,.kg-signup-card-fields,.kg-signup-card.kg-width-full h3.kg-signup-card-subheading:not(.kg-layout-split h3.kg-signup-card-subheading),.kg-width-full .kg-signup-card-fields,.kg-width-wide .kg-signup-card-fields{max-width:80%}.kg-signup-card h2+.kg-signup-card-button,.kg-signup-card h3+.kg-signup-card-button{margin:15px 0 0}.kg-signup-card.kg-width-wide h2+.kg-signup-card-button,.kg-signup-card.kg-width-wide h3+.kg-signup-card-button{margin-top:17px}.kg-signup-card.kg-width-full h2+.kg-signup-card-button,.kg-signup-card.kg-width-full h3+.kg-signup-card-button{margin-top:20px}.kg-signup-card-form.error .kg-signup-card-error{bottom:-28px}}@media (max-width:479px){.kg-blockquote-alt{font-size:24px}.fading-content>*,.post-content>*{margin-bottom:16px}blockquote{padding-left:0;padding-top:6px;padding-bottom:6px;font-size:24px}.post-content ol li ol,.post-content ul li ul{padding-top:6px}.post-content ol li ol li,.post-content ul li ul li{margin-bottom:6px;font-size:14px}.post-content ol li,.post-content ul li{margin-bottom:10px;font-size:16px}th{padding:12px;font-size:17px}td{font-size:16px;padding:12px}.kg-gallery-card,.kg-image-card{--gap:12px}.kg-bookmark-title{font-size:16px}.kg-bookmark-description{font-size:16px}.kg-bookmark-metadata{font-size:16px}.kg-bookmark-icon{width:18px;height:18px}.kg-callout-card div.kg-callout-emoji{font-size:16px}.kg-callout-card div.kg-callout-text{font-size:16px}.kg-video-current-time{min-width:38px;font-size:13px}.kg-video-time{font-size:13px}.kg-video-playback-rate{font-size:13px}.kg-audio-card{min-height:67px}.post-content .kg-audio-thumbnail{width:84px;min-width:84px;margin:7px}.kg-audio-title{font-size:16px}.kg-audio-current-time{min-width:36px;font-size:13px}.kg-audio-time{width:36px;font-size:13px}.kg-audio-playback-rate{min-width:26px;font-size:13px}.kg-file-card-title{font-size:16px}.kg-file-card-caption{font-size:16px}.kg-file-card-metadata{font-size:13px}.kg-file-card-filesize{font-size:13px}.kg-file-card-small .kg-file-card-metadata{font-size:16px}.kg-header-card{padding:10vmin 32px}.kg-header-card.kg-size-small{padding-top:12vmin;padding-bottom:12vmin}.kg-header-card.kg-size-large{padding-top:15vmin;padding-bottom:15vmin}.kg-header-card h2.kg-header-card-header{font-size:30px}.kg-header-card.kg-size-small h2.kg-header-card-header{font-size:28px}.kg-header-card.kg-size-large h2.kg-header-card-header{font-size:32px}.kg-header-card h3.kg-header-card-subheader{font-size:18px}.kg-header-card h2.kg-header-card-heading,.kg-header-card.kg-width-full h2.kg-header-card-heading,.kg-header-card.kg-width-full.kg-layout-split h2.kg-header-card-heading,.kg-header-card.kg-width-wide h2.kg-header-card-heading,.kg-signup-card h2.kg-signup-card-heading,.kg-signup-card.kg-width-full.kg-layout-split h2.kg-signup-card-heading{font-size:clamp(2.6rem,5vw,4.8rem)}.kg-width-full .kg-header-card-text{padding-left:18px;padding-right:18px}.kg-layout-split.kg-content-wide .kg-header-card-text,.kg-layout-split.kg-content-wide.kg-swapped .kg-header-card-text{padding:min(9.6vmax,180px) 18px}.kg-header-card .kg-header-card-subheading{font-size:18px!important}.kg-width-full .kg-signup-card-text{padding:6.4vmax 18px}.kg-content-wide .kg-signup-card-content .kg-signup-card-image{padding:60px 0}.kg-signup-card h3.kg-signup-card-subheading{font-size:18px}.kg-signup-card.kg-width-wide h3.kg-signup-card-subheading{font-size:18px}.kg-layout-split .kg-signup-card-fields,.kg-signup-card-fields,.kg-signup-card.kg-width-full h3.kg-signup-card-subheading:not(.kg-layout-split h3.kg-signup-card-subheading),.kg-width-full .kg-signup-card-fields,.kg-width-wide .kg-signup-card-fields{max-width:100%}.kg-signup-card-input{font-size:16px}.kg-signup-card-button{padding:0 16px;font-size:16px}.kg-signup-card-form.success .kg-signup-card-success{font-size:18px}.kg-signup-card-disclaimer{font-size:14px}}
/* ── SHARE BLOCK (article share row) ──────────────────────────
   Rebuilt as valid, self-contained CSS (the previous version was an
   orphaned rule-set left over from a removed feature, and had gotten
   wrapped in an invalid nested <style> tag in the page head — both
   fixed here). Icons are single-color (currentColor / --text-color),
   matching the same shape/sizing as the navbar and footer social
   icons rather than per-platform brand colors. */
.share-block {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--border, rgba(128,128,128,.2));
}
.share-block-label {
  font-family: var(--font2);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-color);
  opacity: .7;
}
.share-block .social {
  color: var(--text-color);
}
.share-block .social-inner {
  width: 20px;
  min-width: 20px;
}
.share-block .social-inner svg,
.share-block .social-inner img {
  fill: var(--text-color);
  color: var(--text-color);
}
@media (max-width: 479px) {
  .share-block { gap: 14px; flex-wrap: wrap; }
}

/* ===== post-nav.css ===== */
/* ============================================================
   post-nav.css — v5.1.1
   Post-to-post navigation component.
   Mobile: prev/next with arrow buttons, full-width cards.
   Desktop (992px+): 4-up card grid.
   ============================================================ */

/* ── SECTION WRAPPER ──────────────────────────────────────── */
.post-nav-section {
  width: 100%;
  padding: 0 5% 0;
  box-sizing: border-box;
  margin-top: 0;
  border-top: 1px solid color-mix(in srgb, var(--text-color) 18%, transparent);
  padding-top: 28px;
  padding-bottom: 28px;
}

/* ── SECTION HEADER ───────────────────────────────────────── */
.post-nav-header {
  margin-bottom: 20px;
}

.post-nav-label {
  font-family: var(--font2);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .7;
  line-height: 1;
}

/* ── MOBILE NAV ───────────────────────────────────────────── */
.post-nav-mobile { display: block; }
.post-nav-desktop { display: none; }

.post-nav-mobile-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

/* Arrow buttons */
.post-nav-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--text-color) 30%, transparent);
  color: var(--text-color);
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, opacity .2s ease;
  background: none;
  cursor: pointer;
}

.post-nav-arrow:hover {
  background-color: var(--text-color);
  color: var(--background-color);
  border-color: var(--text-color);
}

.post-nav-arrow--disabled {
  opacity: .25;
  pointer-events: none;
  cursor: default;
}

.post-nav-arrow svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* Mobile card container */
.post-nav-mobile-cards {
  flex: 1;
  min-width: 0;
}

.post-nav-mobile-cards--two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

/* ── POST NAV CARD (shared) ───────────────────────────────── */
.post-nav-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: var(--text-color);
}

.post-nav-card-image-link {
  display: block;
  text-decoration: none;
  overflow: hidden;
  border-radius: 2px;
}

.post-nav-card-image-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  display: block;
}

.post-nav-card-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: filter .3s ease;
}

.post-nav-card-image-link:hover .post-nav-card-image-wrapper img {
  filter: brightness(.85);
}

.post-nav-card-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.post-nav-card-direction {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font2);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .65;
  line-height: 1;
}

.post-nav-card-direction--tag {
  color: var(--brand-g3, #9B4DB8);
  opacity: 1;
  font-weight: 700;
}

.post-nav-dir-icon {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

.post-nav-card-title {
  font-family: var(--font2);
  font-size: clamp(0.88rem, 3.5vw, 1rem);
  font-weight: 700;
  line-height: 1.28;
  margin: 0;
  letter-spacing: -.01em;
}

.post-nav-card-title a {
  color: var(--text-color);
  text-decoration: none;
  transition: opacity .2s ease;
}

.post-nav-card-title a:hover { opacity: .72; }

/* ── DESKTOP NAV ──────────────────────────────────────────── */
@media (min-width: 992px) {
  .post-nav-mobile { display: none; }
  .post-nav-desktop { display: block; }

  .post-nav-section {
    padding-left: 36px;
    padding-right: 36px;
    padding-top: 36px;
    padding-bottom: 36px;
    max-width: 1580px;
    margin-left: auto;
    margin-right: auto;
  }

  .post-nav-desktop-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    align-items: start;
  }

  .post-nav-card--desktop {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .post-nav-card-title {
    font-size: clamp(0.95rem, 1.2vw, 1.15rem);
    line-height: 1.3;
  }

  /* Curated cards get a subtle left accent */
  .post-nav-card--curated .post-nav-card-content {
    padding-left: 12px;
    border-left: 2px solid var(--brand-g3, #9B4DB8);
  }
}

/* ── LARGE DESKTOP (1440px+) ──────────────────────────────── */
@media (min-width: 1440px) {
  .post-nav-section {
    padding-left: calc(2.5vw * var(--scale));
    padding-right: calc(2.5vw * var(--scale));
  }

  .post-nav-desktop-grid { gap: calc(1.95vw * var(--scale)); }

  .post-nav-card-title { font-size: calc(1.04vw * var(--scale)); }
}

/* ── DARK MODE ────────────────────────────────────────────── */
html[data-theme=dark] .post-nav-section {
  border-top-color: var(--border);
}

html[data-theme=dark] .post-nav-arrow {
  border-color: var(--border);
}

/* ── REDUCED MOTION ───────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .post-nav-card-image-wrapper img,
  .post-nav-arrow { transition: none; }
}

/* ===== post-tag-list.css ===== */
/* post-tag-list.css — v6.0.0.A — brand-gradient border on first two tag pills.
   Hardcoded hex stops ensure the gradient is always visible regardless of
   CSS variable resolution order or Ghost custom-colour injection timing.

   v6.0.0.A: added a 45% black scrim under the white hover-state text
   (WCAG AAA contrast audit). White text sat directly on raw gradient
   stops before, and the pink/blue ends of the gradient (#F545A2,
   #5E9DBA) fell to ~3:1 against white — failing even AA (4.5:1), let
   alone AAA (7:1). The scrim keeps every stop at 6.9:1+ (AAA) while
   still showing the brand hue through it. */

/* ── Container ─────────────────────────────────────────────────────────────── */
.post-tag-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:12px 0 16px}

/* ── Base pill ─────────────────────────────────────────────────────────────── */
.post-tag-pill{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background .25s ease,color .25s ease,border-color .25s ease,opacity .2s ease,transform .2s ease,box-shadow .25s ease}

/* ── Primary pill — gradient border (first two tags) ───────────────────────── */
/* Dark mode default: fill = #111111, border = brand gradient */
.post-tag-pill--primary{font-family:var(--font1,'Noto Serif',sans-serif);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-color,#f0ece4);padding:7px 16px;border-radius:999px;border:2px solid transparent;background:linear-gradient(#111111,#111111) padding-box,linear-gradient(135deg,#F545A2 0%,#CF2E84 30%,#9B4DB8 65%,#5E9DBA 100%) border-box;box-shadow:0 2px 12px rgba(245,69,162,.18)}

.post-tag-pill--primary:hover,.post-tag-pill--primary:focus-visible{background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)) padding-box,linear-gradient(135deg,#F545A2 0%,#CF2E84 30%,#9B4DB8 65%,#5E9DBA 100%) border-box,linear-gradient(135deg,#F545A2 0%,#CF2E84 30%,#9B4DB8 65%,#5E9DBA 100%) border-box;color:#fff;-webkit-text-fill-color:#fff;transform:translateY(-1px);box-shadow:0 4px 18px rgba(245,69,162,.32)}

/* Light mode: fill = #f5f3ef */
html[data-theme=light] .post-tag-pill--primary{color:var(--text-color,#111);background:linear-gradient(#f5f3ef,#f5f3ef) padding-box,linear-gradient(135deg,#F545A2 0%,#CF2E84 30%,#9B4DB8 65%,#5E9DBA 100%) border-box;box-shadow:0 2px 12px rgba(245,69,162,.14)}

html[data-theme=light] .post-tag-pill--primary:hover,html[data-theme=light] .post-tag-pill--primary:focus-visible{background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)) padding-box,linear-gradient(135deg,#F545A2 0%,#CF2E84 30%,#9B4DB8 65%,#5E9DBA 100%) border-box,linear-gradient(135deg,#F545A2 0%,#CF2E84 30%,#9B4DB8 65%,#5E9DBA 100%) border-box;color:#fff;-webkit-text-fill-color:#fff}

/* ── Secondary pill — muted border (remaining tags) ────────────────────────── */
.post-tag-pill--secondary{font-family:var(--font1,'Noto Serif',sans-serif);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-color,#f0ece4);opacity:.55;padding:5px 11px;border-radius:999px;border:1px solid var(--border,rgba(255,255,255,.15));background:0 0}

.post-tag-pill--secondary:hover,.post-tag-pill--secondary:focus-visible{opacity:1;border-color:#F545A2;background:rgba(245,69,162,.08);transform:translateY(-1px)}

html[data-theme=light] .post-tag-pill--secondary{color:var(--text-color,#111);border-color:var(--border,rgba(0,0,0,.15))}

/* ── Satire context ─────────────────────────────────────────────────────────── */
.post--satire .post-tag-pill--primary,.theme-satire .post-tag-pill--primary{background:linear-gradient(#111,#111) padding-box,linear-gradient(90deg,#f545a2,#cf2e84,#9b4db8,#5e9dba) border-box;color:var(--satire-text,#fff6cc)}

.post--satire .post-tag-pill--secondary,.theme-satire .post-tag-pill--secondary{color:var(--satire-text,#fff6cc);border-color:rgba(255,214,10,.42)}

/* ── Responsive ─────────────────────────────────────────────────────────────── */
@media (min-width:1439px){.post-tag-pill--primary{font-size:calc(.9vw * var(--scale,1));padding:calc(.42vw * var(--scale,1)) calc(1vw * var(--scale,1))}.post-tag-pill--secondary{font-size:calc(.72vw * var(--scale,1));padding:calc(.28vw * var(--scale,1)) calc(.76vw * var(--scale,1))}}

@media (max-width:991px){.post-tag-list{gap:6px 8px;padding:10px 0 14px}.post-tag-pill--primary{font-size:12px;padding:6px 13px}.post-tag-pill--secondary{font-size:10px;padding:4px 9px}}

@media (max-width:479px){.post-tag-pill--primary{font-size:11px;padding:5px 11px}.post-tag-pill--secondary{font-size:9px;padding:4px 8px}}

/* ===== blockquote.css ===== */
blockquote{position:relative;border-left:none!important;padding-left:1.6em!important;padding-top:.25em!important;padding-bottom:.25em!important;padding-right:.5em;margin-left:0;margin-right:0;margin-top:1.6em;margin-bottom:1.6em;background:rgba(245,69,162,.06);border-radius:0 4px 4px 0;font-family:var(--font2,'Caudex-Italic',serif);font-style:italic;font-size:20px;line-height:148%!important;color:var(--text-color);box-shadow:inset -2px 0 0 rgba(94,157,186,.25)}blockquote::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:2px 0 0 2px;background:linear-gradient(180deg,#f545a2 0,#cf2e84 35%,#9b4db8 68%,#5e9dba 100%)}blockquote::after{content:'\201C';position:absolute;top:-.15em;right:0;font-family:var(--font4,'Chomsky',serif);font-size:1.08rem;line-height:1;color:rgba(245,69,162,.18);pointer-events:none;user-select:none}blockquote p{font-family:inherit!important;font-style:inherit!important;font-size:inherit!important;line-height:inherit!important;color:inherit!important;margin:0}.kg-blockquote-alt{border-left:none!important;padding-left:0!important;text-align:center;font-size:22px;font-style:italic;font-family:var(--font2,serif);color:var(--text-color);position:relative;padding-top:1.2em;padding-bottom:1.2em;margin-top:1.8em;margin-bottom:1.8em;background:0 0;box-shadow:none}.kg-blockquote-alt::before{content:'';position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(90deg,#f545a2 0,#cf2e84 35%,#9b4db8 68%,#5e9dba 100%);border-radius:1px}.kg-blockquote-alt::after{content:'';position:absolute;bottom:0;left:10%;right:10%;height:2px;background:linear-gradient(90deg,#5e9dba 0,#9b4db8 32%,#cf2e84 65%,#f545a2 100%);border-radius:1px}html[data-theme=light] blockquote{background:rgba(245,69,162,.04);box-shadow:inset -2px 0 0 rgba(94,157,186,.18);color:var(--text-color)}html[data-theme=light] blockquote::after{color:rgba(245,69,162,.12)}.theme-satire blockquote{background:rgba(245,69,162,.1);color:var(--satire-body)}.theme-satire blockquote p{color:var(--satire-body)!important}@media (min-width:1439px){blockquote{font-size:calc(1.4vw * var(--scale))}.kg-blockquote-alt{font-size:calc(1.55vw * var(--scale))}}@media (max-width:991px){blockquote{font-size:18px;padding-left:1.4em!important;margin-top:1.3em;margin-bottom:1.3em}.kg-blockquote-alt{font-size:20px}.kg-blockquote-alt::after,.kg-blockquote-alt::before{left:5%;right:5%}}@media (max-width:479px){blockquote{font-size:16px;padding-left:1.2em!important;padding-top:.45em!important;padding-bottom:.45em!important;margin-top:1.1em;margin-bottom:1.1em}blockquote::after{font-size:3em;right:.3em}.kg-blockquote-alt{font-size:17px}.kg-blockquote-alt::after,.kg-blockquote-alt::before{left:0;right:0}}

/* ===== post-authors.css ===== */
.post-authors{display:flex;align-items:center}.post-author-images{display:flex}.post-author-image{display:flex;justify-content:center;align-items:center;min-width:53px;width:53px;height:53px;border-radius:100%;border:1px solid var(--text-color);overflow:hidden;background-color:var(--background-color);transition:opacity .2s ease,transform .2s ease,color .2s ease,background-color .2s ease,border-color .2s ease;transform:translateY(0)}.post-author-image:hover{transform:translateY(-4%);filter:grayscale(.8);background:rgba(245,69,162,.31);background:-webkit-linear-gradient(45deg,rgba(245,69,162,.4) 0,rgba(207,46,132,.4) 45%,rgba(95,16,108,.4) 72%,rgba(94,157,186,.4) 91%);background:-moz-linear-gradient(45deg,rgba(245,69,162,.4) 0,rgba(207,46,132,.4) 45%,rgba(95,16,108,.4) 72%,rgba(94,157,186,.4) 91%);background:linear-gradient(45deg,rgba(245,69,162,.4) 0,rgba(207,46,132,.4) 45%,rgba(95,16,108,.4) 72%,rgba(94,157,186,.4) 91%)}.post-author-image{margin-left:-30px}.post-author-image:first-of-type{margin-left:0;z-index:5}.post-author-image:nth-child(2){z-index:4}.post-author-image:nth-child(3){z-index:3}.post-author-image:nth-child(4){z-index:2}.post-author-image:nth-child(5){z-index:1}.post-author-image:last-of-type{margin-right:15px}.post-authors-text{display:flex;flex-direction:column;gap:3px;width:100%}.post-authors-inner{display:flex}.post-author-name{font-size:14px;line-height:150%;font-weight:600}.post-author-name a{display:inline-flex}.post-author-name a:hover{text-decoration:underline}.date-small-text{display:flex;align-items:center;line-height:140%;white-space:nowrap;padding-right:2px}.author-avatar-wrapper{display:flex;align-items:center;justify-content:center;min-width:25px;width:25px;height:25px}@media (min-width:1439px){.post-author-image{min-width:calc(3.7vw * var(--scale));width:calc(3.7vw * var(--scale));height:calc(3.7vw * var(--scale))}.post-author-name{font-size:calc(1.05vw * var(--scale))}.post-author-image{margin-left:calc(-2vw * var(--scale))}.post-authors-text{row-gap:calc(.3vw * var(--scale))}.post-author-image:last-of-type{margin-right:calc(1.1vw * var(--scale))}.author-avatar-wrapper{min-width:calc(1.73vw * var(--scale));width:calc(1.73vw * var(--scale));height:calc(1.73vw * var(--scale))}}@media (max-width:991px){.post-authors{margin-top:28px}}@media (max-width:479px){.post-authors{margin-top:24px}}

/* ===== footer.css ===== */
/* ============================================================
   footer.css — v5.0.0
   Mobile-first footer: stacked single-column on mobile,
   multi-column brand layout at desktop.
   ============================================================ */

/* ── FOOTER DIVIDER ───────────────────────────────────────────
   A dedicated, always-present boundary line that renders above the
   footer on every page including this partial. Independent of the
   footer's own border-top so the divider can never be swallowed by
   margin collapsing or a page-specific override. */
.site-footer-divider {
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--border-color, var(--text-color));
  opacity: .5;
}

html[data-theme=light] .site-footer-divider {
  background-color: var(--border, #d8d5cd);
  opacity: 1;
}

/* ── FOOTER SHELL ─────────────────────────────────────────── */
.site-footer,
custom-footer {
  display: block;
  background-color: var(--background-color);
  border-top: 1px solid var(--text-color);
  padding-top: 32px;
  padding-bottom: 32px;
  font-family: var(--font1);
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-color);
}

html[data-theme=light] .site-footer,
html[data-theme=light] custom-footer {
  background-color: #eceae6;
  border-top-color: var(--border);
}

/* ── FOOTER NAVIGATION SHELL: meta copy + social icons ────── */
.footer-navigation-shell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

/* Footer social icons reuse the exact .social / .social-inner markup and
   sizing from navbar.css, but the footer isn't inside the header's
   --nav-text scope, so recolour them to follow the footer's own
   --text-color instead (still a single, theme-aware color, still
   currentColor inside the icon SVGs). */
.footer-social-icons {
  display: flex;
  align-items: center;
  gap: 18px;
  color: var(--text-color);
}
.footer-social-icons .social { color: var(--text-color); }
.footer-social-icons .social-inner svg,
.footer-social-icons .social-inner img {
  fill: var(--text-color);
  color: var(--text-color);
}

/* ── FOOTER INNER ─────────────────────────────────────────── */
.footer-inner {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* ── FOOTER TOP: logo + tagline ───────────────────────────── */
.footer-top {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.footer-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.footer-logo-image {
  height: calc(36px * var(--logo-scale,1));
  width: auto;
  display: block;
}

.footer-logo-text {
  font-family: var(--font4);
  font-size: clamp(28px,6vw,38px);
  line-height: .85;
  letter-spacing: -.02em;
  color: var(--text-color);
}

.footer-tagline {
  font-family: var(--font1);
  font-size: 13px;
  line-height: 1.55;
  opacity: .72;
  max-width: 380px;
}

/* ── FOOTER NAV ───────────────────────────────────────────── */
.footer-nav {
  display: flex;
  flex-direction: column;
  gap: 20px;
  border-top: 1px solid var(--border, rgba(128,128,128,.2));
  padding-top: 20px;
}

.footer-nav-section { display: flex; flex-direction: column; gap: 8px; }

.footer-nav-heading {
  font-family: var(--font2);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .55;
  margin-bottom: 4px;
}

.footer-nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-nav-link {
  font-family: var(--font2);
  font-size: 15px;
  line-height: 1.4;
  color: var(--text-color);
  text-decoration: none;
  opacity: .85;
  transition: opacity .2s ease;
}

.footer-nav-link:hover { opacity: 1; }

/* ── FOOTER SUBSCRIBE ─────────────────────────────────────── */
.footer-subscribe {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 18px;
  background: var(--surface, rgba(128,128,128,.06));
  border: 1px solid var(--border, rgba(128,128,128,.15));
  border-radius: 4px;
}

.footer-subscribe-heading {
  font-family: var(--font2);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
}

.footer-subscribe-text {
  font-family: var(--font1);
  font-size: 13px;
  line-height: 1.5;
  opacity: .75;
}

.footer-subscribe-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.footer-subscribe-input {
  width: 100%;
  padding: 10px 14px;
  font-family: var(--font1);
  font-size: 14px;
  border: 1px solid var(--border, rgba(128,128,128,.3));
  background: var(--background-color);
  color: var(--text-color);
  border-radius: 3px;
  outline: 0;
  transition: border-color .2s ease;
}

.footer-subscribe-input:focus { border-color: var(--brand-g1, #F545A2); }

.footer-subscribe-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 22px;
  font-family: var(--font2);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--button-text-color, #fff);
  background: var(--brand-gradient);
  border: none;
  border-radius: var(--radius-pill);
  cursor: pointer;
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);
  box-shadow: var(--shadow-brand);
}

.footer-subscribe-button:hover { transform: translateY(-1px); color: var(--button-text-color-hover, #f2f0e8); }

/* ── FOOTER SOCIALS ───────────────────────────────────────── */
.footer-socials {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.footer-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: .75;
  transition: opacity .2s ease, transform .2s ease;
}

.footer-social-link:hover { opacity: 1; transform: translateY(-2px); }

.footer-social-icon {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ── FOOTER BOTTOM: copyright + legal ────────────────────── */
.footer-bottom {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-top: 1px solid var(--border, rgba(128,128,128,.15));
  padding-top: 20px;
  font-family: var(--font1);
  font-size: 12px;
  line-height: 1.5;
  opacity: .65;
}

.footer-copyright { opacity: 1; }

.footer-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-legal-link {
  font-size: 12px;
  color: var(--text-color);
  text-decoration: none;
  opacity: .8;
  transition: opacity .2s ease;
}

.footer-legal-link:hover { opacity: 1; }

/* ── TABLET (768px+) ──────────────────────────────────────── */
@media (min-width: 768px) {
  .site-footer { padding-top: 40px; padding-bottom: 40px; }

  .footer-inner { gap: 32px; }

  .footer-top {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .footer-nav {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px 40px;
  }

  .footer-subscribe-form { flex-direction: row; }
  .footer-subscribe-input { flex: 1; }
  .footer-subscribe-button { white-space: nowrap; }

  .footer-bottom {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

/* ── DESKTOP (992px+) — full brand footer ─────────────────── */
@media (min-width: 992px) {
  .site-footer { padding-top: 48px; padding-bottom: 48px; }

  .footer-inner { gap: 36px; }

  .footer-logo-image { height: calc(48px * var(--logo-scale,1)); }
  .footer-logo-text { font-size: 42px; }

  .footer-nav { gap: 24px 56px; }
  .footer-nav-link { font-size: 16px; }

  .footer-subscribe { padding: 24px 24px; }
  .footer-subscribe-heading { font-size: 18px; }
}

/* ===== accessibility.css ===== */
/* ============================================================
   accessibility.css — v5.0.0
   Full accessibility widget: FAB button, slide-in panel,
   all toggle rows, text-size controls, and body-level
   modifier classes applied by accessibility.js.
   ============================================================ */

/* ── FAB TRIGGER BUTTON ───────────────────────────────────── */
#a11y-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 10001;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--brand-gradient-45, linear-gradient(45deg,#F545A2 0%,#CF2E84 38%,#9B4DB8 68%,#5E9DBA 100%));
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px rgba(0,0,0,.32), 0 0 0 0 rgba(245,69,162,.35);
  transition: transform .22s ease, box-shadow .22s ease, opacity .22s ease;
  outline: 0;
  padding: 0;
}

#a11y-fab svg {
  width: 26px;
  height: 26px;
  fill: #fff;
  pointer-events: none;
  flex-shrink: 0;
}

#a11y-fab:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 24px rgba(0,0,0,.38), 0 0 0 6px rgba(245,69,162,.18);
}

#a11y-fab:focus-visible {
  outline: 3px solid var(--brand-g1,#F545A2);
  outline-offset: 3px;
}

#a11y-fab:active { transform: scale(.96); }

/* Pulse animation on first load to draw attention */
@keyframes a11y-fab-pulse {
  0%   { box-shadow: 0 4px 18px rgba(0,0,0,.32), 0 0 0 0 rgba(245,69,162,.5); }
  60%  { box-shadow: 0 4px 18px rgba(0,0,0,.32), 0 0 0 14px rgba(245,69,162,.0); }
  100% { box-shadow: 0 4px 18px rgba(0,0,0,.32), 0 0 0 0 rgba(245,69,162,.0); }
}

#a11y-fab.a11y-fab--pulse {
  animation: a11y-fab-pulse 1.8s ease 1.2s 2;
}

/* Mobile: slightly smaller */
@media (max-width: 479px) {
  #a11y-fab { width: 46px; height: 46px; bottom: 18px; right: 18px; }
  #a11y-fab svg { width: 22px; height: 22px; }
}

/* ── PANEL OVERLAY ────────────────────────────────────────── */
#a11y-panel {
  position: fixed;
  bottom: 88px;
  right: 24px;
  z-index: 10000;
  width: 320px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  background-color: var(--background-color);
  border: 1px solid var(--text-color);
  box-shadow: 0 12px 40px rgba(0,0,0,.28);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  /* Hidden by default */
  opacity: 0;
  transform: translateY(10px) scale(.97);
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}

#a11y-panel[aria-hidden=false],
#a11y-panel.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* Mobile: full-width bottom sheet */
@media (max-width: 479px) {
  #a11y-panel {
    bottom: 0;
    right: 0;
    left: 0;
    width: 100%;
    max-width: 100%;
    max-height: 80vh;
    border-radius: 16px 16px 0 0;
    border-bottom: none;
  }
}

/* ── PANEL HEADER ─────────────────────────────────────────── */
.a11y-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--border, rgba(128,128,128,.2));
  flex-shrink: 0;
  position: sticky;
  top: 0;
  background-color: var(--background-color);
  z-index: 1;
}

.a11y-panel-title {
  font-family: var(--font2);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  color: var(--text-color);
}

.a11y-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-color);
  padding: 0;
  transition: background-color .18s ease;
  outline: 0;
  flex-shrink: 0;
}

.a11y-close:hover { background-color: var(--surface, rgba(128,128,128,.1)); }
.a11y-close:focus-visible { outline: 2px solid var(--text-color); outline-offset: 2px; }

/* ── PANEL BODY ───────────────────────────────────────────── */
.a11y-panel-body {
  padding: 8px 0;
  flex: 1;
  overflow-y: auto;
}

/* ── TOGGLE ROWS ──────────────────────────────────────────── */
.a11y-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  gap: 12px;
  border-bottom: 1px solid var(--border, rgba(128,128,128,.1));
  transition: background-color .15s ease;
}

.a11y-row:last-child { border-bottom: none; }
.a11y-row:hover { background-color: var(--surface, rgba(128,128,128,.05)); }

.a11y-row-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.a11y-row-label {
  font-family: var(--font2);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text-color);
}

.a11y-row-desc {
  font-family: var(--font1);
  font-size: 11px;
  line-height: 1.4;
  color: var(--text-color);
  opacity: .65;
}

/* ── TOGGLE SWITCH ────────────────────────────────────────── */
.a11y-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
}

.a11y-toggle-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

/* Role=switch button styled as toggle */
[role=switch] {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 44px;
  height: 24px;
  border-radius: 12px;
  background-color: var(--border, rgba(128,128,128,.3));
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background-color .22s ease;
  outline: 0;
  flex-shrink: 0;
}

[role=switch]::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.22);
  transition: transform .22s ease;
}

[role=switch][aria-checked=true] {
  background: var(--brand-gradient-45, linear-gradient(45deg,#F545A2 0%,#CF2E84 38%,#9B4DB8 68%,#5E9DBA 100%));
}

[role=switch][aria-checked=true]::after {
  transform: translateX(20px);
}

[role=switch]:focus-visible {
  outline: 2px solid var(--brand-g1, #F545A2);
  outline-offset: 3px;
}

/* ── TEXT SIZE CONTROLS ───────────────────────────────────── */
.a11y-text-size-controls {
  display: flex;
  align-items: center;
  gap: 6px;
}

.a11y-size-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 8px;
  border: 1px solid var(--border, rgba(128,128,128,.3));
  background: none;
  color: var(--text-color);
  font-family: var(--font2);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 3px;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
  outline: 0;
}

.a11y-size-btn:hover {
  border-color: var(--brand-g1, #F545A2);
  background-color: var(--surface, rgba(128,128,128,.08));
}

.a11y-size-btn.active,
.a11y-size-btn[aria-pressed=true] {
  background: var(--brand-gradient-45, linear-gradient(45deg,#F545A2 0%,#CF2E84 38%,#9B4DB8 68%,#5E9DBA 100%));
  border-color: transparent;
  color: #fff;
}

.a11y-size-btn:focus-visible {
  outline: 2px solid var(--brand-g1, #F545A2);
  outline-offset: 2px;
}

/* ── PANEL FOOTER ─────────────────────────────────────────── */
.a11y-panel-footer {
  padding: 12px 18px;
  border-top: 1px solid var(--border, rgba(128,128,128,.2));
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  background-color: var(--background-color);
}

.a11y-reset-btn {
  width: 100%;
  padding: 10px 18px;
  font-family: var(--font2);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-color);
  background: none;
  border: 1px solid var(--border, rgba(128,128,128,.3));
  border-radius: 3px;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease;
  outline: 0;
}

.a11y-reset-btn:hover {
  background-color: var(--surface, rgba(128,128,128,.08));
  border-color: var(--text-color);
}

.a11y-reset-btn:focus-visible {
  outline: 2px solid var(--text-color);
  outline-offset: 2px;
}

/* ── BODY MODIFIER CLASSES (applied by accessibility.js) ──── */

/* Dyslexia-friendly font: replaces ALL font families site-wide.
   The html.a11y-dyslexia class is toggled on/off by accessibility.js.
   When the class is removed, the standard CSS custom-property font
   stack (--font1, --font2, etc.) automatically restores because
   these rules only apply when the class is present on <html>. */
html.a11y-dyslexia,
html.a11y-dyslexia body,
html.a11y-dyslexia *,
html.a11y-dyslexia *::before,
html.a11y-dyslexia *::after {
  font-family: OpenDyslexic, Arial, sans-serif !important;
}
/* Readability fine-tuning in dyslexia mode */
html.a11y-dyslexia body,
html.a11y-dyslexia p,
html.a11y-dyslexia li,
html.a11y-dyslexia td,
html.a11y-dyslexia th,
html.a11y-dyslexia blockquote,
html.a11y-dyslexia .post-content,
html.a11y-dyslexia .post-excerpt,
html.a11y-dyslexia .small-card-heading,
html.a11y-dyslexia .big-card-heading,
html.a11y-dyslexia .horizontal-card-heading,
html.a11y-dyslexia .extra-small-card-heading {
  letter-spacing: .04em !important;
  word-spacing: .12em !important;
  line-height: 1.65 !important;
}
/* Headings: tighter spacing since OpenDyslexic is wide */
html.a11y-dyslexia h1,
html.a11y-dyslexia h2,
html.a11y-dyslexia h3,
html.a11y-dyslexia h4,
html.a11y-dyslexia h5,
html.a11y-dyslexia h6,
html.a11y-dyslexia .post-title,
html.a11y-dyslexia .navbar-logo-text {
  letter-spacing: .02em !important;
  word-spacing: .08em !important;
  line-height: 1.3 !important;
}

/* Text size: large (+1 step) */
.a11y-text-lg body,
.a11y-text-lg p,
.a11y-text-lg li,
.a11y-text-lg .post-content p,
.a11y-text-lg .post-content li {
  font-size: 1.18em !important;
  line-height: 1.72 !important;
}

/* Text size: extra-large (+2 steps) */
.a11y-text-xl body,
.a11y-text-xl p,
.a11y-text-xl li,
.a11y-text-xl .post-content p,
.a11y-text-xl .post-content li {
  font-size: 1.38em !important;
  line-height: 1.8 !important;
}

/* High contrast — applied to content wrappers, NOT html/body.
   Applying CSS filter to html or body creates a new stacking context
   that breaks position:fixed on the FAB, panel, navbar overlay,
   and Ghost Portal. Scope to content elements only. */
.a11y-contrast .site-content,
.a11y-contrast .site-main,
.a11y-contrast .site-footer,
.a11y-contrast .header,
.a11y-contrast custom-header {
  filter: contrast(1.35) !important;
}
.a11y-contrast * {
  border-color: currentColor !important;
}
/* Ensure fixed-position elements are never filtered */
.a11y-contrast #a11y-fab,
.a11y-contrast #a11y-panel,
.a11y-contrast #ghost-portal-root,
.a11y-contrast .navbar-links-outer {
  filter: none !important;
}

/* Reduce motion */
.a11y-motion *,
.a11y-motion *::before,
.a11y-motion *::after {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .001ms !important;
  scroll-behavior: auto !important;
}

/* Increased line spacing */
.a11y-spacing .post-content p,
.a11y-spacing .post-content li,
.a11y-spacing p,
.a11y-spacing li {
  line-height: 2.1 !important;
  margin-bottom: 1.2em !important;
}

/* Highlight all links */
.a11y-links a:not([data-portal]):not([data-ghost-search]) {
  text-decoration: underline !important;
  text-decoration-color: var(--brand-g1, #F545A2) !important;
  text-decoration-thickness: 2px !important;
  -webkit-text-fill-color: unset !important;
  background: none !important;
  color: var(--brand-g1, #F545A2) !important;
}

/* Grayscale — applied to content wrappers, NOT html/body.
   Applying CSS filter to html or body creates a new stacking context
   that breaks position:fixed on the FAB, panel, navbar overlay,
   and Ghost Portal. Target content elements directly instead. */
.a11y-grayscale .site-content,
.a11y-grayscale .site-main,
.a11y-grayscale .site-footer,
.a11y-grayscale img,
.a11y-grayscale picture,
.a11y-grayscale video,
.a11y-grayscale canvas,
.a11y-grayscale .card,
.a11y-grayscale .post-content,
.a11y-grayscale .post-sidebar,
.a11y-grayscale .announcement-bar-wrapper {
  filter: grayscale(1) !important;
}
/* Header content: grayscaled WITHOUT putting filter on .header/custom-header
   itself. .navbar-links-outer (the mobile full-screen nav overlay) is a
   position:fixed DIRECT CHILD of custom-header. Applying `filter` to any
   ancestor of a fixed-position element creates a new containing block for
   it (per spec), silently repositioning it relative to that ancestor's box
   instead of the viewport — this is what was breaking the widget/mobile-nav
   positioning whenever grayscale mode was combined with the mobile menu.
   Fix: filter the header's own content pieces individually, and filter the
   INSIDE of the nav overlay (.navbar-links-inner), never the fixed element
   itself or any of its ancestors. */
.a11y-grayscale .navbar-logo-row,
.a11y-grayscale .navbar-links-inner {
  filter: grayscale(1) !important;
}
/* Ensure fixed-position elements — and anything that is itself a fixed
   element's ancestor — are never filtered */
.a11y-grayscale #a11y-fab,
.a11y-grayscale #a11y-panel,
.a11y-grayscale #ghost-portal-root,
.a11y-grayscale .header,
.a11y-grayscale custom-header,
.a11y-grayscale .navbar-links-outer {
  filter: none !important;
}

/* ── SKIP-TO-CONTENT LINK ─────────────────────────────────── */
.skip-to-content {
  position: absolute;
  top: -100%;
  left: 16px;
  z-index: 99999;
  padding: 10px 18px;
  background: var(--brand-gradient-45, linear-gradient(45deg,#F545A2 0%,#9B4DB8 100%));
  color: #fff !important;
  font-family: var(--font2);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 0 0 4px 4px;
  transition: top .2s ease;
  -webkit-text-fill-color: #fff !important;
}

.skip-to-content:focus {
  top: 0;
  outline: 3px solid #fff;
  outline-offset: -3px;
}

/* ===== kg-cards.css ===== */
.kg-width-wide{position:relative;width:85vw;min-width:100%;margin:auto calc(50% - 50vw);transform:translateX(calc(50vw - 50%))}.kg-width-full{position:relative;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}.kg-align-left{text-align:left}.kg-align-center{text-align:center}.kg-gallery-container{display:flex;flex-direction:column;max-width:1040px;width:100%}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center;gap:4px;margin-bottom:4px}.kg-gallery-image{flex:1 1 auto;min-width:0;overflow:hidden}.kg-gallery-image img{display:block;width:100%;height:100%;object-fit:cover}.kg-bookmark-card{width:100%;margin:0 0 1.5em}.kg-bookmark-container{display:flex;flex-direction:row;align-items:stretch;min-height:148px;border:1px solid var(--border-color,rgba(0,0,0,.15));border-radius:4px;overflow:hidden;text-decoration:none;color:inherit}.kg-bookmark-container:hover{opacity:.85}.kg-bookmark-content{display:flex;flex-direction:column;flex-grow:1;align-items:flex-start;justify-content:flex-start;padding:20px}.kg-bookmark-title{font-size:1rem;font-weight:600;line-height:1.4;margin-bottom:6px;color:var(--text-color,inherit)}.kg-bookmark-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.875rem;line-height:1.5;opacity:.75;margin-bottom:12px}.kg-bookmark-metadata{display:flex;align-items:center;gap:8px;font-size:.8125rem;opacity:.6;flex-wrap:wrap}.kg-bookmark-icon{width:20px;height:20px;object-fit:cover;flex-shrink:0}.kg-bookmark-author{font-weight:500}.kg-bookmark-publisher{opacity:.75}.kg-bookmark-thumbnail{position:relative;min-width:33%;max-width:33%;flex-shrink:0}.kg-bookmark-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}@media (max-width:600px){.kg-bookmark-container{flex-direction:column}.kg-bookmark-thumbnail{min-width:100%;max-width:100%;min-height:160px}}.kg-callout-card{display:flex;align-items:flex-start;gap:16px;padding:20px 28px;border-radius:4px;margin:0 0 1.5em}.kg-callout-card-grey{background:rgba(128,128,128,.12)}.kg-callout-card-white{background:#fff;border:1px solid var(--border-color,rgba(0,0,0,.15))}.kg-callout-card-blue{background:rgba(59,130,246,.12)}.kg-callout-card-green{background:rgba(34,197,94,.12)}.kg-callout-card-yellow{background:rgba(234,179,8,.12)}.kg-callout-card-red{background:rgba(239,68,68,.12)}.kg-callout-card-pink{background:rgba(236,72,153,.12)}.kg-callout-card-purple{background:rgba(168,85,247,.12)}.kg-callout-card-accent{background:var(--ghost-accent-color,rgba(0,0,0,.08))}.kg-callout-emoji{font-size:1.5rem;line-height:1;flex-shrink:0}.kg-callout-text{flex:1;font-size:.9375rem;line-height:1.6}.kg-toggle-card{border:1px solid var(--border-color,rgba(0,0,0,.15));border-radius:4px;margin:0 0 1.5em;overflow:hidden}.kg-toggle-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;user-select:none}.kg-toggle-heading-text{font-size:1rem;font-weight:600;line-height:1.4;flex:1}.kg-toggle-card-icon{width:24px;height:24px;flex-shrink:0;transition:transform .2s ease}.kg-toggle-card[open] .kg-toggle-card-icon{transform:rotate(180deg)}.kg-toggle-content{padding:0 20px 16px;font-size:.9375rem;line-height:1.6}.kg-audio-card{border:1px solid var(--border-color,rgba(0,0,0,.15));border-radius:4px;padding:16px;margin:0 0 1.5em;display:flex;align-items:center;gap:16px}.kg-audio-thumbnail{width:80px;height:80px;flex-shrink:0;border-radius:4px;overflow:hidden;object-fit:cover}.kg-audio-thumbnail.placeholder{background:var(--surface,rgba(0,0,0,.06));display:flex;align-items:center;justify-content:center}.kg-audio-player-container{flex:1;min-width:0}.kg-audio-title{font-size:.9375rem;font-weight:600;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kg-audio-player{display:flex;align-items:center;gap:8px}.kg-audio-current-time,.kg-audio-duration{font-size:.75rem;opacity:.6;white-space:nowrap;flex-shrink:0}.kg-audio-time{display:flex;align-items:center;gap:4px;font-size:.75rem;opacity:.6}.kg-audio-pause-icon,.kg-audio-play-icon{width:32px;height:32px;cursor:pointer;flex-shrink:0}.kg-audio-mute-icon,.kg-audio-unmute-icon{width:20px;height:20px;cursor:pointer;flex-shrink:0}.kg-audio-seek-slider,.kg-audio-volume-slider{flex:1;min-width:0;height:4px;cursor:pointer;accent-color:var(--text-color,currentColor)}.kg-audio-playback-rate{font-size:.75rem;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}.kg-button-card{display:flex;justify-content:center;margin:0 0 1.5em}.kg-button-card.kg-align-left{justify-content:flex-start}.kg-button-card.kg-align-center{justify-content:center}.kg-btn{margin:0;cursor:pointer;padding:8px 32px;line-height:160%;font-family:var(--font1);color:var(--background-color);background-color:var(--text-color);font-size:15px;opacity:1;transition:opacity .2s ease,transform .2s ease,color .2s ease,background-color .2s ease,border-color .2s ease;border:none;outline:0;font-weight:400}.kg-btn:hover{opacity:.8}.kg-btn-accent{background:inherit;color:inherit;border-color:inherit}.kg-product-card{border:1px solid var(--border-color,rgba(0,0,0,.15));border-radius:4px;padding:24px;margin:0 0 1.5em}.kg-product-card-container{display:flex;flex-direction:column;gap:12px}.kg-product-card-image{width:100%;max-height:300px;object-fit:cover;border-radius:4px}.kg-product-card-title-container{display:flex;align-items:center;gap:12px}.kg-product-card-title{font-size:1.125rem;font-weight:700;line-height:1.3}.kg-product-card-rating{display:flex;align-items:center;gap:2px}.kg-product-card-rating-star{width:18px;height:18px;opacity:.3}.kg-product-card-rating-active{opacity:1}.kg-product-card-description{font-size:.9375rem;line-height:1.6;opacity:.8}.kg-product-card-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 24px;border-radius:4px;font-size:.9375rem;font-weight:600;text-decoration:none;background:var(--text-color,#000);color:var(--background-color,#fff);transition:opacity .2s ease;align-self:flex-start}.kg-product-card-button:hover{opacity:.8}.kg-product-card-btn-accent{background:var(--ghost-accent-color,#000);color:#fff}.kg-file-card{border:1px solid var(--border-color,rgba(0,0,0,.15));border-radius:4px;margin:0 0 1.5em}.kg-file-card-container{display:flex;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;color:inherit}.kg-file-card-container:hover{opacity:.85}.kg-file-card-contents{flex:1;min-width:0}.kg-file-card-title{font-size:.9375rem;font-weight:600;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kg-file-card-caption{font-size:.8125rem;opacity:.6;margin-top:2px}.kg-file-card-filename{font-size:.8125rem;opacity:.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kg-file-card-filesize{font-size:.75rem;opacity:.5;flex-shrink:0}.kg-file-card-medium{padding:20px 24px}.kg-file-card-small{padding:12px 16px}.kg-blockquote-alt{border-left:4px solid var(--ghost-accent-color,var(--text-color,currentColor));padding:4px 0 4px 20px;font-style:italic;font-size:1.0625rem;line-height:1.7;opacity:.9;margin:0 0 1.5em}.kg-cta-card{display:flex;flex-direction:column;width:100%;box-sizing:border-box;border-radius:6px;overflow:hidden;background-color:var(--surface);color:var(--text-color);margin:0 0 1.5em}.kg-cta-content{display:flex;align-items:center;gap:20px;padding:24px 28px;flex-wrap:wrap}.kg-cta-immersive .kg-cta-content{flex-direction:column;text-align:center;padding:40px 28px}.kg-cta-minimal .kg-cta-content{padding:20px 24px}.kg-cta-image-container{flex-shrink:0;max-width:80px}.kg-cta-image-container img{width:100%;height:auto;display:block;border-radius:4px}.kg-cta-content-inner{display:flex;flex-direction:column;gap:14px;flex:1 1 0;min-width:0}.kg-cta-text{color:var(--text-color)}.kg-cta-text p{margin:0;font-size:1rem;line-height:1.6;color:var(--text-color)}.kg-cta-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;border-radius:4px;text-decoration:none!important;font-family:var(--font2);font-size:.95rem;font-weight:600;letter-spacing:.02em;line-height:1.2;cursor:pointer;transition:opacity .2s ease;align-self:flex-start;background-color:var(--text-color)!important;color:var(--background-color)!important;border:none!important}.kg-cta-button:hover{opacity:.82}.kg-cta-bg-pink{background-color:color-mix(in srgb,#f545a2 12%,var(--background-color))}.kg-cta-bg-blue{background-color:rgba(59,130,246,.12)}.kg-cta-bg-green{background-color:rgba(34,197,94,.12)}.kg-cta-bg-yellow{background-color:rgba(234,179,8,.12)}.kg-cta-bg-red{background-color:rgba(239,68,68,.12)}.kg-cta-bg-purple{background-color:rgba(168,85,247,.12)}.kg-cta-bg-gray,.kg-cta-bg-grey{background-color:rgba(128,128,128,.12)}.kg-cta-bg-accent{background:var(--brand-gradient,linear-gradient(45deg,#f545a2 0,#cf2e84 45%,#9b4db8 72%,#5e9dba 91%));color:var(--background-color)}.kg-cta-bg-accent .kg-cta-text,.kg-cta-bg-accent .kg-cta-text p{color:var(--background-color)}.kg-cta-bg-accent .kg-cta-button{background-color:var(--background-color)!important;color:var(--text-color)!important}@media (max-width:479px){.kg-cta-content{flex-direction:column;padding:18px 16px;gap:14px}.kg-cta-image-container{max-width:60px}.kg-cta-button{align-self:stretch;text-align:center}}

/* ===== related-posts.css ===== */
.related-posts{display:flex;align-items:stretch;border-bottom:1px solid var(--text-color);border-top:1px solid var(--text-color)}.related-post-wrapper{width:50%}.related-post-line{width:1px;min-width:1px;background-color:var(--text-color)}.related-post-wrapper .horizontal-card{gap:22px;height:100%;border-top:none}.next-article-horizontal-card .horizontal-card-inner{align-items:flex-end;text-align:right;padding-left:38px}.previous-article-horizontal-card .horizontal-card{flex-direction:row-reverse}.previous-article-horizontal-card .horizontal-card-inner{padding-right:38px}@media (min-width:1439px){.related-post-wrapper .horizontal-card{gap:calc(1.53vw * var(--scale))}.next-article-horizontal-card .horizontal-card-inner{padding-left:calc(2.64vw * var(--scale))}.previous-article-horizontal-card .horizontal-card-inner{padding-right:calc(2.64vw * var(--scale))}}@media (max-width:991px){.related-posts{flex-direction:column-reverse;border-top:none}.related-post-line{display:none}.related-post-wrapper{width:100%}.related-post-wrapper .horizontal-card{border-top:1px solid var(--text-color)}.next-article-horizontal-card .horizontal-card-inner{padding-left:0}.previous-article-horizontal-card .horizontal-card-inner{padding-right:0}.related-posts .small-card-image-link{margin-bottom:0!important}}@media (max-width:479px){.related-post-wrapper .horizontal-card{gap:17px}}

/* ===== simple-hero.css ===== */
.simple-hero{margin-top:18px}.simple-hero-inner{display:flex;flex-direction:column;align-items:center;justify-content:center}.text-card{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:31px;padding-bottom:68px}.text-card-heading{line-height:100%;font-family:var(--font2);font-size:62px;font-weight:400;margin-bottom:14px}.text-card-paragraph{max-width:540px}@media (min-width:1439px){.simple-hero{margin-top:calc(1.25vw * var(--scale))}.text-card{padding-top:calc(2.15vw * var(--scale));padding-bottom:calc(4.72vw * var(--scale))}.text-card-heading{font-size:calc(4.31vw * var(--scale));margin-bottom:calc(.97vw * var(--scale))}.text-card-paragraph{max-width:calc(37.5vw * var(--scale))}}@media (max-width:991px){.simple-hero{margin-top:26px;padding-left:5%;padding-right:5%}.text-card-heading{font-size:48px;margin-bottom:12px}.text-card{border-top:1px solid var(--text-color);padding-top:57px;padding-bottom:64px}}@media (max-width:479px){.simple-hero{margin-top:20px}.text-card-heading{font-size:36px}.text-card{padding-bottom:62px}}

/* ===== column-layout.css ===== */
.column-layout{margin-top:26px}.column-layout-grid{display:grid;grid-template-columns:1fr 2fr 1fr;gap:42px;margin-bottom:19px;padding-left:42px;padding-right:42px}.column-layout .text-card{padding-top:38px;padding-bottom:38px;border-top:1px solid var(--text-color);border-bottom:1px solid var(--text-color);text-align:left;align-items:flex-start}.column-layout .text-card-heading{font-size:42px}@media (min-width:1239px){.column-layout{margin-top:calc(1.81vw * var(--scale))}.column-layout-grid{gap:calc(2.92vw * var(--scale));margin-bottom:calc(1.32vw * var(--scale));padding-left:2.92vw;padding-right:2.92vw}.column-layout .text-card{padding-top:calc(2.64vw * var(--scale));padding-bottom:calc(2.64vw * var(--scale))}.column-layout .text-card-heading{font-size:calc(2.92vw * var(--scale))}}@media (max-width:991px){.column-layout-grid{grid-template-columns:1fr;gap:0;margin-bottom:0;padding-left:0;padding-right:0}.center-column,.left-column{padding-left:5%;padding-right:5%}.column-layout .text-card{text-align:center;padding-top:57px;padding-bottom:64px;align-items:center;border-bottom:none}.column-layout .text-card-heading{font-size:48px}}@media (max-width:479px){.column-layout{margin-top:16px}.center-column,.left-column{padding-left:4%;padding-right:4%}.column-layout .text-card{padding-bottom:57px}.column-layout .text-card-heading{font-size:36px}}

/* ===== archive-tags.css ===== */
.archive-tags-outer{width:100%}archive-tags{display:flex;column-gap:26px;row-gap:16px;flex-wrap:wrap;align-items:center;justify-content:center;padding-top:8px}.archive-tag-button{padding:0;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent}.radio-button-text{position:relative;z-index:1;pointer-events:none;white-space:nowrap;color:var(--text-color);font-size:20px;font-family:var(--font2)}.archive-tag-button input[type=radio]{-webkit-appearance:none;margin:0;padding:0;display:inline-flex;border:none;outline:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;background-color:transparent;cursor:pointer;z-index:0}.archive-tag-button input[type=radio]:checked~.radio-button-text{font-weight:600}.archive-tag-button:hover .radio-button-text{text-decoration:underline}@media (min-width:1439px){archive-tags{column-gap:calc(1.81vw * var(--scale));row-gap:calc(1.11vw * var(--scale));margin-top:calc(.56vw * var(--scale))}.radio-button-text{font-size:calc(1.39vw * var(--scale))}}@media (max-width:991px){archive-tags{position:relative;overflow-x:scroll;flex-wrap:nowrap;justify-content:flex-start;width:100vw;padding-right:30px;padding-left:30px;padding-top:4px;left:-30px;padding-bottom:10px}.archive-tags-separator{display:block;min-width:1px}}@media (max-width:479px){archive-tags{column-gap:22px;padding-right:18px;padding-left:18px;left:-18px}.radio-button-text{font-size:18px}}

/* ===== author.css ===== */
.author-row{border-top:none;gap:38px}#author-socials .socials{margin-top:0!important;flex:unset!important;display:flex!important;flex-wrap:wrap!important;justify-content:flex-end}.big-card-author-image{margin-bottom:38px}#author-mobile-image,#latest-work,#other-authors{display:none}#author-sidebar>:first-child{display:block}.author-image-layout #author-sidebar{display:none}.author-image-layout .column-layout-grid{display:flex;flex-direction:row-reverse}.author-image-right .column-layout-grid{flex-direction:row}.author-image-layout .author-center-column,.author-image-layout .left-column{flex:1}.author-image-layout .left-column{display:flex;flex-direction:column;margin-bottom:38px}.author-image-layout .text-card{height:100%}.author-image-layout .text-card-heading{font-size:62px;margin-bottom:20px}.author-image-layout .text-card-paragraph{max-width:464px}.simple-layout-socials{margin-top:27px;gap:38px}.simple-layout-socials .social{gap:8px;line-height:100%}.location-social:hover{transform:translateY(0)}@media (min-width:1439px){.author-row{gap:calc(2.64vw * var(--scale))}.big-card-author-image{margin-bottom:calc(2.64vw * var(--scale))}.author-image-layout .left-column{margin-bottom:calc(2.64vw * var(--scale))}.author-image-layout .text-card-heading{font-size:calc(4.31vw * var(--scale));margin-bottom:calc(1.39vw * var(--scale))}.author-image-layout .text-card-paragraph{max-width:calc(32.2vw * var(--scale))}.simple-layout-socials{margin-top:calc(1.88vw * var(--scale));gap:calc(2.64vw * var(--scale))}.simple-layout-socials .social{gap:calc(.56vw * var(--scale))}}@media (max-width:991px){#author-sidebar,#number-of-articles,.author-center-column{display:none}.author-row{border-bottom:none;border-top:1px solid var(--text-color)}#author-mobile-image{display:block;margin-bottom:38px}.author-image-layout .left-column{margin-bottom:0}.author-image-layout .text-card-heading{font-size:48px;margin-bottom:12px}.author-image-layout .text-card-paragraph{max-width:540px}.simple-layout-socials{display:flex;justify-content:center;flex-wrap:wrap;column-gap:32px;row-gap:12px}}@media (max-width:479px){#author-mobile-image{margin-bottom:32px}.author-image-layout .text-card-heading{font-size:42px}.author-image-layout .text-card-paragraph{max-width:540px}.simple-layout-socials{margin-top:20px;column-gap:22px}}

/* ===== membership.css ===== */
.membership-hero .text-card{padding-bottom:0!important}custom-membership{display:none}.membership-buttons{padding-top:27px;padding-bottom:35px;display:flex;align-items:center;justify-content:center}.membership-button{border:1px solid var(--text-color);min-width:calc(13vw * var(--scale));height:42px;display:flex;align-items:center;justify-content:center}.membership-button:hover{opacity:1!important}.membership-button[data-inactive=true]{background-color:var(--background-color);color:var(--text-color)}.membership-tiers{display:flex;justify-content:center;flex-wrap:wrap;gap:42px}.membership-tiers[data-inactive=true]{display:none}.tier-card{width:calc(26vw * var(--scale));display:flex;flex-direction:column;align-items:center;border:1px solid var(--text-color);padding:57px 38px;text-align:center}.tier-card .big-text{font-family:var(--font2);text-transform:unset;font-weight:400;line-height:80%}.tier-price{margin-top:27px;margin-bottom:33px;position:relative;display:flex;align-items:flex-end}.tier-currency{position:absolute;top:11px;left:0;font-size:42px;line-height:80%;font-family:var(--font2);transform:translateX(-100%)}.tier-price-span{font-family:var(--font2);line-height:80%;font-size:124px;font-weight:400}.tier-card .medium-text{font-family:var(--font2);text-transform:unset;font-weight:400;line-height:120%}.tier-time{position:absolute;bottom:3px;right:5px;transform:translateX(100%)}.benefits-outer{margin-top:33px;border-top:1px solid var(--text-color);width:100%;padding-top:41px;padding-bottom:57px}.benefits-container{display:flex;flex-direction:column;gap:19px}.benefits-item{text-align:left;display:flex;gap:14px}.benefit-square{margin-top:2px;height:20px;min-height:20px;width:20px;min-width:20px;background-color:var(--text-color);display:flex;align-items:center;justify-content:center}.benefit-icon{display:flex;align-items:center;justify-content:center;height:16px;width:16px}.membership-subscribe-button{margin-top:auto;display:flex}@media (min-width:1439px){.membership-buttons{padding-top:calc(1.88vw * var(--scale));padding-bottom:calc(2.43vw * var(--scale))}.membership-button{height:calc(2.92vw * var(--scale))}.membership-tiers{gap:2.92vw}.tier-card{padding:calc(3.96vw * var(--scale)) calc(2.64vw * var(--scale))}.tier-price{margin-top:calc(1.88vw * var(--scale));margin-bottom:calc(2.29vw * var(--scale))}.tier-currency{font-size:calc(2.92vw * var(--scale));top:calc(.78vw * var(--scale))}.tier-price-span{font-size:calc(8.61vw * var(--scale))}.tier-time{bottom:calc(.21vw * var(--scale));right:calc(.35vw * var(--scale))}.benefits-outer{margin-top:calc(2.29vw * var(--scale));padding-top:calc(2.85vw * var(--scale));padding-bottom:calc(3.96vw * var(--scale))}.benefits-container{gap:calc(1.32vw * var(--scale))}.benefits-item{gap:calc(.97vw * var(--scale))}.benefit-square{margin-top:calc(.14vw * var(--scale));height:calc(1.39vw * var(--scale));min-height:calc(1.39vw * var(--scale));width:calc(1.39vw * var(--scale));min-width:calc(1.39vw * var(--scale))}.benefit-icon{height:calc(1.11vw * var(--scale));width:calc(1.11vw * var(--scale))}}@media (max-width:991px){.membership-tiers{flex-direction:column;align-items:center;justify-content:flex-start;gap:38px}.membership-button{min-width:160px}.tier-card{max-width:400px;width:100%}}@media (max-width:479px){.membership-buttons{padding-top:25px;padding-bottom:32px}.membership-button{min-width:126px;height:38px}.membership-tiers{gap:32px}.tier-card{max-width:340px;padding:57px 24px}.tier-price{margin-top:26px;margin-bottom:28px}.tier-currency{font-size:32px;top:9px}.tier-price-span{font-size:96px}.benefits-outer{margin-top:28px;padding-top:28px}.benefits-item{text-align:left;display:flex;gap:10px}.benefit-square{margin-top:2px;height:18px;min-height:18px;width:18px;min-width:18px}.benefit-icon{height:14px;width:14px}}

/* ===== newsletter.css ===== */
.newsletter-outer{width:100%;border-top:1px solid var(--text-color);display:none}.homepage-newsletter .newsletter-outer{display:flex}.newsletter{width:100%;margin:38px 0;padding:96px calc(4.3vw * var(--scale));border:1px solid var(--text-color);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.newsletter-heading{margin-top:14px}.subscribe-form{margin-top:22px;width:100%;display:flex;flex-direction:column;align-items:center;color:var(--background-color);background-color:var(--text-color)}.subscribe-with-alerts{max-width:455px;width:100%}.subscribe-wrapper{display:flex;align-items:stretch;margin-bottom:13px}.submit-button{padding-left:17px;padding-right:17px}.form-alert{display:none;font-family:var(--font1)}form.error .error-alert,form.loading .loading-alert,form.success .success-alert{display:block}.newsletter-small-bottom-text{color:var(--text-color)!important}form.error .newsletter-small-bottom-text,form.loading .newsletter-small-bottom-text,form.success .newsletter-small-bottom-text{display:none}.newsletter-outer-for-post{display:none}.sidebar-newsletter-container .newsletter-outer-for-post{display:flex}.newsletter-outer-for-post .newsletter{padding:68px 42px}@media (min-width:1439px){.newsletter{margin:calc(2.64vw * var(--scale)) 0;padding:6.67vw calc(4.3vw * var(--scale))}.newsletter-heading{margin-top:calc(.97vw * var(--scale))}.subscribe-form{margin-top:calc(1.53vw * var(--scale))}.subscribe-with-alerts{max-width:calc(31.6vw * var(--scale))}.subscribe-wrapper{margin-bottom:calc(.9vw * var(--scale))}.submit-button{padding-left:calc(1.18vw * var(--scale));padding-right:calc(1.18vw * var(--scale))}.newsletter-outer-for-post .newsletter{padding:calc(4.72vw * var(--scale)) calc(2.92vw * var(--scale))}}@media (max-width:991px){.newsletter{padding:96px 30px;min-height:62vw}}@media (max-width:479px){.newsletter{padding:68px 30px}.submit-button{padding-left:12px;padding-right:12px}}

/* ===== form-page.css ===== */
.form-page-content{display:flex;flex-direction:column;align-items:center;max-width:430px;text-align:center;margin-bottom:4vh;width:100%}.form-page-content .subscribe-wrapper{margin-bottom:0}.form-page-excerpt{margin-bottom:24px}.form-container{width:100%;display:flex;align-items:center;justify-content:center}.form-container form{width:100%}.under-form-text{color:var(--text-color)!important;display:block;margin-top:14px}.form-container .form-alert{margin-top:10px}.lower-opacity-small-text{opacity:.7}.form-success-button{display:none}.vertical-form{display:flex;flex-direction:column;align-items:center;gap:15px;color:inherit;background-color:inherit;color-scheme:inherit}.vertical-form-button{margin-top:12px}.contact-content{max-width:590px}.contact-content .form-page-excerpt{max-width:430px}.contact-form{display:flex;flex-direction:column;align-items:center;gap:15px}.contact-form-inputs{width:100%;display:flex;gap:15px}@media (min-width:1439px){.form-page-content{max-width:calc(29.9vw * var(--scale))}.form-page-excerpt{margin-bottom:calc(1.67vw * var(--scale))}.under-form-text{margin-top:calc(.97vw * var(--scale))}.form-container .form-alert{margin-top:calc(.69vw * var(--scale))}.vertical-form{gap:calc(1.04vw * var(--scale))}.vertical-form-button{margin-top:calc(.83vw * var(--scale))}.contact-content{max-width:calc(41vw * var(--scale))}.contact-content .form-page-excerpt{max-width:calc(29.9vw * var(--scale))}.contact-form{gap:calc(1.04vw * var(--scale))}.contact-form-inputs{gap:calc(1.04vw * var(--scale))}}@media (max-width:479px){.form-page-excerpt{margin-bottom:21px}.form-container .form-alert{margin-top:9px}.under-form-text{margin-top:12px}.contact-form,.contact-form-inputs,.vertical-form{gap:12px}.vertical-form-button{margin-top:8px}.contact-form-inputs{flex-direction:column}}

/* ===== account.css ===== */
.account-info-container{display:flex;flex-direction:column;align-items:center;max-width:540px;text-align:center;margin-bottom:4vh;width:100%}.account-paragraph-info{margin-bottom:27px}.account-buttons-wrapper{display:flex;gap:22px}.account-button{min-width:142px;display:flex;align-items:center;justify-content:center}.account-settings-button{text-decoration:underline;line-height:140%;margin-top:16px}.account-subscribe-button{background-color:var(--background-color);color:var(--text-color);border:1px solid var(--text-color)}.account-data{margin-bottom:34px;width:100%;border-top:1px solid var(--text-color)}.account-data-row{gap:38px;width:100%;border-top:none}.left-align{text-align:left}.right-align{text-align:right}@media (min-width:1439px){.account-info-container{max-width:calc(37.5vw * var(--scale))}.account-paragraph-info{margin-bottom:calc(1.88vw * var(--scale))}.account-buttons-wrapper{gap:calc(1.53vw * var(--scale))}.account-button{min-width:calc(9.86vw * var(--scale))}.account-settings-button{margin-top:calc(1.11vw * var(--scale))}.account-data{margin-bottom:calc(2.36vw * var(--scale))}.account-data-row{gap:calc(2.64vw * var(--scale))}}@media (max-width:479px){.account-paragraph-info{margin-bottom:24px}.account-buttons-wrapper{gap:18px}.account-button{min-width:126px}.account-settings-button{margin-top:12px}.account-data{margin-bottom:32px}}

/* ===== table-of-contents.css ===== */
.gh-toc-outer{padding:38px 26px;width:100%;border:1px solid var(--text-color);margin-bottom:38px}.gh-content{position:relative}.gh-toc .toc-list{position:relative;padding-left:0;padding-top:0}.gh-toc .toc-list li{line-height:140%;margin-bottom:0}a.toc-link{font-size:16px;display:inline-block;color:var(--text-color);position:relative;padding-top:7px;padding-bottom:7px}.toc-list{overflow:hidden;list-style:none}.gh-toc .is-active-link::before{background-color:transparent!important}.gh-toc .is-active-link{font-weight:600}.gh-toc .toc-link::before{background-color:transparent}.gh-toc .is-collapsible .toc-link{padding-left:18px}.gh-toc .is-collapsible .is-collapsible .toc-link{padding-left:36px}.gh-content h1:focus,.gh-content h2:focus,.gh-content h3:focus,.gh-content h4:focus,.gh-content h5:focus,.gh-content h6:focus{outline:0!important}.toc-heading{font-weight:700;margin-bottom:10px}@media (min-width:1439px){.gh-toc-outer{padding:2.64vw 1.81vw;margin-bottom:2.64vw}a.toc-link{font-size:calc(1.11vw * var(--scale));padding-top:calc(.49vw * var(--scale));padding-bottom:calc(.49vw * var(--scale))}.gh-toc .is-collapsible .toc-link{padding-left:calc(1.25vw * var(--scale))}.gh-toc .is-collapsible .is-collapsible .toc-link{padding-left:calc(2.5vw * var(--scale))}.toc-heading{margin-bottom:calc(.69vw * var(--scale))}}@media (max-width:991px){.gh-toc-outer{margin-bottom:0}.is-collapsed{max-height:100%}.is-collapsible .toc-link::before{content:'\2022';color:var(--text-color);left:0;display:inline-block;font-size:21px}.is-collapsible .is-collapsible .toc-link::before{left:18px}}@media (max-width:479px){.gh-toc-outer{padding:28px 20px}.is-collapsed{max-height:100%}.is-collapsible .toc-link::before{font-size:19px}.is-collapsible .is-collapsible .toc-link::before{left:14px}a.toc-link{font-size:14px;padding-top:5px;padding-bottom:5px}.gh-toc .is-collapsible .toc-link{padding-left:14px}.gh-toc .is-collapsible .is-collapsible .toc-link{padding-left:28px}.toc-heading{margin-bottom:8px}}

/* ===== toggle-card.css ===== */
.kg-toggle-card,.kg-toggle-card *{box-sizing:border-box}.kg-toggle-card{padding:15px 0;box-shadow:none;border-bottom:1px solid var(--text-color)}.kg-toggle-card[data-kg-toggle-state=close] .kg-toggle-content{height:0;overflow:hidden;position:relative;transition:none}.kg-toggle-content{height:auto;top:0;position:relative;max-width:92%;transition:none}.kg-toggle-card[data-kg-toggle-state=close] svg{transition:none;transform:rotateZ(0)}.kg-toggle-card .kg-toggle-content ol,.kg-toggle-card .kg-toggle-content p,.kg-toggle-card .kg-toggle-content ul{margin-top:15px;line-height:160%;font-size:16px;margin-bottom:8px}.kg-toggle-heading{cursor:pointer;display:flex;justify-content:space-between;align-items:center}.kg-toggle-card h4.kg-toggle-heading-text{line-height:130%;font-family:var(--font2);font-weight:400;font-size:24px}.kg-toggle-card-icon{display:flex;justify-content:center;align-items:center;background:0 0;margin-left:5vw;border-radius:0;padding:0}.kg-toggle-heading svg{width:16px;min-width:16px;transform:rotateZ(180deg);transition:none}.kg-toggle-heading path{fill:var(--text-color)}.faq-hero .text-card{padding-bottom:57px}.toggle-card-section{display:flex;align-items:center;justify-content:center}.toggle-card-section .kg-toggle-card:first-of-type{border-top:1px solid var(--text-color)}@media (min-width:1439px){.kg-toggle-card{padding:calc(1.04vw * var(--scale)) 0}.kg-toggle-card .kg-toggle-content ol,.kg-toggle-card .kg-toggle-content p,.kg-toggle-card .kg-toggle-content ul{margin-top:calc(1.04vw * var(--scale));font-size:calc(1.11vw * var(--scale));margin-bottom:calc(.56vw * var(--scale))}.kg-toggle-card h4.kg-toggle-heading-text{font-size:calc(1.67vw * var(--scale))}.kg-toggle-heading svg{width:calc(1.11vw * var(--scale));min-width:calc(1.11vw * var(--scale))}.faq-hero .text-card{padding-bottom:calc(3.96vw * var(--scale))}}@media (max-width:991px){.kg-toggle-content{max-width:100%}}@media (max-width:479px){.kg-toggle-card{padding:18px 0}.kg-toggle-card .kg-toggle-content ol,.kg-toggle-card .kg-toggle-content p,.kg-toggle-card .kg-toggle-content ul{margin-top:18px;font-size:14px;margin-bottom:9px}.kg-toggle-card h4.kg-toggle-heading-text{font-size:20px}.kg-toggle-card-icon{margin-left:28px}.kg-toggle-heading svg{width:14px;min-width:14px}}

/* ===== slider.css ===== */
.slider-outer{overflow:hidden;position:relative}.slider-inner{padding-left:42px;padding-right:42px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;gap:26px}.slide-card{display:flex;flex-direction:column;align-items:flex-start}.slide-card-image-link{display:block;width:100%;height:11vw}.slide-card-image-wrapper{width:100%;height:100%;position:relative;overflow:hidden}.slide-card-heading{margin-top:12px;margin-bottom:4px}.slide-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:1px solid var(--text-color)}.slide-card-small-text{font-style:italic;opacity:.7;line-height:100%;font-size:12px}.featured-slider{display:flex;flex-direction:column;gap:0;padding:0}.mobile-heading-span{display:none}.slide-card .access-icon-smaller{margin-right:1px}@media (min-width:1439px){.slider-inner{padding-left:2.92vw;padding-right:2.92vw;gap:calc(1.81vw * var(--scale))}.slide-card-heading{margin-top:calc(.83vw * var(--scale));margin-bottom:calc(.28vw * var(--scale))}.slide-card-small-text{font-size:calc(.83vw * var(--scale))}.featured-slider{gap:0;padding:0}}@media (max-width:991px){.slider-inner{display:flex;overflow-x:scroll;overflow-y:hidden;cursor:grab;cursor:-webkit-grab;padding-left:30px;padding-right:30px;gap:30px}.slide-card-image-link{height:26vw;width:36vw}.slide-card-small-text{font-size:14px}.featured-slider{flex-direction:row}.section-heading-slider{padding-left:30px;padding-right:30px}.mobile-heading-span{display:inline}}@media (max-width:479px){.slider-inner{padding-left:18px;padding-right:18px;gap:18px}.featured-slider{gap:26px}.slide-card-small-text{font-size:12px}}

/* ===== hybrid-reconcile.css ===== */
/* ============================================================
   hybrid-reconcile.css — v5.0.0
   Layout authority layer: loaded last, overrides component CSS.
   Mobile-first: minimal on small screens, full brand complexity
   at tablet (768px+) and desktop (992px+).
   ============================================================ */

/* ── 1. GLOBAL BODY BASELINE ──────────────────────────────── */
/* Base font-size and h1–h6 sizing used to be re-declared here to force
   a win over newspaper-typography.css's !important overrides. That
   source conflict is now fixed at the root (see layout.css / tokens.css
   / post.css), so this file no longer needs to re-fight it. */
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── 2. CONTAINERS — MOBILE-FIRST ─────────────────────────── */
.footer-inner,.navbar-inner,.navbar-top-inner {
  max-width: 1580px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  box-sizing: border-box;
}

/* ── 3. CARD IMAGE HEIGHT — AUTO ON ALL SIZES ─────────────── */
/* Images use intrinsic aspect-ratio padding; never fixed height */
.column-layout-grid .text-min-height { min-height: 115px; height: auto !important; }

@media (min-width: 1240px) {
  .column-layout-grid .text-min-height { min-height: calc(8vw * var(--scale,1)); }
}

.column-layout-grid .big-card,
.column-layout-grid .extra-small-card,
.column-layout-grid .horizontal-card,
.column-layout-grid .small-card { height: auto !important; }

/* ── 4. BLOCKQUOTE OVERRIDES ──────────────────────────────── */
blockquote { border-left: none !important; }

/* Hover image: no overlay, just brightness */
.hover-image-opacity::after { display: none !important; }
.hover-image-opacity img { transition: filter .35s ease; }
.hover-image-opacity:hover img { filter: brightness(.85) saturate(.9); }

/* ── 5. DARK MODE CARD BORDERS ────────────────────────────── */
html[data-theme=dark] .big-card,
html[data-theme=dark] .extra-small-card,
html[data-theme=dark] .extra-small-side-card,
html[data-theme=dark] .horizontal-card,
html[data-theme=dark] .small-card { border-color: var(--border,rgba(255,255,255,.08)); }

html[data-theme=dark] .section-heading { border-color: var(--border,rgba(255,255,255,.15)); }

/* ── 6. LIGHT MODE BACKGROUNDS ────────────────────────────── */
html[data-theme=light] { --background-color: #f4f2ee; --secondary-background-color: #eceae6; }

/* ── 7. THEME TOGGLE ALIGNMENT ────────────────────────────── */
.navbar-account-links .theme-toggle-wrapper { display: flex; align-items: center; margin-left: 8px; }

/* ── 8. WEATHER / CLOCK BAR BORDERS ──────────────────────── */
.wx-navbar-bar { border-bottom: 1px solid var(--border,rgba(128,128,128,.2)); }
.wx-navbar-bar + .world-clock-bar { border-top: none; }

/* ── 9. SATIRE COLUMN LAYOUT ──────────────────────────────── */
.satire-body .satire-articles-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
@media (max-width: 991px) { .satire-body .satire-articles-grid { grid-template-columns: 1fr; } }

/* ── 10. LOGO SCALE ───────────────────────────────────────── */
.logo-wrapper .navbar-logo-image,
.logo-wrapper .navbar-logo-text { transform: scale(var(--logo-scale,1)); transform-origin: center; }

/* ── 11. POST TAG LIST SPACING ────────────────────────────── */
.post-tag-list { margin-bottom: 8px; }
.post-tag + .post-tag-list,
.post-tag-list + .post-heading { margin-top: 4px; }

/* ── 12. ACCESSIBILITY WIDGET Z-INDEX ─────────────────────── */
#a11y-fab { z-index: 10001; }
#a11y-panel { z-index: 10000; }

/* ── 13. TAGS PAGE CHIP GRID ──────────────────────────────── */
.tags-page--simplified-home .section-kicker {
  display: inline-block;
  margin-bottom: 10px;
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .7;
}

.tags-page-chip-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.tags-page-chip {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 110px;
  padding: 16px 18px;
  border: 1px solid color-mix(in srgb,var(--text-color) 18%,transparent);
  background: color-mix(in srgb,var(--background-color) 92%,var(--text-color) 8%);
  transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.tags-page-chip:hover {
  transform: translateY(-2px);
  border-color: transparent;
  box-shadow: inset 0 0 0 1px transparent,0 12px 22px color-mix(in srgb,var(--text-color) 8%,transparent);
  background-image: linear-gradient(var(--background-color),var(--background-color)),var(--brand-gradient,linear-gradient(45deg,#f545a2 0,#cf2e84 45%,#9b4db8 72%,#5e9dba 91%));
  background-origin: border-box;
  background-clip: padding-box,border-box;
}

.tags-page-chip-name { font-family: var(--font2); font-size: 1.2rem; line-height: 1.08; }
.tags-page-chip-count { font-size: .88rem; opacity: .72; }

.tags-page-card { min-height: 100%; }
.tags-page-card .small-card-link { display: block; height: 100%; }
.tags-page-card .small-card-content { min-height: 180px; padding: 20px 18px; }
.tags-page-card-heading { font-size: 1.4rem; line-height: 1.1; margin-top: 6px; margin-bottom: 10px; }
.tags-page-card .small-card-paragraph { font-size: .95rem; line-height: 1.58; opacity: .8; }

@media (min-width: 768px) {
  .tags-page-chip-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
  .tags-page-chip { min-height: 130px; padding: 18px 20px; }
  .tags-page-chip-name { font-size: 1.35rem; }
}

@media (min-width: 992px) {
  .tags-page-chip-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
  .tags-page-chip { min-height: 138px; padding: 20px 22px; }
  .tags-page-chip-name { font-size: 1.5rem; }
}

@media (max-width: 479px) {
  .tags-page-chip-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .tags-page-chip { min-height: 90px; padding: 14px 14px; }
  .tags-page-chip-name { font-size: 1rem; }
}

/* ── 14/15/16. BREAKPOINT FONT-SIZE RECONCILIATION — REMOVED ──
   These blocks used to re-declare body/html/h1–h6 sizing at each
   breakpoint purely to out-rank newspaper-typography.css. tokens.css
   + layout.css now own that responsibility in one place. */

/* ── 17. BLOCKQUOTE PULL-QUOTE DECORATION ─────────────────── */
blockquote { position: relative; padding-top: 1.1em !important; border-radius: 6px; }
blockquote::after {
  content: '\201C' !important;
  left: 0 !important;
  right: auto !important;
  top: -.02em !important;
  font-size: 3.8em !important;
  color: color-mix(in srgb,var(--brand-g1) 22%,transparent) !important;
}
html[data-theme=light] blockquote::after {
  color: color-mix(in srgb,var(--brand-g1) 16%,transparent) !important;
}

@media (max-width: 479px) {
  blockquote { padding-top: .9em !important; }
  blockquote::after { left: 0 !important; top: .02em !important; font-size: 3em !important; }
}

/* ── 18. POST CONTENT SIDEBAR LAYOUT ─────────────────────── */
/* Mobile: single column */
.post-content-and-sidebar {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 0;
}

/* Desktop: two-column grid */
@media (min-width: 992px) {
  .post-content-and-sidebar {
    display: grid !important;
    grid-template-columns: minmax(0,2.1fr) minmax(260px,0.72fr);
    gap: 0 40px;
    max-width: 1580px;
    margin: 0 auto;
    padding: 0 36px;
    flex-direction: unset;
    align-items: start;
  }
}
/* Cap latest articles initial display to 4 cards per row */
.latest-articles-grid > .small-card:nth-child(n+5) {
  display: none !important;
}

@media (max-width: 991px) {
  .post-content-and-sidebar { display: flex; flex-direction: column; align-items: center; padding: 0; }
}

/* ── FEATURED TAGS: enforce max 4 cards per section ──────── */
/* Belt-and-suspenders alongside the JS trim in custom-elements.js.
   Hides any 5th+ card in case the JS trim hasn't fired yet. */
.featured-tags-inner .small-card-grid:nth-child(n+5) {
  display: none !important;
}

/* Tablet/medium screens: show 3 cards side-by-side per featured-tag
   section (matching .pagination-grid's 3-column band) instead of a
   trailing 4th card wrapping alone onto its own row. Desktop/laptop
   and wider keep all 4. */
@media (min-width: 768px) and (max-width: 991px) {
  .featured-tags-inner .small-card-grid:nth-child(n+4) {
    display: none !important;
  }
}

/* ── HOMEPAGE: footer boundary ────────────────────────────
   Guarantees clear separation between the final row of the "Latest
   Articles" grid and the footer that follows, so cards can never
   visually overlap the footer on desktop. */
.homepage-footer-boundary {
  display: block;
  width: 100%;
  height: 40px;
}

@media (min-width: 768px) {
  .homepage-footer-boundary { height: 56px; }
}

@media (min-width: 992px) {
  .homepage-footer-boundary { height: 72px; }
}

/* ===== mobile-polish.css ===== */
/* ============================================================
   mobile-polish.css — v5.1.2
   Mobile-first UX polish layer.
   Loaded last to apply targeted mobile improvements without
   disrupting the desktop layout cascade.
   All rules are scoped to max-width breakpoints so they only
   apply on mobile/small-tablet and have zero effect on desktop.
   ============================================================ */

/* ── 1. TOUCH TARGETS ─────────────────────────────────────── */
/* WCAG 2.5.5: interactive elements ≥ 44×44px touch target */
@media (max-width: 767px) {
  /* Nav links in mobile overlay */
  .nav-link,
  .links-label {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* Hamburger button */
  .menu-button {
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
  }

  /* Search and toggle buttons */
  .navbar-search-btn,
  .theme-toggle-btn,
  .header-signin-button,
  .header-account-button {
    min-height: 44px;
    min-width: 44px;
    padding: 0 8px;
  }

  /* Card links — full-width tap area */
  .small-card-image-link,
  .big-card-image-link,
  .horizontal-card-image-link {
    display: block;
    width: 100%;
  }

  /* Accessibility FAB */
  .a11y-fab {
    width: 52px !important;
    height: 52px !important;
    bottom: 20px !important;
    right: 16px !important;
  }

  /* Post-nav arrows */
  .post-nav-arrow {
    min-width: 44px;
    min-height: 44px;
  }
}

/* ── 2. CARD SPACING & READABILITY ────────────────────────── */
@media (max-width: 767px) {
  /* Big card: more breathing room */
  .big-card-content {
    padding: 16px 0 22px;
    gap: 10px;
  }
  .big-card-heading {
    font-size: clamp(1.2rem, 6vw, 1.8rem);
    -webkit-line-clamp: 3;
    line-height: 1.15;
  }
  .big-card-excerpt {
    font-size: 0.92rem;
    line-height: 1.58;
    -webkit-line-clamp: 3;
  }

  /* Small card: compact but readable */
  .small-card-content {
    padding: 12px 0 18px;
    gap: 7px;
  }
  .small-card-heading {
    font-size: clamp(1rem, 4.5vw, 1.2rem);
    -webkit-line-clamp: 3;
    line-height: 1.18;
  }

  /* Horizontal card: better thumb-friendly layout */
  .horizontal-card {
    gap: 16px;
    padding: 16px 0;
  }
  .horizontal-card-image-wrapper {
    width: 110px;
    min-width: 110px;
    flex-shrink: 0;
    aspect-ratio: 4/3;
  }
  .horizontal-card-heading {
    font-size: clamp(0.95rem, 4vw, 1.1rem);
    -webkit-line-clamp: 3;
  }

  /* Section headings: tighter on mobile */
  .section-heading {
    padding: 10px 0 8px;
    margin-bottom: 14px;
  }
  .section-heading-title {
    font-size: clamp(0.85rem, 3.5vw, 1rem);
    letter-spacing: .12em;
  }
}

/* ── 3. HOMEPAGE LAYOUT POLISH ────────────────────────────── */
@media (max-width: 767px) {
  /* Main container: comfortable side padding */
  .site-content .container,
  .site-content .wide-container {
    padding-left: 16px;
    padding-right: 16px;
  }

  /* Homepage hero: tighter vertical rhythm */
  .homepage-hero,
  .simple-hero {
    padding-top: 20px;
    padding-bottom: 20px;
  }

  /* Featured tags section: visible on mobile */
  .featured-tags-section {
    display: block !important;
    margin-top: 20px;
  }

  /* Grid sections: full-width single column */
  .grid,
  .pagination-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* Announcement bar: readable on small screens */
  .announcement-bar {
    font-size: 13px;
    padding: 10px 16px;
    line-height: 1.45;
  }
}

/* ── 4. TYPOGRAPHY POLISH ─────────────────────────────────── */
@media (max-width: 767px) {
  /* Post content: comfortable reading width */
  .post-content {
    font-size: 1rem;
    line-height: 1.72;
  }
  .post-content p {
    margin-bottom: 1.4em;
  }
  .post-content h2 {
    font-size: clamp(1.4rem, 6vw, 1.9rem);
    margin-top: 2em;
    margin-bottom: 0.6em;
  }
  .post-content h3 {
    font-size: clamp(1.2rem, 5vw, 1.55rem);
    margin-top: 1.8em;
    margin-bottom: 0.5em;
  }
  .post-content h4 {
    font-size: clamp(1.05rem, 4vw, 1.3rem);
    margin-top: 1.6em;
    margin-bottom: 0.4em;
  }

  /* Post header: tighter on mobile */
  .post-header {
    padding-top: 20px;
    padding-bottom: 16px;
  }
  .post-title {
    font-size: clamp(1.6rem, 7vw, 2.4rem);
    line-height: 1.1;
  }
  .post-excerpt {
    font-size: 1rem;
    line-height: 1.6;
    margin-top: 12px;
  }

  /* Drop cap: smaller on mobile */
  .initial-paragraph::first-letter {
    font-size: 3.2em;
    margin-right: 6px;
    margin-top: 2px;
  }

  /* Blockquote: full-width on mobile */
  .post-content blockquote:not(.kg-blockquote-alt) {
    margin-left: 0;
    margin-right: 0;
    padding: 16px 20px;
    font-size: 1.05rem;
  }
}

/* ── 5. NAVIGATION OVERLAY POLISH ────────────────────────── */
@media (max-width: 767px) {
  /* Overlay: full-screen, uses page background for seamless feel */
  .navbar-links-outer {
    background-color: var(--background-color);
  }

  /* Nav items: generous tap targets with visual separation */
  .nav li {
    border-bottom: 1px solid color-mix(in srgb, var(--text-color) 10%, transparent);
    padding-bottom: 0;
    width: 100%;
  }
  .nav li:last-child {
    border-bottom: none;
  }
  .nav-link,
  .links-label {
    font-size: 22px;
    padding: 14px 0;
    width: 100%;
    text-align: left;
    padding-left: 8px;
  }

  /* Dropdown sub-items */
  .secondary-links-inner {
    padding: 8px 0 8px 20px;
  }
  .secondary-link {
    padding: 10px 8px;
    font-size: 17px;
  }
}

/* ── 6. FOOTER POLISH ─────────────────────────────────────── */
@media (max-width: 767px) {
  .site-footer {
    padding-top: 32px;
    padding-bottom: 24px;
  }
  .footer-content {
    flex-direction: column;
    gap: 28px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .footer-description {
    text-align: center;
  }
  .navbar-socials-icons {
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
  }
  .social-inner {
    width: 26px;
    min-width: 26px;
  }
  .footer-navigation-shell {
    width: 100%;
    align-items: center;
  }
  .footer-social-icons {
    justify-content: center;
  }
  .footer-meta-copy {
    text-align: center;
    font-size: 12px;
  }
}

/* ── 7. POST-NAV MOBILE POLISH ────────────────────────────── */
@media (max-width: 767px) {
  .post-nav {
    margin: 28px 0;
    padding: 20px 0;
  }
  .post-nav-title {
    font-size: 11px;
    letter-spacing: .14em;
    margin-bottom: 16px;
  }
  .post-nav-mobile-row {
    gap: 12px;
  }
  .post-nav-card .small-card-heading {
    font-size: clamp(0.9rem, 4vw, 1.05rem);
    -webkit-line-clamp: 2;
  }
}

/* ── 8. ACCESSIBILITY WIDGET MOBILE ──────────────────────── */
@media (max-width: 767px) {
  /* Panel opens upward from FAB on mobile */
  .a11y-panel {
    bottom: 72px;
    right: 12px;
    left: 12px;
    max-width: none;
    width: auto;
  }
}

/* ── 9. SCROLL & INTERACTION IMPROVEMENTS ─────────────────── */
@media (max-width: 767px) {
  /* Smooth scroll on iOS */
  html {
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
  }

  /* Prevent content jump when overlay opens */
  body.nav-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
  }

  /* Image lazy-load placeholder: prevent layout shift */
  img[loading="lazy"] {
    background-color: var(--surface, rgba(128,128,128,.06));
  }

  /* Reduce motion for users who prefer it */
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
    }
  }
}

/* ── 10. SMALL PHONE OVERRIDES (≤ 390px) ─────────────────── */
@media (max-width: 390px) {
  .site-content .container,
  .site-content .wide-container {
    padding-left: 14px;
    padding-right: 14px;
  }
  .big-card-heading {
    font-size: clamp(1.1rem, 5.5vw, 1.5rem);
  }
  .post-title {
    font-size: clamp(1.5rem, 7vw, 2rem);
  }
  .nav-link,
  .links-label {
    font-size: 20px;
  }
  .navbar-logo-text {
    font-size: clamp(22px, 7vw, 30px);
  }
}

/* ===== mobile-2026.css ===== */
/* ============================================================
   mobile-2026.css — v6.1.0
   Modern (2026) mobile-first UX layer. Loaded LAST in the main
   bundle so it takes cascade precedence over legacy component CSS.

   Goals (from the brief): lower bounce, higher conversion, longer
   sessions on a news site where 85%+ of traffic is mobile iOS.

   Everything here is either (a) a global behavioural polish that is
   safe at every width, or (b) scoped to a mobile/tablet breakpoint.
   Nothing changes the desktop layout. All fixed-position UI is out
   of normal flow, so none of it can introduce Cumulative Layout
   Shift. iOS safe-area-insets are respected throughout.
   ============================================================ */

/* ── 0. iOS / SMALL-SCREEN GLOBAL POLISH ──────────────────── */

/* Respect the notch + home-indicator: pad the fixed header and
   any bottom-fixed UI into the safe area. Falls back to 0 where
   env() is unsupported. */
:root{
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  /* Height reserved for the sticky mobile subscribe CTA when shown,
     so the footer/page can breathe above it. */
  --mobile-cta-height: 60px;
}

/* Kill the iOS/Android grey tap flash and text-size auto-inflation,
   and stop rubber-band scroll-chaining into parent scrollers. These
   are pure UX wins with no layout effect. */
html{
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body{
  -webkit-tap-highlight-color: transparent;
  overscroll-behavior-y: none;
}
a,button,input,select,textarea,summary,[role="button"]{
  -webkit-tap-highlight-color: transparent;
}

/* Smooth in-page scrolling (anchor jumps, "back to top"), but never
   fight users who prefer reduced motion. */
@media (prefers-reduced-motion: no-preference){
  html{ scroll-behavior: smooth; }
}

/* Belt-and-braces against the single most common mobile bug on
   content-heavy themes: a stray wide element causing a horizontal
   scrollbar (which reads as jank + hurts CLS/INP). */
html,body{ overflow-x: clip; }

/* Header is fixed to the viewport top; make sure it sits below the notch. */
.header,custom-header{
  padding-top: var(--safe-top);
}

/* ── 1. RENDER PERFORMANCE: below-the-fold sections ───────── */
/* content-visibility lets the browser skip layout/paint for
   off-screen sections until they're scrolled near, cutting main-
   thread work on long homepages (helps INP + first paint). The
   contain-intrinsic-size placeholders keep the scrollbar honest so
   this does NOT create layout shift. Mobile only — desktop renders
   the full grid up front. */
@media (max-width: 991px){
  .np-mobile-tag-section,
  .featured-tags-section,
  .homepage .pagination,
  .np-tablet-newsletter{
    content-visibility: auto;
    contain-intrinsic-size: auto 600px;
  }
}

/* ── 2. TOUCH FEEDBACK — cards & links ────────────────────── */
/* Immediate, native-feeling press feedback increases perceived
   responsiveness (INP) and signals tappability. Scoped to pointer:
   coarse so it never fires for mouse users. */
@media (hover: none) and (pointer: coarse){
  .np-hero-card a,
  .np-support-card,
  .np-right-item,
  .np-mobile-tag-card,
  .small-card,
  .big-card,
  .horizontal-card,
  .extra-small-card{
    transition: transform .12s ease, opacity .12s ease;
  }
  .np-support-card:active,
  .np-right-item:active,
  .np-mobile-tag-card:active,
  .small-card:active,
  .big-card:active,
  .horizontal-card:active,
  .extra-small-card:active{
    transform: scale(.985);
    opacity: .92;
  }
}

/* ── 3. MOBILE HERO — sharper hierarchy, better rhythm ────── */
@media (max-width: 767px){
  .np-center-column{ padding-top: 14px; }

  .np-hero-card{ position: relative; }

  /* Give the lead image gentle rounding + a hairline so it reads as
     a deliberate object rather than a raw bleed, without changing
     its reserved aspect ratio (no CLS). */
  .np-hero-image-wrapper{
    border-radius: 6px;
    overflow: hidden;
  }

  /* Tighten the headline: news readers scan headlines first, so make
     it the unambiguous anchor of the card. */
  .np-hero-heading{
    font-size: clamp(23px, 6.6vw, 31px);
    line-height: 1.12;
    letter-spacing: -.02em;
    margin-bottom: 10px;
  }

  /* Excerpt: comfortable measure + one more visible line than before
     so the reader has enough to commit to the tap. */
  .np-hero-excerpt{
    font-size: 15px;
    line-height: 1.62;
    -webkit-line-clamp: 4;
  }

  /* Meta row: give the tag label a real 44px-tall tap target while
     keeping it visually compact. */
  .np-hero-meta .np-tag-label,
  .np-support-meta .np-tag-label,
  .np-right-meta .np-tag-label,
  .np-mobile-tag-meta .np-tag-label{
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding-right: 2px;
  }
}

/* ── 4. MOBILE SECTION FLAGS — clearer, tappable "More" ───── */
@media (max-width: 767px){
  .np-section-flag{
    padding-top: 8px;
    padding-bottom: 8px;
    font-size: 11px;
    letter-spacing: .16em;
  }
  .np-section-flag-link{
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    font-size: 11px;
  }
}

/* ── 5. READING PROGRESS BAR (post pages) ─────────────────── */
/* Fixed to the very top, above the (also fixed) header. Communicates
   article length + progress, which measurably increases scroll depth
   / completion. position:fixed => zero layout cost. Starts at 0 width
   and is driven by mobile-ux.js via the --read-progress custom prop. */
.reading-progress{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 1200;
  background: transparent;
  pointer-events: none;
  /* only meaningful once JS sets a value; hidden until then */
  opacity: 0;
  transition: opacity .2s ease;
}
.reading-progress[data-active="true"]{ opacity: 1; }
.reading-progress__fill{
  height: 100%;
  width: var(--read-progress, 0%);
  background: var(--text-color);
  transform-origin: left center;
  will-change: width;
}
@media (prefers-reduced-motion: no-preference){
  .reading-progress__fill{ transition: width .08s linear; }
}
/* On very large screens the progress bar is unnecessary chrome. */
@media (min-width: 992px){
  .reading-progress{ height: 3px; }
}

/* ── 6. STICKY SUBSCRIBE CTA (mobile, logged-out) ─────────── */
/* A slim, dismissible bottom bar — the highest-ROI mobile
   conversion pattern for membership sites. Fixed + translated off-
   screen by default; mobile-ux.js reveals it after the reader is
   invested (scrolled a bit), and remembers dismissal in
   localStorage. Because it's position:fixed it contributes no CLS,
   and it sits inside the iOS safe area. */
.mobile-cta{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1150;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px calc(14px + var(--safe-right)) calc(10px + var(--safe-bottom)) calc(14px + var(--safe-left));
  background: var(--card-bg, #1a1a1a);
  border-top: 1px solid var(--border, rgba(255,255,255,.14));
  box-shadow: 0 -6px 24px rgba(0,0,0,.28);
  transform: translateY(120%);
  transition: transform .32s cubic-bezier(.22,.61,.36,1);
  font-family: var(--font1, 'Noto Serif'), serif;
}
.mobile-cta[data-visible="true"]{ transform: translateY(0); }
@media (prefers-reduced-motion: reduce){
  .mobile-cta{ transition: none; }
}
.mobile-cta__text{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13.5px;
  line-height: 1.3;
  color: var(--text-color, #e8e8e0);
}
.mobile-cta__text strong{
  display: block;
  font-family: var(--font2, 'Old Standard TT'), serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -.01em;
  margin-bottom: 1px;
  color: var(--text-color, #e8e8e0);
}
.mobile-cta__actions{
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}
.mobile-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  font-family: var(--font2, 'Old Standard TT'), serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
  color: #fff;
  background: #e8192c;
  border: none;
  border-radius: 4px;
  text-decoration: none;
  cursor: pointer;
}
html[data-theme="light"] .mobile-cta__btn{ background:#9b0d1e; }
.mobile-cta__dismiss{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  padding: 0;
  color: var(--text-color-55, rgba(255,255,255,.6));
  background: none;
  border: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}
.mobile-cta__dismiss:focus-visible,
.mobile-cta__btn:focus-visible{
  outline: 2px solid var(--text-color, #fff);
  outline-offset: 2px;
}
/* Never show the sticky CTA on wide screens (desktop has the rail
   newsletter) or to users who prefer no motion-heavy chrome is not
   an issue since it's dismissible; hide ≥992px. */
@media (min-width: 992px){
  .mobile-cta{ display: none !important; }
}

/* ── 7. KEYBOARD / A11Y FOCUS on touch UI ─────────────────── */
/* Make focus-visible obvious for the new interactive controls. */
.np-tag-label:focus-visible,
.np-section-flag-link:focus-visible,
.hover-underline:focus-visible{
  outline: 2px solid currentColor;
  outline-offset: 2px;
  border-radius: 2px;
}

/* ── 8. LATEST GRID: comfortable single-column on phones ──── */
@media (max-width: 767px){
  /* Ensure the paginated "latest" grid never renders cramped 2-up
     cards on small phones; one clean column reads far better and
     keeps tap targets large. */
  .homepage .grid-layout,
  .homepage .cards-grid{
    grid-template-columns: 1fr !important;
  }
}
