/* =============================================================================
   3dcipher.com — neo-terminal aesthetic
   Hand-written, no shared CSS with any other dowww4 site.
   Naming: cmd- / bar- / spec- / dock- / adv- / crt- / log- prefixes.
   Palette inverted (paper-on-ink). Grid-driven. Monospace-dominant.
   ============================================================================= */

:root {
  --ink:        #0a0e0a;
  --ink-2:      #14181a;
  --paper:      #e8edd7;
  --paper-2:    #d4d8c2;
  --phos:       #7af07a;
  --phos-dim:   #4a8a4a;
  --green:      #7af07a;
  --rust:       #c4633c;
  --mute:       #828a78;
  --line:       #2a312b;
  --line-hi:    #3c443d;
  --rule:       #3c443d;

  --mono:       ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
  --sans:       Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --col-w:      72rem;
  --gutter:     1.5rem;

  --tick:       0;       /* keep headings readable at product-site density */
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--ink);
  color: var(--paper);
  font-family: var(--sans);
  font-size: 15.5px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}

/* ------- CRT scanline backdrop, ultra-subtle ------- */
body::before {
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    to bottom, transparent 0 3px, rgba(122,240,122,.018) 3px 4px);
  z-index: 1;
}

/* =============== global typography =============== */
h1, h2, h3, h4 { font-family: var(--mono); font-weight: 700; letter-spacing: var(--tick); color: var(--paper); margin: 0; }
h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); line-height: 1.08; }
h2 { font-size: 1.55rem; line-height: 1.2; }
h3 { font-size: 1.12rem; line-height: 1.3; }
h4 { font-size: .92rem; line-height: 1.3; text-transform: uppercase; letter-spacing: .14em; color: var(--phos-dim); }
p  { margin: 0 0 1.05em; max-width: 62ch; }
a  { color: var(--phos); text-decoration: none; border-bottom: 1px dotted var(--phos-dim); }
a:hover { color: var(--paper); border-bottom-color: var(--paper); }
code, kbd, samp { font-family: var(--mono); font-size: .94em; color: var(--phos); }
strong { color: var(--paper); font-weight: 600; }
hr { border: 0; border-top: 1px solid var(--line); margin: 2.4rem 0; }

::selection { background: var(--phos); color: var(--ink); }

/* =============== page grid =============== */
.crt {
  display: grid;
  grid-template-columns: 16rem 1fr;
  gap: 0;
  min-height: 100vh;
  position: relative;
  z-index: 2;
}

@media (max-width: 900px) {
  .crt { grid-template-columns: 1fr; }
}

/* =============== command rail (left sticky nav) =============== */
.cmd-rail {
  position: sticky;
  top: 0;
  align-self: start;
  height: 100vh;
  background: var(--ink-2);
  border-right: 1px solid var(--line);
  padding: 1.6rem 1.4rem;
  font-family: var(--mono);
  font-size: .82rem;
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  overflow-y: auto;
}

.cmd-brand {
  display: flex; align-items: center; gap: .55rem;
  font-size: .96rem;
  color: var(--paper);
  letter-spacing: .04em;
}
.cmd-brand .dot {
  width: .55rem; height: .55rem; border-radius: 50%;
  background: var(--phos);
  box-shadow: 0 0 .4rem var(--phos);
}

.cmd-section {
  display: flex; flex-direction: column; gap: .15rem;
}
.cmd-section .lbl {
  color: var(--mute); text-transform: uppercase; letter-spacing: .18em;
  font-size: .68rem; margin-bottom: .35rem;
}
.cmd-section a {
  color: var(--paper-2);
  border-bottom: none;
  padding: .22rem 0 .22rem .9rem;
  position: relative;
}
.cmd-section a::before {
  content: "›";
  position: absolute; left: 0; color: var(--phos-dim);
}
.cmd-section a:hover { color: var(--phos); }
.cmd-section a.on { color: var(--phos); }
.cmd-section a.on::before { content: "▸"; color: var(--phos); }

