main { min-inline-size: var(--aicjm-space-0); }

.gallery-hero,
.component-gallery,
.gallery-index {
  inline-size: min(calc(100% - (var(--aicjm-layout-gutter-mobile) * 2)), var(--aicjm-layout-container-max));
  margin-inline: auto;
}

.gallery-hero {
  padding-block: var(--aicjm-layout-section-space-max);
}

.gallery-hero > p:last-child {
  max-inline-size: 52rem;
  margin-block: var(--aicjm-space-32) var(--aicjm-space-0);
  color: var(--aicjm-text-secondary);
  font-size: var(--aicjm-type-size-lead);
}

.eyebrow,
.component-doc__header p,
.component-doc__header > span {
  margin: var(--aicjm-space-0);
  color: var(--aicjm-action-primary);
  font-size: var(--aicjm-type-size-metadata);
  font-weight: var(--aicjm-type-weight-label);
  letter-spacing: var(--aicjm-type-tracking-heading);
  text-transform: uppercase;
}

.gallery-index {
  display: flex;
  padding-block: var(--aicjm-space-16);
  overflow-x: auto;
  border-block: var(--aicjm-control-border-width) solid var(--aicjm-border-default);
  gap: var(--aicjm-space-8);
}

.gallery-index a,
.preview-nav a,
.preview-filters button,
.preview-tabs button {
  min-block-size: var(--aicjm-control-minimum-height);
  padding-inline: var(--aicjm-spacing-control-inline);
  border: var(--aicjm-control-border-width) solid var(--aicjm-border-default);
  color: var(--aicjm-text-primary);
  background: var(--aicjm-surface-page);
  font: inherit;
  font-size: var(--aicjm-type-size-body-small);
  white-space: nowrap;
}

.gallery-index a { display: inline-flex; align-items: center; text-decoration: none; }

.component-gallery { padding-block: var(--aicjm-layout-section-space-max); }

.component-doc {
  padding-block: var(--aicjm-layout-section-space-min);
  border-bottom: var(--aicjm-control-border-width) solid var(--aicjm-border-default);
  scroll-margin-block-start: var(--aicjm-space-76);
}

.component-doc:first-child { border-top: var(--aicjm-control-border-width) solid var(--aicjm-border-default); }

.component-doc__header {
  display: grid;
  grid-template-columns: auto minmax(var(--aicjm-space-0), 1fr) auto;
  align-items: start;
  gap: var(--aicjm-space-24);
}

.component-doc__header h2 {
  max-inline-size: 60rem;
  margin: var(--aicjm-space-8) var(--aicjm-space-0) var(--aicjm-space-0);
  font-size: clamp(var(--aicjm-type-size-heading-small), 4vw, var(--aicjm-type-size-heading-large));
  letter-spacing: var(--aicjm-type-tracking-heading);
  line-height: var(--aicjm-type-line-height-heading);
}

.component-doc__header a {
  min-block-size: var(--aicjm-control-minimum-height);
  color: var(--aicjm-action-primary);
  font-size: var(--aicjm-type-size-body-small);
}

.component-preview {
  min-inline-size: var(--aicjm-space-0);
  margin-block-start: var(--aicjm-space-32);
  padding: var(--aicjm-component-card-padding-desktop);
  overflow: hidden;
  border: var(--aicjm-component-card-border-width) solid var(--aicjm-component-card-border);
  background: var(--aicjm-surface-subtle);
}

.component-rules {
  display: grid;
  grid-template-columns: repeat(3, minmax(var(--aicjm-space-0), 1fr));
  margin-block: var(--aicjm-space-24) var(--aicjm-space-0);
  border-top: var(--aicjm-control-border-width) solid var(--aicjm-border-default);
}

.component-rules div { padding-block: var(--aicjm-space-16); border-bottom: var(--aicjm-control-border-width) solid var(--aicjm-border-default); }
.component-rules div + div { padding-inline-start: var(--aicjm-space-24); }
.component-rules dt { color: var(--aicjm-action-primary); font-size: var(--aicjm-type-size-metadata); font-weight: var(--aicjm-type-weight-label); }
.component-rules dd { margin: var(--aicjm-space-8) var(--aicjm-space-0) var(--aicjm-space-0); color: var(--aicjm-text-secondary); font-size: var(--aicjm-type-size-body-small); }

