/*
 * Portal navigation and Visual Review styles deliberately live in a small
 * independent stylesheet. Safari can stop applying late rules in the large
 * framework stylesheet; loading this surface separately keeps the public
 * navigation, status line, and evidence catalog intact across browsers.
 */
.docs-primary-nav{display:flex;align-items:center;gap:.2rem;margin-inline:auto}.docs-primary-nav a{padding:.55rem .65rem;border-radius:.5rem;color:var(--foundry-text-muted);font-size:.74rem;font-weight:720;text-decoration:none}.docs-primary-nav a:hover,.docs-primary-nav a[aria-current=page]{background:var(--foundry-surface-soft);color:var(--foundry-text)}.docs-primary-nav a[aria-current=page]{box-shadow:inset 0 -2px var(--foundry-brand-accent)}.docs-global-menu{display:none;position:relative}.docs-global-menu summary{list-style:none}.docs-global-menu summary::-webkit-details-marker{display:none}.docs-global-menu nav{position:absolute;z-index:120;top:calc(100% + .5rem);left:0;display:grid;width:13rem;padding:.45rem;border:1px solid var(--foundry-border);border-radius:.75rem;background:var(--foundry-surface);box-shadow:var(--foundry-shadow-md)}.docs-global-menu nav a{padding:.68rem .75rem;border-radius:.5rem;color:var(--foundry-text-muted);font-size:.78rem;font-weight:700;text-decoration:none}.docs-global-menu nav a:hover{background:var(--foundry-surface-soft);color:var(--foundry-text)}

