diff --git a/README.md b/README.md
index b108617..438e607 100644
--- a/README.md
+++ b/README.md
@@ -223,7 +223,7 @@ New audit checks, fixes and docs are welcome — see [CONTRIBUTING.md](CONTRIBUT
## 📄 License
-[MIT](LICENSE) © DevCop95 (Yared Henríquez).
+[MIT](LICENSE) © DevCop95 (Yared Henriquez).
## ⚠️ Disclaimer
diff --git a/docs/audit.html b/docs/audit.html
index 0579c1f..b608e65 100644
--- a/docs/audit.html
+++ b/docs/audit.html
@@ -4,6 +4,21 @@
Audit checks — OBLITERATUS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/capabilities.html b/docs/capabilities.html
index 02b8d2e..faeef75 100644
--- a/docs/capabilities.html
+++ b/docs/capabilities.html
@@ -4,6 +4,21 @@
Capabilities & gates — OBLITERATUS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/favicon.svg b/docs/favicon.svg
index 4adde88..85adc2d 100644
--- a/docs/favicon.svg
+++ b/docs/favicon.svg
@@ -1,8 +1,7 @@
diff --git a/docs/index.html b/docs/index.html
index b36fe90..9333fbf 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -5,6 +5,21 @@
OBLITERATUS — Windows credential exposure auditor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -25,7 +40,7 @@
-
+
Windows Credential Exposure Auditor
The Mimikatz playbook, run as a defensive checklist.
@@ -200,7 +215,7 @@ Authorized use only
- MIT © DevCop95 (Yared Henríquez). Source, issues and releases:
+ MIT © DevCop95 (Yared Henriquez). Source, issues and releases:
github.com/DevCop95/pullgoscript.
diff --git a/docs/og-image.png b/docs/og-image.png
new file mode 100644
index 0000000..f3a8bea
Binary files /dev/null and b/docs/og-image.png differ
diff --git a/docs/security.html b/docs/security.html
index b797b12..e555215 100644
--- a/docs/security.html
+++ b/docs/security.html
@@ -4,6 +4,21 @@
Security model — OBLITERATUS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/site.css b/docs/site.css
index 9aa7288..5f85f24 100644
--- a/docs/site.css
+++ b/docs/site.css
@@ -1,26 +1,26 @@
/* OBLITERATUS docs — hand-written, no build step, no external requests. */
:root {
- --bg: #0c0e12;
- --bg-1: #12151b;
- --bg-2: #171b23;
- --bg-3: #1c212b;
- --fg: #dfe4ec;
- --fg-dim: #939cab;
- /* Hairlines, not borders: pure white at ~6% reads as a soft edge on the
- dark palette; the old #262c37 was a saturated 1px line that boxed
- everything in and made the cards look flat and dirty. */
- --line: rgba(255, 255, 255, 0.06);
- --line-strong: rgba(255, 255, 255, 0.1);
- --accent: #e2544a;
- --accent-2: #f0a04b;
- --accent-dim: rgba(226, 84, 74, 0.14);
- --accent-2-dim: rgba(240, 160, 75, 0.13);
+ --bg: #202830;
+ --bg-1: #252e36;
+ --bg-2: #2b3640;
+ --bg-3: #303c47;
+ --fg: #eef2f5;
+ --fg-dim: #aab5bf;
+ --line: rgba(255, 255, 255, 0.075);
+ --line-strong: rgba(255, 255, 255, 0.13);
+ --accent: #4fc2e7;
+ --accent-2: #8ed8ed;
+ --accent-dim: rgba(79, 194, 231, 0.14);
+ --accent-2-dim: rgba(142, 216, 237, 0.12);
+ --danger: #e2645d;
+ --danger-dim: rgba(226, 100, 93, 0.14);
+ --warning: #e2b568;
+ --warning-dim: rgba(226, 181, 104, 0.14);
--ok: #4fb477;
--ok-dim: rgba(79, 180, 119, 0.13);
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
- --shadow-md: 0 2px 4px rgba(0, 0, 0, 0.3), 0 10px 28px rgba(0, 0, 0, 0.28);
- --shadow-lg: 0 4px 8px rgba(0, 0, 0, 0.35), 0 18px 44px rgba(0, 0, 0, 0.36);
+ --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.18);
+ --shadow-md: 0 14px 34px rgba(0, 0, 0, 0.24);
--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
@@ -36,14 +36,15 @@ body {
font: 16px/1.65 var(--sans);
}
-/* A single soft glow at the top of the page. Costs nothing (no image, no
- request) and stops the background from reading as a flat dead slab; the
- red is the brand accent, kept faint so text contrast does not move. */
+::selection { color: var(--fg); background: rgba(79, 194, 231, 0.32); }
+
+/* A single soft glow at the top of the page keeps the slate background from
+ reading as a flat slab while leaving text contrast unchanged. */
body::before {
content: "";
position: fixed;
inset: 0;
- background: radial-gradient(900px 460px at 50% -8%, rgba(226, 84, 74, 0.07), transparent 70%);
+ background: radial-gradient(900px 460px at 50% -8%, rgba(79, 194, 231, 0.065), transparent 70%);
pointer-events: none;
z-index: -1;
}
@@ -62,14 +63,13 @@ code {
pre {
background: var(--bg-1);
- border: 1px solid var(--line);
- border-left: 3px solid var(--accent);
- border-radius: 10px;
- padding: 14px 16px;
+ border: 0;
+ border-radius: 12px;
+ padding: 17px 20px;
overflow-x: auto;
font-size: 13.5px;
line-height: 1.6;
- box-shadow: var(--shadow-sm);
+ box-shadow: inset 0 1px rgba(255, 255, 255, 0.035);
}
pre code { background: none; border: 0; padding: 0; font-size: inherit; }
@@ -78,12 +78,12 @@ pre code { background: none; border: 0; padding: 0; font-size: inherit; }
.wrap { max-width: 1080px; margin: 0 auto; padding: 0 22px; }
header.top {
- border-bottom: 1px solid var(--line);
- background: rgba(12, 14, 18, 0.82);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.055);
+ background: rgba(32, 40, 48, 0.82);
position: sticky;
top: 0;
- backdrop-filter: blur(10px);
- -webkit-backdrop-filter: blur(10px);
+ backdrop-filter: blur(16px);
+ -webkit-backdrop-filter: blur(16px);
z-index: 10;
}
@@ -106,9 +106,10 @@ header.top .wrap {
}
.brand span { color: var(--accent); }
-nav.main { display: flex; gap: 16px; flex-wrap: wrap; font-size: 14.5px; }
-nav.main a { color: var(--fg-dim); }
-nav.main a:hover, nav.main a[aria-current="page"] { color: var(--fg); }
+nav.main { display: flex; gap: 22px; flex-wrap: wrap; font-size: 13px; letter-spacing: 0.015em; }
+nav.main a { color: var(--fg-dim); transition: color 0.16s ease; }
+nav.main a:hover, nav.main a[aria-current="page"] { color: var(--fg); text-decoration: none; }
+nav.main a[aria-current="page"] { box-shadow: inset 0 -1px var(--accent); }
main { padding: 34px 0 60px; }
@@ -124,24 +125,24 @@ footer .wrap { display: flex; justify-content: space-between; gap: 16px; flex-wr
/* --------------------------------------------------------------- typography */
h1 {
- font-size: 34px;
+ font-size: clamp(32px, 4vw, 43px);
line-height: 1.15;
- margin: 0 0 6px;
- letter-spacing: -0.01em;
+ margin: 0 0 10px;
+ letter-spacing: -0.035em;
+ font-weight: 650;
}
h2 {
- font-size: 22px;
- margin: 44px 0 12px;
- padding-top: 20px;
- /* Kept as a section rule — long pages need one — but at 5% white it reads
- as a soft break, not a line ruled across the page. */
- border-top: 1px solid rgba(255, 255, 255, 0.05);
+ font-size: 20px;
+ margin: 52px 0 14px;
+ padding-top: 0;
+ letter-spacing: -0.018em;
+ font-weight: 600;
}
h3 { font-size: 17px; margin: 26px 0 8px; }
p { margin: 12px 0; }
-.lede { font-size: 18px; color: var(--fg-dim); margin: 0 0 18px; }
-.tagline { color: var(--accent-2); font-family: var(--mono); font-size: 14px; letter-spacing: 0.02em; }
+.lede { max-width: 78ch; font-size: 17px; color: #b3b7bd; margin: 0 0 22px; line-height: 1.75; }
+.tagline { color: var(--accent-2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; }
.note { color: var(--fg-dim); font-size: 14px; }
/* -------------------------------------------------------------------- pills */
@@ -158,19 +159,18 @@ p { margin: 12px 0; }
padding: 3px 10px;
white-space: nowrap;
}
-.pill.hot { color: var(--accent); background: var(--accent-dim); }
-.pill.warm { color: var(--accent-2); background: var(--accent-2-dim); }
+.pill.hot { color: var(--danger); background: var(--danger-dim); }
+.pill.warm { color: var(--warning); background: var(--warning-dim); }
.pill.ok { color: var(--ok); background: var(--ok-dim); }
/* ------------------------------------------------------------------- tables */
.tw {
overflow-x: auto;
- margin: 16px 0;
- border: 1px solid var(--line);
- border-radius: 10px;
- background: var(--bg-1);
- box-shadow: var(--shadow-sm);
+ margin: 20px 0;
+ border: 0;
+ border-radius: 0;
+ background: transparent;
}
table { border-collapse: collapse; width: 100%; font-size: 14.5px; }
@@ -180,13 +180,13 @@ caption {
text-align: left;
color: var(--fg-dim);
font-size: 13px;
- padding: 10px 12px 0;
+ padding: 0 0 12px;
}
-th, td { text-align: left; padding: 9px 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); vertical-align: top; }
+th, td { text-align: left; padding: 11px 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.065); vertical-align: top; }
thead th {
- background: var(--bg-2);
+ background: transparent;
font-size: 12.5px;
text-transform: uppercase;
letter-spacing: 0.06em;
@@ -197,11 +197,12 @@ thead th {
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: rgba(255, 255, 255, 0.025); }
+thead th:first-child, tbody td:first-child { padding-left: 0; }
td.rt, th.rt { font-family: var(--mono); font-size: 13px; white-space: nowrap; }
td.sev { font-family: var(--mono); font-size: 12.5px; white-space: nowrap; }
-.sev-crit { color: var(--accent); font-weight: 600; }
-.sev-high { color: var(--accent-2); font-weight: 600; }
+.sev-crit { color: var(--danger); font-weight: 600; }
+.sev-high { color: var(--warning); font-weight: 600; }
.sev-med { color: #d9c04a; }
.sev-low { color: var(--fg-dim); }
.sev-info { color: #5b8bbf; }
@@ -211,44 +212,38 @@ td.sev { font-family: var(--mono); font-size: 12.5px; white-space: nowrap; }
/* --------------------------------------------------------------- components */
-.shot { width: 100%; border: 1px solid var(--line); border-radius: 10px; margin: 20px 0 6px; box-shadow: var(--shadow-sm); }
+.shot { display: block; width: 100%; border: 0; border-radius: 14px; margin: 30px 0 28px; box-shadow: 0 22px 60px rgba(0, 0, 0, 0.28); }
-/* Callouts keep the left accent bar — it carries the meaning (amber = note,
- red = warning) — but drop the full grey stroke that used to box them. */
+/* Callouts use a faint surface tint to carry context without a colored frame. */
.callout {
- border-left: 3px solid var(--accent-2);
- background: linear-gradient(90deg, var(--accent-2-dim), rgba(240, 160, 75, 0.03));
- border-radius: 10px;
+ border: 0;
+ background: linear-gradient(100deg, rgba(79, 194, 231, 0.09), rgba(79, 194, 231, 0.025) 72%, transparent);
+ border-radius: 0 10px 10px 0;
padding: 14px 18px;
- margin: 18px 0;
+ margin: 22px 0;
font-size: 14.5px;
}
.callout.warn {
- border-left-color: var(--accent);
- background: linear-gradient(90deg, var(--accent-dim), rgba(226, 84, 74, 0.03));
+ background: linear-gradient(100deg, var(--danger-dim), rgba(226, 100, 93, 0.025) 72%, transparent);
}
.callout strong { color: var(--fg); }
-/* Cards: the old rule drew a 1px #262c37 box on a #12151b background — the
- same value family, so the edge read as dirt rather than as a line, and the
- flat fill gave the card no place to sit. Now the surface itself does the
- separating: a vertical gradient, a barely-there hairline, and a real
- shadow. Hover lifts the card and the accent arrives as a tint, not a cage. */
-.cardgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin: 18px 0; }
+/* Links read as a quiet reference list; the surface appears only on hover. */
+.cardgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 4px 22px; margin: 18px 0; }
.card {
- border: 1px solid var(--line);
- background: linear-gradient(180deg, var(--bg-3), var(--bg-1));
- border-radius: 12px;
- padding: 16px 18px;
- box-shadow: var(--shadow-sm);
- transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
+ display: block;
+ border: 0;
+ border-radius: 9px;
+ padding: 16px 14px;
+ background: transparent;
+ transition: background 0.16s ease;
+ text-decoration: none;
}
.card:hover {
- transform: translateY(-2px);
- border-color: var(--line-strong);
- box-shadow: var(--shadow-md);
+ background: rgba(255, 255, 255, 0.035);
+ text-decoration: none;
}
-.card h3 { margin: 0 0 6px; font-size: 15px; }
+.card h3 { margin: 0 0 6px; font-size: 15px; color: var(--fg); }
.card p { margin: 0; font-size: 14px; color: var(--fg-dim); }
.steps { counter-reset: s; list-style: none; padding: 0; margin: 16px 0; }
@@ -285,3 +280,27 @@ dl.entry dd { margin: 2px 0 0; }
.hash { font-family: var(--mono); font-size: 12.5px; color: var(--fg-dim); word-break: break-all; }
noscript .callout { border-left-color: var(--accent); }
+
+/* Landing page hierarchy */
+.home { padding-top: 58px; }
+.home > h1 { max-width: 760px; font-size: clamp(38px, 5.3vw, 58px); letter-spacing: -0.05em; }
+.home > .tagline { margin: 12px 0 0; }
+.home > .pills { margin-top: 20px; }
+.home > .lede { max-width: 76ch; font-size: 18px; }
+.home > .tw { max-width: 850px; }
+
+@media (max-width: 640px) {
+ .wrap { padding-left: 18px; padding-right: 18px; }
+ header.top .wrap { align-items: flex-start; gap: 12px; }
+ nav.main { gap: 10px 16px; font-size: 12.5px; }
+ main { padding-top: 26px; }
+ .home { padding-top: 38px; }
+ h1 { font-size: 32px; }
+ h2 { margin-top: 40px; }
+ th, td { padding: 10px 11px; }
+ .home > .pills { gap: 6px; }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
+}
diff --git a/docs/verify.html b/docs/verify.html
index c6581f4..5f73232 100644
--- a/docs/verify.html
+++ b/docs/verify.html
@@ -4,6 +4,21 @@
Verify a release — OBLITERATUS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/internal/ui/web/index.html b/internal/ui/web/index.html
index 8bd4098..be8d942 100644
--- a/internal/ui/web/index.html
+++ b/internal/ui/web/index.html
@@ -9,19 +9,19 @@