#esb-root{
  --navy-deep:#060e1c; --navy:#0a1a30; --navy-card:#0d203c;
  --cyan:#3fc6ff; --cyan-soft:#8fe0ff; --cyan-dim:#1e5f85;
  --red:#ff3b5c; --red-soft:#ff8095; --white:#f4f9ff; --muted:#7f9bc2;
  --line:rgba(143,224,255,0.14);
  --ff-display:'Space Grotesk', sans-serif;
  --ff-body:'Inter', sans-serif;
  --ff-mono:'JetBrains Mono', monospace;

  position:relative; isolation:isolate;
  font-family:var(--ff-body);
  background:
    radial-gradient(ellipse 900px 600px at 85% -5%, rgba(63,198,255,0.16), transparent 60%),
    radial-gradient(ellipse 700px 500px at -5% 20%, rgba(255,59,92,0.10), transparent 55%),
    linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 40%, var(--navy-deep) 100%);
  color:var(--white);
  border-radius:22px;
  overflow:hidden;
  padding:10px 0 60px;
}
#esb-root *{ box-sizing:border-box; }
#esb-root label, #esb-root p, #esb-root span, #esb-root div{
  border:none; text-decoration:none; background-image:none; box-shadow:none; text-shadow:none;
}
#esb-root ul, #esb-root ol{ list-style:none; margin:0; padding:0; }
#esb-constellation{ position:absolute; inset:0; z-index:0; opacity:0.55; pointer-events:none; }
#esb-root .esb-wrap{ position:relative; z-index:1; max-width:880px; margin:0 auto; padding:0 24px; }

#esb-root .esb-hero{ padding:56px 0 34px; text-align:center; }
#esb-root .esb-brand{ display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:30px; }
#esb-root .esb-brand-mark{
  width:38px; height:38px; border-radius:9px;
  background:linear-gradient(145deg, var(--cyan), #1f6fa8);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 22px rgba(63,198,255,0.5); position:relative;
}
#esb-root .esb-brand-mark::after{ content:""; position:absolute; width:8px; height:8px; border-radius:50%; background:var(--red); top:-3px; right:-3px; box-shadow:0 0 8px var(--red); }
#esb-root .esb-brand-mark svg{width:20px; height:20px;}
#esb-root .esb-brand-custom{ display:flex; justify-content:center; }
#esb-root .esb-custom-logo-img{ max-height:64px; max-width:220px; width:auto; height:auto; object-fit:contain; }
#esb-root .esb-brand-name{font-family:var(--ff-display); font-weight:700; font-size:15px; letter-spacing:0.14em; color:var(--white);}
#esb-root .esb-brand-name span{color:var(--cyan);}
#esb-root .esb-brand-sub{display:block; font-family:var(--ff-mono); font-size:9px; letter-spacing:0.3em; color:var(--muted); margin-top:2px;}

#esb-root .esb-eyebrow{
  font-family:var(--ff-mono); font-size:12px; letter-spacing:0.25em;
  color:var(--cyan-soft); text-transform:uppercase; margin-bottom:16px;
  display:inline-flex; align-items:center; gap:10px;
}
#esb-root .esb-eyebrow::before, #esb-root .esb-eyebrow::after{content:""; width:24px; height:1px; background:linear-gradient(90deg, transparent, var(--cyan-dim));}
#esb-root .esb-eyebrow::after{background:linear-gradient(90deg, var(--cyan-dim), transparent);}