.docs-status-line{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.25rem;padding-inline:max(1rem,calc((100vw - var(--docs-shell))/2 + 1.25rem));border-bottom:1px solid var(--foundry-border);background:var(--foundry-bg);color:var(--foundry-text-muted);font-size:.68rem}.docs-status-line>div{display:flex;align-items:center;min-width:0;min-height:2.25rem}.docs-status-line>div>span{white-space:nowrap}.docs-status-line>div>span+span:before{content:"·";margin-inline:.55rem;color:var(--foundry-border-strong)}.docs-status-line__state{color:var(--foundry-text);font-weight:800}.docs-status-line__state i{display:inline-block;width:.48rem;height:.48rem;margin-right:.42rem;border-radius:50%;background:var(--foundry-brand-accent);box-shadow:0 0 0 .2rem var(--foundry-brand-soft)}.docs-status-line--preview{border-color:var(--foundry-warning);background:var(--foundry-warning-soft)}.docs-status-line--preview .docs-status-line__state i{background:var(--foundry-warning);box-shadow:0 0 0 .2rem #f1c46626}.docs-status-line code{color:inherit;font-size:.66rem}.docs-status-line>a{flex:none;color:var(--foundry-brand-accent);font-weight:750;text-decoration:none}.docs-status-line>a:hover{text-decoration:underline}

.visual-review{overflow:hidden}.visual-review__shell{width:min(100% - 2.5rem,86rem);margin-inline:auto}.visual-review-hero{position:relative;min-height:32rem;padding:clamp(4rem,10vw,8rem) 0 2rem;overflow:hidden;color:#eef7f2;background:#0b2a20}.visual-review-hero:before{position:absolute;inset:0;z-index:0;content:"";background:radial-gradient(circle at 80% 20%,#62d29e2e,#0000 32%),linear-gradient(128deg,#0000 56%,#ffffff08 56% 57%,#0000 57%)}.visual-review-hero__copy{position:relative;z-index:2;width:min(58rem,74%)}.visual-review-hero .docs-eyebrow{color:#7ed8ae}.visual-review-hero h1{max-width:15ch;margin:.65rem 0 1.25rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,7.4vw,7.2rem);font-weight:500;line-height:.92;letter-spacing:-.06em;text-wrap:balance}.visual-review-hero__lede{max-width:48rem;color:#b9d0c5;font-size:clamp(1rem,1.6vw,1.23rem);line-height:1.65}.visual-review-hero__lede p{margin:0}.visual-review-hero__lede p+p{margin-top:.7rem}.visual-review-hero__composition{position:absolute;top:7%;right:-2%;width:min(39vw,36rem);height:74%;pointer-events:none;opacity:.82}.visual-review-hero__composition span{position:absolute;display:block;width:68%;aspect-ratio:16/10;overflow:hidden;border:1px solid #e2f7ed3d;border-radius:.8rem;background:#20342d;box-shadow:0 22px 54px #020c0857;transform:rotate(3deg)}.visual-review-hero__composition span:first-child{top:0;right:0}.visual-review-hero__composition span:nth-child(2){top:30%;left:0;transform:rotate(-5deg)}.visual-review-hero__composition span:nth-child(3){right:4%;bottom:0;transform:rotate(7deg)}.visual-review-hero__composition img{width:100%;height:100%;object-fit:cover;object-position:top;filter:saturate(.82)}

.visual-review__notice{display:flex;align-items:baseline;gap:.55rem 1rem;width:fit-content;max-width:58rem;margin-top:1.5rem;padding:.82rem 1rem;border:1px solid #f1c4666b;border-radius:.7rem;background:#4a35103d;color:#f8e6bc;font-size:.77rem}.visual-review-metrics{position:relative;z-index:2;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:2rem 0 0;border-block:1px solid #d6efe224}.visual-review-metrics div{display:flex;flex-direction:column-reverse;gap:.25rem;min-width:0;padding:1rem .8rem}.visual-review-metrics div+div{border-left:1px solid #d6efe224}.visual-review-metrics dt{color:#91aa9f;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.visual-review-metrics dd{margin:0;font-family:Georgia,serif;font-size:1.85rem}.visual-review-jump{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.25rem}.visual-review-jump a{padding:.42rem .68rem;border:1px solid #d6efe229;border-radius:99rem;background:#010d0833;color:#cce3d8;font-size:.67rem;font-weight:720;text-decoration:none}.visual-review-jump a:hover{border-color:#7ed8ae;color:#fff}

.visual-review-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding-block:2rem}.visual-review-how>div{display:grid;grid-template-columns:auto 1fr;align-content:start;gap:.25rem .7rem;padding:1rem;border:1px solid var(--foundry-border);border-radius:.8rem;background:var(--foundry-surface)}.visual-review-how span{display:grid;grid-row:span 2;place-items:center;width:1.65rem;height:1.65rem;border-radius:50%;background:var(--foundry-brand-soft);color:var(--foundry-brand-primary);font-size:.7rem;font-weight:850}.visual-review-how strong{font-size:.82rem}.visual-review-how p,.visual-review__section-heading>p{margin:0;color:var(--foundry-text-muted);font-size:.72rem;line-height:1.5}.visual-review-section{padding:clamp(3.5rem,7vw,6.5rem) 0;border-top:1px solid var(--foundry-border);scroll-margin-top:calc(var(--docs-header-height) + 1rem)}.visual-review-section--soft{background:var(--foundry-surface-soft)}.visual-review__section-heading{display:grid;grid-template-columns:minmax(0,.8fr) minmax(18rem,.55fr);align-items:end;gap:2rem;margin-bottom:1.5rem}.visual-review__section-heading h2{max-width:18ch;margin:.35rem 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,5vw,4.4rem);font-weight:500;line-height:.98;letter-spacing:-.05em}.visual-review__section-heading>p{font-size:.85rem;line-height:1.65}.visual-family-grid,.visual-brand-grid,.visual-site-grid,.visual-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.visual-family-grid>article,.visual-brand-grid>article,.visual-site-grid>article,.visual-example-grid>article,.visual-review-detail__section{min-width:0;border:1px solid var(--foundry-border);border-radius:1rem;background:var(--foundry-surface);box-shadow:var(--foundry-shadow-sm)}.visual-family-grid>article,.visual-brand-grid>article,.visual-site-grid>article{display:flex;flex-direction:column;padding:1.15rem}.visual-card__meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--foundry-text-muted);font-size:.61rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.visual-family-grid h3,.visual-brand-grid h3,.visual-site-grid h3,.visual-example-grid h3{margin:.75rem 0 .4rem;font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;font-weight:500;line-height:1.08;letter-spacing:-.025em}.visual-family-grid article>p,.visual-brand-grid article>p,.visual-site-grid article>p,.visual-example-grid article p{color:var(--foundry-text-muted);font-size:.76rem;line-height:1.58}.visual-status{display:inline-flex;align-items:center;width:fit-content;padding:.2rem .42rem;border-radius:99rem;background:var(--foundry-surface-soft);color:var(--foundry-text-muted);font-size:.59rem;font-weight:850;letter-spacing:.045em;text-transform:uppercase}.visual-status--release-ready,.visual-status--pass{background:var(--foundry-brand-soft);color:var(--foundry-brand-primary)}.visual-status--candidate,.visual-status--partial{background:var(--foundry-warning-soft);color:var(--foundry-warning)}.visual-status--fail,.visual-status--invalid,.visual-status--stale,.visual-status--deprecated{background:var(--foundry-danger-soft);color:var(--foundry-danger)}.visual-status--demonstration,.visual-status--unbound,.visual-status--not-run,.visual-status--draft{border:1px solid var(--foundry-border);background:var(--foundry-surface-soft)}