.mini-shell,
.mini-footer,
.preview-heading,
.preview-actions,
.preview-nav,
.preview-tabs,
.preview-filters,
.preview-diagram,
.preview-pagination {
  display: flex;
  align-items: center;
  gap: var(--aicjm-space-16);
}

.mini-shell { min-block-size: var(--aicjm-space-76); justify-content: space-between; padding-inline: var(--aicjm-space-24); border-bottom: var(--aicjm-control-border-width) solid var(--aicjm-border-default); background: var(--aicjm-surface-page); }
.mini-shell nav { color: var(--aicjm-text-secondary); font-size: var(--aicjm-type-size-body-small); }
.mini-shell a { color: var(--aicjm-action-primary); }
.preview-heading { align-items: end; justify-content: space-between; }
.preview-heading h3 { max-inline-size: 44rem; margin: var(--aicjm-space-0); font-size: var(--aicjm-type-size-heading-large); line-height: var(--aicjm-type-line-height-heading); }
.preview-heading > span { color: var(--aicjm-action-primary); }
.preview-heading a { color: var(--aicjm-action-primary); }

.preview-button {
  display: inline-flex;
  min-block-size: var(--aicjm-component-button-primary-minimum-height);
  padding-inline: var(--aicjm-component-button-primary-padding-inline);
  align-items: center;
  border: var(--aicjm-component-button-primary-border-width) solid var(--aicjm-component-button-primary-border);
  background: var(--aicjm-component-button-primary-background);
  color: var(--aicjm-component-button-primary-text);
  font-weight: var(--aicjm-type-weight-label);
  text-decoration: none;
}

.preview-button--secondary { border-color: var(--aicjm-component-button-secondary-border); background: var(--aicjm-component-button-secondary-background); color: var(--aicjm-component-button-secondary-text); }
.preview-button:focus-visible, .gallery-index a:focus-visible { outline: var(--aicjm-component-focus-ring-width) solid var(--aicjm-component-focus-ring-color); outline-offset: var(--aicjm-component-focus-ring-offset); }

.preview-hero { padding: var(--aicjm-space-52); background: var(--aicjm-surface-page); }
.preview-hero > p:first-child { color: var(--aicjm-action-primary); font-size: var(--aicjm-type-size-metadata); text-transform: uppercase; }
.preview-hero h3 { max-inline-size: 62rem; margin-block: var(--aicjm-space-32); font-size: clamp(var(--aicjm-type-size-heading-large), 6vw, var(--aicjm-type-size-display-max)); line-height: var(--aicjm-type-line-height-display); }
.preview-hero h3 span { color: var(--aicjm-component-headline-accent); }
.preview-hero > p:not(:first-child) { max-inline-size: 46rem; color: var(--aicjm-text-secondary); font-size: var(--aicjm-type-size-lead); }
.preview-hero .preview-button { margin-block-start: var(--aicjm-space-24); }

.component-preview blockquote { margin: var(--aicjm-space-0); font-size: var(--aicjm-type-size-heading-small); line-height: var(--aicjm-type-line-height-heading); }
.component-preview blockquote footer { margin-block-start: var(--aicjm-space-24); color: var(--aicjm-text-secondary); font-size: var(--aicjm-type-size-body-small); }
.preview-metric { display: grid; gap: var(--aicjm-space-8); }
.preview-metric strong { color: var(--aicjm-action-primary); font-size: var(--aicjm-type-size-display-min); }
.preview-metric small { color: var(--aicjm-text-secondary); }
.preview-tabs button[aria-selected="true"], .preview-filters button[aria-pressed="true"] { border-color: var(--aicjm-component-filter-active-indicator); background: var(--aicjm-component-filter-active-background); color: var(--aicjm-component-filter-active-text); }

.preview-card,
.preview-program,
.preview-event,
.preview-source,
.preview-legal,
.preview-prose {
  padding: var(--aicjm-component-card-padding-desktop);
  border: var(--aicjm-component-card-border-width) solid var(--aicjm-component-card-border);
  background: var(--aicjm-component-card-background);
}

