@font-face { font-family:'Space Grotesk'; font-style:normal; font-weight:400; font-display:swap;
  src:url('./fonts/space-grotesk-400.woff2') format('woff2'); }
@font-face { font-family:'Space Grotesk'; font-style:normal; font-weight:500; font-display:swap;
  src:url('./fonts/space-grotesk-500.woff2') format('woff2'); }
@font-face { font-family:'Space Grotesk'; font-style:normal; font-weight:600; font-display:swap;
  src:url('./fonts/space-grotesk-600.woff2') format('woff2'); }
@font-face { font-family:'Space Grotesk'; font-style:normal; font-weight:700; font-display:swap;
  src:url('./fonts/space-grotesk-700.woff2') format('woff2'); }
@font-face { font-family:'JetBrains Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url('./fonts/jetbrains-mono-400.woff2') format('woff2'); }
@font-face { font-family:'JetBrains Mono'; font-style:normal; font-weight:500; font-display:swap;
  src:url('./fonts/jetbrains-mono-500.woff2') format('woff2'); }
@font-face { font-family:'JetBrains Mono'; font-style:normal; font-weight:700; font-display:swap;
  src:url('./fonts/jetbrains-mono-700.woff2') format('woff2'); }
:root {
  --ink: #141a22;
  --blue: #1c6fbe;
  --blue-soft: #4a9ee8;
  --muted: #4b5563;
  --line: #e7eaee;
  --wash: #f4f5f7;
}
body { margin:0; background:#ffffff; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
a { color:var(--blue); text-decoration:none; }
a:hover { color:var(--ink); }
:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.skip-link {
  position:absolute; left:16px; top:0; transform:translateY(-120%);
  background:var(--ink); color:#fff; padding:10px 16px; z-index:100;
  font-family:'Space Grotesk',Helvetica,sans-serif; font-size:14px; font-weight:600;
}
.skip-link:focus { transform:translateY(12px); }
@keyframes fadeUp {
  from { opacity:0; transform:translateY(14px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  from { opacity:0; }
  to { opacity:1; }
}
.hero-copy { animation:fadeUp 0.7s ease-out both; }
.hero-visual { animation:fadeUp 0.85s ease-out 0.12s both; }
.faq-panel { animation:fadeIn 0.2s ease-out; }
.field-label {
  display:block; font-size:12px; font-weight:500; letter-spacing:0.02em;
  color:#cfe3f8; margin-bottom:6px;
}
.field-input {
  width:100%; box-sizing:border-box; background:#ffffff; border:none;
  padding:15px 16px; font-family:'Space Grotesk',Helvetica,sans-serif;
  font-size:15px; color:var(--ink);
}
.field-input::placeholder { color:#9aa5b2; }
select.field-input { color:var(--muted); }
@keyframes spin {
  to { transform:rotate(360deg); }
}
.btn-spinner {
  width:16px; height:16px; border:2px solid rgba(28,111,190,0.25);
  border-top-color:#1c6fbe; border-radius:50%;
  animation:spin 0.7s linear infinite; flex:0 0 auto;
}
button[disabled] { opacity:0.85; cursor:wait; }