.cmd-foot {
  margin-top: auto;
  font-size: .68rem;
  color: var(--mute);
  line-height: 1.5;
}
.cmd-foot code { color: var(--phos-dim); }

@media (max-width: 900px) {
  .cmd-rail { position: relative; height: auto; }
}

/* =============== main column =============== */
.dock { padding: 2.2rem clamp(1.2rem, 3vw, 3rem); max-width: 78rem; }

/* terminal-style header above every section */
.bar-head {
  display: flex; align-items: baseline; gap: 1rem;
  font-family: var(--mono);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--phos-dim);
  border-bottom: 1px dashed var(--line-hi);
  padding-bottom: .6rem;
  margin-bottom: 1.4rem;
}
.bar-head .prompt { color: var(--phos); }
.bar-head .stamp { margin-left: auto; color: var(--mute); }

/* hero */
.hero-blk {
  padding: 1rem 0 3rem;
  border-bottom: 1px solid var(--line);
}
.hero-blk .kicker {
  font-family: var(--mono);
  font-size: .8rem;
  color: var(--phos);
  letter-spacing: .14em;
  margin-bottom: 1.1rem;
}
.hero-blk .kicker::before { content: "// "; }
.hero-blk p.lede {
  font-family: var(--sans);
  font-size: 1.18rem;
  color: var(--paper-2);
  max-width: 62ch;
  margin-top: 1.3rem;
}
.hero-actions {
  display: flex; gap: .8rem; flex-wrap: wrap;
  margin-top: 1.8rem;
}
.cta-row {
  display: flex; gap: .8rem; flex-wrap: wrap;
  margin-top: 1.8rem;
}

/* buttons — terminal style */
.btn-cmd {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--mono); font-size: .88rem;
  padding: .65rem 1.05rem;
  background: transparent;
  color: var(--phos);
  border: 1px solid var(--phos-dim);
  border-radius: 0;
  text-decoration: none;
  letter-spacing: .04em;
}
.btn-cmd::before { content: "$"; color: var(--phos-dim); }
.btn-cmd:hover { background: var(--phos); color: var(--ink); border-color: var(--phos); }
.btn-cmd.primary {
  background: var(--phos);
  color: var(--ink);
  border-color: var(--phos);
}
.btn-cmd.primary::before { color: rgba(10,14,10,.62); }
.btn-cmd.primary:hover {
  background: var(--paper);
  border-color: var(--paper);
  color: var(--ink);
}
.btn-cmd.secondary { color: var(--paper); border-color: var(--line-hi); }
.btn-cmd.secondary::before { content: "›"; color: var(--mute); }
.btn-cmd.secondary:hover { color: var(--phos); border-color: var(--phos); background: transparent; }
.btn-cmd.ghost { border-color: var(--line-hi); color: var(--paper-2); }
.btn-cmd.ghost::before { content: "›"; }

/* generic block spacing */
section.blk { padding: 2.6rem 0; border-bottom: 1px solid var(--line); }
section.blk:last-of-type { border-bottom: none; }