.preview-card h3, .preview-program h3, .preview-event h3, .preview-prose h3, .preview-legal h3 { font-size: var(--aicjm-type-size-heading-small); }
.preview-card p, .preview-program p, .preview-event p, .preview-prose p, .preview-legal p, .preview-source p { color: var(--aicjm-text-secondary); }
.preview-card small, .preview-program small, .preview-event time { color: var(--aicjm-action-primary); }
.preview-process { display: grid; margin: var(--aicjm-space-0); padding: var(--aicjm-space-0); list-style: none; border-top: var(--aicjm-control-border-width) solid var(--aicjm-border-default); }
.preview-process li { display: grid; grid-template-columns: var(--aicjm-space-52) 1fr; padding-block: var(--aicjm-space-24); border-bottom: var(--aicjm-control-border-width) solid var(--aicjm-border-default); }
.preview-process span { color: var(--aicjm-action-primary); }
.preview-diagram { justify-content: space-between; }
.preview-diagram span, .preview-diagram strong { padding: var(--aicjm-space-16); border: var(--aicjm-control-border-width) solid var(--aicjm-border-default); background: var(--aicjm-surface-page); }
.preview-diagram strong { border-color: var(--aicjm-action-primary); background: var(--aicjm-action-primary); color: var(--aicjm-action-on-primary); }

