/* Shared brand chrome for SEO subpages. Same tokens as homepage. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/assets/dm-sans.woff2") format("woff2");
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/ibm-plex-mono-400.woff2") format("woff2");
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/ibm-plex-mono-500.woff2") format("woff2");
}

:root{
  --void:#0A0A0A;
  --obsidian:#151515;
  --carbon:#1E1E1E;
  --orange:#F7931A;
  --gold:#C9A84C;
  --cream:#F0EDE6;
  --ash:#888480;
}

*{margin:0;padding:0;box-sizing:border-box;}
html,body{
  background:var(--void);
  color:var(--cream);
  font-family:'DM Sans',system-ui,-apple-system,sans-serif;
  line-height:1.65;
  min-height:100%;
}
body{
  background:
    radial-gradient(ellipse 80% 50% at 80% 0%, rgba(247,147,26,0.06), transparent 55%),
    radial-gradient(ellipse 60% 40% at 10% 100%, rgba(201,168,76,0.04), transparent 50%),
    var(--void);
}
a{color:var(--gold);text-decoration:none;}
a:hover{color:var(--orange);}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;letter-spacing:0.02em;}

/* Header */
header.site-header{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 4vw;
  border-bottom:1px solid var(--carbon);
  background:rgba(10,10,10,0.88);
  backdrop-filter:blur(12px);
  transition:border-color .25s ease, background .25s ease, box-shadow .25s ease;
}
header.site-header.is-scrolled{
  background:rgba(10,10,10,0.94);
  border-bottom-color:rgba(201,168,76,0.18);
  box-shadow:0 8px 32px rgba(0,0,0,0.35);
}
.logo{display:flex;align-items:center;gap:10px;color:var(--cream);text-decoration:none;}
.logo img{width:30px;height:30px;border-radius:6px;display:block;}
.logo span{font-weight:700;font-size:15px;letter-spacing:0.12em;}
nav.site-nav{display:flex;flex-wrap:wrap;gap:20px;align-items:center;}
nav.site-nav a{
  color:var(--ash);font-size:12px;text-transform:uppercase;
  font-family:'IBM Plex Mono',ui-monospace,monospace;letter-spacing:0.06em;
  transition:color .2s ease;
}
nav.site-nav a:hover,
nav.site-nav a.is-active{color:var(--cream);}
nav.site-nav a.nav-cta{
  border:1px solid var(--carbon);
  padding:8px 14px;border-radius:8px;color:var(--cream);
}
nav.site-nav a.nav-cta:hover{border-color:var(--orange);color:var(--orange);}

/* Mobile nav toggle (injected by site-motion.js) */
button.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:40px;height:40px;
  padding:8px;
  border:1px solid var(--carbon);
  border-radius:8px;
  background:transparent;
  cursor:pointer;
  z-index:50;
}
button.nav-toggle .nav-toggle-bar{
  display:block;width:18px;height:1.5px;
  background:var(--cream);margin:0 auto;
  transition:transform .2s ease, opacity .2s ease;
}
.site-header.nav-open .nav-toggle .nav-toggle-bar:nth-child(1){
  transform:translateY(6.5px) rotate(45deg);
}
.site-header.nav-open .nav-toggle .nav-toggle-bar:nth-child(2){opacity:0;}
.site-header.nav-open .nav-toggle .nav-toggle-bar:nth-child(3){
  transform:translateY(-6.5px) rotate(-45deg);
}

/* Reading progress (subpages + blog; homepage keeps its own rail) */
.read-progress{
  position:fixed; top:0; left:0; right:0; z-index:50;
  height:2px; pointer-events:none;
  background:transparent;
}
.read-progress-fill{
  height:100%; width:100%;
  background:linear-gradient(90deg, var(--orange), var(--gold));
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}
.reduce-motion .read-progress-fill{transition:none;}

