/* Keep the exported public homepage separate from the authenticated shell. */
#public-site.paper-world-public {
  position: relative;
  height: 100svh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  background: #f2eadc;
  padding-top: 60px;
}

.paper-world-frame { display: block; width: 100%; height: 100%; border: 0; background: #f2eadc; }
.paper-world-wordmark {
  position: absolute;
  top: 18px;
  left: max(22px, env(safe-area-inset-left));
  width: auto;
  height: 24px;
}
.paper-world-access {
  position: absolute;
  top: 8px;
  right: max(22px, env(safe-area-inset-right));
  z-index: 45;
  font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
  font-size: 15px;
}
.paper-world-fallback-menu summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 88px;
  min-height: 44px;
  padding: 6px 0;
  color: #284f3a;
  cursor: pointer;
  list-style: none;
}
.paper-world-fallback-menu summary::-webkit-details-marker { display: none; }
.paper-world-fallback-menu summary span { font-size: 22px; line-height: 1; }
.paper-world-fallback-panel {
  position: absolute;
  top: 52px;
  right: 0;
  width: min(260px, calc(100vw - 32px));
  padding: 12px;
  border-radius: 12px;
  background: #f8f2e8;
  box-shadow: 0 8px 30px #213a2833;
}
#public-site .paper-world-fallback-panel a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0 12px;
  color: #284f3a;
  text-decoration: none;
}
.paper-world-access :focus-visible { outline: 2px solid #5227ff; outline-offset: 3px; border-radius: 4px; }
@media (max-width: 640px) {
  .paper-world-wordmark { left: max(16px, env(safe-area-inset-left)); }
  .paper-world-access { right: max(16px, env(safe-area-inset-right)); }
}

/* Never expose the credential form before the application can handle it. */
.paper-world-login-wait { display: none; min-height: 100svh; place-items: center; padding: 24px; background: #f2eadc; color: #284f3a; }
.paper-world-login-wait:target { display: grid; }
body:has(#app-shell:not(.hidden)) .paper-world-login-wait:target { display: none; }
.paper-world-login-wait > div { max-width: 32rem; }
.paper-world-login-wait a { display: inline-flex; align-items: center; min-height: 44px; color: #284f3a; }
#public-site:has(~ #fallback-login:target) { display: none; }

#paper-world-menu { position: absolute; inset: 0; z-index: 50; pointer-events: none; visibility: hidden; }
.paper-world-menu-ready > #paper-world-menu { visibility: visible; }
.paper-world-menu-ready > .paper-world-wordmark,
.paper-world-menu-ready > .paper-world-access { display: none; }
