/* Shared presentation, navigation and accessible motion. */
:root { --text2: #8a9bb3; --muted: #8a9bb3; }
html { scroll-padding-top: 88px; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a, button { touch-action: manipulation; }
:focus-visible { outline: 2px solid #a88aff; outline-offset: 4px; }
button:disabled { cursor: not-allowed; }
img { max-width: 100%; }
.skip-link { position: fixed; top: 12px; left: 16px; z-index: 20000; transform: translateY(-180%); background: #e7faff; color: #061321; padding: 12px 18px; border-radius: 6px; font: 600 14px/1.4 system-ui, sans-serif; text-decoration: none; }
.skip-link:focus { transform: translateY(0); }

.site-footer { width: 100%; border-top: 1px solid #223149; color: #a4b3c9; background: #090e18; padding: 58px 24px 28px; font: 400 14px/1.6 'Space Grotesk', system-ui, sans-serif; }
.site-footer-inner { max-width: 1180px; margin: 0 auto; }
.site-footer-top { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(0, 1.8fr); gap: 72px; padding-bottom: 44px; }
.site-brand { display: inline-flex; align-items: center; gap: 10px; color: #f5f8ff; font-size: 24px; font-weight: 600; letter-spacing: -.04em; text-decoration: none; }
.site-brand img { object-fit: contain; flex: 0 0 40px; }
.site-brand em { font-style: normal; color: #00d4ff; }
.site-footer .site-footer-tagline { margin: 18px 0 8px; color: #edf3ff; max-width: 280px; text-align: left; font-size: 17px; line-height: 1.5; }
.site-footer .site-footer-description { margin: 0; max-width: 290px; color: #8a9bb3; text-align: left; font-size: 13px; line-height: 1.8; }
.site-footer-nav { display: grid; grid-template-columns: 1fr 1.3fr .8fr; gap: 32px; }
.site-footer-nav h2 { margin: 4px 0 19px; color: #f0f4fb; font: 500 11px/1.5 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .1em; }
.site-footer-nav a { display: block; width: fit-content; padding: 5px 0; color: #98abc4; font-size: 13px; line-height: 1.6; text-decoration: none; transition: color 180ms ease; }
.site-footer-nav a:hover { color: #70e7ff; }
.site-footer-nav a span { margin-left: 5px; }
.site-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid #1b293e; font: 400 11px/1.6 'JetBrains Mono', monospace; color: #8194ae; }
.site-footer-bottom > div { display: flex; flex-wrap: wrap; gap: 24px; }
.site-footer-bottom a, .site-footer-bottom button { background: none; padding: 0; border: 0; color: #a4b3c9; font: inherit; text-decoration: none; cursor: pointer; }
.site-footer-bottom a:hover, .site-footer-bottom button:hover { color: #70e7ff; }

body.auth-page { display: flex; flex-direction: column; align-items: center; padding: 0; }
.auth-page .auth-card { margin: clamp(44px, 8vh, 90px) 20px; width: min(460px, calc(100% - 40px)); }
.auth-page .site-footer { margin-top: auto; }
.legal-main p, .legal-main li { text-align: left; }
.legal-shell { padding-bottom: 80px; }
.legal-links { gap: 10px; }
.legal-section { scroll-margin-top: 28px; }

#navbar { transition: background 200ms ease, box-shadow 200ms ease; }
#navbar.is-scrolled { background: rgba(11, 15, 25, .97); box-shadow: 0 8px 30px #0002; }
.btn-p, .btn-s, .auth-button, .docs-card { transition: transform 220ms cubic-bezier(.22, 1, .36, 1), border-color 220ms, background 220ms, box-shadow 220ms; }
@media (hover: hover) and (pointer: fine) {
  .btn-p:hover, .btn-s:hover, .auth-button:not(:disabled):hover { transform: translateY(-2px); }
  .docs-card:hover { border-color: #356077; transform: translateY(-3px); }
}
.btn-p:active, .btn-s:active, .auth-button:not(:disabled):active { transform: translateY(0); }
.hero-right.float-anim { animation: none; }
.hero-scene-active { animation: mesh-drift 8s ease-in-out infinite; }
@keyframes mesh-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
.motion-paused .hero-scene-active { animation-play-state: paused; }
.faq-btn[aria-expanded="true"] { color: #eafaff; }
.nav-mobile-menu[aria-hidden="true"] { visibility: hidden; }
.nav-mobile-menu[aria-hidden="false"] { visibility: visible; }

@media (max-width: 900px) {
  .site-footer-top { grid-template-columns: 1fr; gap: 38px; }
  .site-footer-brand { max-width: 440px; }
  .site-footer .site-footer-description { max-width: 360px; }
}
@media (max-width: 540px) {
  .site-footer { padding: 38px 22px 82px; }
  .site-footer-nav { grid-template-columns: 1fr 1.3fr; gap: 26px 20px; }
  .site-footer-bottom { align-items: flex-start; flex-direction: column; gap: 16px; }
  .site-footer-bottom > div { gap: 22px; }
  .auth-page .auth-card { padding: 26px 22px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal-ready .rv:not(.vis), .rv, .hero-scene-active { opacity: 1 !important; transform: none !important; }
}

.site-notice { position: fixed; z-index: 10100; top: 82px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 32px); padding: 14px 20px; border: 1px solid #42647d; background: #122033; color: #ecf6ff; border-radius: 9px; box-shadow: 0 10px 40px #0005; font: 400 14px/1.6 system-ui, sans-serif; }

.auth-support { display: block; text-align: center; color: #70e7ff; font-size: 14px; overflow-wrap: anywhere; }

[hidden] { display: none !important; }
a.help-card { color: inherit; text-decoration: none; transition: border-color 180ms ease, transform 180ms ease; }
a.help-card:hover { border-color: #467491; transform: translateY(-2px); }

/* Contact replaces the enterprise purchase action. */
a.buy-plan-card { text-decoration: none; color: inherit; }
.paypal-return { width: min(480px, calc(100vw - 32px)); box-sizing: border-box; max-height: calc(100dvh - 100px); overflow: auto; }
.paypal-return strong { display: block; font-size: 17px; }
.paypal-return p { margin: 6px 0 14px; color: #d4e3f1; }
.paypal-return-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.paypal-return-actions button, .paypal-return-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; box-sizing: border-box; padding: 8px 12px; border: 1px solid #527d9a; border-radius: 6px; background: #182e45; color: #ecf6ff; font: inherit; text-decoration: none; cursor: pointer; }
.paypal-return-actions button:hover, .paypal-return-actions a:hover { background: #25445e; }
.paypal-return-actions button:focus-visible, .paypal-return-actions a:focus-visible { outline: 2px solid #70e7ff; outline-offset: 3px; }
