:root { --jdo-reveal-ease: cubic-bezier(0.23, 1, 0.32, 1); }
body.jdo-loading { overflow: hidden; }
body > .jdo-header, #output { transition: opacity 750ms var(--jdo-reveal-ease); }
body.jdo-loading:not(.jdo-ready) > .jdo-header,
body.jdo-loading:not(.jdo-ready) #output { opacity: 0; visibility: hidden; }
#loading-indicator {
  position: fixed; inset: 0; z-index: 10000; overflow: hidden;
  background: #15110a url('/assets/god-comes-down-end.jpg') center / cover no-repeat;
  opacity: 1; transition: opacity 750ms var(--jdo-reveal-ease);
  font-family: Inter, system-ui, sans-serif; color: #fff8e8;
}
#loading-indicator[hidden] { display: none; }
#jdo-intro { width: 100%; height: 100%; object-fit: cover; display: block; }
.jdo-holding #jdo-intro { visibility: hidden; }
#jdo-status { position: absolute; bottom: max(72px, env(safe-area-inset-bottom)); left: 24px; right: 24px; text-align: center; font-size: 14px; color: #fff8e8; opacity: 0; }
.jdo-holding #jdo-status { opacity: 1; }
.jdo-sparkle { display: inline-block; margin-right: 8px; color: #dfae47; animation: jdo-twinkle 1800ms ease-in-out infinite alternate; }
@keyframes jdo-twinkle { from { opacity: .35; } to { opacity: 1; } }
#jdo-skip { position: absolute; bottom: max(24px, env(safe-area-inset-bottom)); right: 24px; padding: 10px; background: transparent; border: 0; font: inherit; font-size: 13px; color: rgb(255 248 232 / 70%); cursor: pointer; }
#jdo-skip:focus-visible { outline: 2px solid #dfae47; outline-offset: 2px; }
.jdo-ready #loading-indicator { opacity: 0; pointer-events: none; }
.jdo-quick #loading-indicator, .jdo-quick > .jdo-header, .jdo-quick #output { transition-duration: 200ms; }
#jdo-debug { position: fixed; bottom: 8px; left: 12px; z-index: 10001; font: 11px Inter, system-ui, sans-serif; color: #777; }
.jdo-loading #jdo-debug { color: #fff8e8; }
#jdo-debug summary { cursor: pointer; opacity: .7; }
#loading-logs { max-height: 35vh; max-width: calc(100vw - 48px); overflow: auto; padding: 16px; white-space: pre-wrap; background: #15110a; color: #fff8e8; }
textarea#sql-editor { padding: .5em; font-size: 1em; line-height: 1.4; }
@media (prefers-reduced-motion: reduce) {
  #loading-indicator, body > .jdo-header, #output { transition-duration: 200ms; }
  .jdo-sparkle { animation: none; }
}

/* Debug log only matters while booting. */
.jdo-ready #jdo-debug { display: none; }
