/* ============================================================ 5. PAGE NAV (shared, pinned top-left) ============================================================ */ .nav { position: fixed; left: 1rem; top: 1rem; z-index: 6; } .nav-links { display: flex; flex-direction: column; align-items: flex-start; gap: 0.4rem; } .nav-link { position: relative; display: inline-flex; align-items: center; padding: 0.3rem 0.7rem; border-radius: 999px; background: var(--surface-0); border: 1px solid var(--surface-1); color: var(--subtext-1); font-size: 0.8rem; text-decoration: none; transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease, color 0.15s ease; } .nav-link:hover { border-color: rgb(var(--accent-rgb)); color: var(--text); transform: translateX(2px); } .nav-link.selected { background: rgb(var(--accent-rgb)); border-color: rgb(var(--accent-rgb)); color: var(--crust); font-weight: 700; margin-left: 14px; } .nav-link.is-a-dev { background: var(--surface-1); border-color: var(--surface-2); color: var(--text); } .nav-link.is-a-dev:hover { border-color: var(--saphire); transform: translateX(2px); } /* Triangle pointing at the selected item */ .nav-link.selected::before { content: ""; position: absolute; left: -14px; top: 50%; transform: translateY(-50%); border: 6px solid transparent; border-left-color: rgb(var(--accent-rgb)); } /* ---- boot reveal of side chrome (set by terminal.js on the homepage, but targets these shared .nav / .badges elements) ---- */ .nav, .badges { transition: opacity 0.6s ease, transform 0.6s ease; } body.term-booting .nav, body.term-booting .badges { opacity: 0; transform: translateY(8px); } body.term-chrome-in .nav, body.term-chrome-in .badges { opacity: 1; transform: none; }