
/* ---- PSA Main Page, rendered natively inside the terminal's centre canvas ----
   The article inherits the dashboard's own --bg/--ink/--ink2/--mut/--dim, so it matches the
   terminal's background and follows its theme toggle with zero syncing. Only the names the
   page uses that the shell doesn't are aliased here. */
.mpage{
  --surface: var(--srf);
  --hair:    var(--rule);
  --hair2:   var(--grid);
  --glowA:   0;
  --serif:   Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;
  --sans:    "Segoe UI Variable Display","Segoe UI",-apple-system,system-ui,"Helvetica Neue",Arial,sans-serif;
  --mono:    ui-monospace,"Cascadia Mono",Consolas,"SF Mono",Menlo,monospace;
  background: transparent;          /* sit on whatever the canvas is */
  overflow-x: clip;
}
.mpage .topbar{ display:none; }     /* the shell already supplies the PSA/STAT bar */
.mpage img{ max-width:100%; height:auto; }

.mpage *{margin:0;padding:0;box-sizing:border-box}
.mpage,
.mpage{overflow-x:clip}
.mpage{scroll-behavior:smooth;background:var(--bg)}
@media (prefers-reduced-motion: reduce){
.mpage{scroll-behavior:auto}
}
.mpage{
    background:var(--bg);
    color:var(--ink2);
    font-family:var(--sans);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
.mpage ::selection{background:var(--ink);color:var(--bg)}
.mpage :focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.mpage a{color:inherit}
.mpage b,
.mpage strong{font-weight:600}
.mpage .topbar{border-bottom:1px solid var(--hair)}
.mpage .topbar-inner{
    max-width:900px;margin:0 auto;padding:13px 24px 12px;
    display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  }
.mpage .brand{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--ink);white-space:nowrap}
.mpage .brand .sq{text-shadow:0 0 7px rgba(255,255,255,var(--glowA))}
.mpage .brand small{display:inline-block;font-weight:400;color:var(--mut);letter-spacing:.1em;font-size:9.5px;margin-left:10px}
.mpage .topbar .spacer{flex:1 1 auto}
.mpage .themebtn{
    font:inherit;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--mut);
    background:none;border:1px solid var(--hair);padding:5px 11px;cursor:pointer;
    text-transform:uppercase;white-space:nowrap;
  }
.mpage .themebtn:hover{color:var(--ink);border-color:var(--dim)}
.mpage .tabbar{border-bottom:1px solid var(--hair)}
.mpage .tabbar-inner{
    max-width:900px;margin:0 auto;padding:0 24px;
    display:flex;gap:2px;overflow-x:auto;
  }
.mpage .tab{
    font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.13em;
    text-transform:uppercase;color:var(--mut);text-decoration:none;white-space:nowrap;
    padding:12px 16px 11px;border-bottom:2px solid transparent;margin-bottom:-1px;
    display:inline-flex;align-items:center;gap:9px;
  }
.mpage .tab:hover{color:var(--ink2)}
.mpage .tab.on{color:var(--ink);border-bottom-color:var(--ink)}
.mpage .tab .soon{
    font-size:8px;letter-spacing:.1em;color:var(--mut);border:1px solid var(--hair);
    padding:2px 5px;text-transform:uppercase;font-weight:600;
  }
.mpage .soon .short{display:none}
@media (max-width:420px){
.mpage .tab{padding:12px 10px 11px;gap:6px}
.mpage .soon .full{display:none}
.mpage .soon .short{display:inline}
}
.mpage .hero{
    max-width:900px;margin:0 auto;
    padding:9vh 24px 6vh;text-align:center;
  }
.mpage .kicker{
    font-family:var(--mono);font-size:10px;font-weight:600;
    letter-spacing:.28em;color:var(--mut);text-transform:uppercase;
  }
.mpage .hero h1{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(1.7rem,3.9vw,2.55rem);
    letter-spacing:.002em;color:var(--ink);
    margin:.6em auto .55em;line-height:1.2;
    max-width:840px;
  }
.mpage .hero h1 .h1-sub{
    display:block;font-size:.6em;font-style:italic;color:var(--ink2);
    margin-top:.4em;line-height:1.35;
  }
.mpage .hero .sub{
    font-family:var(--serif);font-size:clamp(.98rem,1.4vw,1.08rem);
    line-height:1.75;color:var(--ink2);max-width:62ch;margin:0 auto 1.6rem;
  }
.mpage .pubmeta{
    font-family:var(--mono);font-size:10px;letter-spacing:.1em;
    color:var(--mut);text-transform:uppercase;
  }
