/* Shared component; theme using --author-support-* on the page if needed. */
.author-support-dialog {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(760px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  padding: 48px 32px 32px;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--author-support-border, #786446);
  border-radius: 8px;
  background: var(--author-support-bg, #21190f);
  color: var(--author-support-ink, #ead9b8);
  font-family: var(--read, "Songti SC", "Noto Serif SC", serif);
  font-size: 16px;
  line-height: 1.85;
  text-align: left;
}
.author-support-dialog[open] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 280px); gap: 28px; align-items: center; }
.author-support-dialog::backdrop { background: rgb(0 0 0 / 78%); }
.author-support-dialog .author-support-close { position: absolute; top: 6px; right: 8px; margin: 0; }
.author-support-dialog .author-support-close button { display: block; min-width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: inherit; font: 30px/1 sans-serif; cursor: pointer; }
.author-support-dialog button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.author-support-dialog h2 { margin: 0 0 20px; font: 400 clamp(30px, 4vw, 42px)/1.4 var(--read, "Songti SC", serif); text-wrap: balance; }
.author-support-dialog p { margin: 0 0 16px; text-wrap: pretty; }
.author-support-dialog .author-support-kicker { font-size: 13px; }
.author-support-dialog #author-support-note { font-size: 14px; margin-bottom: 0; }
.author-support-dialog figure { box-sizing: border-box; width: 100%; max-width: 280px; margin: 0 auto; padding: 12px; background: #fff; color: #514535; }
.author-support-dialog img { display: block; width: 100%; height: auto; user-select: auto; -webkit-touch-callout: default; }
.author-support-dialog figcaption { margin: 10px 0 0; font: 13px/1.6 system-ui, sans-serif; text-align: center; }
@media (max-width: 640px) {
  .author-support-dialog { width: calc(100vw - 24px); padding: 48px 20px 24px; }
  .author-support-dialog[open] { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