#esb-root h1{
  font-family:var(--ff-display); font-weight:700;
  font-size:clamp(28px, 5vw, 48px); line-height:1.1; letter-spacing:-0.01em;
  background:linear-gradient(180deg, #ffffff 30%, #b9e3ff 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:16px;
}
#esb-root h1 em{
  font-style:normal;
  background:linear-gradient(120deg, var(--cyan) 10%, var(--red-soft) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
#esb-root .esb-hero p{ color:var(--muted); font-size:15.5px; max-width:520px; margin:0 auto; line-height:1.65; }
#esb-root .esb-hero-meta{ display:flex; justify-content:center; gap:26px; margin-top:28px; font-family:var(--ff-mono); font-size:11px; color:var(--muted); letter-spacing:0.05em; flex-wrap:wrap; }
#esb-root .esb-hero-meta b{color:var(--cyan-soft); font-weight:500;}

#esb-root .esb-progress-shell{ padding:16px 0 8px; margin-bottom:6px; }
#esb-root .esb-progress-track{ display:flex; align-items:center; justify-content:space-between; max-width:700px; margin:0 auto; position:relative; padding:0 4px; }
#esb-root .esb-progress-line{ position:absolute; left:18px; right:18px; top:15px; height:1px; background:var(--line); z-index:0; }
#esb-root .esb-progress-line-fill{
  position:absolute; left:18px; top:15px; height:1px;
  background:linear-gradient(90deg, var(--cyan), var(--red-soft)); z-index:0;
  transition:width .5s cubic-bezier(.4,0,.2,1); width:0%;
}
#esb-root .esb-node{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; background:none; border:none; font-family:var(--ff-mono); }
#esb-root .esb-node-dot{
  width:28px; height:28px; border-radius:50%; background:var(--navy-card); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-size:10.5px; color:var(--muted); transition:all .35s ease;
}
#esb-root .esb-node-label{font-size:8.5px; color:var(--muted); letter-spacing:0.03em; white-space:nowrap; display:none;}
@media(min-width:700px){ #esb-root .esb-node-label{display:block;} }
#esb-root .esb-node.active .esb-node-dot{
  background:radial-gradient(circle at 35% 30%, var(--cyan-soft), var(--cyan) 60%, #0f6f9e);
  border-color:var(--cyan); color:var(--navy-deep); font-weight:700; box-shadow:0 0 16px rgba(63,198,255,0.6);
}
#esb-root .esb-node.active .esb-node-label{color:var(--cyan-soft);}
#esb-root .esb-node.done .esb-node-dot{ background:var(--red); border-color:var(--red); color:#fff; box-shadow:0 0 10px rgba(255,59,92,0.4); }
#esb-root .esb-node.done .esb-node-dot::before{content:"✓"; font-size:11px;}

#esb-root form{position:relative;}
#esb-root .esb-step{ display:none; animation:esbRise .4s ease; }
#esb-root .esb-step.active{display:block;}
@keyframes esbRise{ from{opacity:0; transform:translateY(12px);} to{opacity:1; transform:translateY(0);} }

#esb-root .esb-card{
  background:linear-gradient(165deg, rgba(15,37,68,0.75), rgba(10,26,48,0.55));
  border:1px solid var(--line); border-radius:20px; padding:34px 30px;
  box-shadow:0 20px 50px rgba(0,0,0,0.35); position:relative; overflow:hidden;
}
#esb-root .esb-step-index{font-family:var(--ff-mono); font-size:11px; color:var(--red-soft); letter-spacing:0.2em; margin-bottom:8px;}
#esb-root .esb-step-title{font-family:var(--ff-display); font-size:24px; font-weight:600; margin-bottom:8px; color:var(--white);}
#esb-root .esb-step-desc{color:var(--muted); font-size:14px; margin-bottom:28px; line-height:1.6;}

#esb-root .esb-field{margin-bottom:24px;}
#esb-root .esb-field label{ display:block; font-size:13px; font-weight:600; color:var(--cyan-soft); margin-bottom:12px; letter-spacing:0.02em; line-height:1.5; }
#esb-root .esb-field .esb-hint{display:block; font-weight:400; color:var(--muted); font-size:12px; margin-top:4px;}
#esb-root .esb-row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:560px){ #esb-root .esb-row2{grid-template-columns:1fr;} }