.mpage .pubmeta b{color:var(--ink2);font-weight:700}
.mpage .rule{
    width:1px;height:44px;margin:5.5vh auto 0;opacity:.5;
    background:linear-gradient(var(--hair2),transparent);
  }
.mpage main{display:block}
.mpage .chapter{
    max-width:840px;margin:0 auto;
    padding:6.4rem 24px 1.6rem;
  }
.mpage .rk{
    display:flex;align-items:center;gap:16px;
    font-family:var(--mono);font-size:10px;font-weight:600;
    letter-spacing:.28em;color:var(--mut);text-transform:uppercase;
    margin-bottom:2.2rem;white-space:nowrap;
  }
.mpage .rk::before{content:"";width:40px;height:1px;background:var(--dim);flex:none}
.mpage .rk::after{content:"";flex:1;height:1px;background:var(--hair2)}
.mpage h2.title{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(1.4rem,3vw,1.85rem);
    color:var(--ink);letter-spacing:.002em;line-height:1.28;
    margin-bottom:1.5rem;max-width:38ch;
  }
.mpage .bignum{
    font-family:var(--sans);font-weight:200;
    font-size:clamp(2.6rem,6.4vw,4.2rem);
    color:var(--ink);letter-spacing:-.015em;line-height:1;
    text-shadow:0 0 44px rgba(255,255,255,var(--glowA));
  }
.mpage .bignum .u{font-size:.5em;font-weight:200;color:var(--ink2)}
.mpage .bignum-sub{
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;
    color:var(--mut);margin-top:.9em;margin-bottom:2.2rem;line-height:1.6;max-width:52ch;
  }
.mpage .chapter p{
    font-family:var(--serif);font-size:1.04rem;line-height:1.8;
    color:var(--ink2);max-width:66ch;margin-bottom:1.3em;
  }
.mpage .chapter p:last-of-type{margin-bottom:0}
.mpage .chapter p strong{color:var(--ink);font-weight:400}
.mpage .fig{margin:2.8rem 0 0}
.mpage .fig-frame{
    border:1px solid var(--hair);background:#000;
    overflow:hidden;
  }
.mpage .fig-frame img{
    display:block;height:auto;width:auto;
    max-width:100%;
    margin:0 auto;
    filter:grayscale(1) contrast(1.05);
  }
.mpage .fig figcaption{
    font-family:var(--mono);font-size:10px;letter-spacing:.03em;
    color:var(--mut);margin-top:.7rem;line-height:1.7;max-width:66ch;
  }
.mpage .fig figcaption .fignum{color:var(--ink2);font-weight:700;letter-spacing:.06em;margin-right:.5em}
.mpage .fig figcaption a{color:var(--mut);text-decoration:underline;text-decoration-color:var(--hair)}
.mpage .fig figcaption a:hover{color:var(--ink)}
.mpage .fig-fallback{
    display:none;border:1px dashed var(--hair);padding:16px 18px;
    font-family:var(--mono);font-size:10.5px;color:var(--ink2);line-height:1.7;max-width:66ch;
  }
.mpage .fig-fallback a{color:var(--ink2);text-decoration:underline}
.mpage .fig.broken .fig-frame{display:none}
.mpage .fig.broken figcaption{display:none}
.mpage .fig.broken .fig-fallback{display:block}
.mpage .technotes{
    max-width:840px;margin:0 auto;
    padding:5rem 24px 1rem;border-top:1px solid var(--hair2);
  }
.mpage .technotes p{
    font-family:var(--sans);font-size:.84rem;line-height:1.85;
    color:var(--mut);max-width:70ch;margin-bottom:1.15em;
  }
.mpage .technotes p:last-child{margin-bottom:0}
.mpage .downloads{max-width:840px;margin:0 auto;padding:3.4rem 24px 1rem}
.mpage .dlrow{
    display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
    border-top:1px solid var(--hair2);padding:1rem 0;text-decoration:none;color:inherit;
  }
.mpage .dlrow:last-child{border-bottom:1px solid var(--hair2)}
.mpage .dl-name{font-family:var(--serif);font-size:.98rem;color:var(--ink2)}
.mpage .dlrow:hover .dl-name{color:var(--ink)}
.mpage .dl-meta{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--mut);text-transform:uppercase;white-space:nowrap}
.mpage footer.attribution{
    max-width:840px;margin:0 auto;padding:4.5rem 24px 8vh;
  }
.mpage footer.attribution p{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;
    color:var(--mut);line-height:1.9;max-width:72ch;
  }