/* Stat chips on marketing subpages */
.stat-row{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  grid-column:1 / -1;
  margin:0 0 4px;
}
.stat-chip{
  border:1px solid var(--carbon);
  border-radius:10px;
  padding:14px 16px;
  background:rgba(21,21,21,0.72);
}
.stat-chip .stat-val{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:13px;font-weight:500;
  color:var(--gold);letter-spacing:0.04em;
  text-transform:uppercase;margin-bottom:4px;
}
.stat-chip .stat-label{
  font-size:13px;color:var(--ash);line-height:1.4;
}
.chip-row{
  display:flex;flex-wrap:wrap;gap:8px;
  margin:8px 0 0;
}
.chip{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--ash);
  border:1px solid var(--carbon);
  border-radius:999px;
  padding:6px 12px;
  background:var(--void);
}
.chip.is-accent{color:var(--gold);border-color:rgba(201,168,76,0.35);}

/* Related posts strip */
.post-related{
  margin-top:20px;
  margin-bottom:8px;
  grid-column:1 / -1;
  display:block;
}
.page-blog .post-related{
  max-width:100%;
}
.post-related > h2{
  font-size:0.85rem;font-weight:600;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase;letter-spacing:0.08em;
  color:var(--ash);margin:0 0 12px;
}
.related-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}
a.related-card{
  display:block;
  border:1px solid var(--carbon);
  border-radius:12px;
  overflow:hidden;
  background:rgba(21,21,21,0.72);
  color:inherit;text-decoration:none;
  transition:border-color .2s ease, transform .2s ease;
}
a.related-card:hover{
  border-color:rgba(201,168,76,0.45);
  transform:translateY(-2px);
}
a.related-card:hover .related-card-title{color:var(--orange);}
.related-card-media{
  aspect-ratio:16 / 9;
  background:var(--obsidian);overflow:hidden;
}
.related-card-media--plain{
  background:
    radial-gradient(ellipse 70% 60% at 70% 30%, rgba(247,147,26,0.16), transparent 60%),
    radial-gradient(ellipse 50% 50% at 20% 80%, rgba(201,168,76,0.1), transparent 55%),
    var(--obsidian);
}
.related-card-media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .35s ease;
}
a.related-card:hover .related-card-media img{transform:scale(1.03);}
.related-card-body{padding:12px 14px 14px;}
.related-card-meta{
  font-size:10px;color:var(--ash);text-transform:uppercase;
  letter-spacing:0.06em;margin-bottom:6px;
}
.related-card-title{
  font-size:0.92rem;font-weight:700;line-height:1.3;
  color:var(--cream);margin:0;
  transition:color .2s ease;
}

/* Page shell: use the full viewport, not a narrow centered column */
main.page{
  max-width:1240px;
  margin:0 auto;
  padding:0 4vw 56px;
}
/* Subpages (how-it-works, security, integrators, faq): 2-col content board */
main.page:not(.page-blog){
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:16px;
  row-gap:14px;
  align-items:start;
}
main.page:not(.page-blog) > .page-hero,
main.page:not(.page-blog) > .cta-row,
main.page:not(.page-blog) > .faq-list,
main.page:not(.page-blog) > .page-section.span-full{
  grid-column:1 / -1;
}

/* Hero band */
.page-hero{
  position:relative;
  padding:40px 0 12px;
  margin-bottom:4px;
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr);
  gap:20px 40px;
  align-items:end;
}
.page-hero::before{
  content:'';
  position:absolute; left:0; top:40px;
  width:2px; height:32px; background:var(--orange);
}
.page-hero .eyebrow{
  font-size:12px;color:var(--ash);text-transform:uppercase;
  letter-spacing:0.1em;margin-bottom:10px;padding-left:16px;
  grid-column:1 / -1;
}
.page-hero h1{
  font-weight:800;
  font-size:clamp(28px,4vw,42px);
  letter-spacing:-0.02em;line-height:1.08;
  margin:0 0 0 0;padding-left:16px;
}
.page-hero .lead{
  font-size:16px;line-height:1.55;color:var(--cream);
  opacity:0.9;max-width:none;padding-left:0;margin:0;
  padding-bottom:4px;
}
/* When hero only has eyebrow+h1+lead in DOM order without grid children wrapper,
   keep readable stacking: h1 and lead sit in two columns when both are direct children */
