/* ============================================================
   FRCG — blog/article styles (extracted from _includes/base.njk)
   Design tokens live in tokens.css. Page-specific styles are injected
   through the {% block extrastyle %} that remains inline in base.njk.
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{background:var(--concrete-900);color:var(--bone);font-family:var(--sans);font-weight:380;font-size:clamp(15px,1.05vw,17px);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%;max-width:100%}
::selection{background:var(--blue);color:#fff}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
body::after{content:"";position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.bar{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(20px,5vw,60px);background:rgba(21,18,14,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.bar img{height:104px;width:auto;margin:-28px 0;filter:drop-shadow(0 1px 6px rgba(0,0,0,.55))}
.bar .back{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-400);display:inline-flex;align-items:center;gap:.6em;transition:color .3s}
.bar .back:hover{color:var(--blue-bright)}
#prog{position:fixed;top:0;left:0;height:2px;background:var(--blue);width:0;z-index:200;transition:width .1s linear}
.foot{border-top:1px solid var(--line);padding:2rem clamp(20px,5vw,60px);font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
