:where(.nuu3d-generator, .nuu3d-catalog, .nuu3d-creations) {
  --nuu3d-action-primary-background: #a8e84d;
  --nuu3d-action-primary-foreground: #173d1f;
  --nuu3d-action-danger-background: #c54b32;
  --nuu3d-action-danger-foreground: #fff;
  --nuu3d-action-disabled-background: color-mix(in srgb, currentColor 8%, transparent);
  --nuu3d-control-background: var(--wp--preset--color--base, Canvas);
  --nuu3d-control-border: color-mix(in srgb, currentColor 18%, transparent);
  --nuu3d-card-background: #f3e2d1;
  --nuu3d-threejs-border: #c8c8c8;
}

body:has(.nuu3d-generator, .nuu3d-catalog, .nuu3d-creations) .nuu3d-standard-logo { display: none !important; }
body:has(.nuu3d-generator, .nuu3d-catalog, .nuu3d-creations) .nuu3d-kids-logo { display: block; }

.nuu3d-generator :is(label > span, .nuu3d-vector3 > legend, .nuu3d-segmented > legend, .nuu3d-material > legend, .nuu3d-units-note, .nuu3d-generator__intro h2 small) {
  color: var(--wp--preset--color--contrast-2, currentColor);
}

.nuu3d-generator .nuu3d-controls {
  background: transparent;
  border: 1px solid var(--nuu3d-control-border);
  border-radius: 12px;
}

.nuu3d-generator .nuu3d-viewer {
  border: 1px solid var(--nuu3d-threejs-border);
}

.nuu3d-generator .nuu3d-controls :is(input:not([type="checkbox"]):not([type="color"]):not([type="radio"]):not([type="range"]), select) {
  background: var(--nuu3d-control-background);
  border: 1px solid var(--nuu3d-control-border);
  border-radius: 8px;
  color: inherit;
  font: inherit;
  min-height: 44px;
  padding: .65rem .75rem;
}

.nuu3d-generator .nuu3d-controls input[type="number"] {
  text-align: center;
}

.nuu3d-generator[data-product-type="TextTag"] .nuu3d-primary-controls .nuu3d-font-size-field {
  text-align: center;
}

.nuu3d-generator [data-developer-controls] input[type="number"] {
  align-self: end;
}

.nuu3d-generator .nuu3d-accordion summary {
  border-radius: 8px;
  font-weight: 600;
  margin-inline: -.5rem;
  padding-inline: .5rem;
}

.nuu3d-generator .nuu3d-accordion summary:hover {
  background: color-mix(in srgb, currentColor 5%, transparent);
}

.nuu3d-generator .nuu3d-palette {
  gap: .55rem;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  justify-content: stretch;
}

.nuu3d-generator .nuu3d-palette--expanded > :is(button, .nuu3d-palette__custom) {
  border-radius: 3px;
}

@media (max-width: 560px) {
  .nuu3d-generator .nuu3d-palette--expanded {
    grid-template-columns: repeat(6, minmax(44px, 1fr));
  }
}

.nuu3d-generator .nuu3d-add-ring {
  background: var(--nuu3d-action-primary-background);
  color: var(--nuu3d-action-primary-foreground);
}

:is(.nuu3d-catalog, .nuu3d-creations) {
  --catalog-line: color-mix(in srgb, currentColor 18%, transparent);
  --catalog-surface: color-mix(in srgb, currentColor 5%, transparent);
  box-sizing: border-box;
  color: inherit;
  color-scheme: inherit;
  font-family: inherit;
  margin-inline: auto;
  min-height: 70vh;
}

:is(.nuu3d-catalog, .nuu3d-creations) *, :is(.nuu3d-catalog, .nuu3d-creations) *::before, :is(.nuu3d-catalog, .nuu3d-creations) *::after { box-sizing: border-box; }
.nuu3d-catalog [hidden], .nuu3d-creations [hidden] { display: none !important; }

.nuu3d-catalog__search input {
  background: var(--catalog-surface);
  border: 1px solid var(--catalog-line);
  color: inherit;
  font: inherit;
  min-height: 44px;
  padding: .65rem .8rem;
  width: 14rem;
}
.nuu3d-catalog__content { min-width: 0; }
.nuu3d-catalog__sort {
  align-items: center;
  background: var(--catalog-surface);
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1.5rem;
  padding: .45rem;
}
.nuu3d-catalog__sort > span { flex: none; padding: .55rem .45rem; }
.nuu3d-catalog__sort button {
  background: transparent;
  border: 1px solid transparent;
  color: inherit;
  cursor: pointer;
  flex: none;
  font: inherit;
  padding: .55rem .8rem;
}
.nuu3d-catalog__sort button:hover,
.nuu3d-catalog__sort button.is-active {
  background: var(--wp--preset--color--base, Canvas);
  border-color: var(--catalog-line);
}
.nuu3d-catalog__tools { align-items: center; display: flex; gap: .45rem; margin-inline-start: auto; }
.nuu3d-catalog__peer.wp-element-button { flex: none; margin-top: 0; width: 8rem; }
.nuu3d-generator .nuu3d-product-action:disabled { cursor: not-allowed; filter: grayscale(1); opacity: .55; }

