:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --card-soft:#fafaff;
  --ink:#171823;
  --muted:#727587;
  --line:#e8e9f0;
  --purple:#6c4df6;
  --purple-2:#8b72ff;
  --blue:#3c8dff;
  --green:#1aa86f;
  --red:#d3485c;
  --amber:#d88a1c;
  --shadow:0 24px 70px rgba(41,38,74,.13);
  --shadow-soft:0 12px 32px rgba(41,38,74,.08);
  --radius:28px;
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{
  margin:0;
  min-height:100vh;
  color:var(--ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(108,77,246,.12), transparent 32rem),
    radial-gradient(circle at 96% 8%, rgba(60,141,255,.12), transparent 31rem),
    linear-gradient(180deg,#fbfbfe 0%,#f4f6fb 100%);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
button,input{font:inherit}
button{cursor:pointer}
.page-shell{width:min(1180px,calc(100% - 32px));margin:0 auto}
.signup-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:78px;padding:14px 0;
}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-weight:850;letter-spacing:-.02em}
.brand img{width:38px;height:38px;border-radius:12px;box-shadow:0 7px 20px rgba(108,77,246,.24)}
.brand-copy{display:flex;flex-direction:column;line-height:1.04}
.brand-name{font-size:1.02rem}
.brand-sub{font-size:.68rem;color:var(--muted);font-weight:700;letter-spacing:.03em;margin-top:4px}
.top-login{font-size:.9rem;color:var(--muted);font-weight:700}
.top-login a{color:var(--purple);text-decoration:none;margin-left:5px}
.top-login a:hover{text-decoration:underline}

.signup-layout{
  display:grid;grid-template-columns:minmax(0,1.04fr) minmax(390px,.96fr);
  align-items:center;gap:56px;padding:28px 0 70px;
}
.story{padding:28px 10px 28px 4px}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:850;color:var(--purple);letter-spacing:.03em;text-transform:uppercase}
.kicker-dot{width:9px;height:9px;border-radius:999px;background:linear-gradient(135deg,var(--purple),var(--blue));box-shadow:0 0 0 6px rgba(108,77,246,.1)}
.story h1{font-size:clamp(2.55rem,5vw,4.8rem);line-height:.98;letter-spacing:-.055em;margin:18px 0 20px;max-width:720px}
.story h1 span{background:linear-gradient(100deg,var(--purple),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent}
.story-lede{font-size:1.08rem;line-height:1.7;color:var(--muted);max-width:640px;margin:0 0 30px}
.network-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:620px}
.network-chip{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid rgba(108,77,246,.11);background:rgba(255,255,255,.68);backdrop-filter:blur(12px);border-radius:17px;box-shadow:0 8px 22px rgba(46,45,71,.04)}
.network-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(108,77,246,.13),rgba(60,141,255,.11));font-weight:900;color:var(--purple)}
.network-chip strong{display:block;font-size:.85rem}
.network-chip span{display:block;color:var(--muted);font-size:.72rem;margin-top:2px}

