/* Preserve supplied button artwork and geometry; glow also works on touch. */
#gameOverInvite, #gameStoryInvite, #victoryMapInvite { cursor: pointer; -webkit-tap-highlight-color: transparent; }
#gameOverInvite:is(:hover, :active, .invite-pressed),
#gameStoryInvite:is(:hover, :active, .invite-pressed),
#victoryMapInvite:is(:hover, :active, .invite-pressed) { box-shadow: 0 0 14px #21f70099; }
#inviteShareDialog {
  width: min(88vw, 390px); padding: 24px; border: 1px solid #70d244;
  border-radius: 12px; color: #eef5e9; background: #10150f;
  font: 16px/1.5 system-ui, sans-serif; box-shadow: 0 0 28px #21f70033;
}
#inviteShareDialog::backdrop { background: #000b; }
/* Unsupported dialog elements have no browser-provided hidden state. */
#inviteShareDialog:not([open]) { display: none; }
#inviteShareDialog h2 { margin: 0 0 12px; font-size: 21px; color: #86eb4b; }
#inviteShareDialog p { margin: 0 0 16px; }
#inviteShareDialog label { font-size: 13px; }
#inviteShareURL {
  display: block; width: 100%; padding: 10px; margin: 6px 0 18px;
  color: #fff; background: #050805; border: 1px solid #557349; border-radius: 4px;
  font-size: 16px; -webkit-user-select: text; user-select: text; -webkit-touch-callout: default;
}
#inviteShareURL[hidden] { display: none; }
.invite-share-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.invite-share-actions button {
  min-height: 44px; padding: 8px 14px; border: 1px solid #83d746; border-radius: 6px;
  color: #061000; background: #83d746; font: inherit; cursor: pointer; touch-action: manipulation;
}
.invite-share-actions button:focus-visible { outline: 2px solid white; outline-offset: 3px; }
#inviteShareDialog { box-sizing: border-box; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: auto; overscroll-behavior: contain; }
#inviteShareDialog *, #inviteShareDialog *::before, #inviteShareDialog *::after { box-sizing: border-box; }
#inviteShareDialog [hidden] { display: none !important; }
#inviteShareDialog .invite-share-actions { margin-bottom: 16px; }
#inviteShareDialog .invite-share-actions a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid #83d746; border-radius: 6px; color: #061000; background: #83d746; font: inherit; text-decoration: none; touch-action: manipulation; }
#inviteShareDialog .invite-share-secondary { background: transparent; color: #eef5e9; border-color: #66765e; }
#inviteShareDialog button:disabled { opacity: .55; cursor: wait; }
#inviteStoryPanel { margin: 18px 0; padding-top: 16px; border-top: 1px solid #557349; }
#inviteStoryPreview { display: block; width: auto; height: min(36vh, 360px); max-width: 100%; margin: 0 auto 16px; background: #050805; object-fit: contain; }
#inviteStoryPanel ol { padding-left: 22px; margin: 10px 0; }
#inviteStoryPanel li { margin: 7px 0; }
#inviteShareDialog .invite-share-note { font-size: 13px; color: #bbc9b3; }
@media (max-width: 380px) { #inviteShareDialog { width: 94vw; padding: 16px; } }
