:root{--bg:#0c0e11;--ink:#f3efe6;--mute:#9a9a94;--line:rgba(255,255,255,.14);--card:rgba(255,255,255,.05);
  --yellow:#fdb913;--green:#1f9a63;--red:#d2373f;--ease:cubic-bezier(.2,.75,.15,1);
  --head:"Space Grotesk",system-ui,sans-serif;--body:Inter,system-ui,sans-serif}
*{box-sizing:border-box;margin:0}
html,body{min-height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.blob{position:fixed;width:60vmax;height:60vmax;border-radius:50%;filter:blur(90px);opacity:.16;pointer-events:none;z-index:-1;animation:drift 18s ease-in-out infinite alternate}
.b1{background:var(--yellow);left:-25vmax;top:-25vmax}
.b2{background:var(--green);right:-25vmax;bottom:-30vmax;animation-delay:-6s}
.b3{background:var(--red);right:-35vmax;top:-30vmax;opacity:.1;animation-delay:-12s}
@keyframes drift{to{transform:translate(8vw,6vh) scale(1.1)}}
@keyframes in{from{opacity:0;transform:translateY(24px);filter:blur(8px)}}
.center{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:16px}
.panel{width:100%;max-width:440px;animation:in .9s var(--ease) both}
.kicker{font:600 13px var(--head);letter-spacing:.18em;text-transform:uppercase;color:var(--yellow)}
h1{font:700 clamp(34px,9vw,44px)/1.05 var(--head);letter-spacing:-.03em;margin:14px 0 28px}
label{display:block;font-size:13px;color:var(--mute);margin-bottom:8px}
input,textarea{width:100%;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink);
  font:16px var(--body);margin-bottom:18px;outline:none;transition:border-color .3s;resize:none}
input:focus,textarea:focus{border-color:var(--yellow)}
button,.btn{display:inline-block;padding:15px 20px;border:0;border-radius:14px;background:var(--yellow);color:#111;font:700 16px var(--head);
  cursor:pointer;transition:transform .2s,opacity .2s;text-decoration:none;text-align:center}
button:hover,.btn:hover{transform:translateY(-2px)}
button:disabled{opacity:.5;transform:none;cursor:default}
.wide{width:100%}
.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line)}
.err{color:#ff8a8f;font-size:14px;margin:-6px 0 16px;animation:shake .4s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.muted{color:var(--mute)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green);margin-right:8px;box-shadow:0 0 0 0 rgba(31,154,99,.6);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(31,154,99,0)}100%{box-shadow:0 0 0 0 rgba(31,154,99,0)}}
.hp{position:absolute;left:-9999px}
