/* The shared board lives in the page, not in a framed slab. */
.stage.niche-stage,
body[data-v3="example"] .stage.niche-stage {
  grid-template-columns: 1fr;
  padding: 0;
  min-width: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.niche-engine {
  display: block;
  width: 100%;
  min-width: 0;
  isolation: isolate;
}
/* Map shared UI tokens to the site's existing Factory palette. */
@scope (.niche-engine) {
  :scope.is-play.ds-root[data-ds-theme="light"] {
    --paper: var(--color-surface);
    --paper-bright: var(--color-surface);
    --paper-wash: var(--color-surface-alt);
    --ink: var(--color-text);
    --ink-strong: var(--color-text);
    --muted: var(--color-text-muted);
    --line: var(--color-border);
    --cta: var(--color-cta);
    --cta-hover: var(--color-primary);
    --indigo: var(--color-primary);
    --font-sans: var(--font-body);
    --font-serif: var(--font-body);
    background: var(--stage-bg);
    font-family: var(--font-body);
  }
  :scope::before, :scope::after { display: none !important; }
  :scope .app {
    min-height: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  .board-wrap { aspect-ratio: 1; }
  .puzzle-board { aspect-ratio: auto; max-width: none; overflow: visible; }
  #gridComments, #puzzleBoard, .play-breadcrumb, .play-context-nav, .toolbar, #bandField, #newGame, #playContext { display: none !important; }
}
.niche-engine-empty {
  margin: 0;
  padding: 2.75rem 1.5rem;
  text-align: center;
  color: var(--color-text);
  font-family: var(--font-body);
}
