*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;overflow-wrap:break-word}
img,svg{max-width:100%;height:auto}
.skip{position:absolute;left:-999px;top:0;z-index:99;background:#000;color:#fff;padding:.6rem 1rem}
.skip:focus{left:0}
.prose::after{content:"";display:block;clear:both}
.prose figure{margin:0 0 1.25rem}
.prose figure.fr{float:right;margin:.25rem 0 1rem 1.5rem;max-width:45%}
.prose figure.fl{float:left;margin:.25rem 1.5rem 1rem 0;max-width:45%}
.prose figure.fc{text-align:center}
.prose table{display:block;overflow-x:auto;border-collapse:collapse}
.crumbs i{font-style:normal;margin:0 .4em;opacity:.5}
.s-results{list-style:none;padding:0}
.s-results li{margin:0 0 1.25rem}
.s-results a{font-weight:700}
.s-results p{margin:.2rem 0 0}
.s-form{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.5rem}
.s-form input{flex:1 1 14rem;min-width:0;padding:.7rem .85rem;font:inherit;border:2px solid currentColor;background:transparent;color:inherit}
.s-form button{padding:.7rem 1.2rem;font:inherit;font-weight:700;cursor:pointer}
.a-wrap.solo{grid-template-columns:minmax(0,52rem)!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.c-form{display:grid;gap:1.1rem;max-width:40rem;margin:1.5rem 0 2rem}
.c-field label{display:block;font-weight:700;margin:0 0 .35rem}
.c-form input,.c-form textarea{display:block;width:100%;min-width:0;padding:.7rem .85rem;font:inherit;border:2px solid currentColor;background:transparent;color:inherit}
.c-form textarea{resize:vertical;min-height:9rem}
.c-form button{justify-self:start}
.sent{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.6rem 1.5rem;margin:1.75rem 0;padding:1.25rem 1.4rem;border:1px solid currentColor;border-radius:6px}
.sent dt{font-weight:700}
.sent dd{margin:0;white-space:pre-wrap}
@media (max-width:520px){.sent{grid-template-columns:minmax(0,1fr)}.sent dd{margin-bottom:.6rem}}
@media (max-width:600px){.prose figure.fr,.prose figure.fl{float:none;max-width:100%;margin:0 0 1.25rem;text-align:center}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
:root{--bg:#0d1117;--pn:#161b22;--pn2:#1f2630;--tx:#d7dee6;--mu:#8b98a8;--te:#3fd1b5;--am:#f0b35a;--pk:#ff7b9c;--bd:#2d3540}
body{font:400 1.05rem/1.72 Inter,system-ui,sans-serif;color:var(--tx);background:var(--bg)}
a{color:var(--te)}
h1,h2,h3{font-family:"JetBrains Mono",Consolas,monospace;font-weight:700;line-height:1.2;color:#fff}
.top{background:var(--pn);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:9}
.top-in{max-width:1180px;margin:auto;padding:0 1.25rem;display:flex;align-items:stretch;gap:.5rem 1.5rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--mu);font:400 1.05rem "JetBrains Mono",monospace;padding:.55rem 0}
.brand b{color:var(--te)}
.tabs{display:flex;align-items:stretch;font:400 .85rem "JetBrains Mono",monospace;flex-wrap:wrap;min-width:0}
.tabs a,.tab-on{display:flex;align-items:center;padding:.6rem .95rem;border-left:1px solid var(--bd);color:var(--mu);text-decoration:none}
.tabs a:last-child,.tab-on{border-right:1px solid var(--bd)}
.tabs a[aria-current],.tab-on{color:#fff;background:var(--bg);box-shadow:inset 0 2px 0 var(--am)}
.term{max-width:1180px;margin:2.25rem auto 0;border:1px solid var(--bd);border-radius:10px;background:var(--pn);overflow:hidden}
.term-bar{display:flex;align-items:center;gap:.4rem;padding:.55rem .85rem;background:var(--pn2);font:400 .78rem "JetBrains Mono",monospace;color:var(--mu)}
.term-bar i{width:.72rem;height:.72rem;border-radius:50%;background:var(--pk)}
.term-bar i:nth-child(2){background:var(--am)}.term-bar i:nth-child(3){background:var(--te)}
.term-bar span{margin-left:.6rem}
.term-body{padding:1.75rem clamp(1.25rem,4vw,3rem) 1.5rem}
.cmd{font:400 .95rem "JetBrains Mono",monospace;color:var(--mu);margin:0 0 .5rem}
.cmd b{color:var(--te)}
.term h1{font-size:clamp(2rem,6vw,4.1rem);margin:0 0 1rem;background:linear-gradient(90deg,var(--te),var(--am));-webkit-background-clip:text;background-clip:text;color:transparent}
.term .prose{max-width:48rem}
.map{max-width:1180px;margin:2.5rem auto 3.5rem;padding:0 0}
.map h2{font-size:1.4rem;margin:0 0 1rem}
.map .tilemap{max-width:760px;margin:auto}
.map h2 span{color:var(--am)}
.tilemap{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:6px}
.tilemap a{aspect-ratio:1;display:grid;place-items:center;background:var(--pn);border:1px solid var(--bd);border-radius:6px;font:700 clamp(.62rem,1.7vw,1.15rem) "JetBrains Mono",monospace;color:var(--tx);text-decoration:none;transition:.12s}
.tilemap a:hover,.tilemap a:focus{background:var(--te);color:#06221c;border-color:var(--te);transform:scale(1.06)}
.tilemap a.on{background:var(--am);color:#2a1b02;border-color:var(--am)}
.tilemap.mini{gap:3px}
.tilemap.mini a{font-size:.56rem;border-radius:3px}
.article,.section{max-width:1180px;margin:auto;padding:1.75rem 1.25rem 4rem}
.crumbs{font:400 .82rem "JetBrains Mono",monospace;color:var(--mu);margin-bottom:1rem}
.crumbs a{color:var(--mu)}
.a-head h1{font-size:clamp(1.65rem,4.1vw,2.9rem);margin:0}
.a-head h1::before{content:"# ";color:var(--pk)}
.a-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:2.5rem;margin-top:1.5rem;align-items:start}
.simple .a-wrap{grid-template-columns:minmax(0,46rem)}
.prose h2{font-size:1.2rem;color:var(--am);margin:2rem 0 .5rem}
.prose h2::before{content:"## ";color:var(--mu)}
.prose h3{font-size:1.05rem;margin:1.5rem 0 .4rem}
.prose ul{list-style:none;padding:0;margin:1.25rem 0;border:1px solid var(--bd);border-radius:8px;background:var(--pn)}
.prose li{padding:.6rem .9rem;border-top:1px solid var(--bd)}
.prose li:first-child{border-top:0}
.prose li::before{content:"\2192";color:var(--am);margin-right:.6rem;font-family:"JetBrains Mono",monospace}
.related{background:var(--pn);border:1px solid var(--bd);border-radius:8px;padding:1rem;position:sticky;top:4rem}
.related h2{font:400 .85rem "JetBrains Mono",monospace;color:var(--mu);margin:0 0 .75rem}
.mail-line{font-family:"JetBrains Mono",monospace}
.s-form input,.s-form textarea{background:var(--pn)}
.s-form button{background:var(--te);color:#06221c;border:0}
.sf{border-top:1px solid var(--bd);background:var(--pn);font-size:.92rem;color:var(--mu)}
.sf-in{max-width:1180px;margin:auto;padding:1.5rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem}
.sf-brand{display:flex;align-items:center;gap:.65rem}
.sf-brand img{width:34px;height:34px}
.sf-brand strong{display:block;color:#fff;font:700 .95rem "JetBrains Mono",monospace}
.sf-brand span{font-size:.82rem}
.sf-sec:empty{display:none}
.sf-links{display:flex;gap:1.2rem;flex-wrap:wrap;font-family:"JetBrains Mono",monospace;font-size:.85rem}
.sf a{color:var(--tx);text-decoration:none}.sf a:hover{color:var(--te)}
.sf-copy{margin:0;flex-basis:100%;font-size:.78rem}
@media (max-width:1220px){.term,.map{margin-left:1.25rem;margin-right:1.25rem}}
@media (max-width:900px){.a-wrap{grid-template-columns:minmax(0,1fr)}.related{position:static}.tilemap.mini a{font-size:clamp(.5rem,1.8vw,.8rem)}.tilemap{gap:3px}.tilemap a{border-radius:4px}.top{position:static}}