forked from Ports/goldeneye-pc-port
- Docs site: drop jekyll-theme-cayman for a hand-rolled _layouts/default.html
(masthead band + middot text nav + footer with last-updated stamp and legal
line; head re-plumbed with {% seo %}, viewport, favicon); head-custom.html
fully rewritten to the chosen design tokens - charcoal/off-white/amber,
Libre Baskerville headings over system sans, square corners, 1px borders,
flat (no gradients/shadows), mermaid wrapper re-skinned.
- docs/index.md: v0.4.0 status (native widescreen, aim system, rebinding,
crosshair, rumble, rebuilt overlay); Honest status replaced by the v0.4.0
release-notes known issues; body anchor-nav line; legal footer moved to
layout.
- security-and-fidelity-status.md: front matter so {% seo %} titles it.
- README.md: v0.4.0 truth pass (status, Working/Known issues, Deck preset
2x MSAA / 250% per code, background stats 981 commits / 283 findings,
comparison table, GEPD-default controls paragraph, earlier builds) plus
markdown-native motifs matching the site: top anchor-nav line, --- section
rules, last-updated footer stamp, license badge in the amber accent.
- release-notes: SFTP sideload mention (leftover from the Deck session).
263 lines
8.0 KiB
HTML
263 lines
8.0 KiB
HTML
<meta name="google-site-verification" content="UlOGMwqwnUbviaX7-HY3f-fXedkSHyxAPTO0zNHNrfc" />
|
|
<meta name="msvalidate.01" content="E819A8FD183E027D96725C924D4822BD" />
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap" rel="stylesheet">
|
|
|
|
<style>
|
|
/* ----------------------------------------------------------------------
|
|
Hand-rolled site theme (replaces jekyll-theme-cayman, 2026-09-28).
|
|
Look: committed charcoal/off-white/amber "night desk" — flat and square,
|
|
serif display type (Libre Baskerville) over a system sans body, thin
|
|
amber rules between sections, text navigation separated by middots.
|
|
No gradients, no shadows, no rounded corners, no theme switcher.
|
|
--------------------------------------------------------------------- */
|
|
:root {
|
|
--bg: #1b1b1d; /* charcoal page */
|
|
--bg-soft: #232326; /* code / alt rows */
|
|
--bg-deep: #141416; /* code blocks, masthead */
|
|
--ink: #e8e6e3; /* off-white body text */
|
|
--ink-soft: #b5b1a9; /* secondary text */
|
|
--ink-mute: #8d897f; /* captions, footer */
|
|
--line: #3a3a3e; /* 1px borders */
|
|
--accent: #ffb454; /* amber/gold */
|
|
--accent-hi: #ffd08a; /* link hover */
|
|
--measure: 44rem;
|
|
}
|
|
|
|
html { background: var(--bg); }
|
|
|
|
body {
|
|
margin: 0;
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
|
"Helvetica Neue", Arial, sans-serif;
|
|
font-size: 16.5px;
|
|
line-height: 1.7;
|
|
color: var(--ink);
|
|
background: var(--bg);
|
|
-webkit-font-smoothing: antialiased;
|
|
text-rendering: optimizeLegibility;
|
|
}
|
|
|
|
/* ---- Masthead -------------------------------------------------------- */
|
|
.site-masthead {
|
|
background: var(--bg-deep);
|
|
border-bottom: 1px solid var(--accent);
|
|
}
|
|
.masthead-inner {
|
|
max-width: 52rem;
|
|
margin: 0 auto;
|
|
padding: 2.6rem 1.5rem 1.6rem;
|
|
text-align: center;
|
|
}
|
|
.masthead-title {
|
|
display: inline-block;
|
|
font-family: "Libre Baskerville", Georgia, "Times New Roman", serif;
|
|
font-weight: 700;
|
|
font-size: 2.1rem;
|
|
line-height: 1.25;
|
|
color: var(--ink);
|
|
text-decoration: none;
|
|
letter-spacing: 0.01em;
|
|
}
|
|
.masthead-title:hover { color: var(--accent); }
|
|
.masthead-tagline {
|
|
margin-top: 0.5rem;
|
|
color: var(--ink-mute);
|
|
font-size: 0.95rem;
|
|
}
|
|
.masthead-nav {
|
|
margin-top: 1.3rem;
|
|
font-size: 0.9rem;
|
|
}
|
|
.masthead-nav a {
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
padding: 0.1rem 0.15rem;
|
|
}
|
|
.masthead-nav a:hover { color: var(--accent-hi); text-decoration: underline; }
|
|
.nav-sep { color: var(--ink-mute); padding: 0 0.35rem; }
|
|
|
|
/* ---- Content ---------------------------------------------------------- */
|
|
.doc-content {
|
|
max-width: 52rem;
|
|
margin: 0 auto;
|
|
padding: 2.5rem 1.5rem 1rem;
|
|
}
|
|
.doc-content p,
|
|
.doc-content ul,
|
|
.doc-content ol,
|
|
.doc-content blockquote { max-width: var(--measure); }
|
|
|
|
.doc-content h1,
|
|
.doc-content h2,
|
|
.doc-content h3,
|
|
.doc-content h4 {
|
|
font-family: "Libre Baskerville", Georgia, "Times New Roman", serif;
|
|
font-weight: 700;
|
|
line-height: 1.35;
|
|
color: var(--ink);
|
|
margin-top: 2.4rem;
|
|
margin-bottom: 0.9rem;
|
|
}
|
|
.doc-content h1 { font-size: 1.75rem; }
|
|
.doc-content h2 { font-size: 1.35rem; }
|
|
.doc-content h3 { font-size: 1.1rem; }
|
|
.doc-content > h1:first-child { margin-top: 0.5rem; }
|
|
|
|
.doc-content a {
|
|
color: var(--accent);
|
|
text-decoration: underline;
|
|
text-decoration-color: rgba(255, 180, 84, 0.45);
|
|
text-underline-offset: 2px;
|
|
}
|
|
.doc-content a:hover {
|
|
color: var(--accent-hi);
|
|
text-decoration-color: currentColor;
|
|
}
|
|
|
|
.doc-content hr {
|
|
border: 0;
|
|
height: 1px;
|
|
background: var(--accent);
|
|
opacity: 0.5;
|
|
margin: 2.5rem 0;
|
|
}
|
|
|
|
.doc-content blockquote {
|
|
color: var(--ink-soft);
|
|
border-left: 3px solid var(--accent);
|
|
padding: 0.2rem 0 0.2rem 1.1rem;
|
|
margin-left: 0;
|
|
font-style: normal;
|
|
}
|
|
|
|
/* Lead paragraph on doc pages (the italic summary under the H1) */
|
|
.doc-content > p > em:only-child {
|
|
font-style: normal;
|
|
color: var(--ink-soft);
|
|
font-size: 1.05rem;
|
|
}
|
|
|
|
/* ---- Code ------------------------------------------------------------ */
|
|
.doc-content code {
|
|
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
font-size: 0.86em;
|
|
background: var(--bg-soft);
|
|
border: 1px solid var(--line);
|
|
padding: 0.12em 0.4em;
|
|
color: var(--ink);
|
|
}
|
|
.doc-content pre {
|
|
background: var(--bg-deep);
|
|
border: 1px solid var(--line);
|
|
padding: 1rem 1.15rem;
|
|
max-width: var(--measure);
|
|
overflow-x: auto;
|
|
line-height: 1.55;
|
|
}
|
|
.doc-content pre code {
|
|
background: transparent;
|
|
border: 0;
|
|
padding: 0;
|
|
color: var(--ink);
|
|
font-size: 0.84rem;
|
|
}
|
|
|
|
/* ---- Tables ----------------------------------------------------------- */
|
|
.doc-content table {
|
|
border-collapse: collapse;
|
|
width: 100%;
|
|
max-width: var(--measure);
|
|
margin: 1.5rem 0;
|
|
font-size: 0.92rem;
|
|
}
|
|
.doc-content table th,
|
|
.doc-content table td {
|
|
border: 1px solid var(--line);
|
|
padding: 0.5rem 0.75rem;
|
|
text-align: left;
|
|
}
|
|
.doc-content table th { background: var(--bg-soft); font-weight: 600; }
|
|
.doc-content table tr:nth-child(2n) { background: #1f1f22; }
|
|
|
|
/* ---- Images & gallery -------------------------------------------------- */
|
|
.doc-content img {
|
|
border: 1px solid var(--line);
|
|
border-radius: 0;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.doc-content details {
|
|
max-width: var(--measure);
|
|
border: 1px solid var(--line);
|
|
background: var(--bg-soft);
|
|
padding: 0.6rem 0.9rem;
|
|
margin: 1.5rem 0;
|
|
}
|
|
.doc-content summary { cursor: pointer; color: var(--accent); }
|
|
|
|
/* ---- Footer ------------------------------------------------------------- */
|
|
.site-footer {
|
|
max-width: 52rem;
|
|
margin: 3rem auto 0;
|
|
padding: 1.5rem 1.5rem 2.5rem;
|
|
border-top: 1px solid var(--line);
|
|
}
|
|
.footer-inner { max-width: var(--measure); }
|
|
.footer-stamp {
|
|
color: var(--ink-soft);
|
|
font-size: 0.88rem;
|
|
margin: 0 0 0.8rem;
|
|
}
|
|
.footer-stamp a { color: var(--accent); text-decoration: none; }
|
|
.footer-stamp a:hover { color: var(--accent-hi); text-decoration: underline; }
|
|
.footer-legal {
|
|
color: var(--ink-mute);
|
|
font-size: 0.8rem;
|
|
line-height: 1.6;
|
|
margin: 0;
|
|
}
|
|
|
|
@media (max-width: 42rem) {
|
|
.masthead-title { font-size: 1.7rem; }
|
|
.masthead-inner { padding: 2rem 1rem 1.2rem; }
|
|
.doc-content { padding-top: 1.8rem; }
|
|
}
|
|
|
|
/* ---- Mermaid diagrams ---------------------------------------------------- */
|
|
/* Kramdown renders ```mermaid fences as <pre><code class="language-mermaid">.
|
|
The script below hands their text to mermaid and swaps in the SVG. Keep
|
|
the pre unstyled (no code-block background) while it waits to render. */
|
|
.doc-content pre.mermaid,
|
|
.doc-content pre > code.language-mermaid {
|
|
background: transparent;
|
|
border: 0;
|
|
color: var(--ink);
|
|
padding: 0;
|
|
}
|
|
.doc-content pre.mermaid { text-align: center; overflow-x: auto; }
|
|
.doc-content pre.mermaid:not([data-processed]) { visibility: hidden; }
|
|
</style>
|
|
|
|
<script type="module">
|
|
import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs";
|
|
|
|
// Move each ```mermaid code block's text into a <pre class="mermaid"> that
|
|
// mermaid.run() recognises.
|
|
document.querySelectorAll("pre > code.language-mermaid").forEach((code) => {
|
|
const pre = document.createElement("pre");
|
|
pre.className = "mermaid";
|
|
pre.textContent = code.textContent;
|
|
code.parentElement.replaceWith(pre);
|
|
});
|
|
|
|
mermaid.initialize({
|
|
startOnLoad: false,
|
|
securityLevel: "loose", // our own docs; needed for <br/> in node labels
|
|
theme: "dark",
|
|
});
|
|
mermaid.run({ querySelector: "pre.mermaid" });
|
|
</script>
|