:root{
  --bg0:#050505;
  --bg1:#0b0b0b;
  --card:rgba(0,0,0,.72);
  --text:#ffffff;
  --muted:rgba(255,255,255,.78);
  --muted2:rgba(255,255,255,.60);
  --line:rgba(255,255,255,.16);
  --blue:#276bff;
  --blue2:#276bff;
  --shadow: 0 25px 70px rgba(0,0,0,.60);
  --r2: 24px;
  --font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font);
  color:var(--text);
  background: linear-gradient(180deg, var(--bg0), var(--bg1));
  overflow-x:hidden;
}
.bg{position:fixed; inset:0; pointer-events:none; z-index:-1}
.hero{position:absolute; inset:0; background-image:url("./hero.jpg"); background-size:cover; background-position:center; filter:saturate(1.05) contrast(1.05) brightness(.9); transform:scale(1.03);}
.overlay{position:absolute; inset:0; background:
  radial-gradient(900px 600px at 20% 20%, rgba(255,255,255,.28) 0%, transparent 60%),
  radial-gradient(900px 600px at 80% 10%, rgba(255,255,255,.12) 0%, transparent 60%),
  linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.78));}
.noise{position:absolute; inset:0; opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;}
.glow{position:absolute; width:620px; height:620px; filter:blur(90px); opacity:.28; border-radius:50%;}
.g1{left:-180px; top:-210px; background:radial-gradient(circle at 30% 30%, var(--blue), transparent 65%)}
.g2{right:-210px; top:-110px; background:radial-gradient(circle at 40% 40%, var(--blue2), transparent 65%)}

.wrap{max-width:1040px; margin:0 auto; padding:44px 18px 60px;}
.topbar{display:flex; justify-content:space-between; align-items:flex-end; gap:18px; margin-bottom:16px; flex-wrap:wrap;}
.titleBlock{min-width:min(540px,100%);}
.kicker{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted2); margin-bottom:8px;}
h1{margin:0 0 8px; font-size:42px; line-height:1.05; letter-spacing:-.02em;}
.sub{margin:0; color:var(--muted); max-width:70ch; line-height:1.55; font-size:15px;}

