/* The library menu, for pages outside the app (research). Generated from style.css and v21.css; keep in sync. */
:root{--ground:#FFFFFF;--ink:#141414;--ink-mid:#717171;--ink-dim:#ADADAD;--fill:rgba(64,64,64,.06);--fill-2:rgba(64,64,64,.08);--navbg:rgba(237,237,237,.64);--card:rgba(64,64,64,.06);--card-hover:rgba(64,64,64,.08);--glass:rgba(115,115,115,.56);--hair:rgba(65,65,65,.16);--ring:rgba(0,0,0,.1);--btn-bg:#141414;--btn-ink:#FFFFFF;--flag:#C6462C;--ease:cubic-bezier(0,0,.2,1);--fast:150ms;--slow:300ms}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ground:#0B0B0C;--ink:#FFFFFF;--ink-mid:#8C8C90;--ink-dim:#5C5C61;--fill:rgba(255,255,255,.07);--fill-2:rgba(255,255,255,.10);--navbg:rgba(30,30,32,.64);--card:rgba(255,255,255,.07);--card-hover:rgba(255,255,255,.10);--glass:rgba(140,140,140,.56);--ring:rgba(255,255,255,.12);--hair:rgba(255,255,255,.14);--btn-bg:#FFFFFF;--btn-ink:#0B0B0C;--flag:#FF7A6B}}
:root[data-theme="dark"]{--ground:#0B0B0C;--ink:#FFFFFF;--ink-mid:#8C8C90;--ink-dim:#5C5C61;--fill:rgba(255,255,255,.07);--fill-2:rgba(255,255,255,.10);--navbg:rgba(30,30,32,.64);--card:rgba(255,255,255,.07);--card-hover:rgba(255,255,255,.10);--glass:rgba(140,140,140,.56);--ring:rgba(255,255,255,.12);--hair:rgba(255,255,255,.14);--btn-bg:#FFFFFF;--btn-ink:#0B0B0C;--flag:#FF7A6B}
.nav{position:relative;z-index:20;background:var(--ground);border-bottom:1px solid var(--hair)}
.nav-in{display:flex;align-items:center;gap:28px;height:60px;max-width:calc(1920px + 160px);margin:0 auto;padding-inline:20px}
@media (min-width:720px){.nav-in{padding-inline:24px}}
@media (min-width:1280px){.nav-in{padding-inline:32px}}
@media (min-width:1536px){.nav-in{padding-inline:80px}}
.mark{display:inline-flex;align-items:baseline;gap:9px;margin-right:auto;font-weight:652;letter-spacing:-.2px;font-size:17px;white-space:nowrap;background:none;border:0;color:inherit;cursor:pointer;padding:0}
.mark .cnt{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;font-weight:400;letter-spacing:.02em;color:var(--ink-dim)}
.nav a.l{color:var(--ink-mid);text-decoration:none;font-weight:600;font-size:15px;transition:color var(--fast) var(--ease);cursor:pointer}
.nav a.l:hover, .nav a.l.on{color:var(--ink)}
.nav a:focus-visible, .mark:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}
@media (max-width:520px){.nav-in{gap:18px}}
@media (max-width:520px){.mark .cnt{display:none}}
@media (max-width:520px){.nav a.l{font-size:14px}}
:root{--read:1100px;--mid:1400px}
.railtop{display:flex;gap:28px;align-items:center}
body:not(.rail) .railfoot{display:none}
body.rail .nav{position:fixed;top:0;left:0;bottom:0;width:var(--rail);z-index:40;background:var(--ground);border-bottom:0;border-right:1px solid var(--hair);overflow:hidden}
body.rail .nav-in{display:flex;flex-direction:column;align-items:stretch;gap:0;height:100%;max-width:none;padding:22px 14px 20px}
body.rail .railfoot{flex:none;margin-top:14px;padding-top:14px}
body.rail .mark{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0 0 18px;padding-inline:8px;font-size:19px;text-align:left}
body.rail .mark .cnt{display:block;font-size:11.5px}
body.rail .railtop{display:block}
body.rail .nav a.l{display:flex;align-items:center;gap:8px;padding:7px 8px;font-size:15px;font-weight:600;border-radius:6px;position:relative;z-index:1}
.railfoot{margin-top:22px;padding:0 8px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px;line-height:22px;color:var(--ink-dim)}
.railfoot a{display:block;color:var(--ink-mid);text-decoration:none;transition:color var(--fast) var(--ease)}
.railfoot a:hover{color:var(--ink)}
.railfoot .cc{margin-top:8px;display:block}
@media (max-width:1000px){body.rail .nav{position:relative;width:auto;border-right:0;border-bottom:1px solid var(--hair);overflow:visible}}
@media (max-width:1000px){body.rail .nav-in{display:flex;align-items:center;gap:22px;height:60px;padding:0 20px}}
@media (max-width:1000px){body.rail .mark{flex-direction:row;align-items:baseline;gap:9px;margin:0 auto 0 0;padding:0}}
@media (max-width:1000px){body.rail .railtop{display:flex;gap:22px}}
@media (max-width:1000px){body.rail .railfoot{display:none}}
@media (max-width:560px){body.rail .mark .cnt{display:none}}
@media (max-width:560px){body.rail .nav-in{gap:16px}}
@media (max-width:560px){body.rail .nav a.l{font-size:14px;padding:6px 0}}
.railfoot .cc a{display:block;color:var(--ink-mid);font-weight:500;margin-bottom:2px}
body.rail .mark, body.rail .railtop, body.rail .searchmount{flex:none}
body.rail .mark{order:1}
body.rail .searchmount{order:2}
body.rail .railtop{order:3}
body.rail .railfoot{order:6}
body.rail .railtop{margin-top:16px}
.railsearch{position:relative;display:flex;align-items:center;margin:16px 0 0}
.railsearch svg{position:absolute;left:9px;width:15px;height:15px;fill:none;stroke:var(--ink-dim);stroke-width:1.8;pointer-events:none}
.railsearch input{width:100%;appearance:none;-webkit-appearance:none;background:var(--fill);border:1px solid transparent;border-radius:8px;padding:8px 30px 8px 30px;font:inherit;font-size:14px;color:var(--ink);transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease)}
.railsearch input::placeholder{color:var(--ink-dim);font-style:italic}
.railsearch input:focus{outline:none;background:var(--ground);border-color:var(--hair);box-shadow:0 0 0 4px hsl(215 100% 60% / .18)}
.railsearch input::-webkit-search-cancel-button{-webkit-appearance:none}
.railsearch kbd{position:absolute;right:8px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;color:var(--ink-dim);border:1px solid var(--hair);border-radius:4px;padding:0 5px;line-height:16px;pointer-events:none;transition:opacity var(--fast) var(--ease)}
.railsearch input:focus ~ kbd, .railsearch.has kbd{opacity:0}
body:not(.rail) .railsearch{margin:0;width:230px}
body:not(.rail) .railsearch input{font-size:13px}
@media (max-width:640px){body:not(.rail) .railsearch{display:none}}
@media (max-width:1000px){body.rail .nav-in{height:auto;min-height:60px;flex-wrap:wrap;padding:12px 20px;row-gap:8px}}
@media (max-width:1000px){body.rail .railtop{margin-top:0}}
@media (max-width:1000px){body.rail .searchmount{order:4;flex:1 1 100%}}
@media (max-width:560px){body.rail .railtop{gap:16px;flex-wrap:wrap}}
:root{--serif:"Young Serif",Georgia,serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--pen:#C8412B;--ink:#171717;--ink-mid:#525252;--ink-dim:#666666;--hair:rgba(23,23,23,.1);--card:#F6F6F4;--card-hover:#F0F0ED;--flag:#C8412B}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#EDEDED;--ink-mid:#A3A3A3;--ink-dim:#8A8A8F;--card:#151517;--card-hover:#1B1B1E;--pen:#FF7A6B;--flag:#FF7A6B}}
:root[data-theme="dark"]{--ink:#EDEDED;--ink-mid:#A3A3A3;--ink-dim:#8A8A8F;--card:#151517;--card-hover:#1B1B1E;--pen:#FF7A6B;--flag:#FF7A6B}
.mark{flex-direction:column;align-items:flex-start;gap:6px}
.mark .logo{display:block;overflow:visible;height:30px;width:auto}
.logo-ink{fill:var(--ink)}
.logo-pen{fill:none;stroke:var(--pen);stroke-width:5;stroke-linecap:round}
.mark .cnt{font-family:var(--mono)!important}
.mark .cnt{color:var(--ink-dim);font-size:12px}
.railfoot{font-family:inherit!important}
.railfoot a, .railfoot .cc{font-family:"Instrument Sans",sans-serif!important;font-size:13px;color:var(--ink-mid)}
.railfoot .cc{line-height:19px;margin-top:6px}
.railfoot .cc a{color:var(--ink);text-decoration:none;font-weight:600}
@media (min-width:1001px){body.rail .foot{display:none}}
.mark{padding-left:4px}
.railfoot .cc a{display:inline}
@media (min-width:1001px){body.rail .wrap{--pad:clamp(56px,5.2vw,104px)}}
.railcta{display:none}
@media (min-width:1001px){body.rail .railcta{display:flex;flex:none;order:3;align-items:center;justify-content:center;height:40px;margin:14px 8px 0;border-radius:8px;background:var(--btn-bg);color:var(--btn-ink);font-weight:600;font-size:15px;text-decoration:none}}
@media (min-width:1001px){body.rail .railcta:hover{opacity:.88}}
@media (min-width:1001px){body.rail .railcta:focus-visible{outline:2px solid var(--pen);outline-offset:2px}}
@media (min-width:1001px){body.rail .lscan{display:none!important}}
.railsearch input::placeholder{font-style:normal}
.railsearch input:focus{box-shadow:0 0 0 2px var(--pen);border-color:transparent}
.askhint{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:50;background:var(--ground);border:1px solid var(--hair);border-radius:10px;padding:8px;box-shadow:0 12px 32px -12px rgba(0,0,0,.25)}
.railsearch:focus-within:not(.has) .askhint{display:block}
.ah-t{margin:4px 8px 6px;font:500 11px/16px var(--mono);color:var(--ink-dim)}
.askhint button{display:block;width:100%;text-align:left;background:none;border:0;border-radius:6px;padding:8px;cursor:pointer;color:var(--ink)}
.askhint button:hover, .askhint button:focus-visible{background:var(--fill);outline:none}
.askhint b{display:block;font-size:13px;font-weight:600}
.askhint span{display:block;font-size:12px;line-height:17px;color:var(--ink-mid);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.railsearch.isurl::after{content:"Enter to scan this site";position:absolute;left:0;top:calc(100% + 6px);font:500 11px var(--mono);color:var(--pen)}
.railsearch.isurl{margin-bottom:22px}
.railsearch.isurl::after{top:calc(100% + 5px)}
.railsearch input{font-size:13.5px}
.railfoot{border-top:1px solid var(--hair);padding-top:14px!important;margin-top:18px!important;font-size:12px;line-height:18px;color:var(--ink-dim)}
.railfoot > a{display:inline-block!important;margin-right:14px;font-size:12px;font-weight:500;color:var(--ink-mid)}
.railfoot .cc{margin-top:8px!important;font-size:11.5px;line-height:17px;color:var(--ink-dim)}
.railfoot .cc a{display:inline!important;margin:0!important;font-weight:500;color:var(--ink-mid)}
.railtop .l[aria-current]{color:var(--ink)!important}
body.rail .railtop .l[aria-current]{background:var(--fill)}
.menubtn{display:none}
@media (max-width:1000px){body .nav{position:relative!important;z-index:60}}
@media (max-width:1000px){body .nav-in{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;gap:10px!important;height:auto!important;min-height:56px;padding:8px 16px!important;row-gap:0!important}}
@media (max-width:1000px){body .nav .mark{order:1;margin:0 auto 0 0!important;padding:0!important}}
@media (max-width:1000px){body .nav .mark .cnt{display:none!important}}
@media (max-width:1000px){body .nav .railtop{display:contents!important}}
@media (max-width:1000px){body .nav .railtop .l{display:none!important}}
@media (max-width:1000px){body .nav .railtop .lscan{display:inline-flex!important;order:2;align-items:center;height:36px;padding:0 14px!important;border-radius:8px;background:var(--btn-bg);color:var(--btn-ink)!important;font-size:14px!important;font-weight:600;text-decoration:none}}
@media (max-width:1000px){.menubtn{display:inline-flex;order:3;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;margin-right:-8px;padding:0 10px;border:0;background:transparent;cursor:pointer;border-radius:8px}}
@media (max-width:1000px){.menubtn span{display:block;height:2px;border-radius:2px;background:var(--ink);transition:transform .2s ease}}
@media (max-width:1000px){body .nav .searchmount, body .nav .railfoot{display:none!important}}
@media (max-width:1000px){body.menuopen{overflow:hidden}}
@media (max-width:1000px){body.menuopen .nav{position:fixed!important;inset:0;height:100dvh;overflow-y:auto;border-bottom:0}}
@media (max-width:1000px){body.menuopen .nav-in{align-content:flex-start;align-items:flex-start!important;min-height:100%}}
@media (max-width:1000px){body.menuopen .nav .mark, body.menuopen .nav .lscan, body.menuopen .menubtn{align-self:center}}
@media (max-width:1000px){body.menuopen .menubtn span:first-child{transform:translateY(3.5px) rotate(45deg)}}
@media (max-width:1000px){body.menuopen .menubtn span:last-child{transform:translateY(-3.5px) rotate(-45deg)}}
@media (max-width:1000px){body.menuopen .nav .searchmount{display:block!important;order:4;flex:1 1 100%;margin-top:16px}}
@media (max-width:1000px){body.menuopen .nav .railsearch{display:flex!important;width:100%!important;margin:0!important}}
@media (max-width:1000px){body.menuopen .nav .railtop .l:not(.lscan){display:flex!important;order:5;flex:1 1 100%;padding:14px 0!important;border-bottom:1px solid var(--hair);font:400 28px/1.15 var(--serif)!important;letter-spacing:-.02em;color:var(--ink)!important;background:none!important}}
@media (max-width:1000px){body.menuopen .nav .railtop .l:not(.lscan)[aria-current]::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--pen,#C8412B);margin-left:10px;align-self:center}}
@media (max-width:1000px){body.menuopen .nav .railtop .l:not(.lscan):first-child{margin-top:12px}}
@media (max-width:1000px){body.menuopen .nav .railfoot{display:block!important;order:6;flex:1 1 100%;margin-top:28px!important;border-top:0!important;padding:0!important}}
body{--rail:clamp(252px,15.5vw,340px)}
/* outside the app: the page's own type must not leak into the menu */
.nav{font-family:"Instrument Sans",-apple-system,"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:22px;letter-spacing:.2px}
.nav a{text-decoration:none}
@media (min-width:1001px){body.rail .railfoot{margin-top:auto!important}body.rail{padding-left:var(--rail,252px)}}

/* GitHub: top-right pill on desktop, a row in the phone menu */
.ghtop{display:none}
@media (min-width:1001px){.ghtop{position:absolute;z-index:5;top:21px;right:clamp(56px,5.2vw,104px);display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--hair);border-radius:999px;background:var(--ground);color:var(--ink)!important;font:600 13px/1 "Instrument Sans",-apple-system,"Helvetica Neue",Arial,sans-serif;letter-spacing:.1px;text-decoration:none;transition:background var(--fast,150ms) var(--ease,ease)}
.ghtop:hover{background:var(--fill)}.ghtop:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.ghtop svg{flex:none;display:block}
body.rail .railtop .lgh{display:none!important}}
@media (max-width:1000px){body.menuopen .nav .railtop .lgh{align-items:center}body.menuopen .nav .railtop .lgh svg{margin-left:auto;opacity:.5}}