/* spec table — used for runtime params, module attestations, etc */
table.spec {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--mono);
  font-size: .87rem;
}
table.spec th, table.spec td {
  text-align: left;
  padding: .6rem .9rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
table.spec th { color: var(--phos-dim); font-weight: 500; width: 32%; }
table.spec td { color: var(--paper); }
table.spec tr:hover td { background: rgba(122,240,122,.04); }

/* definition list — for attestation chains, key registries */
dl.dock-dl {
  display: grid;
  grid-template-columns: 14rem 1fr;
  row-gap: .9rem; column-gap: 1.5rem;
  font-family: var(--mono); font-size: .88rem;
  margin: 1rem 0 1.6rem;
}
dl.dock-dl dt {
  color: var(--phos-dim);
  text-transform: uppercase; letter-spacing: .1em;
  font-size: .76rem;
  padding-top: .15rem;
}
dl.dock-dl dd { margin: 0; color: var(--paper); }

/* threat panel — boxed warning */
.panel-warn {
  border: 1px solid var(--rust);
  background: rgba(196,99,60,.07);
  padding: 1.1rem 1.3rem;
  font-family: var(--mono);
  font-size: .88rem;
  margin: 1.4rem 0;
}
.panel-warn .tag {
  display: inline-block;
  background: var(--rust); color: var(--ink);
  font-size: .68rem; letter-spacing: .14em;
  padding: .12rem .5rem;
  margin-right: .6rem;
  text-transform: uppercase;
}

.panel-info {
  border: 1px solid var(--phos-dim);
  background: rgba(122,240,122,.04);
  padding: 1.1rem 1.3rem;
  font-family: var(--mono);
  font-size: .88rem;
  margin: 1.4rem 0;
}
.panel-info .tag {
  display: inline-block;
  background: var(--phos); color: var(--ink);
  font-size: .68rem; letter-spacing: .14em;
  padding: .12rem .5rem;
  margin-right: .6rem;
  text-transform: uppercase;
}

/* metric strip — used on home + module overview */
.strip-metric {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin: 1.6rem 0;
}
.strip-metric > div {
  background: var(--ink);
  padding: 1rem 1.1rem;
}
.strip-metric .v {
  font-family: var(--mono); font-size: 1.6rem; font-weight: 700;
  color: var(--phos); letter-spacing: -.01em;
}
.strip-metric .k {
  font-family: var(--mono); font-size: .72rem;
  color: var(--mute); text-transform: uppercase; letter-spacing: .14em;
  margin-top: .35rem;
}
@media (max-width: 700px) {
  .strip-metric { grid-template-columns: repeat(2,1fr); }
}

/* module tile grid (home) */
.tile-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.tile {
  background: var(--ink);
  padding: 1.5rem 1.4rem;
  display: flex; flex-direction: column; gap: .7rem;
  text-decoration: none; color: var(--paper);
  border-bottom: 2px solid transparent;
}
.tile:hover { background: var(--ink-2); border-bottom-color: var(--phos); }
.tile .idx {
  font-family: var(--mono); font-size: .72rem;
  color: var(--phos-dim); letter-spacing: .18em;
}
.tile h3 { color: var(--paper); }
.tile p { color: var(--paper-2); font-size: .92rem; margin: 0; }
.tile .more {
  margin-top: .8rem;
  font-family: var(--mono); font-size: .82rem;
  color: var(--phos);
}
@media (max-width: 800px) { .tile-grid { grid-template-columns: 1fr; } }

.tile-num {
  font-family: var(--mono);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  line-height: 1;
  color: var(--phos);
  font-weight: 700;
}
.tile-num .unit { font-size: .48em; color: var(--phos-dim); }
.tile-lbl {
  font-family: var(--mono);
  font-size: .82rem;
  color: var(--paper);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.tile-sub {
  color: var(--paper-2);
  font-size: .92rem;
}

.strip-grid {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.strip {
  display: grid;
  grid-template-columns: minmax(12rem, 18rem) 1fr;
  background: var(--ink);
}
.strip-img {
  min-height: 12rem;
  background:
    linear-gradient(135deg, rgba(122,240,122,.18), transparent 42%),
    repeating-linear-gradient(0deg, rgba(122,240,122,.08) 0 1px, transparent 1px 16px),
    var(--ink-2);
  border-right: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.strip-img::before {
  content: "";
  position: absolute;
  inset: 18% 14%;
  border: 1px solid var(--phos-dim);
  box-shadow: inset 0 0 0 1px rgba(122,240,122,.08);
}
.strip-img::after {
  content: "";
  position: absolute;
  left: 22%;
  right: 22%;
  top: 48%;
  border-top: 2px solid var(--phos);
  transform: skewY(-18deg);
}
.strip-img img { display: none; }
.strip-body { padding: 1.25rem 1.35rem; }
.strip-head {
  display: flex;
  gap: .7rem;
  align-items: baseline;
  flex-wrap: wrap;
  margin-bottom: .65rem;
}
.strip-head .prompt { color: var(--phos); font-family: var(--mono); }
.strip-tag {
  font-family: var(--mono);
  font-size: .7rem;
  color: var(--mute);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.strip-link {
  font-family: var(--mono);
  font-size: .84rem;
}
@media (max-width: 760px) {
  .strip { grid-template-columns: 1fr; }
  .strip-img { min-height: 7rem; border-right: 0; border-bottom: 1px solid var(--line); }
}

.dock-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.4rem 2rem;
}
.dock-2 > div {
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}
@media (max-width: 800px) { .dock-2 { grid-template-columns: 1fr; } }

.panel-cta {
  border: 1px solid var(--line-hi);
  background: rgba(122,240,122,.035);
  padding: 1.5rem;
}

.product-map {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-top: 1.4rem;
}
.product-map > div {
  background: var(--ink);
  padding: 1rem;
  min-height: 8.5rem;
}
.product-map .step {
  font-family: var(--mono);
  color: var(--phos);
  font-size: .78rem;
  margin-bottom: .55rem;
}
.product-map h3 { font-size: 1rem; margin-bottom: .4rem; }
.product-map p { font-size: .88rem; color: var(--paper-2); margin: 0; }
@media (max-width: 920px) { .product-map { grid-template-columns: 1fr; } }

.price-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.price-card {
  background: var(--ink);
  padding: 1.35rem;
}
.price-card.featured {
  background: linear-gradient(180deg, rgba(122,240,122,.07), var(--ink));
}
.price-card .price {
  font-family: var(--mono);
  color: var(--phos);
  font-size: 1.2rem;
  margin: .8rem 0;
}
.price-card ul { padding-left: 1.1rem; color: var(--paper-2); }
@media (max-width: 900px) { .price-grid { grid-template-columns: 1fr; } }

.doc-nav {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin: 1rem 0 0;
}
.doc-nav a {
  font-family: var(--mono);
  font-size: .8rem;
  border: 1px solid var(--line-hi);
  padding: .35rem .6rem;
}


/* image, single-tone */
img.mono {
  width: 100%; height: auto; display: block;
  filter: grayscale(1) brightness(.85) sepia(.2) hue-rotate(60deg) saturate(1.6) contrast(1.05);
  border: 1px solid var(--line-hi);
}

/* code block */
pre.cmd {
  background: var(--ink-2);
  border: 1px solid var(--line-hi);
  border-left: 2px solid var(--phos);
  padding: 1rem 1.2rem;
  font-family: var(--mono); font-size: .88rem;
  color: var(--paper);
  overflow-x: auto;
  line-height: 1.5;
  margin: 1.2rem 0;
}
pre.cmd .c { color: var(--mute); }   /* comment */
pre.cmd .p { color: var(--phos); }   /* prompt/keyword */
pre.cmd .v { color: var(--rust); }   /* value highlight */

/* article body — for advisory posts */
article.adv-body {
  max-width: 64ch;
  font-size: 16.5px;
  line-height: 1.78;
}
article.adv-body h2 { margin-top: 2.4rem; margin-bottom: .8rem; font-size: 1.35rem; }
article.adv-body h3 { margin-top: 1.8rem; margin-bottom: .5rem; font-size: 1.05rem; color: var(--phos-dim); }
article.adv-body p { color: var(--paper-2); max-width: none; }
article.adv-body ul, article.adv-body ol { color: var(--paper-2); padding-left: 1.2rem; }
article.adv-body li { margin-bottom: .35em; }
article.adv-body blockquote {
  border-left: 2px solid var(--phos);
  margin: 1.4rem 0;
  padding: .2rem 0 .2rem 1.1rem;
  color: var(--paper);
  font-style: normal;
  font-family: var(--mono);
  font-size: .96rem;
}

.meta-row {
  font-family: var(--mono); font-size: .76rem;
  color: var(--mute);
  display: flex; gap: 1.4rem; flex-wrap: wrap;
  margin: .6rem 0 2rem;
}
.meta-row span::before { content: ""; }
.meta-row .key { color: var(--phos-dim); margin-right: .25rem; }

/* advisory list */
ul.adv-list { list-style: none; padding: 0; margin: 0; }
ul.adv-list li {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 1.4rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--line);
}
ul.adv-list .date {
  font-family: var(--mono); color: var(--phos-dim);
  font-size: .82rem;
}
ul.adv-list .title { font-family: var(--mono); color: var(--paper); font-size: 1.05rem; }
ul.adv-list .title a { border-bottom: none; }
ul.adv-list .lede { color: var(--paper-2); font-size: .94rem; margin: .4rem 0 0; max-width: 60ch; }
ul.adv-list .tags { margin-top: .5rem; }
ul.adv-list .tag {
  display: inline-block; font-family: var(--mono); font-size: .7rem;
  letter-spacing: .12em; text-transform: uppercase;
  padding: .1rem .45rem; margin-right: .35rem;
  border: 1px solid var(--line-hi); color: var(--phos-dim);
}

/* download grid */
.dl-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.dl-grid > div {
  background: var(--ink);
  padding: 1.2rem 1.3rem;
  display: flex; flex-direction: column; gap: .35rem;
}
.dl-grid .fname { font-family: var(--mono); color: var(--phos); font-size: .96rem; }
.dl-grid .desc { font-size: .9rem; color: var(--paper-2); }
.dl-grid .meta { font-family: var(--mono); font-size: .76rem; color: var(--mute); margin-top: .4rem; }
@media (max-width: 700px) { .dl-grid { grid-template-columns: 1fr; } }

/* contact form */
form.dock-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.1rem;
  max-width: 44rem;
}
form.dock-form label {
  display: flex; flex-direction: column; gap: .35rem;
  font-family: var(--mono); font-size: .76rem;
  color: var(--phos-dim); letter-spacing: .14em; text-transform: uppercase;
}
form.dock-form .full { grid-column: 1 / -1; }
form.dock-form input, form.dock-form textarea, form.dock-form select {
  background: var(--ink-2);
  border: 1px solid var(--line-hi);
  color: var(--paper);
  font-family: var(--mono); font-size: .92rem;
  padding: .65rem .8rem;
  border-radius: 0;
}
form.dock-form input:focus, form.dock-form textarea:focus, form.dock-form select:focus {
  outline: none; border-color: var(--phos);
}
form.dock-form textarea { min-height: 7.5rem; }

/* page footer */
footer.crt-foot {
  font-family: var(--mono);
  font-size: .76rem;
  color: var(--mute);
  padding: 1.4rem 0 .4rem;
  margin-top: 2rem;
  border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; gap: 1.4rem;
}
footer.crt-foot .col { flex: 1 1 14rem; }
footer.crt-foot a { color: var(--paper-2); border-bottom: none; }
footer.crt-foot a:hover { color: var(--phos); }
footer.crt-foot code { color: var(--phos-dim); }

/* breadcrumbs */
.bread {
  font-family: var(--mono); font-size: .78rem;
  color: var(--mute);
  margin-bottom: 1.4rem;
}
.bread a { color: var(--paper-2); border-bottom: none; }
.bread a:hover { color: var(--phos); }
.bread .sep { color: var(--phos-dim); margin: 0 .55rem; }

/* split — used on threat-model & runtime */
.split-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.4rem;
  align-items: start;
}
@media (max-width: 800px) { .split-2 { grid-template-columns: 1fr; } }

/* large numbered list */
ol.flow-steps {
  list-style: none; padding: 0; margin: 0;
  counter-reset: step;
}
ol.flow-steps li {
  counter-increment: step;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1.4rem;
  align-items: baseline;
}
ol.flow-steps li::before {
  content: counter(step, decimal-leading-zero);
  font-family: var(--mono); font-size: 1.1rem;
  color: var(--phos); font-weight: 700;
  letter-spacing: .04em;
}
ol.flow-steps h3 { font-size: 1.02rem; margin-bottom: .35rem; }
ol.flow-steps p { color: var(--paper-2); font-size: .94rem; margin: 0; }


/* ============================================================
   FORM (cmd-form) — used on contact.html
   ============================================================ */
.cmd-form {
  font-family: var(--mono);
  font-size: .92rem;
  background: rgba(15,20,15,.45);
  border: 1px solid var(--rule);
  padding: 1.4rem 1.4rem 1.2rem;
  border-radius: 2px;
}
.cmd-form fieldset {
  border: 1px solid var(--rule);
  padding: 1rem 1.1rem 1.2rem;
  margin: 0 0 1.2rem;
}
.cmd-form legend {
  color: var(--phos);
  padding: 0 .5rem;
  font-size: .82rem;
  letter-spacing: .04em;
}
.cmd-form .row {
  display: grid;
  grid-template-columns: 13rem 1fr;
  gap: 1rem;
  align-items: start;
  margin-bottom: .8rem;
}
.cmd-form .row:last-child { margin-bottom: 0; }
.cmd-form label {
  color: var(--paper-2);
  font-size: .85rem;
  padding-top: .55rem;
}
.cmd-form input[type=text],
.cmd-form input[type=email],
.cmd-form select,
.cmd-form textarea {
  font: inherit;
  background: rgba(0,0,0,.4);
  color: var(--paper);
  border: 1px solid var(--rule);
  padding: .55rem .75rem;
  width: 100%;
  border-radius: 0;
}
.cmd-form input::placeholder,
.cmd-form textarea::placeholder { color: var(--mute); }
.cmd-form textarea { font-family: var(--mono); line-height: 1.6; resize: vertical; }
.cmd-form select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--phos) 50%), linear-gradient(135deg, var(--phos) 50%, transparent 50%); background-position: calc(100% - 18px) 1.05rem, calc(100% - 12px) 1.05rem; background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-right: 2rem; }
.cmd-form input:focus,
.cmd-form select:focus,
.cmd-form textarea:focus {
  outline: none;
  border-color: var(--phos);
  box-shadow: 0 0 0 1px var(--phos);
}
.cmd-form .actions {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-top: .2rem;
}
.cmd-form .actions .hint {
  font-size: .8rem;
  color: var(--mute);
  font-style: italic;
}
@media (max-width: 720px) {
  .cmd-form .row { grid-template-columns: 1fr; gap: .3rem; }
  .cmd-form label { padding-top: 0; }
}