.visual-review-filter{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;margin-bottom:1.1rem;padding:.7rem .85rem;border:1px solid var(--foundry-border);border-radius:.8rem;background:var(--foundry-surface)}.visual-review-filter svg{width:1.1rem;fill:none;stroke:var(--foundry-text-muted);stroke-width:1.8px}.visual-review-filter input{min-width:0;border:0;outline:0;background:transparent;color:var(--foundry-text)}.visual-review-filter output{color:var(--foundry-text-muted);font-size:.7rem}.visual-example-grid>article{display:flex;flex-direction:column;overflow:hidden}.visual-example-grid>article[hidden]{display:none}.visual-card__image{display:block;aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--foundry-border);background:var(--foundry-surface-soft)}.visual-card__image img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .18s}.visual-card__image:hover img{transform:scale(1.025)}.visual-card__body{display:flex;flex:1;flex-direction:column;padding:1rem;border-top:3px solid var(--foundry-brand-soft);background:var(--foundry-surface-soft)}.visual-card__about{margin:0 0 .65rem!important;color:var(--foundry-brand-primary)!important;font-size:.58rem!important;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.visual-card__body .visual-tags{margin-top:auto;padding-top:.5rem}.visual-tags{display:flex;flex-wrap:wrap;gap:.3rem}.visual-tags span{padding:.22rem .42rem;border-radius:99rem;background:var(--foundry-surface);color:var(--foundry-text-muted);font-size:.58rem}.visual-card__action{margin-top:.85rem;color:var(--foundry-brand-accent);font-size:.7rem;font-weight:800;text-decoration:none}.visual-review-source{display:flex;flex-wrap:wrap;gap:.45rem 1rem;padding-block:2.25rem 4rem;color:var(--foundry-text-muted);font-size:.65rem;overflow-wrap:anywhere}.visual-review-source strong{color:var(--foundry-text)}

@media(max-width:80rem){.visual-family-grid,.visual-brand-grid,.visual-site-grid,.visual-example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:62rem){.docs-primary-nav{display:none}.docs-global-menu{display:block}.docs-status-line{padding-inline:1rem}.visual-review-hero__copy{width:min(100%,46rem)}.visual-review-hero__composition{opacity:.3}.visual-review-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-review-metrics div:nth-child(4){border-left:0}.visual-review-how,.visual-review__section-heading{grid-template-columns:1fr}.visual-review__section-heading{align-items:start;gap:.75rem}}@media(max-width:42rem){.docs-status-line{align-items:flex-start;padding-block:.55rem}.docs-status-line>div{flex-wrap:wrap;gap:.25rem 0}.docs-status-line>div>span+span:before{margin-inline:.4rem}.docs-status-line>a{display:none}.visual-review__shell{width:min(100% - 1.25rem,86rem)}.visual-review-hero{padding-top:3.5rem}.visual-review-hero h1{font-size:clamp(2.8rem,15vw,4.35rem)}.visual-review-hero__composition{display:none}.visual-review__notice{display:grid}.visual-review-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-review-metrics div:nth-child(odd){border-left:0}.visual-review-metrics div:nth-child(4){border-left:1px solid #d6efe224}.visual-review-how,.visual-family-grid,.visual-brand-grid,.visual-site-grid,.visual-example-grid{grid-template-columns:1fr}.visual-review__section-heading h2{font-size:2.65rem}.visual-review-filter{grid-template-columns:auto minmax(0,1fr)}.visual-review-filter output{grid-column:1/-1}}

.docs-release-signal {
  border-bottom: 1px solid #dff9ec24;
  background: #0b2a20;
  color: #edf8f2;
}

.docs-release-signal__inner {
  display: flex;
  align-items: center;
  gap: .75rem 1rem;
  width: min(100% - 2.5rem, 72rem);
  min-height: 3.4rem;
  margin-inline: auto;
  padding: .55rem 0;
}

.docs-release-signal__badge {
  flex: none;
  padding: .25rem .42rem;
  border: 1px solid #82dbb0;
  border-radius: 99rem;
  color: #9be7c1;
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.docs-release-signal p {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  min-width: 0;
  margin: 0;
  font-size: .74rem;
}

.docs-release-signal p span { color: #abc7b9; }
.docs-release-signal a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  min-width: 44px;
  min-height: 44px;
  margin-left: auto;
  color: #dff9ec;
  font-size: .7rem;
  font-weight: 820;
  text-decoration: none;
}
.docs-release-signal a:hover { text-decoration: underline; }
.docs-release-signal a:focus-visible { outline: 3px solid #f5c451; outline-offset: 3px; }

@media (max-width: 42rem) {
  .docs-release-signal__inner {
    align-items: flex-start;
    width: min(100% - 1.25rem, 72rem);
    padding: .75rem 0;
  }
  .docs-release-signal p { display: grid; gap: .15rem; line-height: 1.35; }
  .docs-release-signal p span { font-size: .66rem; }
  .docs-release-signal a { align-self: center; font-size: 0; }
  .docs-release-signal a span { font-size: 1rem; }
}

@media (forced-colors: active) {
  .docs-release-signal { border-color: CanvasText; background: Canvas; color: CanvasText; }
  .docs-release-signal__badge { border-color: CanvasText; color: CanvasText; }
  .docs-release-signal p span,
  .docs-release-signal a { color: CanvasText; }
}

/* Keep the decorative hero layers behind readable, interactive homepage copy. */
.docs-site--home .foundry-hero__inner {
  position: relative;
  z-index: 20;
}

.docs-site--home .foundry-hero__overlay {
  pointer-events: none;
}
