:root{--navy:#071e3e;--navy2:#0c2f59;--blue:#116bd0;--sky:#38b7e7;--ink:#193451;--muted:#5e7793;--line:#dce7f3;--soft:#f2f7fc;--white:#fff;--warning:#fff9ed;--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:89px}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.72;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}a{color:#0965bf;text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}button,input{font:inherit}button{cursor:pointer}code,pre{font-family:ui-monospace,Consolas,"SFMono-Regular",Menlo,monospace}.page-width{max-width:1270px;padding:0 34px;margin:auto}.skip-link{position:absolute;top:-60px;left:20px;z-index:50;padding:10px 20px;background:#fff;color:#17315b}.skip-link:focus{top:10px}
.site-header{position:sticky;top:0;z-index:30;background:#071b37;border-bottom:1px solid rgba(255,255,255,.14);box-shadow:0 5px 22px rgba(5,22,54,.17)}.header-inner{max-width:1370px;margin:auto;padding:0 32px;min-height:74px;display:flex;align-items:center;gap:40px}.brand{color:#fff;display:flex;align-items:center;gap:10px;white-space:nowrap}.brand:hover{text-decoration:none}.brand-icon{width:37px;height:37px}.brand-word{font-weight:840;font-size:29px;letter-spacing:.7px}.brand-detail{font-size:9.5px;letter-spacing:.5px;color:#a3b8d5;line-height:1.16;border-left:1px solid #446085;padding-left:12px;margin-left:4px}.top-nav{display:flex;align-items:center;justify-content:flex-end;gap:26px;flex:1;white-space:nowrap}.top-nav a{font-size:13px;font-weight:610;color:#bbd0eb;padding:25px 0 22px;border-bottom:3px solid transparent}.top-nav a:hover,.top-nav a.selected{color:#fff;text-decoration:none}.top-nav a.selected{border-bottom-color:#47bbed}.mobile-nav{display:none;color:#fff;background:transparent;border:1px solid #6c88b5;border-radius:9px;padding:7px 11px;margin-left:auto}
.hero{background:radial-gradient(ellipse 55% 85% at 100% 50%,#144d83 0,transparent 65%),linear-gradient(118deg,#071e3e 5%,#0e3765 100%);overflow:hidden}.hero-inner{max-width:1270px;padding:68px 34px 72px;margin:auto;display:grid;grid-template-columns:1.02fr .98fr;gap:58px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2.1px;font-weight:760;color:#a4d9fe;text-transform:uppercase;display:flex;align-items:center;gap:10px}.eyebrow-dot{width:9px;height:9px;border-radius:50%;background:#4dc9f5;box-shadow:0 0 0 5px rgba(77,201,245,.13)}.hero h1{color:#fff;font-size:clamp(39px,4.4vw,59px);line-height:1.1;letter-spacing:-1.8px;margin:20px 0 25px;font-weight:800}.hero h1 em{color:#96d8ff;font-style:normal}.lead{color:#d1e3f5;font-size:16px;line-height:1.87;max-width:590px;margin:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0}.hero-actions a{display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:760;padding:13px 20px;border-radius:8px}.primary-cta{background:#3cb7ec;color:#06294e;box-shadow:0 5px 25px #1e9de32b}.secondary-cta{border:1px solid #5e86ba;color:#f3f8ff}.hero-actions a:hover{text-decoration:none;filter:brightness(1.05)}.hero-meta{display:flex;gap:14px;flex-wrap:wrap}.hero-meta span{color:#b4cee8;border-left:2px solid #3dadd7;padding-left:10px;font-size:11px}.hero-visual{border:1px solid #89b9de48;border-radius:15px;padding:15px;background:rgba(247,252,255,.99);box-shadow:0 24px 58px #03142e80;transform:rotate(1deg)}.hero-visual-head{display:flex;justify-content:space-between;gap:10px;color:#234c7d;font-size:10px;font-weight:800;letter-spacing:1.1px;padding:0 6px 9px;border-bottom:1px solid #e1eaf5}.hero-visual-head span:last-child{color:#6a83a0;letter-spacing:0;font-weight:500}.hero-visual img{display:block;width:100%;aspect-ratio:1.85;object-fit:contain}.hero-visual p{font-size:11px;text-align:center;color:#687e98;margin:0 0 4px}.provenance{background:#e9f5ff;border-bottom:1px solid #c8e4f9}.provenance-inner{display:flex;gap:13px;align-items:flex-start;padding-top:15px;padding-bottom:15px;font-size:12px;line-height:1.75;color:#33597d}.info-icon{border:1.5px solid #2b8bc8;border-radius:50%;width:22px;height:22px;flex-shrink:0;line-height:20px;text-align:center;font-size:12px;font-style:italic;font-weight:800;margin-top:2px}
.layout{display:grid;grid-template-columns:247px minmax(0,1fr);gap:62px;align-items:start}.toc{position:relative}.toc-shell{position:sticky;top:100px;padding:29px 11px 30px 0;max-height:calc(100vh - 103px);overflow:auto;scrollbar-color:#d4e2f1 transparent;scrollbar-width:thin}.toc-title,.toc-bottom>span{margin:0 0 15px;color:#8196ad;font-weight:800;letter-spacing:1.7px;font-size:10px}.toc nav{display:flex;flex-direction:column;gap:2px;border-left:1px solid #d6e1ee}.toc nav a{color:#587390;padding:6px 10px 6px 17px;margin-left:-2px;border-left:3px solid transparent;font-size:11.9px;font-weight:550;line-height:1.45}.toc nav a:hover,.toc nav a.active{color:#0d64bb;background:#f0f7fe;text-decoration:none;border-left-color:#1377d6}.toc-bottom{margin-top:27px;padding:20px 0 0;border-top:1px solid #deebf6;display:flex;flex-direction:column;gap:4px}.toc-bottom a{font-size:11px;color:#1679bf}.article{padding:35px 0 90px;min-width:0}.section{border-top:1px solid #e3ecf5;padding:43px 0 34px;scroll-margin-top:89px}.section.start-section{border:0;padding-top:30px}.section-label,.overline{font-size:11px;font-weight:830;letter-spacing:1.7px;color:#1c7ece;text-transform:uppercase}.section h2{font-size:clamp(27px,3vw,36px);font-weight:805;line-height:1.19;letter-spacing:-.9px;margin:12px 0 22px;color:#133662}.section h3{font-size:19px;font-weight:740;letter-spacing:-.4px;line-height:1.35;margin:28px 0 11px;color:#164274}.section p{font-size:14px;line-height:1.84;margin:13px 0;color:#3c526c}.section strong{color:#173d69}.section ul,.section ol{padding-left:22px;font-size:13px;line-height:1.83;color:#425e78}.section li{padding:3px 0}.section i{font-family:Georgia,'Times New Roman',serif}.section small{font-size:11px}.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:27px 0}.overview-grid article{padding:17px 20px;background:#f4f9fe;border:1px solid #dbeaf8;border-radius:12px}.overview-grid h3{font-size:15px;margin:8px 0 5px}.overview-grid p{font-size:12px;line-height:1.69;margin:0}.step-num{color:#1a81ce;font-size:13px;font-weight:860;letter-spacing:1px}.note{padding:17px 19px;background:#eaf6ff;border:1px solid #c8e6fc;border-left:4px solid #2489cf;border-radius:8px;margin:23px 0;font-size:12.5px;line-height:1.84;color:#335672}.note strong{color:#134d84}.note.type-warning{background:#fff9eb;border-color:#f2dfaf;border-left-color:#e4a73a;color:#725833}.note.type-warning strong{color:#7a5016}.note.type-technical{background:#f2f7fc;border-color:#dce7f3;border-left-color:#8ba9c8}.notation{margin:23px 0;border:1px solid #dce7f3;border-radius:14px;overflow:hidden}.notation h3{font-size:14px;background:#f2f7fc;padding:14px 18px;margin:0;border-bottom:1px solid #dce7f3}.notation-grid{display:grid;grid-template-columns:minmax(108px,.22fr) 1fr;align-items:center}.notation-grid>span,.notation-grid>p{margin:0;padding:10px 18px;border-bottom:1px solid #edf2f8}.notation-grid>span{font-family:Georgia,serif;font-size:15px;font-weight:700;color:#1965b0}.notation-grid>p{font-size:12px;line-height:1.6}.notation-grid>span:nth-last-child(2),.notation-grid>p:last-child{border-bottom:0}
.equation{margin:18px 0;padding:13px 14px;background:linear-gradient(95deg,#f4f9fd,#fff);border:1px solid #e0eaf4;border-radius:10px;min-height:63px;display:flex;align-items:center;justify-content:space-between;gap:15px}.equation-contents{overflow-x:auto;flex:1;scrollbar-width:thin}.equation img{max-width:none;display:block;max-height:59px;width:auto;height:auto;min-width:0}.equation .eq-actions{flex-shrink:0;display:flex;align-items:center;gap:7px}.eq-no{color:#8a9eb4;font-family:Georgia,serif;font-size:11px}.copy-eq{border:1px solid #c9deef;background:#fff;color:#316a9b;border-radius:5px;font-size:11px;padding:4px 7px;white-space:nowrap}.copy-eq:hover{background:#e6f4fd}.scientific-figure{margin:27px 0 29px;border:1px solid #dfeaf4;border-radius:14px;overflow:hidden;box-shadow:0 4px 15px #0c3a690b}.scientific-figure .figure-top{background:#f4f8fd;display:flex;justify-content:space-between;padding:9px 15px;font-size:10px;letter-spacing:1.1px;font-weight:830;color:#517eab}.scientific-figure .figure-top span:last-child{color:#718eab;font-weight:540;letter-spacing:0}.scientific-figure img{width:100%;display:block;padding:15px 13px 5px;background:#fff;max-height:410px;object-fit:contain}.scientific-figure figcaption{border-top:1px solid #eff2f7;padding:12px 17px;font-size:12px;color:#57728d;line-height:1.6}.scientific-figure figcaption strong{color:#1b639f}.derivation{background:#f7f9fd;padding:15px 22px;margin:25px 0;border-radius:12px;border:1px solid #e3ecf5}.derivation h3{font-size:16px;margin:8px 0}.derivation ol{margin:8px 0 3px}.mini-card{margin:26px 0;padding:18px 20px;border-radius:13px;background:#f4f9fd;border:1px solid #dceaf7}.mini-card h3{margin-top:0;font-size:17px}.mini-card p:last-child{margin-bottom:0}.interaction-card{margin:30px 0;background:#fff;border:1px solid #d9e7f4;border-radius:14px;box-shadow:0 7px 22px #1d47700d;padding:21px 24px}.interaction-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.interaction-head h3{margin:7px 0;font-size:18px}.pill{background:#ebf7ef;border:1px solid #ccebd6;color:#3f8462;border-radius:20px;padding:5px 9px;font-size:10px;white-space:nowrap}.slider-row{display:flex;align-items:center;gap:15px;padding:17px 0 4px}.slider-row label{font-size:12px;font-weight:700;white-space:nowrap}.slider-row input{width:100%;accent-color:#1779c9}.slider-row output{background:#e9f5ff;border-radius:6px;color:#116eb8;min-width:52px;text-align:center;padding:5px 10px;font-size:13px;font-weight:800}.interaction-card svg{width:100%;height:auto;display:block}.interaction-card p.interaction-foot{font-size:11px;color:#68819a;margin:0}.code-title{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#102d51;color:#c7e2ff;padding:10px 19px;border-radius:10px 10px 0 0;font-size:11px;font-weight:700}.code-title a{color:#73cefb;font-size:11px}.code{margin:0 0 18px;padding:18px 23px;overflow-x:auto;background:#071e3e;color:#d6edff;font-size:11.3px;line-height:1.7;border-radius:0 0 10px 10px;tab-size:4}.process{counter-reset:step;list-style:none;padding:0 0 0 6px!important}.process li{position:relative;margin:10px 0;padding:9px 10px 9px 23px;background:#f6f9fc;border-left:3px solid #438ed0;border-radius:3px 8px 8px 3px}.developer-steps{margin:27px 0 35px;display:grid;gap:11px}.developer-steps article{display:flex;align-items:flex-start;gap:15px;padding:16px 19px;border:1px solid #e0eaf4;border-radius:11px;background:#fbfdff}.developer-steps article>span{background:#e8f4fc;color:#1668b1;border-radius:8px;font-size:12px;font-weight:850;padding:6px 9px}.developer-steps h3{margin:0 0 5px;font-size:16px}.developer-steps p{margin:0;font-size:12.5px}.download-grid{display:grid;grid-template-columns:1fr;gap:10px;margin:20px 0}.download-tile{display:flex;align-items:center;gap:16px;padding:17px 18px;border:1px solid #dbe8f4;border-radius:10px;color:#265785;background:#f8fbfe}.download-tile>b{color:#1682cf}.download-tile>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:4px}.download-tile small{color:#66819b}.download-tile:hover{background:#eaf5fd;text-decoration:none}.test-table-wrapper{overflow-x:auto;border:1px solid #dce7f3;border-radius:12px;margin:23px 0}.test-table{border-collapse:collapse;width:100%;font-size:11.8px;min-width:600px}.test-table th{background:#eaf4fc;color:#194b77;text-align:left;padding:12px 14px;font-size:11px;letter-spacing:.5px}.test-table td{border-top:1px solid #e8eef5;padding:11px 14px;vertical-align:top;color:#42617e}.test-table td:first-child{font-weight:730;color:#214d77}.test-table tr:nth-child(even){background:#f9fbfe}.hazard-grid,.claims-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:23px 0}.hazard-grid article,.claims-grid>div{padding:16px 19px;background:#f5f9fd;border:1px solid #e0ecf5;border-radius:10px}.hazard-grid p,.claims-grid p{font-size:12px;margin:5px 0 0}.claims-grid h3{font-size:15px;margin:0}.references{margin:20px 0 30px!important;padding-left:25px!important}.references li{margin-bottom:16px;padding-left:5px}.end-cta{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:27px 30px;color:#fff;background:linear-gradient(120deg,#0a2b53,#10538c);border-radius:15px}.end-cta h3{color:#fff;margin:4px 0}.end-cta p{color:#c3dbf2;font-size:12px;margin:0}.end-cta .overline{color:#75c7ee}.end-links{display:flex;flex-direction:column;gap:8px;min-width:190px}.end-links a{color:#fff;background:#ffffff22;border:1px solid #ffffff33;border-radius:7px;padding:9px 14px;font-size:11px;font-weight:750;text-align:center;white-space:nowrap}.end-links a:hover{text-decoration:none;background:#ffffff44}.footer{background:#071d3a;color:#b4cee8;padding:29px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px}.footer strong{color:#fff;font-size:21px}.footer span,.footer p{font-size:11px}.footer p{margin:5px 0 0}.footer-inner>div:last-child{display:flex;align-items:center;gap:16px}.footer a{color:#a6dfff;font-size:11px}
@media(max-width:1050px){.header-inner{gap:20px}.top-nav{gap:13px}.top-nav a{font-size:11px}.layout{grid-template-columns:203px minmax(0,1fr);gap:34px}.hero-inner{gap:28px}.page-width{padding:0 25px}}
@media(max-width:750px){.header-inner{padding:0 17px;min-height:66px}.brand-word{font-size:25px}.brand-icon{width:32px;height:32px}.brand-detail{font-size:8px}.mobile-nav{display:block}.top-nav{display:none;position:absolute;top:66px;left:0;right:0;box-shadow:0 10px 18px #071c3650;background:#0b2950;padding:10px 20px;gap:0;flex-direction:column;align-items:stretch}.top-nav.show{display:flex}.top-nav a{padding:12px;border-bottom:1px solid #486182;font-size:12px}.hero-inner{grid-template-columns:1fr;padding:42px 21px 37px}.hero h1{font-size:39px}.hero-meta span{font-size:10px}.hero-visual{transform:none;max-width:540px}.page-width{padding:0 20px}.layout{display:block}.toc{display:none}.article{padding:13px 0 58px}.section{padding:37px 0 26px}.overview-grid,.hazard-grid,.claims-grid{grid-template-columns:1fr}.equation{padding:10px 9px}.equation img{max-height:46px}.eq-no{display:none}.scientific-figure img{padding:9px}.interaction-card{padding:15px 12px}.interaction-head{flex-direction:column}.slider-row{flex-wrap:wrap}.slider-row input{min-width:55%;flex:1}.end-cta{flex-direction:column;align-items:stretch}.end-links{min-width:0}.footer-inner{flex-direction:column}.footer-inner>div:last-child{justify-content:space-between}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.site-header,.toc,.hero-actions,.mobile-nav,.interaction-card,.copy-eq,.footer{display:none!important}.hero{color:#000;background:#fff}.hero h1{color:#173b63}.hero h1 em{color:#176bb5}.hero .lead{color:#3d5871}.hero-inner{display:block;padding:12px 20px}.hero-visual{display:none}.page-width{max-width:none;padding:0 10px}.layout{display:block}.section{break-inside:avoid-page}.scientific-figure{break-inside:avoid}.equation{break-inside:avoid}}

/* ================================================================
   V2 — Scientific equation typography (STIX mathematical engraving)
   Rendered equation SVGs are pre-typeset at 19.2 pt, with a consistent
   baseline and physical scale. Never downsize long formulas to fit.
   ================================================================ */
:root{--math-ink:#123b67;--math-border:#d6e5f2}
.section p{font-size:15px;line-height:1.78}
.section li{font-size:14px}
.section i,.section em,.notation-grid>span{font-family:"STIX Two Text",STIXGeneral,Georgia,"Times New Roman",serif;font-size:1.06em}
.section .equation{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin:24px 0 27px;
  padding:10px 13px 10px 10px;
  min-height:94px;
  background:#fbfdff;
  border:1px solid var(--math-border);
  border-left:3px solid #77add4;
  border-radius:11px;
  box-shadow:0 2px 13px rgba(12,48,90,.035);
}
.section .equation-contents{
  min-width:0;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 6px 1px;
  scrollbar-color:#bdd4e7 transparent;
  scrollbar-width:thin;
  overscroll-behavior-inline:contain;
}
.section .equation-contents:focus-visible{outline:2px solid #2b93dc;outline-offset:-2px;border-radius:4px}
.section .equation img{
  display:block;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  max-width:none;
  max-height:none;
  margin:0 auto;
  object-fit:contain;
  font-size:initial;
}
.section .equation .eq-actions{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:7px;
  min-width:61px;
  padding-left:11px;
  border-left:1px solid #e3ecf5;
}
.section .eq-no{
  font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#6885a2;
  font-variant-numeric:tabular-nums;
  font-size:12px;
  font-weight:700;
  letter-spacing:.25px;
}
.section .copy-eq{
  border:1px solid #d2e2ef;
  background:#fff;
  color:#315f89;
  border-radius:6px;
  font-size:11px;
  font-weight:700;
  padding:6px 8px;
  transition:background-color .15s,border-color .15s;
}
.section .copy-eq:hover,.section .copy-eq:focus-visible{
  border-color:#74b2dc;background:#edf7ff;
}
.section .equation .eq-tip{display:none;font-size:10px;letter-spacing:.3px;color:#5484aa}
.section .equation.is-wide .eq-tip{display:inline}
/* Stable mobile math sizing: long equations scroll, never become microscopic. */
@media(max-width:750px){
  .section p{font-size:14.5px;line-height:1.75}
  .section .equation{margin:19px 0 22px;padding:8px 7px;gap:5px;min-height:88px}
  .section .equation-contents{padding:0 3px 3px}
  .section .equation img{width:auto;height:auto;max-width:none;max-height:none}
  .section .equation .eq-actions{gap:8px;padding-left:6px;min-width:48px}
  .section .eq-no{display:block;font-size:11px}
  .section .copy-eq{padding:5px 4px;font-size:10px}
}
@media print{
  .section .equation{break-inside:avoid;background:#fff;box-shadow:none;padding:7px 10px;border:1px solid #cad6e2}
  .section .equation-contents{overflow:visible}
  .section .equation .eq-actions{border:0;min-width:36px}
  .section .eq-no{display:block}
}