/* === advisory tags & lists (added for advisories.html + advisory-post-*.html) === */
.adv-tag {
  display: inline-block;
  font-family: var(--mono);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .12rem .55rem;
  border: 1px solid var(--line);
  border-radius: 2px;
  margin-right: .35rem;
  vertical-align: 0.05em;
  background: rgba(122,240,122,0.04);
  color: var(--paper);
}
.adv-tag.crit { border-color: #ff6363; color: #ff8a8a; background: rgba(255,99,99,0.08); }
.adv-tag.high { border-color: #ffae42; color: #ffc371; background: rgba(255,174,66,0.07); }
.adv-tag.med  { border-color: #ffe066; color: #ffe98a; background: rgba(255,224,102,0.06); }
.adv-tag.info { border-color: var(--green); color: var(--green); background: rgba(122,240,122,0.05); }
.adv-tag.dep  { border-color: var(--mute); color: var(--mute); background: rgba(122,240,122,0.0); }

.adv-key {
  font-family: var(--mono);
  font-size: .82rem;
  line-height: 1.9;
  color: var(--paper);
}
.adv-key .adv-tag { margin-right: .5rem; }

.adv-list dt {
  margin-top: 1.4rem;
  font-family: var(--mono);
  font-size: .95rem;
  color: var(--paper);
  line-height: 1.6;
}
.adv-list dt a {
  color: var(--paper);
  border-bottom: 1px dotted var(--mute);
}
.adv-list dt a:hover { color: var(--green); border-bottom-color: var(--green); }
.adv-list dd {
  margin-left: 0;
  padding-left: 0;
  margin-top: .35rem;
  color: var(--paper);
  font-size: .92rem;
  line-height: 1.7;
}
.adv-meta {
  display: inline-block;
  font-family: var(--mono);
  font-size: .75rem;
  color: var(--mute);
  letter-spacing: .05em;
  padding: .1rem 0;
}
