/* site.css — shared page chrome extracted from templates/*.html.tmpl.
   Currently holds the side-nav rail, which is byte-identical across every page
   that has it (adding a nav item used to mean editing ~12 templates). It relies
   on the CSS custom properties (--bg/--border/--muted/--gold/--text) still
   declared in each page's inline <style>, and the per-page body.light overrides
   stay inline too. Injected by scripts/build.py via a content-hashed <link>
   (see the {{SITE_CSS_LINK}} post-process pass). */
.side-nav{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:4000;display:flex;flex-direction:column;gap:0;background:rgba(18,21,31,0.92);border:1px solid var(--border);border-right:none;border-radius:10px 0 0 10px;backdrop-filter:blur(10px);overflow:hidden;}
.side-nav a,.side-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:52px;padding:6px 4px;border:none;background:none;cursor:pointer;color:var(--muted);text-decoration:none;transition:color .15s,background .15s;-webkit-tap-highlight-color:transparent;}
.side-nav a:hover,.side-nav button:hover{background:rgba(255,255,255,.06);color:var(--text);}
.side-nav a.active,.side-nav button.active{color:var(--gold);}
.side-nav .sn-icon{font-size:.82rem;line-height:1;display:inline-block;transition:transform .15s;}
.side-nav a:hover .sn-icon,.side-nav button:hover .sn-icon{transform:scale(1.28);}
.side-nav .sn-lbl{font-family:'DM Mono',monospace;font-size:.42rem;text-transform:uppercase;letter-spacing:.05em;line-height:1;white-space:nowrap;}
.side-nav .sn-sep{width:32px;height:1px;background:var(--border);margin:1px auto;}
.side-nav .sn-sep--pages{width:36px;height:2px;background:var(--border);margin:2px auto;border-radius:1px;}
@media(max-width:900px){.side-nav{display:none;}}
