html[data-theme=dark]{--color-fg-faint: #8b96a5}html[data-theme=light]{--color-fg-faint: #57606a;--color-accent: #0550ae}html[data-theme=light] .site-header{background:var(--color-bg)}html[data-theme=light] .site-header .nav-link.active{color:#033d82;background:#e5f2ff}html[data-theme=light] .site-header .icon-btn{opacity:1}.pf-layout{display:grid;grid-template-columns:300px 1fr;gap:1.4rem;align-items:start}@media(max-width:900px){.pf-layout{grid-template-columns:1fr}}.pf-side{display:flex;flex-direction:column;gap:.9rem}.pf-main{min-width:0}.pf-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:.85rem .95rem}.pf-card-t{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-fg-faint);margin-bottom:.6rem}.pf-catgroup{margin-bottom:.55rem}.pf-catlabel{font-size:.72rem;color:var(--color-fg-faint);margin-bottom:.25rem}.pf-chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{background:var(--color-surface-2, var(--color-surface));border:1px solid var(--color-border);color:var(--color-fg-subtle);border-radius:999px;padding:.3rem .7rem;font-size:.8rem;cursor:pointer}.chip:hover{color:var(--color-fg);border-color:var(--color-fg-faint)}.chip.on{background:var(--color-accent);color:var(--color-accent-fg, #fff);border-color:transparent;font-weight:600}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 55%,transparent);outline-offset:2px}.pf-ctl{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--color-fg-subtle);margin-bottom:.5rem}.pf-ctl .range{width:100%;accent-color:var(--color-accent)}.pf-ctl.off{opacity:.45}.pf-ctl input:disabled{cursor:not-allowed}.pf-cattabs{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.55rem;padding-bottom:.55rem;border-bottom:1px solid var(--color-border)}.pf-drop{border:2px dashed var(--color-border);border-radius:10px;padding:1.6rem 1rem;text-align:center;color:var(--color-fg-subtle);font-size:.85rem;cursor:pointer}.pf-drop.over,.pf-drop:hover{border-color:var(--color-accent);color:var(--color-fg)}.pf-list{margin:.3rem 0 0 1.1rem;padding:0;font-size:.78rem}.pf-list li{margin-bottom:.15rem}.pf-cap{font-size:.78rem;color:var(--color-fg-subtle);margin-top:.3rem}.pf-muted{color:var(--color-fg-faint)}.pf-note{font-size:.86rem;color:var(--color-fg-subtle);line-height:1.6}.pf-mono{font-family:var(--font-mono, monospace);font-size:.86rem}.pf-vizstack{display:flex;flex-direction:column;gap:.9rem}.pf-plot{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:.6rem .75rem}.pf-plot-t{font-size:.82rem;color:var(--color-fg-subtle)}.pf-plot-th{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.pf-seg{display:inline-flex;gap:.25rem}.pf-seg .chip{padding:.12rem .55rem;font-size:.74rem}.pf-shell-timeline{display:grid;grid-template-columns:auto auto auto minmax(180px,1fr) auto;gap:.55rem;align-items:center;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:10px;background:color-mix(in srgb,var(--color-surface) 88%,var(--color-accent) 12%)}.pf-shell-timeline label{display:grid;gap:.18rem;min-width:0;font-size:.76rem;font-weight:650;color:var(--color-fg-subtle)}.pf-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.55rem}.pf-kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:9px;padding:.5rem .6rem;text-align:center}.pf-kpi-v{font-family:var(--font-mono, monospace);font-size:1.05rem;font-weight:700;color:var(--color-fg)}.pf-kpi-l{font-size:.7rem;color:var(--color-fg-faint);margin-top:.15rem}.pf-pending{border-left:4px solid var(--color-warn, #d29922);padding:.6rem .9rem;background:var(--color-surface);border-radius:0 8px 8px 0}.pf-pending strong{display:block;margin-bottom:.3rem}.pf-legend{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.72rem;color:var(--color-fg-subtle)}.pf-legend span{display:inline-flex;align-items:center;gap:.25rem}.pf-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}.pf-bars{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:.7rem}.pf-section canvas{border:1px solid var(--color-border)}.pf-3d{border:1px solid var(--color-border)}.heatmap-readout{position:absolute;pointer-events:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.2rem .45rem;font-family:var(--font-mono, monospace);font-size:.72rem;color:var(--color-fg);white-space:nowrap;z-index:5}.pf-doc{max-width:60rem}.pf-doc h1{margin-bottom:.4rem}.pf-doc h2{margin-top:1.6rem}.pf-lead{font-size:1.02rem;color:var(--color-fg-subtle);line-height:1.7;margin-bottom:1rem}.pf-doc-sec{line-height:1.7}.pf-doc-sec p{margin:.6rem 0}.pf-list{line-height:1.7;padding-left:1.1rem}.pf-list li{margin:.35rem 0}.pf-exp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;margin:1rem 0}.pf-exp-h{display:flex;align-items:baseline;gap:.5rem}.pf-exp-h span{font-size:.85rem;color:var(--color-fg-subtle)}.pf-anchor{font-size:.8rem;color:var(--color-accent);margin:.4rem 0 .2rem}.codeblock{background:var(--color-surface-2, var(--color-surface));border:1px solid var(--color-border);border-radius:8px;padding:.85rem 1rem;overflow:auto;font-family:var(--font-mono, monospace);font-size:.8rem;line-height:1.55;color:var(--color-fg);white-space:pre}.cmp-table{border-collapse:collapse;width:100%;font-size:.84rem;margin-top:.6rem}.cmp-table th,.cmp-table td{padding:.4rem .55rem;text-align:center;border-bottom:1px solid var(--color-border)}.cmp-table thead th{color:var(--color-fg-faint);font-weight:600;font-size:.78rem}.uplot-host{width:100%}.uplot-host:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 55%,transparent);outline-offset:3px;border-radius:6px}.pf-chart-hint{margin:.35rem 0 0;font-size:.7rem;color:var(--color-fg-faint)}.pf-chart-data{margin-top:.45rem;font-size:.74rem;color:var(--color-fg-subtle)}.pf-chart-data summary{cursor:pointer;color:var(--color-accent)}.pf-chart-data ul{list-style:none;padding:0;margin:.45rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.25rem .65rem}.pf-chart-data li{display:flex;justify-content:space-between;gap:.5rem;border-bottom:1px solid var(--color-border)}.gauge-title{font-size:.78rem;color:var(--color-fg-faint);margin-bottom:.35rem}.gauge-track{position:relative;height:14px;border-radius:7px;background:var(--color-surface-2, var(--color-surface));overflow:hidden}.gauge-zone{position:absolute;top:0;height:100%;opacity:.6}.gauge-needle{position:absolute;top:-3px;width:2px;height:20px;background:var(--color-fg);transform:translate(-1px)}.gauge-scale{display:flex;justify-content:space-between;font-size:.72rem;color:var(--color-fg-faint);margin-top:.25rem}.gauge-scale .gauge-val{color:var(--color-fg);font-weight:700;font-family:var(--font-mono, monospace)}.gauge-zones-legend{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.72rem;color:var(--color-fg-subtle);margin-top:.3rem}.gauge-zones-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:.25rem}.app-shell{height:100dvh;min-height:100dvh;overflow:hidden}.app-shell>.page{flex:1 1 auto;min-height:0;display:flex}.page-body.pf-layout{max-width:none;width:100%;flex:1 1 auto;min-height:0;padding:1rem 1.25rem;align-items:start;overflow-y:auto;overscroll-behavior:contain}html,body{overflow-x:hidden}main.page:has(>.page-body:not(.pf-layout)){overflow-y:auto;min-height:0}.app-shell .site-footer{margin-top:0}.page-body.pf-layout>*{min-width:0;max-width:100%}.tabs,.tabpanel,.tablist{min-width:0;max-width:100%}.tablist{flex-wrap:nowrap!important}.tablist .tab,.tablist button{flex:0 0 auto;white-space:nowrap}.pf-tabs{min-height:0;display:flex;flex-direction:column}.pf-tabrow{display:flex;flex-wrap:nowrap;gap:.3rem;align-items:center;min-width:0;max-width:100%;overflow:visible;flex:0 0 auto;border-bottom:1px solid var(--color-border);padding-bottom:.45rem;margin-bottom:.8rem}.pf-tabwrap{position:relative;flex:0 0 auto}.pf-tab{white-space:nowrap;cursor:pointer;font-size:.88rem;font-weight:600;padding:.42rem .85rem;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--color-fg-subtle)}.pf-tab:hover{color:var(--color-accent)}.pf-tab.on{color:var(--color-bg);background:var(--color-accent);border-color:var(--color-accent)}.pf-caret{margin-left:.4rem;font-size:.62rem;opacity:.75}.pf-tabmenu{position:absolute;top:100%;left:0;z-index:60;min-width:195px;display:flex;flex-direction:column;gap:.15rem;padding:.5rem .3rem .3rem;margin:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 9px 9px;box-shadow:0 8px 24px #00000047}.pf-tabmenu button{text-align:left;white-space:nowrap;cursor:pointer;font-size:.82rem;padding:.34rem .55rem;border-radius:6px;border:none;background:transparent;color:var(--color-fg-subtle)}.pf-tabmenu button:hover{background:color-mix(in srgb,var(--color-accent) 14%,transparent);color:var(--color-accent)}.pf-tabmenu button.on{color:var(--color-accent);font-weight:700}.pf-tabpanel{min-width:0}.pf-stage3d{position:relative;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;height:clamp(400px,72vh,1100px)}.pf-stage3d>div:first-child{position:absolute;inset:0;display:flex;flex-direction:column;min-height:0}.pf-stage3d>div:first-child>div:first-child{flex:1 1 auto;min-height:0}.pf-stage3d canvas{width:100%;height:100%;display:block}.pf-tabselect{display:none;margin-bottom:.8rem}.pf-tabselect label{display:flex;flex-direction:column;gap:.3rem;font-size:.76rem;color:var(--color-fg-subtle)}.pf-tabselect select{width:100%;min-height:44px;border:1px solid var(--color-border);border-radius:8px;padding:.55rem .7rem;background:var(--color-surface);color:var(--color-fg)}.pf-status{border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:8px;padding:.75rem .9rem;background:var(--color-surface);color:var(--color-fg-subtle)}.pf-status[data-kind=error]{border-left-color:var(--color-bad, #f85149)}.pf-status[data-kind=empty]{border-left-color:var(--color-warn, #d29922)}.pf-status-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.pf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pf-focus-enter{display:block;text-decoration:none;border:1px solid var(--color-accent);border-radius:10px;padding:.55rem .75rem;margin-bottom:.8rem;background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.pf-focus-enter:hover{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.pf-focus-enter-t{display:block;font-size:.86rem;font-weight:700;color:var(--color-accent)}.pf-focus-enter-d{display:block;font-size:.72rem;color:var(--color-fg-subtle);margin-top:.15rem;line-height:1.4}@media(max-width:720px){.page-body.pf-layout{padding:.75rem}.pf-tabrow{display:none}.pf-tabselect{display:block}.pf-card,.pf-plot,.pf-bars{border-radius:8px}.cmp-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.pf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-shell-timeline{grid-template-columns:auto auto auto 1fr}.pf-shell-timeline .pf-cap{grid-column:1 / -1}}@media(pointer:coarse){.chip,.pf-tab,.pf-tabmenu button{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-height:560px)and (orientation:landscape){.page-body.pf-layout{padding-block:.55rem}.pf-side{gap:.55rem}.pf-card{padding-block:.65rem}}.pff{position:fixed;inset:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);background:var(--color-bg);color:var(--color-fg);overflow:hidden}@media(max-width:900px){.pff{grid-template-columns:1fr;grid-template-rows:minmax(220px,1fr) minmax(180px,42dvh)}.pff-rail{border-left:0;border-top:1px solid var(--color-border)}}.pff-stage{position:relative;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.pff-stage>div:first-child{position:absolute;inset:0;display:flex;flex-direction:column;min-height:0}.pff-stage>div:first-child>div:first-child{flex:1 1 auto;min-height:0}.pff-stage canvas{width:100%;height:100%;display:block}.pff-badge{position:absolute;left:16px;bottom:16px;max-width:48ch;z-index:5;padding:.6rem .75rem;border-radius:10px;border:1px solid var(--color-border);border-left:3px solid var(--color-accent);background:color-mix(in srgb,var(--color-surface) 92%,transparent)}.pff-badge-t{font-weight:700;font-size:.92rem;color:var(--color-accent)}.pff-badge-d{font-size:.76rem;line-height:1.45;color:var(--color-fg-subtle);margin-top:.2rem}.pff-hud{position:absolute;top:14px;left:16px;z-index:5;display:flex;flex-direction:column;gap:.45rem}.pff-hud-item{min-width:96px;padding:.3rem .55rem;border-radius:8px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 88%,transparent)}.pff-hud-v{font-family:var(--font-mono, ui-monospace, monospace);font-size:1.05rem;font-weight:700}.pff-hud-v.accent{color:var(--color-accent)}.pff-hud-v.blue{color:var(--color-info, #4a9eff)}.pff-hud-l{font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-fg-subtle)}.pff-exit{position:absolute;top:14px;right:16px;z-index:6;text-decoration:none;font-size:.78rem;font-weight:600;padding:.35rem .7rem;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-fg)}.pff-exit:hover{border-color:var(--color-accent);color:var(--color-accent)}.pff-rail{min-height:0;overflow-y:auto;border-left:1px solid var(--color-border);padding:.9rem .9rem 1.2rem;display:flex;flex-direction:column;gap:.7rem;background:var(--color-surface)}.pff-title{font-size:1rem;font-weight:700;line-height:1.25}.pff-sub{font-family:var(--font-mono, ui-monospace, monospace);font-size:.7rem;color:var(--color-fg-subtle)}.pff-seg{display:flex;gap:.3rem}.pff-seg button{flex:1 1 0;cursor:pointer;font-size:.76rem;font-weight:600;padding:.36rem .4rem;min-height:44px;border-radius:8px;border:1px solid var(--color-border);background:transparent;color:var(--color-fg-subtle)}.pff-seg button.on{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}.pff-ctl{display:flex;flex-direction:column;gap:.2rem}.pff-ctl-l{display:flex;justify-content:space-between;font-size:.74rem;color:var(--color-fg-subtle)}.pff-ctl-l b{font-family:var(--font-mono, ui-monospace, monospace);color:var(--color-fg)}.pff-ctl input[type=range]{width:100%}.pff-note{font-size:.7rem;line-height:1.5;color:var(--color-fg-subtle);border-top:1px solid var(--color-border);padding-top:.6rem}.pff-cases{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto;padding-top:.6rem}.pff-cases a{text-decoration:none;font-family:var(--font-mono, ui-monospace, monospace);font-size:.68rem;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:.22rem .45rem;border-radius:6px;border:1px solid var(--color-border);color:var(--color-fg-subtle)}.pff-cases a.on{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}.pf-eff{color:var(--color-fg-subtle);font-weight:600;cursor:help}.page-body:not(.pf-layout){max-width:1000px;margin-inline:auto}.page-body:not(.pf-layout) p,.page-body:not(.pf-layout) li,.page-body:not(.pf-layout) h2,.page-body:not(.pf-layout) h3,.page-body:not(.pf-layout) .callout,.page-body:not(.pf-layout) figcaption{max-width:78ch}.page-body:not(.pf-layout) table,.page-body:not(.pf-layout) figure,.page-body:not(.pf-layout) svg,.page-body:not(.pf-layout) canvas,.page-body:not(.pf-layout) [class*=scroll-x]{max-width:none}.page-body:not(.pf-layout) table p,.page-body:not(.pf-layout) table li{max-width:none}.page-body:not(.pf-layout) table td.wrap,.page-body:not(.pf-layout) table th.wrap{text-align:left;white-space:normal}.app-shell .site-footer .footer-inner{padding:11px 24px}.app-shell .site-footer .footer-meta{line-height:1.42;row-gap:1px}.app-shell .site-footer .footer-build{margin-left:14px!important}.page-body.pf-layout p,.page-body.pf-layout li{max-width:78ch}.page-body .equation-caption,.page-body figcaption{max-width:78ch}
