:root{
  --a0040-bg:#f7fafc;
  --a0040-ink:#0f172a;
  --a0040-accent:#2563eb;
  --a0040-line: rgba(15,23,42,.10);
  --a0040-rail:#ffffff;
}

body.theme-a0040{
  background:
    radial-gradient(1000px 520px at 20% 0%, rgba(37,99,235,.12), transparent 55%),
    radial-gradient(900px 480px at 80% 10%, rgba(16,185,129,.10), transparent 60%),
    var(--a0040-bg);
  color: var(--a0040-ink);
}

.rail-left{
  position: fixed;
  inset: 0 auto 0 0;
  width: 64px;
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(10px);
  border-right: 1px solid var(--a0040-line);
  z-index: 80;
}

.rail-inner{display:flex; flex-direction: column; align-items:center; gap: .6rem; padding: .8rem .4rem;}
.rail-brand{font-weight: 900; opacity: .8;}
.rail-link{width: 44px; height: 44px; border-radius: 14px; display:flex; align-items:center; justify-content:center; text-decoration:none; color: rgba(15,23,42,.80); border: 1px solid rgba(15,23,42,.10); background: rgba(255,255,255,.70);} 
.rail-link.is-active{border-color: rgba(37,99,235,.45); color: var(--a0040-accent); font-weight: 900;}

.topbar{margin-left: 64px; position: sticky; top: 0; z-index: 70; background: rgba(255,255,255,.84); backdrop-filter: blur(12px); border-bottom: 1px solid var(--a0040-line);} 
.logo-link{text-decoration:none; color: var(--a0040-ink); font-weight: 900; display:flex; align-items:center; gap: .5rem;} 
.logo-img{height: 34px; width:auto; display:block;} 

.tagline{margin-top: .5rem; opacity: .85;}
.tagline p{margin: .25rem 0;}

.grid{margin-left: 64px;}
.grid-areas{display:grid; grid-template-columns: minmax(0,1fr) 360px; gap: 1rem; align-items:start;}

body.is-reading .grid-areas{grid-template-columns: 1fr;}
body.is-reading .aside{display:none;}

@media (max-width: 980px){
  .rail-left{position: static; width:auto; border-right:0;}
  .rail-inner{flex-direction: row; justify-content: center; flex-wrap: wrap;}
  .topbar,.grid{margin-left: 0;}
  .grid-areas{grid-template-columns: 1fr;}
}

#footer{padding: 2.5rem 0;}
#footer .social [class^="icon-"]{display:inline-block;width:1.25rem;height:1.25rem;border-radius:999px;background:currentColor;opacity:.16;vertical-align:middle;}
