html{scroll-behavior:smooth;scroll-padding-top:76px}
/* ===== tokens (light) ===== */
.apx-article-page{
    --bg:#fff; --surface:#f6f8fb; --ink:#0f172a; --ink-2:#2a3445; --muted:#64708a; --line:#e4e8f0;
    --brand:#1d4ed8; --brand-d:#1e40af; --brand-soft:#e8efff;
    --ok:#0f8a5f; --ok-bg:#e6f6ef; --bad:#b42318; --bad-bg:#fdeceb; --warn:#b45309; --warn-bg:#fef3e2;
    --shadow:0 10px 30px rgba(15,23,42,.10); --radius:14px;
    --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
    --sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
    background:var(--bg); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; overflow-x:clip; margin:0;
}
/* ===== tokens (dark) — class/attribute names article-script.js may set ===== */
html[data-theme="dark"] .apx-article-page, html.dark .apx-article-page, html.dark-mode .apx-article-page, html.dark-theme .apx-article-page, html.theme-dark .apx-article-page,
.apx-article-page[data-theme="dark"], .apx-article-page.dark, .apx-article-page.dark-mode, .apx-article-page.dark-theme, .apx-article-page.theme-dark{
    --bg:#0d1117; --surface:#151b24; --ink:#eef1f6; --ink-2:#ccd4e0; --muted:#8b97ab; --line:#252d39;
    --brand:#7aa2ff; --brand-d:#9ab8ff; --brand-soft:#16233f;
    --ok:#3fcf9b; --ok-bg:#12261f; --bad:#ff8a7e; --bad-bg:#2a1614; --warn:#f5a45a; --warn-bg:#2b2014;
    --shadow:0 10px 30px rgba(0,0,0,.5);
}
.apx-article-page main,.apx-article-page main *,.apx-article-page main *::before,.apx-article-page main *::after{box-sizing:border-box}
.apx-article-page a{color:inherit}
.apx-article-page :focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}

/* ===== progress, mini bar, theme button ===== */
.apx-article-page .progress-container{position:fixed;top:0;left:0;width:100%;height:3px;z-index:2000}
.apx-article-page .progress-bar{height:100%;width:0;background:var(--brand)}
.apx-article-page .av-minibar{position:fixed;top:0;left:0;right:0;z-index:1500;transform:translateY(-110%);transition:transform .25s ease;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.apx-article-page .av-minibar.show{transform:none}
.apx-article-page .av-minibar-in{max-width:1100px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:14px}
.apx-article-page .av-minibar-title{flex:1;min-width:0;font:600 14px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apx-article-page .av-minibar-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:6px 14px;font:600 12.5px var(--sans);cursor:pointer;white-space:nowrap}
.apx-article-page .av-minibar-btn:hover{border-color:var(--brand);color:var(--brand)}
.apx-article-page .floating-controls{position:fixed;right:16px;bottom:16px;z-index:800}
.apx-article-page .theme-toggle-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow)}

