.signupWrap{max-width:520px;margin:0 auto;padding:24px 16px 48px}.signupCard{background:var(--color-surface);border-radius:20px;border:1px solid var(--color-border-strong);padding:32px;box-shadow:0 8px 32px rgba(0,0,0,.06)}@media (max-width:560px){.signupCard{padding:24px 18px}}.signupProgress{margin-bottom:28px}.signupProgressBar{height:4px;background:var(--color-border);border-radius:999px;overflow:hidden;margin-bottom:8px}.signupProgressFill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:999px;transition:width .35s var(--ease-out)}.signupProgressLabel{font-size:var(--type-xs);font-weight:var(--weight-black);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted)}.signupStep{animation:signupStepIn var(--duration-normal) var(--ease-out) both}@keyframes signupStepIn{0%{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.signupStep{animation:none}}.signupStepTitle{font-size:var(--type-h2);font-weight:var(--weight-black);letter-spacing:var(--tracking-tight);color:var(--color-text);margin:0 0 6px}.signupStepSub{font-size:var(--type-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);margin:0 0 20px}.signupLabel{display:block;font-size:var(--type-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin-bottom:6px}.signupHelper{color:var(--color-text-muted);line-height:var(--leading-normal)}.signupError,.signupHelper{font-size:var(--type-xs);margin-top:6px}.signupError{color:var(--color-danger-text);font-weight:var(--weight-semibold)}.signupTownGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:8px}.signupTownCard{border-radius:12px;border:1.5px solid var(--color-border);padding:14px 16px;cursor:pointer;text-align:center;transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);background:var(--color-surface)}.signupTownCard:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.signupTownCard.active{border-color:#16a34a;border-width:2px;background:rgba(22,163,74,.05);box-shadow:0 0 0 3px rgba(22,163,74,.12)}.signupTownName{font-weight:var(--weight-bold);font-size:var(--type-body);color:var(--color-text)}.signupTownSub{font-size:var(--type-xs);color:var(--color-text-muted);margin-top:4px}.signupTradeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}@media (max-width:480px){.signupTradeGrid{grid-template-columns:repeat(2,1fr)}}.signupTradeCard{border-radius:12px;border:1.5px solid var(--color-border);padding:14px 12px;cursor:pointer;text-align:center;transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);background:var(--color-surface)}.signupTradeCard:hover{transform:translateY(-1px);border-color:var(--color-border-strong)}.signupTradeCard.active{border-color:#16a34a;border-width:2px;background:rgba(22,163,74,.05);box-shadow:0 0 0 3px rgba(22,163,74,.12)}.signupTradeEmoji{font-size:24px;display:block;margin-bottom:6px}.signupTradeName{font-size:var(--type-sm);font-weight:var(--weight-bold);color:var(--color-text)}@media (prefers-reduced-motion:reduce){.signupTownCard,.signupTownCard:hover,.signupTradeCard,.signupTradeCard:hover{transition:none;transform:none}}.signupReview{display:flex;flex-direction:column;gap:0}.signupReviewRow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border)}.signupReviewRow:last-child{border-bottom:none}.signupReviewLabel{font-size:var(--type-sm);color:var(--color-text-muted);font-weight:var(--weight-semibold)}.signupReviewValue{font-size:var(--type-sm);font-weight:var(--weight-bold);color:var(--color-text);text-align:right}.signupActions{margin-top:24px;display:flex;flex-direction:column;gap:10px}.signupStepError{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:10px;padding:12px 16px;font-size:var(--type-sm);color:var(--color-danger-text);font-weight:var(--weight-semibold);margin-bottom:16px}.signupSuccess{text-align:center;padding:32px 16px;display:flex;flex-direction:column;align-items:center;gap:16px}.signupSuccessIcon{font-size:48px;line-height:1}.signupSuccessTitle{font-size:var(--type-h2);font-weight:var(--weight-black);letter-spacing:var(--tracking-tight);color:var(--color-text);margin:0}.signupSuccessText{font-size:var(--type-body);color:var(--color-text-secondary);line-height:var(--leading-relaxed);max-width:38ch;margin:0}.signupMt0{margin-top:0}.signupMt2{margin-top:2px}.signupMt4{margin-top:4px}.signupMt8{margin-top:8px}.signupMt10{margin-top:10px}.signupMt12{margin-top:12px}.signupMuted12--75{font-size:12px;opacity:.75}.signupFw950{font-weight:950}.signupRowGap8Wrap,.signupRowGap8WrapEnd{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.signupRowGap8WrapEnd{justify-content:flex-end}.signupMt8Grid8{margin-top:8px;display:grid;gap:8px}.signupMt12Grid8{margin-top:12px;display:grid;gap:8px}.signupMt8Grid4-13{margin-top:8px;display:grid;gap:4px;font-size:13px}.signupMinH120{min-height:120px}.signupH28{height:28px}.signupJustifyStart{justify-content:flex-start}.signupCenterMicro{text-align:center;font-size:10px;opacity:.6;font-weight:900}.signupMt8Error{margin-top:8px;font-weight:800;color:#991b1b}.signupMt8Help13{margin-top:8px;font-size:13px;opacity:.86}.signupSectionHead{font-weight:900;font-size:13px;margin-bottom:8px}.signupParaMuted{font-size:13px;opacity:.86;line-height:1.45;margin-bottom:8px}.signupLabelMicro{font-size:12px;opacity:.75;margin-bottom:6px}@media (max-width:640px){.signupWrap{padding:16px 12px 40px}.signupProgress{margin-bottom:20px}.signupStepTitle{font-size:var(--type-h3)}.signupStepSub{font-size:var(--type-sm)}.signupTownCard{padding:12px 14px}.signupTownName{font-size:var(--type-sm)}.signupReviewRow{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 0}.signupReviewValue{text-align:left}.signupActions{margin-top:20px}.signupStepError{padding:10px 14px;font-size:var(--type-xs)}.signupSuccess{padding:24px 12px}.signupSuccessIcon{font-size:40px}.signupSuccessTitle{font-size:var(--type-h3)}.signupSuccessText{font-size:var(--type-sm)}}