.mpage footer.attribution a{color:var(--ink2);text-decoration:underline;text-decoration-color:var(--hair)}
.mpage footer.attribution a:hover{color:var(--ink)}
.mpage[data-embed="1"] .topbar{ display:none; }
.mpage[data-embed="1"] body{ background:transparent; }
.mpage[data-embed="1"] .tabbar{ position:static; }
.mpage[data-embed="1"] .hero{ padding-top:26px; }
.mpage .fig-frame a{display:block;cursor:zoom-in}
.mpage .fig-frame a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.mpage .psachart{ margin:2.6rem auto 3rem; max-width:900px; }
.mpage .cttl{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:.5rem; }
.mpage .cttl b{ font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); letter-spacing:-.01em; }
.mpage .ctier{
    font-family:var(--mono); font-size:9px; letter-spacing:.14em; color:var(--mut);
    border:1px solid var(--hair); padding:3px 6px; white-space:nowrap;
  }
.mpage .cleg{ display:flex; flex-wrap:wrap; gap:12px; margin:.2rem 0 .7rem; }
.mpage .cleg span{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10px; color:var(--ink2); }
.mpage .cleg i{ width:10px; height:2px; display:inline-block; }
.mpage .cwrap{ position:relative; border:1px solid var(--hair); background:transparent; }
.mpage .psachart svg{ display:block; width:100%; height:auto; }
.mpage .cax{ font-family:var(--mono); font-size:9px; fill:var(--mut); }
.mpage .chot{ cursor:crosshair; }
.mpage .chot:hover{ fill:rgba(127,127,127,.10); }
.mpage .cb{ transition:opacity .12s ease; }
.mpage .ctip{
    position:absolute; pointer-events:none; z-index:5; min-width:120px;
    background:var(--srf,#101214); border:1px solid var(--rule,#2a2e33); padding:7px 9px;
    font-family:var(--mono); font-size:10px; line-height:1.6; color:var(--ink); white-space:nowrap;
  }
.mpage .ctip b{ display:block; color:var(--mut); font-weight:400; letter-spacing:.1em; margin-bottom:3px; }
.mpage .cfoot{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:.6rem; }
.mpage .csrc{ font-family:var(--mono); font-size:10px; color:var(--mut); letter-spacing:.03em; }
.mpage .cbtn{
    margin-left:auto; font-family:var(--mono); font-size:10px; letter-spacing:.08em;
    background:transparent; color:var(--ink2); border:1px solid var(--hair);
    padding:5px 9px; cursor:pointer;
  }
.mpage .cbtn:hover,
.mpage .cbtn:focus-visible{ color:var(--ink); border-color:var(--mut); }
.mpage .ctabwrap{ margin-top:.8rem; overflow-x:auto; border:1px solid var(--hair); }
.mpage .ctab{ border-collapse:collapse; width:100%; font-family:var(--mono); font-size:10px; }
.mpage .ctab th,
.mpage .ctab td{ padding:6px 10px; border-bottom:1px solid var(--hair2); text-align:right; white-space:nowrap; }
.mpage .ctab th:first-child,
.mpage .ctab td:first-child{ text-align:left; }
.mpage .ctab thead th{ color:var(--mut); letter-spacing:.08em; }
.mpage .ctab td{ color:var(--ink2); font-variant-numeric:tabular-nums; }
.mpage .cnote{ font-family:var(--mono); font-size:9.5px; color:var(--dim); margin-top:.55rem; line-height:1.7; max-width:70ch; }
.mpage .ctip .tr{ display:flex; gap:14px; justify-content:space-between; color:var(--ink2); }
.mpage .ctip .tr em{ font-style:normal; color:var(--ink); font-variant-numeric:tabular-nums; }
.mpage .fig-charted{margin:2.2rem 0}
.mpage .fig-charted .psachart{margin:0}
.mpage details.figsrc{margin-top:.9rem;border-top:1px solid var(--hair);padding-top:.55rem}
.mpage details.figsrc>summary{
    cursor:pointer;list-style:none;display:block;
    font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--mut);padding:.35rem 0;user-select:none;
  }
.mpage details.figsrc>summary::-webkit-details-marker{display:none}
.mpage details.figsrc>summary::before{content:'\25B8';margin-right:.55em;color:var(--hair2)}
.mpage details.figsrc[open]>summary::before{content:'\25BE'}
.mpage details.figsrc>summary:hover{color:var(--ink)}
.mpage details.figsrc>summary .fignum{color:var(--ink2);font-weight:700;margin-left:.5em}
.mpage details.figsrc .fig-frame{margin-top:.6rem}
.mpage details.figsrc figcaption{
    font-family:var(--mono);font-size:10px;letter-spacing:.03em;
    color:var(--mut);margin-top:.7rem;line-height:1.7;max-width:66ch;
  }
