/* Final shared public-surface token layer. It owns readable text colours after
   structural rules without changing selector specificity or adding filters. */
:root {
  --public-step-ordinal-aa: #7d2d05;
  --public-helper-aa: #45627d;
  --public-text-orange-aa: #a94308;
  --public-eyebrow-on-illustrated-surface-aa: #fff4d6;
  --public-strong-on-warm-surface-aa: #8e3507;
  --public-role-card-surface-aa: #263f59;
}
.public-demo__step legend span { color: var(--public-text-orange-aa); }
.public-demo__label small { color: var(--public-helper-aa); }
.public-demo__progress li { color: #3d5d7a; }
.public-demo__hero .public-eyebrow { color: var(--public-eyebrow-on-illustrated-surface-aa); }
.public-stage-break__copy > span,
.public-closing .public-eyebrow { color: var(--public-step-ordinal-aa); }
.public-journey__node > span { color: var(--public-eyebrow-on-illustrated-surface-aa); }
.public-role-stage__constellation article {
  background: radial-gradient(circle at 22% 15%, rgb(255 255 255 / .18), transparent 34%),
    linear-gradient(145deg, var(--public-role-card-surface-aa), #1c354e 100%);
}
.public-security-flow b { color: var(--public-strong-on-warm-surface-aa); }
.public-security-section--audit .public-eyebrow { color: var(--public-eyebrow-on-illustrated-surface-aa); }
.visual-artwork { aspect-ratio: 1; min-block-size: var(--artwork-size); }
.public-security-hero__visual {
  contain: paint;
  inline-size: min(100%, calc(100vw - 2.5rem));
  justify-self: center;
  overflow: clip;
}
.public-security-hero__shield .visual-artwork {
  /* The shield is decorative artwork inside a bounded public hero.  Its
     responsive box must stay within the content column (including the
     scrollbar gutter), rather than relying on document-level clipping. */
  --artwork-size: min(13rem, calc(100vw - 7.5rem));
  max-inline-size: 100%;
  min-inline-size: 0;
}
.public-security-hero__shield { inset-inline: 30%; }
.public-security-hero__shield,
.security-orbit,
.security-orbit--two { transform: none; }
.public-security-hero__shield,
.security-orbit--two { animation: none; }

/* The audit-panel ring is deliberately decorative. Paint containment clips it
   at its own semantic component boundary without clipping page content or
   introducing document-level horizontal hiding. */
.public-security-section--audit { contain: paint; }
.public-security-section--audit::after {
  inset-inline-end: 1rem;
  width: min(20rem, calc(100% - 2rem));
}
/* This trust-navigation ring is also decorative; clip only its local paint
   boundary so navigation labels and controls keep their natural overflow. */
.public-security-links { contain: paint; }
/* The pale security-section bloom is an ambient illustration.  Contain it at
   the section so RTL logical placement cannot widen the document. */
.public-security-section--light { contain: paint; }