.signup-card{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.85);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px;position:relative;overflow:hidden}
.signup-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--purple),var(--blue),#64d4be)}
.card-head{text-align:center;margin-bottom:26px}
.card-mark{width:62px;height:62px;border-radius:20px;margin:0 auto 15px;display:grid;place-items:center;background:linear-gradient(135deg,#6c4df6,#3c8dff);box-shadow:0 14px 32px rgba(108,77,246,.25);color:#fff;font-size:1.45rem;font-weight:950;letter-spacing:-.06em}
.card-head h2{font-size:1.72rem;line-height:1.15;letter-spacing:-.035em;margin:0 0 8px}
.card-head p{color:var(--muted);font-size:.92rem;line-height:1.55;margin:0}

.signup-form{display:grid;gap:16px}
.field{display:grid;gap:7px}
.field-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.field label{font-size:.78rem;font-weight:850;color:#454759;letter-spacing:.01em}
.field-meta{font-size:.72rem;color:var(--muted)}
.input-shell{position:relative;display:flex;align-items:center;border:1.5px solid var(--line);background:#fff;border-radius:15px;min-height:54px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.input-shell:focus-within{border-color:rgba(108,77,246,.72);box-shadow:0 0 0 4px rgba(108,77,246,.09)}
.input-shell.invalid{border-color:rgba(211,72,92,.65);background:#fffafa}
.input-shell.valid{border-color:rgba(26,168,111,.42)}
.input-prefix{padding:0 0 0 16px;font-weight:900;color:var(--purple);font-size:1.02rem}
.input-shell input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);padding:15px 16px;font-size:.96rem}
.input-prefix+input{padding-left:4px}
.input-shell input::placeholder{color:#a4a6b3}
.input-action{border:0;background:transparent;color:var(--purple);font-size:.78rem;font-weight:850;padding:10px 13px;margin-right:3px;border-radius:10px}
.input-action:hover{background:#f3f1ff}
.field-status{min-height:17px;font-size:.72rem;line-height:1.35;color:var(--muted)}
.field-status.error{color:var(--red)}
.field-status.success{color:var(--green);font-weight:750}
.field-status.warning{color:var(--amber)}
.password-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:2px}
.password-meter span{height:4px;border-radius:999px;background:#ececf2;transition:background .16s ease}
.password-meter[data-score="1"] span:nth-child(1),
.password-meter[data-score="2"] span:nth-child(-n+2),
.password-meter[data-score="3"] span:nth-child(-n+3),
.password-meter[data-score="4"] span{background:linear-gradient(90deg,var(--purple),var(--blue))}
.caps-note{display:none;color:var(--amber);font-size:.72rem;margin-top:-4px}
.caps-note.show{display:block}

.primary-btn{width:100%;border:0;border-radius:15px;min-height:55px;padding:15px 18px;background:linear-gradient(100deg,var(--purple),var(--blue));color:#fff;font-weight:900;letter-spacing:-.01em;box-shadow:0 12px 26px rgba(108,77,246,.23);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}
.primary-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 15px 30px rgba(108,77,246,.3)}
.primary-btn:disabled{cursor:not-allowed;opacity:.58;box-shadow:none}
.form-error{display:none;border:1px solid rgba(211,72,92,.2);background:#fff5f7;color:#a83245;border-radius:13px;padding:11px 13px;font-size:.78rem;line-height:1.45}
.form-error.show{display:block}
.trust-line{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:.73rem;font-weight:720;margin-top:2px}
.trust-badge{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:7px;background:#eefaf5;color:var(--green);font-size:.72rem;font-weight:900}
.legal{font-size:.69rem;line-height:1.55;text-align:center;color:#9294a1;margin:0 5px}
.legal a{text-decoration:underline;text-underline-offset:2px}
.card-login{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}
.card-login a{color:var(--purple);font-weight:850;text-decoration:none}

.existing-session{display:none;text-align:center;padding:12px 2px 2px}
.existing-session.show{display:block}
.existing-avatar{width:70px;height:70px;border-radius:23px;margin:0 auto 16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--blue));color:#fff;font-size:1.6rem;font-weight:950;box-shadow:0 14px 30px rgba(108,77,246,.22)}
.existing-session h3{font-size:1.45rem;margin:0 0 8px;letter-spacing:-.03em}
.existing-session p{margin:0 0 22px;color:var(--muted);line-height:1.55;font-size:.9rem}
.secondary-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;border:1px solid var(--line);border-radius:15px;background:#fff;text-decoration:none;font-weight:850;color:#393b4b;margin-top:10px}
.secondary-btn:hover{background:#fafafe;border-color:#dcddea}

/* welcome */
.welcome-wrap{width:min(940px,calc(100% - 32px));margin:0 auto;padding:28px 0 74px}
.welcome-card{background:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.85);border-radius:32px;box-shadow:var(--shadow);padding:42px;position:relative;overflow:hidden}
.welcome-card:before{content:"";position:absolute;left:-80px;top:-100px;width:300px;height:300px;border-radius:50%;background:rgba(108,77,246,.08);filter:blur(2px)}
.welcome-hero{text-align:center;position:relative;z-index:1}
.success-mark{width:82px;height:82px;border-radius:26px;margin:0 auto 18px;display:grid;place-items:center;background:linear-gradient(135deg,#6c4df6,#3c8dff);box-shadow:0 16px 36px rgba(108,77,246,.28);color:#fff;font-size:2rem;font-weight:900}
.welcome-hero .mini{font-size:.76rem;font-weight:900;color:var(--green);text-transform:uppercase;letter-spacing:.08em}
.welcome-hero h1{font-size:clamp(2rem,6vw,3.7rem);letter-spacing:-.055em;margin:9px 0 10px}
.welcome-hero p{color:var(--muted);font-size:1rem;line-height:1.65;margin:0 auto;max-width:610px}
.cap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:32px 0 26px;position:relative;z-index:1}
.cap-card{display:flex;gap:14px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;text-decoration:none;box-shadow:var(--shadow-soft);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.cap-card:hover{transform:translateY(-2px);border-color:#d9d5ff;box-shadow:0 14px 35px rgba(49,47,82,.1)}
.cap-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(135deg,#f0edff,#edf5ff);color:var(--purple);font-weight:950;font-size:1.05rem}
.cap-card strong{display:block;font-size:.9rem}
.cap-card span{display:block;color:var(--muted);font-size:.74rem;line-height:1.4;margin-top:4px}
.welcome-actions{display:grid;gap:11px;max-width:520px;margin:0 auto;position:relative;z-index:1}
.welcome-actions .primary-btn{text-decoration:none;display:flex;justify-content:center;align-items:center}
.optional-row{text-align:center;margin-top:19px;font-size:.76rem;color:var(--muted);position:relative;z-index:1}
.optional-row a{color:var(--purple);font-weight:800;text-decoration:none}
.welcome-status{margin:24px auto 0;max-width:620px;border-radius:16px;background:#f8f9fd;border:1px solid var(--line);padding:13px 15px;display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:.75rem;line-height:1.5;position:relative;z-index:1}
.welcome-status b{color:var(--ink)}

.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%,18px);z-index:9999;background:#1f2130;color:#fff;border-radius:13px;padding:12px 16px;font-size:.8rem;font-weight:750;box-shadow:0 16px 40px rgba(20,21,35,.25);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;max-width:min(420px,calc(100% - 28px));text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:#157a55}.toast.error{background:#b63b4c}
.confetti{position:fixed;inset:0;z-index:9998;pointer-events:none;overflow:hidden}
.confetti span{position:absolute;top:-14px;width:9px;height:14px;animation:confetti-fall linear forwards}
@keyframes confetti-fall{to{transform:translateY(110vh) rotate(540deg);opacity:.1}}

@media(max-width:900px){
  .signup-layout{grid-template-columns:1fr;gap:20px;padding-top:10px}
  .story{text-align:center;padding:18px 8px 8px}
  .story h1{margin-left:auto;margin-right:auto;max-width:680px}
  .story-lede{margin-left:auto;margin-right:auto}
  .network-strip{margin:0 auto}
  .signup-card{width:min(560px,100%);margin:0 auto}
}
@media(max-width:620px){
  .page-shell,.welcome-wrap{width:min(100% - 20px,1180px)}
  .signup-topbar{min-height:66px;padding:10px 2px}
  .brand-sub{display:none}
  .top-login{font-size:.76rem}
  .signup-layout{padding:8px 0 38px}
  .story{padding:12px 6px 4px}
  .story h1{font-size:2.55rem;margin-top:14px;margin-bottom:14px}
  .story-lede{font-size:.93rem;line-height:1.58;margin-bottom:20px}
  .network-strip{grid-template-columns:1fr 1fr;gap:8px}
  .network-chip{padding:10px;gap:8px;border-radius:14px;text-align:left}
  .network-icon{width:30px;height:30px;border-radius:10px}
  .network-chip strong{font-size:.76rem}.network-chip span{font-size:.65rem}
  .signup-card{padding:26px 18px;border-radius:24px}
  .card-mark{width:54px;height:54px;border-radius:18px}
  .card-head h2{font-size:1.5rem}
  .input-shell{min-height:52px}
  .welcome-card{padding:30px 17px;border-radius:25px}
  .cap-grid{grid-template-columns:1fr;gap:10px;margin-top:26px}
  .success-mark{width:70px;height:70px;border-radius:23px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
