/* ===========================================================================
   GoldEagle — instrument-panel styling.
   Tailwind (CDN) handles layout utilities. This file carries the identity:
   reticle marks, the interception board, and the scan.
   ========================================================================= */

:root {
  --midnight: #070A10;
  --hangar:   #0F131C;
  --steel:    #1C2230;
  --gold:     #D9A441;
  --talon:    #F0C97A;
  --strike:   #E2493B;
  --bone:     #DDE2EA;
  --muted:    #7C8798;
}

/* Weight utilities used alongside the display face. */
.font-400 { font-weight: 400; }
.font-500 { font-weight: 500; }
.font-600 { font-weight: 600; }
.font-700 { font-weight: 700; }

body {
  background-image:
    radial-gradient(ellipse 900px 520px at 50% -8%, rgba(217, 164, 65, .07), transparent 70%),
    linear-gradient(rgba(28, 34, 48, .35) 1px, transparent 1px),
    linear-gradient(90deg, rgba(28, 34, 48, .35) 1px, transparent 1px);
  background-size: 100% 100%, 64px 64px, 64px 64px;
  background-attachment: fixed;
}

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--gold); color: var(--midnight);
  padding: .65rem 1rem; font-weight: 600;
}
.skip-link:focus { left: 0; }

:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* --- Type -------------------------------------------------------------- */

.eyebrow {
  font-family: "IBM Plex Mono", monospace;
  font-size: .6875rem;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.h-section {
  font-family: "Chakra Petch", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.01em;
  line-height: 1.1;
}

/* --- Controls ---------------------------------------------------------- */

.btn-gold,
.btn-ghost {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: "Chakra Petch", sans-serif;
  font-weight: 600; font-size: .8125rem;
  text-transform: uppercase; letter-spacing: .12em;
  padding: .8rem 1.5rem;
  border: 1px solid transparent;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.btn-gold {
  background: var(--gold);
  color: var(--midnight);
  box-shadow: 0 0 0 0 rgba(217, 164, 65, .45);
}
.btn-gold:hover {
  background: var(--talon);
  box-shadow: 0 0 26px -6px rgba(217, 164, 65, .7);
}

.btn-ghost {
  border-color: var(--steel);
  color: var(--bone);
}
.btn-ghost:hover {
  border-color: var(--gold);
  color: var(--gold);
}

.nav-link {
  font-family: "Chakra Petch", sans-serif;
  font-size: .8125rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--muted);
  padding: .5rem .85rem;
  position: relative;
  transition: color .18s ease;
}
.nav-link:hover { color: var(--bone); }
.nav-link--on   { color: var(--bone); }
.nav-link--on::after {
  content: ""; position: absolute; left: .85rem; right: .85rem; bottom: .1rem;
  height: 1px; background: var(--gold);
}

/* --- Reticle: registration marks at the corners of a panel ------------- */

.reticle { position: relative; }
.reticle::before,
.reticle::after {
  content: ""; position: absolute; width: 10px; height: 10px;
  border: 1px solid var(--gold); pointer-events: none;
}
.reticle::before { top: -1px; left: -1px;  border-right: 0; border-bottom: 0; }
.reticle::after  { bottom: -1px; right: -1px; border-left: 0;  border-top: 0; }

/* --- Panels ------------------------------------------------------------ */

.panel {
  background: var(--hangar);
  border: 1px solid var(--steel);
  transition: border-color .2s ease, transform .2s ease;
}
.panel:hover { border-color: rgba(217, 164, 65, .5); }

/* --- The interception board (hero signature) --------------------------- */

.board {
  background: linear-gradient(180deg, #0B0F17 0%, #080B12 100%);
  border: 1px solid var(--steel);
  position: relative;
  overflow: hidden;
}

.board__scan {
  position: absolute; inset: 0; pointer-events: none; z-index: 2;
  background: linear-gradient(180deg, transparent, rgba(217, 164, 65, .16), transparent);
  height: 90px;
  animation: sweep 5.5s cubic-bezier(.4, 0, .2, 1) infinite;
}
@keyframes sweep {
  0%   { transform: translateY(-100px); opacity: 0; }
  12%  { opacity: 1; }
  88%  { opacity: 1; }
  100% { transform: translateY(420px); opacity: 0; }
}

.strip {
  display: grid;
  grid-template-columns: 62px 1fr 118px 92px;
  align-items: center;
  gap: .75rem;
  font-family: "IBM Plex Mono", monospace;
  font-size: .75rem;
  padding: .6rem .9rem;
  border-bottom: 1px solid rgba(28, 34, 48, .8);
  border-left: 2px solid transparent;
  color: var(--muted);
  animation: strip-in .35s ease both;
}
@keyframes strip-in {
  from { opacity: 0; transform: translateX(-10px); }
  to   { opacity: 1; transform: none; }
}

.strip__verdict {
  justify-self: end;
  font-weight: 500;
  letter-spacing: .1em;
}

.strip--cleared { border-left-color: rgba(217, 164, 65, .35); }
.strip--cleared .strip__verdict { color: var(--gold); }
.strip--cleared .strip__path    { color: rgba(221, 226, 234, .78); }

.strip--struck {
  border-left-color: var(--strike);
  background: rgba(226, 73, 59, .07);
  animation: strip-in .35s ease both, strike-flash .7s ease 1;
}
.strip--struck .strip__verdict { color: var(--strike); }
.strip--struck .strip__path    { color: rgba(226, 73, 59, .92); }
@keyframes strike-flash {
  0%   { background: rgba(226, 73, 59, .3); }
  100% { background: rgba(226, 73, 59, .07); }
}

.strip__method {
  color: var(--bone);
  font-weight: 500;
  font-size: .6875rem;
  letter-spacing: .06em;
}
.strip__origin { font-size: .6875rem; }

@media (max-width: 640px) {
  .strip { grid-template-columns: 52px 1fr 78px; font-size: .6875rem; padding: .55rem .7rem; }
  .strip__origin { display: none; }
}

/* --- Live dot ---------------------------------------------------------- */

.pulse-dot { animation: pulse 2s ease-in-out infinite; }
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .25; }
}