.nuu3d-card-grid {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr));
}

.nuu3d-preset-card { color: inherit; display: grid; gap: .65rem; margin: 0; }
.nuu3d-preset-card__media {
  aspect-ratio: 4 / 3;
  background: var(--nuu3d-card-background);
  border-radius: 0;
  display: block;
  overflow: hidden;
  position: relative;
}
.nuu3d-preset-card img,
.nuu3d-preset-card video { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.nuu3d-preset-card video { z-index: 1; }
.nuu3d-preset-card__poster--hover { opacity: 0; }
.nuu3d-preset-card:hover .nuu3d-preset-card__poster:not(.nuu3d-preset-card__poster--hover) { opacity: 0; }
.nuu3d-preset-card:hover .nuu3d-preset-card__poster--hover { opacity: 1; }
.nuu3d-preset-card__details { display: grid; gap: .55rem; text-align: center; }
.nuu3d-preset-card__details > .nuu3d-product-action { justify-self: center; }
.nuu3d-preset-card__details strong { font-size: var(--wp--preset--font-size--medium); }
.nuu3d-preset-card:hover img { transform: scale(1.025); }
.nuu3d-preset-card.has-hover-poster:hover img { transform: none; }
.nuu3d-preset-card img { transition: opacity .2s ease, transform .2s ease; }
.nuu3d-catalog__empty { margin-block: 2rem; }

.nuu3d-creation-card { background: transparent; border: 1px solid var(--nuu3d-control-border); display: grid; gap: .65rem; padding: .75rem; }
.nuu3d-creation-card__view { color: inherit; display: grid; gap: .65rem; text-align: center; text-decoration: none; }
.nuu3d-creation-card__media { aspect-ratio: 4 / 3; align-items: center; background: transparent; display: flex; justify-content: center; overflow: hidden; }
.nuu3d-creation-card__media img { height: 100%; object-fit: contain; width: 100%; }
.nuu3d-creation-card__actions { display: grid; gap: .35rem; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); }
.nuu3d-dialog { background: var(--nuu3d-card-background); border: 1px solid var(--nuu3d-control-border, currentColor); color: inherit; position: relative; }
.nuu3d-dialog :is(form, .nuu3d-dialog__content) { display: grid; gap: 1rem; min-width: min(20rem, 80vw); }
.nuu3d-dialog :is(form, .nuu3d-dialog__content) > div { display: flex; gap: .5rem; justify-content: flex-end; }
.nuu3d-dialog input { background: var(--nuu3d-control-background); border: 1px solid var(--nuu3d-control-border); color: inherit; font: inherit; min-height: 44px; padding: .65rem .75rem; width: 100%; }
.nuu3d-dialog .nuu3d-dialog__close { align-items: center; background: transparent; border: 0; color: inherit; cursor: pointer; display: flex; font: inherit; font-size: var(--wp--preset--font-size--large); height: 44px; justify-content: center; padding: 0; position: absolute; right: .5rem; top: .5rem; width: 44px; }
.nuu3d-dialog form > .nuu3d-dialog__primary { justify-content: center; }
.nuu3d-dialog .nuu3d-dialog__primary .wp-element-button { margin-top: 0; min-width: 8rem; width: auto; }
.nuu3d-button--danger.wp-element-button { background: var(--nuu3d-action-danger-background); color: var(--nuu3d-action-danger-foreground); }
.nuu3d-vertical-alignment span { align-items: center; display: flex; font-size: 0; justify-content: center; }
.nuu3d-vertical-alignment span::before { background: currentColor; content: ""; height: 1.5rem; mask: center / contain no-repeat; width: 1.5rem; }
.nuu3d-vertical-alignment input[value="bottom"] + span::before { mask-image: url("site/icons/align-vertical-bottom.svg"); }
.nuu3d-vertical-alignment input[value="middle"] + span::before { mask-image: url("site/icons/align-vertical-center.svg"); }
.nuu3d-vertical-alignment input[value="top"] + span::before { mask-image: url("site/icons/align-vertical-top.svg"); }
.nuu3d-creations-sign-in { align-items: center; display: flex; gap: 1rem; }

@media (max-width: 760px) {
  .nuu3d-catalog__tools { flex: 1 0 100%; }
  .nuu3d-catalog__search { flex: 1 1 10rem; }
  .nuu3d-catalog__search input { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .nuu3d-preset-card img { transition: none; }
}
.nuu3d-viewer__version{position:absolute;left:12px;bottom:12px;z-index:2;color:inherit;font-size:12px;opacity:.7;pointer-events:none}