.page-hero > h1{grid-column:1;}
.page-hero > .lead{grid-column:2;padding-left:0;}
@media (max-width:900px){
  .page-hero{grid-template-columns:1fr;}
  .page-hero > h1,
  .page-hero > .lead{grid-column:1;padding-left:16px;}
}

/* Content sections */
.page-section{
  margin-top:0;
  padding:18px 20px;
  border:1px solid var(--carbon);
  border-radius:12px;
  background:rgba(21,21,21,0.72);
  height:100%;
}
.page-section h2{
  font-weight:700;font-size:1.15rem;
  margin:0 0 12px;color:var(--cream);
  letter-spacing:-0.01em;
}
.page-section h3{
  font-weight:700;font-size:0.95rem;
  margin:18px 0 8px;color:var(--cream);
}
.page-section p,
.page-section li{
  color:var(--cream);opacity:0.92;font-size:15px;
}
.page-section p{margin-bottom:0.85rem;}
.page-section p:last-child{margin-bottom:0;}
.page-section ul,
.page-section ol{padding-left:1.2rem;margin:0 0 0.5rem;}
.page-section li{margin-bottom:0.45rem;}

/* Route / feature rows */
.feature-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
}
.feature-list li{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px 14px;
  border:1px solid var(--carbon);
  border-radius:8px;
  background:var(--void);
  opacity:1;
}
.feature-list .label{
  flex-shrink:0;
  min-width:4.5em;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;font-weight:600;
  letter-spacing:0.04em;text-transform:uppercase;
  color:var(--gold);padding-top:2px;
}
.feature-list .text{font-size:14px;color:var(--ash);line-height:1.5;}

/* Tables */
table{
  width:100%;border-collapse:collapse;margin:0.5rem 0 0;font-size:14px;
}
th,td{
  text-align:left;padding:12px 14px;
  border-bottom:1px solid var(--carbon);
}
th{
  color:var(--ash);font-weight:500;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;text-transform:uppercase;letter-spacing:0.06em;
}
tr:last-child td{border-bottom:none;}
code,pre{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px;}
code{color:var(--gold);}
pre{
  background:var(--void);border:1px solid var(--carbon);
  padding:14px 16px;border-radius:8px;overflow-x:auto;margin:0.75rem 0 0;
  color:var(--cream);
}

/* Doc link cards */
.doc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.doc-list li{
  border:1px solid var(--carbon);border-radius:10px;
  padding:14px 16px;background:var(--void);
  transition:border-color .2s ease;
  opacity:1;
}
.doc-list li:hover{border-color:rgba(201,168,76,0.4);}
.doc-list a{font-weight:600;color:var(--cream);display:block;margin-bottom:4px;}
.doc-list a:hover{color:var(--orange);}
.doc-list span{font-size:13px;color:var(--ash);}

/* CTAs */
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 0;padding-left:0;}
.page-hero + .cta-row,
.page-hero .cta-row{padding-left:16px;margin-top:8px;}
.cta-link{
  border:1px solid var(--carbon);padding:10px 16px;border-radius:8px;
  color:var(--cream);font-size:12px;text-transform:uppercase;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  transition:border-color .2s ease, color .2s ease;
}
.cta-link:hover{border-color:var(--orange);color:var(--orange);}