/* ===== layout ===== */
.apx-article-page .reader-container{max-width:760px;margin:0 auto;padding:28px 20px 0}
.apx-article-page .av-crumbs ol{display:flex;flex-wrap:wrap;gap:4px 8px;list-style:none;margin:0 0 18px;padding:0;font-size:13px;color:var(--muted)}
.apx-article-page .av-crumbs li+li::before{content:"›";margin-right:8px;opacity:.6}
.apx-article-page .av-crumbs a{text-decoration:none}
.apx-article-page .av-crumbs a:hover{color:var(--brand);text-decoration:underline}
.apx-article-page .av-crumbs li[aria-current]{max-width:36ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apx-article-page .av-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.apx-article-page .av-category-tag{display:inline-block;padding:4px 12px;border-radius:99px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:700;letter-spacing:.02em;text-decoration:none}
.apx-article-page .apx-av-paid-header-pill{display:inline-block;padding:4px 12px;border-radius:99px;background:var(--warn-bg);color:var(--warn);font-size:12.5px;font-weight:700}
.apx-article-page .av-title{margin:0 0 14px;font-family:var(--serif);font-size:clamp(30px,5vw,46px);line-height:1.14;font-weight:700;letter-spacing:-.018em;color:var(--ink);overflow-wrap:anywhere}
.apx-article-page .av-deck{margin:0 0 22px;font-family:var(--serif);font-size:clamp(18px,2.4vw,21px);line-height:1.55;color:var(--muted)}

.apx-article-page .av-author-strip{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.apx-article-page .av-meta-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;display:block;background:var(--surface)}
.apx-article-page .av-author-info{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;min-width:0}
.apx-article-page .av-author-name{font-weight:600;font-size:15px;color:var(--ink);text-decoration:none}
.apx-article-page .av-author-name:hover{text-decoration:underline}
.apx-article-page .av-meta-stats{flex-basis:100%;font-size:13px;color:var(--muted)}
.apx-article-page .av-meta-stats .dot{margin:0 6px;opacity:.5}
.apx-article-page .apx-av-badge-container{display:inline-flex;align-items:center;gap:4px}
.apx-article-page .apx-av-badge-verified{display:block;flex-shrink:0}
.apx-article-page .apx-av-badge-icon{width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;color:#9C27B0}
.apx-article-page .av-btn-follow{padding:5px 14px;border-radius:99px;border:1px solid var(--brand);background:transparent;color:var(--brand);font:600 13px var(--sans);cursor:pointer}
.apx-article-page .av-btn-follow:hover{background:var(--brand-soft)}
.apx-article-page .av-btn-follow.active{background:var(--brand);color:#fff}

/* ===== action bars ===== */
.apx-article-page .av-actions-bar,.apx-article-page .av-bottom-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.apx-article-page .av-bottom-actions{margin-top:40px}
.apx-article-page .av-actions-left{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px}
.apx-article-page .av-share-group{display:flex;flex-wrap:wrap;gap:2px}
.apx-article-page .av-stat-item,.apx-article-page .rxn-trigger{display:inline-flex;align-items:center;gap:6px;padding:6px 4px;border:0;background:none;color:var(--muted);font:500 14px var(--sans);text-decoration:none;cursor:pointer}
.apx-article-page .av-stat-item:hover,.apx-article-page .rxn-trigger:hover{color:var(--ink)}
.apx-article-page .av-stat-item svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.apx-article-page .av-stat-item svg.solid-icon{fill:currentColor;stroke:none}
.apx-article-page .av-action-icon.active{color:var(--brand)}
.apx-article-page .av-action-icon.active svg{fill:currentColor}
.apx-article-page .rxn-wrap{position:relative}
.apx-article-page .rxn-trigger .icon{display:inline-flex}
.apx-article-page .rxn-picker{position:absolute;bottom:calc(100% + 8px);left:0;z-index:40;display:none;gap:2px;padding:6px 8px;background:var(--bg);border:1px solid var(--line);border-radius:99px;box-shadow:var(--shadow)}
.apx-article-page .rxn-picker.active,.apx-article-page .rxn-picker.show,.apx-article-page .rxn-picker.open,.apx-article-page .rxn-picker.visible,.apx-article-page .rxn-picker.is-open,.apx-article-page .rxn-wrap.active .rxn-picker,.apx-article-page .rxn-wrap.open .rxn-picker{display:flex}
@media (hover:hover){.apx-article-page .rxn-wrap:hover .rxn-picker{display:flex}}
.apx-article-page .rxn-opt{border:0;background:none;padding:4px;cursor:pointer;border-radius:50%;transition:transform .12s}
.apx-article-page .rxn-opt:hover{transform:scale(1.25)}
.apx-article-page .av-share-btn{width:36px;height:36px;border-radius:50%;border:0;background:none;color:var(--muted);display:inline-grid;place-items:center;cursor:pointer;text-decoration:none}
.apx-article-page .av-share-btn:hover{background:var(--surface);color:var(--brand)}
.apx-article-page .av-share-btn svg{width:18px;height:18px;fill:currentColor}

/* ===== hero ===== */
.apx-article-page .av-hero-img{margin:26px 0 8px}
.apx-article-page .av-hero-img img{display:block;width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;border-radius:var(--radius);background:var(--surface)}
.apx-article-page .av-hero-caption{margin-top:8px;font-size:13px;color:var(--muted);text-align:center}
@media (min-width:900px){.apx-article-page .av-hero-img{margin-inline:-60px}}

/* ===== table of contents ===== */
.apx-article-page .av-toc{margin:26px 0 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.apx-article-page .av-toc summary{cursor:pointer;list-style:none;padding:13px 18px;font:700 12.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
.apx-article-page .av-toc summary::-webkit-details-marker{display:none}
.apx-article-page .av-toc summary::after{content:"+";font-size:18px;line-height:1}
.apx-article-page .av-toc[open] summary::after{content:"–"}
.apx-article-page .av-toc ol{margin:0;padding:0 18px 14px 40px;font:15px/1.5 var(--sans);color:var(--ink-2)}
.apx-article-page .av-toc li{padding:3px 0}
.apx-article-page .av-toc a{text-decoration:none}
.apx-article-page .av-toc a:hover{color:var(--brand);text-decoration:underline}

/* ===== article body ===== */
.apx-article-page .av-content{margin-top:30px;font-family:var(--serif);font-size:20px;line-height:1.8;color:var(--ink-2);overflow-wrap:anywhere;text-align:start}
.apx-article-page .av-content>*:first-child{margin-top:0}
.apx-article-page .av-content p{margin:0 0 1.35em}
.apx-article-page .av-content a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.apx-article-page .av-content h2,.apx-article-page .av-content h3,.apx-article-page .av-content h4{font-family:var(--serif);color:var(--ink);font-weight:700;line-height:1.25;margin:1.9em 0 .6em;text-wrap:balance}
.apx-article-page .av-content h2{font-size:1.6em}
.apx-article-page .av-content h3{font-size:1.28em}
.apx-article-page .av-content h4{font-size:1.1em}
.apx-article-page .av-content strong{font-weight:700;color:var(--ink)}
.apx-article-page .av-content blockquote{margin:1.8em 0;padding:.3em 0 .3em 1.3em;border-inline-start:3px solid var(--brand);color:var(--muted);font-style:italic;font-size:1.05em}
.apx-article-page .av-content blockquote p{margin:0 0 .8em}
.apx-article-page .av-content blockquote>*:last-child{margin-bottom:0}
.apx-article-page .av-content ul,.apx-article-page .av-content ol{margin:0 0 1.35em;padding:0;padding-inline-start:1.6em}
.apx-article-page .av-content ul{list-style:disc outside}
.apx-article-page .av-content ol{list-style:decimal outside}
.apx-article-page .av-content li{margin:0 0 .5em;padding:0}
.apx-article-page .av-content li>p{margin:0 0 .4em}
.apx-article-page .av-content li>ul,.apx-article-page .av-content li>ol{margin:.5em 0 0}
.apx-article-page .av-content img{display:block;max-width:100%;height:auto;margin:1.8em auto;border-radius:10px}
.apx-article-page .av-content figure{margin:1.8em 0}
.apx-article-page .av-content figcaption{margin-top:8px;font:13px var(--sans);color:var(--muted);text-align:center}
.apx-article-page .av-content hr{border:0;border-top:1px solid var(--line);margin:2.2em 0}
.apx-article-page .av-content table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:1.6em 0;font:15px/1.5 var(--sans)}
.apx-article-page .av-content th,.apx-article-page .av-content td{padding:8px 12px;border:1px solid var(--line);text-align:start}
.apx-article-page .av-content th{background:var(--surface)}
.apx-article-page .av-content pre{overflow-x:auto;padding:14px 16px;border-radius:10px;background:var(--surface);font-size:.85em;line-height:1.6}
.apx-article-page .av-content code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em}
.apx-article-page .av-embed{position:relative;aspect-ratio:16/9;margin:1.8em 0;border-radius:10px;overflow:hidden;background:#000}
.apx-article-page .av-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ===== ads ===== */
.apx-article-page .apx-ad-isolate{clear:both;margin:2em 0;padding:10px 12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:center;overflow:hidden;max-width:100%;font-family:var(--sans)}
.apx-article-page .apx-ad-isolate-label{display:block;margin-bottom:8px;font-size:11px;letter-spacing:.04em;color:var(--muted)}
.apx-article-page .apx-ad-isolate-content{max-width:100%;overflow-x:auto}
.apx-article-page .apx-ad-isolate-content>*{max-width:100%}

/* ===== paywall ===== */
.apx-article-page .apx-av-pw-locked{position:relative;max-height:170px;overflow:hidden;pointer-events:none;user-select:none;-webkit-mask-image:linear-gradient(#000 20%,transparent);mask-image:linear-gradient(#000 20%,transparent)}
.apx-article-page .apx-av-pw-gate{margin:8px 0 32px;padding:34px 24px;text-align:center;border:1px solid var(--line);border-radius:18px;background:var(--bg);box-shadow:var(--shadow);font-family:var(--sans)}
.apx-article-page .apx-av-pw-icon-wrap{width:58px;height:58px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft)}
.apx-article-page .apx-av-pw-icon-wrap svg{width:28px;height:28px;fill:var(--brand)}
.apx-article-page .apx-av-pw-title{margin:0 0 8px;font-family:var(--serif);font-size:25px;line-height:1.25;color:var(--ink)}
.apx-article-page .apx-av-pw-subtitle{margin:0 0 18px;font-size:15px;color:var(--muted)}
.apx-article-page .apx-av-pw-price-tag{display:inline-block;margin-bottom:16px;padding:6px 16px;border-radius:99px;background:var(--warn-bg);color:var(--warn);font-weight:700;font-size:18px}
.apx-article-page .apx-av-pw-perks-list{list-style:none;margin:0 auto 22px;padding:0;max-width:320px;text-align:start;font-size:14.5px;color:var(--ink-2)}
.apx-article-page .apx-av-pw-perks-list li{position:relative;padding:5px 0 5px 24px}
.apx-article-page .apx-av-pw-perks-list li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.apx-article-page .apx-av-pw-balance-info{margin-bottom:16px;font-size:14px;color:var(--muted)}
.apx-article-page .apx-av-pw-balance-valid{color:var(--ok);font-weight:700}
.apx-article-page .apx-av-pw-balance-invalid{color:var(--bad);font-weight:700}
.apx-article-page .apx-av-pw-feedback{display:none;margin:0 auto 14px;max-width:360px;padding:10px 14px;border-radius:10px;font-size:14px}
.apx-article-page .apx-av-pw-success{background:var(--ok-bg);color:var(--ok)}
.apx-article-page .apx-av-pw-error{background:var(--bad-bg);color:var(--bad)}
.apx-article-page .apx-av-pw-btn-cta{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:360px;height:50px;padding:0 20px;border:0;border-radius:12px;background:var(--brand);color:#fff;font:600 16px var(--sans);text-decoration:none;cursor:pointer}
.apx-article-page .apx-av-pw-btn-cta:hover:not(:disabled){background:var(--brand-d)}
.apx-article-page .apx-av-pw-btn-cta:disabled{opacity:.5;cursor:not-allowed}
.apx-article-page .apx-av-pw-meta-note{margin:14px 0 0;font-size:14px}
.apx-article-page .apx-av-pw-link-topup{color:var(--brand);font-weight:600;text-decoration:none}

/* ===== comments ===== */
.apx-article-page .av-comments-sec{margin-top:44px;padding-top:30px;border-top:1px solid var(--line)}
.apx-article-page .av-comments-sec h2{margin:0 0 20px;font-family:var(--serif);font-size:26px;color:var(--ink)}
.apx-article-page .av-notice{padding:18px 20px;border-radius:10px;background:var(--bad-bg);color:var(--bad)}
.apx-article-page .av-signin-box{padding:24px;border:1px solid var(--line);border-radius:12px;text-align:center;color:var(--muted)}
.apx-article-page .av-signin-box p{margin:0 0 14px}
.apx-article-page .av-comment-form{margin-bottom:24px}
.apx-article-page .av-comment-form textarea{display:block;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans);resize:vertical}
.apx-article-page .av-comment-form textarea:focus{outline:2px solid var(--brand);outline-offset:1px}
.apx-article-page .av-btn-post{display:inline-block;margin-top:10px;padding:10px 20px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:600 14px var(--sans);cursor:pointer;text-decoration:none}
.apx-article-page .av-btn-post:hover{background:var(--brand-d)}
.apx-article-page .av-reply-form{display:none;margin:12px 0 0}
.apx-article-page .av-reply-form.active{display:block}
.apx-article-page .av-comment,.apx-article-page .av-reply{display:flex;gap:12px;padding:16px 0}
.apx-article-page .av-comment{border-bottom:1px solid var(--line)}
.apx-article-page .av-reply{margin-top:14px;padding:0 0 0 12px;border-inline-start:2px solid var(--line)}
.apx-article-page .av-c-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--surface)}
.apx-article-page .av-reply .av-c-avatar{width:32px;height:32px}
.apx-article-page .av-c-body{flex:1;min-width:0}
.apx-article-page .av-c-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 10px;margin-bottom:4px}
.apx-article-page .av-c-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14.5px}
.apx-article-page .av-c-name a{color:inherit;text-decoration:none}
.apx-article-page .av-c-time{font-size:12.5px;color:var(--muted)}
.apx-article-page .av-c-text{font-size:15.5px;line-height:1.6;color:var(--ink-2);overflow-wrap:anywhere}
.apx-article-page .av-c-actions{margin-top:6px}
.apx-article-page .av-c-reply-btn{border:0;background:none;padding:2px 0;color:var(--muted);font:600 13px var(--sans);cursor:pointer}
.apx-article-page .av-c-reply-btn:hover{color:var(--brand)}

/* ===== related ===== */
.apx-article-page .av-related-wrapper{margin-top:60px;padding:48px 20px 24px;background:var(--surface);border-top:1px solid var(--line)}
.apx-article-page .av-related-inner{max-width:1100px;margin:0 auto 40px}
.apx-article-page .av-related-inner h2{margin:0 0 20px;font-family:var(--serif);font-size:26px;color:var(--ink)}
.apx-article-page .av-rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.apx-article-page .av-r-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:inherit;text-decoration:none;transition:box-shadow .2s,transform .2s}
.apx-article-page .av-r-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.apx-article-page .av-r-thumb{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--line)}
.apx-article-page .av-r-thumb img{position:absolute;top:0;left:0;width:100%;height:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;object-fit:cover;display:block;transition:transform .35s ease}
.apx-article-page .av-r-card:hover .av-r-thumb img{transform:scale(1.045)}
.apx-article-page .av-r-body{display:flex;flex-direction:column;flex:1;padding:14px 16px 16px}
.apx-article-page .av-r-meta{margin:0 0 6px;font:600 12px var(--sans);letter-spacing:.02em;color:var(--muted)}
.apx-article-page .av-r-title{margin:0 0 8px;font-family:var(--serif);font-size:19px;font-weight:700;line-height:1.3;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.apx-article-page .av-r-card:hover .av-r-title{color:var(--brand)}
.apx-article-page .av-r-deck{margin:0 0 14px;font:14px/1.55 var(--sans);color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.apx-article-page .av-r-actions{display:flex;gap:14px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line);font:12.5px var(--sans);color:var(--muted)}
.apx-article-page .av-admin-note{max-width:760px;margin:16px auto 0;padding:10px 14px;border-radius:10px;background:var(--warn-bg);color:var(--warn);font-size:14px}
.apx-article-page .av-admin-note.bad{background:var(--bad-bg);color:var(--bad)}

/* ===== mobile ===== */
@media (max-width:640px){
    .apx-article-page .reader-container{padding:18px 16px 0}
    .apx-article-page .av-content{font-size:18px;line-height:1.75}
    .apx-article-page .av-hero-img{margin-inline:-16px}
    .apx-article-page .av-hero-img img{border-radius:0}
    .apx-article-page .av-actions-bar,.apx-article-page .av-bottom-actions{flex-direction:column;align-items:stretch}
    .apx-article-page .av-share-group{justify-content:space-between}
    .apx-article-page .apx-av-pw-gate{padding:26px 16px}
    .apx-article-page .av-related-wrapper{padding:36px 16px 16px}
    .apx-article-page .av-rel-grid{grid-template-columns:1fr}
    .apx-article-page .floating-controls{bottom:12px;right:12px}
    .apx-article-page .av-minibar-in{padding:8px 14px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.apx-article-page *{transition:none!important}}
@media print{
    .apx-article-page .progress-container,.apx-article-page .av-minibar,.apx-article-page .floating-controls,.apx-article-page .av-actions-bar,.apx-article-page .av-bottom-actions,
    .apx-article-page .apx-ad-isolate,.apx-article-page .av-comments-sec,.apx-article-page .av-related-wrapper,.apx-article-page .apx-ap,.apx-article-page .av-toc{display:none!important}
    .apx-article-page .av-content{font-size:12pt;color:#000}
}