.brandBlock{display:flex; align-items:center; justify-content:flex-end; gap:12px; min-width:240px;}
.brandLogo{height:72px; width:auto; opacity:.98; filter:drop-shadow(0 10px 22px rgba(0,0,0,.55)); display:none;}
.brandFallback{display:grid; place-items:center; width:72px; height:72px; border-radius:18px; background:rgba(0,0,0,.55); border:1px solid var(--line); font-weight:900; letter-spacing:.15em; color:#ffffff;}

.card{border-radius:var(--r2); background: linear-gradient(180deg, rgba(0,0,0,.78), rgba(0,0,0,.62));
  border:1px solid var(--line); box-shadow:var(--shadow); overflow:hidden;}
.progressWrap{padding:16px 18px 0;}
.progressTop{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;}
.pill{display:inline-flex; gap:10px; align-items:center; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10); font-weight:600; font-size:13px; color:#ffffff;}
.stepText{font-weight:800; color:#ffffff; font-size:13px;}
.muted{color:var(--muted2);}
.progressBar{margin-top:12px; height:10px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); overflow:hidden;}
.progressFill{height:100%; width:0%; border-radius:999px; background:linear-gradient(90deg, rgba(255,255,255,.95), rgba(255,255,255,.90)); transition:width .25s ease;}

.form{padding:18px;}
.grid{display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px;}
.field{display:flex; flex-direction:column; gap:8px;}
.fieldWide{grid-column:1 / -1;}
.label{font-weight:800; font-size:13px; color:#ffffff; display:flex; gap:8px; align-items:center;}
.req{color:var(--blue); font-weight:900;}
.hint{margin-top:-2px; font-size:12px; color:var(--muted2);}

input,select,textarea{width:100%; font-family:var(--font); color:var(--text); background:rgba(0,0,0,.50);
  border:1px solid var(--line); border-radius:14px; padding:12px 12px; outline:none; transition:border-color .12s ease, box-shadow .12s ease;}
textarea{resize:vertical; min-height:110px;}
input::placeholder, textarea::placeholder{color:rgba(255,255,255,.35);}
select{appearance:none; background-image:
  linear-gradient(45deg, transparent 50%, rgba(255,255,255,.85) 50%),
  linear-gradient(135deg, rgba(255,255,255,.85) 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px);
  background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:34px;}
input:focus,select:focus,textarea:focus{border-color:rgba(255,255,255,.95); box-shadow:0 0 0 4px rgba(255,255,255,.18);}

.stepTitle{font-size:18px; font-weight:900; margin:0 0 8px;}
.stepDesc{margin:0 0 16px; color:var(--muted); line-height:1.55;}

.qList{display:flex; flex-direction:column; gap:14px;}
.qCard{padding:14px 14px 12px; border-radius:18px; border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04);}
.qText{font-weight:800; margin:0 0 10px; color:#eef2ff; line-height:1.35;}
.scale{display:grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap:8px;}
.scale input{display:none;}
.scale label{display:flex; justify-content:center; align-items:center; padding:10px 8px; border-radius:14px; border:1px solid rgba(255,255,255,.10);
  background:rgba(6,10,20,.35); cursor:pointer; user-select:none; font-weight:900; color:#dbe6ff;}
.scale input:checked + label{border-color:rgba(255,255,255,.9); background:rgba(255,255,255,.22);}
.scaleLegend{margin-top:8px; display:flex; justify-content:space-between; color:var(--muted2); font-size:11px;}

.actions{display:flex; justify-content:space-between; gap:12px; margin-top:16px; align-items:center; flex-wrap:wrap;}
.actionsRight{display:flex; gap:12px; align-items:center;}
.btn{border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:12px 14px; font-family:var(--font); font-weight:900;
  cursor:pointer; display:inline-flex; gap:10px; align-items:center;}
.btn.ghost{background:rgba(255,255,255,.03); color:#ffffff;}
.btn.primary{background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,255,255,.90)); border-color:rgba(255,255,255,.12); color:#000;
  box-shadow:0 16px 40px rgba(255,255,255,.18);}
.arrow{width:18px; height:18px;}
.status{margin-top:12px; min-height:18px; font-size:13px; color:var(--muted);}
.status.err{color:#ff9aa2;}
.status.ok{color:#a7f3d0;}
.foot{margin-top:14px; display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; padding-top:12px; border-top:1px solid rgba(255,255,255,.08);}
.tag{font-size:12px; color:var(--muted2);}
.mutedSmall{font-size:12px; color:var(--muted2);}

.toast{position:fixed; bottom:22px; left:50%; transform:translateX(-50%); background:rgba(10,14,30,.92); border:1px solid rgba(255,255,255,.12);
  color:#ffffff; padding:10px 12px; border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,.5); opacity:0; pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;}
.toast.show{opacity:1; transform:translateX(-50%) translateY(-2px);}

/* Modal */
.modalBackdrop{position:fixed; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; padding:18px; z-index:50;}
.modalBackdrop[hidden]{display:none !important;}
.modal{width:min(760px,100%); border-radius:22px; background:rgba(10,14,30,.96); border:1px solid rgba(255,255,255,.14); box-shadow:0 25px 80px rgba(0,0,0,.7);
  padding:18px 18px 16px; position:relative;}
.modalX{position:absolute; top:10px; right:12px; background:transparent; border:none; color:#cfe0ff; font-size:26px; cursor:pointer;}
.modalTop{display:flex; gap:10px; align-items:center; margin-bottom:10px;}
.badgeOk{display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.22); border:1px solid rgba(255,255,255,.40); font-weight:900;}
.recap{border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04); border-radius:16px; padding:12px; color:#ffffff; font-size:13px; line-height:1.5; white-space:pre-wrap;}
.modalActions{display:flex; justify-content:flex-end; margin-top:14px;}

@media (max-width:860px){
  .grid{grid-template-columns:1fr}
  h1{font-size:34px}
  .brandLogo,.brandFallback{height:60px; width:60px}
}


/* ===============================
   PREMIUM MICRO-INTERACTIONS (ADD-ON)
   =============================== */

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 0 rgba(39,107,255,0.2); }
  50% { box-shadow: 0 0 25px rgba(39,107,255,0.45); }
}

.qCard {
  transition: all 0.25s ease;
}

.qCard:hover {
  transform: translateY(-2px);
  border-color: rgba(255,255,255,0.25);
  box-shadow: 0 12px 32px rgba(0,0,0,0.35);
}

.scale input:checked + label {
  background: rgba(39,107,255,0.15);
  border-color: #276bff;
  animation: glowPulse 2.5s infinite;
}

/* Buttons */
button:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 40px rgba(255,255,255,0.15);
}

/* CONFETTI */
.confetti {
  position: fixed;
  width: 8px;
  height: 8px;
  top: -10px;
  z-index: 9999;
  animation: confetti-fall 2.5s linear forwards;
}

@keyframes confetti-fall {
  to {
    transform: translateY(110vh) rotate(720deg);
    opacity: 0;
  }
}