/* FAQ accordion on subpage */
.faq-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:4px;
}
details.faq-item{
  border:1px solid var(--carbon);
  border-radius:10px;
  background:rgba(21,21,21,0.72);
  overflow:hidden;
  height:fit-content;
}
details.faq-item[open]{border-color:rgba(201,168,76,0.35);}
details.faq-item summary{
  list-style:none;cursor:pointer;
  padding:14px 16px;
  font-size:14px;font-weight:600;color:var(--cream);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
details.faq-item summary::-webkit-details-marker{display:none;}
details.faq-item summary::after{
  content:'+';
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  color:var(--gold);font-size:18px;flex-shrink:0;
}
details.faq-item[open] summary::after{content:'-';}
details.faq-item .faq-a{
  padding:0 16px 14px;
  font-size:14px;line-height:1.55;color:var(--cream);opacity:0.9;
}
@media (max-width:900px){
  main.page:not(.page-blog){grid-template-columns:1fr;}
  .faq-list{grid-template-columns:1fr;}
}

/* Footer */
footer.site-footer{
  border-top:1px solid var(--carbon);
  padding:22px 8vw 40px;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;
  color:var(--ash);font-size:11px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
}
footer.site-footer a{color:var(--ash);margin-left:14px;}
footer.site-footer a:first-child{margin-left:0;}
footer.site-footer a:hover{color:var(--cream);}
footer.site-footer .foot-links{display:flex;flex-wrap:wrap;gap:8px 0;}

.meta-note{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;color:var(--ash);margin-top:2rem;
}

/* Blog index */
.page-blog{max-width:1240px;}
.page-blog-index .page-hero{
  grid-template-columns:1fr;
  padding-bottom:4px;
}
.page-blog-index .page-hero > h1,
.page-blog-index .page-hero > .lead{grid-column:1;padding-left:16px;max-width:40rem;}
.blog-filters{
  display:flex;flex-wrap:wrap;gap:8px;
  margin:4px 0 8px;padding-left:0;
}
button.blog-filter{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;text-transform:uppercase;letter-spacing:0.06em;
  color:var(--ash);padding:8px 14px;border-radius:999px;
  border:1px solid var(--carbon);background:transparent;
  cursor:pointer;transition:border-color .2s ease, color .2s ease, background .2s ease;
}
button.blog-filter:hover{color:var(--cream);border-color:rgba(201,168,76,0.35);}
button.blog-filter.is-on{
  color:var(--cream);border-color:rgba(201,168,76,0.55);
  background:rgba(201,168,76,0.1);
  box-shadow:0 0 0 1px rgba(201,168,76,0.12);
}
.blog-filter-status{
  font-size:11px;color:var(--ash);margin:0 0 14px;
  text-transform:uppercase;letter-spacing:0.06em;
}
.blog-empty{
  font-size:12px;color:var(--ash);margin:12px 0 24px;
  text-transform:uppercase;letter-spacing:0.06em;
}
.blog-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.blog-card{
  display:block;
  border:1px solid var(--carbon);
  border-radius:14px;
  padding:20px 22px;
  background:rgba(21,21,21,0.72);
  transition:border-color .2s ease, transform .2s ease;
  color:inherit;text-decoration:none;
}
a.blog-card:hover{border-color:rgba(201,168,76,0.45);transform:translateY(-2px);}
a.blog-card:hover .blog-card-title{color:var(--orange);}
a.blog-card:hover .blog-card-cta{color:var(--orange);}
.blog-card--visual{
  padding:0;overflow:hidden;
  display:flex;flex-direction:column;
}
/* Must come after display:flex on .blog-card--visual or filters never hide cards */
.blog-card.is-hidden,
.blog-card--visual.is-hidden,
.blog-card[hidden],
.blog-card--visual[hidden]{
  display:none !important;
}
.blog-card-media{
  position:relative;
  aspect-ratio:16 / 9;
  background:
    radial-gradient(ellipse 70% 60% at 70% 30%, rgba(247,147,26,0.18), transparent 60%),
    var(--obsidian);
  overflow:hidden;
}
.blog-card-media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .35s ease;
}
a.blog-card:hover .blog-card-media img{transform:scale(1.03);}
.blog-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1;}
.blog-card.is-soon{opacity:0.72;cursor:default;}
.blog-card-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  margin-bottom:8px;font-size:11px;color:var(--ash);
  text-transform:uppercase;letter-spacing:0.06em;
}
.blog-tag{
  color:var(--gold);
  border:1px solid rgba(201,168,76,0.35);
  padding:2px 8px;border-radius:4px;
}
.blog-status{color:var(--ash);}
.blog-card-title{
  font-size:1.02rem;font-weight:700;letter-spacing:-0.01em;
  color:var(--cream);margin:0 0 6px;line-height:1.25;
  transition:color .2s ease;
}
.blog-card-excerpt{
  font-size:13px;line-height:1.45;color:var(--ash);margin:0 0 12px;
  flex:1;
}
.blog-card-cta{
  font-size:11px;text-transform:uppercase;letter-spacing:0.08em;
  color:var(--gold);transition:color .2s ease;
}
.blog-band{
  margin-top:22px;
  padding:20px 22px;
  border:1px solid var(--carbon);
  border-radius:14px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:16px 24px;
  align-items:center;
  background:
    radial-gradient(ellipse 80% 80% at 100% 0%, rgba(247,147,26,0.1), transparent 55%),
    rgba(21,21,21,0.85);
}
.blog-band h2{
  font-size:1.2rem;font-weight:700;letter-spacing:-0.02em;
  margin:0 0 4px;color:var(--cream);
}
.blog-band p{margin:0;color:var(--ash);font-size:14px;}
.blog-band .cta-row{margin-top:0;}
.post-hero-media{
  margin:0 0 12px;
  border-radius:12px;overflow:hidden;
  border:1px solid var(--carbon);
  aspect-ratio:21 / 9;
  max-height:280px;
  background:var(--obsidian);
}
.post-hero-media img{width:100%;height:100%;object-fit:cover;display:block;}
.blog-inline-cta{
  margin-top:0;
  padding:18px 18px;
  border:1px solid rgba(201,168,76,0.28);
  border-radius:12px;
  background:rgba(201,168,76,0.06);
  grid-column:1 / -1;
}
.blog-inline-cta h2{margin:0 0 6px;font-size:1.02rem;}
.blog-inline-cta p{margin:0 0 12px;font-size:14px;color:var(--ash);}
.blog-inline-cta .cta-row{margin-top:0;}