.mpage details.figsrc figcaption a{color:var(--mut);text-decoration:underline;text-decoration-color:var(--hair)}
.mpage details.figsrc figcaption a:hover{color:var(--ink)}
.mpage .mnote{border:1px solid var(--hair);padding:1.4rem 1.6rem;background:var(--srf)}
.mpage .mnote-k{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--mut);margin-bottom:.9rem;
  }
.mpage .mnote-h{
    font-family:var(--sans);font-size:15px;font-weight:700;letter-spacing:.01em;
    color:var(--ink);margin:0 0 .7rem;
  }
.mpage .mnote p{font-family:var(--sans);font-size:13px;line-height:1.75;color:var(--ink2);margin:0 0 .7rem;max-width:66ch}
.mpage .mformula{
    font-family:var(--serif);font-size:17px;color:var(--ink);
    display:flex;align-items:center;justify-content:center;gap:.5em;flex-wrap:wrap;
    padding:1.1rem .6rem;margin:1rem 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  }
.mpage .mformula sub{font-size:.62em;vertical-align:-.28em}
.mpage .mformula sup{font-size:.62em;vertical-align:.5em}
.mpage .mf-eq{color:var(--mut);margin:0 .15em}
.mpage .mf-frac{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle}
.mpage .mf-frac .mf-n{padding:0 .5em .12em;border-bottom:1px solid currentColor}
.mpage .mf-frac .mf-d{padding:.12em .5em 0}
.mpage .mdefs{margin:.9rem 0 0;font-family:var(--sans);font-size:12.5px;line-height:1.7}
.mpage .mdefs>div{display:flex;gap:.9em;padding:.28rem 0;border-top:1px solid var(--hair2)}
.mpage .mdefs>div:first-child{border-top:0}
.mpage .mdefs dt{
    font-family:var(--serif);color:var(--ink);min-width:4.5em;flex:0 0 auto;text-align:right;
  }
.mpage .mdefs dt sub{font-size:.62em;vertical-align:-.28em}
.mpage .mdefs dd{margin:0;color:var(--ink2)}
@keyframes psaFadeIn{ from{opacity:0} to{opacity:1} }
@keyframes psaRise{ from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
@keyframes psaWipe{ from{clip-path:inset(0 100% 0 0)} to{clip-path:inset(0 0 0 0)} }
@keyframes psaPageIn{ from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
.mpage .psachart.pre{opacity:0}
.mpage .psachart.pre .cmarks{clip-path:inset(0 100% 0 0)}
.mpage .psachart.in{animation:psaRise .42s cubic-bezier(.22,.61,.36,1) both}
.mpage .psachart.in .cgrid{animation:psaFadeIn .40s ease-out .06s both}
.mpage .psachart.in .cmarks{animation:psaWipe 1.0s cubic-bezier(.22,.61,.36,1) .14s both}
.mpage .psachart.in .cxlab{animation:psaFadeIn .40s ease-out .22s both}
.mpage .psachart.in .cleg{animation:psaFadeIn .40s ease-out .30s both}
.mpage{animation:psaPageIn .40s cubic-bezier(.22,.61,.36,1) both}
.mpage .fig-charted,
.mpage .fig{transition:opacity .2s ease}
.mpage details.figsrc>summary{transition:color .16s ease}
.mpage .cbtn{transition:border-color .16s ease,color .16s ease}
@media (prefers-reduced-motion:reduce){
.mpage .psachart.pre,
.mpage .psachart.pre .cmarks{opacity:1;clip-path:none}
.mpage .psachart.in,
.mpage .psachart.in .cgrid,
.mpage .psachart.in .cmarks,
.mpage .psachart.in .cxlab,
.mpage .psachart.in .cleg,
.mpage{animation:none}
}
.mpage .cval{font-family:var(--mono);font-size:10px;fill:var(--ink2);letter-spacing:.02em}
.mpage .cwedge{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.02em}
.mpage .cdtot{font-family:var(--mono);font-size:19px;font-weight:700;fill:var(--ink)}
.mpage .ctile{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.02em}
.mpage .ctileV{font-family:var(--mono);font-size:11px;letter-spacing:.02em;opacity:.82}
.mpage .cpan{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;fill:var(--mut)}
.mpage .ctabonly{padding:.2rem 0}
.mpage .psachart.tableonly .cwrap{overflow-x:auto}
.mpage .psachart.radial.pre .cmarks{clip-path:none;opacity:0}
.mpage .psachart.radial.in .cmarks{animation:psaFadeIn .55s ease-out .1s both;clip-path:none}

.mpage{ background: transparent; }
.mpage .hero,
.mpage .chapter,
.mpage .technotes,
.mpage .downloads,
.mpage .attribution{ background: transparent; }