/* --- Scroll reveal ----------------------------------------------------- */

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-in { opacity: 1; transform: none; }

/* --- Prose (privacy / terms) ------------------------------------------- */

.legal h2 {
  font-family: "Chakra Petch", sans-serif;
  font-weight: 700; text-transform: uppercase;
  font-size: 1.25rem; letter-spacing: .01em;
  color: var(--bone);
  margin-top: 3rem; padding-top: 1.5rem;
  border-top: 1px solid var(--steel);
  scroll-margin-top: 6rem;
}
.legal h2:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.legal h3 {
  font-weight: 600; color: var(--bone);
  margin-top: 1.75rem; margin-bottom: .5rem;
}
.legal p, .legal li { color: var(--muted); line-height: 1.75; }
.legal p  { margin-top: 1rem; }
.legal ul { margin-top: 1rem; list-style: none; }
.legal li { position: relative; padding-left: 1.25rem; margin-top: .5rem; }
.legal li::before {
  content: ""; position: absolute; left: 0; top: .7em;
  width: 5px; height: 1px; background: var(--gold);
}
.legal a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.legal strong { color: var(--bone); font-weight: 600; }

/* --- Forms ------------------------------------------------------------- */

.field {
  width: 100%;
  background: var(--midnight);
  border: 1px solid var(--steel);
  color: var(--bone);
  padding: .8rem .9rem;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: .9375rem;
  transition: border-color .18s ease;
}
.field:focus  { border-color: var(--gold); outline: none; }
.field::placeholder { color: #4C5666; }
.field--error { border-color: var(--strike); }

.label {
  display: block;
  font-family: "IBM Plex Mono", monospace;
  font-size: .6875rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .5rem;
}

.error-text {
  color: var(--strike);
  font-family: "IBM Plex Mono", monospace;
  font-size: .6875rem;
  margin-top: .4rem;
}

/* Honeypot — hidden from people, visible to naive bots. */
.trap {
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px; overflow: hidden;
}

/* --- Reduced motion ---------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1; transform: none; }
  .board__scan { display: none; }
}
