/* The article's public opening remains the trigger boundary. */
.article-gate-anchor { margin: 3rem auto; max-width: 760px; min-height: 1px; text-align: center; }
.article-gate-anchor > .article-gate { margin: 0; }
.article-gate-reopen { border: 0; border-bottom: 1px solid var(--gold); padding: .75rem 1rem; background: transparent; color: var(--ink); font: 600 1rem var(--sans); cursor: pointer; }
.article-gate-inner { max-width: 440px; margin: auto; }
.article-gate .article-google-login { display: flex; justify-content: center; align-items: center; gap: .75rem; width: 100%; background: #fff; border-color: #9098a0; color: var(--ink); font-size: .95rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
.article-google-login > span { display: inline-block; flex: 0 0 20px; width: 20px; height: 20px; font-size: 0; background: url('/images/brand/google-g.png') center / contain no-repeat; }
.article-gate-inner > button { width: 100%; }
.article-gate button:disabled { opacity: .65; cursor: wait; }
.article-gate-inner > h2:focus { outline: none; }
.article-access-dialog { position: fixed; inset: auto 0 0; width: 100%; max-width: none; max-height: calc(100dvh - 16px); margin: 0; border: 0; padding: 0; background: var(--paper); color: var(--ink); overflow: auto; overscroll-behavior: contain; box-shadow: 0 -8px 40px #14223620; transform: translateY(100%); transition: transform 420ms cubic-bezier(.22,1,.36,1); }
.article-access-dialog.is-open { transform: translateY(0); }
.article-access-dialog::backdrop { background: linear-gradient(to bottom, #13223500, #13223566); opacity: 0; transition: opacity 420ms ease; }
.article-access-dialog.is-open::backdrop { opacity: 1; }
.article-access-dialog .article-gate { width: 100%; max-width: none; min-height: 320px; margin: 0; padding: 40px 24px max(26px, env(safe-area-inset-bottom)); border: 0; border-top: 1px solid var(--line); box-shadow: none; background: var(--paper); }
.article-access-dialog .article-gate h2 { margin: 0 0 14px; font-size: clamp(1.65rem, 3vw, 2rem); line-height: 1.15; }
.article-access-dialog .article-gate p { font-size: .98rem; line-height: 1.55; }
.article-access-dialog .article-gate-status { margin: 14px auto 0; min-height: 1.3em; font-size: .85rem; }
.article-access-dialog .article-gate .article-gate-close { position: absolute; right: 16px; top: 8px; margin: 0; padding: 4px; width: 44px; height: 44px; min-height: 44px; border: 0; background: transparent; color: var(--ink); font: 300 1.8rem/1 var(--sans); }
html.article-panel-open { overflow: hidden; }
html:has(.article-gate-anchor) { scrollbar-gutter: stable; }
@media (max-width: 640px) {
  .article-access-dialog .article-gate { padding: 54px 24px max(24px, env(safe-area-inset-bottom)); min-height: 300px; }
  .article-access-dialog .article-gate h2 { font-size: 1.65rem; }
}
@media (prefers-reduced-motion: reduce) {
  .article-access-dialog, .article-access-dialog::backdrop { transition: none; }
  html { scroll-behavior: auto; }
}
