/* Shared presentation primitives. No game state, positioning or timing rules. */
.aeh-surface { background: var(--aeh-surface); border: 1px solid var(--aeh-line); border-radius: var(--aeh-radius-panel); }
.aeh-eyebrow { color: var(--aeh-accent); font: 600 11px/1.5 var(--aeh-font-body); letter-spacing: .16em; text-transform: uppercase; }
.aeh-display { font-family: var(--aeh-font-display); font-weight: 600; line-height: .98; letter-spacing: -.015em; text-transform: uppercase; }
.aeh-button {
  display: inline-flex; justify-content: center; align-items: center; gap: 10px;
  min-height: 44px; padding: 12px 20px; border: 1px solid var(--aeh-control-line);
  border-radius: var(--aeh-radius-control); background: var(--aeh-surface-raised); color: var(--aeh-text);
  font: 650 13px/1.35 var(--aeh-font-body); cursor: pointer; touch-action: manipulation;
  transition: background var(--aeh-duration), border-color var(--aeh-duration);
}
.aeh-button[data-tone="primary"] { background: var(--aeh-accent); color: var(--aeh-ink); border-color: var(--aeh-accent); }
.aeh-button[data-tone="quiet"] { background: transparent; }
.aeh-button[data-tone="danger"] { color: var(--aeh-danger); }
.aeh-button:hover:not(:disabled) { border-color: var(--aeh-paper); }
.aeh-button[data-tone="primary"]:hover:not(:disabled) { background: #e7c888; }
.aeh-button:active:not(:disabled) { transform: translateY(1px); }
.aeh-button:disabled { color: #9ca89f; background: #29312d; border-color: #46544c; cursor: not-allowed; }
.aeh-theme :where(.aeh-button, .aeh-choice, .aeh-input, .aeh-link):focus-visible {
  outline: 3px solid var(--aeh-focus); outline-offset: 4px;
}
.aeh-input {
  box-sizing: border-box; width: 100%; min-height: 48px; padding: 12px 14px;
  background: var(--aeh-shell); border: 1px solid var(--aeh-control-line); border-radius: var(--aeh-radius-control);
  color: var(--aeh-text); font: 400 14px/1.5 var(--aeh-font-body);
}
.aeh-input::placeholder { color: var(--aeh-muted); }
.aeh-input[aria-invalid="true"] { border-color: var(--aeh-danger); }
.aeh-field { display: grid; gap: 8px; font-size: 12px; }
.aeh-choice {
  position: relative; display: grid; gap: 7px; min-height: 100px; padding: 20px;
  border: 1px solid var(--aeh-control-line); border-radius: var(--aeh-radius-control);
  background: var(--aeh-surface); color: var(--aeh-text); text-align: left;
  font: 400 12px/1.5 var(--aeh-font-body); cursor: pointer; touch-action: manipulation;
}
.aeh-choice strong { font-size: 15px; font-weight: 650; }
.aeh-choice small { color: var(--aeh-muted); font-size: 12px; }
.aeh-choice[aria-pressed="true"] { background: #213b31; border: 2px solid var(--aeh-success); padding: 19px; }
.aeh-choice:disabled { cursor: not-allowed; background: #1a2321; }
.aeh-choice:disabled strong { color: var(--aeh-muted); }
.aeh-chip-label { width: fit-content; padding: 3px 8px; border: 1px solid var(--aeh-line); border-radius: 4px; color: var(--aeh-muted); font-size: 10px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.aeh-choice[aria-pressed="true"] .aeh-chip-label { color: var(--aeh-success); border-color: #648d75; }
.aeh-avatar { display: block; width: 48px; height: 48px; object-fit: cover; border: 1px solid var(--aeh-line); border-radius: 50%; }
.aeh-link { color: var(--aeh-accent); text-underline-offset: 4px; }
.aeh-number { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) {
  .aeh-button { transition: none; }
  .aeh-button:active:not(:disabled) { transform: none; }
}