#esb-root input[type=text], #esb-root input[type=email], #esb-root input[type=tel], #esb-root input[type=url], #esb-root textarea, #esb-root select{
  width:100%; background:rgba(6,14,28,0.65); border:1px solid var(--line);
  border-radius:10px; padding:12px 14px; color:var(--white); font-family:var(--ff-body);
  font-size:14.5px; transition:border-color .25s, box-shadow .25s;
}
#esb-root input::placeholder, #esb-root textarea::placeholder{color:#4d6788;}
#esb-root input:focus, #esb-root textarea:focus, #esb-root select:focus{ outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(63,198,255,0.15); }
#esb-root textarea{resize:vertical; min-height:88px; font-family:var(--ff-body);}
#esb-root select{appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%233fc6ff' stroke-width='1.5' fill='none'/></svg>");
  background-repeat:no-repeat; background-position:right 15px center;
}
#esb-root select option{background:var(--navy); color:var(--white);}

#esb-root .esb-file-drop{
  border:1.5px dashed var(--cyan-dim); border-radius:12px; padding:20px; text-align:center;
  background:rgba(63,198,255,0.05); position:relative; cursor:pointer; transition:all .2s;
}
#esb-root .esb-file-drop:hover{ border-color:var(--cyan); background:rgba(63,198,255,0.08); }
#esb-root .esb-file-drop input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; }
#esb-root .esb-fd-icon{ font-size:20px; margin-bottom:8px; }
#esb-root .esb-fd-text{ color:var(--muted); font-size:13px; }
#esb-root .esb-fd-name{ color:var(--cyan-soft); font-size:12.5px; margin-top:8px; font-family:var(--ff-mono); display:none; }

#esb-root .esb-chip-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px;}
#esb-root .esb-chip{position:relative; display:flex;}
#esb-root .esb-chip input{position:absolute; opacity:0; width:100%; height:100%; cursor:pointer; margin:0; top:0; left:0;}
#esb-root .esb-chip-face{
  display:flex; align-items:center; gap:9px; padding:11px 13px; border-radius:10px; width:100%;
  border:1px solid var(--line); background:rgba(6,14,28,0.55); font-size:13.5px; line-height:1.2; color:var(--muted);
  transition:all .22s ease; cursor:pointer;
}
#esb-root .esb-chip-face .esb-box{
  width:15px; height:15px; border-radius:4px; border:1px solid var(--cyan-dim); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; transition:all .2s;
}
#esb-root .esb-chip input:checked ~ .esb-chip-face{ border-color:var(--cyan); background:rgba(63,198,255,0.10); color:var(--white); }
#esb-root .esb-chip input:checked ~ .esb-chip-face .esb-box{background:var(--cyan); border-color:var(--cyan);}
#esb-root .esb-chip input:checked ~ .esb-chip-face .esb-box::after{content:"✓"; font-size:10px; color:var(--navy-deep); font-weight:700;}

#esb-root .esb-pill-row{display:flex; flex-wrap:wrap; align-items:stretch; gap:10px;}
#esb-root .esb-pill{position:relative; display:flex;}
#esb-root .esb-pill input{position:absolute; opacity:0; cursor:pointer; width:100%; height:100%; top:0; left:0; margin:0;}
#esb-root .esb-pill-face{
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 18px; border-radius:999px; border:1px solid var(--line); background:rgba(6,14,28,0.55);
  font-size:13px; line-height:1.2; color:var(--muted); transition:all .2s ease; cursor:pointer; font-family:var(--ff-mono);
  white-space:nowrap;
}
#esb-root .esb-pill input:checked ~ .esb-pill-face{
  background:linear-gradient(120deg, var(--cyan), #1f8fc4); color:var(--navy-deep); border-color:var(--cyan); font-weight:600;
}
#esb-root .esb-alt-pill input:checked ~ .esb-pill-face{
  background:linear-gradient(120deg, var(--red), #b8203a); color:#fff; border-color:var(--red);
}

#esb-root .esb-sub-block{
  margin-top:14px; padding:16px 16px 2px; border-left:2px solid var(--cyan-dim);
  background:rgba(63,198,255,0.04); border-radius:0 10px 10px 0; display:none;
}
#esb-root .esb-sub-block.show{display:block; animation:esbRise .3s ease;}
#esb-root .esb-sub-block.esb-alt{border-left-color:var(--red);}

