.prose{font-family:var(--font-sans);color:var(--ink);overflow-wrap:break-word;font-size:16px;line-height:1.68}.prose>*+*{margin-top:0}.prose h2{font-family:var(--font-serif);letter-spacing:-.012em;text-wrap:balance;margin:36px 0 14px;font-size:1.72rem;font-weight:600;line-height:1.2}.prose h3{letter-spacing:.002em;margin:26px 0 8px;font-size:1.15rem;font-weight:600}.prose h4{letter-spacing:.006em;margin:24px 0 6px;font-size:1rem;font-weight:600}.prose h2,.prose h3,.prose h4,.prose [id^=ref-],.prose [id^=cite-],.prose figure[id]{scroll-margin-top:24px}.prose h2 .heading-link,.prose h3 .heading-link{font-family:var(--font-mono);color:var(--muted);opacity:0;vertical-align:middle;margin-left:10px;font-size:.6em;font-weight:400;text-decoration:none;transition:opacity .15s;display:inline-block}.prose h2:hover .heading-link,.prose h3:hover .heading-link,.prose h2 .heading-link:focus,.prose h3 .heading-link:focus,.prose h2 .heading-link:focus-visible,.prose h3 .heading-link:focus-visible{opacity:1}.prose h2 .heading-link:hover,.prose h3 .heading-link:hover{color:var(--accent)}.prose p{margin:0 0 17px}.prose a{color:var(--accent);border-bottom:1px solid var(--accent-soft);text-decoration:none}.prose a:hover{border-bottom-color:var(--accent)}.prose strong{font-weight:600}.prose em{font-style:italic}.prose ul,.prose ol{margin:0 0 17px;padding-left:1.3em}.prose li+li{margin-top:6px}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--sunk);border:1px solid var(--rule-soft);white-space:nowrap;border-radius:3px;padding:.1em .34em;font-size:.855em}.prose pre.astro-code{border:1px solid var(--rule);font-family:var(--font-mono);tab-size:2;border-radius:10px;margin:0 0 22px;padding:18px 16px;font-size:12.5px;line-height:1.78;position:relative;overflow-x:auto}.prose pre.astro-code code{font-size:inherit;white-space:pre;background:0 0;border:none;padding:0}.prose pre[data-language]:before{content:attr(data-language);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.75;margin-bottom:10px;font-size:10px;display:block}.prose pre.astro-code,.prose pre.astro-code span{color:var(--shiki-light);background-color:var(--shiki-light-bg)!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .prose pre.astro-code,:root:not([data-theme=light]) .prose pre.astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)!important}}:root[data-theme=dark] .prose pre.astro-code,:root[data-theme=dark] .prose pre.astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)!important}.prose aside.note{background:var(--surface);border-radius:10px;margin:0 0 22px;padding:20px 20px 18px;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}.prose aside.note p{color:var(--ink);margin:0;font-size:.92rem;line-height:1.62}.prose aside.note p+p{margin-top:10px}.prose aside.note .lbl{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;font-size:10px;font-weight:500;display:block}.prose aside.note.warn .lbl{color:var(--defer)}.prose blockquote.pull-quote{background:var(--surface);border-radius:10px;align-items:flex-start;gap:14px;margin:0 0 22px;padding:20px 20px 18px;display:flex;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}.prose blockquote.pull-quote:before{content:"“";font-family:var(--font-serif);color:var(--accent);flex:none;font-size:1.6rem;font-weight:600;line-height:1}.prose blockquote.pull-quote .quote-body p{font-family:var(--font-serif);color:var(--ink);margin:0;font-size:1.05rem;font-style:italic;line-height:1.55}.prose blockquote.pull-quote .quote-body p+p{margin-top:10px}.prose blockquote.pull-quote .quote-body p.cite{font-family:var(--font-sans);color:var(--muted);margin-top:12px;font-size:12.5px;font-style:normal;font-weight:500}.prose .tablewrap{border:1px solid var(--rule);background:var(--surface);border-radius:10px;margin:0 0 22px;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:.885rem}.prose th{text-align:left;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--sunk);border-bottom:1px solid var(--rule);white-space:nowrap;padding:11px 16px;font-size:10.5px;font-weight:500}.prose td{border-bottom:1px solid var(--rule-soft);vertical-align:top;padding:12px 16px;line-height:1.55}.prose tr:last-child td{border-bottom:none}.prose td.mono,.prose th.mono{font-family:var(--font-mono);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.prose figure{margin:0 0 22px}.prose img{width:100%;height:auto;display:block}.prose img.iv-target{cursor:zoom-in}.prose img.iv-target:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.prose img:not([src$=\.svg]):not([src*=f\=svg]),.prose img.framed{border-radius:10px;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .prose img[src$=\.svg],:root:not([data-theme=light]) .prose img[src*=f\=svg]{box-sizing:border-box;background:#f6f7f8;border-radius:10px;padding:14px}}:root[data-theme=dark] .prose img[src$=\.svg],:root[data-theme=dark] .prose img[src*=f\=svg]{box-sizing:border-box;background:#f6f7f8;border-radius:10px;padding:14px}.prose video{border-radius:10px;width:100%;height:auto;display:block;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}.prose figcaption,.prose .caption-note{font-family:var(--font-mono);color:var(--muted);text-align:justify;text-align-last:center;margin-top:10px;font-size:10px;font-style:italic}.prose .caption-note{margin-bottom:22px}.prose .abcompare{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:0 0 8px;display:grid}.prose .abcompare figure{margin:0}@media (width>=422px) and (width<=615px){.prose .abcompare figure:last-of-type:nth-of-type(odd){grid-column:1/-1;justify-self:center;max-width:calc(50% - 7px)}}.prose .abcompare-2x2{grid-template-columns:repeat(2,1fr);gap:14px;margin:0 0 8px;display:grid}.prose .abcompare-2x2 figure{margin:0}@media (width<=480px){.prose .abcompare-2x2{grid-template-columns:1fr}}.prose svg[id^=mermaid],.prose .excalidraw-figure svg{max-width:100%;height:auto;margin:0 auto;display:block}.prose .diagram-figure,.prose .excalidraw-figure{text-align:center;margin:0 0 22px}.prose .diagram-card{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:28px 24px;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}.prose .diagram-card pre.mermaid{font-family:var(--font-mono);color:var(--muted);text-align:left;white-space:pre-wrap;margin:0;font-size:12px;line-height:1.6}.prose .excalidraw-card{color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:28px 24px;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}.prose .excalidraw-figure figcaption{font-family:var(--font-mono);color:var(--muted);text-align:center;margin-top:10px;font-size:10px}.prose .plot-figure{text-align:center;margin:0 0 22px}.prose .plot-card{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:20px 20px 12px;position:relative;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}.prose .plot-card svg{width:100%;height:auto;display:block}.prose .plot-grid line{stroke:var(--rule-soft);stroke-width:1px}.prose .plot-grid text,.prose .plot-axis text{font-family:var(--font-mono);fill:var(--muted);font-size:9px}.prose .plot-area{fill:var(--accent);opacity:.12}.prose .plot-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.prose .plot-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2px;transition:r .1s}.prose .plot-bar{fill:var(--accent);transition:opacity .1s}.prose .plot-bar.is-active{opacity:.75}.prose .plot-hit{cursor:crosshair}.prose .plot-crosshair{stroke:var(--rule);stroke-width:1px;opacity:0}.prose .plot-crosshair.is-active{opacity:1}.prose .plot-dot.is-active{r:5}.prose .plot-tooltip{pointer-events:none;background:var(--ink);color:var(--paper);font-family:var(--font-mono);white-space:nowrap;z-index:5;border-radius:5px;padding:4px 8px;font-size:10.5px;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.prose .plot-figure figcaption{font-family:var(--font-mono);color:var(--muted);text-align:center;margin-top:10px;font-size:10px}.prose .embed-frame{border-radius:10px;margin:0 0 22px;overflow:hidden;box-shadow:0 8px 24px -12px #00000059,0 2px 6px -2px #0000002e}.prose .katex-display{margin:22px 0;padding-top:2px;overflow-x:auto}.prose sup a[href^=\#ref-]{font-family:var(--font-mono);color:var(--accent);border-bottom:none;padding:0 1px;font-size:.6em;text-decoration:none}.prose sup a[href^=\#ref-]:hover{text-decoration:underline}.cite-tooltip{overflow-wrap:break-word;background:var(--ink);max-width:min(320px,100vw - 24px);color:var(--paper);font-family:var(--font-mono);opacity:0;pointer-events:none;z-index:50;border-radius:8px;padding:9px 11px;font-size:11.5px;line-height:1.55;transition:opacity .12s,transform .12s;position:absolute;transform:translateY(-4px);box-shadow:0 8px 24px -12px #00000073,0 2px 6px -2px #00000040}.cite-tooltip.visible{opacity:1;transform:translateY(0)}.fig-tooltip{opacity:0;pointer-events:none;z-index:50;background:#f6f7f8;border-radius:8px;padding:6px;line-height:0;transition:opacity .12s,transform .12s;position:absolute;transform:translateY(-4px);box-shadow:0 8px 24px -12px #00000073,0 2px 6px -2px #00000040}.fig-tooltip img{border-radius:4px;width:auto;max-width:240px;max-height:160px;display:block}.fig-tooltip.visible{opacity:1;transform:translateY(0)}.prose .ref-num{font-family:var(--font-mono);color:var(--muted);margin-right:2px}.prose .ref-back{color:var(--accent);border-bottom:none;margin-left:4px;font-size:.85em;text-decoration:none}.prose .ref-back:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){.prose .heading-link,.cite-tooltip,.fig-tooltip{transition:none}}@media print{.prose .video-figure video{display:none}.prose .video-figure:before{content:"[video]";font-family:var(--font-mono);color:#666;font-size:10px;display:block}.prose figure,.prose .abcompare,.prose .tablewrap,.prose pre.astro-code,.prose aside.note,.prose blockquote.pull-quote,.prose .katex-display{break-inside:avoid}.prose h2,.prose h3,.prose h4{break-after:avoid}.prose .diagram-card,.prose .excalidraw-card,.prose .tablewrap,.prose aside.note,.prose blockquote.pull-quote,.prose img,.prose video{box-shadow:none}.prose a{color:inherit;border-bottom:none;text-decoration:underline}.prose .heading-link{display:none}}
