:root {
    --ed-paper: #f1efe9;
    --ed-paper-2: #e2ded5;
    --ed-paper-3: #e9e6df;
    --ed-ink: #151416;
    --ed-muted: #625e5a;
    --ed-night: #171619;
    --ed-night-2: #211f23;
    --ed-line: #c9c4ba;
    --ed-line-dark: #3b383e;
    --ed-accent: #bd164f;
    --ed-blue: #286f95;
    --ed-green: #196846;
    --ed-amber: #ae6729;
    --ed-violet: #7653a6;
    --ed-shell: 1240px;
    --ed-reading: 760px;
}

body:not(.home-template) {
    max-width: 100%;
    margin: 0;
    padding-top: 0;
    overflow-x: clip;
    background: var(--ed-paper);
    color: var(--ed-ink);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

body:not(.home-template) * { box-sizing: border-box; }
body:not(.home-template) a { color: inherit; text-decoration: none; }
body:not(.home-template) img { display: block; max-width: 100%; }
body:not(.home-template) .grain { display: none; }
body:not(.home-template) #main-content { min-height: 70vh; padding: 0; }
body:not(.home-template) .wrap { width: min(var(--ed-shell), calc(100% - 48px)); max-width: none; margin: 0 auto; padding: 0; }
body:not(.home-template) :focus-visible { outline: 3px solid var(--ed-accent); outline-offset: 3px; }

/* Article tools: make the whole control visible when the keyboard focus is inside it. */
body:not(.home-template) .article-content .sf-choice-row label:has(input[type="radio"]:focus-visible) {
    outline: 3px solid #ff78aa;
    outline-offset: 3px;
}
body:not(.home-template) .article-content .sf-choice-row input[type="radio"]:focus-visible {
    outline: none;
}
body:not(.home-template) .article-content .sf-lufs-drop:focus-visible {
    border-color: #ff78aa;
    outline: 3px solid #ff78aa;
    outline-offset: 3px;
}
body:not(.home-template) .article-content .sf-calc-form button,
body:not(.home-template) .article-content .sf-calc-form input:not([type="radio"]):not([type="checkbox"]),
body:not(.home-template) .article-content .sf-calc-form select,
body:not(.home-template) .article-content .sf-choice-row label,
body:not(.home-template) .article-content .sf-tool-actions button,
body:not(.home-template) .article-content .sf-presets button {
    min-height: 44px !important;
}

.editorial-header {
    position: sticky;
    top: 0;
    z-index: 60;
    height: 66px;
    padding: 0 max(24px, calc((100vw - var(--ed-shell)) / 2));
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    border-bottom: 1px solid #29262b;
    background: rgba(16, 15, 17, .97);
    color: #f3f0eb;
    backdrop-filter: blur(12px);
}
.editorial-brand { width: max-content; display: inline-flex; align-items: center; gap: 10px; color: #f3f0eb; font-size: 17px; font-weight: 760; letter-spacing: -.035em; }
.editorial-brand img { width: 31px; height: 29px; object-fit: cover; border-radius: 8px; }
.editorial-nav { display: flex; align-items: center; gap: 24px; color: #d0c9c7; font-size: 13px; font-weight: 650; }
.editorial-nav a, .editorial-trial { transition: color .18s ease; }
.editorial-nav a:hover, .editorial-trial:hover { color: #fff; }
.editorial-trial { justify-self: end; display: inline-flex; align-items: center; gap: 9px; color: #f6dbe5; font-size: 13px; font-weight: 700; }
.editorial-trial span { color: #ef6b9b; }
.editorial-menu { display: none; }

body:not(.home-template) .crumbs {
    min-height: 52px;
    margin: 0;
    padding: 17px 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 9px;
    overflow: hidden;
    border: 0;
    color: #6e6863;
    font: 620 9px "SFMono-Regular", Consolas, monospace;
    letter-spacing: .055em;
    text-transform: uppercase;
}
body:not(.home-template) .crumbs a { color: #494542; }
body:not(.home-template) .crumbs a:hover { color: var(--ed-accent); }
body:not(.home-template) .crumbs .sep { color: #aaa49b; }
body:not(.home-template) .crumbs .cur { min-width: 0; max-width: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.editorial-kicker { margin: 0 0 14px; color: var(--ed-accent); font: 700 10px "SFMono-Regular", Consolas, monospace; letter-spacing: .095em; text-transform: uppercase; }

/* Articles */
.article-hero {
    min-height: 440px;
    margin: 0 0 48px;
    display: grid;
    grid-template-columns: .96fr 1.04fr;
    overflow: hidden;
    border: 1px solid #2f2c31;
    border-radius: 16px;
    background: var(--ed-night);
    color: #f5f1ec;
}
.article-hero:not(:has(.article-cover)) { grid-template-columns: 1fr; }
.article-masthead {
    min-width: 0;
    padding: 48px 42px 38px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border-right: 1px solid #2f2c31;
    background: var(--ed-night);
    color: #f5f1ec;
}
.article-hero:not(:has(.article-cover)) .article-masthead { border-right: 0; }
.article-masthead .editorial-kicker { color: #e85b8f; }
.article-masthead h1 { max-width: 680px; margin: 0 0 30px; color: #f7f3ee; font-size: clamp(42px, 4.2vw, 60px); font-weight: 730; line-height: .98; letter-spacing: -.058em; }
.article-masthead .byline { min-height: 54px; padding-top: 18px; display: flex; align-items: center; gap: 14px; border-top: 1px solid #3a373c; }
.article-masthead .avatar, .article-outro .avatar { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #f1eee9; color: var(--ed-night); box-shadow: none; font: 700 10px "SFMono-Regular", Consolas, monospace; }
.article-masthead .who { display: grid; gap: 3px; }
.article-masthead .who b { color: #f4f0ec; font-size: 13px; }
.article-masthead .who > span { color: #aaa4a7; font-size: 11px; }
.article-masthead .chips { width: 100%; margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 7px; }
.article-masthead .chip { min-height: 28px; padding: 0 9px; display: inline-flex; align-items: center; border: 1px solid #4c484e; color: #bbb5b8; font: 650 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .04em; }
.article-masthead .chip.verdict { border-color: #9e315c; border-radius: 0; background: transparent; box-shadow: none; color: #ef83aa; }

.article-cover { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #0d0c0e; }
.article-cover .ruler, .article-cover .scan, .article-cover .tag { display: none; }
.article-cover .img { width: 100%; height: 100%; }
.article-cover img { width: 100%; height: 100%; object-fit: contain; object-position: center; filter: saturate(.86) contrast(1.03); }
.article-cover figcaption { position: absolute; left: 16px; right: 16px; bottom: 14px; width: max-content; max-width: calc(100% - 32px); background: rgba(16,15,17,.88); }
.article-cover figcaption, .page-cover figcaption { padding: 10px 14px; background: var(--ed-night); color: #d3cdd0; font: 600 12px/1.45 "SFMono-Regular", Consolas, monospace; letter-spacing: .025em; }

.article-layout { padding: 48px 44px 0; display: grid; grid-template-columns: minmax(0, var(--ed-reading)) 320px; gap: 52px; align-items: start; justify-content: center; border: 0; border-top: 1px solid #302d32; border-radius: 0; background: var(--ed-night); }
.article-content, .page-content { min-width: 0; color: #292729; font-family: Georgia, "Times New Roman", serif; font-size: 18px; line-height: 1.74; }
.article-content { width: 100%; max-width: none; margin: 0; }
.article-content { color: #d1cace; }
.article-content > :first-child, .page-content > :first-child { margin-top: 0; }
.article-content p, .article-content ul, .article-content ol, .page-content p, .page-content ul, .page-content ol { margin-top: 0; margin-bottom: 23px; font-size: inherit; line-height: inherit; }
.article-content h2, .article-content h3, .article-content h4, .page-content h2, .page-content h3, .page-content h4 { color: var(--ed-ink); font-family: Arial, Helvetica, sans-serif; letter-spacing: -.038em; }
.article-content h2, .article-content h3, .article-content h4 { color: #f4f0ec; }
.article-content h2, .page-content h2 { margin: 58px 0 18px; font-size: 35px; line-height: 1.08; }
.article-content h3, .page-content h3 { margin: 38px 0 13px; font-size: 24px; line-height: 1.15; }
.article-content h4, .page-content h4 { margin: 30px 0 12px; font-size: 19px; line-height: 1.25; }
.article-content h2, .page-content h2 { padding: 0; border: 0; }
.article-content h2::before, .article-content h3::before, .page-content h2::before, .page-content h3::before { content: none !important; display: none !important; }
.article-content a, .page-content a { color: #a4144d; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.article-content a { color: #ef83aa; }
.article-content a:hover, .page-content a:hover { color: var(--ed-accent); }
.article-content strong, .page-content strong { color: #171519; }
.article-content strong { color: #f6f2ed; }
.article-content code, .page-content code { overflow-wrap: anywhere; word-break: break-word; }
.article-content pre, .page-content pre { max-width: 100%; overflow-x: auto; }
.article-content pre code, .page-content pre code { overflow-wrap: normal; word-break: normal; }
.article-content hr, .page-content hr { margin: 44px 0; border: 0; border-top: 1px solid var(--ed-line); }
.article-content hr { border-color: #3c393e; }
.article-content blockquote, .page-content blockquote { margin: 32px 0; padding: 22px 26px; border: 0; border-left: 3px solid var(--ed-accent); background: #e5e1d9; color: #292629; }
.article-content blockquote { background: #252228; color: #d1cace; }
.article-content figure, .page-content figure { margin-top: 34px; margin-bottom: 34px; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.article-content figure img, .page-content figure img { width: auto; max-width: 100%; height: auto; max-height: none; border-radius: 8px; background: transparent; }
.article-content figcaption, .page-content figcaption { margin-top: 10px; color: #716c67; font: 500 14px/1.55 Arial, sans-serif; text-align: left; }
.article-content figcaption { color: #999397; }
.article-content table, .page-content table { width: 100%; border-collapse: collapse; font: 13px/1.45 Arial, Helvetica, sans-serif; }
.article-content th, .page-content th { padding: 12px 13px; border: 1px solid #3c393e; background: var(--ed-night); color: #fff; text-align: left; }
.article-content td, .page-content td { padding: 12px 13px; border: 1px solid #c0bab1; vertical-align: top; }
.article-content td { border-color: #454147; }
.article-content .kg-callout-card, .page-content .kg-callout-card { border-radius: 8px; }
.article-content .kg-bookmark-card, .page-content .kg-bookmark-card { border-color: #bcb6ad; border-radius: 8px; background: #e9e5dd; }
.article-content .kg-bookmark-card { border-color: #454147; background: #252228; }
.article-content .kg-button-card a, .page-content .kg-button-card a { border-radius: 0; background: var(--ed-accent); color: #fff; text-decoration: none; }
.article-content .relbox { margin-top: 54px; padding: 28px; border-radius: 10px; background: var(--ed-night); color: #eeeae6; }
.article-content .relbox h2 { margin-top: 0; color: #fff; }
.article-content .relbox a { color: #f0a1be; }
.article-content .relbox ul { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; padding: 0; list-style: none; }
.article-content .relbox li { margin: 0; }
.article-content .relbox a { padding: 13px 0; display: block; border: 0; border-bottom: 1px solid #454147; border-radius: 0; background: transparent; font-size: 15px; line-height: 1.45; }

.compact-article-toc { display: none; }
.compact-article-toc summary { min-height: 68px; padding: 10px 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; border-top: 1px solid #48434a; border-bottom: 1px solid #48434a; background: #201d22; color: #f5f0ec; cursor: pointer; list-style: none; transition: background-color .18s ease, border-color .18s ease; }
.compact-article-toc summary::-webkit-details-marker { display: none; }
.compact-article-toc summary:hover { background: #262228; border-color: #5b555d; }
.compact-article-toc summary:focus-visible { outline: 2px solid var(--ed-accent); outline-offset: -3px; }
.compact-article-toc .toc-heading { min-width: 0; display: grid; gap: 3px; }
.compact-article-toc .toc-heading small { color: #b9b1b6; font: 650 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .1em; text-transform: uppercase; }
.compact-article-toc .toc-heading strong { color: #f5f0ec; font: 720 16px/1.2 Arial, Helvetica, sans-serif; }
.compact-article-toc .toc-summary-meta { display: flex; gap: 13px; align-items: center; }
.compact-article-toc .toc-count { color: #b5aeb3; font: 650 10px "SFMono-Regular", Consolas, monospace; letter-spacing: .07em; text-transform: uppercase; }
.compact-article-toc .toc-action { min-width: 60px; padding: 7px 10px; border: 1px solid #5c555d; border-radius: 999px; color: #f5f0ec; font: 700 10px/1 "SFMono-Regular", Consolas, monospace; letter-spacing: .07em; text-align: center; text-transform: uppercase; }
.compact-article-toc .toc-action::before { content: "Open"; }
.compact-article-toc[open] .toc-action::before { content: "Close"; }
.compact-article-toc .toc-summary-meta i { width: 9px; height: 9px; margin: -4px 3px 0 0; display: block; border-right: 2px solid var(--ed-accent); border-bottom: 2px solid var(--ed-accent); transform: rotate(45deg); transition: margin .18s ease, transform .18s ease; }
.compact-article-toc[open] .toc-summary-meta i { margin-top: 4px; transform: rotate(225deg); }
.compact-article-toc .ed-rail-toc { margin: 0; padding: 8px 22px 16px; display: grid; grid-template-columns: 1fr 1fr; column-gap: 30px; list-style: none; background: #1b191d; counter-reset: compact-toc; }
.compact-article-toc .ed-rail-toc li { margin: 0; padding: 0; counter-increment: compact-toc; }
.compact-article-toc .ed-rail-toc a { position: relative; min-height: 48px; padding: 11px 0; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: center; border-bottom: 1px solid #353238; color: #d4cdd1; font: 14px/1.35 Arial, Helvetica, sans-serif; text-decoration: none; text-wrap: pretty; }
.compact-article-toc .ed-rail-toc a::before { content: counter(compact-toc, decimal-leading-zero) !important; display: block !important; padding-left: 2px; color: #777177; font: 650 9px "SFMono-Regular", Consolas, monospace; }
.compact-article-toc .ed-rail-toc a::after { content: ""; position: absolute; top: 12px; bottom: 12px; left: 34px; width: 2px; background: transparent; }
.compact-article-toc .ed-rail-toc a:hover, .compact-article-toc .ed-rail-toc a.on { color: #fff; }
.compact-article-toc .ed-rail-toc a.on::before { color: var(--ed-accent); }
.compact-article-toc .ed-rail-toc a.on::after { background: var(--ed-accent); }

.article-rail { position: sticky; top: 90px; display: grid; gap: 0; }
.article-rail > section, .article-rail > details { margin: 0; padding: 0; border: 0; border-top: 1px solid #4a464c; border-radius: 0; background: transparent; box-shadow: none; }
.article-rail .ed-rail-bar { min-height: 0; padding: 13px 0 10px; display: flex; align-items: center; border: 0; background: transparent; color: #8f898d; font: 700 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .09em; text-transform: uppercase; }
.article-rail summary.ed-rail-bar { cursor: pointer; list-style: none; }
.article-rail summary.ed-rail-bar::-webkit-details-marker { display: none; }
.article-rail summary.ed-rail-bar > span { display: none; margin-left: auto; color: var(--ed-accent); font-size: 15px; font-weight: 400; transition: transform .18s ease; }
.article-rail details[open] summary.ed-rail-bar > span { transform: rotate(45deg); }
.article-rail .ed-rail-pad { padding: 0; }
.article-rail .ed-rail-action { min-height: 55px; margin: 0 0 8px; padding: 11px 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 0; border-radius: 0; background: var(--ed-accent); color: #fff; font-size: 12px; font-weight: 720; line-height: 1.35; text-align: center; }
.article-rail .ed-rail-action:last-child { margin-bottom: 0; }
.article-rail .action-panel .ed-rail-action:last-child { border-bottom: 0; }
.article-rail .ed-rail-action small { margin-top: 4px; color: rgba(255,255,255,.74); font: 500 9px "SFMono-Regular", Consolas, monospace; }
.article-rail .ed-rail-action.ghost { min-height: 48px; align-items: flex-start; border: 0; border-bottom: 1px solid #3f3b41; background: transparent; color: #eeeae6; text-align: left; }
.article-rail .ed-rail-action.ghost small { color: #8f898d; }
.article-rail .ed-rail-related > a { padding: 11px 0; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 10px; align-items: center; border: 0; border-bottom: 1px solid #454147; background: transparent; }
.article-rail .ed-rail-related > a:last-child { border-bottom: 0; }
.article-rail .ed-rail-related > a:hover { color: #fff; }
.article-rail .ed-rail-related img { width: 76px; height: auto; aspect-ratio: 16/9; object-fit: cover; border-radius: 5px; }
.article-rail .ed-rail-related b { color: #eeeae6; font-size: 11px; line-height: 1.3; overflow-wrap: anywhere; }
.article-rail .ed-rail-related .cat { display: block; margin-top: 4px; color: #77716c; font: 600 8px "SFMono-Regular", Consolas, monospace; text-transform: uppercase; }
.article-rail .ed-rail-toc { margin: 0; padding: 0; display: grid; gap: 0; list-style: none; counter-reset: rail-toc; }
.article-rail .ed-rail-toc li { margin: 0; padding: 0; }
.article-rail .ed-rail-toc li { counter-increment: rail-toc; }
.article-rail .ed-rail-toc a { position: relative; min-height: 46px; padding: 10px 0; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 8px; align-items: center; border: 0; border-bottom: 1px solid #37343a; color: #c8c1c5; font-size: 13px; line-height: 1.38; overflow-wrap: break-word; text-wrap: pretty; }
.article-rail .ed-rail-toc a::before { content: counter(rail-toc, decimal-leading-zero) !important; display: block !important; padding-left: 2px; color: #716b71; font: 650 8px "SFMono-Regular", Consolas, monospace; }
.article-rail .ed-rail-toc a::after { content: ""; position: absolute; top: 10px; bottom: 10px; left: 29px; width: 2px; background: transparent; }
.article-rail .ed-rail-toc a:hover, .article-rail .ed-rail-toc a.on { color: #fff; }
.article-rail .ed-rail-toc a.on::before { color: var(--ed-accent); }
.article-rail .ed-rail-toc a.on::after { background: var(--ed-accent); }

.article-outro { grid-column: 1; width: 100%; max-width: none; margin: 55px 0 94px; }
.article-outro .author { padding: 25px 0; display: grid; grid-template-columns: 48px 1fr; gap: 18px; border: 0; border-top: 1px solid #454147; border-bottom: 1px solid #454147; border-radius: 0; background: transparent; box-shadow: none; }
.article-outro .avatar { width: 46px; height: 46px; background: var(--ed-night); color: #fff; }
.article-outro .author b { color: #f2eee9; font-size: 14px; }
.article-outro .author p { max-width: 640px; margin: 6px 0 10px; color: #aaa4a7; font: 14px/1.56 Arial, sans-serif; }
.article-outro .author a { color: #eeeae6; font: 700 10px "SFMono-Regular", Consolas, monospace; letter-spacing: .06em; text-transform: uppercase; }

/* Editorial pages */
.page-masthead, .author-masthead {
    margin: 0 0 42px;
    padding: 52px 56px;
    overflow: hidden;
    border: 1px solid #2f2c31;
    border-radius: 16px;
    background: var(--ed-night);
    color: #f6f2ed;
}
.page-masthead h1, .author-masthead h1 { max-width: 940px; margin: 0; color: #f6f2ed; font-size: clamp(44px, 5.2vw, 68px); line-height: .99; letter-spacing: -.057em; }
.page-masthead .editorial-kicker, .author-masthead .editorial-kicker { color: #e85b8f; }
.page-cover { max-width: 960px; margin: -20px auto 42px; overflow: hidden; border-radius: 12px; background: var(--ed-night); }
.page-cover img { width: 100%; max-height: 560px; object-fit: cover; }
.page-content { max-width: 860px; margin: 0 auto 100px; padding: 48px 52px; border: 0; border-top: 1px solid #302d32; border-radius: 0; background: var(--ed-night); color: #d1cace; }
.page-content p, .page-content li, .page-content td { color: #d1cace !important; }
.page-content h2, .page-content h3, .page-content h4, .page-content strong { color: #f4f0ec; }
.page-content a { color: #ef83aa; }
.page-content hr { border-color: #3c393e; }
.page-content blockquote { background: #252228; color: #d1cace; }
.page-content figcaption { color: #999397; }
.page-content td { border-color: #454147; }

.author-masthead { display: grid; grid-template-columns: 88px 1fr; gap: 28px; align-items: center; }
.author-mark { width: 82px; height: 82px; display: grid; place-items: center; border-radius: 50%; background: #f1eee9; color: var(--ed-night); font: 700 16px "SFMono-Regular", Consolas, monospace; }
.author-masthead h1 { margin-bottom: 16px; }
.author-masthead p:last-child { max-width: 720px; margin: 0; color: #bcb6b9; font-size: 15px; line-height: 1.55; }
.author-masthead p strong { color: #f3efeb; }
.author-bio { max-width: 900px; margin: 0 auto 78px; display: grid; grid-template-columns: 1fr 1fr; gap: 44px; color: #4e4a47; font: 17px/1.72 Georgia, "Times New Roman", serif; }
.author-bio p { margin: 0; }
.author-bio a { color: #a4144d; text-decoration: underline; text-underline-offset: 3px; }

/* Compatibility for existing Ghost markup during preview and safe theme fallback. */
body.page-template .track,
body.author-template .track,
body:not(.home-template) .track.archive {
    margin: 0 0 70px;
    border: 0;
    background: transparent;
    box-shadow: none;
}
body.page-template .track-head,
body.author-template .track-head,
body:not(.home-template) .track.archive .track-head {
    display: block;
    margin: 18px 0 34px;
    border: 0;
    background: transparent;
}
body.page-template .track-head { padding: 46px 50px; border: 1px solid #302d32; border-radius: 14px; background: var(--ed-night); }
body.page-template .th-strip,
body.author-template .th-strip,
body:not(.home-template) .track.archive .th-strip {
    min-height: 0;
    padding: 0;
    display: block;
    border: 0;
    background: transparent;
}
body.page-template .th-strip .no,
body.author-template .th-strip .no,
body:not(.home-template) .track.archive .th-strip .no {
    display: block;
    margin-bottom: 13px;
    color: var(--ed-accent);
    font: 700 10px "SFMono-Regular", Consolas, monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
body.page-template .th-strip .nm,
body.page-template .th-strip .io,
body.author-template .th-strip .nm,
body.author-template .th-strip .io,
body:not(.home-template) .track.archive .th-strip .nm,
body:not(.home-template) .track.archive .th-strip .io { display: none; }
body.page-template .th-strip .no::before,
body.author-template .th-strip .no::before,
body:not(.home-template) .track.archive .th-strip .no::before { content: none !important; }
body.page-template .th-main,
body.author-template .th-main,
body:not(.home-template) .track.archive .th-main {
    min-height: 0;
    padding: 0;
    display: block;
    border: 0;
    background: transparent;
}
body.page-template .track .th-h1,
body.author-template .track .th-h1,
body:not(.home-template) .track.archive .th-h1 {
    max-width: 980px;
    margin: 0;
    color: var(--ed-ink);
    font-size: clamp(40px, 5vw, 62px);
    line-height: .99;
    letter-spacing: -.055em;
}
body.page-template .track .th-h1 { color: #f4f0ec; }
body.page-template .track .lane,
body.author-template .track .lane,
body:not(.home-template) .track.archive .lane {
    padding: 0;
    border: 0;
    background: transparent;
}
body.author-template .track .prose { max-width: 900px; margin: 0; color: #363234; font: 17px/1.7 Georgia, "Times New Roman", serif; }
body.author-template .track .prose a { color: #a4144d; text-decoration: underline; text-underline-offset: 3px; }
body.author-template .track.hubintro { margin-bottom: 56px; }
body.author-template .track.hubintro .track-head {
    margin: 18px 0 0;
    padding: 52px 56px;
    overflow: hidden;
    border: 1px solid #2f2c31;
    border-radius: 0;
    background: var(--ed-night);
}
body.author-template .track.hubintro .th-strip .no { color: #e85b8f; }
body.author-template .track.hubintro .th-h1 { color: #f6f2ed; }
body.author-template .track.hubintro .lane { padding: 34px 56px 0; }
body.author-template .track.hubintro .prose {
    max-width: 980px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 44px;
    color: #4e4a47;
}
body.author-template .track.hubintro .prose p { margin: 0; }
body.page-template .track .pagebody { max-width: 860px; margin: 0 auto; padding: 48px 52px; border: 0; border-top: 1px solid #302d32; border-radius: 0; background: var(--ed-night); color: #d1cace; }
body.page-template .track .pagebody p, body.page-template .track .pagebody li, body.page-template .track .pagebody td { color: #d1cace !important; }
body.page-template .track .pagebody h2, body.page-template .track .pagebody h3, body.page-template .track .pagebody h4, body.page-template .track .pagebody strong { color: #f4f0ec; }
body.page-template .track .pagebody a { color: #ef83aa; }
body.page-template .track .pagebody h2::before { content: none !important; display: none !important; }

/* Tag hubs: preserve the existing hub copy and schema, replace the old console skin. */
body.tag-template .track { --route: var(--ed-accent); margin: 0 0 70px; border: 0; background: transparent; box-shadow: none; }
body.tag-template .track.t-cyan, body.tag-template .track.t-core-editing { --route: var(--ed-blue); }
body.tag-template .track.t-green, body.tag-template .track.t-sound-forge-restoration-guides { --route: var(--ed-green); }
body.tag-template .track.t-amber, body.tag-template .track.t-mastering { --route: var(--ed-amber); }
body.tag-template .track.t-violet, body.tag-template .track.t-workflows { --route: var(--ed-violet); }
body.tag-template .track-head { display: block; margin: 18px 0 34px; border: 0; background: transparent; }
body.tag-template .th-strip { min-height: 0; padding: 0; display: block; border: 0; background: transparent; }
body.tag-template .th-strip .no { width: max-content; min-height: 24px; margin-bottom: 15px; padding: 0 8px; display: inline-flex; align-items: center; border: 1px solid var(--route); color: var(--route); font: 700 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .1em; text-transform: uppercase; }
body.tag-template .th-strip .no::before { content: none; }
body.tag-template .th-strip .nm, body.tag-template .th-strip .io { display: none; }
body.tag-template .th-main { min-height: 0; padding: 0; display: block; border: 0; background: transparent; }
body.tag-template .th-h1 { max-width: 1000px; margin: 0; color: var(--ed-ink); font-size: clamp(44px, 5vw, 66px); line-height: .99; letter-spacing: -.057em; }
body.tag-template .lane { padding: 0; display: grid; grid-template-columns: minmax(0, 810px) 330px; gap: 70px; align-items: start; border: 0; background: transparent; }
body.tag-template .prose { width: 100%; min-width: 0; max-width: none; margin: 0; color: #292729; font-family: Georgia, "Times New Roman", serif; font-size: 17px; line-height: 1.7; }
body.tag-template .prose > p:first-child { font-size: 20px; line-height: 1.58; }
body.tag-template .prose p { margin-top: 0; margin-bottom: 21px; }
body.tag-template .prose h2 { margin: 48px 0 16px; color: var(--ed-ink); font-family: Arial, Helvetica, sans-serif; font-size: 31px; line-height: 1.1; letter-spacing: -.038em; }
body.tag-template .prose h3 { color: var(--ed-ink); font-family: Arial, Helvetica, sans-serif; }
body.tag-template .prose h3::before { content: none; }
body.tag-template .prose strong { color: var(--ed-ink); }
body.tag-template .prose a { color: #a4144d; text-decoration: underline; text-underline-offset: 3px; }
body.tag-template .prose .dl { margin: 25px 0 29px; padding: 19px 22px; border: 0; border-left: 3px solid var(--route); border-radius: 0; background: #e5e1d9; color: #3b3738; font-size: 15px; }
body.tag-template .prose .dl b { color: var(--route); font: 700 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
body.tag-template .wftable { width: 100%; margin: 28px 0 36px; overflow-x: auto; border: 1px solid #b9b3aa; background: #e8e4dc; }
body.tag-template .wftable table { min-width: 740px; width: 100%; margin: 0; border-collapse: collapse; color: var(--ed-ink); font: 13px/1.45 Arial, sans-serif; }
body.tag-template .wftable th { padding: 12px 13px; border: 1px solid #3c393e; background: var(--ed-night); color: #fff; text-align: left; }
body.tag-template .wftable td { padding: 12px 13px; border: 1px solid #c7c1b8; vertical-align: top; }
body.tag-template .wftable td:first-child { color: var(--route); font: 700 10px "SFMono-Regular", Consolas, monospace; letter-spacing: .05em; text-transform: uppercase; }
body.tag-template .wf-sym td:first-child { color: var(--ed-ink); font: 650 13px Arial, sans-serif; letter-spacing: 0; text-transform: none; }
body.tag-template .console.hubfaq { position: sticky; top: 90px; width: 100%; max-width: none; margin: 0; overflow: hidden; border: 0; border-top: 1px solid #aaa49b; border-bottom: 1px solid #aaa49b; border-radius: 0; background: transparent; }
body.tag-template .console.hubfaq details { border-bottom: 1px solid #c7c1b8; background: transparent; }
body.tag-template .console.hubfaq details:last-child { border-bottom: 0; }
body.tag-template .console.hubfaq summary { min-height: 56px; padding: 15px 16px; display: flex; gap: 12px; align-items: flex-start; cursor: pointer; list-style: none; color: var(--ed-ink); font: 660 14px/1.5 Arial, sans-serif; transition: background .15s ease; }
body.tag-template .console.hubfaq summary::-webkit-details-marker { display: none; }
body.tag-template .console.hubfaq summary::before { content: "+"; flex: 0 0 21px; width: 21px; height: 21px; margin-top: 1px; display: grid; place-content: center; border: 1px solid #c0b9af; border-radius: 50%; color: var(--route, var(--ed-accent)); font: 400 15px/1 Arial, sans-serif; transition: border-color .15s ease, background .15s ease; }
body.tag-template .console.hubfaq summary:hover { background: rgba(21, 20, 22, .035); }
body.tag-template .console.hubfaq summary:hover::before { border-color: var(--route, var(--ed-accent)); background: rgba(21, 20, 22, .05); }
body.tag-template .console.hubfaq summary:focus-visible { outline: 2px solid var(--route, var(--ed-accent)); outline-offset: -2px; }
body.tag-template .console.hubfaq details[open] summary { background: rgba(21, 20, 22, .03); }
body.tag-template .console.hubfaq details[open] summary::before { content: "−"; border-color: var(--route, var(--ed-accent)); background: rgba(21, 20, 22, .05); }
body.tag-template .console.hubfaq details p { margin: 0; padding: 2px 16px 20px 49px; color: #5c5753; font: 14px/1.62 Arial, sans-serif; }
body.tag-template .diag.router { width: 100%; margin: 26px 0 42px; overflow: hidden; border: 0; border-top: 1px solid #aaa49b; border-bottom: 1px solid #aaa49b; border-radius: 0; background: transparent; }
body.tag-template .diag.router a { min-height: 58px; padding: 13px 15px; display: grid; grid-template-columns: 112px minmax(0, 1fr) 42px; gap: 16px; align-items: center; border-bottom: 1px solid #c7c1b8; background: transparent; }
body.tag-template .diag.router a:last-child { border-bottom: 0; }
body.tag-template .diag.router a:hover { background: #ded9d0; }
body.tag-template .diag.router .code { color: var(--route); font: 700 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .07em; }
body.tag-template .diag.router .code::before { content: none; }
body.tag-template .diag.router .desc { color: #5b5652; font: 13px/1.45 Arial, sans-serif; }
body.tag-template .diag.router .desc b { color: var(--ed-ink); }
body.tag-template .diag.router .fix { color: var(--route); font: 700 9px "SFMono-Regular", Consolas, monospace; }

/* Libraries and article cards */
.archive-masthead, .archive-subhead { padding: 72px 0 38px; }
.archive-masthead h1 { max-width: 900px; margin: 0; font-size: clamp(46px, 5.5vw, 70px); line-height: .98; letter-spacing: -.058em; }
.archive-subhead { margin-top: 70px; padding-top: 55px; border-top: 1px solid #aaa49b; }
.archive-subhead h2 { margin: 0; font-size: clamp(36px, 4vw, 50px); line-height: 1.02; letter-spacing: -.052em; }
body.tag-template .archive { padding-top: 25px; border-top: 1px solid #aaa49b; }
body.tag-template .archive .track-head { margin-bottom: 28px; }
body.tag-template .archive .th-h1 { font-size: clamp(34px, 4vw, 48px); }
body.tag-template .archive .lane { display: block; }

body:not(.home-template) .clips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 28px; }
body:not(.home-template) .clip { min-width: 0; display: flex; flex-direction: column; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body:not(.home-template) .clip .cover { position: relative; display: block; overflow: hidden; aspect-ratio: 16/9; border-radius: 10px; background: #d8d4cc; }
body:not(.home-template) .clip .cover img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.84) contrast(1.02); transition: transform .28s ease, filter .28s ease; }
body:not(.home-template) .clip:hover .cover img { transform: scale(1.025); filter: saturate(.95) contrast(1.02); }
body:not(.home-template) .clip .shade, body:not(.home-template) .clip canvas { display: none; }
body:not(.home-template) .clip > .head { order: 2; min-height: 0; margin: 15px 0 0; padding: 0; display: flex; justify-content: space-between; align-items: center; border: 0; background: transparent !important; color: #6e6863 !important; font: 700 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .075em; text-transform: uppercase; }
body:not(.home-template) .clip .body { order: 3; min-height: 170px; padding: 0 0 20px; display: flex; flex-direction: column; border-bottom: 1px solid #c1bbb2; }
body:not(.home-template) .clip .card-meta { margin: 15px 0 10px; display: flex; justify-content: space-between; gap: 16px; color: #6e6863; font: 700 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .075em; text-transform: uppercase; }
body:not(.home-template) .clip h2, body:not(.home-template) .clip h3 { margin: 10px 0 9px; color: var(--ed-ink); font-size: 22px; line-height: 1.11; letter-spacing: -.04em; }
body:not(.home-template) .clip .card-meta + h2, body:not(.home-template) .clip .card-meta + h3 { margin-top: 0; }
body:not(.home-template) .clip .body > p:not(.card-meta) { margin: 0; color: #625d59; font-size: 13px; line-height: 1.52; }
body:not(.home-template) .clip .hint { margin-top: auto; padding-top: 18px; color: var(--ed-accent); font-size: 11px; font-weight: 720; }
body:not(.home-template) .clip:hover h2, body:not(.home-template) .clip:hover h3 { color: #9f164b; }

body:not(.home-template) .pagination { margin: 50px 0 90px; display: flex; justify-content: space-between; align-items: center; color: #706b66; font: 650 10px "SFMono-Regular", Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
body:not(.home-template) .pagination a { padding: 10px 14px; border: 1px solid #bdb7ae; border-radius: 0; color: var(--ed-ink); }
body:not(.home-template) .pagination a:hover { border-color: var(--ed-accent); background: var(--ed-accent); color: #fff; }

.editorial-footer { margin-top: 80px; padding: 50px max(24px, calc((100vw - var(--ed-shell)) / 2)) 22px; background: var(--ed-night); color: #eeeae4; }
.editorial-footer-main { padding-bottom: 40px; display: grid; grid-template-columns: 1fr auto; gap: 40px; }
.editorial-footer-main strong { font-size: 20px; letter-spacing: -.035em; }
.editorial-footer-main p { max-width: 420px; margin: 9px 0 0; color: #918d8d; font-size: 12px; }
.editorial-footer-main nav { display: grid; grid-template-columns: repeat(3, auto); gap: 12px 24px; color: #aaa5a5; font-size: 11px; }
.editorial-footer-main a:hover { color: #fff; }
.editorial-footer-small { padding-top: 18px; display: flex; justify-content: space-between; border-top: 1px solid var(--ed-line-dark); color: #9c969b; font: 500 8px "SFMono-Regular", Consolas, monospace; letter-spacing: .05em; text-transform: uppercase; }
.editorial-footer-small p { margin: 0; }
.editorial-footer-hubs { padding: 0 0 20px; display: grid; grid-template-columns: max-content 1fr; gap: 6px 26px; align-items: baseline; }
.editorial-footer-hubs b { color: #6f6a6a; font: 700 8px "SFMono-Regular", Consolas, monospace; letter-spacing: .12em; text-transform: uppercase; }
.editorial-footer-hubs div { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.editorial-footer-hubs a { color: #aaa5a5; font-size: 12px; text-decoration: none; }
.editorial-footer-hubs a:hover { color: #fff; }
@media (max-width: 700px) { .editorial-footer-hubs { grid-template-columns: 1fr; gap: 10px; } }
.footer-legal { display: flex; gap: 18px; }
.footer-legal a { color: #9c969b; text-decoration: none; }
.footer-legal a:hover { color: #fff; }


@media (max-width: 1040px) {
    .editorial-header { grid-template-columns: 1fr auto auto; gap: 18px; }
    .editorial-nav { display: none; }
    .editorial-menu { position: relative; display: block; justify-self: end; }
    .editorial-menu summary { width: 44px; height: 44px; display: grid; place-content: center; gap: 6px; border: 1px solid #4c494f; list-style: none; cursor: pointer; }
    .editorial-menu summary::-webkit-details-marker { display: none; }
    .editorial-menu summary span { width: 16px; height: 1px; background: #e7e2de; }
    .editorial-menu nav { position: absolute; z-index: 80; top: 49px; right: 0; width: 225px; padding: 8px 14px; display: grid; background: var(--ed-night-2); border: 1px solid #4c494f; box-shadow: 0 18px 40px rgba(0,0,0,.28); }
    .editorial-menu nav a { padding: 12px 2px; border-bottom: 1px solid #37343a; color: #eeeae4; font-size: 13px; }
    .article-layout { grid-template-columns: 1fr; gap: 42px; padding-inline: 34px; }
    .article-masthead { grid-column: 1; grid-row: 1; }
    .compact-article-toc { display: block; grid-column: 1 / -1; grid-row: 2; margin: 0; }
    .article-cover { grid-column: 2; grid-row: 1; }
    .article-rail { position: static; }
    .article-rail .contents-panel { display: none; }
    body.tag-template .lane { grid-template-columns: minmax(0, 1fr) 290px; gap: 44px; }
    body:not(.home-template) .clips { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
    body:not(.home-template) .wrap { width: calc(100% - 30px); }
    .editorial-header { height: 62px; padding: 0 15px; grid-template-columns: 1fr auto; gap: 12px; }
    .editorial-trial { display: none; }
    .editorial-menu { position: relative; display: block; justify-self: end; }
    .editorial-menu summary { width: 44px; height: 44px; display: grid; place-content: center; gap: 6px; border: 1px solid #4c494f; list-style: none; cursor: pointer; }
    .editorial-menu summary::-webkit-details-marker { display: none; }
    .editorial-menu summary span { width: 16px; height: 1px; background: #e7e2de; }
    .editorial-menu nav { position: absolute; top: 49px; right: 0; width: 225px; padding: 8px 14px; display: grid; background: var(--ed-night-2); border: 1px solid #4c494f; box-shadow: 0 18px 40px rgba(0,0,0,.28); }
    .editorial-menu nav a { padding: 12px 2px; border-bottom: 1px solid #37343a; color: #eeeae4; font-size: 13px; }

    body:not(.home-template) .crumbs { min-height: 46px; padding-block: 14px; }
    .article-hero { min-height: 0; grid-template-columns: 1fr; border-radius: 12px; }
    .article-masthead { min-height: 0; padding: 40px 24px 28px; grid-column: 1; grid-row: auto; border-right: 0; border-bottom: 1px solid #2f2c31; }
    .article-masthead h1, .page-masthead h1, .author-masthead h1, body.tag-template .th-h1, .archive-masthead h1 { width: 100%; max-width: 100%; font-size: 39px; overflow-wrap: anywhere; }
    .article-masthead .byline { align-items: flex-start; flex-wrap: wrap; }
    .article-masthead .chips { width: 100%; margin-left: 56px; justify-content: flex-start; }
    .article-cover { min-height: 0; grid-column: 1; grid-row: auto; }
    .article-cover img { height: auto; aspect-ratio: 16/9; object-fit: cover; }
    .article-layout { padding: 30px 20px 0; grid-template-columns: 1fr; gap: 42px; border-radius: 0; }
    .compact-article-toc { display: block; grid-column: 1; grid-row: auto; margin: 0; }
    .article-rail .contents-panel { display: none; }
    .article-content, .page-content { font-size: 17px; line-height: 1.68; }
    .article-content table, .page-content table { max-width: 100%; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .article-content h2, .page-content h2 { margin-top: 46px; font-size: 29px; }
    .article-content h3, .page-content h3 { font-size: 22px; }
    .article-content .kg-width-wide, .article-content .kg-width-full, .page-content .kg-width-wide, .page-content .kg-width-full { width: 100%; margin-left: 0; margin-right: 0; }
    .article-rail { position: static; }
    .article-rail .ed-rail-pad { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .article-rail .ed-rail-action { min-height: 52px; }
    .article-rail .ed-rail-action:first-child { grid-column: 1 / -1; }
    .article-rail .ed-rail-action, .article-rail .ed-rail-action:last-child { margin: 0; }
    .article-rail .ed-rail-related > a { grid-template-columns: 96px minmax(0, 1fr); padding: 12px 0; }
    .article-rail .ed-rail-related img { width: 96px; }
    .article-rail .ed-rail-related b { font-size: 13px; }
    .article-rail .ed-rail-toc a { padding: 8px 0; font-size: 13px; line-height: 1.4; }
    .article-rail summary.ed-rail-bar > span { display: block; }
    .article-outro { grid-column: auto; margin-bottom: 28px; }

    .page-masthead, .author-masthead { margin-bottom: 32px; padding: 38px 24px; border-radius: 12px; }
    .page-cover { margin-top: -12px; }
    .page-content { margin-bottom: 70px; }
    .page-content, body.page-template .track .pagebody { padding: 30px 22px; }
    body.page-template .track-head { padding: 36px 24px; }
    .author-masthead { grid-template-columns: 58px 1fr; gap: 17px; }
    .author-mark { width: 58px; height: 58px; font-size: 12px; }
    .author-bio { margin-bottom: 58px; grid-template-columns: 1fr; gap: 20px; font-size: 16px; }
    body.author-template .track.hubintro .track-head { padding: 38px 24px; border-radius: 12px; }
    body.author-template .track.hubintro .lane { padding: 26px 0 0; }
    body.author-template .track.hubintro .prose { grid-template-columns: 1fr; gap: 18px; font-size: 16px; }

    body.tag-template .track-head { margin-top: 8px; }
    body.tag-template .lane { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    body.tag-template .prose { font-size: 17px; }
    body.tag-template .prose > p:first-child { font-size: 19px; }
    body.tag-template .prose h2 { font-size: 28px; }
    body.tag-template .console.hubfaq { position: static; }
    body.tag-template .wftable, body.tag-template .diag.router { width: 100%; }
    body.tag-template .diag.router a { grid-template-columns: 78px minmax(0, 1fr); gap: 10px; }
    body.tag-template .diag.router .fix { display: none; }

    .archive-masthead { padding: 52px 0 30px; }
    .archive-subhead { margin-top: 48px; padding-top: 42px; }
    body:not(.home-template) .clips { grid-template-columns: 1fr; gap: 28px; }
    body:not(.home-template) .clip .body { min-height: 0; }

    .editorial-footer { margin-top: 55px; padding: 42px 15px 20px; }
    .editorial-footer-main { grid-template-columns: 1fr; }
    .editorial-footer-main nav { grid-template-columns: 1fr 1fr; }
    .editorial-footer-small { align-items: flex-start; flex-direction: column; gap: 12px; line-height: 1.6; }
}

@media (max-width: 700px) {
    .compact-article-toc summary { min-height: 64px; padding: 9px 16px; gap: 12px; }
    .compact-article-toc .toc-heading small { font-size: 8px; }
    .compact-article-toc .toc-heading strong { font-size: 14px; }
    .compact-article-toc .toc-summary-meta { gap: 9px; }
    .compact-article-toc .toc-count { font-size: 9px; }
    .compact-article-toc .toc-action { min-width: 52px; padding: 7px 8px; font-size: 9px; }
    .compact-article-toc .ed-rail-toc { padding-inline: 18px; grid-template-columns: 1fr; column-gap: 0; }
}

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

/* v76: one visual system. Long-form content now uses the same paper, sans
   typography and editorial components as the homepage. */
.article-layout {
    padding: 46px 0 0;
    gap: 58px;
    border-top: 1px solid #aaa49b;
    background: transparent;
}
.article-content,
.page-content {
    color: #292729;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    line-height: 1.72;
    letter-spacing: -.008em;
}
.article-content p,
.article-content li,
.article-content td,
.page-content p,
.page-content li,
.page-content td { color: #343033 !important; }
.article-content strong,
.page-content strong { color: var(--ed-ink); }
.article-content h2,
.article-content h3,
.article-content h4,
.page-content h2,
.page-content h3,
.page-content h4 { color: var(--ed-ink); }
.article-content a,
.page-content a { color: #a4144d; }
.article-content hr,
.page-content hr { border-color: var(--ed-line); }
.article-content blockquote,
.page-content blockquote {
    border-left-color: var(--ed-accent);
    background: #e5e1d9;
    color: #343033;
}
.article-content figcaption,
.page-content figcaption { color: #716c67; }
.article-content figure,
.page-content figure {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.article-content td,
.page-content td { border-color: #c0bab1; }
.article-content .kg-bookmark-card,
.page-content .kg-bookmark-card { border-color: #bcb6ad; background: #e9e5dd; }
.article-content .relbox {
    margin-top: 56px;
    padding: 28px 30px;
    border-top: 3px solid var(--ed-accent);
    border-radius: 0;
    background: #e5e1d9;
    color: var(--ed-ink);
}
.article-content .relbox h2 { color: var(--ed-ink); }
.article-content .relbox a { color: #8f1645; }
.article-content .relbox a { border-color: #c5bfb6; }

.audio-tools-switcher {
    margin: 58px 0 10px;
    border-top: 3px solid var(--ed-accent);
    border-bottom: 1px solid #aaa49b;
    background: #e7e3dc;
}
.audio-tools-switcher header {
    min-height: 54px;
    padding: 12px 17px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    border-bottom: 1px solid #c2bcb3;
}
.audio-tools-switcher header > span {
    color: #68625e;
    font: 700 10px "SFMono-Regular", Consolas, monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.audio-tools-switcher header > a,
.audio-tools-switcher header > a:visited {
    color: #8f1645;
    font-size: 13px;
    font-weight: 720;
    text-decoration: underline;
    text-decoration-color: #b36a86;
    text-underline-offset: 3px;
}
.audio-tools-switcher header i { margin-left: 4px; font-style: normal; }
.audio-tools-switcher nav { display: grid; grid-template-columns: 1fr 1fr; }
.audio-tools-switcher nav a {
    min-width: 0;
    min-height: 74px;
    padding: 15px 17px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-bottom: 1px solid #c8c2b9;
    color: var(--ed-ink);
    text-decoration: none;
    transition: background .15s ease;
}
.audio-tools-switcher nav a:nth-child(odd) { border-right: 1px solid #c8c2b9; }
.audio-tools-switcher nav a:hover { background: #ded9d0; }
.audio-tools-switcher nav b { color: var(--ed-ink); font-size: 14px; line-height: 1.35; }
.audio-tools-switcher nav small { margin-top: 3px; color: #69645f; font-size: 11px; line-height: 1.4; }
.audio-tools-switcher nav a:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }

body.tag-template .audio-tools-hub { --route: var(--ed-accent); }
body.tag-template .audio-tools-hub .audio-tools-router .code,
body.tag-template .audio-tools-hub .prose .dl b { color: #8f1645; }

.article-rail { color: var(--ed-ink); }
.article-rail > section,
.article-rail > details { border-top-color: #aaa49b; }
.article-rail .ed-rail-bar { color: #6e6863; }
.article-rail .ed-rail-action.ghost {
    border-bottom-color: #c7c1b8;
    color: var(--ed-ink);
}
.article-rail .ed-rail-action.ghost small { color: #6e6863; }
.article-rail .ed-rail-related > a { border-bottom-color: #c7c1b8; }
.article-rail .ed-rail-related > a:hover b,
.article-rail .ed-rail-related b { color: var(--ed-ink); }
.article-rail .ed-rail-related .cat { color: #6e6863; }
.article-rail .ed-rail-toc a {
    border-bottom-color: #c7c1b8;
    color: #514c49;
}
.article-rail .ed-rail-toc a:hover,
.article-rail .ed-rail-toc a.on { color: var(--ed-ink); }
.article-rail .ed-rail-toc a.on { box-shadow: none; }
.article-rail .ed-rail-toc a.on::before { color: var(--ed-accent); }

.article-outro .author {
    border-color: #b8b2aa;
    background: transparent;
}
.article-outro .avatar { background: var(--ed-night); color: #fff; }
.article-outro .author b { color: var(--ed-ink); }
.article-outro .author p { color: #625d59; }
.article-outro .author a { color: #8f1645; }

.page-content {
    max-width: 820px;
    margin-bottom: 100px;
    padding: 10px 0 0;
    border: 0;
    background: transparent;
}
.page-content p,
.page-content li,
.page-content td { color: #343033 !important; }
.page-content h2,
.page-content h3,
.page-content h4,
.page-content strong { color: var(--ed-ink); }
.page-content a { color: #a4144d; }
.page-content blockquote { background: #e5e1d9; color: #343033; }
.page-content figcaption { color: #716c67; }
.page-content td { border-color: #c0bab1; }
.author-bio {
    color: #4e4a47;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    line-height: 1.68;
}
body.page-template .track .pagebody {
    max-width: 820px;
    padding: 10px 0 0;
    border: 0;
    background: transparent;
    color: #343033;
}
body.page-template .track .pagebody p,
body.page-template .track .pagebody li,
body.page-template .track .pagebody td { color: #343033 !important; }
body.page-template .track .pagebody h2,
body.page-template .track .pagebody h3,
body.page-template .track .pagebody h4,
body.page-template .track .pagebody strong { color: var(--ed-ink); }
body.page-template .track .pagebody a { color: #a4144d; }

body.tag-template .track:not(.archive) .track-head {
    margin: 18px 0 38px;
    min-height: 410px;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, .98fr) minmax(420px, 1.02fr);
    overflow: hidden;
    border: 1px solid #2f2c31;
    border-radius: 16px;
    background: var(--ed-night);
}
body.tag-template .track:not(.archive) .hub-masthead-copy {
    min-width: 0;
    padding: clamp(38px, 4vw, 62px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
body.tag-template .track:not(.archive) .th-strip .no { color: #f1b1c8; border-color: #a83a63; }
body.tag-template .track:not(.archive) .th-h1 {
    max-width: 760px;
    color: #f6f2ed;
    font-size: clamp(43px, 4.15vw, 68px);
    line-height: .98;
}
body.tag-template .hub-masthead-visual {
    position: relative;
    min-width: 0;
    min-height: 410px;
    margin: 0;
    overflow: hidden;
    border-left: 1px solid #343137;
    background: #0d0c0f;
}
body.tag-template .hub-masthead-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(13,12,15,.2), transparent 24%), linear-gradient(0deg, rgba(13,12,15,.52), transparent 38%);
}
body.tag-template .hub-masthead-visual img {
    width: 100%;
    height: 100%;
    min-height: 410px;
    display: block;
    object-fit: cover;
    object-position: center;
}
body.tag-template .hub-masthead-visual figcaption {
    position: absolute;
    z-index: 1;
    right: 22px;
    bottom: 20px;
    left: 22px;
    width: max-content;
    max-width: calc(100% - 44px);
    margin: 0;
    padding: 10px 13px;
    background: rgba(21,19,23,.82);
    color: #f6f2ed;
    font: 700 11px/1.35 "SFMono-Regular", Consolas, monospace;
    letter-spacing: .035em;
}
body.tag-template .prose {
    color: #343033;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: -.006em;
}
body.tag-template .prose > p:first-child { font-size: 19px; line-height: 1.62; }
body.tag-template .archive .track-head {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
body.tag-template .archive .th-h1 { color: var(--ed-ink); }

/* v102: archive lists are secondary headings, not a second masthead.
   The explicit archive selector also wins over the older compatibility rules. */
body.tag-template .track.archive .track-head {
    margin: 18px 0 26px;
}
body.tag-template .track.archive .th-strip .no {
    width: max-content;
    height: 32px;
    min-height: 32px;
    margin-bottom: 20px;
    padding: 1px 12px 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    font-size: 10px;
    line-height: 1;
}
body.tag-template .track.archive .th-h1 {
    max-width: 820px;
    font-size: clamp(30px, 2.7vw, 42px);
    line-height: 1.05;
    letter-spacing: -.04em;
}
body.tag-template .track.archive .archive-summary {
    max-width: 760px;
    margin: 18px 0 0;
    color: #57514f;
    font: 17px/1.65 Georgia, "Times New Roman", serif;
}

@media (max-width: 520px) {
    body.tag-template .track.archive .th-strip .no {
        height: 30px;
        min-height: 30px;
        margin-bottom: 16px;
        padding-inline: 10px;
        font-size: 9px;
    }
    body.tag-template .track.archive .th-h1 {
        font-size: 31px;
        line-height: 1.08;
    }
}

.article-content .sf-update,
.page-content .sf-update {
    margin: 4px 0 28px;
    padding: 16px 19px;
    border: 0;
    border-left: 3px solid var(--ed-amber);
    background: #e9e4da;
    color: #4f4a46;
    font-size: 14px;
    line-height: 1.6;
}
.article-content .sf-update b,
.page-content .sf-update b {
    display: block;
    margin-bottom: 6px;
    color: #775000 !important;
    font: 700 10px "SFMono-Regular", Consolas, monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* v82: remaining small-text contrast cases measured by Lighthouse. */
.article-rail .ed-rail-action small { color: #fff; }
body.tag-template .prose .dl b,
body.tag-template .wftable td:first-child { color: var(--ed-green); }

@media (max-width: 1040px) {
    .article-layout { padding-inline: 0; }
}

@media (max-width: 900px) {
    .article-layout { padding: 30px 0 0; }
    .article-content,
    .page-content { font-size: 17px; line-height: 1.68; }
    .page-content,
    body.page-template .track .pagebody { padding: 0; }
    body.tag-template .track:not(.archive) .track-head {
        min-height: 0;
        grid-template-columns: 1fr;
        border-radius: 12px;
    }
    body.tag-template .track:not(.archive) .hub-masthead-copy { padding: 36px 26px 40px; }
    body.tag-template .track:not(.archive) .th-h1 { font-size: clamp(38px, 8.2vw, 54px); }
    body.tag-template .hub-masthead-visual {
        min-height: 0;
        aspect-ratio: 16 / 8.7;
        border-top: 1px solid #343137;
        border-left: 0;
    }
    body.tag-template .hub-masthead-visual img { min-height: 0; }
    body.tag-template .prose > p:first-child { font-size: 18px; }
}

@media (max-width: 480px) {
    body.tag-template .track:not(.archive) .hub-masthead-copy { padding: 30px 20px 34px; }
    body.tag-template .track:not(.archive) .th-h1 { font-size: 37px; letter-spacing: -.052em; }
    body.tag-template .hub-masthead-visual { aspect-ratio: 4 / 3; }
    body.tag-template .hub-masthead-visual figcaption {
        right: 14px;
        bottom: 14px;
        left: 14px;
        max-width: calc(100% - 28px);
        font-size: 10px;
    }
}

/* v79: keep one TOC in the article hero on every viewport.
   The desktop rail now contains only actions and related reading, so the
   useful links fit inside the viewport instead of trailing the article. */
@media (min-width: 1041px) {
    .compact-article-toc {
        display: block;
        grid-column: 1 / -1;
        grid-row: 2;
        margin: 0;
    }
}

/* v78: keep article utilities reachable when the sticky rail collapses.
   Narrow desktop/tablet gets one compact utility row before the article;
   phones get the action block first and related reading after the article. */
@media (min-width: 701px) and (max-width: 1040px) {
    .article-layout {
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
        gap: 30px 24px;
    }
    .article-rail {
        grid-column: 1 / -1;
        grid-row: 1;
        position: static;
        display: grid;
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
        gap: 24px;
        align-items: start;
    }
    .article-rail > section,
    .article-rail > details { padding-bottom: 0; }
    .article-rail .action-panel { grid-column: 1; }
    .article-rail .related-panel { grid-column: 2; }
    .article-rail .ed-rail-pad {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    .article-rail .ed-rail-action:first-child { grid-column: 1 / -1; }
    .article-rail .ed-rail-action,
    .article-rail .ed-rail-action:last-child { margin: 0; }
    .article-rail .ed-rail-action { font-size: 13px; }
    .article-rail .ed-rail-related > a {
        grid-template-columns: 80px minmax(0, 1fr);
        padding: 9px 0;
    }
    .article-rail .ed-rail-related img { width: 80px; }
    .article-rail .ed-rail-related b { font-size: 13px; line-height: 1.35; }
    .article-content {
        grid-column: 1 / -1;
        grid-row: 2;
    }
    .article-outro {
        grid-column: 1 / -1;
        grid-row: 3;
    }
}

@media (max-width: 700px) {
    .article-layout { grid-template-columns: 1fr; gap: 30px; }
    .article-rail { display: contents; }
    .article-rail .contents-panel { display: none; }
    .article-rail .action-panel {
        grid-column: 1;
        grid-row: 1;
        padding-bottom: 0;
    }
    .article-rail .ed-rail-action { font-size: 13px; }
    .article-content {
        grid-column: 1;
        grid-row: 2;
    }
    .article-rail .related-panel {
        grid-column: 1;
        grid-row: 3;
        margin-top: 18px;
        padding-bottom: 0;
    }
    .article-outro {
        grid-column: 1;
        grid-row: 4;
    }
    .audio-tools-switcher { margin-top: 46px; }
    .audio-tools-switcher header { align-items: flex-start; flex-direction: column; gap: 7px; }
    .audio-tools-switcher nav { grid-template-columns: 1fr; }
    .audio-tools-switcher nav a,
    .audio-tools-switcher nav a:nth-child(odd),
    .audio-tools-switcher nav a:last-child:nth-child(odd) { grid-column: auto; border-right: 0; }
}

/* v91: textual links must be identifiable without hover. The selector is
   limited to readable copy so cards, buttons, breadcrumbs, navigation and
   link-wrapped images keep their component styling. !important is deliberate:
   long-form copy uses important text colors for legacy content parity. */
:where(
    .article-content,
    .page-content,
    body.page-template .track .pagebody,
    body.tag-template .prose,
    body.author-template .track .prose,
    .author-bio
) :where(p, li, dd, blockquote, figcaption, td) a:not(.kg-btn):not(.kg-bookmark-container),
.home-template :where(.independence, .editorial-heading > p, .author-note p, .faq-list p) a {
    color: #8f1645 !important;
    text-decoration-line: underline !important;
    text-decoration-style: solid !important;
    text-decoration-color: #b36a86 !important;
    text-decoration-thickness: 1.5px !important;
    text-underline-offset: .18em;
    text-decoration-skip-ink: auto;
    transition: color .16s ease, text-decoration-color .16s ease;
}

:where(
    .article-content,
    .page-content,
    body.page-template .track .pagebody,
    body.tag-template .prose,
    body.author-template .track .prose,
    .author-bio
) :where(p, li, dd, blockquote, figcaption, td) a:visited:not(.kg-btn):not(.kg-bookmark-container),
.home-template :where(.independence, .editorial-heading > p, .author-note p, .faq-list p) a:visited {
    color: #8f1645 !important;
    text-decoration-color: #b36a86 !important;
}

:where(
    .article-content,
    .page-content,
    body.page-template .track .pagebody,
    body.tag-template .prose,
    body.author-template .track .prose,
    .author-bio
) :where(p, li, dd, blockquote, figcaption, td) a:hover:not(.kg-btn):not(.kg-bookmark-container),
.home-template :where(.independence, .editorial-heading > p, .author-note p, .faq-list p) a:hover {
    color: var(--ed-accent) !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: 2px !important;
}

/* Callout cards control their own foreground color. Keep that color and use
   the persistent underline as the non-color link cue. */
:is(.article-content, .page-content) .kg-callout-card.kg-callout-card a,
:is(.article-content, .page-content) .kg-callout-card.kg-callout-card a:visited {
    color: inherit !important;
    text-decoration-color: currentColor !important;
}
