@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Courier New),local(Courier);size-adjust:100%}:root{color-scheme:dark;--bg:#1a1b26;--fg:#c0caf5;--muted:#8a93bd;--line:#2f334d;--accent:#7aa2f7;--panel:#16161e;--hover:#292e42;--error:#f7768e;--search:#e0af68;--status:#a9b1d6;--font-mono:"Geist Mono Variable", "Geist Mono Fallback", ui-monospace, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--pad:clamp(20px, 4vw, 48px);--wide:1200px;--gap:24px}:root[data-theme=light]{color-scheme:light;--bg:#e6e7ed;--fg:#1a1b26;--muted:#4c5577;--line:#b4b9cf;--accent:#2552b8;--panel:#d6d9e4;--hover:#c8cde0;--error:#a8234a;--search:#7a5a1c;--status:#2b3150}*,:before,:after{box-sizing:border-box}*{margin:0}html{background:var(--bg);color:var(--fg);font-family:var(--font-mono);-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--line) var(--bg);font-size:15px;line-height:1.7}body{-webkit-font-smoothing:antialiased;min-height:100dvh}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}main:focus{outline:none}.skip-link{left:var(--pad);background:var(--fg);color:var(--bg);padding:8px 12px;position:absolute;top:0;transform:translateY(-130%)}.skip-link:focus{transform:none}.frame{width:100%;max-width:calc(var(--wide) + 2 * var(--pad));padding-inline:var(--pad);margin-inline:auto}body:not([data-home]){--wide:1840px}main{padding-bottom:clamp(96px,14vw,176px)}.site-header{justify-content:space-between;align-items:baseline;gap:10px var(--gap);flex-wrap:wrap;padding-block:28px;display:flex}.brand[data-home]{display:none}.brand{font-weight:600}.site-nav{flex-wrap:wrap;gap:10px 24px;margin-left:auto;display:flex;position:relative}.site-nav a{color:var(--muted);transition:color .15s var(--ease)}.site-nav>a{z-index:1;margin-inline:-1ch;padding-inline:1ch;position:relative}.nav-cur{z-index:0;background:var(--accent);opacity:0;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.nav-cur[data-on]{opacity:1}.site-nav[data-block]>a:is(:hover,:focus-visible){color:var(--bg)}@media (prefers-reduced-motion:no-preference){.nav-cur{transition:transform .3s var(--ease), width .3s var(--ease), height .3s var(--ease), opacity .15s var(--ease)}.nav-cur.snap{transition:opacity .15s var(--ease)}}.site-nav a[aria-current=page]{color:var(--fg)}.brand:hover,.site-nav a:hover{color:var(--accent)}.theme-btn{color:var(--muted);font:inherit;line-height:inherit;cursor:pointer;transition:color .15s var(--ease);background:0 0;border:0;margin-inline:-1ch;padding-inline:1ch}.theme-btn:hover,.theme-btn:focus-visible{color:var(--accent)}.page-title{letter-spacing:-.02em;text-wrap:balance;margin-top:clamp(40px,7vw,88px);font-size:clamp(2rem,1rem + 3.4vw,3.4rem);font-weight:700;line-height:1.1}.page-title:before{content:"# ";color:var(--muted);font-weight:400}.cur{background:var(--accent);color:var(--bg)}@media (hover:hover) and (pointer:fine){.page-title{cursor:text}.ht.hv:not(.cur){box-shadow:inset 0 0 0 .04em var(--accent)}}.page-lead{text-wrap:pretty;max-width:80ch;margin-top:24px;font-size:1.2rem;line-height:1.5}.page-lead a,.prose a,.block :is(p,li,dd) a,.article-nav a{background:linear-gradient(var(--accent), var(--accent)) 100% 100% / 0 1px no-repeat, linear-gradient(color-mix(in srgb, currentColor 35%, transparent), color-mix(in srgb, currentColor 35%, transparent)) 0 100% / 100% 1px no-repeat;transition:color .15s var(--ease);padding-bottom:.12em}@media (prefers-reduced-motion:no-preference){.page-lead a,.prose a,.block :is(p,li,dd) a,.article-nav a{transition:color .15s var(--ease), background-size .38s var(--ease)}}.page-lead a:is(:hover,:focus-visible),.prose a:is(:hover,:focus-visible),.block :is(p,li,dd) a:is(:hover,:focus-visible),.article-nav a:is(:hover,:focus-visible){color:var(--accent);background-position:0 100%,0 100%;background-size:100% 1px,100% 1px}.index{border-top:1px dashed var(--line);margin-top:clamp(64px,9vw,120px);padding-top:20px}.index.flush{margin-top:32px;padding-top:0}.index-title{color:var(--muted);padding-top:.5em;font-size:.9rem;font-weight:500}.entry{column-gap:var(--gap);padding:var(--row,22px) 12px;transition:background-color .15s var(--ease);grid-template-columns:minmax(0,1fr) auto;row-gap:6px;margin-inline:-12px;display:grid}.entry:is(:hover,:focus-visible){background:var(--hover)}.entries:not(.ruled){margin-top:calc(-1 * var(--row,22px))}.entries{counter-reset:e}.entries>li{counter-increment:e}.entries>li>.entry .entry-name:before{content:counter(e, decimal-leading-zero) "  ";color:var(--muted);font-weight:400}.entry-name{transition:color .15s var(--ease);font-size:1.1rem;font-weight:600;line-height:1.3}.entry-aside{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;align-self:baseline;font-size:.9rem}.entry-text{max-width:140ch;color:var(--muted);text-wrap:pretty;grid-column:1/-1}.entry-meta{color:var(--muted);grid-column:1/-1;font-size:.9rem}.entry:hover .entry-name,.entry:focus-visible .entry-name{color:var(--accent)}.entry-name .hit{background:linear-gradient(var(--search), var(--search)) 0 0 / 0 100% no-repeat;margin-inline:-.3ch;padding-inline:.3ch}@media (hover:hover) and (pointer:fine){.entry:hover .entry-name .hit{color:var(--bg);background-size:100% 100%}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.entry-name .hit{transition:background-size .22s var(--ease), color 90ms linear 50ms}}.entries.contact-list{--row:14px;margin-top:14px}.note{color:var(--muted);margin-top:24px}.prose{max-width:62ch;font-size:1.05rem;line-height:1.75}.prose.wide{max-width:140ch}.prose>*+*{margin-top:1.2em}@media (width>=1000px) and (hover:hover) and (pointer:fine){:is(.prose.wide,article>.prose){counter-reset:ln}:is(.prose.wide,article>.prose)>*{counter-increment:ln;position:relative}:is(.prose.wide,article>.prose)>:not(pre):after{content:counter(ln);content:counter(ln) / "";color:var(--line);font-variant-numeric:tabular-nums;pointer-events:none;transition:color .15s var(--ease), border-color .15s var(--ease);border-right:2px solid #0000;padding-right:6px;font-size:.8rem;line-height:2.2;position:absolute;top:0;bottom:0;right:calc(100% + 6px)}:is(.prose.wide,article>.prose)>:not(pre):hover:after{color:var(--search);border-right-color:var(--accent)}}.prose p{text-wrap:pretty}:is(.prose,.block) h2{margin-top:2.4em;font-size:1.5rem;font-weight:600;line-height:1.25}.prose>h2:first-child{margin-top:0}.prose h3{margin-top:2em;font-size:1.2rem;font-weight:600}.index-title:before,:is(.prose,.block) h2:before{content:"## "}.prose h3:before{content:"### "}:is(.index-title,.prose h2,.block h2,.prose h3):before{color:var(--muted);font-weight:400}.prose ol{padding-left:1.3em}:is(.prose,.block) ul>li{padding-left:2ch;position:relative}:is(.prose,.block) ul>li:before{content:"-";color:var(--muted);position:absolute;left:0}.prose ol{list-style:decimal}.prose li+li{margin-top:.5em}.prose blockquote{color:var(--muted);padding-left:2ch;position:relative}.prose blockquote:before{content:">";position:absolute;left:0}.prose code{background:var(--panel);padding:.1em .3em;font-size:.86em}.prose pre{background:var(--panel);padding:1.1em 1.2em;font-size:.86rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.article-meta{color:var(--muted);margin-top:24px;font-size:.9rem}article>.prose{max-width:140ch;margin-top:64px}.article-foot{border-top:1px solid var(--line);gap:24px;margin-top:96px;padding-top:20px;display:grid}.article-tags{color:var(--muted);font-size:.9rem}.article-nav{gap:12px;display:grid}.btn{border:1px solid var(--fg);color:var(--fg);font:inherit;cursor:pointer;background:0 0;border-radius:0;padding:10px 16px}.btn-solid{background:var(--fg);color:var(--bg)}.btn:hover{border-color:var(--accent);background:var(--accent);color:var(--bg)}@media (width<=759px){.index-title{margin-bottom:18px;padding-top:0}}@media (width>=760px){main{column-gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr));align-content:start;display:grid}main>*{grid-column:1/-1}.index{grid-template-columns:subgrid;display:grid}.index-title{grid-column:1/span 1}.index>:not(.index-title){grid-column:1/-1}}@media (prefers-reduced-motion:no-preference){.page-title{animation:rise .7s var(--ease) backwards}.entries li{animation:rise .7s var(--ease) backwards;animation-delay:calc(.12s + var(--i,0) * 45ms)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vim-status{z-index:50;border-top:1px solid var(--line);background:var(--panel);color:var(--status);white-space:pre;justify-content:space-between;font-size:13px;line-height:28px;display:flex;position:fixed;bottom:0;left:0;right:0}.vs-left,.vs-right{min-width:0;display:flex}.vs-right{flex:none}.vs-mode,.vs-pos{background:var(--accent);color:var(--panel);text-align:center;font-weight:700}.vs-mode{min-width:10ch;padding-inline:1ch}.vs-pos{min-width:9ch;padding-inline:1ch}.vs-file{text-overflow:ellipsis;min-width:0;padding-left:2ch;overflow:hidden}.vs-enc,.vs-pct{padding-right:2ch}.vs-keys,.vs-sound,.vs-theme{color:var(--muted);font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;padding:0 2ch 0 0}.vs-keys:hover,.vs-keys:focus-visible,.vs-sound:hover,.vs-sound:focus-visible,.vs-theme:hover,.vs-theme:focus-visible{color:var(--fg)}.vs-keys:focus-visible,.vs-sound:focus-visible,.vs-theme:focus-visible{outline-offset:-3px}.vim-row{z-index:51;background:var(--bg);pointer-events:none;height:28px;padding-inline:1ch;font-size:13px;line-height:28px;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.vim-row[data-open]{pointer-events:auto;transform:none}html[data-row] .vim-status{bottom:28px}.vim-cmd{display:flex}.vim-cmd[hidden]{display:none}.vim-cmd input{min-width:0;caret-color:var(--accent);caret-shape:block;color:var(--fg);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0}.vim-msg{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vim-msg[data-error]{color:var(--error)}.vim-cmd:not([hidden])+.vim-msg{display:none}@media (width<=559px){.vs-enc,.vs-pct,.vs-keys,.vs-theme{display:none}.vs-mode{min-width:0}}.c{white-space:pre;flex:none;width:.6em;height:1.2em;display:block}.c.ul{box-shadow:inset 0 -.24em 0 var(--accent)}@media (hover:hover) and (pointer:fine){.dash-cells{cursor:text}.c.hv:not(.cur){box-shadow:inset 0 0 0 .04em var(--accent)}}.dash{text-align:center;justify-items:center;display:grid;container-type:inline-size}.dash-hero{place-items:center;width:100%;min-height:calc(100svh - 111px);display:grid}.dash-name{letter-spacing:0;font-size:min(13.5135cqi,30svh);font-weight:700;line-height:1.2}.dash-cells{justify-content:center;display:flex}.dash-cells .end{margin-right:-.6em}.dash-rows{text-align:left;border-top:1px dashed var(--line);width:100%;margin-top:clamp(24px,6svh,56px)}.dash-rows a{align-items:baseline;column-gap:var(--gap);border-bottom:1px dashed var(--line);transition:color .15s var(--ease);grid-template-columns:4rem minmax(0,1fr) auto 4ch;padding-block:clamp(16px,2.6vw,28px);display:grid}.dash-n,.dash-d,.dash-k{color:var(--muted);font-size:1rem}.dash-k{text-align:right}.dash-t{letter-spacing:-.03em;font-size:clamp(2.2rem,1rem + 4.6vw,4.6rem);font-weight:600;line-height:1.1}@media (width<=559px){.dash-rows a{grid-template-columns:2.4rem minmax(0,1fr) 2ch}.dash-d{display:none}}html[data-intro]:not([data-playing]) .c.cur:not(.first){color:inherit;background:0 0}html[data-intro]:not([data-playing]) .c.first{background:var(--accent);color:var(--bg)}html[data-intro] .dash-hero .w:not(.done){font-weight:200}html[data-intro] .dash-hero .w{transition:font-weight .16s var(--ease);animation:0s 2.5s forwards hero-open}@keyframes hero-open{to{font-weight:700}}.smear{z-index:40;background:var(--accent);pointer-events:none;position:fixed;inset:0}.smear[hidden]{display:none}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}.site-header{view-transition-name:tabline}.vim-status{view-transition-name:statusline}::view-transition-group(tabline),::view-transition-group(statusline){animation:none}::view-transition-group(lang-cursor){animation-duration:.32s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-old(lang-cursor){display:none}::view-transition-new(lang-cursor){mix-blend-mode:normal;animation:none}::view-transition-old(tabline),::view-transition-old(statusline){display:none}::view-transition-new(tabline),::view-transition-new(statusline){mix-blend-mode:normal;animation:none}::view-transition-old(root),::view-transition-new(root){animation-duration:90ms}}.dash-rows a{isolation:isolate;position:relative}.dash-rows a:before{content:"";z-index:-1;background:radial-gradient(280px circle at var(--mx,30%) 50%, color-mix(in srgb, var(--accent) 12%, var(--hover)), var(--hover) 75%);opacity:0;transition:opacity .16s var(--ease);position:absolute;inset:0 -12px}.dash-rows a:focus-visible:before{opacity:1}.dash-t{transition:transform .22s var(--ease);display:inline-block}.dash-rows a:focus-visible :is(.dash-n,.dash-d,.dash-k){color:var(--fg)}.dash-l{transition:none}.dash-rows a:focus-visible .dash-l{background:var(--accent);color:var(--bg)}.dash-rows a:focus-visible .dash-t{transform:translate(.6ch)}@media (hover:hover) and (pointer:fine){.dash-rows a:hover:before{opacity:1}.dash-rows a:hover :is(.dash-n,.dash-d,.dash-k){color:var(--fg)}.dash-rows a:hover .dash-l{background:var(--accent);color:var(--bg)}.dash-rows a:hover .dash-t{transform:translate(.6ch)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.dash-rows li{animation:linear both row-in view();animation-range:entry entry 60%}}}@keyframes row-in{0%{opacity:0;transform:translateY(16px)}}.link-preview{z-index:50;border:1px solid var(--line);background:var(--bg);width:min(22rem,100vw - 16px);color:var(--fg);pointer-events:none;padding:10px 12px;font-size:.875rem;line-height:1.45;position:fixed}.link-preview[hidden]{display:none}.link-preview img{width:100%;height:auto;margin-bottom:8px;display:block}.link-preview img[hidden]{display:none}.link-preview strong{margin-bottom:4px;font-weight:600;display:block}.link-preview p{color:var(--muted);margin:0}@media (width<=559px){.vim-status{overflow:hidden}body{padding-bottom:48px}.dash-hero{overflow-x:clip}}.tag{border:1px solid var(--line);color:var(--muted);white-space:nowrap;transition:color .15s var(--ease), border-color .15s var(--ease);padding:0 .6em;font-size:.8rem;line-height:1.6;display:inline-block}.lang{display:inline-flex;position:relative}.lang a{z-index:1;width:3ch;color:var(--muted);text-align:center;transition:color .15s var(--ease);position:relative}.site-nav .lang a[aria-current=true]{color:var(--bg);font-weight:700}.lang-cur{background:var(--accent);view-transition-name:lang-cursor;width:3ch;position:absolute;inset:0 auto 0 0}.lang[data-on=de] .lang-cur{transform:translate(3ch)}html:not([data-js]) .find-btn{display:none}.find-btn{color:var(--muted);font:inherit;cursor:pointer;transition:color .15s var(--ease);background:0 0;border:0;padding:0}.find-btn kbd{border:1px solid var(--line);font:inherit;margin-left:.4em;padding:0 .45em;font-size:.8em}.find-btn:hover{color:var(--accent)}@media (hover:none){.find-btn kbd{display:none}}.filters{margin-top:36px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;transition:color .15s var(--ease), border-color .15s var(--ease), background-color .15s var(--ease);background:0 0;padding:2px 12px;font-size:.9rem}.chip span{font-variant-numeric:tabular-nums;margin-left:.4em}.chip:hover{border-color:var(--muted);color:var(--fg)}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--bg)}.chip:active{transform:translateY(1px)}.filters-note{min-height:1.7em;color:var(--muted);margin-top:12px;font-size:.9rem}.entries.ruled>li:not([hidden])~li:not([hidden]){border-top:1px dashed var(--line)}.entries.ruled>li>.entry,.entries.ruled>li:first-child>.entry{padding-top:26px;padding-bottom:26px}.ruled .entry-name{font-size:1.3rem}.ruled .entry-sub{font-size:.8rem;display:block}.entry-tags{flex-wrap:wrap;grid-column:1/-1;gap:6px;margin-top:4px;display:flex}.entry:is(:hover,:focus-visible) .tag{border-color:var(--muted);color:var(--fg)}@media (hover:hover) and (pointer:fine){.ruled .entry-name{transition:color .15s var(--ease), transform .22s var(--ease)}.ruled .entry:hover .entry-name{transform:translate(.6ch)}}.rail{gap:28px;margin-top:40px;font-size:.9rem;display:grid}.rail-n{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.record{gap:16px var(--gap);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.record dt{color:var(--muted);font-size:.8rem}.record dd{margin-top:2px}.record-tags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.outline{display:none}.outline-title{color:var(--muted);margin-bottom:8px;font-size:.8rem}.outline ol{counter-reset:o;border-left:1px solid var(--line);position:relative}.outline ol:before{content:"";width:1px;height:var(--h,0);background:var(--accent);transform:translateY(var(--y,0));position:absolute;top:0;left:-1px}.outline ol[data-ready]:before{transition:transform .22s var(--ease), height .22s var(--ease)}.outline li{counter-increment:o}.outline a{color:var(--muted);transition:color .15s var(--ease);padding:4px 0 4px 14px;display:block}.outline a:before{content:counter(o, decimal-leading-zero) "  "}.outline a:hover{color:var(--fg)}.outline a[aria-current=true]{color:var(--accent)}.project-body{margin-top:56px}.block{max-width:110ch;scroll-margin-top:24px;font-size:1.05rem;line-height:1.75}.block p{text-wrap:pretty}.block+.block{border-top:1px dashed var(--line);margin-top:44px;padding-top:8px}.block h2{margin-top:1.4em;margin-bottom:.6em}.block>:not(h2)+:not(h2){margin-top:1.1em}.block h3{margin-top:1.9em;font-size:1.1rem;font-weight:600;line-height:1.3}.block h3:before{content:"### ";color:var(--muted);font-weight:400}.block li+li{margin-top:.45em}.block code{background:var(--panel);padding:.1em .3em;font-size:.86em}.block pre{background:var(--panel);padding:1.1em 1.2em;font-size:.86rem;line-height:1.6;overflow-x:auto}.block pre code{font-size:inherit;background:0 0;padding:0}.linkbar{flex-wrap:wrap;gap:4px 28px;margin-bottom:40px;font-size:.95rem;display:flex}.linkbar a{border-bottom:1px dashed var(--line);transition:border-color .15s var(--ease);flex-wrap:wrap;gap:0 1.2ch;padding:6px 0;display:inline-flex}.lb-k{transition:color .15s var(--ease)}.lb-v{color:var(--muted);overflow-wrap:anywhere}.linkbar a:is(:hover,:focus-visible){border-bottom-color:var(--accent)}.linkbar a:is(:hover,:focus-visible) .lb-k{color:var(--accent)}.fig{max-width:110ch}.project-body>.fig{margin-bottom:56px}.fig-img{border:1px solid var(--line);background:var(--panel);transition:border-color .15s var(--ease);display:block}.fig-img img{width:100%;height:auto;display:block}.fig-img:is(:hover,:focus-visible){border-color:var(--accent)}.fig figcaption{max-width:96ch;color:var(--muted);grid-template-columns:auto minmax(0,1fr);gap:0 2ch;margin-top:10px;font-size:.9rem;line-height:1.6;display:grid}.fig-n{color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.figs{gap:52px;display:grid}.facts{display:grid}.facts>div{gap:4px var(--gap);border-bottom:1px dashed var(--line);grid-template-columns:minmax(12ch,26ch) minmax(0,1fr);padding:10px 0;font-size:.98rem;line-height:1.6;display:grid}.facts dt{color:var(--muted)}.facts dd{overflow-wrap:anywhere}@media (width<=559px){.facts>div{grid-template-columns:1fr}}.cert .fig{max-width:760px;margin-top:28px}.cert-open{margin-top:20px}.cert:has(.cert-image:target) .cert-open{display:none}.cert-image{scroll-margin-top:24px;display:none}.cert-image:target{display:block}.cert-close{margin-top:12px}.link-rows{margin-top:4px}.block .link-rows>li{padding-left:0}.block .link-rows>li:before{content:none}.link-row{gap:4px var(--gap);border-bottom:1px dashed var(--line);transition:background-color .15s var(--ease);grid-template-columns:minmax(0,1fr) auto;margin-inline:-12px;padding:14px 12px;display:grid}.link-row:is(:hover,:focus-visible){background:var(--hover)}.lr-label{transition:color .15s var(--ease)}.link-row:is(:hover,:focus-visible) .lr-label{color:var(--accent)}.lr-where{color:var(--muted);text-align:right;overflow-wrap:anywhere;font-size:.9rem}.pager{gap:var(--gap);border-top:1px dashed var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(56px,8vw,96px);padding-top:20px;display:grid}.pager-a{transition:background-color .15s var(--ease);align-content:start;gap:2px;margin-inline:-12px;padding:14px 12px;display:grid}.pager-a:is(:hover,:focus-visible){background:var(--hover)}.pager-next{text-align:right}.pager-k,.pager-s{color:var(--muted);font-size:.85rem}.pager-t{transition:color .15s var(--ease);font-size:1.15rem;font-weight:600}.pager-a:is(:hover,:focus-visible) .pager-t{color:var(--accent)}@media (width<=559px){.pager{grid-template-columns:1fr;gap:0}.pager-next{text-align:left}.link-row{grid-template-columns:1fr}.lr-where{text-align:left}}@media (width>=760px){.project{grid-column:1/-1;grid-template-columns:subgrid;align-items:start;display:grid}.project>.page-title{grid-area:1/4/auto/-1}.project>.page-lead{grid-area:2/4/auto/-1}.project-body{grid-area:3/4/auto/-1}.rail{grid-area:1/1/span 3/span 3;margin-top:clamp(52px,8vw,100px);position:sticky;top:24px}.record{grid-template-columns:1fr}.outline{display:block}}.finder{border:1px solid var(--line);background:var(--panel);width:min(920px,100vw - 24px);max-width:none;max-height:none;color:var(--fg);margin:12vh auto auto;padding:0;font-size:14px;line-height:1.5;overflow:hidden}.finder::backdrop{background:color-mix(in srgb, var(--bg) 80%, transparent)}.f-bar{border-bottom:1px solid var(--line);transition:border-color .15s var(--ease);align-items:center;gap:1ch;padding:14px 16px;display:flex}.f-bar:focus-within{border-bottom-color:var(--accent)}.f-prompt{color:var(--accent);font-weight:700}.f-bar input{min-width:0;caret-color:var(--accent);caret-shape:block;color:var(--fg);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0;font-size:1rem}.f-bar input::placeholder{color:var(--muted)}.f-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.f-main{grid-template-columns:minmax(0,5fr) minmax(0,6fr);height:min(420px,56vh);display:grid}.f-list{overscroll-behavior:contain;border-right:1px solid var(--line);padding-block:6px;position:relative;overflow-y:auto}.f-list:before{content:"";height:var(--sh,0);background:var(--hover);transform:translateY(var(--sy,0));position:absolute;top:0;left:0;right:0}.f-list[data-glide]:before{transition:transform .11s var(--ease)}.f-row{cursor:pointer;gap:1.5ch;padding:5px 16px 5px 8px;display:flex;position:relative}.f-row:before{content:" ";width:1ch;color:var(--accent);flex:none;font-weight:700}.f-row.on:before{content:">"}.f-kind{width:5ch;color:var(--muted);flex:none}.f-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.finder b{color:var(--accent);font-weight:700}.f-empty{color:var(--muted);padding:12px 16px}.f-preview{overscroll-behavior:contain;padding:18px 22px;overflow-y:auto}.f-path,.f-meta,.f-note{color:var(--muted);font-size:.85rem}.f-title{margin-top:10px;font-size:1.4rem;font-weight:700;line-height:1.25}.f-meta{margin-top:4px}.f-sum{margin-top:14px}.f-tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.f-note{margin-top:16px}.f-label{color:var(--accent);white-space:pre}.f-keys{border-top:1px solid var(--line);color:var(--muted);white-space:pre;padding:8px 16px;font-size:.8rem}@media (width<=759px){.finder{margin-top:8vh}.f-main{grid-template-columns:1fr;height:min(360px,60vh)}.f-list{border-right:0}.f-preview,.f-keys{display:none}}@media (prefers-reduced-motion:no-preference){.finder[open]{animation:finder-in .14s var(--ease)}}@keyframes finder-in{0%{opacity:0;transform:translateY(-8px)}}@media (width<=559px){.site-nav{column-gap:16px}.find-btn kbd{display:none}.vs-mode{flex:none}.chips{margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.chip{flex:none}}.entry:focus-visible .lc{background:var(--accent);color:var(--bg)}.entry.fly:focus-visible .lc{color:inherit;background:0 0}html[data-travel] .page-title .cur,html[data-retype] .page-title .cur{color:inherit;background:0 0;animation:none}html[data-retype] .page-title{visibility:hidden}.page-title .ht.ul{box-shadow:inset 0 -.24em 0 var(--accent)}@media (prefers-reduced-motion:no-preference){.page-title .cur{animation:1.06s step-end .53s infinite cursor-blink}}@keyframes cursor-blink{0%{background-color:var(--accent);color:var(--bg)}50%{color:var(--fg);background-color:#0000}}::highlight(yank){background-color:var(--accent);color:var(--bg)}::highlight(yank-fade){background-color:color-mix(in srgb, var(--accent) 38%, transparent);color:var(--fg)}.cv-actions{flex-wrap:wrap;gap:8px 28px;margin-top:20px;display:flex}.cv-actions a{text-underline-offset:.2em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);transition:color .15s var(--ease), text-decoration-color .15s var(--ease)}.cv-actions a:hover{color:var(--accent);text-decoration-color:currentColor}.prose.cv{max-width:100ch;font-size:1rem}.cv h2{font-size:1.4rem}.cv h3{font-size:1.15rem}.cv h2:first-child{margin-top:0}.cv h3{margin-top:1.8em}.cv h3+p{color:var(--muted);margin-top:.2em;font-size:.9rem}.cv h3+p+ul{margin-top:.7em}@page{margin:16mm 15mm}@media print{:root,:root[data-theme]{--bg:#fff;--fg:#111;--muted:#555;--line:#bbb;--accent:#1b3fa0;--panel:#f2f2f2}html{font-size:10pt;line-height:1.5}.skip-link,.site-header,.vim-status,.vim-row,.cv-actions a[download],.smear{display:none!important}.cv-actions{margin-top:6pt}.cv-actions a{text-decoration:none}main{padding-bottom:0;display:block}.page-title{margin-top:0;font-size:24pt}.page-title .cur{color:inherit;background:0 0;animation:none}.index{margin-top:18pt}.prose.cv{max-width:none}.cv h2{break-after:avoid;margin-top:1.6em}.cv h3{break-after:avoid;margin-top:1.2em}.cv li{break-inside:avoid}}@media (width<=559px){.f-bar input,.vim-cmd input{font-size:16px}.fig figcaption{font-size:.95rem;line-height:1.55}.figs{gap:36px}}
