:root{--bg:#f2eee7;--bg2:#e9e4db;--line:#e4dfd5;--row:#d4cfc4;--b1:#a9a59d;--b0:#87847d;--b01:#69665f;--b02:#4d4a44;
--ora:#c4845c;--red:#c46a60;--vio:#8b83b5;--grn:#7e9a5e;--pill:#e4dcf0;--okb:#e3e8d8;--warnb:#f1e0d3;--badb:#f1dcd8;
--mono:ui-monospace,Menlo,"SF Mono",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--b01);font:15px/1.6 var(--mono);font-size:min(2.5vw,max(15px,1vw),26px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0}
a{color:var(--vio);text-decoration:none;border-bottom:1px solid #d8d4e2}
a:hover{border-bottom-color:var(--vio)}
a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--vio);outline-offset:2px}
code,pre,kbd{font-family:var(--mono);font-size:1em;color:var(--b02)}
.wrap{max-width:130ch;margin:0 auto;padding:0 2ch}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:var(--bg);padding:6px 10px;z-index:9}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.top .wrap{display:flex;flex-wrap:wrap;gap:.6em 2ch;align-items:center;padding-top:1.2em;padding-bottom:.4em;color:var(--b1)}
.top .wrap>*{font-size:.87em}
.brand{color:var(--b1);border:0}.brand:hover{color:var(--vio)}
.brand .pill{margin-left:1ch}
.top nav{display:flex;gap:2ch}.top nav a{color:var(--b00,var(--b0));border:0}.top nav a:hover{color:var(--vio)}
input[type=search]{width:100%;padding:.35em 1ch;border:1px solid var(--line);border-radius:5px;background:rgba(255,255,255,.35);color:var(--b02);font:inherit}
input[type=search]::placeholder{color:var(--b1)}
main{padding-top:.4em;padding-bottom:3em;min-height:60vh}
h1{font-size:2.3em;line-height:1;margin:.8em 0 .4em;color:var(--b02);font-weight:600;letter-spacing:-.02em;overflow-wrap:anywhere}
h2{font-size:1.25em;margin:2em 0 .8em;padding-top:1.1em;border-top:1px solid var(--line);color:var(--b02);font-weight:600}
h3{font-size:1em;margin:0 0 .4em;color:var(--b02);font-weight:600;display:flex;flex-wrap:wrap;gap:1ch;align-items:baseline}
.lead{color:var(--b01)}
.muted{color:var(--b0)}
.hash code{font-size:.85em;color:var(--b0);overflow-wrap:anywhere}
.crumbs{font-size:.87em;margin-top:1em;color:var(--b1);overflow-wrap:anywhere}
pre{overflow-x:auto}
pre.code{background:var(--bg2);border-radius:3px;padding:.8em 1ch;margin:.5em 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;color:var(--b01);tab-size:2}
pre.src{counter-reset:line;position:relative;padding-left:5ch}
pre.src .ln{display:block;counter-increment:line;position:relative;scroll-margin-top:1em}
pre.src .ln::before{content:counter(line);position:absolute;left:-5ch;width:4ch;text-align:right;color:var(--b0);user-select:none}
pre.src .ln:target{background:rgba(139,131,181,.18)}
pre.sig{font-size:.93em}
.pill,.k,.st,.pr,.anon{display:inline-block;border-radius:4px;padding:0 .8ch;font-size:.85em;font-weight:400;white-space:nowrap;vertical-align:.04em;border:0}
.pill{background:var(--pill);color:var(--vio)}
a.pill:hover{border:0;background:#d9cfea}
.k{background:var(--bg2);color:var(--b0)}
.k-law{background:var(--pill);color:var(--vio)}.k-type{background:var(--okb);color:var(--grn)}
.k-effect,.k-unsafe{background:var(--warnb);color:var(--ora)}
.st-checks,.pr-yes{background:var(--okb);color:var(--grn)}
.st-unsafe,.st-open,.st-limit,.pr-open{background:var(--warnb);color:var(--ora)}
.st-fails,.st-timeout{background:var(--badb);color:var(--red)}
.st-none,.anon{background:var(--bg2);color:var(--b0);font-weight:400}
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.93em}
table.pkgs{font-size:.95em}
th,td{text-align:left;padding:.8em .9ch;border-top:1px solid var(--row);vertical-align:top}
thead th{border:0;color:var(--b01);font-size:.85em;font-weight:600;padding:.2em 1ch .5em}
tbody tr:hover td{background:rgba(255,255,255,.4)}
.num{text-align:right;white-space:nowrap;color:var(--b02)}
td.pk{font-weight:600}
td.pk a{color:var(--b02);border:0}td.pk a:hover{color:var(--vio)}
td.pk .pill,td.pk .anon{margin-left:.6ch}
td.pk a.pill{color:var(--vio)}
td.ds{max-width:44ch;color:var(--b02);font-weight:400}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
th,td.nw{white-space:nowrap}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:.3em 2ch;margin:1em 0}.facts dt{color:var(--b0)}.facts dd{margin:0;color:var(--b02)}
.mods,.edges{padding-left:2.4ch}.mods li,.edges li{margin:.2em 0;overflow-wrap:anywhere}
.via{font-size:.85em;color:var(--b0)}
.vers{margin:.8em 0}
.toc{display:flex;flex-wrap:wrap;gap:.4em 2ch;margin:1em 0}
.decl{border-top:1px solid var(--line);padding:1em 0;scroll-margin-top:1em}
.decl:target,.ctors li:target{background:rgba(139,131,181,.12);outline:1px solid var(--vio);outline-offset:4px}
.self{font-weight:600;color:var(--b02);border:0;overflow-wrap:anywhere}.self:hover{color:var(--vio)}
.decl h3 .muted{font-weight:400;font-size:.9em}
.src{margin-left:auto;font-size:.8em;font-weight:400}
.doc p{margin:.4em 0;color:var(--b01)}
.modhead{margin:1em 0}
.ctors{list-style:none;padding-left:1.6ch;border-left:2px solid var(--line)}
.err{border-left:3px solid var(--red);background:var(--badb);border-radius:3px;padding:.2em 1.4ch}
details summary{cursor:pointer;color:var(--b0);font-size:.93em}
.modes{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4em 2ch;color:var(--b01)}
.results{padding-left:3ch}.results li{padding:.8em 0;border-top:1px solid var(--line)}
.rh{display:flex;flex-wrap:wrap;gap:1ch;align-items:baseline}.rn{font-weight:600;overflow-wrap:anywhere}
.rw{font-size:.85em;color:var(--b0);overflow-wrap:anywhere}.rw a{color:var(--b0);border:0}.rw a:hover{color:var(--vio)}.rd{margin:.3em 0;color:var(--b01)}
.how{margin-top:2.4em}.how li{margin:.3em 0}
.foot .wrap{margin-top:1em;padding-top:1.4em;padding-bottom:2em;color:var(--b1)}
.foot .wrap>*{font-size:.87em}
.foot{border-top:0}
.foot .wrap{box-shadow:inset 0 1px 0 var(--line)}
.foot p{margin:.4em 0}.foot a{color:var(--b0);border:0}.foot a:hover{color:var(--vio)}
@media (max-width:760px){
table.pkgs thead{display:none}
table.pkgs tr{display:block;padding:.8em 0;border-top:1px solid var(--row)}
table.pkgs td{display:inline-block;border:0;padding:.1em 1.4ch .1em 0;text-align:left}
table.pkgs td.pk,table.pkgs td.ds{display:block;max-width:none}
table.pkgs td[data-l]::before{content:attr(data-l) ": ";color:var(--b0);font-size:.85em}
.src{margin-left:0}}
#hero{text-align:center;padding:1.2em 0 .6em}
#hero h1{margin:0}
#hero .sub{margin:.3em 0 0;font-size:.87em;color:var(--b0)}
#hero .sub b{color:var(--b02);font-weight:600}
#hero .tag{margin:.2em 0 0;color:var(--b1);font-size:.75em}
section{margin-top:1.6em}
section>h2{display:flex;align-items:baseline;gap:1ch;margin-top:0}
h2 .n{color:var(--b1);font-weight:400;font-size:.7em}
td.pk a.t{color:var(--vio);font-weight:600;border-bottom:1px solid #d8d4e2}
td.pk a.t:hover{border-bottom-color:var(--vio)}
td.pk .h{color:var(--b0);font-size:.8em;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34ch}
td.pk .more{font-size:.8em;font-weight:400;color:var(--b0);border:0;margin-left:.6ch}
td.pk a.more:hover{color:var(--vio)}
h1 .st{font-size:.36em;vertical-align:.5em}
form.q{display:flex;gap:1ch;margin:0}
form.q input{flex:1;min-width:0;font:inherit;color:var(--b02);background:var(--bg2);border:1px solid var(--line);border-radius:3px;padding:.2em 1ch;outline:none}
form.q input:focus{border-color:var(--vio)}
form.q input::placeholder{color:var(--b1)}
.btn{display:inline-block;background:var(--vio);color:#fff;font:inherit;font-weight:600;font-size:1.1em;padding:.1em 1.6ch;border-radius:5px;border:0;cursor:pointer}
.btn:hover{background:#7a72a8}
.find{max-width:none;margin:1.1em 0 0;font-size:1.25em}
.find input{padding:.35em 1.2ch}
.find .btn{font-size:1em}
.hint{margin:.6em 0 0;color:var(--b1);font-size:.8em}
.hint b{color:var(--b0);font-weight:600}
.sform{display:grid;gap:.6em;margin:1em 0}
form.q.sform{display:grid}
form.q.sform input{font-size:1.25em;padding:.35em 1.2ch}
