*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;font-family:var(--font);color:var(--text);
  background:linear-gradient(160deg,var(--bg-1),var(--bg-2));-webkit-font-smoothing:antialiased;line-height:1.5}
h1,h2,h3,p{margin:0}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
.bg{position:fixed;inset:0;overflow:hidden;z-index:-1}
.orb{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}
.o1{width:46vmax;height:46vmax;left:-12vmax;top:-14vmax;background:var(--orb1);animation:float1 26s ease-in-out infinite}
.o2{width:40vmax;height:40vmax;right:-12vmax;top:14vmax;background:var(--orb2);animation:float2 32s ease-in-out infinite}
.o3{width:34vmax;height:34vmax;left:22vmax;bottom:-16vmax;background:var(--orb3);animation:float1 38s ease-in-out infinite reverse}
@keyframes float1{50%{transform:translate(6vmax,4vmax) scale(1.08)}}
@keyframes float2{50%{transform:translate(-5vmax,6vmax) scale(.94)}}
.wrap{width:100%;flex:1;max-width:1120px;margin:0 auto;padding:30px 20px 36px;animation:rise .6s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}}
.muted{color:var(--text-2)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--glass-border);
  border-radius:14px;padding:11px 20px;font-weight:600;cursor:pointer;background:var(--glass-strong);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.btn:active{transform:scale(.98)}
.btn.primary{background:linear-gradient(180deg,#7db0f6,var(--blue-deep));color:#fff;border-color:rgba(255,255,255,.5);
  box-shadow:0 8px 22px rgba(63,127,224,.35),inset 0 1px 0 rgba(255,255,255,.5)}
.btn.block{width:100%}
.btn[disabled]{opacity:.6;cursor:progress}
.field{display:block;margin-bottom:16px}
.field>span:first-child{display:block;font-size:.82rem;font-weight:600;color:var(--text-2);margin:0 0 6px 4px}
.field input{width:100%;padding:13px 16px;border-radius:14px;border:1px solid var(--glass-edge);background:var(--field);
  outline:none;transition:box-shadow .2s,border-color .2s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.field input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(111,163,239,.28)}
.msg{min-height:1.4em;margin:0 0 12px;font-size:.88rem;color:var(--danger)}
.msg.ok{color:var(--green)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