#esb-root .esb-step-nav{display:flex; justify-content:space-between; align-items:center; margin-top:30px;}
#esb-root .esb-btn{
  font-family:var(--ff-body); font-weight:600; font-size:14px; padding:12px 24px;
  border-radius:10px; border:1px solid transparent; cursor:pointer; transition:all .22s ease;
  display:inline-flex; align-items:center; gap:8px;
}
#esb-root .esb-btn-primary{ background:linear-gradient(120deg, var(--cyan), #1f8fc4); color:var(--navy-deep); box-shadow:0 8px 24px rgba(63,198,255,0.28); }
#esb-root .esb-btn-primary:hover{transform:translateY(-1px); box-shadow:0 12px 28px rgba(63,198,255,0.4);}
#esb-root .esb-btn-ghost{ background:transparent; border-color:var(--line); color:var(--muted); }
#esb-root .esb-btn-ghost:hover{color:var(--white); border-color:var(--cyan-dim);}
#esb-root .esb-btn-final{ background:linear-gradient(120deg, var(--red), #b8203a); color:#fff; box-shadow:0 8px 24px rgba(255,59,92,0.3); }
#esb-root .esb-btn-final:hover{transform:translateY(-1px); box-shadow:0 12px 30px rgba(255,59,92,0.42);}
#esb-root .esb-btn:disabled{opacity:0.45; cursor:not-allowed; transform:none !important;}

#esb-root .esb-review-grid{display:grid; gap:12px; margin-bottom:22px;}
#esb-root .esb-review-item{
  display:flex; justify-content:space-between; gap:16px; padding:13px 15px;
  background:rgba(6,14,28,0.5); border:1px solid var(--line); border-radius:10px; font-size:13.5px;
}
#esb-root .esb-review-item .esb-k{color:var(--cyan-soft); font-weight:600; min-width:170px; flex-shrink:0;}
#esb-root .esb-review-item .esb-v{color:var(--white); text-align:right; word-break:break-word;}
#esb-root .esb-review-item .esb-v.esb-empty{color:#4d6788; font-style:italic;}
#esb-root .esb-submit-error{ color:var(--red-soft); font-size:13px; margin-bottom:14px; display:none; }

#esb-root .esb-success{display:none; text-align:center; padding:60px 20px;}
#esb-root .esb-success.active{display:block; animation:esbRise .5s ease;}
#esb-root .esb-success-icon{
  width:74px; height:74px; margin:0 auto 24px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--cyan-soft), var(--cyan) 60%, #0f6f9e);
  display:flex; align-items:center; justify-content:center; box-shadow:0 0 40px rgba(63,198,255,0.5);
}
#esb-root .esb-success h2{font-family:var(--ff-display); font-size:26px; margin-bottom:12px;}
#esb-root .esb-success p{color:var(--muted); max-width:420px; margin:0 auto 24px; line-height:1.6;}
#esb-root .esb-success-summary{
  max-width:560px; margin:0 auto 30px; text-align:left;
  background:rgba(6,14,28,0.5); border:1px solid var(--line); border-radius:16px; padding:22px 22px 8px;
}
#esb-root .esb-success-summary-title{
  font-family:var(--ff-mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--cyan-soft); margin-bottom:16px; text-align:center;
}
#esb-root .esb-success-summary .esb-review-grid{ margin-bottom:14px; max-height:420px; overflow-y:auto; padding-right:4px; }

#esb-root .esb-footer{
  text-align:center; margin-top:46px; padding-top:22px; border-top:1px solid var(--line);
  color:var(--muted); font-size:12px; font-family:var(--ff-mono); letter-spacing:0.05em;
}
#esb-root .esb-required{color:var(--red-soft); margin-left:2px;}
#esb-root .esb-captcha-field{ display:flex; justify-content:flex-start; }
#esb-root .esb-captcha-field > div{ transform-origin:left top; }
#esb-root .esb-error-msg{color:var(--red-soft); font-size:12px; margin-top:6px; display:none;}
#esb-root .esb-field.esb-invalid input, #esb-root .esb-field.esb-invalid textarea{border-color:var(--red);}
#esb-root .esb-field.esb-invalid .esb-error-msg{display:block;}
