@font-face{font-family:geist;src:url(/fonts/geist-wght.woff2)format("woff2-variations"),url(/fonts/geist-wght.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:geist;src:url(/fonts/geist-wght-italic.woff2)format("woff2-variations"),url(/fonts/geist-wght-italic.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:geist mono;src:url(/fonts/geist-mono-wght.woff2)format("woff2-variations"),url(/fonts/geist-mono-wght.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--col:640px;--rail:168px;--gap:80px;--pad:24px;--radius:8px;--ease:cubic-bezier(0.16, 1, 0.3, 1);--bg:#fbfaf8;--surface:#f3f1ec;--hover:#f1efe9;--line:#e7e4dd;--line-strong:#d4d0c7;--ink:#1d1c19;--ink-2:#5f5a51;--ink-3:#6e695f;--accent:#b4471c;--accent-soft:rgb(180 71 28 / 0.42);--sel:rgb(225 120 72 / 0.24);--ring:rgb(180 71 28 / 0.9);color-scheme:light}:root[data-theme=dark]{--bg:#161513;--surface:#1e1d1a;--hover:#1f1e1b;--line:#2a2825;--line-strong:#3a3732;--ink:#e9e6df;--ink-2:#a9a398;--ink-3:#8d877c;--accent:#ec8f63;--accent-soft:rgb(236 143 99 / 0.45);--sel:rgb(236 143 99 / 0.26);--ring:rgb(236 143 99 / 0.85);color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);scrollbar-color:var(--line-strong)var(--bg);scroll-padding-top:24px;hanging-punctuation:first last}html::-webkit-scrollbar{width:12px;height:12px}html::-webkit-scrollbar-track{background:var(--bg)}html::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--bg);border-radius:12px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:24px;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;caret-color:var(--accent);accent-color:var(--accent)}::selection{background:var(--sel);color:var(--ink)}h1,h2,h3,h4{text-wrap:balance}p,li,dd,figcaption{text-wrap:pretty}img{max-width:100%;height:auto}a{color:inherit}a,button{-webkit-tap-highlight-color:transparent}:focus{outline:none}:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:4px}.skip{position:absolute;left:12px;top:-48px;z-index:10;padding:8px 12px;border-radius:var(--radius);background:var(--ink);color:var(--bg);text-decoration:none;font-weight:500}.skip:focus-visible{top:12px}.i{width:14px;height:14px;flex:none}.frame{max-width:calc(var(--col) + var(--pad) * 2);margin:0 auto;padding:0 var(--pad)}.col{min-width:0;padding-top:48px}.rail{padding-top:20px;view-transition-name:rail}.rail-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}.is-home .rail-in{justify-content:flex-end}.rail-id{display:inline-flex;align-items:center;gap:12px;margin:-4px;padding:4px;border-radius:var(--radius);color:var(--ink);text-decoration:none;font-weight:500}.rail-name{display:none}.rail-nav{display:flex;align-items:center;gap:4px}.rail-nav ul{display:flex;gap:4px;margin:0;padding:0;list-style:none}.rail-nav a{display:block;padding:4px 8px;border-radius:6px;color:var(--ink-2);text-decoration:none;transition:color .12s}.rail-nav a:hover{color:var(--ink)}.rail-nav a[aria-current]{color:var(--ink);font-weight:500}.theme{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;margin:0;border:0;border-radius:6px;background:0 0;color:var(--ink-2);cursor:pointer;transition:color .12s,background-color .12s}.theme:hover{color:var(--ink);background:var(--hover)}.theme .i{width:16px;height:16px;grid-area:1/1}.theme .i-sun,[data-theme=dark] .theme .i-moon{display:none}[data-theme=dark] .theme .i-sun{display:block}.toc{display:none}@media(min-width:560px){.rail-name{display:inline}}@media(min-width:1100px){.frame{display:grid;grid-template-columns:var(--rail)minmax(0,var(--col));column-gap:var(--gap);max-width:none;padding:0;margin:0 0 0 max(48px,calc((100vw - var(--rail) - var(--gap) - var(--col))/2 - 6vw))}.rail{position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto;scrollbar-width:none;padding:96px 0 48px}.rail-in{display:block}.rail-id{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:32px;font-size:14px;line-height:20px}.rail-nav{display:block}.rail-nav ul{flex-direction:column;gap:0}.rail-nav a{margin-left:-8px;padding:4px 8px;font-size:14px;line-height:20px}.theme{margin:16px 0 0 -8px}.col{padding-top:96px}.toc{display:block;margin-top:48px;font-size:13px;line-height:18px}.toc-h{margin:0 0 8px;color:var(--ink-3);font-weight:500}.toc ul{margin:0;padding:0;list-style:none}.toc li{margin:0}.toc a{display:block;padding:4px 0 4px 12px;margin-left:-1px;border-left:1px solid var(--line);color:var(--ink-3);text-decoration:none;transition:color .12s,border-color .12s}.toc a:hover{color:var(--ink)}.toc a[aria-current]{color:var(--ink);border-left-color:var(--accent)}}.mark{display:block;flex:none;width:var(--mark);height:var(--mark)}.mark img{display:block;width:100%;height:100%}.mark-d,[data-theme=dark] .mark-l{display:none!important}[data-theme=dark] .mark-d{display:block!important}.intro .mark{margin:0 0 20px -3px}.intro-name{margin:0;font-size:16px;line-height:24px;font-weight:600;letter-spacing:-.011em}.intro-role{margin:0;color:var(--ink-2)}.links{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0;padding:0;list-style:none}.intro .links{margin-top:16px}.links a{display:inline-flex;align-items:center;gap:2px;color:var(--ink-2);text-decoration:none;transition:color .12s}.links a .i{width:12px;height:12px;color:var(--ink-3);transition:transform .18s var(--ease),color .12s}.links a:hover{color:var(--ink)}.links a:hover .i{color:var(--accent);transform:translate(1px,-1px)}.block{margin-top:56px}.block-h{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;font-size:15px;line-height:24px;font-weight:500;color:var(--ink-3)}.block-h a{color:inherit;text-decoration:none;transition:color .12s}.block-h a:hover{color:var(--ink)}.rows{margin:0 -12px;padding:0;list-style:none}.rows .rows{margin:0}.row{position:relative;z-index:1;display:block}:where(.row)>a:not(.row-ext),a.row,.row-link{display:grid;grid-template-columns:minmax(0,1fr)auto;align-items:baseline;column-gap:16px;padding:8px 12px;border-radius:var(--radius);color:var(--ink);text-decoration:none}.row:focus-visible,.row>a:focus-visible,.row-link:focus-visible{outline-offset:0;border-radius:var(--radius)}.row-t{min-width:0}.row-d{font-family:var(--mono);font-size:13px;line-height:20px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.01em}.row-s{grid-column:1/-1;margin-top:2px;color:var(--ink-2);font-size:14px;line-height:20px}.row-meta{margin-left:8px;color:var(--ink-3);font-size:13px;font-weight:400;font-variant-numeric:tabular-nums}.row--part>a{grid-template-columns:52px minmax(0,1fr)auto}.row--part .row-n{grid-column:1;grid-row:1}.row--part .row-t{grid-column:2;grid-row:1}.row--part .row-d{grid-column:3;grid-row:1}.row--part .row-s{grid-column:2/-1}.row-n{color:var(--ink-3);font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.row.is-current>a{color:var(--ink);font-weight:500}.row.is-current .row-n{color:var(--accent)}.row.is-current>a{background:var(--surface)}.series-name{font-weight:500}.group+.group{margin-top:20px}.group--single{margin-top:20px}.row--project{display:grid;grid-template-columns:minmax(0,1fr)auto;align-items:baseline}.row--project .row-link{grid-column:1/-1;grid-row:1}.row--project .row-link .row-t{padding-right:168px}.row--project .row-t{font-weight:500}.row-ext{grid-column:2;grid-row:1;justify-self:end;align-self:start;margin-top:8px;position:relative;z-index:2;display:inline-flex;align-items:center;gap:2px;margin-right:12px;padding:0 2px;color:var(--ink-2);font-size:14px;line-height:24px;text-decoration:none;transition:color .12s}.row-ext .i{width:12px;height:12px;color:var(--ink-3);transition:transform .18s var(--ease),color .12s}.row-ext:hover{color:var(--ink)}.row-ext:hover .i{color:var(--accent);transform:translate(1px,-1px)}.rows--tags{columns:1;column-gap:32px}.rows--tags .row{break-inside:avoid}@media(min-width:560px){.rows--tags{columns:2}}.rows:not(.has-glide) .row>a:hover,.rows:not(.has-glide) a.row:hover,.rows:not(.has-glide) .row--project:hover .row-link{background:var(--hover)}.glide{position:absolute;z-index:0;left:0;right:0;top:0;height:0;border-radius:var(--radius);background:var(--hover);opacity:0;pointer-events:none;transition:transform .2s var(--ease),height .2s var(--ease),opacity .16s ease-out}.glide.is-on{opacity:1}.glide.is-snap{transition:opacity .16s ease-out}@media(hover:none){.glide{display:none}}@media(max-width:559px){.row--part>a{grid-template-columns:24px minmax(0,1fr)auto;column-gap:12px}.row-n-w{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.row--project .row-link .row-t{padding-right:0}:where(.row)>a:not(.row-ext){grid-template-columns:minmax(0,1fr)}.row--part>a{grid-template-columns:24px minmax(0,1fr)!important}.row>a>.row-d{grid-column:1;grid-row:2;margin-top:2px}.row--part>a>.row-d{grid-column:2;grid-row:2}.row--part .row-s{grid-column:2}.rows--tags .row>a{grid-template-columns:minmax(0,1fr)auto}.rows--tags .row>a>.row-d{grid-column:2;grid-row:1;margin:0}.row--project{grid-template-columns:1fr}.row-ext{grid-column:1;grid-row:2;justify-self:start;margin:-4px 0 8px 12px}}.page-head{margin-bottom:40px}.back{display:inline-flex;align-items:center;gap:6px;margin:0 0 32px -2px;padding:2px;color:var(--ink-3);font-size:14px;line-height:20px;text-decoration:none;transition:color .12s}.back .i{transition:transform .18s var(--ease)}.back:hover{color:var(--ink)}.back:hover .i{transform:translateX(-2px)}.page-head h1{margin:0;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.015em}.lede{margin:8px 0 0;color:var(--ink-2);font-size:15px;line-height:24px;max-width:60ch}.meta{display:flex;flex-wrap:wrap;align-items:center;margin:12px 0 0;color:var(--ink-3);font-size:14px;line-height:20px;font-variant-numeric:tabular-nums}.meta>*+*::before{content:"·";display:inline-block;margin:0 8px;color:var(--ink-3)}.meta a{display:inline-flex;align-items:center;gap:2px;color:var(--ink-2);text-decoration:none}.meta a .i{width:12px;height:12px;color:var(--ink-3)}.meta a:hover{color:var(--ink)}.meta a:hover .i{color:var(--accent)}.post-head{margin-bottom:40px}.post-head h1{font-size:28px;line-height:34px;letter-spacing:-.022em}.post-head .lede{margin-top:12px;font-size:17px;line-height:26px}.series-line{margin:4px 0 0;color:var(--ink-3);font-size:14px;line-height:20px}.series-line a{color:var(--ink-2);text-decoration-line:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px;text-decoration-thickness:1px}.series-line a:hover{color:var(--ink);text-decoration-color:var(--accent)}@media(max-width:559px){.post-head h1{font-size:24px;line-height:30px}}.post-foot{margin-top:56px}.tags{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;list-style:none;font-size:14px;line-height:20px}.tags a{color:var(--ink-3);text-decoration:none;transition:color .12s}.tags a:hover{color:var(--ink)}.next{display:grid;grid-template-columns:minmax(0,1fr)auto;align-items:center;column-gap:16px;margin:40px -12px 0;padding:12px;border-radius:var(--radius);color:var(--ink);text-decoration:none;transition:background-color .16s ease-out}.next:hover{background:var(--hover)}.next-l{color:var(--ink-3);font-size:14px;line-height:20px}.next-t{grid-column:1;font-weight:500}.next .i{grid-column:2;grid-row:1/span 2;width:16px;height:16px;color:var(--ink-3);transition:transform .18s var(--ease),color .12s}.next:hover .i{color:var(--accent);transform:translateX(2px)}.series{margin-top:48px}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:96px;padding:24px 0 48px;border-top:1px solid var(--line);color:var(--ink-3);font-size:14px;line-height:20px;font-variant-numeric:tabular-nums}.foot .links a{color:var(--ink-3)}.foot .links a:hover{color:var(--ink)}.lost{padding-top:24px}.lost .mark{margin:0 0 24px -6px}.lost h1{margin:0;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.015em}.lost-links{display:flex;gap:20px;margin:20px 0 0}.lost-links a{color:var(--ink);text-decoration-line:underline;text-decoration-color:var(--accent-soft);text-underline-offset:3px;text-decoration-thickness:1px}.lost-links a:hover{text-decoration-color:var(--accent)}@view-transition{navigation: auto; }::view-transition-old(root){animation:140ms ease-out both q-out}::view-transition-new(root){animation:260ms var(--ease)both q-in}::view-transition-group(rail){animation-duration:200ms}.vt-theme::view-transition-old(root),.vt-theme::view-transition-new(root){animation:none;mix-blend-mode:normal}.vt-theme::view-transition-new(root){animation:240ms ease-out both q-fade}.vt-theme::view-transition-old(rail),.vt-theme::view-transition-new(rail){animation-duration:240ms}@keyframes q-out{to{opacity:0}}@keyframes q-in{from{opacity:0;transform:translateY(6px);filter:blur(2px)}}@keyframes q-fade{from{opacity:0}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}*,*::before,*::after{transition-duration:0s!important}}.is-project .meta a{color:var(--ink);font-size:15px;text-decoration-line:underline;text-decoration-color:var(--accent-soft);text-underline-offset:3px;text-decoration-thickness:1px}.is-project .meta a:hover{text-decoration-color:var(--accent)}.row-stack{grid-column:1/-1;margin-top:4px;color:var(--ink-3);font-size:13px;line-height:18px}.meta--stack{margin-top:4px}.prose{font-size:17px;line-height:28px;color:var(--ink);overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose>hr:first-child{display:none}.prose>hr:first-child+*{margin-top:0}.prose p{margin:0 0 20px}.prose strong{font-weight:600}.prose em{font-style:italic}.prose h2,.prose h3,.prose h4{position:relative;scroll-margin-top:24px;color:var(--ink)}.prose h2{margin:48px 0 12px;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.015em}.prose h3{margin:36px 0 8px;font-size:17px;line-height:28px;font-weight:600;letter-spacing:-.01em}.prose h4{margin:28px 0 8px;font-size:15px;line-height:24px;font-weight:600;color:var(--ink-2)}.anchor{display:inline-grid;place-items:center;vertical-align:middle;width:24px;height:24px;margin-left:4px;border-radius:6px;color:var(--ink-3);opacity:0;text-decoration:none;transition:opacity .12s,color .12s}.anchor .i{width:14px;height:14px}.prose :is(h2,h3,h4):hover .anchor,.anchor:focus-visible{opacity:1}.anchor:hover{color:var(--accent)}@media(min-width:760px){.anchor{position:absolute;left:-32px;top:2px;margin:0}.prose h3 .anchor{top:2px}.prose h4 .anchor{top:0}}@media(hover:none){.anchor{display:none}}.prose a:not(.anchor){color:var(--ink);text-decoration-line:underline;text-decoration-color:var(--accent-soft);text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-skip-ink:auto;transition:text-decoration-color .12s,color .12s}.prose a:not(.anchor):hover{text-decoration-color:var(--accent)}.prose a:not(.anchor) code{text-decoration:inherit}.prose ul,.prose ol{margin:0 0 20px;padding-left:24px}.prose li{margin:0 0 8px;padding-left:4px}.prose li>ul,.prose li>ol{margin:8px 0 0}.prose li>p{margin-bottom:8px}.prose ul>li::marker{color:var(--ink-3)}.prose ol>li::marker{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:15px}.prose hr{width:48px;height:1px;margin:40px 0;border:0;background:var(--line-strong)}.prose blockquote{margin:28px 0;padding:0 0 0 20px;border-left:1px solid var(--line-strong);color:var(--ink-2)}.prose blockquote p:last-child{margin-bottom:0}.prose :not(pre)>code{padding:2px 5px;border-radius:5px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-family:var(--mono);font-size:.82em;line-height:1;letter-spacing:-.01em;white-space:break-spaces;overflow-wrap:anywhere}.code,.diagram{margin:28px calc(var(--pad) * -1);background:var(--surface)}.code-bar{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:6px var(--pad)0}.code-lang{color:var(--ink-3);font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.01em}.copy{display:inline-flex;align-items:center;gap:6px;margin-right:-8px;padding:4px 8px;border:0;border-radius:6px;background:0 0;color:var(--ink-3);font:500 12px/16px var(--sans);cursor:pointer;opacity:0;transition:opacity .12s,color .12s,background-color .12s}.code:hover .copy,.copy:focus-visible,.copy.is-done{opacity:1}.copy:hover{color:var(--ink);background:var(--hover)}:root[data-theme=dark] .copy:hover{background:var(--line)}.copy.is-done{color:var(--accent)}@media(hover:none){.copy{opacity:1}}.code pre,.diagram pre{margin:0;padding:8px var(--pad)20px;overflow-x:auto;font-family:var(--mono);font-size:13.5px;line-height:22px;tab-size:4;-moz-tab-size:4;scrollbar-width:thin;scrollbar-color:var(--line-strong)transparent}.code pre::-webkit-scrollbar{height:8px}.code pre::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px}.code pre code{font:inherit}.prose>pre,.prose .highlight>pre:not(.chroma){margin:28px 0;padding:16px 20px;overflow-x:auto;background:var(--surface);border-radius:var(--radius);font-family:var(--mono);font-size:13.5px;line-height:22px}.diagram{padding:20px var(--pad);text-align:center}.diagram pre.mermaid{padding:0;background:0 0;color:var(--ink-3);font-size:12px;text-align:left}.diagram pre.mermaid[data-processed]{text-align:center}.diagram svg{max-width:100%;height:auto}@media(min-width:760px){.code,.diagram{margin-left:-20px;margin-right:-20px;border-radius:10px}.code-bar{padding-left:20px;padding-right:20px}.code pre{padding-left:20px;padding-right:20px}}.table-wrap{margin:28px 0;overflow-x:auto}.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:22px;font-variant-numeric:tabular-nums}.prose th{text-align:left;font-weight:500;color:var(--ink-2);border-bottom:1px solid var(--line-strong);padding:8px 16px 8px 0;white-space:nowrap}.prose td{border-bottom:1px solid var(--line);padding:8px 16px 8px 0;vertical-align:top}.prose tr>:last-child{padding-right:0}.prose img{display:block;margin:28px 0;border-radius:var(--radius)}.prose figure.img{margin:28px 0}.prose figure.img img{margin:0}.prose figcaption:not(.code-bar){margin-top:8px;color:var(--ink-3);font-size:14px;line-height:20px}.prose .footnotes{margin-top:48px;color:var(--ink-2);font-size:14px;line-height:22px}.prose .footnotes hr{margin:0 0 20px}.prose sup{line-height:0}.prose .footnote-ref{text-decoration:none!important;font-variant-numeric:tabular-nums;padding:0 1px}.prose .katex{font-size:1.04em}.prose .katex-display{margin:24px 0;overflow-x:auto;overflow-y:hidden;padding:4px 0}.is-project .prose>p:first-child:has(>strong:only-child>a[href^=http]){display:none}@media(max-width:559px){.prose{font-size:16px;line-height:26px}.prose h2{margin-top:40px;font-size:19px;line-height:26px}}:root{--c-kw:#8f3d1b;--c-str:#4d6a37;--c-num:#2f5d86;--c-type:#5b4f86;--c-fn:#1d1c19;--c-com:#7b766b;--c-punc:#5f5a51;--c-attr:#7a5a1e;--c-del-bg:#f6e4dc;--c-ins-bg:#e5eedc}:root[data-theme=dark]{--c-kw:#e69a74;--c-str:#a9c18d;--c-num:#94b4d6;--c-type:#b9acdf;--c-fn:#f1eee8;--c-com:#8d877c;--c-punc:#a9a398;--c-attr:#dcb877;--c-del-bg:#3a2620;--c-ins-bg:#25301f}.chroma{background:0 0;color:var(--ink);-webkit-text-size-adjust:none}.chroma .err{color:var(--c-kw)}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:var(--hover)}.chroma .lnt,.chroma .ln{white-space:pre;user-select:none;margin-right:16px;color:var(--ink-3)}.chroma .line{display:flex}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:var(--c-kw)}.chroma .kt,.chroma .nb,.chroma .bp,.chroma .nc,.chroma .nn{color:var(--c-type)}.chroma .nf,.chroma .fm{color:var(--c-fn);font-weight:560}.chroma .na,.chroma .nt,.chroma .nd,.chroma .nl{color:var(--c-attr)}.chroma .no,.chroma .ni,.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:var(--c-num)}.chroma .nx,.chroma .n{color:var(--ink)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--c-str)}.chroma .se{font-weight:560}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--c-num)}.chroma .o,.chroma .ow,.chroma .p{color:var(--c-punc)}.chroma .ow{color:var(--c-kw)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--c-com);font-style:normal}.chroma .cp,.chroma .cpf{color:var(--c-kw)}.chroma .gd{color:var(--ink);background-color:var(--c-del-bg)}.chroma .gi{color:var(--ink);background-color:var(--c-ins-bg)}.chroma .ge{font-style:italic}.chroma .gs{font-weight:600}.chroma .gh,.chroma .gu{color:var(--c-num);font-weight:600}.chroma .go{color:var(--ink-2)}.chroma .gl{text-decoration:underline}.chroma .w{color:inherit}#v-quiet,#v-spines{display:contents}.spice{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 8px;margin:0;border:0;border-radius:6px;background:0 0;color:var(--ink-3);font:inherit;font-size:13px;line-height:20px;cursor:pointer;transition:color .12s,background-color .12s}.spice:focus-visible{outline-offset:-2px}.spice:hover{color:var(--accent);background:var(--hover)}.spice .i{width:14px;height:14px}@media(max-width:559px){.spice{width:32px;padding:0;justify-content:center}.spice-l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}@media(min-width:1100px){.spice{display:flex;margin:4px 0 0 -8px;height:28px}}