/* Editable rules supplement the approved reference utility stylesheet.
   Keep design changes here during the staged reconstruction. */
:root { color-scheme: dark; --proxima-navy: #020847; --dialog-navy: #010420; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; background: var(--proxima-navy); }
body { margin: 0; }
[id] { scroll-margin-top: 90px; }
.member-trigger { display: block; width: 100%; text-align: left; cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid #5ac8fa; outline-offset: 5px; }
.skip-link { position: fixed; top: -100px; left: 20px; padding: 12px 20px; z-index: 100; color: white; background: var(--dialog-navy); }
.skip-link:focus { top: 10px; }
.source-dialog { color: #fff; background: var(--dialog-navy); border: 1px solid #ffffff26; border-radius: 16px; padding: 40px; width: min(700px, calc(100vw - 32px)); max-height: 90dvh; margin: auto; overflow-y: auto; }
.source-dialog:not([open]) { display: none; }
.source-dialog::backdrop { background: #000a; backdrop-filter: blur(8px); }
.source-dialog h2 { font-size: clamp(1.6rem, 4vw, 2.5rem); margin: 18px 0; }
.source-dialog p { color: #ffffffb3; line-height: 1.7; margin: 20px 0; }
.source-dialog .dialog-role { color: #ffffff80; }
.dialog-close { float: right; font: inherit; font-size: 32px; line-height: 1; padding: 4px 8px; cursor: pointer; }
.dialog-portrait { width: 180px; height: 220px; object-fit: cover; border-radius: 8px; }
.dialog-company-logo { background: white; border-radius: 12px; padding: 20px; width: 100%; height: 120px; object-fit: contain; }
.legal-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: none; padding: 0; border: 0; border-radius: 0; }
.legal-dialog h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 16px; }
.legal-dialog p { margin: 0; }
.legal-dialog [data-close-dialog] { font-size: 40px; z-index: 1; }
[data-toc] { background: transparent !important; color: #ffffff73 !important; }
[data-toc][aria-current] { background: #ffffff14 !important; color: #f3f5f8 !important; }
/* Keep the static fallback from flashing before the typing module initializes. */
@media (prefers-reduced-motion: no-preference) {
  [data-slogan]:not([data-typing-ready]) { visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
