:root {
  --blue:#163c70;
  --blue2:#2b66aa;
  --paper:#e7e4d6;
  --panel:#f6f3e7;
  --ink:#121a27;
  --line:#939486;
  --orange:#b84408;
  --green:#187116;
}

* { box-sizing:border-box; }

body {
  min-height:100vh;
  margin:0;
  color:var(--ink);
  background:#05070b;
  background-image:
    radial-gradient(circle at 8% 21%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 29% 8%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 61% 18%,#b7d0ff 0 1px,transparent 1.5px),
    radial-gradient(circle at 88% 35%,#fff 0 1px,transparent 1.5px);
  background-size:180px 160px,250px 200px,270px 220px,240px 260px;
  font:13px/1.55 Verdana,Geneva,sans-serif;
}

.site {
  width:760px;
  margin:26px auto 36px;
  border:3px ridge #e5e5db;
  background:var(--paper);
  box-shadow:0 0 0 3px #0c1423,0 10px 28px #000;
}

header, footer {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:5px 9px;
  color:#fff;
  background:var(--blue);
  font:bold 10px "Courier New",monospace;
  letter-spacing:.7px;
}

main { padding:15px 20px 18px; }

.page-heading {
  margin:2px 0 15px;
  text-align:center;
}

.page-heading h1 {
  margin:0;
  color:var(--orange);
  font:bold 30px/1 Georgia,"Times New Roman",serif;
  letter-spacing:1px;
  text-transform:uppercase;
  text-shadow:1px 1px #fff;
}

.page-heading p {
  margin:4px 0 0;
  color:#565b62;
  font:bold 11px "Courier New",monospace;
  text-transform:uppercase;
}

.box {
  margin:0 0 13px;
  border:2px groove #c7c7bd;
  background:var(--panel);
}

.box h2 {
  margin:0;
  padding:3px 6px;
  color:#fff;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  font:bold 11px "Courier New",monospace;
  letter-spacing:.35px;
  text-transform:uppercase;
}

.box-body { padding:9px 11px; }

.box p { margin:0 0 10px; }
.box p:last-child { margin-bottom:0; }

.case-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}

.case-head h3 {
  margin:0;
  color:var(--orange);
  font:bold 17px Georgia,"Times New Roman",serif;
  text-transform:uppercase;
}

.tag {
  flex:0 0 auto;
  padding:2px 6px;
  border:1px solid #8d8e83;
  background:#e7eadf;
  color:var(--blue);
  font:bold 10px "Courier New",monospace;
}

h4 {
  margin:16px 0 7px;
  padding-bottom:3px;
  border-bottom:1px dotted var(--line);
  color:var(--blue);
  font:bold 11px "Courier New",monospace;
  letter-spacing:.5px;
  text-transform:uppercase;
}

code {
  padding:0 2px;
  border:1px dotted #a0a196;
  background:#e7eadf;
  color:#20344b;
  font:11px "Courier New",monospace;
}

.terminal-note {
  display:grid;
  grid-template-columns:max-content 1fr;
  gap:2px 9px;
  margin:10px 0 0;
  padding:7px 8px;
  border:1px inset #ddd;
  color:#20344b;
  background:#e7eadf;
  font:10px/1.45 "Courier New",monospace;
}

.terminal-note > b:first-child {
  grid-column:1/-1;
  color:var(--blue);
}

.terminal-note hr {
  grid-column:1/-1;
  width:100%;
  margin:3px 0;
  border:0;
  border-top:1px dotted #899182;
}

.reference { margin-bottom:10px; }

.lesson {
  margin-top:10px;
  padding:7px 8px;
  border-left:3px solid var(--orange);
  background:#fff3c9;
  font:11px/1.45 "Courier New",monospace;
}

.lesson b { color:#8a4100; }

.warning {
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:10px;
  padding:7px 9px;
  border:1px dashed #aa6600;
  background:#fff3c9;
  font:10px/1.4 "Courier New",monospace;
}

.warning b { color:#8a4100; }

.quote {
  margin:9px 0;
  padding:6px 9px;
  border-left:3px solid var(--blue);
  background:#e7eadf;
  color:#20344b;
  font:11px/1.45 "Courier New",monospace;
}

.philosophy .box-body { padding:10px 12px; }

.protocol {
  display:grid;
  gap:5px;
}

.protocol div {
  display:grid;
  grid-template-columns:30px 1fr;
  gap:9px;
  align-items:start;
  padding:5px 0;
  border-bottom:1px dotted var(--line);
  font:11px/1.4 "Courier New",monospace;
}

.protocol div:last-child { border-bottom:0; }

.protocol b {
  color:var(--orange);
  text-align:center;
}

.return {
  display:block;
  width:max-content;
  margin:17px auto 0;
  padding:5px 12px;
  border:2px outset #9eb3cf;
  color:#fff;
  background:#214e8a;
  font:bold 11px "Courier New",monospace;
  text-decoration:none;
}

.return:active { border-style:inset; }

.return:focus-visible {
  outline:3px solid #ffcf50;
  outline-offset:2px;
}

footer {
  justify-content:center;
  flex-wrap:wrap;
  font-size:9px;
}

@media (max-width:800px) {
  body { background-image:none; }

  .site {
    width:100%;
    margin:0;
    border-width:0;
    box-shadow:none;
  }
}

@media (max-width:560px) {
  main { padding:14px 10px; }

  .page-heading h1 { font-size:25px; }

  header {
    flex-direction:column;
  }

  .terminal-note {
    grid-template-columns:1fr;
  }

  .terminal-note > b,
  .terminal-note hr {
    grid-column:1;
  }

  .warning {
    flex-direction:column;
    align-items:flex-start;
    gap:3px;
  }

  .protocol div {
    grid-template-columns:28px 1fr;
  }
}
