/* ---------- Tech palette ---------- */
:root{
  --bg:#070b16;
  --panel:#0d1424;
  --line:#1c2740;
  --ink:#e8edf9;
  --muted:#8592ad;
  --cyan:#22d3ee;
  --indigo:#6366f1;
  --violet:#a855f7;
  --ok:#34d399;
  --bad:#fb7185;
  --r:14px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

body{
  background:var(--bg);
  color:var(--ink);
  font:16px/1.6 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
}

/* faint tech grid + glow */
.grid-bg{
  position:fixed;inset:0;z-index:-1;
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  opacity:.35;
  mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 75%);
  -webkit-mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 75%);
}
.grid-bg::after{
  content:'';position:absolute;top:-220px;left:50%;transform:translateX(-50%);
  width:820px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(99,102,241,.35),transparent 65%);
  filter:blur(40px);
}

/* ---------- Nav ---------- */
.nav{
  max-width:1120px;margin:0 auto;padding:32px 24px 8px;
  display:flex;align-items:center;
}
.logo{
  color:var(--ink);text-decoration:none;font-weight:700;letter-spacing:-.02em;
  display:flex;align-items:center;gap:9px;font-size:18px;
}
.logo .thin{color:var(--muted);font-weight:400;margin-left:5px}
.logo .dot{
  width:10px;height:10px;border-radius:50%;
  background:linear-gradient(135deg,var(--cyan),var(--violet));
  box-shadow:0 0 14px var(--cyan);
}
/* ---------- Hero ---------- */
.layout{
  max-width:1120px;margin:0 auto;padding:48px 24px 80px;
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:stretch;
}
.block{display:flex;flex-direction:column}
.block .lede{min-height:52px}
.kicker{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);
  margin-bottom:18px;
}
.block h1{
  font-size:clamp(30px,5vw,46px);line-height:1.1;letter-spacing:-.03em;font-weight:800;
  min-height:2.2em; /* two lines — keeps both cards starting at the same height */
}
.grad{
  background:linear-gradient(100deg,var(--cyan),var(--indigo) 55%,var(--violet));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.lede{color:var(--muted);max-width:540px;margin:14px 0 28px;font-size:16px}

/* ---------- Cards ---------- */
.card{
  background:linear-gradient(180deg,rgba(20,28,48,.92),rgba(10,15,28,.92));
  border:1px solid var(--line);border-radius:var(--r);
  padding:30px 28px;scroll-margin-top:24px;
  position:relative;overflow:hidden;
}
.card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--cyan),var(--indigo),var(--violet));
  opacity:.9;
}
/* ---------- Fields ---------- */
.field{margin-bottom:18px}
label{
  display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;font-weight:600;
}
input,select,textarea{
  width:100%;padding:13px 14px;
  background:#080d19;color:var(--ink);
  border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:15px;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
textarea{resize:vertical;min-height:110px}
input::placeholder,textarea::placeholder{color:#4d5a75}
input:focus,select:focus,textarea:focus{
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(34,211,238,.15);
}
input:user-invalid{border-color:var(--bad)}
select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),
                   linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 20px) 22px,calc(100% - 15px) 22px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
select option{background:#0d1424}

/* price with $ prefix */
.money{display:flex;align-items:center;
  background:#080d19;border:1px solid var(--line);border-radius:10px;
  transition:border-color .2s,box-shadow .2s;
}
.money:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.15)}
.money span{padding:0 4px 0 14px;color:var(--cyan);font-weight:600}
.money input{border:none;background:transparent;padding-left:6px}
.money input:focus{box-shadow:none}

.err{display:block;color:var(--bad);font-size:12.5px;margin-top:6px;min-height:1px}

/* ---------- Button ---------- */
.btn{
  width:100%;margin-top:8px;padding:14px 18px;cursor:pointer;
  border:none;border-radius:10px;
  background:linear-gradient(100deg,var(--cyan),var(--indigo) 60%,var(--violet));
  color:#05080f;font:inherit;font-weight:700;font-size:15px;letter-spacing:.01em;
  display:flex;align-items:center;justify-content:center;gap:10px;
  transition:transform .15s,box-shadow .2s,filter .2s;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(99,102,241,.35);filter:brightness(1.06)}
.btn:active{transform:translateY(0)}
.btn span{transition:transform .2s}
.btn:hover span{transform:translateX(4px)}

/* ---------- Alerts ---------- */
.alert{
  border-radius:10px;padding:12px 14px;font-size:14px;margin-bottom:20px;
  border:1px solid;
}
.alert.ok{color:var(--ok);border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}
.alert.bad{color:var(--bad);border-color:rgba(251,113,133,.35);background:rgba(251,113,133,.08)}

@media(max-width:900px){
  .layout{grid-template-columns:1fr;gap:56px}
  .block h1{min-height:0}
  .block .lede{min-height:0}
}
@media(max-width:520px){
  .nav{padding:24px 18px 4px}
  .layout{padding:36px 18px 60px;gap:48px}
  .card{padding:24px 20px}
}

/* Honeypot — kept out of sight and out of the tab order, but not
   display:none, which the smarter bots detect and skip. */
.hp{
  position:absolute !important;
  left:-9999px;top:auto;width:1px;height:1px;
  overflow:hidden;opacity:0;pointer-events:none;
}
