:root{--amber:#ba955e;--amber-soft:rgba(186,149,94,0.14);--amber-border:rgba(186,149,94,0.5)}.note-fn,.note-tip{color:inherit;text-decoration:underline dotted var(--amber);text-decoration-thickness:1px;text-underline-offset:3px}.note-tip{position:relative;cursor:help}.note-fn{cursor:pointer;text-decoration-color:var(--amber-border)}.note-fn:focus-visible,.note-tip:focus-visible{outline:1px dotted var(--amber);outline-offset:2px}.note-tip-bubble{position:absolute;left:50%;top:calc(100% + 10px);transform:translate(-50%,4px);font-family:var(--font-mono);font-size:12px;line-height:1.55;background:#fff;color:#555;border:1px solid var(--border-color-dark,rgba(55,65,81,.3));border-radius:8px;padding:10px 12px;width:min(280px,72vw);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:3;box-shadow:0 6px 20px rgba(0,0,0,.15)}.note-tip-bubble:before{content:"";position:absolute;left:50%;top:-5px;transform:translateX(-50%) rotate(45deg);width:8px;height:8px;background:inherit;border-left:1px solid var(--border-color-dark,rgba(55,65,81,.3));border-top:1px solid var(--border-color-dark,rgba(55,65,81,.3))}.note-tip-bubble:after{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}.note-tip:focus .note-tip-bubble,.note-tip:focus-within .note-tip-bubble,.note-tip:hover .note-tip-bubble{opacity:1;transform:translate(-50%);pointer-events:auto}.dark .note-tip-bubble{background:#1a1a1a;color:#bbb;border-color:rgba(229,231,235,.18);box-shadow:0 6px 20px rgba(0,0,0,.45)}.dark .note-tip-bubble:before{border-left-color:rgba(229,231,235,.18);border-top-color:rgba(229,231,235,.18)}.note-fn sup{color:var(--amber);font-size:10px;font-weight:500;margin-left:1px}.note-fn sup,.note-fn-aside{font-family:var(--font-mono)}.note-fn-aside{display:block;font-size:12.5px;line-height:1.6;color:inherit;background:var(--amber-soft);border-left:2px solid var(--amber);padding:0 10px;border-radius:0 4px 4px 0;margin:0 0 0 1.25em;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease,margin .25s ease,padding .25s ease}.note-fn-aside.open{max-height:200px;opacity:.95;padding:8px 12px;margin:10px 0 14px 1.25em}@media (prefers-reduced-motion:reduce){.note-fn-aside,.note-tip-bubble{transition:none}}nav.toc{margin-bottom:0;font-family:var(--font-mono);font-size:var(--text-meta);line-height:20px}nav.toc ol{list-style:none}nav.toc li,nav.toc ol{margin:0;padding:0}nav.toc .toc-label{margin:0 0 var(--space-1);color:var(--ink-muted);font:inherit}nav.toc a{position:relative;display:block;padding:2px 0 2px calc(var(--space-2) * (1 + var(--depth, 0)));border:0;color:var(--ink-muted);font-weight:var(--weight-body);text-decoration:none;transition:color var(--duration-quick) var(--ease-calm)}nav.toc a:before{content:"";position:absolute;inset:0 auto 0 0;width:1px;background:var(--hairline)}nav.toc a:hover{border:0;color:var(--ink)}nav.toc a[aria-current]{color:var(--ink);font-weight:var(--weight-strong)}nav.toc a[aria-current]:before{background:var(--ink)}nav.toc a:focus-visible{outline:1px solid var(--focus);outline-offset:3px}.toc-rail{position:fixed;top:116px;left:var(--space-4);z-index:10;width:calc(var(--gutter) - 2 * var(--space-4));max-height:calc(100vh - 116px - var(--space-5));overflow-y:auto;scrollbar-width:thin}.toc-inline{display:none}@media (max-width:1279px){.toc-rail{display:none}.toc-inline{display:block;margin:var(--space-3) 0 calc((20px - 44px) / 2)}.toc-inline:not([open]) summary{margin-bottom:0}.toc-inline[open]{margin-bottom:var(--space-4)}.toc-inline summary{display:flex;align-items:center;gap:var(--space-1);min-height:44px;margin:0;cursor:pointer;list-style:none}.toc-inline summary::-webkit-details-marker{display:none}.toc-inline summary:after{content:"+"}.toc-inline[open] summary{color:var(--ink)}.toc-inline[open] summary:after{content:"−";color:var(--ink-muted)}.toc-inline summary:focus-visible{outline:1px solid var(--focus);outline-offset:3px}nav.toc .toc-inline a{padding-block:6px}}main.post :is(h1,h2,h3,h4)[id]{scroll-margin-top:var(--space-4)}@media (prefers-reduced-motion:reduce){nav.toc a{transition:none}}