/* Blog post: wide board, 2-col body */
.post{display:block;}
.post-header.page-hero{
  padding-bottom:8px;margin-bottom:0;
  grid-template-columns:1fr;
}
.post-header.page-hero > h1{grid-column:1;padding-left:16px;}
.post-header.page-hero > .lead{grid-column:1;padding-left:16px;max-width:48rem;}
.post-header .eyebrow{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  grid-column:1;
}
.post-back{color:var(--ash);}
.post-back:hover{color:var(--orange);}
.post-sep{color:var(--ash);opacity:0.45;user-select:none;}
.post-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin-top:10px;padding-left:16px;
  font-size:11px;color:var(--ash);text-transform:uppercase;letter-spacing:0.06em;
  grid-column:1;
}
.post-body{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:4px;
}
.post-body .page-section{margin-top:0;}
.post-body .page-section strong{color:var(--cream);font-weight:600;}
.post-body .page-section a{border-bottom:1px solid rgba(201,168,76,0.35);}
.post-body .page-section a:hover{border-bottom-color:var(--orange);}
.post-body .page-section ol{padding-left:1.25rem;margin:0 0 0.5rem;}
.post-body .page-section ol li{margin-bottom:0.45rem;}
.post-body .page-section ol ul{margin-top:0.35rem;margin-bottom:0.2rem;}
/* Full-width blocks inside post body */
.post-body .page-section:has(.faq-list),
.post-body .page-section:has(.doc-list),
.post-body .page-section:has(table),
.post-body .blog-inline-cta{
  grid-column:1 / -1;
}
.post-body .faq-list{grid-template-columns:repeat(2, minmax(0, 1fr));}
.post-footer{margin-top:12px;}
.post-footer .meta-note{padding-left:0;line-height:1.55;margin-top:10px;}
.page-blog .page-section table{font-size:13px;}
.page-blog .page-section th,
.page-blog .page-section td{padding:10px 12px;vertical-align:top;}
.page-section h2{margin:0 0 8px;font-size:1.05rem;}
.page-section p{margin-bottom:0.65rem;}

