/* nexusonion.biz - what to write.
   Built to a classic 2010s forum board reference: a saturated blue page with
   white boxes floating on it, a dark slate button strip, breadcrumbs above and
   below the content, quoted blocks with an attribution line, and a right hand
   column of plate headed lists. Text is mid grey by default, headings barely
   raise their voice, and the hierarchy comes from boxes and dividers.
   Deliberately absent: login, register, search, subscribe, reputation, likes,
   views, stars, avatars, share buttons. Those need a backend or they invent a
   community that does not exist here. One self hosted family throughout. */

@font-face{font-family:"Asap";font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/font/asap-400-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Asap";font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/font/asap-400-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Asap";font-style:normal;font-weight:700;font-display:swap;
  src:url(/assets/font/asap-700-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Asap";font-style:normal;font-weight:700;font-display:swap;
  src:url(/assets/font/asap-700-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

:root{
  --page:#2d4973;
  --nav:#37474f;
  --nav-d:#2b383e;
  --accent:#32618a;
  --accent2:#56789c;
  --orange:#ff843e;
  --amber:#f0b75f;
  --text:#666666;
  --em:#444444;
  --strong:#333333;
  --meta:#a4a4a4;
  --panel:#fcfcfc;
  --panel2:#f5f5f5;
  --plate:#d6e0ef;
  --line:#e4e4e4;
  --line2:#d3d3d3;
  --shadow:0 1px 4px rgba(0,0,0,.05);
  --font:"Asap",Arial,Helvetica,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--text);
  font:13px/1.62 var(--font);overflow-x:hidden}
img{max-width:100%;height:auto;border:0}
a{color:var(--accent);text-decoration:underline}
a:hover{color:var(--orange)}

.wrap{max-width:1220px;margin:0 auto;padding:0 16px}

/* ---------- masthead ---------- */
.top{background:#fff;box-shadow:var(--shadow)}
.top .wrap{display:flex;align-items:center;gap:13px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.mark{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.mark img{width:38px;height:38px;display:block}
.mark b{display:block;font-size:19px;font-weight:700;color:var(--strong);line-height:1.2}
.mark span span{display:block;font-size:12px;color:var(--meta);font-weight:400;margin-top:2px}
.mark:hover b{color:var(--accent)}
.top .tail{margin-left:auto;font-size:11.5px;color:var(--meta);text-align:right;max-width:330px}

/* ---------- dark button strip ---------- */
.bar{background:var(--nav-d);box-shadow:var(--shadow)}
.bar .wrap{display:flex;flex-wrap:wrap;gap:4px;padding-top:7px;padding-bottom:7px}
.bar a{display:inline-block;padding:5px 11px;border-radius:3px;background:var(--nav);
  color:#fff;text-decoration:none;font-size:12px;white-space:nowrap}
.bar a:hover{background:var(--accent);color:#fff}
.bar a.on{background:var(--accent2)}
.bar a.alt{background:transparent;border:1px solid #55666f;color:#cfd8dc}
.bar a.alt:hover{background:var(--accent);border-color:var(--accent);color:#fff}

/* ---------- breadcrumb strips, above and below ---------- */
.crumbs{background:#fff;box-shadow:var(--shadow);margin:14px 0}
.crumbs .wrap{padding-top:8px;padding-bottom:8px;font-size:11.5px;color:var(--meta)}
.crumbs a{color:var(--accent);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs i{font-style:normal;color:#c2c2c2;padding:0 5px}

/* ---------- shell ---------- */
.shell{display:flex;gap:22px;align-items:flex-start}
.col-main{flex:1 1 770px;min-width:0;max-width:790px}
.col-side{flex:0 0 390px;width:390px}

.box{background:#fff;box-shadow:var(--shadow);padding:22px 26px;margin:0 0 16px}
.box.flat{padding:0}

/* ---------- cover block ---------- */
.cover{position:relative;background:#3c5580;box-shadow:var(--shadow);margin:0 0 16px;overflow:hidden}
.cover .sheet{background:linear-gradient(180deg,rgba(24,36,58,.86),rgba(24,36,58,.94));padding:30px 26px 24px}
.cover .kicker{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:#a9bcd8;margin:0 0 9px}
.cover h1{margin:0;font-size:27px;font-weight:400;color:#fff;line-height:1.24}
.cover p{margin:11px 0 0;color:#cfdaea;font-size:13.5px;max-width:64ch}
.stats{display:flex;background:#fff;border-top:1px solid var(--line)}
.stats div{flex:1 1 0;padding:13px 16px;border-left:1px solid var(--line);text-align:left}
.stats div:first-child{border-left:0}
.stats em{display:block;font-style:normal;font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--meta)}
.stats b{display:block;font-size:21px;font-weight:400;color:var(--em);margin-top:3px;line-height:1.2}

/* ---------- article typography ---------- */
h1{font-size:27px;font-weight:400;color:var(--text);line-height:1.25;margin:0 0 12px}
h2{font-size:17px;font-weight:700;color:var(--em);margin:26px 0 9px;line-height:1.3}
h3{font-size:14px;font-weight:700;color:var(--em);margin:20px 0 6px}
h4{font-size:12.5px;font-weight:700;color:var(--em);margin:0 0 5px}
.box > :first-child{margin-top:0}
p{margin:0 0 11px}
.lede{font-size:14.5px;color:var(--em);margin-bottom:14px}
.by{font-size:11.5px;color:var(--meta);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);padding:7px 0;margin:0 0 16px}
ul,ol{margin:0 0 12px;padding-left:20px}
li{margin:0 0 5px}
b,strong{color:var(--em);font-weight:700}
code{font-family:"Asap",Consolas,monospace;font-size:12px;color:var(--strong);
  background:var(--panel2);padding:1px 4px;border-radius:2px;word-break:break-all}

ol.steps{list-style:none;counter-reset:s;padding-left:0}
ol.steps li{counter-increment:s;position:relative;padding:0 0 0 30px;margin:0 0 9px}
ol.steps li:before{content:counter(s);position:absolute;left:0;top:1px;width:20px;height:20px;
  border-radius:3px;background:var(--accent);color:#fff;font-size:11px;text-align:center;line-height:20px}

/* ---------- note ---------- */
.note{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--amber);
  padding:12px 15px;margin:0 0 14px}
.note.warn{border-left-color:var(--orange)}
.note p:last-child{margin-bottom:0}

/* ---------- tables ---------- */
.tw{overflow-x:auto;margin:0 0 14px}
table{border-collapse:collapse;width:100%;font-size:12.5px}
th{background:var(--panel2);color:var(--em);text-align:left;font-weight:700;
  padding:8px 11px;border:1px solid var(--line)}
td{padding:8px 11px;border:1px solid var(--line);vertical-align:top}
tr:nth-child(even) td{background:var(--panel)}

/* ---------- post block, grey header with a label and a date ---------- */
.post{border:1px solid var(--line2);margin:0 0 14px;background:#fff}
.post-h{background:var(--panel2);border-bottom:1px solid var(--line2);padding:7px 13px;
  display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.post-h b{font-size:12.5px;color:var(--strong)}
.post-h span{font-size:11px;color:var(--meta);margin-left:auto}
.post-b{padding:13px}
.post-b > :last-child{margin-bottom:0}

/* ---------- quote block, with the who line ---------- */
.q{border:1px solid var(--line2);background:var(--panel);margin:0 0 11px}
.q-h{background:#eef1f4;border-bottom:1px solid var(--line2);padding:5px 11px;
  font-size:11px;color:var(--meta)}
.q-h b{color:var(--em);font-weight:700}
.q-b{padding:11px 13px;color:var(--em);font-size:13px}
.q-b p{margin:0 0 8px}
.q-b p:last-child{margin-bottom:0}
.q .q{margin:9px 0 0;background:#fff}

/* the pair, weak beside strong */
.pair{display:flex;gap:14px;margin:0 0 14px;align-items:stretch}
.pair > div{flex:1 1 0;min-width:0;display:flex;flex-direction:column}
.pair .post{margin:0;height:100%}
.pair .post.weak .post-h{border-bottom-color:var(--line2);box-shadow:inset 3px 0 0 var(--orange)}
.pair .post.good .post-h{box-shadow:inset 3px 0 0 var(--accent)}
.pair-why{background:var(--panel2);border:1px solid var(--line);padding:11px 14px;
  font-size:12.5px;margin:-4px 0 14px}
.pair-why p:last-child{margin-bottom:0}

/* ---------- addresses ---------- */
.keys{background:var(--panel);border:1px solid var(--line2);padding:14px 16px;margin:0 0 16px}
.keys h2{margin:0 0 6px;font-size:14px}
.keys .k{display:flex;gap:9px;align-items:center;padding:5px 0;border-top:1px solid var(--line)}
.keys .k:first-of-type{border-top:0}
.keys code{flex:1 1 auto;background:#fff;border:1px solid var(--line);padding:5px 7px;
  font-size:11.5px;border-radius:2px}
.keys .fine{margin:8px 0 0;font-size:11.5px;color:var(--meta)}
.btn{border:0;border-radius:3px;background:var(--nav);color:#fff;font:12px/1 var(--font);
  padding:7px 11px;cursor:pointer;flex:0 0 auto}
.btn:hover{background:var(--accent)}
.btn.done{background:var(--accent2)}

/* the compact strip that rides at the top of every page */
.keys.slim{padding:11px 14px;margin-bottom:14px;background:#fff;border:1px solid var(--line2)}
.keys.slim .lab{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--meta);margin:0 0 6px}
.keys.slim code{font-size:11px;padding:4px 6px}
.keys.slim .btn{padding:5px 9px;font-size:11px}

/* ---------- child lists ---------- */
ul.list{list-style:none;padding:0;margin:0 0 14px;border-top:1px solid var(--line)}
ul.list li{margin:0;border-bottom:1px solid var(--line)}
ul.list a{display:block;padding:10px 4px;text-decoration:none}
ul.list a:hover{background:var(--panel)}
ul.list b{display:block;color:var(--accent);font-size:13.5px}
ul.list a:hover b{color:var(--orange)}
ul.list span{display:block;color:var(--text);font-size:12px;margin-top:2px}

ul.chips{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:5px}
ul.chips a{display:inline-block;background:var(--plate);color:var(--accent);
  padding:4px 9px;border-radius:3px;text-decoration:none;font-size:12px}
ul.chips a:hover{background:var(--accent);color:#fff}

/* skeleton table */
.skel{list-style:none;padding:0;margin:0 0 14px;counter-reset:k}
.skel li{counter-increment:k;border-left:2px solid var(--plate);padding:0 0 0 12px;margin:0 0 10px}
.skel li b{display:block;color:var(--strong)}

/* ---------- prev next ---------- */
.pn{display:flex;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:22px}
.pn a{flex:1 1 0;text-decoration:none;border:1px solid var(--line);padding:10px 12px;
  background:var(--panel)}
.pn a:hover{border-color:var(--accent2);background:#fff}
.pn em{display:block;font-style:normal;font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--meta)}
.pn b{display:block;color:var(--accent);font-size:13px;margin-top:3px}
.pn a:last-child{text-align:right}

/* ---------- sidebar ---------- */
.side{background:#fff;box-shadow:var(--shadow);margin:0 0 16px}
.side h3{margin:0;background:var(--plate);color:var(--accent);font-size:12px;
  font-weight:700;padding:8px 14px;letter-spacing:.02em}
.side ul{list-style:none;margin:0;padding:6px 14px 12px}
.side li{margin:0;border-bottom:1px solid var(--line)}
.side li:last-child{border-bottom:0}
.side a{display:block;padding:8px 0;text-decoration:none;color:var(--accent);font-size:12.5px}
.side a:hover{color:var(--orange)}
.side a span{display:block;color:var(--meta);font-size:11px;margin-top:1px}
.side .body{padding:12px 14px;font-size:12px}
.side .body p:last-child{margin-bottom:0}

/* ---------- foot ---------- */
.grid-all{background:#fff;box-shadow:var(--shadow);padding:20px 26px;margin:0 0 16px}
.grid-all h2{margin-top:0}
.grid-all .cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:4px 20px}
.grid-all .cols a{display:block;padding:3px 0;font-size:12.5px;text-decoration:none}
.grid-all .cols a:hover{text-decoration:underline}

.foot{background:#22334f;color:#9fb0c9;margin-top:8px}
.foot .wrap{padding-top:20px;padding-bottom:26px}
.foot .fine{font-size:11.5px;max-width:100ch;margin:0}
.foot a{color:#cddbef}

@media (max-width:1080px){
  .col-side{flex:0 0 320px;width:320px}
}
@media (max-width:900px){
  .shell{display:block}
  .col-side,.col-main{width:auto;max-width:none}
  .pair{display:block}
  .pair > div{margin-bottom:12px}
}
@media (max-width:560px){
  .box{padding:18px 15px}
  .cover .sheet{padding:22px 16px 18px}
  .cover h1{font-size:22px}
  .stats{display:block}
  .stats div{border-left:0;border-top:1px solid var(--line)}
  .stats div:first-child{border-top:0}
  .keys .k{flex-wrap:wrap}
  .keys code{flex:1 1 100%}
  .pn{display:block}
  .pn a{display:block;margin-bottom:8px;text-align:left}
}