.preview-person { display: grid; grid-template-columns: minmax(var(--aicjm-space-112), .7fr) minmax(var(--aicjm-space-0), 1.3fr); color: var(--aicjm-text-primary); text-decoration: none; background: var(--aicjm-surface-page); }
.preview-person img { inline-size: 100%; block-size: 100%; min-block-size: 18rem; object-fit: cover; }
.preview-person > span { display: flex; padding: var(--aicjm-space-32); flex-direction: column; }
.preview-person small { color: var(--aicjm-action-primary); }
.preview-person strong { margin-block-start: auto; font-size: var(--aicjm-type-size-heading-small); }
.preview-person em { margin-block-start: var(--aicjm-space-8); color: var(--aicjm-text-secondary); font-style: normal; }
.preview-quote { margin: var(--aicjm-space-0); padding-inline-start: var(--aicjm-space-24); border-inline-start: var(--aicjm-component-focus-ring-width) solid var(--aicjm-action-primary); }
.preview-quote figcaption { margin-block-start: var(--aicjm-space-24); color: var(--aicjm-text-secondary); }
.preview-control, .preview-form label { display: grid; gap: var(--aicjm-space-8); color: var(--aicjm-text-secondary); font-size: var(--aicjm-type-size-body-small); }
.preview-control input, .preview-form input { min-block-size: var(--aicjm-component-input-minimum-height); padding-inline: var(--aicjm-component-input-padding-inline); border: var(--aicjm-component-input-border-width) solid var(--aicjm-component-input-border); background: var(--aicjm-component-input-background); color: var(--aicjm-component-input-text); font: inherit; }
.preview-form { display: grid; grid-template-columns: repeat(2, minmax(var(--aicjm-space-0), 1fr)); gap: var(--aicjm-space-16); }
.preview-form small { grid-column: 1 / -1; color: var(--aicjm-text-secondary); }
.preview-faq { padding-block: var(--aicjm-space-16); border-block: var(--aicjm-control-border-width) solid var(--aicjm-border-default); }
.preview-faq summary { min-block-size: var(--aicjm-control-minimum-height); font-size: var(--aicjm-type-size-heading-small); cursor: pointer; }
.preview-faq p { color: var(--aicjm-text-secondary); }
.mini-footer { align-items: start; justify-content: space-between; padding: var(--aicjm-space-32); background: var(--aicjm-surface-deep); color: var(--aicjm-text-on-deep); }
.mini-footer p, .mini-footer nav { color: var(--aicjm-text-on-deep-muted); }
.preview-prose { max-inline-size: 52rem; }
.preview-prose li + li { margin-block-start: var(--aicjm-space-8); }
.preview-legal nav { padding-block-end: var(--aicjm-space-16); border-bottom: var(--aicjm-control-border-width) solid var(--aicjm-border-default); color: var(--aicjm-action-primary); }
.preview-breadcrumbs { display: flex; gap: var(--aicjm-space-8); color: var(--aicjm-text-secondary); }
.preview-breadcrumbs a { color: var(--aicjm-action-primary); }
.preview-case { display: flex; max-inline-size: 32rem; min-block-size: 24rem; padding: var(--aicjm-space-24); flex-direction: column; border: var(--aicjm-control-border-width) solid var(--aicjm-border-default); background: var(--aicjm-surface-page); color: var(--aicjm-text-primary); text-decoration: none; }
.preview-case > div, .preview-case footer { display: flex; align-items: center; justify-content: space-between; gap: var(--aicjm-space-16); }
.preview-case img { inline-size: var(--aicjm-space-76); block-size: var(--aicjm-space-32); object-fit: contain; }
.preview-case h3 { margin-block: var(--aicjm-space-32) var(--aicjm-space-16); font-size: var(--aicjm-type-size-heading-small); }
.preview-case p { color: var(--aicjm-text-secondary); }
.preview-case footer { margin-block-start: auto; padding-block-start: var(--aicjm-space-16); border-top: var(--aicjm-control-border-width) solid var(--aicjm-border-default); }
.preview-case footer strong { color: var(--aicjm-action-primary); }
.preview-event a { color: var(--aicjm-action-primary); }
.preview-status { margin: var(--aicjm-space-0); color: var(--aicjm-text-secondary); }
.preview-status strong { color: var(--aicjm-text-primary); }
.preview-pagination { justify-content: space-between; }
.preview-pagination button { inline-size: 100%; min-block-size: var(--aicjm-control-minimum-height); border: var(--aicjm-space-0); border-bottom: var(--aicjm-control-border-width) solid var(--aicjm-border-default); background: transparent; color: var(--aicjm-action-primary); text-align: start; }
.preview-pagination button span { float: inline-end; }
.preview-media { margin: var(--aicjm-space-0); }
.preview-media > div { display: grid; min-block-size: 18rem; place-items: center; border: var(--aicjm-control-border-width) solid var(--aicjm-border-default); background: var(--aicjm-surface-deep); color: var(--aicjm-text-on-deep); font-size: var(--aicjm-type-size-heading-small); }
.preview-media figcaption { padding-block-start: var(--aicjm-space-12); color: var(--aicjm-text-secondary); }
.preview-source { border-inline-start: var(--aicjm-component-focus-ring-width) solid var(--aicjm-action-primary); }
.preview-source small { color: var(--aicjm-text-secondary); }
.preview-contact { padding: var(--aicjm-space-52); background: var(--aicjm-surface-deep); color: var(--aicjm-text-on-deep); }
.preview-contact h3 { max-inline-size: 48rem; font-size: var(--aicjm-type-size-heading-large); }
.preview-contact p { max-inline-size: 44rem; color: var(--aicjm-text-on-deep-muted); }
.preview-contact .preview-button { margin-block-start: var(--aicjm-space-24); }
.preview-generic { padding: var(--aicjm-space-24); background: var(--aicjm-surface-page); }
.preview-generic p { color: var(--aicjm-text-secondary); }

@media (max-width: 48rem) {
  .component-doc__header,
  .component-rules,
  .preview-form { grid-template-columns: 1fr; }
  .component-doc__header a { justify-self: start; }
  .component-rules div + div { padding-inline-start: var(--aicjm-space-0); }
  .component-preview { padding: var(--aicjm-component-card-padding-mobile); }
  .preview-heading,
  .mini-shell,
  .mini-footer,
  .preview-diagram,
  .preview-tabs,
  .preview-filters { align-items: stretch; flex-direction: column; }
  .preview-heading { align-items: start; }
  .mini-shell nav { display: none; }
  .preview-hero, .preview-contact { padding: var(--aicjm-space-24); }
  .preview-person { grid-template-columns: 1fr; }
  .preview-person img { min-block-size: 20rem; }
  .preview-diagram i { align-self: center; transform: rotate(90deg); }
}

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition-duration: var(--aicjm-space-0) !important; } }