@media (max-width:1100px){
  .blog-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
@media (max-width:900px){
  .blog-grid{grid-template-columns:1fr;}
  .post-body{grid-template-columns:1fr;}
  .post-body .faq-list{grid-template-columns:1fr;}
  .blog-band{grid-template-columns:1fr;}
  .post-hero-media{aspect-ratio:16 / 9;max-height:none;}
}
@media (max-width:1100px){
  .related-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
@media (max-width:900px){
  .stat-row{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .related-grid{grid-template-columns:1fr;}
}
@media (max-width:768px){
  button.nav-toggle{display:flex;}
  header.site-header{padding:14px 4vw;position:sticky;}
  nav.site-nav{
    display:none;
    position:fixed;
    inset:0 0 0 0;
    top:0;
    z-index:45;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    padding:72px 6vw 40px;
    background:rgba(10,10,10,0.97);
    backdrop-filter:blur(16px);
    overflow-y:auto;
  }
  .site-header.nav-open nav.site-nav{display:flex;}
  nav.site-nav a{
    display:block;
    font-size:14px;
    padding:14px 0;
    border-bottom:1px solid var(--carbon);
    color:var(--cream);
  }
  nav.site-nav a.nav-cta{
    margin-top:20px;
    text-align:center;
    border:1px solid var(--orange);
    color:var(--orange);
  }
  .page-hero{padding:32px 0 12px;}
  .page-section{padding:16px 14px;}
  .blog-card{padding:16px 16px;}
  .blog-card--visual{padding:0;}
  .blog-card-body{padding:14px;}
  .page-blog .page-section table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .blog-band{padding:18px 16px;}
  footer.site-footer{padding:18px 4vw 32px;}
}


/* Editorial diagrams = primary in-article visual (no AI photo heroes) */
.page-diagram{
  grid-column:1 / -1;
  margin:0;
  padding:16px 16px 12px;
  border:1px solid var(--carbon);
  border-radius:12px;
  background:
    radial-gradient(ellipse 70% 80% at 0% 0%, rgba(247,147,26,0.06), transparent 50%),
    rgba(21,21,21,0.9);
}
.page-diagram img,
.page-diagram object,
.page-diagram svg{
  width:100%;height:auto;display:block;border-radius:8px;
  border:1px solid rgba(30,30,30,0.9);
}
.page-diagram figcaption{
  margin-top:10px;font-size:11px;color:var(--ash);
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  text-transform:uppercase;letter-spacing:0.06em;
}

/* Motion: subtle reveal (site-motion.js). Prefer craft over bounce. */
.js-motion .reveal{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
}
.js-motion .reveal.reveal-in{
  opacity:1;
  transform:none;
}
.js-motion .blog-card.reveal{
  transform:translateY(10px);
}
.reduce-motion .reveal,
.reduce-motion .reveal.reveal-in{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
}

/* Phase B: Lenis root helpers (lenis.css also loaded by site-motion.js) */
html.lenis, html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto !important;}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain;}
.lenis.lenis-stopped{overflow:clip;}

/* Native View Transitions between multi-page navigations (Chromium+) */
@view-transition{
  navigation: auto;
}
::view-transition-old(root),
::view-transition-new(root){
  animation-duration:0.28s;
  animation-timing-function:cubic-bezier(.22,1,.36,1);
}
@media (prefers-reduced-motion: reduce){
  ::view-transition-old(root),
  ::view-transition-new(root){
    animation:none !important;
  }
}

/* Blog index: filter stickiness on long grids */
.page-blog-index .blog-filters{
  position:sticky;
  top:64px;
  z-index:20;
  padding:10px 0 8px;
  margin-bottom:4px;
  background:linear-gradient(180deg, rgba(10,10,10,0.96) 70%, transparent);
}

/* Kill unused AI hero slot styles if any linger */
.post-hero-media{display:none !important;}
