/* Coverup Mode — shh, it's classified.
   A redaction gag bolted onto a radically-legible site. The contradiction is the joke:
   the bars are visual only — the words stay in the DOM, so a screen reader reads every
   "classified" syllable aloud. You cannot actually hide on a site built to be audited. */

.rdct{
  position:relative; background:#0b0b0b; color:transparent !important; border-radius:2px;
  padding:0 3px; box-shadow:inset 0 0 0 1px #000; cursor:help; overflow:hidden;
  transition:color .12s, background .12s;
}
.rdct:hover, .rdct:focus{ background:#1a1305; color:var(--bone,#ece4d3) !important; outline:none; overflow:visible; }
.rdct:hover::after, .rdct:focus::after{ opacity:0; }

/* block-fill texture: a row of ▆ sized to the hidden word */
.rdct.blocks::after{
  content:attr(data-fill); position:absolute; left:0; right:0; top:0; bottom:0;
  display:flex; align-items:center; color:#23222a; letter-spacing:-1px; overflow:hidden;
  font-family:var(--mono,monospace); pointer-events:none;
}
/* stamped variant: the word "REDACTED" over the bar */
.rdct.tag::after{
  content:"REDACTED"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--mono,monospace); font-size:.6em; letter-spacing:.06em; color:#46424e; pointer-events:none;
}

/* floating banner + the way out */
.cv-stamp{
  position:fixed; z-index:9999; left:50%; top:16px; transform:translateX(-50%);
  display:flex; gap:12px; align-items:center;
  font-family:var(--mono,ui-monospace,monospace); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:#e6c478; background:rgba(16,15,18,.92); border:1px solid #4a3c1e; border-radius:999px;
  padding:9px 16px; backdrop-filter:blur(8px); box-shadow:0 20px 60px -40px #000;
}
.cv-stamp button{
  font:inherit; letter-spacing:.14em; text-transform:uppercase; cursor:pointer;
  color:#1a1305; background:#c9a24b; border:1px solid #c9a24b; border-radius:999px; padding:5px 13px;
}
.cv-stamp button:hover{ background:#e6c478; border-color:#e6c478; }
.cv-stamp button:focus-visible{ outline:2px solid var(--bone,#ece4d3); outline-offset:3px; }

/* diagonal watermark */
.cv-wm{
  position:fixed; inset:0; z-index:9998; pointer-events:none;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono,monospace); font-weight:700; font-size:clamp(40px,12vw,150px);
  letter-spacing:.12em; color:rgba(194,70,63,.07); transform:rotate(-18deg);
  text-transform:uppercase; white-space:nowrap; user-select:none;
}

/* exit flash */
.cv-toast{
  position:fixed; z-index:9999; left:50%; top:50%; transform:translate(-50%,-50%);
  font-family:var(--mono,monospace); font-size:clamp(22px,5vw,46px); font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; color:#7bd6a0; text-shadow:0 0 30px rgba(123,214,160,.4);
  border:2px solid #7bd6a0; border-radius:10px; padding:14px 26px; transform-origin:center;
  animation:cvStamp .35s cubic-bezier(.2,.9,.2,1) both; pointer-events:none;
}
@keyframes cvStamp{ from{opacity:0;transform:translate(-50%,-50%) scale(1.6) rotate(-8deg)} to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-8deg)} }

@media (prefers-reduced-motion: reduce){ .rdct{transition:none} .cv-toast{animation:none} }
