@layer blocks {
  /* Universal block container — every Phase F block carries data-block="core.X". */
  [data-block] { color-scheme: light; }
  [data-block] > * + * { margin-block-start: var(--space-sm); }

  [data-block="core.section"] {
    padding-block: var(--space-2xl);
    container-type: inline-size;
  }
  [data-block="core.section"] > .pa-container,
  [data-block="core.section"] > * {
    max-inline-size: var(--layout-containerMaxWidth, 1200px);
    margin-inline: auto;
    padding-inline: var(--space-md);
  }

  [data-block="core.columns"] {
    display: grid;
    gap: var(--layout-gutter, var(--space-md));
    grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
    container-type: inline-size;
  }

  [data-block="core.grid"], .pa-grid {
    display: grid;
    gap: var(--layout-gutter, var(--space-md));
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    justify-items: stretch;
    container-type: inline-size;
  }
  .pa-grid-cols-1 { grid-template-columns: minmax(0, 1fr); }
  .pa-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pa-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pa-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pa-grid-align-start { align-items: start; }
  .pa-grid-align-center { align-items: center; }
  .pa-grid-align-end { align-items: end; }
  .pa-grid-align-stretch { align-items: stretch; }
  .pa-grid-justify-start { justify-items: start; }
  .pa-grid-justify-center { justify-items: center; }
  .pa-grid-justify-end { justify-items: end; }
  .pa-grid-justify-stretch { justify-items: stretch; }

  [data-block="core.stack"], .pa-stack {
    display: grid;
    gap: var(--space-md);
    align-items: stretch;
  }
  .pa-stack-align-start { justify-items: start; }
  .pa-stack-align-center { justify-items: center; }
  .pa-stack-align-end { justify-items: end; }
  .pa-stack-align-stretch { justify-items: stretch; }
  .pa-stack-mw-narrow { max-inline-size: 48rem; margin-inline: auto; }
  .pa-stack-mw-default { max-inline-size: var(--layout-containerMaxWidth, 1200px); margin-inline: auto; }
  .pa-stack-mw-wide { max-inline-size: 1440px; margin-inline: auto; }
  .pa-stack-mw-full { max-inline-size: none; }
  .pa-stack-pad-sm { padding: var(--space-sm); }
  .pa-stack-pad-md { padding: var(--space-md); }
  .pa-stack-pad-lg { padding: var(--space-lg); }
  .pa-stack-pad-xl { padding: var(--space-xl); }

  [data-block="core.flex-container"], .pa-flex {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    align-items: center;
    justify-content: flex-start;
  }
  .pa-flex-column { flex-direction: column; }
  .pa-flex-row { flex-direction: row; }
  .pa-flex-nowrap { flex-wrap: nowrap; }
  .pa-flex-align-start { align-items: flex-start; }
  .pa-flex-align-center { align-items: center; }
  .pa-flex-align-end { align-items: flex-end; }
  .pa-flex-align-stretch { align-items: stretch; }
  .pa-flex-justify-start { justify-content: flex-start; }
  .pa-flex-justify-center { justify-content: center; }
  .pa-flex-justify-end { justify-content: flex-end; }
  .pa-flex-justify-between { justify-content: space-between; }
  .pa-flex-justify-around { justify-content: space-around; }
  .pa-flex-justify-evenly { justify-content: space-evenly; }

  [data-block="core.button-group"], .pa-button-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    align-items: center;
  }
  .pa-button-group-align-start { justify-content: flex-start; }
  .pa-button-group-align-center { justify-content: center; }
  .pa-button-group-align-end { justify-content: flex-end; }
  .pa-button-group-align-between { justify-content: space-between; }

  .pa-gap-sm { gap: var(--space-sm); }
  .pa-gap-md { gap: var(--space-md); }
  .pa-gap-lg { gap: var(--space-lg); }
  .pa-gap-xl { gap: var(--space-xl); }

  [data-block="core.spacer"] { display: block; block-size: var(--space-md); }
  [data-block="core.spacer"].pa-spacer-xs { block-size: var(--space-xs); }
  [data-block="core.spacer"].pa-spacer-sm { block-size: var(--space-sm); }
  [data-block="core.spacer"].pa-spacer-md { block-size: var(--space-md); }
  [data-block="core.spacer"].pa-spacer-lg { block-size: var(--space-2xl); }
  [data-block="core.spacer"].pa-spacer-xl { block-size: var(--space-3xl); }
  [data-block="core.spacer"].pa-divider {
    block-size: auto;
    display: flex;
    justify-content: center;
    padding-block: var(--space-md);
  }
  .pa-divider span { display: block; inline-size: 100%; }
  .pa-divider-short span { inline-size: min(12rem, 100%); }
  .pa-divider-medium span { inline-size: min(32rem, 100%); }

  [data-block="core.tabs"], .pa-tabs {
    display: grid;
    gap: var(--space-md);
  }
  .pa-tabs-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
  }
  .pa-tabs-align-center .pa-tabs-list { justify-content: center; }
  .pa-tabs-align-stretch .pa-tabs-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
  .pa-tab-button {
    min-block-size: 40px;
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    background: var(--color-surface-page, #fff);
    color: var(--color-text-default, #1a202c);
    font: inherit;
    font-weight: var(--font-weight-medium, 500);
    padding: var(--space-xs) var(--space-md);
    cursor: pointer;
  }
  .pa-tabs-pills .pa-tab-button { border-radius: 999px; }
  .pa-tabs-underline .pa-tab-button {
    border-color: transparent;
    border-bottom-color: var(--color-border-default, #e2e8f0);
    border-radius: 0;
    background: transparent;
  }
  .pa-tab-button[aria-selected="true"], .pa-tab-active {
    border-color: var(--color-brand-primary, #2b6cb0);
    background: var(--color-brand-primary, #2b6cb0);
    color: var(--color-on-brand-primary, #fff);
  }
  .pa-tabs-underline .pa-tab-button[aria-selected="true"], .pa-tabs-underline .pa-tab-active {
    background: transparent;
    color: var(--color-brand-primary, #2b6cb0);
  }
  .pa-tabs-panels {
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md);
  }

  @container (max-width: 42em) {
    [data-block="core.grid"], .pa-grid { grid-template-columns: minmax(0, 1fr); }
    [data-block="core.flex-container"], .pa-flex { flex-direction: column; align-items: stretch; }
    [data-block="core.button-group"], .pa-button-group { flex-direction: column; align-items: stretch; }
  }

  [data-block="core.hero"] {
    padding-block: var(--space-3xl);
    padding-inline: var(--space-md);
    text-align: center;
    background: var(--color-surface-card, transparent);
    color: var(--color-text-default, inherit);
    container-type: inline-size;
    background-size: cover;
    background-position: center;
  }
  [data-block="core.hero"] h1 {
    font-size: var(--type-step-6);
    margin-block-end: var(--space-md);
    max-inline-size: 24ch;
    margin-inline: auto;
  }
  [data-block="core.hero"] p {
    max-inline-size: 50ch;
    margin: 0 auto var(--space-lg);
    color: var(--color-text-muted, inherit);
    font-size: var(--type-step-1);
  }
  @container (max-width: 30em) {
    [data-block="core.hero"] { padding-block: var(--space-2xl); }
    [data-block="core.hero"] h1 { font-size: var(--type-step-4); }
  }

  [data-block="core.heading"] { font-family: var(--font-heading, inherit); }
  [data-block="core.heading"].pa-align-left   { text-align: left; }
  [data-block="core.heading"].pa-align-center { text-align: center; }
  [data-block="core.heading"].pa-align-right  { text-align: right; }

  [data-block="core.text"] {
    max-inline-size: var(--measure);
    line-height: var(--leading-normal);
  }
  [data-block="core.text"].pa-align-center { margin-inline: auto; text-align: center; }
  [data-block="core.text"].pa-align-right  { text-align: right; }

  [data-block="core.image"] { margin-inline: auto; max-inline-size: 100%; }
  [data-block="core.image"] img {
    inline-size: 100%;
    block-size: auto;
    border-radius: var(--radius-md, 8px);
    box-shadow: var(--shadow-sm);
  }
  [data-block="core.image"] figcaption {
    margin-block-start: var(--space-xs);
    font-size: var(--type-step--1);
    color: var(--color-text-muted, #718096);
    text-align: center;
  }

  [data-block="core.icon"], .pa-icon {
    display: flex;
  }
  .pa-align-left { justify-content: flex-start; text-align: left; }
  .pa-align-center { justify-content: center; text-align: center; }
  .pa-align-right { justify-content: flex-end; text-align: right; }
  .pa-icon span {
    align-items: center;
    background: var(--pa-icon-bg, var(--color-surface-muted, #f1f5f9));
    color: var(--pa-icon-color, var(--color-text-default, #1a202c));
    display: inline-flex;
    font-weight: var(--font-weight-bold, 700);
    justify-content: center;
  }
  .pa-icon-sm span { block-size: 2.125rem; inline-size: 2.125rem; }
  .pa-icon-md span { block-size: 3rem; inline-size: 3rem; }
  .pa-icon-lg span { block-size: 4rem; inline-size: 4rem; font-size: 1.25rem; }
  .pa-icon-xl span { block-size: 5.25rem; inline-size: 5.25rem; font-size: 1.5rem; }
  .pa-icon-circle span { border-radius: 999px; }
  .pa-icon-square span { border-radius: var(--radius-md, 8px); }
  .pa-icon-none span { background: transparent; }

  [data-block="core.icon-list"], .pa-icon-list {
    display: grid;
    gap: var(--space-md);
  }
  .pa-icon-list h2 { margin: 0; }
  .pa-icon-list ul {
    display: grid;
    gap: var(--space-sm);
    grid-template-columns: repeat(var(--pa-icon-list-cols, 3), minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .pa-icon-list-1 { --pa-icon-list-cols: 1; }
  .pa-icon-list-2 { --pa-icon-list-cols: 2; }
  .pa-icon-list-3 { --pa-icon-list-cols: 3; }
  .pa-icon-list-4 { --pa-icon-list-cols: 4; }
  .pa-icon-list li {
    background: var(--pa-icon-item-bg, var(--color-surface-muted, #f8fafc));
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    display: grid;
    gap: var(--space-sm);
    grid-template-columns: auto minmax(0, 1fr);
    padding: var(--space-md);
  }
  .pa-icon-list li > span {
    align-items: center;
    background: var(--color-surface-page, #fff);
    border-radius: 999px;
    color: var(--pa-icon-color, var(--color-text-default, #1a202c));
    display: inline-flex;
    font-weight: var(--font-weight-bold, 700);
    justify-content: center;
    block-size: 2.125rem;
    inline-size: 2.125rem;
  }
  .pa-icon-list p { color: var(--color-text-muted, #718096); margin: var(--space-2xs) 0 0; }

  [data-block="core.quote"], .pa-quote {
    display: grid;
    gap: var(--space-sm);
    margin: 0;
  }
  .pa-quote-card, .pa-quote-pullquote {
    background: var(--color-surface-card, #fff);
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-lg, 12px);
    padding: var(--space-lg);
  }
  .pa-quote-pullquote { border-inline-start: 6px solid var(--color-brand-primary, #2b6cb0); }
  .pa-quote blockquote {
    font-family: var(--font-heading, inherit);
    font-size: var(--type-step-3);
    line-height: var(--leading-tight);
    margin: 0;
  }
  .pa-quote figcaption {
    color: var(--color-text-muted, #718096);
    display: grid;
    gap: var(--space-2xs);
  }
  .pa-quote figcaption strong { color: var(--color-text-default, #1a202c); }

  [data-block="core.table"], .pa-table {
    display: grid;
    gap: var(--space-md);
  }
  .pa-table h2 { margin: 0; }
  .pa-table > div {
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    overflow-x: auto;
  }
  .pa-table table { border-collapse: collapse; min-inline-size: 36rem; inline-size: 100%; }
  .pa-table th, .pa-table td {
    border-block-start: 1px solid var(--color-border-default, #e2e8f0);
    padding: var(--space-sm) var(--space-md);
    text-align: left;
  }
  .pa-table th {
    background: var(--color-surface-muted, #f8fafc);
    border-block-start: 0;
    font-weight: var(--font-weight-bold, 700);
  }
  .pa-table-striped tbody tr:nth-child(even) { background: var(--color-surface-muted, #f8fafc); }
  .pa-table-compact th, .pa-table-compact td { padding: var(--space-xs) var(--space-sm); }

  [data-block="core.before-after"], .pa-before-after {
    display: grid;
    gap: var(--space-sm);
    margin: 0;
  }
  .pa-before-after > div {
    display: grid;
    gap: var(--space-sm);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pa-before-after article {
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
    position: relative;
  }
  .pa-before-after article > span {
    background: var(--color-text-default, #1a202c);
    border-radius: 999px;
    color: var(--color-surface-page, #fff);
    font-size: var(--type-step--1);
    font-weight: var(--font-weight-bold, 700);
    inset-block-start: var(--space-sm);
    inset-inline-start: var(--space-sm);
    padding: var(--space-2xs) var(--space-xs);
    position: absolute;
    z-index: 1;
  }
  .pa-before-after img, .pa-before-after-placeholder {
    aspect-ratio: 16 / 10;
    block-size: auto;
    display: block;
    inline-size: 100%;
    object-fit: cover;
  }
  .pa-before-after-square img, .pa-before-after-square .pa-before-after-placeholder { aspect-ratio: 1 / 1; }
  .pa-before-after-portrait img, .pa-before-after-portrait .pa-before-after-placeholder { aspect-ratio: 3 / 4; }
  .pa-before-after-placeholder {
    align-items: center;
    background: var(--color-surface-muted, #f1f5f9);
    color: var(--color-text-muted, #718096);
    display: flex;
    font-weight: var(--font-weight-bold, 700);
    justify-content: center;
  }
  .pa-before-after figcaption { color: var(--color-text-muted, #718096); font-size: var(--type-step--1); }

  [data-block="core.progress-bar"], .pa-progress {
    display: grid;
    gap: var(--space-xs);
  }
  .pa-progress > div:first-child {
    align-items: center;
    display: flex;
    justify-content: space-between;
  }
  .pa-progress strong { color: var(--color-text-muted, #718096); }
  .pa-progress-track {
    background: var(--pa-progress-track, var(--color-border-default, #e2e8f0));
    border-radius: 999px;
    block-size: .75rem;
    overflow: hidden;
  }
  .pa-progress-track span {
    background: var(--pa-progress-fill, var(--color-brand-primary, #2b6cb0));
    block-size: 100%;
    display: block;
  }

  [data-block="core.copy-button"], .pa-copy-button {
    align-items: center;
    display: flex;
    gap: var(--space-xs);
  }
  .pa-copy-status {
    color: var(--color-text-muted, #718096);
    font-size: var(--type-step--1);
    font-weight: var(--font-weight-medium, 500);
  }

  [data-block="core.modal"], .pa-modal-block {
    display: grid;
    gap: var(--space-sm);
  }
  .pa-modal {
    align-items: center;
    display: grid;
    inset: 0;
    justify-items: center;
    padding: var(--space-md);
    position: fixed;
    z-index: 9999;
  }
  .pa-modal[hidden] { display: none; }
  .pa-modal-backdrop {
    background: rgba(15, 23, 42, .62);
    inset: 0;
    position: fixed;
  }
  .pa-modal-panel {
    background: var(--color-surface-page, #fff);
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-lg, 12px);
    box-shadow: 0 24px 80px rgba(15, 23, 42, .28);
    display: grid;
    gap: var(--space-md);
    inline-size: min(var(--pa-modal-width, 38rem), calc(100vw - 2rem));
    max-block-size: min(82vh, 48rem);
    overflow: auto;
    padding: var(--space-lg);
    position: relative;
    z-index: 1;
  }
  .pa-modal-sm { --pa-modal-width: 28rem; }
  .pa-modal-md { --pa-modal-width: 42rem; }
  .pa-modal-lg { --pa-modal-width: 58rem; }
  .pa-modal-close {
    justify-self: end;
    min-block-size: 36px;
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: 999px;
    background: var(--color-surface-muted, #f8fafc);
    color: var(--color-text-default, #1a202c);
    font: inherit;
    font-weight: var(--font-weight-medium, 500);
    padding: 0 var(--space-sm);
  }
  body.pa-modal-open { overflow: hidden; }

  [data-block="core.filter-controls"], [data-block="core.sort-controls"], .pa-list-control {
    display: grid;
    gap: var(--space-xs);
  }
  .pa-list-control > span {
    color: var(--color-text-muted, #718096);
    font-size: var(--type-step--1);
    font-weight: var(--font-weight-bold, 700);
    text-transform: uppercase;
  }
  .pa-list-control-buttons > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
  }
  .pa-list-control button {
    min-block-size: 38px;
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: 999px;
    background: var(--color-surface-page, #fff);
    color: var(--color-text-default, #1a202c);
    font: inherit;
    font-weight: var(--font-weight-medium, 500);
    padding: 0 var(--space-sm);
  }
  .pa-list-control button[aria-pressed="true"] {
    border-color: var(--color-brand-primary, #2b6cb0);
    background: var(--color-brand-primary, #2b6cb0);
    color: var(--color-on-brand-primary, #fff);
  }
  .pa-list-control select {
    min-block-size: 42px;
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    background: var(--color-surface-page, #fff);
    color: var(--color-text-default, #1a202c);
    font: inherit;
    padding: 0 var(--space-sm);
  }

  [data-block="core.stepper"], .pa-stepper {
    display: grid;
    gap: var(--space-md);
  }
  .pa-step-markers {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
  }
  .pa-step-markers button {
    align-items: center;
    display: inline-flex;
    gap: var(--space-2xs);
    min-block-size: 40px;
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: 999px;
    background: var(--color-surface-page, #fff);
    color: var(--color-text-default, #1a202c);
    font: inherit;
    font-weight: var(--font-weight-medium, 500);
    padding: 0 var(--space-sm);
  }
  .pa-step-markers button[aria-selected="true"] {
    border-color: var(--color-brand-primary, #2b6cb0);
    background: var(--color-brand-primary, #2b6cb0);
    color: var(--color-on-brand-primary, #fff);
  }
  .pa-step-markers button span {
    align-items: center;
    background: rgba(255, 255, 255, .18);
    border-radius: 999px;
    display: inline-flex;
    font-size: var(--type-step--1);
    justify-content: center;
    min-block-size: 1.35rem;
    min-inline-size: 1.35rem;
  }
  .pa-step-panel {
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-lg, 12px);
    padding: var(--space-md);
  }
  .pa-step-panel[hidden] { display: none; }
  .pa-step-controls {
    display: flex;
    gap: var(--space-xs);
    justify-content: space-between;
  }
  .pa-step-controls button {
    min-block-size: 40px;
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    background: var(--color-surface-page, #fff);
    color: var(--color-text-default, #1a202c);
    font: inherit;
    font-weight: var(--font-weight-medium, 500);
    padding: 0 var(--space-md);
  }
  .pa-step-controls button:disabled { opacity: .45; cursor: not-allowed; }

  [data-block="core.sticky-section-nav"], .pa-sticky-nav {
    align-items: center;
    background: color-mix(in srgb, var(--color-surface-page, #fff) 94%, transparent);
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-lg, 12px);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    padding: var(--space-xs);
    z-index: 50;
  }
  .pa-sticky-nav-top {
    position: sticky;
    top: var(--space-sm);
    backdrop-filter: blur(12px);
  }
  .pa-sticky-nav > span {
    color: var(--color-text-muted, #718096);
    font-size: var(--type-step--1);
    font-weight: var(--font-weight-bold, 700);
    padding-inline: var(--space-xs);
    text-transform: uppercase;
  }
  .pa-sticky-nav > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xs);
  }
  .pa-sticky-nav a {
    border-radius: 999px;
    color: var(--color-text-default, #1a202c);
    font-weight: var(--font-weight-medium, 500);
    padding: var(--space-2xs) var(--space-sm);
    text-decoration: none;
  }
  .pa-sticky-nav-underline a { border-radius: 0; border-bottom: 2px solid transparent; }
  .pa-sticky-nav a:hover, .pa-sticky-nav a.pa-nav-active, .pa-sticky-nav a[aria-current="location"] {
    background: var(--color-brand-primary, #2b6cb0);
    color: var(--color-on-brand-primary, #fff);
  }
  .pa-sticky-nav-underline a:hover, .pa-sticky-nav-underline a.pa-nav-active, .pa-sticky-nav-underline a[aria-current="location"] {
    background: transparent;
    border-bottom-color: var(--color-brand-primary, #2b6cb0);
    color: var(--color-brand-primary, #2b6cb0);
  }

  @container (max-width: 42em) {
    .pa-icon-list ul, .pa-before-after > div { grid-template-columns: minmax(0, 1fr); }
    .pa-step-controls { flex-direction: column; }
  }

  [data-block="core.button"], a.pa-btn, button.pa-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2xs);
    min-block-size: 44px;
    padding: var(--space-xs) var(--space-lg);
    border-radius: var(--radius-md, 8px);
    border: 1px solid transparent;
    font-weight: var(--font-weight-medium, 500);
    text-decoration: none;
    cursor: pointer;
    transition: background var(--motion-duration-fast) var(--motion-ease-out),
                color var(--motion-duration-fast) var(--motion-ease-out),
                box-shadow var(--motion-duration-fast) var(--motion-ease-out),
                transform var(--motion-duration-fast) var(--motion-ease-out);
  }
  .pa-btn-primary, [data-block="core.button"].pa-btn-primary {
    background: var(--color-brand-primary, #2b6cb0);
    color: var(--color-on-brand-primary, #fff);
  }
  .pa-btn-primary:hover { background: var(--color-brand-primary-hover, var(--color-brand-primary)); }
  .pa-btn-primary:active { background: var(--color-brand-primary-active, var(--color-brand-primary)); transform: translateY(1px); }
  .pa-btn-secondary, [data-block="core.button"].pa-btn-secondary {
    background: transparent;
    border-color: var(--color-brand-primary, #2b6cb0);
    color: var(--color-brand-primary, #2b6cb0);
  }
  .pa-btn-secondary:hover { background: var(--color-brand-primary, #2b6cb0); color: var(--color-on-brand-primary, #fff); }
  .pa-btn[disabled], .pa-btn[aria-disabled="true"] {
    opacity: var(--opacity-disabled, 0.5);
    cursor: not-allowed;
  }

  [data-block="core.embed"] {
    aspect-ratio: 16 / 9;
    inline-size: 100%;
    background: var(--color-surface-muted, #edf2f7);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
  }
  [data-block="core.embed"] iframe { inline-size: 100%; block-size: 100%; border: 0; }

  [data-block="core.content-list"] {
    display: grid;
    gap: var(--space-lg);
    grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
    container-type: inline-size;
  }

  [data-block="core.form"] {
    display: block;
    max-inline-size: var(--measure);
  }

  [data-block="core.search"], [data-block="core.login"] {
    display: block;
    max-inline-size: 32rem;
    margin-inline: auto;
  }

  /* core.text content gets prose treatment. */
  [data-block="core.text"] { font-family: var(--font-body, inherit); }

  /* ── Forms & interactive baseline (Phase D) ── */
  .pz-button {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
    min-block-size: 44px;
    padding: var(--space-xs) var(--space-lg);
    border-radius: var(--radius-md, 8px);
    border: 1px solid transparent;
    font: inherit; font-weight: var(--font-weight-medium, 500);
    cursor: pointer;
    transition: background var(--motion-duration-fast) var(--motion-ease-out),
                color var(--motion-duration-fast) var(--motion-ease-out),
                border-color var(--motion-duration-fast) var(--motion-ease-out);
  }
  .pz-button--primary { background: var(--color-brand-primary, #2b6cb0); color: var(--color-on-brand-primary, #fff); }
  .pz-button--primary:hover  { background: var(--color-brand-primary-hover, var(--color-brand-primary)); }
  .pz-button--primary:active { background: var(--color-brand-primary-active, var(--color-brand-primary)); }
  .pz-button--secondary { background: var(--color-surface-card, #f7fafc); color: var(--color-text-default, #1a202c); border-color: var(--color-border-default, #e2e8f0); }
  .pz-button--secondary:hover { background: var(--color-surface-muted, #edf2f7); }
  .pz-button--ghost { background: transparent; color: var(--color-brand-primary, #2b6cb0); }
  .pz-button--ghost:hover { background: var(--color-surface-muted, #edf2f7); }
  .pz-button[disabled], .pz-button[aria-disabled="true"] { opacity: var(--opacity-disabled, 0.5); cursor: not-allowed; }

  .pz-input, .pz-select, .pz-textarea {
    display: block;
    inline-size: 100%;
    min-block-size: 44px;
    padding: var(--space-xs) var(--space-sm);
    border: 1px solid var(--color-border-default, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    background: var(--color-surface-page, #fff);
    color: var(--color-text-default, #1a202c);
    font: inherit;
    line-height: var(--leading-snug);
    transition: border-color var(--motion-duration-fast) var(--motion-ease-out),
                box-shadow var(--motion-duration-fast) var(--motion-ease-out);
  }
  .pz-textarea { min-block-size: 6em; resize: vertical; }
  .pz-input:focus-visible, .pz-select:focus-visible, .pz-textarea:focus-visible {
    border-color: var(--color-border-focus, var(--color-brand-primary, #3b82f6));
    box-shadow: 0 0 0 3px var(--color-brand-primary-focus-ring, rgba(43,108,176,0.3));
    outline: none;
  }
  .pz-input[aria-invalid="true"], .pz-select[aria-invalid="true"], .pz-textarea[aria-invalid="true"] {
    border-color: var(--color-semantic-danger, #e53e3e);
  }

  .pz-checkbox, .pz-radio { inline-size: 1.15em; block-size: 1.15em; accent-color: var(--color-brand-primary, #2b6cb0); }

  .pz-switch {
    --switch-w: 2.4em; --switch-h: 1.4em;
    position: relative;
    inline-size: var(--switch-w);
    block-size: var(--switch-h);
    background: var(--color-border-default, #e2e8f0);
    border-radius: 999px;
    appearance: none;
    cursor: pointer;
    transition: background var(--motion-duration-fast) var(--motion-ease-out);
  }
  .pz-switch::before {
    content: "";
    position: absolute;
    inset: 2px auto 2px 2px;
    inline-size: calc(var(--switch-h) - 4px);
    background: #fff;
    border-radius: 999px;
    transition: transform var(--motion-duration-fast) var(--motion-ease-out);
  }
  .pz-switch:checked { background: var(--color-brand-primary, #2b6cb0); }
  .pz-switch:checked::before { transform: translateX(calc(var(--switch-w) - var(--switch-h))); }

  .pz-link {
    color: var(--color-text-link, var(--color-brand-primary, #2b6cb0));
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }
  .pz-link:hover { color: var(--color-text-linkHover, var(--color-brand-primary, #2b6cb0)); }

  /* Container-query helpers for blocks. */
  [data-block] { container-type: inline-size; }
}