.doc .page-head h1{font-size:clamp(36px,5.4vw,64px)}.doc-grid{gap:calc(var(--m) * 2);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1040px){.doc-grid{grid-template-columns:210px minmax(0,1fr)}.doc .toc{position:sticky;top:84px}}.doc .toc{align-content:start;gap:12px;display:grid}.doc .toc ol{border-left:1px solid var(--line);gap:8px;margin:0;padding:0;list-style:none;display:grid}.doc .toc a{color:var(--ink-3);border-left:1px solid #0000;margin-left:-1px;padding-left:12px;font-size:13.5px;line-height:1.4;text-decoration:none;display:block}.doc .toc a:hover{color:var(--ink);border-left-color:var(--glass-violet)}.doc .toc .src{font:500 11px/1.5 var(--mono);color:var(--ink-3)}@media (width<=1039px){.doc .toc{display:none}}.docbody{max-width:78ch}.docbody>h1:first-child{display:none}.docbody>p.lede{color:var(--ink-2);margin-top:0;font-size:clamp(18px,1.8vw,21px);line-height:1.6}.docbody>.verdict{--tint:var(--glass-violet);isolation:isolate;border:1px solid color-mix(in srgb, var(--glass-violet) 45%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--glass-violet) calc(14% + 6% * var(--glow)), transparent), color-mix(in srgb, var(--glass-cyan) calc(8% + 4% * var(--glow)), transparent));box-shadow:0 0 calc(60px * var(--glow)) calc(-20px * var(--glow)) var(--glass-violet);border-radius:3px;margin:1.6em 0 2.4em;padding:22px 24px 24px;position:relative}.docbody>.verdict:after{content:"";background:linear-gradient(var(--glass-cyan), var(--glass-violet), var(--glass-amber));width:3px;position:absolute;top:-1px;bottom:-1px;right:-1px}.docbody>.verdict .vlabel{font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--focus);margin-bottom:12px;display:block}.docbody>.verdict p{color:var(--ink);font-size:clamp(18px,1.9vw,22px);line-height:1.5}.docbody>.verdict strong{font-weight:600}.docbody .dsec{margin-top:2.6em}.docbody .dsec>h2{margin-top:0}.docbody .dsec>*+*{margin-top:1em}.docbody .dcard{isolation:isolate;border:1px solid color-mix(in srgb, var(--line-strong) 55%, transparent);background:color-mix(in srgb, var(--raised) calc(58% - 12% * var(--glow)), transparent);-webkit-backdrop-filter:blur(8px);border-radius:3px;margin-top:1.1em;padding:20px 22px;position:relative}.docbody .dcard:after{content:"";background:linear-gradient(var(--glass-cyan), var(--glass-violet), var(--glass-amber));width:2px;opacity:calc(.45 + .35 * var(--glow));position:absolute;top:-1px;bottom:-1px;right:-1px}.docbody .dcard>h3{letter-spacing:-.01em;margin:0 0 .7em;font-size:21px}.docbody .dcard>*+*{margin-top:.75em}.docbody .field{border-top:1px solid color-mix(in srgb, var(--line) 80%, transparent);grid-template-columns:132px minmax(0,1fr);gap:4px 16px;padding-top:.7em;font-size:16px;line-height:1.6;display:grid}.docbody .field .flabel{font:500 11px/1.9 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);align-items:flex-start;gap:8px;display:inline-flex}.docbody .field .flabel:before{content:"";background:var(--ftint,var(--glass-smoke));width:7px;height:14px;mix-blend-mode:var(--blend);border-radius:1px;flex:none;margin-top:3px}.docbody .field-gain{--ftint:var(--glass-cyan)}.docbody .field-lose{--ftint:var(--glass-rose)}.docbody .field-deciding-question{--ftint:var(--glass-amber)}.docbody .field-verdict{--ftint:var(--glass-violet);background:linear-gradient(90deg, color-mix(in srgb, var(--glass-violet) calc(8% + 4% * var(--glow)), transparent), transparent 80%);margin-inline:-22px;padding-inline:22px;color:var(--ink);margin-bottom:-.4em;padding-bottom:.7em}.docbody .field-build,.docbody .field-adopt,.docbody .field-interoperate-with,.docbody .field-dont-build,.docbody .field-keep-ratatui{grid-template-columns:1fr}.docbody .field-build{--ftint:var(--glass-violet)}.docbody .field-adopt{--ftint:var(--glass-cyan)}.docbody .field-interoperate-with{--ftint:var(--glass-amber)}.docbody .field-dont-build{--ftint:var(--glass-rose)}@media (width<=600px){.docbody .field{grid-template-columns:1fr}.docbody .dcard{padding:16px}.docbody .field-verdict{margin-inline:-16px;padding-inline:16px}}.docbody .table-wrap{background:color-mix(in srgb, var(--raised) calc(60% - 14% * var(--glow)), transparent)}.docbody td strong{color:var(--focus)}.docbody ol>li::marker{font:500 .85em var(--mono);color:var(--focus)}.roadmap .docbody .dsec{border:1px solid color-mix(in srgb, var(--line-strong) 50%, transparent);background:color-mix(in srgb, var(--raised) calc(55% - 12% * var(--glow)), transparent);border-radius:3px;padding:20px 22px;position:relative}.roadmap .docbody .dsec>h2{border-top:0;padding-top:0;font-size:clamp(20px,2.2vw,25px)}.roadmap .docbody .dsec>h2:before{display:none}.roadmap .docbody .dsec.is-done{border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.roadmap .docbody .dsec.is-next{border-color:color-mix(in srgb, var(--glass-violet) 60%, transparent);box-shadow:0 0 calc(50px * var(--glow)) calc(-22px * var(--glow)) var(--glass-violet)}.roadmap .docbody .dsec.is-next:after{content:"next";font:500 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--glass-violet);border-radius:999px;padding:5px 8px;position:absolute;top:18px;right:18px}.docbody .progress{font:500 11.5px/1 var(--mono);color:var(--ink-3);align-items:center;gap:12px;display:flex}.docbody .pbar{background:color-mix(in srgb, var(--sunken) 80%, transparent);height:6px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--line) 70%, transparent);border-radius:1px;flex:0 220px;overflow:hidden}.docbody .pfill{background:linear-gradient(90deg, var(--glass-cyan), var(--glass-violet));height:100%;display:block}.docbody ul.contains-task-list{padding-left:0;list-style:none}.docbody .task-list-item{padding-left:26px;position:relative}.docbody .task-list-item input{-webkit-appearance:none;appearance:none;border:1.5px solid var(--line-strong);border-radius:2px;width:13px;height:13px;margin:0;position:absolute;top:.45em;left:2px}.docbody .task-list-item input:checked{background:var(--ok);border-color:var(--ok);box-shadow:inset 0 0 0 2px var(--ground)}.docbody .dsec[data-title=recommendation]{isolation:isolate;border:1px solid color-mix(in srgb, var(--glass-violet) 40%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--glass-violet) calc(8% + 4% * var(--glow)), transparent), transparent 60%), color-mix(in srgb, var(--raised) calc(50% - 12% * var(--glow)), transparent);border-radius:3px;padding:4px 24px 24px;position:relative}.docbody .dsec[data-title=recommendation]>h2{border-top:0}.docbody .dsec[data-title=recommendation]>h2:before{top:0}@media (width<=600px){.docbody .dsec[data-title=recommendation]{padding:4px 16px 18px}}.docbody .dsec.is-pitch{isolation:isolate;border:1px solid color-mix(in srgb, var(--glass-violet) 45%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--glass-violet) calc(14% + 6% * var(--glow)), transparent), color-mix(in srgb, var(--glass-cyan) calc(8% + 4% * var(--glow)), transparent));box-shadow:0 0 calc(60px * var(--glow)) calc(-20px * var(--glow)) var(--glass-violet);border-radius:3px;padding:6px 24px 24px;position:relative}.docbody .dsec.is-pitch:after{content:"";background:linear-gradient(var(--glass-cyan), var(--glass-violet), var(--glass-amber));width:3px;position:absolute;top:-1px;bottom:-1px;right:-1px}.docbody .dsec.is-pitch>h2{font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--focus);border-top:0;padding-top:14px}.docbody .dsec.is-pitch>h2:before{display:none}.docbody .dsec.is-pitch p{color:var(--ink);font-size:clamp(18px,1.9vw,22px);line-height:1.5}@media (width<=600px){.docbody .dsec.is-pitch{padding:4px 16px 18px}}
