.lab-article{background:var(--bg);color:var(--text)}
.article-shell{width:min(100% - 40px,1120px);margin-inline:auto}
.article-hero{padding:96px 0 72px;border-bottom:1px solid var(--border-subtle)}
.article-breadcrumb{color:var(--text-muted);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.article-hero h1{max-width:13ch;margin:18px 0 24px;font-size:clamp(3.2rem,7vw,6.8rem);line-height:.92;letter-spacing:-.058em;font-variation-settings:var(--type-display)}
.article-hero h1 em{display:block;color:var(--accent);font-style:normal}
.article-deck{max-width:820px;margin:0;color:var(--text-secondary);font-size:clamp(1.12rem,1.5vw,1.5rem);line-height:1.65}
.article-meta{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:34px;padding-top:20px;border-top:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);font-size:.7rem}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:72px;padding:72px 0 110px}
.article-main{min-width:0}
.article-main section{padding:0 0 72px;margin:0 0 72px;border-bottom:1px solid var(--border-subtle)}
.article-main section:last-child{border-bottom:0;margin-bottom:0}
.article-main h2{max-width:18ch;margin:10px 0 22px;font-size:clamp(2rem,4vw,3.8rem);line-height:1.03;letter-spacing:-.045em}
.article-main h3{margin:32px 0 12px;font-size:1.35rem;letter-spacing:-.02em}
.article-main p,.article-main li{max-width:760px;color:var(--text-secondary);font-size:1rem;line-height:1.8}
.article-main strong{color:var(--text)}
.article-main a{color:var(--accent);text-underline-offset:3px}
.article-label{color:var(--accent);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.article-aside{position:sticky;top:92px;align-self:start}
.article-aside nav{display:grid;gap:10px;padding-left:16px;border-left:1px solid var(--border)}
.article-aside a{color:var(--text-muted);font-size:.78rem;text-decoration:none}
.article-aside a:hover{color:var(--text)}
.arch{margin:32px 0;padding:28px 0;border-block:1px solid var(--border);font-family:var(--font-mono)}
.arch-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.arch-node{padding:10px 13px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card-solid);color:var(--text-secondary);font-size:.75rem}
.arch-node.is-core{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--text)}
.arch-arrow{color:var(--text-faint)}
.evidence-list{margin:32px 0;border-top:1px solid var(--border)}
.evidence-item{display:grid;grid-template-columns:118px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--border-subtle)}
.evidence-item b{color:var(--accent);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em}
.evidence-item p{margin:0;font-size:.92rem}
.warning{margin:30px 0;padding:22px 24px;border-left:3px solid var(--orange);background:color-mix(in srgb,var(--orange) 7%,var(--bg-card-solid));color:var(--text-secondary)}
.warning strong{display:block;margin-bottom:6px;color:var(--text)}
.command{margin:24px 0;padding:20px 22px;border:1px solid var(--border);border-radius:14px;background:var(--bg-card-solid);overflow:auto}
.command code{color:var(--text-secondary);font-family:var(--font-mono);font-size:.78rem;white-space:pre-wrap}
.article-footer{padding:44px 0 64px;border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:.78rem}
@media(max-width:880px){.article-layout{grid-template-columns:1fr;gap:0}.article-aside{display:none}.article-hero{padding:76px 0 58px}.article-main section{padding-bottom:56px;margin-bottom:56px}}
@media(max-width:600px){.article-shell{width:min(100% - 28px,1120px)}.article-hero h1{font-size:clamp(3rem,16vw,4.8rem)}.evidence-item{grid-template-columns:1fr;gap:6px}.arch-row{align-items:flex-start;flex-direction:column}.arch-arrow{transform:rotate(90deg);margin-left:20px}}

/* Article microinteractions: motion should clarify hierarchy */
.lab-article strong,.lab-article .article-main h2,.lab-article .lab-brand{
  transition:font-variation-settings .3s var(--ease-out),color .2s ease;
}
.lab-article strong{font-variation-settings:"wght" 650,"slnt" 0,"FLAR" 8,"VOLM" 2}
.lab-article strong:hover{font-variation-settings:"wght" 790,"slnt" -1,"FLAR" 28,"VOLM" 12}
.article-main h2{font-variation-settings:var(--type-heading)}
.article-main h2:hover{font-variation-settings:"wght" 790,"slnt" -1,"FLAR" 46,"VOLM" 30}
.article-aside a{position:relative;transition:color .2s ease,transform .24s var(--ease-out)}
.article-aside a:hover{transform:translateX(4px)}
.arch-node{transition:transform .24s var(--ease-out),border-color .2s ease,box-shadow .24s ease,color .2s ease}
.arch-node:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-sm);color:var(--text)}
.arch-node.is-core:hover{border-color:var(--accent)}
.evidence-item{transition:background .24s ease}
.evidence-item b{transition:transform .24s var(--ease-out),font-weight .2s ease}
.evidence-item:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 5%,transparent),transparent 72%)}
.evidence-item:hover b{transform:translateX(3px);font-weight:800}
.command,.warning{transition:border-color .24s ease,box-shadow .28s ease,transform .28s var(--ease-out)}
.command:hover,.warning:hover{box-shadow:0 16px 44px -34px color-mix(in srgb,var(--accent) 55%,transparent);transform:translateY(-1px)}

/* No-reflow emphasis for article text */
.lab-article strong,.lab-article .article-main h2,.lab-article .lab-brand{
  transition:color .2s ease,text-shadow .24s ease,transform .24s var(--ease-out)!important;
}
.lab-article strong:hover{
  font-variation-settings:"wght" 650,"slnt" 0,"FLAR" 8,"VOLM" 2!important;
  text-shadow:.28px 0 currentColor,-.28px 0 currentColor;
}
.article-main h2:hover{
  font-variation-settings:var(--type-heading)!important;
  text-shadow:.34px 0 currentColor,-.34px 0 currentColor;
}
.lab-article .lab-brand:hover{
  font-variation-settings:"wght" 650,"slnt" 0,"FLAR" 8,"VOLM" 2!important;
  text-shadow:.32px 0 currentColor,-.32px 0 currentColor;
}

/* Stable article emphasis: paint-only, zero reflow */
.lab-article strong,.lab-article .article-main h2,.lab-article .lab-brand,.evidence-item b{
  text-shadow:none!important;
  -webkit-text-stroke-width:0;
  -webkit-text-stroke-color:currentColor;
  transition:color .2s ease,-webkit-text-stroke-width .22s var(--ease-out),transform .22s var(--ease-out)!important;
}
.lab-article strong:hover,.article-main h2:hover,.lab-article .lab-brand:hover,.evidence-item:hover b{
  text-shadow:none!important;
  -webkit-text-stroke-width:.28px;
}
.lab-article strong:hover,.lab-article .lab-brand:hover{
  font-variation-settings:"wght" 650,"slnt" 0,"FLAR" 8,"VOLM" 2!important;
}
.article-main h2:hover{font-variation-settings:var(--type-heading)!important}
.evidence-item:hover b{font-weight:700!important}
