.article-shell { padding-bottom:0; }
.article-crumb { padding:35px 0 0; color:#708094; font-size:13px; }
.article-crumb a:hover { color:var(--orange); }
.article-crumb span { margin:0 9px; }
.article-body { width:min(calc(100% - 40px),820px); margin:0 auto; padding:72px 0 100px; }
.article-header { border-bottom:1px solid var(--line); padding-bottom:36px; }
.article-header h1 { font-size:clamp(35px,4.7vw,59px); margin-bottom:25px; }
.article-lede { max-width:700px; color:#4e6076; font-size:18px; line-height:1.9; }
.article-read { display:flex; flex-wrap:wrap; gap:10px; color:#7b8999; font-size:12px; margin-top:28px; }
.article-read b { color:#34465a; font-weight:600; }
.article-read .dot { color:var(--orange); }
.article-note { margin:47px 0; border-left:4px solid var(--orange); background:#fff7f3; padding:23px 25px; }
.article-note strong { color:var(--orange); font-size:14px; }
.article-note p { margin:10px 0 0; color:#405268; font-size:15px; line-height:1.85; }
.toc { padding:25px 28px; border:1px solid var(--line); margin:42px 0 60px; }
.toc strong { display:block; margin-bottom:13px; color:var(--ink); }
.toc a { display:block; width:max-content; max-width:100%; padding:6px 0; color:#52647a; font-size:14px; }
.toc a:hover { color:var(--orange); }
.article-body section { margin:0 0 58px; scroll-margin-top:100px; }
.article-body h2 { font:800 30px/1.35 "Noto Serif SC",serif; letter-spacing:-.04em; margin:0 0 20px; }
.article-body p,.article-body li { color:#43556b; font-size:16px; line-height:2; }
.article-body p { margin-bottom:18px; }
.article-body ol { padding-left:25px; margin:0; }
.article-body li { padding-left:4px; margin-bottom:9px; }
.article-body li::marker { color:var(--orange); font-weight:700; }
.article-body strong { color:#20334a; }
.equation { margin:30px 0; padding:23px 27px 18px; border:1px solid var(--line); border-left:3px solid var(--orange); background:#fff; }
.equation math { display:block; color:var(--ink); font:500 30px/1.3 "Cambria Math","STIX Two Math","Times New Roman",serif; text-align:center; }
.equation figcaption { margin-top:13px; color:#6f7e8e; font-size:13px; line-height:1.6; text-align:center; }
.callout { border-top:2px solid var(--orange); border-bottom:1px solid var(--line); margin:28px 0; padding:20px 0 6px; }
.callout p { color:#283b52; font-size:18px; }
.article-body code { color:#bc3f12; background:#fff2eb; padding:1px 5px; font:500 .9em "DM Mono",monospace; }
.article-body pre { overflow:auto; margin:26px 0; padding:22px; background:#0d1d32; }
.article-body pre code { display:block; min-width:590px; padding:0; color:#e3edf9; background:none; font-size:13px; line-height:1.8; }
.workflow { border-top:1px solid var(--line); }
.workflow>div { display:grid; grid-template-columns:52px 1fr; gap:17px; padding:18px 0; border-bottom:1px solid var(--line); }
.workflow span { color:var(--orange); font:500 13px/1.8 "DM Mono",monospace; }
.workflow p { margin:0; }
.workflow-content { min-width:0; }
.calculation-equation { margin:16px 0 2px; padding:17px 20px 13px; overflow:hidden; border:1px solid var(--line); background:#fff; }
.calculation-equation math { display:block; min-width:0; color:var(--ink); font:500 31px/1.3 "Cambria Math","STIX Two Math","Times New Roman",serif; text-align:center; }
.calculation-equation figcaption { margin-top:12px; color:#6f7e8e; font-size:13px; line-height:1.6; text-align:center; }
.calculation-equation--compact { margin:13px 0 16px; padding:13px 18px; }
.calculation-equation--compact math { font-size:20px; }
.solver-sequence { margin:28px 0 32px; border-top:1px solid var(--line); }
.sequence-lane { padding:28px 0 30px; border-bottom:1px solid var(--line); }
.sequence-lane header { padding-left:20px; border-left:3px solid var(--orange); }
.sequence-lane header>span { color:var(--orange); font:500 12px/1 "DM Mono",monospace; letter-spacing:.08em; }
.sequence-lane h3 { margin:9px 0 5px; color:var(--ink); font:700 21px/1.45 "Noto Serif SC",serif; letter-spacing:-.025em; }
.sequence-lane header p { margin:0; color:#647388; font-size:14px; line-height:1.75; }
.sequence-steps { display:grid; grid-template-columns:1fr; gap:0; margin:25px 0 19px; padding:0; list-style:none; counter-reset:sequence; }
.sequence-steps li { position:relative; min-width:0; padding:0 0 17px 54px; color:#4e5f73; font-size:13px; line-height:1.75; }
.sequence-steps li:not(:last-child) { margin-bottom:17px; border-bottom:1px solid var(--line); }
.sequence-steps li::before { counter-increment:sequence; content:counter(sequence, decimal-leading-zero); position:absolute; top:3px; left:0; color:var(--orange); font:500 11px/1 "DM Mono",monospace; }
.sequence-steps b { display:block; color:var(--ink); font-size:14px; margin-bottom:7px; }
.sequence-steps p { margin:0; color:#56687c; font-size:13px; line-height:1.75; }
.sequence-steps code { font-size:.85em; white-space:normal; }
.sequence-note { margin:0 !important; color:#6c7a8b !important; font-size:13px !important; line-height:1.8 !important; }
.comparison-wrap { overflow-x:auto; margin:26px 0; border:1px solid var(--line); }
.comparison { width:100%; min-width:710px; border-collapse:collapse; text-align:left; }
.comparison th,.comparison td { padding:16px 18px; border-bottom:1px solid var(--line); vertical-align:top; font-size:14px; line-height:1.75; }
.comparison thead th { background:var(--ink); color:#fff; font-weight:700; }
.comparison tbody th { width:18%; color:var(--ink); font-weight:700; background:#f7f9fa; }
.comparison td { width:41%; color:#4d5e71; }
.references { border-top:1px solid var(--line); padding-top:40px; }
.references ul { margin:0; padding-left:20px; }
.references a { color:#314f70; border-bottom:1px solid #9eb0c0; line-height:1.8; }
.references a:hover { color:var(--orange); border-color:var(--orange); }
.article-next { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:42px 0 55px; border-top:1px solid var(--line); }
.article-next p { max-width:590px; color:#52647a; margin:0; font-size:16px; line-height:1.8; }
@media (max-width:540px) {
  .article-crumb { padding-top:25px; }
  .article-body { width:calc(100% - 32px); padding:47px 0 65px; }
  .article-header h1 { font-size:34px; line-height:1.3; }
  .article-lede { font-size:16px; }
  .article-body h2 { font-size:25px; }
  .article-body p,.article-body li { font-size:15px; line-height:1.9; }
  .article-note { margin:34px 0; padding:19px; }
  .toc { margin:34px 0 48px; padding:20px; }
  .article-body section { margin-bottom:46px; }
  .equation { padding:18px 16px 15px; }
  .equation math { font-size:24px; }
  .calculation-equation { padding:15px 14px 12px; }
  .calculation-equation math { font-size:25px; }
  .workflow>div { display:block; padding:16px 0; }
  .workflow span { display:block; margin-bottom:8px; }
  .calculation-equation--compact { padding:12px 10px; }
  .calculation-equation--compact math { font-size:11.5px; }
  .article-next { align-items:start; flex-direction:column; gap:18px; padding:32px 0; }
  .article-next .text-link { font-size:14px; }
  .comparison-wrap { margin:22px -16px; }
  .comparison th,.comparison td { padding:13px 15px; font-size:13px; }
  .sequence-lane { padding:24px 0; }
  .sequence-lane h3 { font-size:19px; }
  .sequence-steps { margin:21px 0 16px; }
  .sequence-steps li { padding-left:42px; }
  .sequence-steps p { font-size:13px; }
}
