:root{--bg:#0d1020;--panel:#161a30;--line:#2a3050;--text:#eceefb;--mute:#9aa0c3;--accent:#8f9bff;--bad:#ff7a8a}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--text);font-family:"Space Grotesk",system-ui,sans-serif;display:grid;place-items:center;min-height:100vh;padding:20px}
.shell{width:100%;max-width:560px}
.bar{height:4px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:40px}
#progress{display:block;height:100%;width:0;background:var(--accent);transition:width .35s ease}
h1{font-size:clamp(1.9rem,6vw,2.7rem);line-height:1.1;margin:0 0 12px;font-weight:700;letter-spacing:-.02em}
.hint{color:var(--mute);margin:0 0 28px;line-height:1.5}
input,select,textarea{width:100%;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:16px;font:inherit;font-size:1.1rem}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.check{display:flex;gap:12px;align-items:flex-start;color:var(--mute);line-height:1.5}
.check input{width:22px;height:22px;margin-top:2px;accent-color:var(--accent)}
.nav{display:flex;gap:12px;justify-content:space-between;margin-top:32px}
button{font:inherit;font-weight:500;border:0;border-radius:12px;padding:14px 26px;cursor:pointer;background:var(--accent);color:#0d1020}
button.ghost{background:transparent;color:var(--mute);border:1px solid var(--line)}
button:hover{filter:brightness(1.1)}
.error{color:var(--bad);min-height:1.4em;margin:14px 0 0}
dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:28px 0;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
dt{color:var(--mute)}dd{margin:0;word-break:break-word}
#stage{animation:in .3s ease}
@keyframes in{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#stage{animation:none}#progress{transition:none}}
.sec{color:var(--accent);margin:0 0 14px;font-weight:500}
#gate .nav{justify-content:flex-end}
